zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

shobjidl.h (1248408B) - Raw


      1 /*** Autogenerated by WIDL 10.4 from include/shobjidl.idl - Do not edit ***/
      2 
      3 #ifdef _WIN32
      4 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      5 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      6 #endif
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 #endif
     10 
     11 #ifndef COM_NO_WINDOWS_H
     12 #include <windows.h>
     13 #include <ole2.h>
     14 #endif
     15 
     16 #ifndef __shobjidl_h__
     17 #define __shobjidl_h__
     18 
     19 /* Forward declarations */
     20 
     21 #ifndef __IContextMenu_FWD_DEFINED__
     22 #define __IContextMenu_FWD_DEFINED__
     23 typedef interface IContextMenu IContextMenu;
     24 #ifdef __cplusplus
     25 interface IContextMenu;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __IContextMenu2_FWD_DEFINED__
     30 #define __IContextMenu2_FWD_DEFINED__
     31 typedef interface IContextMenu2 IContextMenu2;
     32 #ifdef __cplusplus
     33 interface IContextMenu2;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __IContextMenu3_FWD_DEFINED__
     38 #define __IContextMenu3_FWD_DEFINED__
     39 typedef interface IContextMenu3 IContextMenu3;
     40 #ifdef __cplusplus
     41 interface IContextMenu3;
     42 #endif /* __cplusplus */
     43 #endif
     44 
     45 #ifndef __IExecuteCommand_FWD_DEFINED__
     46 #define __IExecuteCommand_FWD_DEFINED__
     47 typedef interface IExecuteCommand IExecuteCommand;
     48 #ifdef __cplusplus
     49 interface IExecuteCommand;
     50 #endif /* __cplusplus */
     51 #endif
     52 
     53 #ifndef __IPersistFolder_FWD_DEFINED__
     54 #define __IPersistFolder_FWD_DEFINED__
     55 typedef interface IPersistFolder IPersistFolder;
     56 #ifdef __cplusplus
     57 interface IPersistFolder;
     58 #endif /* __cplusplus */
     59 #endif
     60 
     61 #ifndef __IRunnableTask_FWD_DEFINED__
     62 #define __IRunnableTask_FWD_DEFINED__
     63 typedef interface IRunnableTask IRunnableTask;
     64 #ifdef __cplusplus
     65 interface IRunnableTask;
     66 #endif /* __cplusplus */
     67 #endif
     68 
     69 #ifndef __IShellTaskScheduler_FWD_DEFINED__
     70 #define __IShellTaskScheduler_FWD_DEFINED__
     71 typedef interface IShellTaskScheduler IShellTaskScheduler;
     72 #ifdef __cplusplus
     73 interface IShellTaskScheduler;
     74 #endif /* __cplusplus */
     75 #endif
     76 
     77 #ifndef __IQueryCodePage_FWD_DEFINED__
     78 #define __IQueryCodePage_FWD_DEFINED__
     79 typedef interface IQueryCodePage IQueryCodePage;
     80 #ifdef __cplusplus
     81 interface IQueryCodePage;
     82 #endif /* __cplusplus */
     83 #endif
     84 
     85 #ifndef __IPersistFolder2_FWD_DEFINED__
     86 #define __IPersistFolder2_FWD_DEFINED__
     87 typedef interface IPersistFolder2 IPersistFolder2;
     88 #ifdef __cplusplus
     89 interface IPersistFolder2;
     90 #endif /* __cplusplus */
     91 #endif
     92 
     93 #ifndef __IPersistFolder3_FWD_DEFINED__
     94 #define __IPersistFolder3_FWD_DEFINED__
     95 typedef interface IPersistFolder3 IPersistFolder3;
     96 #ifdef __cplusplus
     97 interface IPersistFolder3;
     98 #endif /* __cplusplus */
     99 #endif
    100 
    101 #ifndef __IPersistIDList_FWD_DEFINED__
    102 #define __IPersistIDList_FWD_DEFINED__
    103 typedef interface IPersistIDList IPersistIDList;
    104 #ifdef __cplusplus
    105 interface IPersistIDList;
    106 #endif /* __cplusplus */
    107 #endif
    108 
    109 #ifndef __IEnumIDList_FWD_DEFINED__
    110 #define __IEnumIDList_FWD_DEFINED__
    111 typedef interface IEnumIDList IEnumIDList;
    112 #ifdef __cplusplus
    113 interface IEnumIDList;
    114 #endif /* __cplusplus */
    115 #endif
    116 
    117 #ifndef __IEnumFullIDList_FWD_DEFINED__
    118 #define __IEnumFullIDList_FWD_DEFINED__
    119 typedef interface IEnumFullIDList IEnumFullIDList;
    120 #ifdef __cplusplus
    121 interface IEnumFullIDList;
    122 #endif /* __cplusplus */
    123 #endif
    124 
    125 #ifndef __IObjectWithFolderEnumMode_FWD_DEFINED__
    126 #define __IObjectWithFolderEnumMode_FWD_DEFINED__
    127 typedef interface IObjectWithFolderEnumMode IObjectWithFolderEnumMode;
    128 #ifdef __cplusplus
    129 interface IObjectWithFolderEnumMode;
    130 #endif /* __cplusplus */
    131 #endif
    132 
    133 #ifndef __IParseAndCreateItem_FWD_DEFINED__
    134 #define __IParseAndCreateItem_FWD_DEFINED__
    135 typedef interface IParseAndCreateItem IParseAndCreateItem;
    136 #ifdef __cplusplus
    137 interface IParseAndCreateItem;
    138 #endif /* __cplusplus */
    139 #endif
    140 
    141 #ifndef __IShellFolder_FWD_DEFINED__
    142 #define __IShellFolder_FWD_DEFINED__
    143 typedef interface IShellFolder IShellFolder;
    144 #ifdef __cplusplus
    145 interface IShellFolder;
    146 #endif /* __cplusplus */
    147 #endif
    148 
    149 #ifndef __IEnumExtraSearch_FWD_DEFINED__
    150 #define __IEnumExtraSearch_FWD_DEFINED__
    151 typedef interface IEnumExtraSearch IEnumExtraSearch;
    152 #ifdef __cplusplus
    153 interface IEnumExtraSearch;
    154 #endif /* __cplusplus */
    155 #endif
    156 
    157 #ifndef __IShellFolder2_FWD_DEFINED__
    158 #define __IShellFolder2_FWD_DEFINED__
    159 typedef interface IShellFolder2 IShellFolder2;
    160 #ifdef __cplusplus
    161 interface IShellFolder2;
    162 #endif /* __cplusplus */
    163 #endif
    164 
    165 #ifndef __IFolderViewOptions_FWD_DEFINED__
    166 #define __IFolderViewOptions_FWD_DEFINED__
    167 typedef interface IFolderViewOptions IFolderViewOptions;
    168 #ifdef __cplusplus
    169 interface IFolderViewOptions;
    170 #endif /* __cplusplus */
    171 #endif
    172 
    173 #ifndef __IShellView_FWD_DEFINED__
    174 #define __IShellView_FWD_DEFINED__
    175 typedef interface IShellView IShellView;
    176 #ifdef __cplusplus
    177 interface IShellView;
    178 #endif /* __cplusplus */
    179 #endif
    180 
    181 #ifndef __IShellView2_FWD_DEFINED__
    182 #define __IShellView2_FWD_DEFINED__
    183 typedef interface IShellView2 IShellView2;
    184 #ifdef __cplusplus
    185 interface IShellView2;
    186 #endif /* __cplusplus */
    187 #endif
    188 
    189 #ifndef __IShellView3_FWD_DEFINED__
    190 #define __IShellView3_FWD_DEFINED__
    191 typedef interface IShellView3 IShellView3;
    192 #ifdef __cplusplus
    193 interface IShellView3;
    194 #endif /* __cplusplus */
    195 #endif
    196 
    197 #ifndef __IFolderView_FWD_DEFINED__
    198 #define __IFolderView_FWD_DEFINED__
    199 typedef interface IFolderView IFolderView;
    200 #ifdef __cplusplus
    201 interface IFolderView;
    202 #endif /* __cplusplus */
    203 #endif
    204 
    205 #ifndef __ISearchBoxInfo_FWD_DEFINED__
    206 #define __ISearchBoxInfo_FWD_DEFINED__
    207 typedef interface ISearchBoxInfo ISearchBoxInfo;
    208 #ifdef __cplusplus
    209 interface ISearchBoxInfo;
    210 #endif /* __cplusplus */
    211 #endif
    212 
    213 #ifndef __IFolderView2_FWD_DEFINED__
    214 #define __IFolderView2_FWD_DEFINED__
    215 typedef interface IFolderView2 IFolderView2;
    216 #ifdef __cplusplus
    217 interface IFolderView2;
    218 #endif /* __cplusplus */
    219 #endif
    220 
    221 #ifndef __IFolderViewSettings_FWD_DEFINED__
    222 #define __IFolderViewSettings_FWD_DEFINED__
    223 typedef interface IFolderViewSettings IFolderViewSettings;
    224 #ifdef __cplusplus
    225 interface IFolderViewSettings;
    226 #endif /* __cplusplus */
    227 #endif
    228 
    229 #ifndef __IPreviewHandlerVisuals_FWD_DEFINED__
    230 #define __IPreviewHandlerVisuals_FWD_DEFINED__
    231 typedef interface IPreviewHandlerVisuals IPreviewHandlerVisuals;
    232 #ifdef __cplusplus
    233 interface IPreviewHandlerVisuals;
    234 #endif /* __cplusplus */
    235 #endif
    236 
    237 #ifndef __IVisualProperties_FWD_DEFINED__
    238 #define __IVisualProperties_FWD_DEFINED__
    239 typedef interface IVisualProperties IVisualProperties;
    240 #ifdef __cplusplus
    241 interface IVisualProperties;
    242 #endif /* __cplusplus */
    243 #endif
    244 
    245 #ifndef __ICommDlgBrowser_FWD_DEFINED__
    246 #define __ICommDlgBrowser_FWD_DEFINED__
    247 typedef interface ICommDlgBrowser ICommDlgBrowser;
    248 #ifdef __cplusplus
    249 interface ICommDlgBrowser;
    250 #endif /* __cplusplus */
    251 #endif
    252 
    253 #ifndef __ICommDlgBrowser2_FWD_DEFINED__
    254 #define __ICommDlgBrowser2_FWD_DEFINED__
    255 typedef interface ICommDlgBrowser2 ICommDlgBrowser2;
    256 #ifdef __cplusplus
    257 interface ICommDlgBrowser2;
    258 #endif /* __cplusplus */
    259 #endif
    260 
    261 #ifndef __ICommDlgBrowser3_FWD_DEFINED__
    262 #define __ICommDlgBrowser3_FWD_DEFINED__
    263 typedef interface ICommDlgBrowser3 ICommDlgBrowser3;
    264 #ifdef __cplusplus
    265 interface ICommDlgBrowser3;
    266 #endif /* __cplusplus */
    267 #endif
    268 
    269 #ifndef __IColumnManager_FWD_DEFINED__
    270 #define __IColumnManager_FWD_DEFINED__
    271 typedef interface IColumnManager IColumnManager;
    272 #ifdef __cplusplus
    273 interface IColumnManager;
    274 #endif /* __cplusplus */
    275 #endif
    276 
    277 #ifndef __IFolderFilterSite_FWD_DEFINED__
    278 #define __IFolderFilterSite_FWD_DEFINED__
    279 typedef interface IFolderFilterSite IFolderFilterSite;
    280 #ifdef __cplusplus
    281 interface IFolderFilterSite;
    282 #endif /* __cplusplus */
    283 #endif
    284 
    285 #ifndef __IFolderFilter_FWD_DEFINED__
    286 #define __IFolderFilter_FWD_DEFINED__
    287 typedef interface IFolderFilter IFolderFilter;
    288 #ifdef __cplusplus
    289 interface IFolderFilter;
    290 #endif /* __cplusplus */
    291 #endif
    292 
    293 #ifndef __IInputObjectSite_FWD_DEFINED__
    294 #define __IInputObjectSite_FWD_DEFINED__
    295 typedef interface IInputObjectSite IInputObjectSite;
    296 #ifdef __cplusplus
    297 interface IInputObjectSite;
    298 #endif /* __cplusplus */
    299 #endif
    300 
    301 #ifndef __IInputObject_FWD_DEFINED__
    302 #define __IInputObject_FWD_DEFINED__
    303 typedef interface IInputObject IInputObject;
    304 #ifdef __cplusplus
    305 interface IInputObject;
    306 #endif /* __cplusplus */
    307 #endif
    308 
    309 #ifndef __IInputObject2_FWD_DEFINED__
    310 #define __IInputObject2_FWD_DEFINED__
    311 typedef interface IInputObject2 IInputObject2;
    312 #ifdef __cplusplus
    313 interface IInputObject2;
    314 #endif /* __cplusplus */
    315 #endif
    316 
    317 #ifndef __IShellIcon_FWD_DEFINED__
    318 #define __IShellIcon_FWD_DEFINED__
    319 typedef interface IShellIcon IShellIcon;
    320 #ifdef __cplusplus
    321 interface IShellIcon;
    322 #endif /* __cplusplus */
    323 #endif
    324 
    325 #ifndef __IShellBrowser_FWD_DEFINED__
    326 #define __IShellBrowser_FWD_DEFINED__
    327 typedef interface IShellBrowser IShellBrowser;
    328 #ifdef __cplusplus
    329 interface IShellBrowser;
    330 #endif /* __cplusplus */
    331 #endif
    332 
    333 #ifndef __IProfferService_FWD_DEFINED__
    334 #define __IProfferService_FWD_DEFINED__
    335 typedef interface IProfferService IProfferService;
    336 #ifdef __cplusplus
    337 interface IProfferService;
    338 #endif /* __cplusplus */
    339 #endif
    340 
    341 #ifndef __IShellItem_FWD_DEFINED__
    342 #define __IShellItem_FWD_DEFINED__
    343 typedef interface IShellItem IShellItem;
    344 #ifdef __cplusplus
    345 interface IShellItem;
    346 #endif /* __cplusplus */
    347 #endif
    348 
    349 #ifndef __IShellItem2_FWD_DEFINED__
    350 #define __IShellItem2_FWD_DEFINED__
    351 typedef interface IShellItem2 IShellItem2;
    352 #ifdef __cplusplus
    353 interface IShellItem2;
    354 #endif /* __cplusplus */
    355 #endif
    356 
    357 #ifndef __IShellItemImageFactory_FWD_DEFINED__
    358 #define __IShellItemImageFactory_FWD_DEFINED__
    359 typedef interface IShellItemImageFactory IShellItemImageFactory;
    360 #ifdef __cplusplus
    361 interface IShellItemImageFactory;
    362 #endif /* __cplusplus */
    363 #endif
    364 
    365 #ifndef __IUserAccountChangeCallback_FWD_DEFINED__
    366 #define __IUserAccountChangeCallback_FWD_DEFINED__
    367 typedef interface IUserAccountChangeCallback IUserAccountChangeCallback;
    368 #ifdef __cplusplus
    369 interface IUserAccountChangeCallback;
    370 #endif /* __cplusplus */
    371 #endif
    372 
    373 #ifndef __IEnumShellItems_FWD_DEFINED__
    374 #define __IEnumShellItems_FWD_DEFINED__
    375 typedef interface IEnumShellItems IEnumShellItems;
    376 #ifdef __cplusplus
    377 interface IEnumShellItems;
    378 #endif /* __cplusplus */
    379 #endif
    380 
    381 #ifndef __ITransferAdviseSink_FWD_DEFINED__
    382 #define __ITransferAdviseSink_FWD_DEFINED__
    383 typedef interface ITransferAdviseSink ITransferAdviseSink;
    384 #ifdef __cplusplus
    385 interface ITransferAdviseSink;
    386 #endif /* __cplusplus */
    387 #endif
    388 
    389 #ifndef __ITransferSource_FWD_DEFINED__
    390 #define __ITransferSource_FWD_DEFINED__
    391 typedef interface ITransferSource ITransferSource;
    392 #ifdef __cplusplus
    393 interface ITransferSource;
    394 #endif /* __cplusplus */
    395 #endif
    396 
    397 #ifndef __IEnumResources_FWD_DEFINED__
    398 #define __IEnumResources_FWD_DEFINED__
    399 typedef interface IEnumResources IEnumResources;
    400 #ifdef __cplusplus
    401 interface IEnumResources;
    402 #endif /* __cplusplus */
    403 #endif
    404 
    405 #ifndef __IShellItemResources_FWD_DEFINED__
    406 #define __IShellItemResources_FWD_DEFINED__
    407 typedef interface IShellItemResources IShellItemResources;
    408 #ifdef __cplusplus
    409 interface IShellItemResources;
    410 #endif /* __cplusplus */
    411 #endif
    412 
    413 #ifndef __ITransferDestination_FWD_DEFINED__
    414 #define __ITransferDestination_FWD_DEFINED__
    415 typedef interface ITransferDestination ITransferDestination;
    416 #ifdef __cplusplus
    417 interface ITransferDestination;
    418 #endif /* __cplusplus */
    419 #endif
    420 
    421 #ifndef __IStreamAsync_FWD_DEFINED__
    422 #define __IStreamAsync_FWD_DEFINED__
    423 typedef interface IStreamAsync IStreamAsync;
    424 #ifdef __cplusplus
    425 interface IStreamAsync;
    426 #endif /* __cplusplus */
    427 #endif
    428 
    429 #ifndef __IStreamUnbufferedInfo_FWD_DEFINED__
    430 #define __IStreamUnbufferedInfo_FWD_DEFINED__
    431 typedef interface IStreamUnbufferedInfo IStreamUnbufferedInfo;
    432 #ifdef __cplusplus
    433 interface IStreamUnbufferedInfo;
    434 #endif /* __cplusplus */
    435 #endif
    436 
    437 #ifndef __IFileOperationProgressSink_FWD_DEFINED__
    438 #define __IFileOperationProgressSink_FWD_DEFINED__
    439 typedef interface IFileOperationProgressSink IFileOperationProgressSink;
    440 #ifdef __cplusplus
    441 interface IFileOperationProgressSink;
    442 #endif /* __cplusplus */
    443 #endif
    444 
    445 #ifndef __IShellItemArray_FWD_DEFINED__
    446 #define __IShellItemArray_FWD_DEFINED__
    447 typedef interface IShellItemArray IShellItemArray;
    448 #ifdef __cplusplus
    449 interface IShellItemArray;
    450 #endif /* __cplusplus */
    451 #endif
    452 
    453 #ifndef __IInitializeWithItem_FWD_DEFINED__
    454 #define __IInitializeWithItem_FWD_DEFINED__
    455 typedef interface IInitializeWithItem IInitializeWithItem;
    456 #ifdef __cplusplus
    457 interface IInitializeWithItem;
    458 #endif /* __cplusplus */
    459 #endif
    460 
    461 #ifndef __IObjectWithSelection_FWD_DEFINED__
    462 #define __IObjectWithSelection_FWD_DEFINED__
    463 typedef interface IObjectWithSelection IObjectWithSelection;
    464 #ifdef __cplusplus
    465 interface IObjectWithSelection;
    466 #endif /* __cplusplus */
    467 #endif
    468 
    469 #ifndef __IObjectWithBackReferences_FWD_DEFINED__
    470 #define __IObjectWithBackReferences_FWD_DEFINED__
    471 typedef interface IObjectWithBackReferences IObjectWithBackReferences;
    472 #ifdef __cplusplus
    473 interface IObjectWithBackReferences;
    474 #endif /* __cplusplus */
    475 #endif
    476 
    477 #ifndef __IPropertyUI_FWD_DEFINED__
    478 #define __IPropertyUI_FWD_DEFINED__
    479 typedef interface IPropertyUI IPropertyUI;
    480 #ifdef __cplusplus
    481 interface IPropertyUI;
    482 #endif /* __cplusplus */
    483 #endif
    484 
    485 #ifndef __ICategoryProvider_FWD_DEFINED__
    486 #define __ICategoryProvider_FWD_DEFINED__
    487 typedef interface ICategoryProvider ICategoryProvider;
    488 #ifdef __cplusplus
    489 interface ICategoryProvider;
    490 #endif /* __cplusplus */
    491 #endif
    492 
    493 #ifndef __ICategorizer_FWD_DEFINED__
    494 #define __ICategorizer_FWD_DEFINED__
    495 typedef interface ICategorizer ICategorizer;
    496 #ifdef __cplusplus
    497 interface ICategorizer;
    498 #endif /* __cplusplus */
    499 #endif
    500 
    501 #ifndef __IDropTargetHelper_FWD_DEFINED__
    502 #define __IDropTargetHelper_FWD_DEFINED__
    503 typedef interface IDropTargetHelper IDropTargetHelper;
    504 #ifdef __cplusplus
    505 interface IDropTargetHelper;
    506 #endif /* __cplusplus */
    507 #endif
    508 
    509 #ifndef __IDragSourceHelper_FWD_DEFINED__
    510 #define __IDragSourceHelper_FWD_DEFINED__
    511 typedef interface IDragSourceHelper IDragSourceHelper;
    512 #ifdef __cplusplus
    513 interface IDragSourceHelper;
    514 #endif /* __cplusplus */
    515 #endif
    516 
    517 #ifndef __IDragSourceHelper2_FWD_DEFINED__
    518 #define __IDragSourceHelper2_FWD_DEFINED__
    519 typedef interface IDragSourceHelper2 IDragSourceHelper2;
    520 #ifdef __cplusplus
    521 interface IDragSourceHelper2;
    522 #endif /* __cplusplus */
    523 #endif
    524 
    525 #ifndef __IShellLinkA_FWD_DEFINED__
    526 #define __IShellLinkA_FWD_DEFINED__
    527 typedef interface IShellLinkA IShellLinkA;
    528 #ifdef __cplusplus
    529 interface IShellLinkA;
    530 #endif /* __cplusplus */
    531 #endif
    532 
    533 #ifndef __IShellLinkW_FWD_DEFINED__
    534 #define __IShellLinkW_FWD_DEFINED__
    535 typedef interface IShellLinkW IShellLinkW;
    536 #ifdef __cplusplus
    537 interface IShellLinkW;
    538 #endif /* __cplusplus */
    539 #endif
    540 
    541 #ifndef __IShellLinkDataList_FWD_DEFINED__
    542 #define __IShellLinkDataList_FWD_DEFINED__
    543 typedef interface IShellLinkDataList IShellLinkDataList;
    544 #ifdef __cplusplus
    545 interface IShellLinkDataList;
    546 #endif /* __cplusplus */
    547 #endif
    548 
    549 #ifndef __IResolveShellLink_FWD_DEFINED__
    550 #define __IResolveShellLink_FWD_DEFINED__
    551 typedef interface IResolveShellLink IResolveShellLink;
    552 #ifdef __cplusplus
    553 interface IResolveShellLink;
    554 #endif /* __cplusplus */
    555 #endif
    556 
    557 #ifndef __IActionProgressDialog_FWD_DEFINED__
    558 #define __IActionProgressDialog_FWD_DEFINED__
    559 typedef interface IActionProgressDialog IActionProgressDialog;
    560 #ifdef __cplusplus
    561 interface IActionProgressDialog;
    562 #endif /* __cplusplus */
    563 #endif
    564 
    565 #ifndef __IHWEventHandler_FWD_DEFINED__
    566 #define __IHWEventHandler_FWD_DEFINED__
    567 typedef interface IHWEventHandler IHWEventHandler;
    568 #ifdef __cplusplus
    569 interface IHWEventHandler;
    570 #endif /* __cplusplus */
    571 #endif
    572 
    573 #ifndef __IHWEventHandler2_FWD_DEFINED__
    574 #define __IHWEventHandler2_FWD_DEFINED__
    575 typedef interface IHWEventHandler2 IHWEventHandler2;
    576 #ifdef __cplusplus
    577 interface IHWEventHandler2;
    578 #endif /* __cplusplus */
    579 #endif
    580 
    581 #ifndef __IQueryCancelAutoPlay_FWD_DEFINED__
    582 #define __IQueryCancelAutoPlay_FWD_DEFINED__
    583 typedef interface IQueryCancelAutoPlay IQueryCancelAutoPlay;
    584 #ifdef __cplusplus
    585 interface IQueryCancelAutoPlay;
    586 #endif /* __cplusplus */
    587 #endif
    588 
    589 #ifndef __IDynamicHWHandler_FWD_DEFINED__
    590 #define __IDynamicHWHandler_FWD_DEFINED__
    591 typedef interface IDynamicHWHandler IDynamicHWHandler;
    592 #ifdef __cplusplus
    593 interface IDynamicHWHandler;
    594 #endif /* __cplusplus */
    595 #endif
    596 
    597 #ifndef __IActionProgress_FWD_DEFINED__
    598 #define __IActionProgress_FWD_DEFINED__
    599 typedef interface IActionProgress IActionProgress;
    600 #ifdef __cplusplus
    601 interface IActionProgress;
    602 #endif /* __cplusplus */
    603 #endif
    604 
    605 #ifndef __IShellExtInit_FWD_DEFINED__
    606 #define __IShellExtInit_FWD_DEFINED__
    607 typedef interface IShellExtInit IShellExtInit;
    608 #ifdef __cplusplus
    609 interface IShellExtInit;
    610 #endif /* __cplusplus */
    611 #endif
    612 
    613 #ifndef __IShellPropSheetExt_FWD_DEFINED__
    614 #define __IShellPropSheetExt_FWD_DEFINED__
    615 typedef interface IShellPropSheetExt IShellPropSheetExt;
    616 #ifdef __cplusplus
    617 interface IShellPropSheetExt;
    618 #endif /* __cplusplus */
    619 #endif
    620 
    621 #ifndef __IRemoteComputer_FWD_DEFINED__
    622 #define __IRemoteComputer_FWD_DEFINED__
    623 typedef interface IRemoteComputer IRemoteComputer;
    624 #ifdef __cplusplus
    625 interface IRemoteComputer;
    626 #endif /* __cplusplus */
    627 #endif
    628 
    629 #ifndef __IQueryContinue_FWD_DEFINED__
    630 #define __IQueryContinue_FWD_DEFINED__
    631 typedef interface IQueryContinue IQueryContinue;
    632 #ifdef __cplusplus
    633 interface IQueryContinue;
    634 #endif /* __cplusplus */
    635 #endif
    636 
    637 #ifndef __IObjectWithCancelEvent_FWD_DEFINED__
    638 #define __IObjectWithCancelEvent_FWD_DEFINED__
    639 typedef interface IObjectWithCancelEvent IObjectWithCancelEvent;
    640 #ifdef __cplusplus
    641 interface IObjectWithCancelEvent;
    642 #endif /* __cplusplus */
    643 #endif
    644 
    645 #ifndef __IUserNotification_FWD_DEFINED__
    646 #define __IUserNotification_FWD_DEFINED__
    647 typedef interface IUserNotification IUserNotification;
    648 #ifdef __cplusplus
    649 interface IUserNotification;
    650 #endif /* __cplusplus */
    651 #endif
    652 
    653 #ifndef __IUserNotificationCallback_FWD_DEFINED__
    654 #define __IUserNotificationCallback_FWD_DEFINED__
    655 typedef interface IUserNotificationCallback IUserNotificationCallback;
    656 #ifdef __cplusplus
    657 interface IUserNotificationCallback;
    658 #endif /* __cplusplus */
    659 #endif
    660 
    661 #ifndef __IUserNotification2_FWD_DEFINED__
    662 #define __IUserNotification2_FWD_DEFINED__
    663 typedef interface IUserNotification2 IUserNotification2;
    664 #ifdef __cplusplus
    665 interface IUserNotification2;
    666 #endif /* __cplusplus */
    667 #endif
    668 
    669 #ifndef __IItemNameLimits_FWD_DEFINED__
    670 #define __IItemNameLimits_FWD_DEFINED__
    671 typedef interface IItemNameLimits IItemNameLimits;
    672 #ifdef __cplusplus
    673 interface IItemNameLimits;
    674 #endif /* __cplusplus */
    675 #endif
    676 
    677 #ifndef __ISearchFolderItemFactory_FWD_DEFINED__
    678 #define __ISearchFolderItemFactory_FWD_DEFINED__
    679 typedef interface ISearchFolderItemFactory ISearchFolderItemFactory;
    680 #ifdef __cplusplus
    681 interface ISearchFolderItemFactory;
    682 #endif /* __cplusplus */
    683 #endif
    684 
    685 #ifndef __IExtractImage_FWD_DEFINED__
    686 #define __IExtractImage_FWD_DEFINED__
    687 typedef interface IExtractImage IExtractImage;
    688 #ifdef __cplusplus
    689 interface IExtractImage;
    690 #endif /* __cplusplus */
    691 #endif
    692 
    693 #ifndef __IExtractImage2_FWD_DEFINED__
    694 #define __IExtractImage2_FWD_DEFINED__
    695 typedef interface IExtractImage2 IExtractImage2;
    696 #ifdef __cplusplus
    697 interface IExtractImage2;
    698 #endif /* __cplusplus */
    699 #endif
    700 
    701 #ifndef __IThumbnailHandlerFactory_FWD_DEFINED__
    702 #define __IThumbnailHandlerFactory_FWD_DEFINED__
    703 typedef interface IThumbnailHandlerFactory IThumbnailHandlerFactory;
    704 #ifdef __cplusplus
    705 interface IThumbnailHandlerFactory;
    706 #endif /* __cplusplus */
    707 #endif
    708 
    709 #ifndef __IParentAndItem_FWD_DEFINED__
    710 #define __IParentAndItem_FWD_DEFINED__
    711 typedef interface IParentAndItem IParentAndItem;
    712 #ifdef __cplusplus
    713 interface IParentAndItem;
    714 #endif /* __cplusplus */
    715 #endif
    716 
    717 #ifndef __IDockingWindow_FWD_DEFINED__
    718 #define __IDockingWindow_FWD_DEFINED__
    719 typedef interface IDockingWindow IDockingWindow;
    720 #ifdef __cplusplus
    721 interface IDockingWindow;
    722 #endif /* __cplusplus */
    723 #endif
    724 
    725 #ifndef __IDeskBand_FWD_DEFINED__
    726 #define __IDeskBand_FWD_DEFINED__
    727 typedef interface IDeskBand IDeskBand;
    728 #ifdef __cplusplus
    729 interface IDeskBand;
    730 #endif /* __cplusplus */
    731 #endif
    732 
    733 #ifndef __IDeskBandInfo_FWD_DEFINED__
    734 #define __IDeskBandInfo_FWD_DEFINED__
    735 typedef interface IDeskBandInfo IDeskBandInfo;
    736 #ifdef __cplusplus
    737 interface IDeskBandInfo;
    738 #endif /* __cplusplus */
    739 #endif
    740 
    741 #ifndef __IDeskBand2_FWD_DEFINED__
    742 #define __IDeskBand2_FWD_DEFINED__
    743 typedef interface IDeskBand2 IDeskBand2;
    744 #ifdef __cplusplus
    745 interface IDeskBand2;
    746 #endif /* __cplusplus */
    747 #endif
    748 
    749 #ifndef __ITaskbarList_FWD_DEFINED__
    750 #define __ITaskbarList_FWD_DEFINED__
    751 typedef interface ITaskbarList ITaskbarList;
    752 #ifdef __cplusplus
    753 interface ITaskbarList;
    754 #endif /* __cplusplus */
    755 #endif
    756 
    757 #ifndef __ITaskbarList2_FWD_DEFINED__
    758 #define __ITaskbarList2_FWD_DEFINED__
    759 typedef interface ITaskbarList2 ITaskbarList2;
    760 #ifdef __cplusplus
    761 interface ITaskbarList2;
    762 #endif /* __cplusplus */
    763 #endif
    764 
    765 #ifndef __ITaskbarList3_FWD_DEFINED__
    766 #define __ITaskbarList3_FWD_DEFINED__
    767 typedef interface ITaskbarList3 ITaskbarList3;
    768 #ifdef __cplusplus
    769 interface ITaskbarList3;
    770 #endif /* __cplusplus */
    771 #endif
    772 
    773 #ifndef __ITaskbarList4_FWD_DEFINED__
    774 #define __ITaskbarList4_FWD_DEFINED__
    775 typedef interface ITaskbarList4 ITaskbarList4;
    776 #ifdef __cplusplus
    777 interface ITaskbarList4;
    778 #endif /* __cplusplus */
    779 #endif
    780 
    781 #ifndef __IStartMenuPinnedList_FWD_DEFINED__
    782 #define __IStartMenuPinnedList_FWD_DEFINED__
    783 typedef interface IStartMenuPinnedList IStartMenuPinnedList;
    784 #ifdef __cplusplus
    785 interface IStartMenuPinnedList;
    786 #endif /* __cplusplus */
    787 #endif
    788 
    789 #ifndef __ICDBurn_FWD_DEFINED__
    790 #define __ICDBurn_FWD_DEFINED__
    791 typedef interface ICDBurn ICDBurn;
    792 #ifdef __cplusplus
    793 interface ICDBurn;
    794 #endif /* __cplusplus */
    795 #endif
    796 
    797 #ifndef __IWizardSite_FWD_DEFINED__
    798 #define __IWizardSite_FWD_DEFINED__
    799 typedef interface IWizardSite IWizardSite;
    800 #ifdef __cplusplus
    801 interface IWizardSite;
    802 #endif /* __cplusplus */
    803 #endif
    804 
    805 #ifndef __IWizardExtension_FWD_DEFINED__
    806 #define __IWizardExtension_FWD_DEFINED__
    807 typedef interface IWizardExtension IWizardExtension;
    808 #ifdef __cplusplus
    809 interface IWizardExtension;
    810 #endif /* __cplusplus */
    811 #endif
    812 
    813 #ifndef __IWebWizardExtension_FWD_DEFINED__
    814 #define __IWebWizardExtension_FWD_DEFINED__
    815 typedef interface IWebWizardExtension IWebWizardExtension;
    816 #ifdef __cplusplus
    817 interface IWebWizardExtension;
    818 #endif /* __cplusplus */
    819 #endif
    820 
    821 #ifndef __IPublishingWizard_FWD_DEFINED__
    822 #define __IPublishingWizard_FWD_DEFINED__
    823 typedef interface IPublishingWizard IPublishingWizard;
    824 #ifdef __cplusplus
    825 interface IPublishingWizard;
    826 #endif /* __cplusplus */
    827 #endif
    828 
    829 #ifndef __IFolderViewHost_FWD_DEFINED__
    830 #define __IFolderViewHost_FWD_DEFINED__
    831 typedef interface IFolderViewHost IFolderViewHost;
    832 #ifdef __cplusplus
    833 interface IFolderViewHost;
    834 #endif /* __cplusplus */
    835 #endif
    836 
    837 #ifndef __IExplorerBrowserEvents_FWD_DEFINED__
    838 #define __IExplorerBrowserEvents_FWD_DEFINED__
    839 typedef interface IExplorerBrowserEvents IExplorerBrowserEvents;
    840 #ifdef __cplusplus
    841 interface IExplorerBrowserEvents;
    842 #endif /* __cplusplus */
    843 #endif
    844 
    845 #ifndef __IExplorerBrowser_FWD_DEFINED__
    846 #define __IExplorerBrowser_FWD_DEFINED__
    847 typedef interface IExplorerBrowser IExplorerBrowser;
    848 #ifdef __cplusplus
    849 interface IExplorerBrowser;
    850 #endif /* __cplusplus */
    851 #endif
    852 
    853 #ifndef __IAccessibleObject_FWD_DEFINED__
    854 #define __IAccessibleObject_FWD_DEFINED__
    855 typedef interface IAccessibleObject IAccessibleObject;
    856 #ifdef __cplusplus
    857 interface IAccessibleObject;
    858 #endif /* __cplusplus */
    859 #endif
    860 
    861 #ifndef __IResultsFolder_FWD_DEFINED__
    862 #define __IResultsFolder_FWD_DEFINED__
    863 typedef interface IResultsFolder IResultsFolder;
    864 #ifdef __cplusplus
    865 interface IResultsFolder;
    866 #endif /* __cplusplus */
    867 #endif
    868 
    869 #ifndef __IEnumObjects_FWD_DEFINED__
    870 #define __IEnumObjects_FWD_DEFINED__
    871 typedef interface IEnumObjects IEnumObjects;
    872 #ifdef __cplusplus
    873 interface IEnumObjects;
    874 #endif /* __cplusplus */
    875 #endif
    876 
    877 #ifndef __IOperationsProgressDialog_FWD_DEFINED__
    878 #define __IOperationsProgressDialog_FWD_DEFINED__
    879 typedef interface IOperationsProgressDialog IOperationsProgressDialog;
    880 #ifdef __cplusplus
    881 interface IOperationsProgressDialog;
    882 #endif /* __cplusplus */
    883 #endif
    884 
    885 #ifndef __IIOCancelInformation_FWD_DEFINED__
    886 #define __IIOCancelInformation_FWD_DEFINED__
    887 typedef interface IIOCancelInformation IIOCancelInformation;
    888 #ifdef __cplusplus
    889 interface IIOCancelInformation;
    890 #endif /* __cplusplus */
    891 #endif
    892 
    893 #ifndef __IFileOperation_FWD_DEFINED__
    894 #define __IFileOperation_FWD_DEFINED__
    895 typedef interface IFileOperation IFileOperation;
    896 #ifdef __cplusplus
    897 interface IFileOperation;
    898 #endif /* __cplusplus */
    899 #endif
    900 
    901 #ifndef __IObjectProvider_FWD_DEFINED__
    902 #define __IObjectProvider_FWD_DEFINED__
    903 typedef interface IObjectProvider IObjectProvider;
    904 #ifdef __cplusplus
    905 interface IObjectProvider;
    906 #endif /* __cplusplus */
    907 #endif
    908 
    909 #ifndef __INamespaceWalkCB_FWD_DEFINED__
    910 #define __INamespaceWalkCB_FWD_DEFINED__
    911 typedef interface INamespaceWalkCB INamespaceWalkCB;
    912 #ifdef __cplusplus
    913 interface INamespaceWalkCB;
    914 #endif /* __cplusplus */
    915 #endif
    916 
    917 #ifndef __INamespaceWalkCB2_FWD_DEFINED__
    918 #define __INamespaceWalkCB2_FWD_DEFINED__
    919 typedef interface INamespaceWalkCB2 INamespaceWalkCB2;
    920 #ifdef __cplusplus
    921 interface INamespaceWalkCB2;
    922 #endif /* __cplusplus */
    923 #endif
    924 
    925 #ifndef __INamespaceWalk_FWD_DEFINED__
    926 #define __INamespaceWalk_FWD_DEFINED__
    927 typedef interface INamespaceWalk INamespaceWalk;
    928 #ifdef __cplusplus
    929 interface INamespaceWalk;
    930 #endif /* __cplusplus */
    931 #endif
    932 
    933 #ifndef __IAutoCompleteDropDown_FWD_DEFINED__
    934 #define __IAutoCompleteDropDown_FWD_DEFINED__
    935 typedef interface IAutoCompleteDropDown IAutoCompleteDropDown;
    936 #ifdef __cplusplus
    937 interface IAutoCompleteDropDown;
    938 #endif /* __cplusplus */
    939 #endif
    940 
    941 #ifndef __IBandSite_FWD_DEFINED__
    942 #define __IBandSite_FWD_DEFINED__
    943 typedef interface IBandSite IBandSite;
    944 #ifdef __cplusplus
    945 interface IBandSite;
    946 #endif /* __cplusplus */
    947 #endif
    948 
    949 #ifndef __IModalWindow_FWD_DEFINED__
    950 #define __IModalWindow_FWD_DEFINED__
    951 typedef interface IModalWindow IModalWindow;
    952 #ifdef __cplusplus
    953 interface IModalWindow;
    954 #endif /* __cplusplus */
    955 #endif
    956 
    957 #ifndef __ICDBurnExt_FWD_DEFINED__
    958 #define __ICDBurnExt_FWD_DEFINED__
    959 typedef interface ICDBurnExt ICDBurnExt;
    960 #ifdef __cplusplus
    961 interface ICDBurnExt;
    962 #endif /* __cplusplus */
    963 #endif
    964 
    965 #ifndef __IContextMenuSite_FWD_DEFINED__
    966 #define __IContextMenuSite_FWD_DEFINED__
    967 typedef interface IContextMenuSite IContextMenuSite;
    968 #ifdef __cplusplus
    969 interface IContextMenuSite;
    970 #endif /* __cplusplus */
    971 #endif
    972 
    973 #ifndef __IEnumReadyCallback_FWD_DEFINED__
    974 #define __IEnumReadyCallback_FWD_DEFINED__
    975 typedef interface IEnumReadyCallback IEnumReadyCallback;
    976 #ifdef __cplusplus
    977 interface IEnumReadyCallback;
    978 #endif /* __cplusplus */
    979 #endif
    980 
    981 #ifndef __IEnumerableView_FWD_DEFINED__
    982 #define __IEnumerableView_FWD_DEFINED__
    983 typedef interface IEnumerableView IEnumerableView;
    984 #ifdef __cplusplus
    985 interface IEnumerableView;
    986 #endif /* __cplusplus */
    987 #endif
    988 
    989 #ifndef __IInsertItem_FWD_DEFINED__
    990 #define __IInsertItem_FWD_DEFINED__
    991 typedef interface IInsertItem IInsertItem;
    992 #ifdef __cplusplus
    993 interface IInsertItem;
    994 #endif /* __cplusplus */
    995 #endif
    996 
    997 #ifndef __IMenuBand_FWD_DEFINED__
    998 #define __IMenuBand_FWD_DEFINED__
    999 typedef interface IMenuBand IMenuBand;
   1000 #ifdef __cplusplus
   1001 interface IMenuBand;
   1002 #endif /* __cplusplus */
   1003 #endif
   1004 
   1005 #ifndef __IFolderBandPriv_FWD_DEFINED__
   1006 #define __IFolderBandPriv_FWD_DEFINED__
   1007 typedef interface IFolderBandPriv IFolderBandPriv;
   1008 #ifdef __cplusplus
   1009 interface IFolderBandPriv;
   1010 #endif /* __cplusplus */
   1011 #endif
   1012 
   1013 #ifndef __IRegTreeItem_FWD_DEFINED__
   1014 #define __IRegTreeItem_FWD_DEFINED__
   1015 typedef interface IRegTreeItem IRegTreeItem;
   1016 #ifdef __cplusplus
   1017 interface IRegTreeItem;
   1018 #endif /* __cplusplus */
   1019 #endif
   1020 
   1021 #ifndef __IImageRecompress_FWD_DEFINED__
   1022 #define __IImageRecompress_FWD_DEFINED__
   1023 typedef interface IImageRecompress IImageRecompress;
   1024 #ifdef __cplusplus
   1025 interface IImageRecompress;
   1026 #endif /* __cplusplus */
   1027 #endif
   1028 
   1029 #ifndef __IDeskBar_FWD_DEFINED__
   1030 #define __IDeskBar_FWD_DEFINED__
   1031 typedef interface IDeskBar IDeskBar;
   1032 #ifdef __cplusplus
   1033 interface IDeskBar;
   1034 #endif /* __cplusplus */
   1035 #endif
   1036 
   1037 #ifndef __IMenuPopup_FWD_DEFINED__
   1038 #define __IMenuPopup_FWD_DEFINED__
   1039 typedef interface IMenuPopup IMenuPopup;
   1040 #ifdef __cplusplus
   1041 interface IMenuPopup;
   1042 #endif /* __cplusplus */
   1043 #endif
   1044 
   1045 #ifndef __IFileIsInUse_FWD_DEFINED__
   1046 #define __IFileIsInUse_FWD_DEFINED__
   1047 typedef interface IFileIsInUse IFileIsInUse;
   1048 #ifdef __cplusplus
   1049 interface IFileIsInUse;
   1050 #endif /* __cplusplus */
   1051 #endif
   1052 
   1053 #ifndef __IFileDialogEvents_FWD_DEFINED__
   1054 #define __IFileDialogEvents_FWD_DEFINED__
   1055 typedef interface IFileDialogEvents IFileDialogEvents;
   1056 #ifdef __cplusplus
   1057 interface IFileDialogEvents;
   1058 #endif /* __cplusplus */
   1059 #endif
   1060 
   1061 #ifndef __IFileDialog_FWD_DEFINED__
   1062 #define __IFileDialog_FWD_DEFINED__
   1063 typedef interface IFileDialog IFileDialog;
   1064 #ifdef __cplusplus
   1065 interface IFileDialog;
   1066 #endif /* __cplusplus */
   1067 #endif
   1068 
   1069 #ifndef __IFileSaveDialog_FWD_DEFINED__
   1070 #define __IFileSaveDialog_FWD_DEFINED__
   1071 typedef interface IFileSaveDialog IFileSaveDialog;
   1072 #ifdef __cplusplus
   1073 interface IFileSaveDialog;
   1074 #endif /* __cplusplus */
   1075 #endif
   1076 
   1077 #ifndef __IFileOpenDialog_FWD_DEFINED__
   1078 #define __IFileOpenDialog_FWD_DEFINED__
   1079 typedef interface IFileOpenDialog IFileOpenDialog;
   1080 #ifdef __cplusplus
   1081 interface IFileOpenDialog;
   1082 #endif /* __cplusplus */
   1083 #endif
   1084 
   1085 #ifndef __IFileDialogCustomize_FWD_DEFINED__
   1086 #define __IFileDialogCustomize_FWD_DEFINED__
   1087 typedef interface IFileDialogCustomize IFileDialogCustomize;
   1088 #ifdef __cplusplus
   1089 interface IFileDialogCustomize;
   1090 #endif /* __cplusplus */
   1091 #endif
   1092 
   1093 #ifndef __IFileDialogControlEvents_FWD_DEFINED__
   1094 #define __IFileDialogControlEvents_FWD_DEFINED__
   1095 typedef interface IFileDialogControlEvents IFileDialogControlEvents;
   1096 #ifdef __cplusplus
   1097 interface IFileDialogControlEvents;
   1098 #endif /* __cplusplus */
   1099 #endif
   1100 
   1101 #ifndef __IFileDialog2_FWD_DEFINED__
   1102 #define __IFileDialog2_FWD_DEFINED__
   1103 typedef interface IFileDialog2 IFileDialog2;
   1104 #ifdef __cplusplus
   1105 interface IFileDialog2;
   1106 #endif /* __cplusplus */
   1107 #endif
   1108 
   1109 #ifndef __IApplicationAssociationRegistration_FWD_DEFINED__
   1110 #define __IApplicationAssociationRegistration_FWD_DEFINED__
   1111 typedef interface IApplicationAssociationRegistration IApplicationAssociationRegistration;
   1112 #ifdef __cplusplus
   1113 interface IApplicationAssociationRegistration;
   1114 #endif /* __cplusplus */
   1115 #endif
   1116 
   1117 #ifndef __IApplicationAssociationRegistrationUI_FWD_DEFINED__
   1118 #define __IApplicationAssociationRegistrationUI_FWD_DEFINED__
   1119 typedef interface IApplicationAssociationRegistrationUI IApplicationAssociationRegistrationUI;
   1120 #ifdef __cplusplus
   1121 interface IApplicationAssociationRegistrationUI;
   1122 #endif /* __cplusplus */
   1123 #endif
   1124 
   1125 #ifndef __IDelegateFolder_FWD_DEFINED__
   1126 #define __IDelegateFolder_FWD_DEFINED__
   1127 typedef interface IDelegateFolder IDelegateFolder;
   1128 #ifdef __cplusplus
   1129 interface IDelegateFolder;
   1130 #endif /* __cplusplus */
   1131 #endif
   1132 
   1133 #ifndef __IBrowserFrameOptions_FWD_DEFINED__
   1134 #define __IBrowserFrameOptions_FWD_DEFINED__
   1135 typedef interface IBrowserFrameOptions IBrowserFrameOptions;
   1136 #ifdef __cplusplus
   1137 interface IBrowserFrameOptions;
   1138 #endif /* __cplusplus */
   1139 #endif
   1140 
   1141 #ifndef __INewWindowManager_FWD_DEFINED__
   1142 #define __INewWindowManager_FWD_DEFINED__
   1143 typedef interface INewWindowManager INewWindowManager;
   1144 #ifdef __cplusplus
   1145 interface INewWindowManager;
   1146 #endif /* __cplusplus */
   1147 #endif
   1148 
   1149 #ifndef __IAttachmentExecute_FWD_DEFINED__
   1150 #define __IAttachmentExecute_FWD_DEFINED__
   1151 typedef interface IAttachmentExecute IAttachmentExecute;
   1152 #ifdef __cplusplus
   1153 interface IAttachmentExecute;
   1154 #endif /* __cplusplus */
   1155 #endif
   1156 
   1157 #ifndef __IShellMenuCallback_FWD_DEFINED__
   1158 #define __IShellMenuCallback_FWD_DEFINED__
   1159 typedef interface IShellMenuCallback IShellMenuCallback;
   1160 #ifdef __cplusplus
   1161 interface IShellMenuCallback;
   1162 #endif /* __cplusplus */
   1163 #endif
   1164 
   1165 #ifndef __IShellMenu_FWD_DEFINED__
   1166 #define __IShellMenu_FWD_DEFINED__
   1167 typedef interface IShellMenu IShellMenu;
   1168 #ifdef __cplusplus
   1169 interface IShellMenu;
   1170 #endif /* __cplusplus */
   1171 #endif
   1172 
   1173 #ifndef __IShellRunDll_FWD_DEFINED__
   1174 #define __IShellRunDll_FWD_DEFINED__
   1175 typedef interface IShellRunDll IShellRunDll;
   1176 #ifdef __cplusplus
   1177 interface IShellRunDll;
   1178 #endif /* __cplusplus */
   1179 #endif
   1180 
   1181 #ifndef __IKnownFolder_FWD_DEFINED__
   1182 #define __IKnownFolder_FWD_DEFINED__
   1183 typedef interface IKnownFolder IKnownFolder;
   1184 #ifdef __cplusplus
   1185 interface IKnownFolder;
   1186 #endif /* __cplusplus */
   1187 #endif
   1188 
   1189 #ifndef __IKnownFolderManager_FWD_DEFINED__
   1190 #define __IKnownFolderManager_FWD_DEFINED__
   1191 typedef interface IKnownFolderManager IKnownFolderManager;
   1192 #ifdef __cplusplus
   1193 interface IKnownFolderManager;
   1194 #endif /* __cplusplus */
   1195 #endif
   1196 
   1197 #ifndef __ISharingConfigurationManager_FWD_DEFINED__
   1198 #define __ISharingConfigurationManager_FWD_DEFINED__
   1199 typedef interface ISharingConfigurationManager ISharingConfigurationManager;
   1200 #ifdef __cplusplus
   1201 interface ISharingConfigurationManager;
   1202 #endif /* __cplusplus */
   1203 #endif
   1204 
   1205 #ifndef __IPreviousVersionsInfo_FWD_DEFINED__
   1206 #define __IPreviousVersionsInfo_FWD_DEFINED__
   1207 typedef interface IPreviousVersionsInfo IPreviousVersionsInfo;
   1208 #ifdef __cplusplus
   1209 interface IPreviousVersionsInfo;
   1210 #endif /* __cplusplus */
   1211 #endif
   1212 
   1213 #ifndef __IRelatedItem_FWD_DEFINED__
   1214 #define __IRelatedItem_FWD_DEFINED__
   1215 typedef interface IRelatedItem IRelatedItem;
   1216 #ifdef __cplusplus
   1217 interface IRelatedItem;
   1218 #endif /* __cplusplus */
   1219 #endif
   1220 
   1221 #ifndef __IIdentityName_FWD_DEFINED__
   1222 #define __IIdentityName_FWD_DEFINED__
   1223 typedef interface IIdentityName IIdentityName;
   1224 #ifdef __cplusplus
   1225 interface IIdentityName;
   1226 #endif /* __cplusplus */
   1227 #endif
   1228 
   1229 #ifndef __IDelegateItem_FWD_DEFINED__
   1230 #define __IDelegateItem_FWD_DEFINED__
   1231 typedef interface IDelegateItem IDelegateItem;
   1232 #ifdef __cplusplus
   1233 interface IDelegateItem;
   1234 #endif /* __cplusplus */
   1235 #endif
   1236 
   1237 #ifndef __ICurrentItem_FWD_DEFINED__
   1238 #define __ICurrentItem_FWD_DEFINED__
   1239 typedef interface ICurrentItem ICurrentItem;
   1240 #ifdef __cplusplus
   1241 interface ICurrentItem;
   1242 #endif /* __cplusplus */
   1243 #endif
   1244 
   1245 #ifndef __ITransferMediumItem_FWD_DEFINED__
   1246 #define __ITransferMediumItem_FWD_DEFINED__
   1247 typedef interface ITransferMediumItem ITransferMediumItem;
   1248 #ifdef __cplusplus
   1249 interface ITransferMediumItem;
   1250 #endif /* __cplusplus */
   1251 #endif
   1252 
   1253 #ifndef __IUseToBrowseItem_FWD_DEFINED__
   1254 #define __IUseToBrowseItem_FWD_DEFINED__
   1255 typedef interface IUseToBrowseItem IUseToBrowseItem;
   1256 #ifdef __cplusplus
   1257 interface IUseToBrowseItem;
   1258 #endif /* __cplusplus */
   1259 #endif
   1260 
   1261 #ifndef __IDisplayItem_FWD_DEFINED__
   1262 #define __IDisplayItem_FWD_DEFINED__
   1263 typedef interface IDisplayItem IDisplayItem;
   1264 #ifdef __cplusplus
   1265 interface IDisplayItem;
   1266 #endif /* __cplusplus */
   1267 #endif
   1268 
   1269 #ifndef __IViewStateIdentityItem_FWD_DEFINED__
   1270 #define __IViewStateIdentityItem_FWD_DEFINED__
   1271 typedef interface IViewStateIdentityItem IViewStateIdentityItem;
   1272 #ifdef __cplusplus
   1273 interface IViewStateIdentityItem;
   1274 #endif /* __cplusplus */
   1275 #endif
   1276 
   1277 #ifndef __IPreviewItem_FWD_DEFINED__
   1278 #define __IPreviewItem_FWD_DEFINED__
   1279 typedef interface IPreviewItem IPreviewItem;
   1280 #ifdef __cplusplus
   1281 interface IPreviewItem;
   1282 #endif /* __cplusplus */
   1283 #endif
   1284 
   1285 #ifndef __IDestinationStreamFactory_FWD_DEFINED__
   1286 #define __IDestinationStreamFactory_FWD_DEFINED__
   1287 typedef interface IDestinationStreamFactory IDestinationStreamFactory;
   1288 #ifdef __cplusplus
   1289 interface IDestinationStreamFactory;
   1290 #endif /* __cplusplus */
   1291 #endif
   1292 
   1293 #ifndef __INewMenuClient_FWD_DEFINED__
   1294 #define __INewMenuClient_FWD_DEFINED__
   1295 typedef interface INewMenuClient INewMenuClient;
   1296 #ifdef __cplusplus
   1297 interface INewMenuClient;
   1298 #endif /* __cplusplus */
   1299 #endif
   1300 
   1301 #ifndef __IInitializeWithBindCtx_FWD_DEFINED__
   1302 #define __IInitializeWithBindCtx_FWD_DEFINED__
   1303 typedef interface IInitializeWithBindCtx IInitializeWithBindCtx;
   1304 #ifdef __cplusplus
   1305 interface IInitializeWithBindCtx;
   1306 #endif /* __cplusplus */
   1307 #endif
   1308 
   1309 #ifndef __IShellItemFilter_FWD_DEFINED__
   1310 #define __IShellItemFilter_FWD_DEFINED__
   1311 typedef interface IShellItemFilter IShellItemFilter;
   1312 #ifdef __cplusplus
   1313 interface IShellItemFilter;
   1314 #endif /* __cplusplus */
   1315 #endif
   1316 
   1317 #ifndef __INameSpaceTreeControl_FWD_DEFINED__
   1318 #define __INameSpaceTreeControl_FWD_DEFINED__
   1319 typedef interface INameSpaceTreeControl INameSpaceTreeControl;
   1320 #ifdef __cplusplus
   1321 interface INameSpaceTreeControl;
   1322 #endif /* __cplusplus */
   1323 #endif
   1324 
   1325 #ifndef __INameSpaceTreeControl2_FWD_DEFINED__
   1326 #define __INameSpaceTreeControl2_FWD_DEFINED__
   1327 typedef interface INameSpaceTreeControl2 INameSpaceTreeControl2;
   1328 #ifdef __cplusplus
   1329 interface INameSpaceTreeControl2;
   1330 #endif /* __cplusplus */
   1331 #endif
   1332 
   1333 #ifndef __INameSpaceTreeControlEvents_FWD_DEFINED__
   1334 #define __INameSpaceTreeControlEvents_FWD_DEFINED__
   1335 typedef interface INameSpaceTreeControlEvents INameSpaceTreeControlEvents;
   1336 #ifdef __cplusplus
   1337 interface INameSpaceTreeControlEvents;
   1338 #endif /* __cplusplus */
   1339 #endif
   1340 
   1341 #ifndef __INameSpaceTreeControlDropHandler_FWD_DEFINED__
   1342 #define __INameSpaceTreeControlDropHandler_FWD_DEFINED__
   1343 typedef interface INameSpaceTreeControlDropHandler INameSpaceTreeControlDropHandler;
   1344 #ifdef __cplusplus
   1345 interface INameSpaceTreeControlDropHandler;
   1346 #endif /* __cplusplus */
   1347 #endif
   1348 
   1349 #ifndef __INameSpaceTreeAccessible_FWD_DEFINED__
   1350 #define __INameSpaceTreeAccessible_FWD_DEFINED__
   1351 typedef interface INameSpaceTreeAccessible INameSpaceTreeAccessible;
   1352 #ifdef __cplusplus
   1353 interface INameSpaceTreeAccessible;
   1354 #endif /* __cplusplus */
   1355 #endif
   1356 
   1357 #ifndef __INameSpaceTreeControlCustomDraw_FWD_DEFINED__
   1358 #define __INameSpaceTreeControlCustomDraw_FWD_DEFINED__
   1359 typedef interface INameSpaceTreeControlCustomDraw INameSpaceTreeControlCustomDraw;
   1360 #ifdef __cplusplus
   1361 interface INameSpaceTreeControlCustomDraw;
   1362 #endif /* __cplusplus */
   1363 #endif
   1364 
   1365 #ifndef __INameSpaceTreeControlFolderCapabilities_FWD_DEFINED__
   1366 #define __INameSpaceTreeControlFolderCapabilities_FWD_DEFINED__
   1367 typedef interface INameSpaceTreeControlFolderCapabilities INameSpaceTreeControlFolderCapabilities;
   1368 #ifdef __cplusplus
   1369 interface INameSpaceTreeControlFolderCapabilities;
   1370 #endif /* __cplusplus */
   1371 #endif
   1372 
   1373 #ifndef __IPreviewHandler_FWD_DEFINED__
   1374 #define __IPreviewHandler_FWD_DEFINED__
   1375 typedef interface IPreviewHandler IPreviewHandler;
   1376 #ifdef __cplusplus
   1377 interface IPreviewHandler;
   1378 #endif /* __cplusplus */
   1379 #endif
   1380 
   1381 #ifndef __IPreviewHandlerFrame_FWD_DEFINED__
   1382 #define __IPreviewHandlerFrame_FWD_DEFINED__
   1383 typedef interface IPreviewHandlerFrame IPreviewHandlerFrame;
   1384 #ifdef __cplusplus
   1385 interface IPreviewHandlerFrame;
   1386 #endif /* __cplusplus */
   1387 #endif
   1388 
   1389 #ifndef __ITrayDeskBand_FWD_DEFINED__
   1390 #define __ITrayDeskBand_FWD_DEFINED__
   1391 typedef interface ITrayDeskBand ITrayDeskBand;
   1392 #ifdef __cplusplus
   1393 interface ITrayDeskBand;
   1394 #endif /* __cplusplus */
   1395 #endif
   1396 
   1397 #ifndef __IBandHost_FWD_DEFINED__
   1398 #define __IBandHost_FWD_DEFINED__
   1399 typedef interface IBandHost IBandHost;
   1400 #ifdef __cplusplus
   1401 interface IBandHost;
   1402 #endif /* __cplusplus */
   1403 #endif
   1404 
   1405 #ifndef __IExplorerPaneVisibility_FWD_DEFINED__
   1406 #define __IExplorerPaneVisibility_FWD_DEFINED__
   1407 typedef interface IExplorerPaneVisibility IExplorerPaneVisibility;
   1408 #ifdef __cplusplus
   1409 interface IExplorerPaneVisibility;
   1410 #endif /* __cplusplus */
   1411 #endif
   1412 
   1413 #ifndef __IContextMenuCB_FWD_DEFINED__
   1414 #define __IContextMenuCB_FWD_DEFINED__
   1415 typedef interface IContextMenuCB IContextMenuCB;
   1416 #ifdef __cplusplus
   1417 interface IContextMenuCB;
   1418 #endif /* __cplusplus */
   1419 #endif
   1420 
   1421 #ifndef __IDefaultExtractIconInit_FWD_DEFINED__
   1422 #define __IDefaultExtractIconInit_FWD_DEFINED__
   1423 typedef interface IDefaultExtractIconInit IDefaultExtractIconInit;
   1424 #ifdef __cplusplus
   1425 interface IDefaultExtractIconInit;
   1426 #endif /* __cplusplus */
   1427 #endif
   1428 
   1429 #ifndef __IExplorerCommand_FWD_DEFINED__
   1430 #define __IExplorerCommand_FWD_DEFINED__
   1431 typedef interface IExplorerCommand IExplorerCommand;
   1432 #ifdef __cplusplus
   1433 interface IExplorerCommand;
   1434 #endif /* __cplusplus */
   1435 #endif
   1436 
   1437 #ifndef __IExplorerCommandState_FWD_DEFINED__
   1438 #define __IExplorerCommandState_FWD_DEFINED__
   1439 typedef interface IExplorerCommandState IExplorerCommandState;
   1440 #ifdef __cplusplus
   1441 interface IExplorerCommandState;
   1442 #endif /* __cplusplus */
   1443 #endif
   1444 
   1445 #ifndef __IInitializeCommand_FWD_DEFINED__
   1446 #define __IInitializeCommand_FWD_DEFINED__
   1447 typedef interface IInitializeCommand IInitializeCommand;
   1448 #ifdef __cplusplus
   1449 interface IInitializeCommand;
   1450 #endif /* __cplusplus */
   1451 #endif
   1452 
   1453 #ifndef __IEnumExplorerCommand_FWD_DEFINED__
   1454 #define __IEnumExplorerCommand_FWD_DEFINED__
   1455 typedef interface IEnumExplorerCommand IEnumExplorerCommand;
   1456 #ifdef __cplusplus
   1457 interface IEnumExplorerCommand;
   1458 #endif /* __cplusplus */
   1459 #endif
   1460 
   1461 #ifndef __IExplorerCommandProvider_FWD_DEFINED__
   1462 #define __IExplorerCommandProvider_FWD_DEFINED__
   1463 typedef interface IExplorerCommandProvider IExplorerCommandProvider;
   1464 #ifdef __cplusplus
   1465 interface IExplorerCommandProvider;
   1466 #endif /* __cplusplus */
   1467 #endif
   1468 
   1469 #ifndef __IInitializeNetworkFolder_FWD_DEFINED__
   1470 #define __IInitializeNetworkFolder_FWD_DEFINED__
   1471 typedef interface IInitializeNetworkFolder IInitializeNetworkFolder;
   1472 #ifdef __cplusplus
   1473 interface IInitializeNetworkFolder;
   1474 #endif /* __cplusplus */
   1475 #endif
   1476 
   1477 #ifndef __IOpenControlPanel_FWD_DEFINED__
   1478 #define __IOpenControlPanel_FWD_DEFINED__
   1479 typedef interface IOpenControlPanel IOpenControlPanel;
   1480 #ifdef __cplusplus
   1481 interface IOpenControlPanel;
   1482 #endif /* __cplusplus */
   1483 #endif
   1484 
   1485 #ifndef __IComputerInfoChangeNotify_FWD_DEFINED__
   1486 #define __IComputerInfoChangeNotify_FWD_DEFINED__
   1487 typedef interface IComputerInfoChangeNotify IComputerInfoChangeNotify;
   1488 #ifdef __cplusplus
   1489 interface IComputerInfoChangeNotify;
   1490 #endif /* __cplusplus */
   1491 #endif
   1492 
   1493 #ifndef __IFileSystemBindData_FWD_DEFINED__
   1494 #define __IFileSystemBindData_FWD_DEFINED__
   1495 typedef interface IFileSystemBindData IFileSystemBindData;
   1496 #ifdef __cplusplus
   1497 interface IFileSystemBindData;
   1498 #endif /* __cplusplus */
   1499 #endif
   1500 
   1501 #ifndef __IFileSystemBindData2_FWD_DEFINED__
   1502 #define __IFileSystemBindData2_FWD_DEFINED__
   1503 typedef interface IFileSystemBindData2 IFileSystemBindData2;
   1504 #ifdef __cplusplus
   1505 interface IFileSystemBindData2;
   1506 #endif /* __cplusplus */
   1507 #endif
   1508 
   1509 #ifndef __ICustomDestinationList_FWD_DEFINED__
   1510 #define __ICustomDestinationList_FWD_DEFINED__
   1511 typedef interface ICustomDestinationList ICustomDestinationList;
   1512 #ifdef __cplusplus
   1513 interface ICustomDestinationList;
   1514 #endif /* __cplusplus */
   1515 #endif
   1516 
   1517 #ifndef __IApplicationDestinations_FWD_DEFINED__
   1518 #define __IApplicationDestinations_FWD_DEFINED__
   1519 typedef interface IApplicationDestinations IApplicationDestinations;
   1520 #ifdef __cplusplus
   1521 interface IApplicationDestinations;
   1522 #endif /* __cplusplus */
   1523 #endif
   1524 
   1525 #ifndef __IApplicationDocumentLists_FWD_DEFINED__
   1526 #define __IApplicationDocumentLists_FWD_DEFINED__
   1527 typedef interface IApplicationDocumentLists IApplicationDocumentLists;
   1528 #ifdef __cplusplus
   1529 interface IApplicationDocumentLists;
   1530 #endif /* __cplusplus */
   1531 #endif
   1532 
   1533 #ifndef __IObjectWithAppUserModelID_FWD_DEFINED__
   1534 #define __IObjectWithAppUserModelID_FWD_DEFINED__
   1535 typedef interface IObjectWithAppUserModelID IObjectWithAppUserModelID;
   1536 #ifdef __cplusplus
   1537 interface IObjectWithAppUserModelID;
   1538 #endif /* __cplusplus */
   1539 #endif
   1540 
   1541 #ifndef __IObjectWithProgID_FWD_DEFINED__
   1542 #define __IObjectWithProgID_FWD_DEFINED__
   1543 typedef interface IObjectWithProgID IObjectWithProgID;
   1544 #ifdef __cplusplus
   1545 interface IObjectWithProgID;
   1546 #endif /* __cplusplus */
   1547 #endif
   1548 
   1549 #ifndef __IUpdateIDList_FWD_DEFINED__
   1550 #define __IUpdateIDList_FWD_DEFINED__
   1551 typedef interface IUpdateIDList IUpdateIDList;
   1552 #ifdef __cplusplus
   1553 interface IUpdateIDList;
   1554 #endif /* __cplusplus */
   1555 #endif
   1556 
   1557 #ifndef __IDesktopGadget_FWD_DEFINED__
   1558 #define __IDesktopGadget_FWD_DEFINED__
   1559 typedef interface IDesktopGadget IDesktopGadget;
   1560 #ifdef __cplusplus
   1561 interface IDesktopGadget;
   1562 #endif /* __cplusplus */
   1563 #endif
   1564 
   1565 #ifndef __IVirtualDesktopManager_FWD_DEFINED__
   1566 #define __IVirtualDesktopManager_FWD_DEFINED__
   1567 typedef interface IVirtualDesktopManager IVirtualDesktopManager;
   1568 #ifdef __cplusplus
   1569 interface IVirtualDesktopManager;
   1570 #endif /* __cplusplus */
   1571 #endif
   1572 
   1573 #ifndef __IDesktopWallpaper_FWD_DEFINED__
   1574 #define __IDesktopWallpaper_FWD_DEFINED__
   1575 typedef interface IDesktopWallpaper IDesktopWallpaper;
   1576 #ifdef __cplusplus
   1577 interface IDesktopWallpaper;
   1578 #endif /* __cplusplus */
   1579 #endif
   1580 
   1581 #ifndef __IHomeGroup_FWD_DEFINED__
   1582 #define __IHomeGroup_FWD_DEFINED__
   1583 typedef interface IHomeGroup IHomeGroup;
   1584 #ifdef __cplusplus
   1585 interface IHomeGroup;
   1586 #endif /* __cplusplus */
   1587 #endif
   1588 
   1589 #ifndef __IInitializeWithPropertyStore_FWD_DEFINED__
   1590 #define __IInitializeWithPropertyStore_FWD_DEFINED__
   1591 typedef interface IInitializeWithPropertyStore IInitializeWithPropertyStore;
   1592 #ifdef __cplusplus
   1593 interface IInitializeWithPropertyStore;
   1594 #endif /* __cplusplus */
   1595 #endif
   1596 
   1597 #ifndef __IOpenSearchSource_FWD_DEFINED__
   1598 #define __IOpenSearchSource_FWD_DEFINED__
   1599 typedef interface IOpenSearchSource IOpenSearchSource;
   1600 #ifdef __cplusplus
   1601 interface IOpenSearchSource;
   1602 #endif /* __cplusplus */
   1603 #endif
   1604 
   1605 #ifndef __IShellLibrary_FWD_DEFINED__
   1606 #define __IShellLibrary_FWD_DEFINED__
   1607 typedef interface IShellLibrary IShellLibrary;
   1608 #ifdef __cplusplus
   1609 interface IShellLibrary;
   1610 #endif /* __cplusplus */
   1611 #endif
   1612 
   1613 #ifndef __IPlaybackManagerEvents_FWD_DEFINED__
   1614 #define __IPlaybackManagerEvents_FWD_DEFINED__
   1615 typedef interface IPlaybackManagerEvents IPlaybackManagerEvents;
   1616 #ifdef __cplusplus
   1617 interface IPlaybackManagerEvents;
   1618 #endif /* __cplusplus */
   1619 #endif
   1620 
   1621 #ifndef __IPlaybackManager_FWD_DEFINED__
   1622 #define __IPlaybackManager_FWD_DEFINED__
   1623 typedef interface IPlaybackManager IPlaybackManager;
   1624 #ifdef __cplusplus
   1625 interface IPlaybackManager;
   1626 #endif /* __cplusplus */
   1627 #endif
   1628 
   1629 #ifndef __IDefaultFolderMenuInitialize_FWD_DEFINED__
   1630 #define __IDefaultFolderMenuInitialize_FWD_DEFINED__
   1631 typedef interface IDefaultFolderMenuInitialize IDefaultFolderMenuInitialize;
   1632 #ifdef __cplusplus
   1633 interface IDefaultFolderMenuInitialize;
   1634 #endif /* __cplusplus */
   1635 #endif
   1636 
   1637 #ifndef __IApplicationActivationManager_FWD_DEFINED__
   1638 #define __IApplicationActivationManager_FWD_DEFINED__
   1639 typedef interface IApplicationActivationManager IApplicationActivationManager;
   1640 #ifdef __cplusplus
   1641 interface IApplicationActivationManager;
   1642 #endif /* __cplusplus */
   1643 #endif
   1644 
   1645 #ifndef __DesktopWallpaper_FWD_DEFINED__
   1646 #define __DesktopWallpaper_FWD_DEFINED__
   1647 #ifdef __cplusplus
   1648 typedef class DesktopWallpaper DesktopWallpaper;
   1649 #else
   1650 typedef struct DesktopWallpaper DesktopWallpaper;
   1651 #endif /* defined __cplusplus */
   1652 #endif /* defined __DesktopWallpaper_FWD_DEFINED__ */
   1653 
   1654 #ifndef __ShellDesktop_FWD_DEFINED__
   1655 #define __ShellDesktop_FWD_DEFINED__
   1656 #ifdef __cplusplus
   1657 typedef class ShellDesktop ShellDesktop;
   1658 #else
   1659 typedef struct ShellDesktop ShellDesktop;
   1660 #endif /* defined __cplusplus */
   1661 #endif /* defined __ShellDesktop_FWD_DEFINED__ */
   1662 
   1663 #ifndef __ShellFSFolder_FWD_DEFINED__
   1664 #define __ShellFSFolder_FWD_DEFINED__
   1665 #ifdef __cplusplus
   1666 typedef class ShellFSFolder ShellFSFolder;
   1667 #else
   1668 typedef struct ShellFSFolder ShellFSFolder;
   1669 #endif /* defined __cplusplus */
   1670 #endif /* defined __ShellFSFolder_FWD_DEFINED__ */
   1671 
   1672 #ifndef __NetworkPlaces_FWD_DEFINED__
   1673 #define __NetworkPlaces_FWD_DEFINED__
   1674 #ifdef __cplusplus
   1675 typedef class NetworkPlaces NetworkPlaces;
   1676 #else
   1677 typedef struct NetworkPlaces NetworkPlaces;
   1678 #endif /* defined __cplusplus */
   1679 #endif /* defined __NetworkPlaces_FWD_DEFINED__ */
   1680 
   1681 #ifndef __ShellLink_FWD_DEFINED__
   1682 #define __ShellLink_FWD_DEFINED__
   1683 #ifdef __cplusplus
   1684 typedef class ShellLink ShellLink;
   1685 #else
   1686 typedef struct ShellLink ShellLink;
   1687 #endif /* defined __cplusplus */
   1688 #endif /* defined __ShellLink_FWD_DEFINED__ */
   1689 
   1690 #ifndef __QueryCancelAutoPlay_FWD_DEFINED__
   1691 #define __QueryCancelAutoPlay_FWD_DEFINED__
   1692 #ifdef __cplusplus
   1693 typedef class QueryCancelAutoPlay QueryCancelAutoPlay;
   1694 #else
   1695 typedef struct QueryCancelAutoPlay QueryCancelAutoPlay;
   1696 #endif /* defined __cplusplus */
   1697 #endif /* defined __QueryCancelAutoPlay_FWD_DEFINED__ */
   1698 
   1699 #ifndef __DriveSizeCategorizer_FWD_DEFINED__
   1700 #define __DriveSizeCategorizer_FWD_DEFINED__
   1701 #ifdef __cplusplus
   1702 typedef class DriveSizeCategorizer DriveSizeCategorizer;
   1703 #else
   1704 typedef struct DriveSizeCategorizer DriveSizeCategorizer;
   1705 #endif /* defined __cplusplus */
   1706 #endif /* defined __DriveSizeCategorizer_FWD_DEFINED__ */
   1707 
   1708 #ifndef __DriveTypeCategorizer_FWD_DEFINED__
   1709 #define __DriveTypeCategorizer_FWD_DEFINED__
   1710 #ifdef __cplusplus
   1711 typedef class DriveTypeCategorizer DriveTypeCategorizer;
   1712 #else
   1713 typedef struct DriveTypeCategorizer DriveTypeCategorizer;
   1714 #endif /* defined __cplusplus */
   1715 #endif /* defined __DriveTypeCategorizer_FWD_DEFINED__ */
   1716 
   1717 #ifndef __FreeSpaceCategorizer_FWD_DEFINED__
   1718 #define __FreeSpaceCategorizer_FWD_DEFINED__
   1719 #ifdef __cplusplus
   1720 typedef class FreeSpaceCategorizer FreeSpaceCategorizer;
   1721 #else
   1722 typedef struct FreeSpaceCategorizer FreeSpaceCategorizer;
   1723 #endif /* defined __cplusplus */
   1724 #endif /* defined __FreeSpaceCategorizer_FWD_DEFINED__ */
   1725 
   1726 #ifndef __TimeCategorizer_FWD_DEFINED__
   1727 #define __TimeCategorizer_FWD_DEFINED__
   1728 #ifdef __cplusplus
   1729 typedef class TimeCategorizer TimeCategorizer;
   1730 #else
   1731 typedef struct TimeCategorizer TimeCategorizer;
   1732 #endif /* defined __cplusplus */
   1733 #endif /* defined __TimeCategorizer_FWD_DEFINED__ */
   1734 
   1735 #ifndef __SizeCategorizer_FWD_DEFINED__
   1736 #define __SizeCategorizer_FWD_DEFINED__
   1737 #ifdef __cplusplus
   1738 typedef class SizeCategorizer SizeCategorizer;
   1739 #else
   1740 typedef struct SizeCategorizer SizeCategorizer;
   1741 #endif /* defined __cplusplus */
   1742 #endif /* defined __SizeCategorizer_FWD_DEFINED__ */
   1743 
   1744 #ifndef __AlphabeticalCategorizer_FWD_DEFINED__
   1745 #define __AlphabeticalCategorizer_FWD_DEFINED__
   1746 #ifdef __cplusplus
   1747 typedef class AlphabeticalCategorizer AlphabeticalCategorizer;
   1748 #else
   1749 typedef struct AlphabeticalCategorizer AlphabeticalCategorizer;
   1750 #endif /* defined __cplusplus */
   1751 #endif /* defined __AlphabeticalCategorizer_FWD_DEFINED__ */
   1752 
   1753 #ifndef __MergedCategorizer_FWD_DEFINED__
   1754 #define __MergedCategorizer_FWD_DEFINED__
   1755 #ifdef __cplusplus
   1756 typedef class MergedCategorizer MergedCategorizer;
   1757 #else
   1758 typedef struct MergedCategorizer MergedCategorizer;
   1759 #endif /* defined __cplusplus */
   1760 #endif /* defined __MergedCategorizer_FWD_DEFINED__ */
   1761 
   1762 #ifndef __ImageProperties_FWD_DEFINED__
   1763 #define __ImageProperties_FWD_DEFINED__
   1764 #ifdef __cplusplus
   1765 typedef class ImageProperties ImageProperties;
   1766 #else
   1767 typedef struct ImageProperties ImageProperties;
   1768 #endif /* defined __cplusplus */
   1769 #endif /* defined __ImageProperties_FWD_DEFINED__ */
   1770 
   1771 #ifndef __PropertiesUI_FWD_DEFINED__
   1772 #define __PropertiesUI_FWD_DEFINED__
   1773 #ifdef __cplusplus
   1774 typedef class PropertiesUI PropertiesUI;
   1775 #else
   1776 typedef struct PropertiesUI PropertiesUI;
   1777 #endif /* defined __cplusplus */
   1778 #endif /* defined __PropertiesUI_FWD_DEFINED__ */
   1779 
   1780 #ifndef __UserNotification_FWD_DEFINED__
   1781 #define __UserNotification_FWD_DEFINED__
   1782 #ifdef __cplusplus
   1783 typedef class UserNotification UserNotification;
   1784 #else
   1785 typedef struct UserNotification UserNotification;
   1786 #endif /* defined __cplusplus */
   1787 #endif /* defined __UserNotification_FWD_DEFINED__ */
   1788 
   1789 #ifndef __CDBurn_FWD_DEFINED__
   1790 #define __CDBurn_FWD_DEFINED__
   1791 #ifdef __cplusplus
   1792 typedef class CDBurn CDBurn;
   1793 #else
   1794 typedef struct CDBurn CDBurn;
   1795 #endif /* defined __cplusplus */
   1796 #endif /* defined __CDBurn_FWD_DEFINED__ */
   1797 
   1798 #ifndef __TaskbarList_FWD_DEFINED__
   1799 #define __TaskbarList_FWD_DEFINED__
   1800 #ifdef __cplusplus
   1801 typedef class TaskbarList TaskbarList;
   1802 #else
   1803 typedef struct TaskbarList TaskbarList;
   1804 #endif /* defined __cplusplus */
   1805 #endif /* defined __TaskbarList_FWD_DEFINED__ */
   1806 
   1807 #ifndef __StartMenuPin_FWD_DEFINED__
   1808 #define __StartMenuPin_FWD_DEFINED__
   1809 #ifdef __cplusplus
   1810 typedef class StartMenuPin StartMenuPin;
   1811 #else
   1812 typedef struct StartMenuPin StartMenuPin;
   1813 #endif /* defined __cplusplus */
   1814 #endif /* defined __StartMenuPin_FWD_DEFINED__ */
   1815 
   1816 #ifndef __WebWizardHost_FWD_DEFINED__
   1817 #define __WebWizardHost_FWD_DEFINED__
   1818 #ifdef __cplusplus
   1819 typedef class WebWizardHost WebWizardHost;
   1820 #else
   1821 typedef struct WebWizardHost WebWizardHost;
   1822 #endif /* defined __cplusplus */
   1823 #endif /* defined __WebWizardHost_FWD_DEFINED__ */
   1824 
   1825 #ifndef __PublishDropTarget_FWD_DEFINED__
   1826 #define __PublishDropTarget_FWD_DEFINED__
   1827 #ifdef __cplusplus
   1828 typedef class PublishDropTarget PublishDropTarget;
   1829 #else
   1830 typedef struct PublishDropTarget PublishDropTarget;
   1831 #endif /* defined __cplusplus */
   1832 #endif /* defined __PublishDropTarget_FWD_DEFINED__ */
   1833 
   1834 #ifndef __PublishingWizard_FWD_DEFINED__
   1835 #define __PublishingWizard_FWD_DEFINED__
   1836 #ifdef __cplusplus
   1837 typedef class PublishingWizard PublishingWizard;
   1838 #else
   1839 typedef struct PublishingWizard PublishingWizard;
   1840 #endif /* defined __cplusplus */
   1841 #endif /* defined __PublishingWizard_FWD_DEFINED__ */
   1842 
   1843 #ifndef __InternetPrintOrdering_FWD_DEFINED__
   1844 #define __InternetPrintOrdering_FWD_DEFINED__
   1845 #ifdef __cplusplus
   1846 typedef class InternetPrintOrdering InternetPrintOrdering;
   1847 #else
   1848 typedef struct InternetPrintOrdering InternetPrintOrdering;
   1849 #endif /* defined __cplusplus */
   1850 #endif /* defined __InternetPrintOrdering_FWD_DEFINED__ */
   1851 
   1852 #ifndef __FolderViewHost_FWD_DEFINED__
   1853 #define __FolderViewHost_FWD_DEFINED__
   1854 #ifdef __cplusplus
   1855 typedef class FolderViewHost FolderViewHost;
   1856 #else
   1857 typedef struct FolderViewHost FolderViewHost;
   1858 #endif /* defined __cplusplus */
   1859 #endif /* defined __FolderViewHost_FWD_DEFINED__ */
   1860 
   1861 #ifndef __ExplorerBrowser_FWD_DEFINED__
   1862 #define __ExplorerBrowser_FWD_DEFINED__
   1863 #ifdef __cplusplus
   1864 typedef class ExplorerBrowser ExplorerBrowser;
   1865 #else
   1866 typedef struct ExplorerBrowser ExplorerBrowser;
   1867 #endif /* defined __cplusplus */
   1868 #endif /* defined __ExplorerBrowser_FWD_DEFINED__ */
   1869 
   1870 #ifndef __ImageRecompress_FWD_DEFINED__
   1871 #define __ImageRecompress_FWD_DEFINED__
   1872 #ifdef __cplusplus
   1873 typedef class ImageRecompress ImageRecompress;
   1874 #else
   1875 typedef struct ImageRecompress ImageRecompress;
   1876 #endif /* defined __cplusplus */
   1877 #endif /* defined __ImageRecompress_FWD_DEFINED__ */
   1878 
   1879 #ifndef __TrayBandSiteService_FWD_DEFINED__
   1880 #define __TrayBandSiteService_FWD_DEFINED__
   1881 #ifdef __cplusplus
   1882 typedef class TrayBandSiteService TrayBandSiteService;
   1883 #else
   1884 typedef struct TrayBandSiteService TrayBandSiteService;
   1885 #endif /* defined __cplusplus */
   1886 #endif /* defined __TrayBandSiteService_FWD_DEFINED__ */
   1887 
   1888 #ifndef __TrayDeskBand_FWD_DEFINED__
   1889 #define __TrayDeskBand_FWD_DEFINED__
   1890 #ifdef __cplusplus
   1891 typedef class TrayDeskBand TrayDeskBand;
   1892 #else
   1893 typedef struct TrayDeskBand TrayDeskBand;
   1894 #endif /* defined __cplusplus */
   1895 #endif /* defined __TrayDeskBand_FWD_DEFINED__ */
   1896 
   1897 #ifndef __AttachmentServices_FWD_DEFINED__
   1898 #define __AttachmentServices_FWD_DEFINED__
   1899 #ifdef __cplusplus
   1900 typedef class AttachmentServices AttachmentServices;
   1901 #else
   1902 typedef struct AttachmentServices AttachmentServices;
   1903 #endif /* defined __cplusplus */
   1904 #endif /* defined __AttachmentServices_FWD_DEFINED__ */
   1905 
   1906 #ifndef __DocPropShellExtension_FWD_DEFINED__
   1907 #define __DocPropShellExtension_FWD_DEFINED__
   1908 #ifdef __cplusplus
   1909 typedef class DocPropShellExtension DocPropShellExtension;
   1910 #else
   1911 typedef struct DocPropShellExtension DocPropShellExtension;
   1912 #endif /* defined __cplusplus */
   1913 #endif /* defined __DocPropShellExtension_FWD_DEFINED__ */
   1914 
   1915 #ifndef __ShellItem_FWD_DEFINED__
   1916 #define __ShellItem_FWD_DEFINED__
   1917 #ifdef __cplusplus
   1918 typedef class ShellItem ShellItem;
   1919 #else
   1920 typedef struct ShellItem ShellItem;
   1921 #endif /* defined __cplusplus */
   1922 #endif /* defined __ShellItem_FWD_DEFINED__ */
   1923 
   1924 #ifndef __NamespaceWalker_FWD_DEFINED__
   1925 #define __NamespaceWalker_FWD_DEFINED__
   1926 #ifdef __cplusplus
   1927 typedef class NamespaceWalker NamespaceWalker;
   1928 #else
   1929 typedef struct NamespaceWalker NamespaceWalker;
   1930 #endif /* defined __cplusplus */
   1931 #endif /* defined __NamespaceWalker_FWD_DEFINED__ */
   1932 
   1933 #ifndef __FileOperation_FWD_DEFINED__
   1934 #define __FileOperation_FWD_DEFINED__
   1935 #ifdef __cplusplus
   1936 typedef class FileOperation FileOperation;
   1937 #else
   1938 typedef struct FileOperation FileOperation;
   1939 #endif /* defined __cplusplus */
   1940 #endif /* defined __FileOperation_FWD_DEFINED__ */
   1941 
   1942 #ifndef __FileOpenDialog_FWD_DEFINED__
   1943 #define __FileOpenDialog_FWD_DEFINED__
   1944 #ifdef __cplusplus
   1945 typedef class FileOpenDialog FileOpenDialog;
   1946 #else
   1947 typedef struct FileOpenDialog FileOpenDialog;
   1948 #endif /* defined __cplusplus */
   1949 #endif /* defined __FileOpenDialog_FWD_DEFINED__ */
   1950 
   1951 #ifndef __FileSaveDialog_FWD_DEFINED__
   1952 #define __FileSaveDialog_FWD_DEFINED__
   1953 #ifdef __cplusplus
   1954 typedef class FileSaveDialog FileSaveDialog;
   1955 #else
   1956 typedef struct FileSaveDialog FileSaveDialog;
   1957 #endif /* defined __cplusplus */
   1958 #endif /* defined __FileSaveDialog_FWD_DEFINED__ */
   1959 
   1960 #ifndef __KnownFolderManager_FWD_DEFINED__
   1961 #define __KnownFolderManager_FWD_DEFINED__
   1962 #ifdef __cplusplus
   1963 typedef class KnownFolderManager KnownFolderManager;
   1964 #else
   1965 typedef struct KnownFolderManager KnownFolderManager;
   1966 #endif /* defined __cplusplus */
   1967 #endif /* defined __KnownFolderManager_FWD_DEFINED__ */
   1968 
   1969 #ifndef __FSCopyHandler_FWD_DEFINED__
   1970 #define __FSCopyHandler_FWD_DEFINED__
   1971 #ifdef __cplusplus
   1972 typedef class FSCopyHandler FSCopyHandler;
   1973 #else
   1974 typedef struct FSCopyHandler FSCopyHandler;
   1975 #endif /* defined __cplusplus */
   1976 #endif /* defined __FSCopyHandler_FWD_DEFINED__ */
   1977 
   1978 #ifndef __SharingConfigurationManager_FWD_DEFINED__
   1979 #define __SharingConfigurationManager_FWD_DEFINED__
   1980 #ifdef __cplusplus
   1981 typedef class SharingConfigurationManager SharingConfigurationManager;
   1982 #else
   1983 typedef struct SharingConfigurationManager SharingConfigurationManager;
   1984 #endif /* defined __cplusplus */
   1985 #endif /* defined __SharingConfigurationManager_FWD_DEFINED__ */
   1986 
   1987 #ifndef __PreviousVersions_FWD_DEFINED__
   1988 #define __PreviousVersions_FWD_DEFINED__
   1989 #ifdef __cplusplus
   1990 typedef class PreviousVersions PreviousVersions;
   1991 #else
   1992 typedef struct PreviousVersions PreviousVersions;
   1993 #endif /* defined __cplusplus */
   1994 #endif /* defined __PreviousVersions_FWD_DEFINED__ */
   1995 
   1996 #ifndef __NetworkConnections_FWD_DEFINED__
   1997 #define __NetworkConnections_FWD_DEFINED__
   1998 #ifdef __cplusplus
   1999 typedef class NetworkConnections NetworkConnections;
   2000 #else
   2001 typedef struct NetworkConnections NetworkConnections;
   2002 #endif /* defined __cplusplus */
   2003 #endif /* defined __NetworkConnections_FWD_DEFINED__ */
   2004 
   2005 #ifndef __NamespaceTreeControl_FWD_DEFINED__
   2006 #define __NamespaceTreeControl_FWD_DEFINED__
   2007 #ifdef __cplusplus
   2008 typedef class NamespaceTreeControl NamespaceTreeControl;
   2009 #else
   2010 typedef struct NamespaceTreeControl NamespaceTreeControl;
   2011 #endif /* defined __cplusplus */
   2012 #endif /* defined __NamespaceTreeControl_FWD_DEFINED__ */
   2013 
   2014 #ifndef __IENamespaceTreeControl_FWD_DEFINED__
   2015 #define __IENamespaceTreeControl_FWD_DEFINED__
   2016 #ifdef __cplusplus
   2017 typedef class IENamespaceTreeControl IENamespaceTreeControl;
   2018 #else
   2019 typedef struct IENamespaceTreeControl IENamespaceTreeControl;
   2020 #endif /* defined __cplusplus */
   2021 #endif /* defined __IENamespaceTreeControl_FWD_DEFINED__ */
   2022 
   2023 #ifndef __ScheduledTasks_FWD_DEFINED__
   2024 #define __ScheduledTasks_FWD_DEFINED__
   2025 #ifdef __cplusplus
   2026 typedef class ScheduledTasks ScheduledTasks;
   2027 #else
   2028 typedef struct ScheduledTasks ScheduledTasks;
   2029 #endif /* defined __cplusplus */
   2030 #endif /* defined __ScheduledTasks_FWD_DEFINED__ */
   2031 
   2032 #ifndef __ApplicationAssociationRegistration_FWD_DEFINED__
   2033 #define __ApplicationAssociationRegistration_FWD_DEFINED__
   2034 #ifdef __cplusplus
   2035 typedef class ApplicationAssociationRegistration ApplicationAssociationRegistration;
   2036 #else
   2037 typedef struct ApplicationAssociationRegistration ApplicationAssociationRegistration;
   2038 #endif /* defined __cplusplus */
   2039 #endif /* defined __ApplicationAssociationRegistration_FWD_DEFINED__ */
   2040 
   2041 #ifndef __ApplicationAssociationRegistrationUI_FWD_DEFINED__
   2042 #define __ApplicationAssociationRegistrationUI_FWD_DEFINED__
   2043 #ifdef __cplusplus
   2044 typedef class ApplicationAssociationRegistrationUI ApplicationAssociationRegistrationUI;
   2045 #else
   2046 typedef struct ApplicationAssociationRegistrationUI ApplicationAssociationRegistrationUI;
   2047 #endif /* defined __cplusplus */
   2048 #endif /* defined __ApplicationAssociationRegistrationUI_FWD_DEFINED__ */
   2049 
   2050 #ifndef __SearchFolderItemFactory_FWD_DEFINED__
   2051 #define __SearchFolderItemFactory_FWD_DEFINED__
   2052 #ifdef __cplusplus
   2053 typedef class SearchFolderItemFactory SearchFolderItemFactory;
   2054 #else
   2055 typedef struct SearchFolderItemFactory SearchFolderItemFactory;
   2056 #endif /* defined __cplusplus */
   2057 #endif /* defined __SearchFolderItemFactory_FWD_DEFINED__ */
   2058 
   2059 #ifndef __OpenControlPanel_FWD_DEFINED__
   2060 #define __OpenControlPanel_FWD_DEFINED__
   2061 #ifdef __cplusplus
   2062 typedef class OpenControlPanel OpenControlPanel;
   2063 #else
   2064 typedef struct OpenControlPanel OpenControlPanel;
   2065 #endif /* defined __cplusplus */
   2066 #endif /* defined __OpenControlPanel_FWD_DEFINED__ */
   2067 
   2068 #ifndef __MailRecipient_FWD_DEFINED__
   2069 #define __MailRecipient_FWD_DEFINED__
   2070 #ifdef __cplusplus
   2071 typedef class MailRecipient MailRecipient;
   2072 #else
   2073 typedef struct MailRecipient MailRecipient;
   2074 #endif /* defined __cplusplus */
   2075 #endif /* defined __MailRecipient_FWD_DEFINED__ */
   2076 
   2077 #ifndef __NetworkExplorerFolder_FWD_DEFINED__
   2078 #define __NetworkExplorerFolder_FWD_DEFINED__
   2079 #ifdef __cplusplus
   2080 typedef class NetworkExplorerFolder NetworkExplorerFolder;
   2081 #else
   2082 typedef struct NetworkExplorerFolder NetworkExplorerFolder;
   2083 #endif /* defined __cplusplus */
   2084 #endif /* defined __NetworkExplorerFolder_FWD_DEFINED__ */
   2085 
   2086 #ifndef __DestinationList_FWD_DEFINED__
   2087 #define __DestinationList_FWD_DEFINED__
   2088 #ifdef __cplusplus
   2089 typedef class DestinationList DestinationList;
   2090 #else
   2091 typedef struct DestinationList DestinationList;
   2092 #endif /* defined __cplusplus */
   2093 #endif /* defined __DestinationList_FWD_DEFINED__ */
   2094 
   2095 #ifndef __ApplicationDestinations_FWD_DEFINED__
   2096 #define __ApplicationDestinations_FWD_DEFINED__
   2097 #ifdef __cplusplus
   2098 typedef class ApplicationDestinations ApplicationDestinations;
   2099 #else
   2100 typedef struct ApplicationDestinations ApplicationDestinations;
   2101 #endif /* defined __cplusplus */
   2102 #endif /* defined __ApplicationDestinations_FWD_DEFINED__ */
   2103 
   2104 #ifndef __ApplicationDocumentLists_FWD_DEFINED__
   2105 #define __ApplicationDocumentLists_FWD_DEFINED__
   2106 #ifdef __cplusplus
   2107 typedef class ApplicationDocumentLists ApplicationDocumentLists;
   2108 #else
   2109 typedef struct ApplicationDocumentLists ApplicationDocumentLists;
   2110 #endif /* defined __cplusplus */
   2111 #endif /* defined __ApplicationDocumentLists_FWD_DEFINED__ */
   2112 
   2113 #ifndef __HomeGroup_FWD_DEFINED__
   2114 #define __HomeGroup_FWD_DEFINED__
   2115 #ifdef __cplusplus
   2116 typedef class HomeGroup HomeGroup;
   2117 #else
   2118 typedef struct HomeGroup HomeGroup;
   2119 #endif /* defined __cplusplus */
   2120 #endif /* defined __HomeGroup_FWD_DEFINED__ */
   2121 
   2122 #ifndef __ShellLibrary_FWD_DEFINED__
   2123 #define __ShellLibrary_FWD_DEFINED__
   2124 #ifdef __cplusplus
   2125 typedef class ShellLibrary ShellLibrary;
   2126 #else
   2127 typedef struct ShellLibrary ShellLibrary;
   2128 #endif /* defined __cplusplus */
   2129 #endif /* defined __ShellLibrary_FWD_DEFINED__ */
   2130 
   2131 #ifndef __AppStartupLink_FWD_DEFINED__
   2132 #define __AppStartupLink_FWD_DEFINED__
   2133 #ifdef __cplusplus
   2134 typedef class AppStartupLink AppStartupLink;
   2135 #else
   2136 typedef struct AppStartupLink AppStartupLink;
   2137 #endif /* defined __cplusplus */
   2138 #endif /* defined __AppStartupLink_FWD_DEFINED__ */
   2139 
   2140 #ifndef __EnumerableObjectCollection_FWD_DEFINED__
   2141 #define __EnumerableObjectCollection_FWD_DEFINED__
   2142 #ifdef __cplusplus
   2143 typedef class EnumerableObjectCollection EnumerableObjectCollection;
   2144 #else
   2145 typedef struct EnumerableObjectCollection EnumerableObjectCollection;
   2146 #endif /* defined __cplusplus */
   2147 #endif /* defined __EnumerableObjectCollection_FWD_DEFINED__ */
   2148 
   2149 #ifndef __DesktopGadget_FWD_DEFINED__
   2150 #define __DesktopGadget_FWD_DEFINED__
   2151 #ifdef __cplusplus
   2152 typedef class DesktopGadget DesktopGadget;
   2153 #else
   2154 typedef struct DesktopGadget DesktopGadget;
   2155 #endif /* defined __cplusplus */
   2156 #endif /* defined __DesktopGadget_FWD_DEFINED__ */
   2157 
   2158 #ifndef __PlaybackManager_FWD_DEFINED__
   2159 #define __PlaybackManager_FWD_DEFINED__
   2160 #ifdef __cplusplus
   2161 typedef class PlaybackManager PlaybackManager;
   2162 #else
   2163 typedef struct PlaybackManager PlaybackManager;
   2164 #endif /* defined __cplusplus */
   2165 #endif /* defined __PlaybackManager_FWD_DEFINED__ */
   2166 
   2167 #ifndef __AccessibilityDockingService_FWD_DEFINED__
   2168 #define __AccessibilityDockingService_FWD_DEFINED__
   2169 #ifdef __cplusplus
   2170 typedef class AccessibilityDockingService AccessibilityDockingService;
   2171 #else
   2172 typedef struct AccessibilityDockingService AccessibilityDockingService;
   2173 #endif /* defined __cplusplus */
   2174 #endif /* defined __AccessibilityDockingService_FWD_DEFINED__ */
   2175 
   2176 #ifndef __FrameworkInputPane_FWD_DEFINED__
   2177 #define __FrameworkInputPane_FWD_DEFINED__
   2178 #ifdef __cplusplus
   2179 typedef class FrameworkInputPane FrameworkInputPane;
   2180 #else
   2181 typedef struct FrameworkInputPane FrameworkInputPane;
   2182 #endif /* defined __cplusplus */
   2183 #endif /* defined __FrameworkInputPane_FWD_DEFINED__ */
   2184 
   2185 #ifndef __DefFolderMenu_FWD_DEFINED__
   2186 #define __DefFolderMenu_FWD_DEFINED__
   2187 #ifdef __cplusplus
   2188 typedef class DefFolderMenu DefFolderMenu;
   2189 #else
   2190 typedef struct DefFolderMenu DefFolderMenu;
   2191 #endif /* defined __cplusplus */
   2192 #endif /* defined __DefFolderMenu_FWD_DEFINED__ */
   2193 
   2194 #ifndef __AppVisibility_FWD_DEFINED__
   2195 #define __AppVisibility_FWD_DEFINED__
   2196 #ifdef __cplusplus
   2197 typedef class AppVisibility AppVisibility;
   2198 #else
   2199 typedef struct AppVisibility AppVisibility;
   2200 #endif /* defined __cplusplus */
   2201 #endif /* defined __AppVisibility_FWD_DEFINED__ */
   2202 
   2203 #ifndef __AppShellVerbHandler_FWD_DEFINED__
   2204 #define __AppShellVerbHandler_FWD_DEFINED__
   2205 #ifdef __cplusplus
   2206 typedef class AppShellVerbHandler AppShellVerbHandler;
   2207 #else
   2208 typedef struct AppShellVerbHandler AppShellVerbHandler;
   2209 #endif /* defined __cplusplus */
   2210 #endif /* defined __AppShellVerbHandler_FWD_DEFINED__ */
   2211 
   2212 #ifndef __ExecuteUnknown_FWD_DEFINED__
   2213 #define __ExecuteUnknown_FWD_DEFINED__
   2214 #ifdef __cplusplus
   2215 typedef class ExecuteUnknown ExecuteUnknown;
   2216 #else
   2217 typedef struct ExecuteUnknown ExecuteUnknown;
   2218 #endif /* defined __cplusplus */
   2219 #endif /* defined __ExecuteUnknown_FWD_DEFINED__ */
   2220 
   2221 #ifndef __PackageDebugSettings_FWD_DEFINED__
   2222 #define __PackageDebugSettings_FWD_DEFINED__
   2223 #ifdef __cplusplus
   2224 typedef class PackageDebugSettings PackageDebugSettings;
   2225 #else
   2226 typedef struct PackageDebugSettings PackageDebugSettings;
   2227 #endif /* defined __cplusplus */
   2228 #endif /* defined __PackageDebugSettings_FWD_DEFINED__ */
   2229 
   2230 #ifndef __ApplicationActivationManager_FWD_DEFINED__
   2231 #define __ApplicationActivationManager_FWD_DEFINED__
   2232 #ifdef __cplusplus
   2233 typedef class ApplicationActivationManager ApplicationActivationManager;
   2234 #else
   2235 typedef struct ApplicationActivationManager ApplicationActivationManager;
   2236 #endif /* defined __cplusplus */
   2237 #endif /* defined __ApplicationActivationManager_FWD_DEFINED__ */
   2238 
   2239 #ifndef __ApplicationDesignModeSettings_FWD_DEFINED__
   2240 #define __ApplicationDesignModeSettings_FWD_DEFINED__
   2241 #ifdef __cplusplus
   2242 typedef class ApplicationDesignModeSettings ApplicationDesignModeSettings;
   2243 #else
   2244 typedef struct ApplicationDesignModeSettings ApplicationDesignModeSettings;
   2245 #endif /* defined __cplusplus */
   2246 #endif /* defined __ApplicationDesignModeSettings_FWD_DEFINED__ */
   2247 
   2248 #ifndef __ExecuteFolder_FWD_DEFINED__
   2249 #define __ExecuteFolder_FWD_DEFINED__
   2250 #ifdef __cplusplus
   2251 typedef class ExecuteFolder ExecuteFolder;
   2252 #else
   2253 typedef struct ExecuteFolder ExecuteFolder;
   2254 #endif /* defined __cplusplus */
   2255 #endif /* defined __ExecuteFolder_FWD_DEFINED__ */
   2256 
   2257 #ifndef __VirtualDesktopManager_FWD_DEFINED__
   2258 #define __VirtualDesktopManager_FWD_DEFINED__
   2259 #ifdef __cplusplus
   2260 typedef class VirtualDesktopManager VirtualDesktopManager;
   2261 #else
   2262 typedef struct VirtualDesktopManager VirtualDesktopManager;
   2263 #endif /* defined __cplusplus */
   2264 #endif /* defined __VirtualDesktopManager_FWD_DEFINED__ */
   2265 
   2266 #ifndef __IAssocHandlerInvoker_FWD_DEFINED__
   2267 #define __IAssocHandlerInvoker_FWD_DEFINED__
   2268 typedef interface IAssocHandlerInvoker IAssocHandlerInvoker;
   2269 #ifdef __cplusplus
   2270 interface IAssocHandlerInvoker;
   2271 #endif /* __cplusplus */
   2272 #endif
   2273 
   2274 #ifndef __IAssocHandler_FWD_DEFINED__
   2275 #define __IAssocHandler_FWD_DEFINED__
   2276 typedef interface IAssocHandler IAssocHandler;
   2277 #ifdef __cplusplus
   2278 interface IAssocHandler;
   2279 #endif /* __cplusplus */
   2280 #endif
   2281 
   2282 #ifndef __IEnumAssocHandlers_FWD_DEFINED__
   2283 #define __IEnumAssocHandlers_FWD_DEFINED__
   2284 typedef interface IEnumAssocHandlers IEnumAssocHandlers;
   2285 #ifdef __cplusplus
   2286 interface IEnumAssocHandlers;
   2287 #endif /* __cplusplus */
   2288 #endif
   2289 
   2290 #ifndef __IDataObjectProvider_FWD_DEFINED__
   2291 #define __IDataObjectProvider_FWD_DEFINED__
   2292 typedef interface IDataObjectProvider IDataObjectProvider;
   2293 #ifdef __cplusplus
   2294 interface IDataObjectProvider;
   2295 #endif /* __cplusplus */
   2296 #endif
   2297 
   2298 #ifndef __IDataTransferManagerInterop_FWD_DEFINED__
   2299 #define __IDataTransferManagerInterop_FWD_DEFINED__
   2300 typedef interface IDataTransferManagerInterop IDataTransferManagerInterop;
   2301 #ifdef __cplusplus
   2302 interface IDataTransferManagerInterop;
   2303 #endif /* __cplusplus */
   2304 #endif
   2305 
   2306 #ifndef __IFrameworkInputPaneHandler_FWD_DEFINED__
   2307 #define __IFrameworkInputPaneHandler_FWD_DEFINED__
   2308 typedef interface IFrameworkInputPaneHandler IFrameworkInputPaneHandler;
   2309 #ifdef __cplusplus
   2310 interface IFrameworkInputPaneHandler;
   2311 #endif /* __cplusplus */
   2312 #endif
   2313 
   2314 #ifndef __IFrameworkInputPane_FWD_DEFINED__
   2315 #define __IFrameworkInputPane_FWD_DEFINED__
   2316 typedef interface IFrameworkInputPane IFrameworkInputPane;
   2317 #ifdef __cplusplus
   2318 interface IFrameworkInputPane;
   2319 #endif /* __cplusplus */
   2320 #endif
   2321 
   2322 #ifndef __ISearchableApplication_FWD_DEFINED__
   2323 #define __ISearchableApplication_FWD_DEFINED__
   2324 typedef interface ISearchableApplication ISearchableApplication;
   2325 #ifdef __cplusplus
   2326 interface ISearchableApplication;
   2327 #endif /* __cplusplus */
   2328 #endif
   2329 
   2330 #ifndef __IAccessibilityDockingServiceCallback_FWD_DEFINED__
   2331 #define __IAccessibilityDockingServiceCallback_FWD_DEFINED__
   2332 typedef interface IAccessibilityDockingServiceCallback IAccessibilityDockingServiceCallback;
   2333 #ifdef __cplusplus
   2334 interface IAccessibilityDockingServiceCallback;
   2335 #endif /* __cplusplus */
   2336 #endif
   2337 
   2338 #ifndef __IAccessibilityDockingService_FWD_DEFINED__
   2339 #define __IAccessibilityDockingService_FWD_DEFINED__
   2340 typedef interface IAccessibilityDockingService IAccessibilityDockingService;
   2341 #ifdef __cplusplus
   2342 interface IAccessibilityDockingService;
   2343 #endif /* __cplusplus */
   2344 #endif
   2345 
   2346 #ifndef __IAppVisibilityEvents_FWD_DEFINED__
   2347 #define __IAppVisibilityEvents_FWD_DEFINED__
   2348 typedef interface IAppVisibilityEvents IAppVisibilityEvents;
   2349 #ifdef __cplusplus
   2350 interface IAppVisibilityEvents;
   2351 #endif /* __cplusplus */
   2352 #endif
   2353 
   2354 #ifndef __IAppVisibility_FWD_DEFINED__
   2355 #define __IAppVisibility_FWD_DEFINED__
   2356 typedef interface IAppVisibility IAppVisibility;
   2357 #ifdef __cplusplus
   2358 interface IAppVisibility;
   2359 #endif /* __cplusplus */
   2360 #endif
   2361 
   2362 #ifndef __IPackageExecutionStateChangeNotification_FWD_DEFINED__
   2363 #define __IPackageExecutionStateChangeNotification_FWD_DEFINED__
   2364 typedef interface IPackageExecutionStateChangeNotification IPackageExecutionStateChangeNotification;
   2365 #ifdef __cplusplus
   2366 interface IPackageExecutionStateChangeNotification;
   2367 #endif /* __cplusplus */
   2368 #endif
   2369 
   2370 #ifndef __IPackageDebugSettings_FWD_DEFINED__
   2371 #define __IPackageDebugSettings_FWD_DEFINED__
   2372 typedef interface IPackageDebugSettings IPackageDebugSettings;
   2373 #ifdef __cplusplus
   2374 interface IPackageDebugSettings;
   2375 #endif /* __cplusplus */
   2376 #endif
   2377 
   2378 #ifndef __IExecuteCommandApplicationHostEnvironment_FWD_DEFINED__
   2379 #define __IExecuteCommandApplicationHostEnvironment_FWD_DEFINED__
   2380 typedef interface IExecuteCommandApplicationHostEnvironment IExecuteCommandApplicationHostEnvironment;
   2381 #ifdef __cplusplus
   2382 interface IExecuteCommandApplicationHostEnvironment;
   2383 #endif /* __cplusplus */
   2384 #endif
   2385 
   2386 #ifndef __IExecuteCommandHost_FWD_DEFINED__
   2387 #define __IExecuteCommandHost_FWD_DEFINED__
   2388 typedef interface IExecuteCommandHost IExecuteCommandHost;
   2389 #ifdef __cplusplus
   2390 interface IExecuteCommandHost;
   2391 #endif /* __cplusplus */
   2392 #endif
   2393 
   2394 #ifndef __IApplicationDesignModeSettings_FWD_DEFINED__
   2395 #define __IApplicationDesignModeSettings_FWD_DEFINED__
   2396 typedef interface IApplicationDesignModeSettings IApplicationDesignModeSettings;
   2397 #ifdef __cplusplus
   2398 interface IApplicationDesignModeSettings;
   2399 #endif /* __cplusplus */
   2400 #endif
   2401 
   2402 #ifndef __IInitializeWithWindow_FWD_DEFINED__
   2403 #define __IInitializeWithWindow_FWD_DEFINED__
   2404 typedef interface IInitializeWithWindow IInitializeWithWindow;
   2405 #ifdef __cplusplus
   2406 interface IInitializeWithWindow;
   2407 #endif /* __cplusplus */
   2408 #endif
   2409 
   2410 #ifndef __IHandlerInfo_FWD_DEFINED__
   2411 #define __IHandlerInfo_FWD_DEFINED__
   2412 typedef interface IHandlerInfo IHandlerInfo;
   2413 #ifdef __cplusplus
   2414 interface IHandlerInfo;
   2415 #endif /* __cplusplus */
   2416 #endif
   2417 
   2418 #ifndef __IHandlerActivationHost_FWD_DEFINED__
   2419 #define __IHandlerActivationHost_FWD_DEFINED__
   2420 typedef interface IHandlerActivationHost IHandlerActivationHost;
   2421 #ifdef __cplusplus
   2422 interface IHandlerActivationHost;
   2423 #endif /* __cplusplus */
   2424 #endif
   2425 
   2426 /* Headers for imported files */
   2427 
   2428 #include <objidl.h>
   2429 #include <oleidl.h>
   2430 #include <oaidl.h>
   2431 #include <docobj.h>
   2432 #include <shtypes.h>
   2433 #include <servprov.h>
   2434 #include <comcat.h>
   2435 #include <propidl.h>
   2436 #include <prsht.h>
   2437 #include <msxml.h>
   2438 #include <wtypes.h>
   2439 #include <propsys.h>
   2440 #include <objectarray.h>
   2441 #include <structuredquerycondition.h>
   2442 
   2443 #ifdef __cplusplus
   2444 extern "C" {
   2445 #endif
   2446 
   2447 /**
   2448  * This file is part of the mingw-w64 runtime package.
   2449  * No warranty is given; refer to the file DISCLAIMER within this package.
   2450  */
   2451 
   2452 #include <winapifamily.h>
   2453 
   2454 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
   2455 
   2456 #include <_mingw_unicode.h>
   2457 
   2458 
   2459 #include <sherrors.h>
   2460 
   2461 #ifndef SHSTDAPI
   2462 #ifdef _SHELL32_
   2463 #define SHSTDAPI STDAPI
   2464 #define SHSTDAPI_(type) STDAPI_(type)
   2465 #else
   2466 #define SHSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
   2467 #define SHSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
   2468 #endif
   2469 #endif
   2470 
   2471 #define CMF_NORMAL 0x0
   2472 #define CMF_DEFAULTONLY 0x1
   2473 #define CMF_VERBSONLY 0x2
   2474 #define CMF_EXPLORE 0x4
   2475 #define CMF_NOVERBS 0x8
   2476 #define CMF_CANRENAME 0x10
   2477 #define CMF_NODEFAULT 0x20
   2478 #if NTDDI_VERSION < NTDDI_VISTA
   2479 #define CMF_INCLUDESTATIC 0x40
   2480 #endif
   2481 #if NTDDI_VERSION >= NTDDI_VISTA
   2482 #define CMF_ITEMMENU 0x80
   2483 #endif
   2484 #define CMF_EXTENDEDVERBS 0x100
   2485 #if NTDDI_VERSION >= NTDDI_VISTA
   2486 #define CMF_DISABLEDVERBS 0x200
   2487 #endif
   2488 #define CMF_ASYNCVERBSTATE 0x400
   2489 #define CMF_OPTIMIZEFORINVOKE 0x800
   2490 #define CMF_SYNCCASCADEMENU 0x1000
   2491 #define CMF_DONOTPICKDEFAULT 0x2000
   2492 #define CMF_RESERVED 0xffff0000
   2493 
   2494 #define GCS_VERBA 0x0
   2495 #define GCS_HELPTEXTA 0x1
   2496 #define GCS_VALIDATEA 0x2
   2497 #define GCS_VERBW 0x4
   2498 #define GCS_HELPTEXTW 0x5
   2499 #define GCS_VALIDATEW 0x6
   2500 #define GCS_VERBICONW 0x14
   2501 #define GCS_UNICODE 0x4
   2502 
   2503 #define GCS_VERB __MINGW_NAME_AW(GCS_VERB)
   2504 #define GCS_HELPTEXT __MINGW_NAME_AW(GCS_HELPTEXT)
   2505 #define GCS_VALIDATE __MINGW_NAME_AW(GCS_VALIDATE)
   2506 
   2507 #define CMDSTR_NEWFOLDERA "NewFolder"
   2508 #define CMDSTR_VIEWLISTA "ViewList"
   2509 #define CMDSTR_VIEWDETAILSA "ViewDetails"
   2510 #define CMDSTR_NEWFOLDERW L"NewFolder"
   2511 #define CMDSTR_VIEWLISTW L"ViewList"
   2512 #define CMDSTR_VIEWDETAILSW L"ViewDetails"
   2513 
   2514 #define CMDSTR_NEWFOLDER __MINGW_NAME_AW(CMDSTR_NEWFOLDER)
   2515 #define CMDSTR_VIEWLIST __MINGW_NAME_AW(CMDSTR_VIEWLIST)
   2516 #define CMDSTR_VIEWDETAILS __MINGW_NAME_AW(CMDSTR_VIEWDETAILS)
   2517 
   2518 #define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY
   2519 #define CMIC_MASK_ICON SEE_MASK_ICON
   2520 #define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI
   2521 #define CMIC_MASK_UNICODE SEE_MASK_UNICODE
   2522 #define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE
   2523 #if NTDDI_VERSION < NTDDI_VISTA
   2524 #define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME
   2525 #define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE
   2526 #endif
   2527 #define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM
   2528 #define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK
   2529 #if NTDDI_VERSION >= NTDDI_VISTA
   2530 #define CMIC_MASK_NOASYNC SEE_MASK_NOASYNC
   2531 #endif
   2532 #define CMIC_MASK_SHIFT_DOWN 0x10000000
   2533 #define CMIC_MASK_CONTROL_DOWN 0x40000000
   2534 #define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE
   2535 #define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS
   2536 #define CMIC_MASK_PTINVOKE 0x20000000
   2537 
   2538 #include <pshpack8.h>
   2539 typedef struct _CMINVOKECOMMANDINFO {
   2540     DWORD cbSize;
   2541     DWORD fMask;
   2542     HWND hwnd;
   2543     LPCSTR lpVerb;
   2544     LPCSTR lpParameters;
   2545     LPCSTR lpDirectory;
   2546     int nShow;
   2547     DWORD dwHotKey;
   2548     HANDLE hIcon;
   2549 } CMINVOKECOMMANDINFO;
   2550 
   2551 typedef CMINVOKECOMMANDINFO *LPCMINVOKECOMMANDINFO;
   2552 typedef const CMINVOKECOMMANDINFO *PCCMINVOKECOMMANDINFO;
   2553 
   2554 typedef struct _CMINVOKECOMMANDINFOEX {
   2555     DWORD cbSize;
   2556     DWORD fMask;
   2557     HWND hwnd;
   2558     LPCSTR lpVerb;
   2559     LPCSTR lpParameters;
   2560     LPCSTR lpDirectory;
   2561     int nShow;
   2562     DWORD dwHotKey;
   2563     HANDLE hIcon;
   2564     LPCSTR lpTitle;
   2565     LPCWSTR lpVerbW;
   2566     LPCWSTR lpParametersW;
   2567     LPCWSTR lpDirectoryW;
   2568     LPCWSTR lpTitleW;
   2569     POINT ptInvoke;
   2570 } CMINVOKECOMMANDINFOEX;
   2571 
   2572 typedef CMINVOKECOMMANDINFOEX *LPCMINVOKECOMMANDINFOEX;
   2573 typedef const CMINVOKECOMMANDINFOEX *PCCMINVOKECOMMANDINFOEX;
   2574 #include <poppack.h>
   2575 
   2576 /*****************************************************************************
   2577  * IContextMenu interface
   2578  */
   2579 #ifndef __IContextMenu_INTERFACE_DEFINED__
   2580 #define __IContextMenu_INTERFACE_DEFINED__
   2581 
   2582 DEFINE_GUID(IID_IContextMenu, 0x000214e4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   2583 #if defined(__cplusplus) && !defined(CINTERFACE)
   2584 MIDL_INTERFACE("000214e4-0000-0000-c000-000000000046")
   2585 IContextMenu : public IUnknown
   2586 {
   2587     virtual HRESULT STDMETHODCALLTYPE QueryContextMenu(
   2588         HMENU hmenu,
   2589         UINT indexMenu,
   2590         UINT idCmdFirst,
   2591         UINT idCmdLast,
   2592         UINT uFlags) = 0;
   2593 
   2594     virtual HRESULT STDMETHODCALLTYPE InvokeCommand(
   2595         CMINVOKECOMMANDINFO *pici) = 0;
   2596 
   2597     virtual HRESULT STDMETHODCALLTYPE GetCommandString(
   2598         UINT_PTR idCmd,
   2599         UINT uType,
   2600         UINT *pReserved,
   2601         CHAR *pszName,
   2602         UINT cchMax) = 0;
   2603 
   2604 };
   2605 #ifdef __CRT_UUID_DECL
   2606 __CRT_UUID_DECL(IContextMenu, 0x000214e4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   2607 #endif
   2608 #else
   2609 typedef struct IContextMenuVtbl {
   2610     BEGIN_INTERFACE
   2611 
   2612     /*** IUnknown methods ***/
   2613     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2614         IContextMenu *This,
   2615         REFIID riid,
   2616         void **ppvObject);
   2617 
   2618     ULONG (STDMETHODCALLTYPE *AddRef)(
   2619         IContextMenu *This);
   2620 
   2621     ULONG (STDMETHODCALLTYPE *Release)(
   2622         IContextMenu *This);
   2623 
   2624     /*** IContextMenu methods ***/
   2625     HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
   2626         IContextMenu *This,
   2627         HMENU hmenu,
   2628         UINT indexMenu,
   2629         UINT idCmdFirst,
   2630         UINT idCmdLast,
   2631         UINT uFlags);
   2632 
   2633     HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
   2634         IContextMenu *This,
   2635         CMINVOKECOMMANDINFO *pici);
   2636 
   2637     HRESULT (STDMETHODCALLTYPE *GetCommandString)(
   2638         IContextMenu *This,
   2639         UINT_PTR idCmd,
   2640         UINT uType,
   2641         UINT *pReserved,
   2642         CHAR *pszName,
   2643         UINT cchMax);
   2644 
   2645     END_INTERFACE
   2646 } IContextMenuVtbl;
   2647 
   2648 interface IContextMenu {
   2649     CONST_VTBL IContextMenuVtbl* lpVtbl;
   2650 };
   2651 
   2652 #ifdef COBJMACROS
   2653 #ifndef WIDL_C_INLINE_WRAPPERS
   2654 /*** IUnknown methods ***/
   2655 #define IContextMenu_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2656 #define IContextMenu_AddRef(This) (This)->lpVtbl->AddRef(This)
   2657 #define IContextMenu_Release(This) (This)->lpVtbl->Release(This)
   2658 /*** IContextMenu methods ***/
   2659 #define IContextMenu_QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags) (This)->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags)
   2660 #define IContextMenu_InvokeCommand(This,pici) (This)->lpVtbl->InvokeCommand(This,pici)
   2661 #define IContextMenu_GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax) (This)->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax)
   2662 #else
   2663 /*** IUnknown methods ***/
   2664 static inline HRESULT IContextMenu_QueryInterface(IContextMenu* This,REFIID riid,void **ppvObject) {
   2665     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2666 }
   2667 static inline ULONG IContextMenu_AddRef(IContextMenu* This) {
   2668     return This->lpVtbl->AddRef(This);
   2669 }
   2670 static inline ULONG IContextMenu_Release(IContextMenu* This) {
   2671     return This->lpVtbl->Release(This);
   2672 }
   2673 /*** IContextMenu methods ***/
   2674 static inline HRESULT IContextMenu_QueryContextMenu(IContextMenu* This,HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) {
   2675     return This->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags);
   2676 }
   2677 static inline HRESULT IContextMenu_InvokeCommand(IContextMenu* This,CMINVOKECOMMANDINFO *pici) {
   2678     return This->lpVtbl->InvokeCommand(This,pici);
   2679 }
   2680 static inline HRESULT IContextMenu_GetCommandString(IContextMenu* This,UINT_PTR idCmd,UINT uType,UINT *pReserved,CHAR *pszName,UINT cchMax) {
   2681     return This->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax);
   2682 }
   2683 #endif
   2684 #endif
   2685 
   2686 #endif
   2687 
   2688 
   2689 #endif  /* __IContextMenu_INTERFACE_DEFINED__ */
   2690 
   2691 typedef IContextMenu *LPCONTEXTMENU;
   2692 
   2693 /*****************************************************************************
   2694  * IContextMenu2 interface
   2695  */
   2696 #ifndef __IContextMenu2_INTERFACE_DEFINED__
   2697 #define __IContextMenu2_INTERFACE_DEFINED__
   2698 
   2699 DEFINE_GUID(IID_IContextMenu2, 0x000214f4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   2700 #if defined(__cplusplus) && !defined(CINTERFACE)
   2701 MIDL_INTERFACE("000214f4-0000-0000-c000-000000000046")
   2702 IContextMenu2 : public IContextMenu
   2703 {
   2704     virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg(
   2705         UINT uMsg,
   2706         WPARAM wParam,
   2707         LPARAM lParam) = 0;
   2708 
   2709 };
   2710 #ifdef __CRT_UUID_DECL
   2711 __CRT_UUID_DECL(IContextMenu2, 0x000214f4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   2712 #endif
   2713 #else
   2714 typedef struct IContextMenu2Vtbl {
   2715     BEGIN_INTERFACE
   2716 
   2717     /*** IUnknown methods ***/
   2718     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2719         IContextMenu2 *This,
   2720         REFIID riid,
   2721         void **ppvObject);
   2722 
   2723     ULONG (STDMETHODCALLTYPE *AddRef)(
   2724         IContextMenu2 *This);
   2725 
   2726     ULONG (STDMETHODCALLTYPE *Release)(
   2727         IContextMenu2 *This);
   2728 
   2729     /*** IContextMenu methods ***/
   2730     HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
   2731         IContextMenu2 *This,
   2732         HMENU hmenu,
   2733         UINT indexMenu,
   2734         UINT idCmdFirst,
   2735         UINT idCmdLast,
   2736         UINT uFlags);
   2737 
   2738     HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
   2739         IContextMenu2 *This,
   2740         CMINVOKECOMMANDINFO *pici);
   2741 
   2742     HRESULT (STDMETHODCALLTYPE *GetCommandString)(
   2743         IContextMenu2 *This,
   2744         UINT_PTR idCmd,
   2745         UINT uType,
   2746         UINT *pReserved,
   2747         CHAR *pszName,
   2748         UINT cchMax);
   2749 
   2750     /*** IContextMenu2 methods ***/
   2751     HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
   2752         IContextMenu2 *This,
   2753         UINT uMsg,
   2754         WPARAM wParam,
   2755         LPARAM lParam);
   2756 
   2757     END_INTERFACE
   2758 } IContextMenu2Vtbl;
   2759 
   2760 interface IContextMenu2 {
   2761     CONST_VTBL IContextMenu2Vtbl* lpVtbl;
   2762 };
   2763 
   2764 #ifdef COBJMACROS
   2765 #ifndef WIDL_C_INLINE_WRAPPERS
   2766 /*** IUnknown methods ***/
   2767 #define IContextMenu2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2768 #define IContextMenu2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2769 #define IContextMenu2_Release(This) (This)->lpVtbl->Release(This)
   2770 /*** IContextMenu methods ***/
   2771 #define IContextMenu2_QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags) (This)->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags)
   2772 #define IContextMenu2_InvokeCommand(This,pici) (This)->lpVtbl->InvokeCommand(This,pici)
   2773 #define IContextMenu2_GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax) (This)->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax)
   2774 /*** IContextMenu2 methods ***/
   2775 #define IContextMenu2_HandleMenuMsg(This,uMsg,wParam,lParam) (This)->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam)
   2776 #else
   2777 /*** IUnknown methods ***/
   2778 static inline HRESULT IContextMenu2_QueryInterface(IContextMenu2* This,REFIID riid,void **ppvObject) {
   2779     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2780 }
   2781 static inline ULONG IContextMenu2_AddRef(IContextMenu2* This) {
   2782     return This->lpVtbl->AddRef(This);
   2783 }
   2784 static inline ULONG IContextMenu2_Release(IContextMenu2* This) {
   2785     return This->lpVtbl->Release(This);
   2786 }
   2787 /*** IContextMenu methods ***/
   2788 static inline HRESULT IContextMenu2_QueryContextMenu(IContextMenu2* This,HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) {
   2789     return This->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags);
   2790 }
   2791 static inline HRESULT IContextMenu2_InvokeCommand(IContextMenu2* This,CMINVOKECOMMANDINFO *pici) {
   2792     return This->lpVtbl->InvokeCommand(This,pici);
   2793 }
   2794 static inline HRESULT IContextMenu2_GetCommandString(IContextMenu2* This,UINT_PTR idCmd,UINT uType,UINT *pReserved,CHAR *pszName,UINT cchMax) {
   2795     return This->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax);
   2796 }
   2797 /*** IContextMenu2 methods ***/
   2798 static inline HRESULT IContextMenu2_HandleMenuMsg(IContextMenu2* This,UINT uMsg,WPARAM wParam,LPARAM lParam) {
   2799     return This->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam);
   2800 }
   2801 #endif
   2802 #endif
   2803 
   2804 #endif
   2805 
   2806 
   2807 #endif  /* __IContextMenu2_INTERFACE_DEFINED__ */
   2808 
   2809 typedef IContextMenu2 *LPCONTEXTMENU2;
   2810 
   2811 /*****************************************************************************
   2812  * IContextMenu3 interface
   2813  */
   2814 #ifndef __IContextMenu3_INTERFACE_DEFINED__
   2815 #define __IContextMenu3_INTERFACE_DEFINED__
   2816 
   2817 DEFINE_GUID(IID_IContextMenu3, 0xbcfce0a0, 0xec17, 0x11d0, 0x8d,0x10, 0x00,0xa0,0xc9,0x0f,0x27,0x19);
   2818 #if defined(__cplusplus) && !defined(CINTERFACE)
   2819 MIDL_INTERFACE("bcfce0a0-ec17-11d0-8d10-00a0c90f2719")
   2820 IContextMenu3 : public IContextMenu2
   2821 {
   2822     virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg2(
   2823         UINT uMsg,
   2824         WPARAM wParam,
   2825         LPARAM lParam,
   2826         LRESULT *plResult) = 0;
   2827 
   2828 };
   2829 #ifdef __CRT_UUID_DECL
   2830 __CRT_UUID_DECL(IContextMenu3, 0xbcfce0a0, 0xec17, 0x11d0, 0x8d,0x10, 0x00,0xa0,0xc9,0x0f,0x27,0x19)
   2831 #endif
   2832 #else
   2833 typedef struct IContextMenu3Vtbl {
   2834     BEGIN_INTERFACE
   2835 
   2836     /*** IUnknown methods ***/
   2837     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2838         IContextMenu3 *This,
   2839         REFIID riid,
   2840         void **ppvObject);
   2841 
   2842     ULONG (STDMETHODCALLTYPE *AddRef)(
   2843         IContextMenu3 *This);
   2844 
   2845     ULONG (STDMETHODCALLTYPE *Release)(
   2846         IContextMenu3 *This);
   2847 
   2848     /*** IContextMenu methods ***/
   2849     HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
   2850         IContextMenu3 *This,
   2851         HMENU hmenu,
   2852         UINT indexMenu,
   2853         UINT idCmdFirst,
   2854         UINT idCmdLast,
   2855         UINT uFlags);
   2856 
   2857     HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
   2858         IContextMenu3 *This,
   2859         CMINVOKECOMMANDINFO *pici);
   2860 
   2861     HRESULT (STDMETHODCALLTYPE *GetCommandString)(
   2862         IContextMenu3 *This,
   2863         UINT_PTR idCmd,
   2864         UINT uType,
   2865         UINT *pReserved,
   2866         CHAR *pszName,
   2867         UINT cchMax);
   2868 
   2869     /*** IContextMenu2 methods ***/
   2870     HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
   2871         IContextMenu3 *This,
   2872         UINT uMsg,
   2873         WPARAM wParam,
   2874         LPARAM lParam);
   2875 
   2876     /*** IContextMenu3 methods ***/
   2877     HRESULT (STDMETHODCALLTYPE *HandleMenuMsg2)(
   2878         IContextMenu3 *This,
   2879         UINT uMsg,
   2880         WPARAM wParam,
   2881         LPARAM lParam,
   2882         LRESULT *plResult);
   2883 
   2884     END_INTERFACE
   2885 } IContextMenu3Vtbl;
   2886 
   2887 interface IContextMenu3 {
   2888     CONST_VTBL IContextMenu3Vtbl* lpVtbl;
   2889 };
   2890 
   2891 #ifdef COBJMACROS
   2892 #ifndef WIDL_C_INLINE_WRAPPERS
   2893 /*** IUnknown methods ***/
   2894 #define IContextMenu3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2895 #define IContextMenu3_AddRef(This) (This)->lpVtbl->AddRef(This)
   2896 #define IContextMenu3_Release(This) (This)->lpVtbl->Release(This)
   2897 /*** IContextMenu methods ***/
   2898 #define IContextMenu3_QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags) (This)->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags)
   2899 #define IContextMenu3_InvokeCommand(This,pici) (This)->lpVtbl->InvokeCommand(This,pici)
   2900 #define IContextMenu3_GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax) (This)->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax)
   2901 /*** IContextMenu2 methods ***/
   2902 #define IContextMenu3_HandleMenuMsg(This,uMsg,wParam,lParam) (This)->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam)
   2903 /*** IContextMenu3 methods ***/
   2904 #define IContextMenu3_HandleMenuMsg2(This,uMsg,wParam,lParam,plResult) (This)->lpVtbl->HandleMenuMsg2(This,uMsg,wParam,lParam,plResult)
   2905 #else
   2906 /*** IUnknown methods ***/
   2907 static inline HRESULT IContextMenu3_QueryInterface(IContextMenu3* This,REFIID riid,void **ppvObject) {
   2908     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2909 }
   2910 static inline ULONG IContextMenu3_AddRef(IContextMenu3* This) {
   2911     return This->lpVtbl->AddRef(This);
   2912 }
   2913 static inline ULONG IContextMenu3_Release(IContextMenu3* This) {
   2914     return This->lpVtbl->Release(This);
   2915 }
   2916 /*** IContextMenu methods ***/
   2917 static inline HRESULT IContextMenu3_QueryContextMenu(IContextMenu3* This,HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) {
   2918     return This->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags);
   2919 }
   2920 static inline HRESULT IContextMenu3_InvokeCommand(IContextMenu3* This,CMINVOKECOMMANDINFO *pici) {
   2921     return This->lpVtbl->InvokeCommand(This,pici);
   2922 }
   2923 static inline HRESULT IContextMenu3_GetCommandString(IContextMenu3* This,UINT_PTR idCmd,UINT uType,UINT *pReserved,CHAR *pszName,UINT cchMax) {
   2924     return This->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax);
   2925 }
   2926 /*** IContextMenu2 methods ***/
   2927 static inline HRESULT IContextMenu3_HandleMenuMsg(IContextMenu3* This,UINT uMsg,WPARAM wParam,LPARAM lParam) {
   2928     return This->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam);
   2929 }
   2930 /*** IContextMenu3 methods ***/
   2931 static inline HRESULT IContextMenu3_HandleMenuMsg2(IContextMenu3* This,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *plResult) {
   2932     return This->lpVtbl->HandleMenuMsg2(This,uMsg,wParam,lParam,plResult);
   2933 }
   2934 #endif
   2935 #endif
   2936 
   2937 #endif
   2938 
   2939 
   2940 #endif  /* __IContextMenu3_INTERFACE_DEFINED__ */
   2941 
   2942 typedef IContextMenu3 *LPCONTEXTMENU3;
   2943 
   2944 /*****************************************************************************
   2945  * IExecuteCommand interface
   2946  */
   2947 #ifndef __IExecuteCommand_INTERFACE_DEFINED__
   2948 #define __IExecuteCommand_INTERFACE_DEFINED__
   2949 
   2950 DEFINE_GUID(IID_IExecuteCommand, 0x7f9185b0, 0xcb92, 0x43c5, 0x80,0xa9, 0x92,0x27,0x7a,0x4f,0x7b,0x54);
   2951 #if defined(__cplusplus) && !defined(CINTERFACE)
   2952 MIDL_INTERFACE("7f9185b0-cb92-43c5-80a9-92277a4f7b54")
   2953 IExecuteCommand : public IUnknown
   2954 {
   2955     virtual HRESULT STDMETHODCALLTYPE SetKeyState(
   2956         DWORD grfKeyState) = 0;
   2957 
   2958     virtual HRESULT STDMETHODCALLTYPE SetParameters(
   2959         LPCWSTR pszParameters) = 0;
   2960 
   2961     virtual HRESULT STDMETHODCALLTYPE SetPosition(
   2962         POINT pt) = 0;
   2963 
   2964     virtual HRESULT STDMETHODCALLTYPE SetShowWindow(
   2965         int nShow) = 0;
   2966 
   2967     virtual HRESULT STDMETHODCALLTYPE SetNoShowUI(
   2968         WINBOOL fNoShowUI) = 0;
   2969 
   2970     virtual HRESULT STDMETHODCALLTYPE SetDirectory(
   2971         LPCWSTR pszDirectory) = 0;
   2972 
   2973     virtual HRESULT STDMETHODCALLTYPE Execute(
   2974         ) = 0;
   2975 
   2976 };
   2977 #ifdef __CRT_UUID_DECL
   2978 __CRT_UUID_DECL(IExecuteCommand, 0x7f9185b0, 0xcb92, 0x43c5, 0x80,0xa9, 0x92,0x27,0x7a,0x4f,0x7b,0x54)
   2979 #endif
   2980 #else
   2981 typedef struct IExecuteCommandVtbl {
   2982     BEGIN_INTERFACE
   2983 
   2984     /*** IUnknown methods ***/
   2985     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2986         IExecuteCommand *This,
   2987         REFIID riid,
   2988         void **ppvObject);
   2989 
   2990     ULONG (STDMETHODCALLTYPE *AddRef)(
   2991         IExecuteCommand *This);
   2992 
   2993     ULONG (STDMETHODCALLTYPE *Release)(
   2994         IExecuteCommand *This);
   2995 
   2996     /*** IExecuteCommand methods ***/
   2997     HRESULT (STDMETHODCALLTYPE *SetKeyState)(
   2998         IExecuteCommand *This,
   2999         DWORD grfKeyState);
   3000 
   3001     HRESULT (STDMETHODCALLTYPE *SetParameters)(
   3002         IExecuteCommand *This,
   3003         LPCWSTR pszParameters);
   3004 
   3005     HRESULT (STDMETHODCALLTYPE *SetPosition)(
   3006         IExecuteCommand *This,
   3007         POINT pt);
   3008 
   3009     HRESULT (STDMETHODCALLTYPE *SetShowWindow)(
   3010         IExecuteCommand *This,
   3011         int nShow);
   3012 
   3013     HRESULT (STDMETHODCALLTYPE *SetNoShowUI)(
   3014         IExecuteCommand *This,
   3015         WINBOOL fNoShowUI);
   3016 
   3017     HRESULT (STDMETHODCALLTYPE *SetDirectory)(
   3018         IExecuteCommand *This,
   3019         LPCWSTR pszDirectory);
   3020 
   3021     HRESULT (STDMETHODCALLTYPE *Execute)(
   3022         IExecuteCommand *This);
   3023 
   3024     END_INTERFACE
   3025 } IExecuteCommandVtbl;
   3026 
   3027 interface IExecuteCommand {
   3028     CONST_VTBL IExecuteCommandVtbl* lpVtbl;
   3029 };
   3030 
   3031 #ifdef COBJMACROS
   3032 #ifndef WIDL_C_INLINE_WRAPPERS
   3033 /*** IUnknown methods ***/
   3034 #define IExecuteCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3035 #define IExecuteCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
   3036 #define IExecuteCommand_Release(This) (This)->lpVtbl->Release(This)
   3037 /*** IExecuteCommand methods ***/
   3038 #define IExecuteCommand_SetKeyState(This,grfKeyState) (This)->lpVtbl->SetKeyState(This,grfKeyState)
   3039 #define IExecuteCommand_SetParameters(This,pszParameters) (This)->lpVtbl->SetParameters(This,pszParameters)
   3040 #define IExecuteCommand_SetPosition(This,pt) (This)->lpVtbl->SetPosition(This,pt)
   3041 #define IExecuteCommand_SetShowWindow(This,nShow) (This)->lpVtbl->SetShowWindow(This,nShow)
   3042 #define IExecuteCommand_SetNoShowUI(This,fNoShowUI) (This)->lpVtbl->SetNoShowUI(This,fNoShowUI)
   3043 #define IExecuteCommand_SetDirectory(This,pszDirectory) (This)->lpVtbl->SetDirectory(This,pszDirectory)
   3044 #define IExecuteCommand_Execute(This) (This)->lpVtbl->Execute(This)
   3045 #else
   3046 /*** IUnknown methods ***/
   3047 static inline HRESULT IExecuteCommand_QueryInterface(IExecuteCommand* This,REFIID riid,void **ppvObject) {
   3048     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3049 }
   3050 static inline ULONG IExecuteCommand_AddRef(IExecuteCommand* This) {
   3051     return This->lpVtbl->AddRef(This);
   3052 }
   3053 static inline ULONG IExecuteCommand_Release(IExecuteCommand* This) {
   3054     return This->lpVtbl->Release(This);
   3055 }
   3056 /*** IExecuteCommand methods ***/
   3057 static inline HRESULT IExecuteCommand_SetKeyState(IExecuteCommand* This,DWORD grfKeyState) {
   3058     return This->lpVtbl->SetKeyState(This,grfKeyState);
   3059 }
   3060 static inline HRESULT IExecuteCommand_SetParameters(IExecuteCommand* This,LPCWSTR pszParameters) {
   3061     return This->lpVtbl->SetParameters(This,pszParameters);
   3062 }
   3063 static inline HRESULT IExecuteCommand_SetPosition(IExecuteCommand* This,POINT pt) {
   3064     return This->lpVtbl->SetPosition(This,pt);
   3065 }
   3066 static inline HRESULT IExecuteCommand_SetShowWindow(IExecuteCommand* This,int nShow) {
   3067     return This->lpVtbl->SetShowWindow(This,nShow);
   3068 }
   3069 static inline HRESULT IExecuteCommand_SetNoShowUI(IExecuteCommand* This,WINBOOL fNoShowUI) {
   3070     return This->lpVtbl->SetNoShowUI(This,fNoShowUI);
   3071 }
   3072 static inline HRESULT IExecuteCommand_SetDirectory(IExecuteCommand* This,LPCWSTR pszDirectory) {
   3073     return This->lpVtbl->SetDirectory(This,pszDirectory);
   3074 }
   3075 static inline HRESULT IExecuteCommand_Execute(IExecuteCommand* This) {
   3076     return This->lpVtbl->Execute(This);
   3077 }
   3078 #endif
   3079 #endif
   3080 
   3081 #endif
   3082 
   3083 
   3084 #endif  /* __IExecuteCommand_INTERFACE_DEFINED__ */
   3085 
   3086 
   3087 /*****************************************************************************
   3088  * IPersistFolder interface
   3089  */
   3090 #ifndef __IPersistFolder_INTERFACE_DEFINED__
   3091 #define __IPersistFolder_INTERFACE_DEFINED__
   3092 
   3093 DEFINE_GUID(IID_IPersistFolder, 0x000214ea, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   3094 #if defined(__cplusplus) && !defined(CINTERFACE)
   3095 MIDL_INTERFACE("000214ea-0000-0000-c000-000000000046")
   3096 IPersistFolder : public IPersist
   3097 {
   3098     virtual HRESULT STDMETHODCALLTYPE Initialize(
   3099         PCIDLIST_ABSOLUTE pidl) = 0;
   3100 
   3101 };
   3102 #ifdef __CRT_UUID_DECL
   3103 __CRT_UUID_DECL(IPersistFolder, 0x000214ea, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   3104 #endif
   3105 #else
   3106 typedef struct IPersistFolderVtbl {
   3107     BEGIN_INTERFACE
   3108 
   3109     /*** IUnknown methods ***/
   3110     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3111         IPersistFolder *This,
   3112         REFIID riid,
   3113         void **ppvObject);
   3114 
   3115     ULONG (STDMETHODCALLTYPE *AddRef)(
   3116         IPersistFolder *This);
   3117 
   3118     ULONG (STDMETHODCALLTYPE *Release)(
   3119         IPersistFolder *This);
   3120 
   3121     /*** IPersist methods ***/
   3122     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   3123         IPersistFolder *This,
   3124         CLSID *pClassID);
   3125 
   3126     /*** IPersistFolder methods ***/
   3127     HRESULT (STDMETHODCALLTYPE *Initialize)(
   3128         IPersistFolder *This,
   3129         PCIDLIST_ABSOLUTE pidl);
   3130 
   3131     END_INTERFACE
   3132 } IPersistFolderVtbl;
   3133 
   3134 interface IPersistFolder {
   3135     CONST_VTBL IPersistFolderVtbl* lpVtbl;
   3136 };
   3137 
   3138 #ifdef COBJMACROS
   3139 #ifndef WIDL_C_INLINE_WRAPPERS
   3140 /*** IUnknown methods ***/
   3141 #define IPersistFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3142 #define IPersistFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
   3143 #define IPersistFolder_Release(This) (This)->lpVtbl->Release(This)
   3144 /*** IPersist methods ***/
   3145 #define IPersistFolder_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   3146 /*** IPersistFolder methods ***/
   3147 #define IPersistFolder_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
   3148 #else
   3149 /*** IUnknown methods ***/
   3150 static inline HRESULT IPersistFolder_QueryInterface(IPersistFolder* This,REFIID riid,void **ppvObject) {
   3151     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3152 }
   3153 static inline ULONG IPersistFolder_AddRef(IPersistFolder* This) {
   3154     return This->lpVtbl->AddRef(This);
   3155 }
   3156 static inline ULONG IPersistFolder_Release(IPersistFolder* This) {
   3157     return This->lpVtbl->Release(This);
   3158 }
   3159 /*** IPersist methods ***/
   3160 static inline HRESULT IPersistFolder_GetClassID(IPersistFolder* This,CLSID *pClassID) {
   3161     return This->lpVtbl->GetClassID(This,pClassID);
   3162 }
   3163 /*** IPersistFolder methods ***/
   3164 static inline HRESULT IPersistFolder_Initialize(IPersistFolder* This,PCIDLIST_ABSOLUTE pidl) {
   3165     return This->lpVtbl->Initialize(This,pidl);
   3166 }
   3167 #endif
   3168 #endif
   3169 
   3170 #endif
   3171 
   3172 
   3173 #endif  /* __IPersistFolder_INTERFACE_DEFINED__ */
   3174 
   3175 typedef IPersistFolder *LPPERSISTFOLDER;
   3176 
   3177 #define IRTIR_TASK_NOT_RUNNING   0
   3178 #define IRTIR_TASK_RUNNING       1
   3179 #define IRTIR_TASK_SUSPENDED     2
   3180 #define IRTIR_TASK_PENDING       3
   3181 #define IRTIR_TASK_FINISHED      4
   3182 
   3183 /*****************************************************************************
   3184  * IRunnableTask interface
   3185  */
   3186 #ifndef __IRunnableTask_INTERFACE_DEFINED__
   3187 #define __IRunnableTask_INTERFACE_DEFINED__
   3188 
   3189 DEFINE_GUID(IID_IRunnableTask, 0x85788d00, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec);
   3190 #if defined(__cplusplus) && !defined(CINTERFACE)
   3191 MIDL_INTERFACE("85788d00-6807-11d0-b810-00c04fd706ec")
   3192 IRunnableTask : public IUnknown
   3193 {
   3194     virtual HRESULT STDMETHODCALLTYPE Run(
   3195         ) = 0;
   3196 
   3197     virtual HRESULT STDMETHODCALLTYPE Kill(
   3198         WINBOOL bWait) = 0;
   3199 
   3200     virtual HRESULT STDMETHODCALLTYPE Suspend(
   3201         ) = 0;
   3202 
   3203     virtual HRESULT STDMETHODCALLTYPE Resume(
   3204         ) = 0;
   3205 
   3206     virtual ULONG STDMETHODCALLTYPE IsRunning(
   3207         ) = 0;
   3208 
   3209 };
   3210 #ifdef __CRT_UUID_DECL
   3211 __CRT_UUID_DECL(IRunnableTask, 0x85788d00, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec)
   3212 #endif
   3213 #else
   3214 typedef struct IRunnableTaskVtbl {
   3215     BEGIN_INTERFACE
   3216 
   3217     /*** IUnknown methods ***/
   3218     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3219         IRunnableTask *This,
   3220         REFIID riid,
   3221         void **ppvObject);
   3222 
   3223     ULONG (STDMETHODCALLTYPE *AddRef)(
   3224         IRunnableTask *This);
   3225 
   3226     ULONG (STDMETHODCALLTYPE *Release)(
   3227         IRunnableTask *This);
   3228 
   3229     /*** IRunnableTask methods ***/
   3230     HRESULT (STDMETHODCALLTYPE *Run)(
   3231         IRunnableTask *This);
   3232 
   3233     HRESULT (STDMETHODCALLTYPE *Kill)(
   3234         IRunnableTask *This,
   3235         WINBOOL bWait);
   3236 
   3237     HRESULT (STDMETHODCALLTYPE *Suspend)(
   3238         IRunnableTask *This);
   3239 
   3240     HRESULT (STDMETHODCALLTYPE *Resume)(
   3241         IRunnableTask *This);
   3242 
   3243     ULONG (STDMETHODCALLTYPE *IsRunning)(
   3244         IRunnableTask *This);
   3245 
   3246     END_INTERFACE
   3247 } IRunnableTaskVtbl;
   3248 
   3249 interface IRunnableTask {
   3250     CONST_VTBL IRunnableTaskVtbl* lpVtbl;
   3251 };
   3252 
   3253 #ifdef COBJMACROS
   3254 #ifndef WIDL_C_INLINE_WRAPPERS
   3255 /*** IUnknown methods ***/
   3256 #define IRunnableTask_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3257 #define IRunnableTask_AddRef(This) (This)->lpVtbl->AddRef(This)
   3258 #define IRunnableTask_Release(This) (This)->lpVtbl->Release(This)
   3259 /*** IRunnableTask methods ***/
   3260 #define IRunnableTask_Run(This) (This)->lpVtbl->Run(This)
   3261 #define IRunnableTask_Kill(This,bWait) (This)->lpVtbl->Kill(This,bWait)
   3262 #define IRunnableTask_Suspend(This) (This)->lpVtbl->Suspend(This)
   3263 #define IRunnableTask_Resume(This) (This)->lpVtbl->Resume(This)
   3264 #define IRunnableTask_IsRunning(This) (This)->lpVtbl->IsRunning(This)
   3265 #else
   3266 /*** IUnknown methods ***/
   3267 static inline HRESULT IRunnableTask_QueryInterface(IRunnableTask* This,REFIID riid,void **ppvObject) {
   3268     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3269 }
   3270 static inline ULONG IRunnableTask_AddRef(IRunnableTask* This) {
   3271     return This->lpVtbl->AddRef(This);
   3272 }
   3273 static inline ULONG IRunnableTask_Release(IRunnableTask* This) {
   3274     return This->lpVtbl->Release(This);
   3275 }
   3276 /*** IRunnableTask methods ***/
   3277 static inline HRESULT IRunnableTask_Run(IRunnableTask* This) {
   3278     return This->lpVtbl->Run(This);
   3279 }
   3280 static inline HRESULT IRunnableTask_Kill(IRunnableTask* This,WINBOOL bWait) {
   3281     return This->lpVtbl->Kill(This,bWait);
   3282 }
   3283 static inline HRESULT IRunnableTask_Suspend(IRunnableTask* This) {
   3284     return This->lpVtbl->Suspend(This);
   3285 }
   3286 static inline HRESULT IRunnableTask_Resume(IRunnableTask* This) {
   3287     return This->lpVtbl->Resume(This);
   3288 }
   3289 static inline ULONG IRunnableTask_IsRunning(IRunnableTask* This) {
   3290     return This->lpVtbl->IsRunning(This);
   3291 }
   3292 #endif
   3293 #endif
   3294 
   3295 #endif
   3296 
   3297 
   3298 #endif  /* __IRunnableTask_INTERFACE_DEFINED__ */
   3299 
   3300 
   3301 #define TOID_NULL GUID_NULL
   3302 #define ITSAT_DEFAULT_LPARAM ((DWORD_PTR)-1)
   3303 
   3304 #define ITSAT_DEFAULT_PRIORITY 0x10000000
   3305 #define ITSAT_MAX_PRIORITY 0x7fffffff
   3306 #define ITSAT_MIN_PRIORITY 0x00000000
   3307 
   3308 #define ITSSFLAG_COMPLETE_ON_DESTROY 0x0
   3309 #define ITSSFLAG_KILL_ON_DESTROY 0x1
   3310 
   3311 #define ITSSFLAG_FLAGS_MASK 0x3
   3312 
   3313 #define ITSS_THREAD_DESTROY_DEFAULT_TIMEOUT (10 * 1000)
   3314 #define ITSS_THREAD_TERMINATE_TIMEOUT (INFINITE)
   3315 #define ITSS_THREAD_TIMEOUT_NO_CHANGE (INFINITE - 1)
   3316 
   3317 /*****************************************************************************
   3318  * IShellTaskScheduler interface
   3319  */
   3320 #ifndef __IShellTaskScheduler_INTERFACE_DEFINED__
   3321 #define __IShellTaskScheduler_INTERFACE_DEFINED__
   3322 
   3323 DEFINE_GUID(IID_IShellTaskScheduler, 0x6ccb7be0, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec);
   3324 #if defined(__cplusplus) && !defined(CINTERFACE)
   3325 MIDL_INTERFACE("6ccb7be0-6807-11d0-b810-00c04fd706ec")
   3326 IShellTaskScheduler : public IUnknown
   3327 {
   3328     virtual HRESULT STDMETHODCALLTYPE AddTask(
   3329         IRunnableTask *prt,
   3330         REFTASKOWNERID rtoid,
   3331         DWORD_PTR lParam,
   3332         DWORD dwPriority) = 0;
   3333 
   3334     virtual HRESULT STDMETHODCALLTYPE RemoveTasks(
   3335         REFTASKOWNERID rtoid,
   3336         DWORD_PTR lParam,
   3337         WINBOOL bWaitIfRunning) = 0;
   3338 
   3339     virtual UINT STDMETHODCALLTYPE CountTasks(
   3340         REFTASKOWNERID rtoid) = 0;
   3341 
   3342     virtual HRESULT STDMETHODCALLTYPE Status(
   3343         DWORD dwReleaseStatus,
   3344         DWORD dwThreadTimeout) = 0;
   3345 
   3346 };
   3347 #ifdef __CRT_UUID_DECL
   3348 __CRT_UUID_DECL(IShellTaskScheduler, 0x6ccb7be0, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec)
   3349 #endif
   3350 #else
   3351 typedef struct IShellTaskSchedulerVtbl {
   3352     BEGIN_INTERFACE
   3353 
   3354     /*** IUnknown methods ***/
   3355     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3356         IShellTaskScheduler *This,
   3357         REFIID riid,
   3358         void **ppvObject);
   3359 
   3360     ULONG (STDMETHODCALLTYPE *AddRef)(
   3361         IShellTaskScheduler *This);
   3362 
   3363     ULONG (STDMETHODCALLTYPE *Release)(
   3364         IShellTaskScheduler *This);
   3365 
   3366     /*** IShellTaskScheduler methods ***/
   3367     HRESULT (STDMETHODCALLTYPE *AddTask)(
   3368         IShellTaskScheduler *This,
   3369         IRunnableTask *prt,
   3370         REFTASKOWNERID rtoid,
   3371         DWORD_PTR lParam,
   3372         DWORD dwPriority);
   3373 
   3374     HRESULT (STDMETHODCALLTYPE *RemoveTasks)(
   3375         IShellTaskScheduler *This,
   3376         REFTASKOWNERID rtoid,
   3377         DWORD_PTR lParam,
   3378         WINBOOL bWaitIfRunning);
   3379 
   3380     UINT (STDMETHODCALLTYPE *CountTasks)(
   3381         IShellTaskScheduler *This,
   3382         REFTASKOWNERID rtoid);
   3383 
   3384     HRESULT (STDMETHODCALLTYPE *Status)(
   3385         IShellTaskScheduler *This,
   3386         DWORD dwReleaseStatus,
   3387         DWORD dwThreadTimeout);
   3388 
   3389     END_INTERFACE
   3390 } IShellTaskSchedulerVtbl;
   3391 
   3392 interface IShellTaskScheduler {
   3393     CONST_VTBL IShellTaskSchedulerVtbl* lpVtbl;
   3394 };
   3395 
   3396 #ifdef COBJMACROS
   3397 #ifndef WIDL_C_INLINE_WRAPPERS
   3398 /*** IUnknown methods ***/
   3399 #define IShellTaskScheduler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3400 #define IShellTaskScheduler_AddRef(This) (This)->lpVtbl->AddRef(This)
   3401 #define IShellTaskScheduler_Release(This) (This)->lpVtbl->Release(This)
   3402 /*** IShellTaskScheduler methods ***/
   3403 #define IShellTaskScheduler_AddTask(This,prt,rtoid,lParam,dwPriority) (This)->lpVtbl->AddTask(This,prt,rtoid,lParam,dwPriority)
   3404 #define IShellTaskScheduler_RemoveTasks(This,rtoid,lParam,bWaitIfRunning) (This)->lpVtbl->RemoveTasks(This,rtoid,lParam,bWaitIfRunning)
   3405 #define IShellTaskScheduler_CountTasks(This,rtoid) (This)->lpVtbl->CountTasks(This,rtoid)
   3406 #define IShellTaskScheduler_Status(This,dwReleaseStatus,dwThreadTimeout) (This)->lpVtbl->Status(This,dwReleaseStatus,dwThreadTimeout)
   3407 #else
   3408 /*** IUnknown methods ***/
   3409 static inline HRESULT IShellTaskScheduler_QueryInterface(IShellTaskScheduler* This,REFIID riid,void **ppvObject) {
   3410     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3411 }
   3412 static inline ULONG IShellTaskScheduler_AddRef(IShellTaskScheduler* This) {
   3413     return This->lpVtbl->AddRef(This);
   3414 }
   3415 static inline ULONG IShellTaskScheduler_Release(IShellTaskScheduler* This) {
   3416     return This->lpVtbl->Release(This);
   3417 }
   3418 /*** IShellTaskScheduler methods ***/
   3419 static inline HRESULT IShellTaskScheduler_AddTask(IShellTaskScheduler* This,IRunnableTask *prt,REFTASKOWNERID rtoid,DWORD_PTR lParam,DWORD dwPriority) {
   3420     return This->lpVtbl->AddTask(This,prt,rtoid,lParam,dwPriority);
   3421 }
   3422 static inline HRESULT IShellTaskScheduler_RemoveTasks(IShellTaskScheduler* This,REFTASKOWNERID rtoid,DWORD_PTR lParam,WINBOOL bWaitIfRunning) {
   3423     return This->lpVtbl->RemoveTasks(This,rtoid,lParam,bWaitIfRunning);
   3424 }
   3425 static inline UINT IShellTaskScheduler_CountTasks(IShellTaskScheduler* This,REFTASKOWNERID rtoid) {
   3426     return This->lpVtbl->CountTasks(This,rtoid);
   3427 }
   3428 static inline HRESULT IShellTaskScheduler_Status(IShellTaskScheduler* This,DWORD dwReleaseStatus,DWORD dwThreadTimeout) {
   3429     return This->lpVtbl->Status(This,dwReleaseStatus,dwThreadTimeout);
   3430 }
   3431 #endif
   3432 #endif
   3433 
   3434 #endif
   3435 
   3436 
   3437 #endif  /* __IShellTaskScheduler_INTERFACE_DEFINED__ */
   3438 
   3439 
   3440 #define SID_ShellTaskScheduler IID_IShellTaskScheduler
   3441 
   3442 /*****************************************************************************
   3443  * IQueryCodePage interface
   3444  */
   3445 #ifndef __IQueryCodePage_INTERFACE_DEFINED__
   3446 #define __IQueryCodePage_INTERFACE_DEFINED__
   3447 
   3448 DEFINE_GUID(IID_IQueryCodePage, 0xc7b236ce, 0xee80, 0x11d0, 0x98,0x5f, 0x00,0x60,0x08,0x05,0x93,0x82);
   3449 #if defined(__cplusplus) && !defined(CINTERFACE)
   3450 MIDL_INTERFACE("c7b236ce-ee80-11d0-985f-006008059382")
   3451 IQueryCodePage : public IUnknown
   3452 {
   3453     virtual HRESULT STDMETHODCALLTYPE GetCodePage(
   3454         UINT *puiCodePage) = 0;
   3455 
   3456     virtual HRESULT STDMETHODCALLTYPE SetCodePage(
   3457         UINT uiCodePage) = 0;
   3458 
   3459 };
   3460 #ifdef __CRT_UUID_DECL
   3461 __CRT_UUID_DECL(IQueryCodePage, 0xc7b236ce, 0xee80, 0x11d0, 0x98,0x5f, 0x00,0x60,0x08,0x05,0x93,0x82)
   3462 #endif
   3463 #else
   3464 typedef struct IQueryCodePageVtbl {
   3465     BEGIN_INTERFACE
   3466 
   3467     /*** IUnknown methods ***/
   3468     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3469         IQueryCodePage *This,
   3470         REFIID riid,
   3471         void **ppvObject);
   3472 
   3473     ULONG (STDMETHODCALLTYPE *AddRef)(
   3474         IQueryCodePage *This);
   3475 
   3476     ULONG (STDMETHODCALLTYPE *Release)(
   3477         IQueryCodePage *This);
   3478 
   3479     /*** IQueryCodePage methods ***/
   3480     HRESULT (STDMETHODCALLTYPE *GetCodePage)(
   3481         IQueryCodePage *This,
   3482         UINT *puiCodePage);
   3483 
   3484     HRESULT (STDMETHODCALLTYPE *SetCodePage)(
   3485         IQueryCodePage *This,
   3486         UINT uiCodePage);
   3487 
   3488     END_INTERFACE
   3489 } IQueryCodePageVtbl;
   3490 
   3491 interface IQueryCodePage {
   3492     CONST_VTBL IQueryCodePageVtbl* lpVtbl;
   3493 };
   3494 
   3495 #ifdef COBJMACROS
   3496 #ifndef WIDL_C_INLINE_WRAPPERS
   3497 /*** IUnknown methods ***/
   3498 #define IQueryCodePage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3499 #define IQueryCodePage_AddRef(This) (This)->lpVtbl->AddRef(This)
   3500 #define IQueryCodePage_Release(This) (This)->lpVtbl->Release(This)
   3501 /*** IQueryCodePage methods ***/
   3502 #define IQueryCodePage_GetCodePage(This,puiCodePage) (This)->lpVtbl->GetCodePage(This,puiCodePage)
   3503 #define IQueryCodePage_SetCodePage(This,uiCodePage) (This)->lpVtbl->SetCodePage(This,uiCodePage)
   3504 #else
   3505 /*** IUnknown methods ***/
   3506 static inline HRESULT IQueryCodePage_QueryInterface(IQueryCodePage* This,REFIID riid,void **ppvObject) {
   3507     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3508 }
   3509 static inline ULONG IQueryCodePage_AddRef(IQueryCodePage* This) {
   3510     return This->lpVtbl->AddRef(This);
   3511 }
   3512 static inline ULONG IQueryCodePage_Release(IQueryCodePage* This) {
   3513     return This->lpVtbl->Release(This);
   3514 }
   3515 /*** IQueryCodePage methods ***/
   3516 static inline HRESULT IQueryCodePage_GetCodePage(IQueryCodePage* This,UINT *puiCodePage) {
   3517     return This->lpVtbl->GetCodePage(This,puiCodePage);
   3518 }
   3519 static inline HRESULT IQueryCodePage_SetCodePage(IQueryCodePage* This,UINT uiCodePage) {
   3520     return This->lpVtbl->SetCodePage(This,uiCodePage);
   3521 }
   3522 #endif
   3523 #endif
   3524 
   3525 #endif
   3526 
   3527 
   3528 #endif  /* __IQueryCodePage_INTERFACE_DEFINED__ */
   3529 
   3530 
   3531 /*****************************************************************************
   3532  * IPersistFolder2 interface
   3533  */
   3534 #ifndef __IPersistFolder2_INTERFACE_DEFINED__
   3535 #define __IPersistFolder2_INTERFACE_DEFINED__
   3536 
   3537 DEFINE_GUID(IID_IPersistFolder2, 0x1ac3d9f0, 0x175c, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f);
   3538 #if defined(__cplusplus) && !defined(CINTERFACE)
   3539 MIDL_INTERFACE("1ac3d9f0-175c-11d1-95be-00609797ea4f")
   3540 IPersistFolder2 : public IPersistFolder
   3541 {
   3542     virtual HRESULT STDMETHODCALLTYPE GetCurFolder(
   3543         PIDLIST_ABSOLUTE *ppidl) = 0;
   3544 
   3545 };
   3546 #ifdef __CRT_UUID_DECL
   3547 __CRT_UUID_DECL(IPersistFolder2, 0x1ac3d9f0, 0x175c, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f)
   3548 #endif
   3549 #else
   3550 typedef struct IPersistFolder2Vtbl {
   3551     BEGIN_INTERFACE
   3552 
   3553     /*** IUnknown methods ***/
   3554     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3555         IPersistFolder2 *This,
   3556         REFIID riid,
   3557         void **ppvObject);
   3558 
   3559     ULONG (STDMETHODCALLTYPE *AddRef)(
   3560         IPersistFolder2 *This);
   3561 
   3562     ULONG (STDMETHODCALLTYPE *Release)(
   3563         IPersistFolder2 *This);
   3564 
   3565     /*** IPersist methods ***/
   3566     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   3567         IPersistFolder2 *This,
   3568         CLSID *pClassID);
   3569 
   3570     /*** IPersistFolder methods ***/
   3571     HRESULT (STDMETHODCALLTYPE *Initialize)(
   3572         IPersistFolder2 *This,
   3573         PCIDLIST_ABSOLUTE pidl);
   3574 
   3575     /*** IPersistFolder2 methods ***/
   3576     HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
   3577         IPersistFolder2 *This,
   3578         PIDLIST_ABSOLUTE *ppidl);
   3579 
   3580     END_INTERFACE
   3581 } IPersistFolder2Vtbl;
   3582 
   3583 interface IPersistFolder2 {
   3584     CONST_VTBL IPersistFolder2Vtbl* lpVtbl;
   3585 };
   3586 
   3587 #ifdef COBJMACROS
   3588 #ifndef WIDL_C_INLINE_WRAPPERS
   3589 /*** IUnknown methods ***/
   3590 #define IPersistFolder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3591 #define IPersistFolder2_AddRef(This) (This)->lpVtbl->AddRef(This)
   3592 #define IPersistFolder2_Release(This) (This)->lpVtbl->Release(This)
   3593 /*** IPersist methods ***/
   3594 #define IPersistFolder2_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   3595 /*** IPersistFolder methods ***/
   3596 #define IPersistFolder2_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
   3597 /*** IPersistFolder2 methods ***/
   3598 #define IPersistFolder2_GetCurFolder(This,ppidl) (This)->lpVtbl->GetCurFolder(This,ppidl)
   3599 #else
   3600 /*** IUnknown methods ***/
   3601 static inline HRESULT IPersistFolder2_QueryInterface(IPersistFolder2* This,REFIID riid,void **ppvObject) {
   3602     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3603 }
   3604 static inline ULONG IPersistFolder2_AddRef(IPersistFolder2* This) {
   3605     return This->lpVtbl->AddRef(This);
   3606 }
   3607 static inline ULONG IPersistFolder2_Release(IPersistFolder2* This) {
   3608     return This->lpVtbl->Release(This);
   3609 }
   3610 /*** IPersist methods ***/
   3611 static inline HRESULT IPersistFolder2_GetClassID(IPersistFolder2* This,CLSID *pClassID) {
   3612     return This->lpVtbl->GetClassID(This,pClassID);
   3613 }
   3614 /*** IPersistFolder methods ***/
   3615 static inline HRESULT IPersistFolder2_Initialize(IPersistFolder2* This,PCIDLIST_ABSOLUTE pidl) {
   3616     return This->lpVtbl->Initialize(This,pidl);
   3617 }
   3618 /*** IPersistFolder2 methods ***/
   3619 static inline HRESULT IPersistFolder2_GetCurFolder(IPersistFolder2* This,PIDLIST_ABSOLUTE *ppidl) {
   3620     return This->lpVtbl->GetCurFolder(This,ppidl);
   3621 }
   3622 #endif
   3623 #endif
   3624 
   3625 #endif
   3626 
   3627 
   3628 #endif  /* __IPersistFolder2_INTERFACE_DEFINED__ */
   3629 
   3630 
   3631 #define CSIDL_FLAG_PFTI_TRACKTARGET CSIDL_FLAG_DONT_VERIFY
   3632 
   3633 #include <pshpack8.h>
   3634 typedef struct _PERSIST_FOLDER_TARGET_INFO {
   3635     PIDLIST_ABSOLUTE pidlTargetFolder;
   3636     WCHAR szTargetParsingName[260];
   3637     WCHAR szNetworkProvider[260];
   3638     DWORD dwAttributes;
   3639     int csidl;
   3640 } PERSIST_FOLDER_TARGET_INFO;
   3641 #include <poppack.h>
   3642 
   3643 /*****************************************************************************
   3644  * IPersistFolder3 interface
   3645  */
   3646 #ifndef __IPersistFolder3_INTERFACE_DEFINED__
   3647 #define __IPersistFolder3_INTERFACE_DEFINED__
   3648 
   3649 DEFINE_GUID(IID_IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87,0xa5, 0x00,0xc0,0x4f,0x68,0x37,0xcf);
   3650 #if defined(__cplusplus) && !defined(CINTERFACE)
   3651 MIDL_INTERFACE("cef04fdf-fe72-11d2-87a5-00c04f6837cf")
   3652 IPersistFolder3 : public IPersistFolder2
   3653 {
   3654     virtual HRESULT STDMETHODCALLTYPE InitializeEx(
   3655         IBindCtx *pbc,
   3656         PCIDLIST_ABSOLUTE pidlRoot,
   3657         const PERSIST_FOLDER_TARGET_INFO *ppfti) = 0;
   3658 
   3659     virtual HRESULT STDMETHODCALLTYPE GetFolderTargetInfo(
   3660         PERSIST_FOLDER_TARGET_INFO *ppfti) = 0;
   3661 
   3662 };
   3663 #ifdef __CRT_UUID_DECL
   3664 __CRT_UUID_DECL(IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87,0xa5, 0x00,0xc0,0x4f,0x68,0x37,0xcf)
   3665 #endif
   3666 #else
   3667 typedef struct IPersistFolder3Vtbl {
   3668     BEGIN_INTERFACE
   3669 
   3670     /*** IUnknown methods ***/
   3671     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3672         IPersistFolder3 *This,
   3673         REFIID riid,
   3674         void **ppvObject);
   3675 
   3676     ULONG (STDMETHODCALLTYPE *AddRef)(
   3677         IPersistFolder3 *This);
   3678 
   3679     ULONG (STDMETHODCALLTYPE *Release)(
   3680         IPersistFolder3 *This);
   3681 
   3682     /*** IPersist methods ***/
   3683     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   3684         IPersistFolder3 *This,
   3685         CLSID *pClassID);
   3686 
   3687     /*** IPersistFolder methods ***/
   3688     HRESULT (STDMETHODCALLTYPE *Initialize)(
   3689         IPersistFolder3 *This,
   3690         PCIDLIST_ABSOLUTE pidl);
   3691 
   3692     /*** IPersistFolder2 methods ***/
   3693     HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
   3694         IPersistFolder3 *This,
   3695         PIDLIST_ABSOLUTE *ppidl);
   3696 
   3697     /*** IPersistFolder3 methods ***/
   3698     HRESULT (STDMETHODCALLTYPE *InitializeEx)(
   3699         IPersistFolder3 *This,
   3700         IBindCtx *pbc,
   3701         PCIDLIST_ABSOLUTE pidlRoot,
   3702         const PERSIST_FOLDER_TARGET_INFO *ppfti);
   3703 
   3704     HRESULT (STDMETHODCALLTYPE *GetFolderTargetInfo)(
   3705         IPersistFolder3 *This,
   3706         PERSIST_FOLDER_TARGET_INFO *ppfti);
   3707 
   3708     END_INTERFACE
   3709 } IPersistFolder3Vtbl;
   3710 
   3711 interface IPersistFolder3 {
   3712     CONST_VTBL IPersistFolder3Vtbl* lpVtbl;
   3713 };
   3714 
   3715 #ifdef COBJMACROS
   3716 #ifndef WIDL_C_INLINE_WRAPPERS
   3717 /*** IUnknown methods ***/
   3718 #define IPersistFolder3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3719 #define IPersistFolder3_AddRef(This) (This)->lpVtbl->AddRef(This)
   3720 #define IPersistFolder3_Release(This) (This)->lpVtbl->Release(This)
   3721 /*** IPersist methods ***/
   3722 #define IPersistFolder3_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   3723 /*** IPersistFolder methods ***/
   3724 #define IPersistFolder3_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
   3725 /*** IPersistFolder2 methods ***/
   3726 #define IPersistFolder3_GetCurFolder(This,ppidl) (This)->lpVtbl->GetCurFolder(This,ppidl)
   3727 /*** IPersistFolder3 methods ***/
   3728 #define IPersistFolder3_InitializeEx(This,pbc,pidlRoot,ppfti) (This)->lpVtbl->InitializeEx(This,pbc,pidlRoot,ppfti)
   3729 #define IPersistFolder3_GetFolderTargetInfo(This,ppfti) (This)->lpVtbl->GetFolderTargetInfo(This,ppfti)
   3730 #else
   3731 /*** IUnknown methods ***/
   3732 static inline HRESULT IPersistFolder3_QueryInterface(IPersistFolder3* This,REFIID riid,void **ppvObject) {
   3733     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3734 }
   3735 static inline ULONG IPersistFolder3_AddRef(IPersistFolder3* This) {
   3736     return This->lpVtbl->AddRef(This);
   3737 }
   3738 static inline ULONG IPersistFolder3_Release(IPersistFolder3* This) {
   3739     return This->lpVtbl->Release(This);
   3740 }
   3741 /*** IPersist methods ***/
   3742 static inline HRESULT IPersistFolder3_GetClassID(IPersistFolder3* This,CLSID *pClassID) {
   3743     return This->lpVtbl->GetClassID(This,pClassID);
   3744 }
   3745 /*** IPersistFolder methods ***/
   3746 static inline HRESULT IPersistFolder3_Initialize(IPersistFolder3* This,PCIDLIST_ABSOLUTE pidl) {
   3747     return This->lpVtbl->Initialize(This,pidl);
   3748 }
   3749 /*** IPersistFolder2 methods ***/
   3750 static inline HRESULT IPersistFolder3_GetCurFolder(IPersistFolder3* This,PIDLIST_ABSOLUTE *ppidl) {
   3751     return This->lpVtbl->GetCurFolder(This,ppidl);
   3752 }
   3753 /*** IPersistFolder3 methods ***/
   3754 static inline HRESULT IPersistFolder3_InitializeEx(IPersistFolder3* This,IBindCtx *pbc,PCIDLIST_ABSOLUTE pidlRoot,const PERSIST_FOLDER_TARGET_INFO *ppfti) {
   3755     return This->lpVtbl->InitializeEx(This,pbc,pidlRoot,ppfti);
   3756 }
   3757 static inline HRESULT IPersistFolder3_GetFolderTargetInfo(IPersistFolder3* This,PERSIST_FOLDER_TARGET_INFO *ppfti) {
   3758     return This->lpVtbl->GetFolderTargetInfo(This,ppfti);
   3759 }
   3760 #endif
   3761 #endif
   3762 
   3763 #endif
   3764 
   3765 
   3766 #endif  /* __IPersistFolder3_INTERFACE_DEFINED__ */
   3767 
   3768 
   3769 /*****************************************************************************
   3770  * IPersistIDList interface
   3771  */
   3772 #ifndef __IPersistIDList_INTERFACE_DEFINED__
   3773 #define __IPersistIDList_INTERFACE_DEFINED__
   3774 
   3775 DEFINE_GUID(IID_IPersistIDList, 0x1079acfc, 0x29bd, 0x11d3, 0x8e,0x0d, 0x00,0xc0,0x4f,0x68,0x37,0xd5);
   3776 #if defined(__cplusplus) && !defined(CINTERFACE)
   3777 MIDL_INTERFACE("1079acfc-29bd-11d3-8e0d-00c04f6837d5")
   3778 IPersistIDList : public IPersist
   3779 {
   3780     virtual HRESULT STDMETHODCALLTYPE SetIDList(
   3781         PCIDLIST_ABSOLUTE pidl) = 0;
   3782 
   3783     virtual HRESULT STDMETHODCALLTYPE GetIDList(
   3784         PIDLIST_ABSOLUTE *ppidl) = 0;
   3785 
   3786 };
   3787 #ifdef __CRT_UUID_DECL
   3788 __CRT_UUID_DECL(IPersistIDList, 0x1079acfc, 0x29bd, 0x11d3, 0x8e,0x0d, 0x00,0xc0,0x4f,0x68,0x37,0xd5)
   3789 #endif
   3790 #else
   3791 typedef struct IPersistIDListVtbl {
   3792     BEGIN_INTERFACE
   3793 
   3794     /*** IUnknown methods ***/
   3795     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3796         IPersistIDList *This,
   3797         REFIID riid,
   3798         void **ppvObject);
   3799 
   3800     ULONG (STDMETHODCALLTYPE *AddRef)(
   3801         IPersistIDList *This);
   3802 
   3803     ULONG (STDMETHODCALLTYPE *Release)(
   3804         IPersistIDList *This);
   3805 
   3806     /*** IPersist methods ***/
   3807     HRESULT (STDMETHODCALLTYPE *GetClassID)(
   3808         IPersistIDList *This,
   3809         CLSID *pClassID);
   3810 
   3811     /*** IPersistIDList methods ***/
   3812     HRESULT (STDMETHODCALLTYPE *SetIDList)(
   3813         IPersistIDList *This,
   3814         PCIDLIST_ABSOLUTE pidl);
   3815 
   3816     HRESULT (STDMETHODCALLTYPE *GetIDList)(
   3817         IPersistIDList *This,
   3818         PIDLIST_ABSOLUTE *ppidl);
   3819 
   3820     END_INTERFACE
   3821 } IPersistIDListVtbl;
   3822 
   3823 interface IPersistIDList {
   3824     CONST_VTBL IPersistIDListVtbl* lpVtbl;
   3825 };
   3826 
   3827 #ifdef COBJMACROS
   3828 #ifndef WIDL_C_INLINE_WRAPPERS
   3829 /*** IUnknown methods ***/
   3830 #define IPersistIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3831 #define IPersistIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
   3832 #define IPersistIDList_Release(This) (This)->lpVtbl->Release(This)
   3833 /*** IPersist methods ***/
   3834 #define IPersistIDList_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
   3835 /*** IPersistIDList methods ***/
   3836 #define IPersistIDList_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
   3837 #define IPersistIDList_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
   3838 #else
   3839 /*** IUnknown methods ***/
   3840 static inline HRESULT IPersistIDList_QueryInterface(IPersistIDList* This,REFIID riid,void **ppvObject) {
   3841     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3842 }
   3843 static inline ULONG IPersistIDList_AddRef(IPersistIDList* This) {
   3844     return This->lpVtbl->AddRef(This);
   3845 }
   3846 static inline ULONG IPersistIDList_Release(IPersistIDList* This) {
   3847     return This->lpVtbl->Release(This);
   3848 }
   3849 /*** IPersist methods ***/
   3850 static inline HRESULT IPersistIDList_GetClassID(IPersistIDList* This,CLSID *pClassID) {
   3851     return This->lpVtbl->GetClassID(This,pClassID);
   3852 }
   3853 /*** IPersistIDList methods ***/
   3854 static inline HRESULT IPersistIDList_SetIDList(IPersistIDList* This,PCIDLIST_ABSOLUTE pidl) {
   3855     return This->lpVtbl->SetIDList(This,pidl);
   3856 }
   3857 static inline HRESULT IPersistIDList_GetIDList(IPersistIDList* This,PIDLIST_ABSOLUTE *ppidl) {
   3858     return This->lpVtbl->GetIDList(This,ppidl);
   3859 }
   3860 #endif
   3861 #endif
   3862 
   3863 #endif
   3864 
   3865 
   3866 #endif  /* __IPersistIDList_INTERFACE_DEFINED__ */
   3867 
   3868 
   3869 /*****************************************************************************
   3870  * IEnumIDList interface
   3871  */
   3872 #ifndef __IEnumIDList_INTERFACE_DEFINED__
   3873 #define __IEnumIDList_INTERFACE_DEFINED__
   3874 
   3875 DEFINE_GUID(IID_IEnumIDList, 0x000214f2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   3876 #if defined(__cplusplus) && !defined(CINTERFACE)
   3877 MIDL_INTERFACE("000214f2-0000-0000-c000-000000000046")
   3878 IEnumIDList : public IUnknown
   3879 {
   3880     virtual HRESULT STDMETHODCALLTYPE Next(
   3881         ULONG celt,
   3882         PITEMID_CHILD *rgelt,
   3883         ULONG *pceltFetched) = 0;
   3884 
   3885     virtual HRESULT STDMETHODCALLTYPE Skip(
   3886         ULONG celt) = 0;
   3887 
   3888     virtual HRESULT STDMETHODCALLTYPE Reset(
   3889         ) = 0;
   3890 
   3891     virtual HRESULT STDMETHODCALLTYPE Clone(
   3892         IEnumIDList **ppenum) = 0;
   3893 
   3894 };
   3895 #ifdef __CRT_UUID_DECL
   3896 __CRT_UUID_DECL(IEnumIDList, 0x000214f2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   3897 #endif
   3898 #else
   3899 typedef struct IEnumIDListVtbl {
   3900     BEGIN_INTERFACE
   3901 
   3902     /*** IUnknown methods ***/
   3903     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3904         IEnumIDList *This,
   3905         REFIID riid,
   3906         void **ppvObject);
   3907 
   3908     ULONG (STDMETHODCALLTYPE *AddRef)(
   3909         IEnumIDList *This);
   3910 
   3911     ULONG (STDMETHODCALLTYPE *Release)(
   3912         IEnumIDList *This);
   3913 
   3914     /*** IEnumIDList methods ***/
   3915     HRESULT (STDMETHODCALLTYPE *Next)(
   3916         IEnumIDList *This,
   3917         ULONG celt,
   3918         PITEMID_CHILD *rgelt,
   3919         ULONG *pceltFetched);
   3920 
   3921     HRESULT (STDMETHODCALLTYPE *Skip)(
   3922         IEnumIDList *This,
   3923         ULONG celt);
   3924 
   3925     HRESULT (STDMETHODCALLTYPE *Reset)(
   3926         IEnumIDList *This);
   3927 
   3928     HRESULT (STDMETHODCALLTYPE *Clone)(
   3929         IEnumIDList *This,
   3930         IEnumIDList **ppenum);
   3931 
   3932     END_INTERFACE
   3933 } IEnumIDListVtbl;
   3934 
   3935 interface IEnumIDList {
   3936     CONST_VTBL IEnumIDListVtbl* lpVtbl;
   3937 };
   3938 
   3939 #ifdef COBJMACROS
   3940 #ifndef WIDL_C_INLINE_WRAPPERS
   3941 /*** IUnknown methods ***/
   3942 #define IEnumIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3943 #define IEnumIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
   3944 #define IEnumIDList_Release(This) (This)->lpVtbl->Release(This)
   3945 /*** IEnumIDList methods ***/
   3946 #define IEnumIDList_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   3947 #define IEnumIDList_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   3948 #define IEnumIDList_Reset(This) (This)->lpVtbl->Reset(This)
   3949 #define IEnumIDList_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   3950 #else
   3951 /*** IUnknown methods ***/
   3952 static inline HRESULT IEnumIDList_QueryInterface(IEnumIDList* This,REFIID riid,void **ppvObject) {
   3953     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3954 }
   3955 static inline ULONG IEnumIDList_AddRef(IEnumIDList* This) {
   3956     return This->lpVtbl->AddRef(This);
   3957 }
   3958 static inline ULONG IEnumIDList_Release(IEnumIDList* This) {
   3959     return This->lpVtbl->Release(This);
   3960 }
   3961 /*** IEnumIDList methods ***/
   3962 static inline HRESULT IEnumIDList_Next(IEnumIDList* This,ULONG celt,PITEMID_CHILD *rgelt,ULONG *pceltFetched) {
   3963     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   3964 }
   3965 static inline HRESULT IEnumIDList_Skip(IEnumIDList* This,ULONG celt) {
   3966     return This->lpVtbl->Skip(This,celt);
   3967 }
   3968 static inline HRESULT IEnumIDList_Reset(IEnumIDList* This) {
   3969     return This->lpVtbl->Reset(This);
   3970 }
   3971 static inline HRESULT IEnumIDList_Clone(IEnumIDList* This,IEnumIDList **ppenum) {
   3972     return This->lpVtbl->Clone(This,ppenum);
   3973 }
   3974 #endif
   3975 #endif
   3976 
   3977 #endif
   3978 
   3979 HRESULT STDMETHODCALLTYPE IEnumIDList_RemoteNext_Proxy(
   3980     IEnumIDList* This,
   3981     ULONG celt,
   3982     PITEMID_CHILD *rgelt,
   3983     ULONG *pceltFetched);
   3984 void __RPC_STUB IEnumIDList_RemoteNext_Stub(
   3985     IRpcStubBuffer* This,
   3986     IRpcChannelBuffer* pRpcChannelBuffer,
   3987     PRPC_MESSAGE pRpcMessage,
   3988     DWORD* pdwStubPhase);
   3989 HRESULT CALLBACK IEnumIDList_Next_Proxy(
   3990     IEnumIDList* This,
   3991     ULONG celt,
   3992     PITEMID_CHILD *rgelt,
   3993     ULONG *pceltFetched);
   3994 HRESULT __RPC_STUB IEnumIDList_Next_Stub(
   3995     IEnumIDList* This,
   3996     ULONG celt,
   3997     PITEMID_CHILD *rgelt,
   3998     ULONG *pceltFetched);
   3999 
   4000 #endif  /* __IEnumIDList_INTERFACE_DEFINED__ */
   4001 
   4002 typedef IEnumIDList *LPENUMIDLIST;
   4003 
   4004 /*****************************************************************************
   4005  * IEnumFullIDList interface
   4006  */
   4007 #ifndef __IEnumFullIDList_INTERFACE_DEFINED__
   4008 #define __IEnumFullIDList_INTERFACE_DEFINED__
   4009 
   4010 DEFINE_GUID(IID_IEnumFullIDList, 0xd0191542, 0x7954, 0x4908, 0xbc,0x06, 0xb2,0x36,0x0b,0xbe,0x45,0xba);
   4011 #if defined(__cplusplus) && !defined(CINTERFACE)
   4012 MIDL_INTERFACE("d0191542-7954-4908-bc06-b2360bbe45ba")
   4013 IEnumFullIDList : public IUnknown
   4014 {
   4015     virtual HRESULT STDMETHODCALLTYPE Next(
   4016         ULONG celt,
   4017         PIDLIST_ABSOLUTE *rgelt,
   4018         ULONG *pceltFetched) = 0;
   4019 
   4020     virtual HRESULT STDMETHODCALLTYPE Skip(
   4021         ULONG celt) = 0;
   4022 
   4023     virtual HRESULT STDMETHODCALLTYPE Reset(
   4024         ) = 0;
   4025 
   4026     virtual HRESULT STDMETHODCALLTYPE Clone(
   4027         IEnumFullIDList **ppenum) = 0;
   4028 
   4029 };
   4030 #ifdef __CRT_UUID_DECL
   4031 __CRT_UUID_DECL(IEnumFullIDList, 0xd0191542, 0x7954, 0x4908, 0xbc,0x06, 0xb2,0x36,0x0b,0xbe,0x45,0xba)
   4032 #endif
   4033 #else
   4034 typedef struct IEnumFullIDListVtbl {
   4035     BEGIN_INTERFACE
   4036 
   4037     /*** IUnknown methods ***/
   4038     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4039         IEnumFullIDList *This,
   4040         REFIID riid,
   4041         void **ppvObject);
   4042 
   4043     ULONG (STDMETHODCALLTYPE *AddRef)(
   4044         IEnumFullIDList *This);
   4045 
   4046     ULONG (STDMETHODCALLTYPE *Release)(
   4047         IEnumFullIDList *This);
   4048 
   4049     /*** IEnumFullIDList methods ***/
   4050     HRESULT (STDMETHODCALLTYPE *Next)(
   4051         IEnumFullIDList *This,
   4052         ULONG celt,
   4053         PIDLIST_ABSOLUTE *rgelt,
   4054         ULONG *pceltFetched);
   4055 
   4056     HRESULT (STDMETHODCALLTYPE *Skip)(
   4057         IEnumFullIDList *This,
   4058         ULONG celt);
   4059 
   4060     HRESULT (STDMETHODCALLTYPE *Reset)(
   4061         IEnumFullIDList *This);
   4062 
   4063     HRESULT (STDMETHODCALLTYPE *Clone)(
   4064         IEnumFullIDList *This,
   4065         IEnumFullIDList **ppenum);
   4066 
   4067     END_INTERFACE
   4068 } IEnumFullIDListVtbl;
   4069 
   4070 interface IEnumFullIDList {
   4071     CONST_VTBL IEnumFullIDListVtbl* lpVtbl;
   4072 };
   4073 
   4074 #ifdef COBJMACROS
   4075 #ifndef WIDL_C_INLINE_WRAPPERS
   4076 /*** IUnknown methods ***/
   4077 #define IEnumFullIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4078 #define IEnumFullIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
   4079 #define IEnumFullIDList_Release(This) (This)->lpVtbl->Release(This)
   4080 /*** IEnumFullIDList methods ***/
   4081 #define IEnumFullIDList_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   4082 #define IEnumFullIDList_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   4083 #define IEnumFullIDList_Reset(This) (This)->lpVtbl->Reset(This)
   4084 #define IEnumFullIDList_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   4085 #else
   4086 /*** IUnknown methods ***/
   4087 static inline HRESULT IEnumFullIDList_QueryInterface(IEnumFullIDList* This,REFIID riid,void **ppvObject) {
   4088     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4089 }
   4090 static inline ULONG IEnumFullIDList_AddRef(IEnumFullIDList* This) {
   4091     return This->lpVtbl->AddRef(This);
   4092 }
   4093 static inline ULONG IEnumFullIDList_Release(IEnumFullIDList* This) {
   4094     return This->lpVtbl->Release(This);
   4095 }
   4096 /*** IEnumFullIDList methods ***/
   4097 static inline HRESULT IEnumFullIDList_Next(IEnumFullIDList* This,ULONG celt,PIDLIST_ABSOLUTE *rgelt,ULONG *pceltFetched) {
   4098     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   4099 }
   4100 static inline HRESULT IEnumFullIDList_Skip(IEnumFullIDList* This,ULONG celt) {
   4101     return This->lpVtbl->Skip(This,celt);
   4102 }
   4103 static inline HRESULT IEnumFullIDList_Reset(IEnumFullIDList* This) {
   4104     return This->lpVtbl->Reset(This);
   4105 }
   4106 static inline HRESULT IEnumFullIDList_Clone(IEnumFullIDList* This,IEnumFullIDList **ppenum) {
   4107     return This->lpVtbl->Clone(This,ppenum);
   4108 }
   4109 #endif
   4110 #endif
   4111 
   4112 #endif
   4113 
   4114 HRESULT STDMETHODCALLTYPE IEnumFullIDList_RemoteNext_Proxy(
   4115     IEnumFullIDList* This,
   4116     ULONG celt,
   4117     PIDLIST_ABSOLUTE *rgelt,
   4118     ULONG *pceltFetched);
   4119 void __RPC_STUB IEnumFullIDList_RemoteNext_Stub(
   4120     IRpcStubBuffer* This,
   4121     IRpcChannelBuffer* pRpcChannelBuffer,
   4122     PRPC_MESSAGE pRpcMessage,
   4123     DWORD* pdwStubPhase);
   4124 HRESULT CALLBACK IEnumFullIDList_Next_Proxy(
   4125     IEnumFullIDList* This,
   4126     ULONG celt,
   4127     PIDLIST_ABSOLUTE *rgelt,
   4128     ULONG *pceltFetched);
   4129 HRESULT __RPC_STUB IEnumFullIDList_Next_Stub(
   4130     IEnumFullIDList* This,
   4131     ULONG celt,
   4132     PIDLIST_ABSOLUTE *rgelt,
   4133     ULONG *pceltFetched);
   4134 
   4135 #endif  /* __IEnumFullIDList_INTERFACE_DEFINED__ */
   4136 
   4137 
   4138 enum _SHGDNF {
   4139     SHGDN_NORMAL = 0x0,
   4140     SHGDN_INFOLDER = 0x1,
   4141     SHGDN_FOREDITING = 0x1000,
   4142     SHGDN_FORADDRESSBAR = 0x4000,
   4143     SHGDN_FORPARSING = 0x8000
   4144 };
   4145 
   4146 typedef DWORD SHGDNF;
   4147 
   4148 enum _SHCONTF {
   4149     SHCONTF_CHECKING_FOR_CHILDREN = 0x10,
   4150     SHCONTF_FOLDERS = 0x20,
   4151     SHCONTF_NONFOLDERS = 0x40,
   4152     SHCONTF_INCLUDEHIDDEN = 0x80,
   4153     SHCONTF_INIT_ON_FIRST_NEXT = 0x100,
   4154     SHCONTF_NETPRINTERSRCH = 0x200,
   4155     SHCONTF_SHAREABLE = 0x400,
   4156     SHCONTF_STORAGE = 0x800,
   4157     SHCONTF_NAVIGATION_ENUM = 0x1000,
   4158     SHCONTF_FASTITEMS = 0x2000,
   4159     SHCONTF_FLATLIST = 0x4000,
   4160     SHCONTF_ENABLE_ASYNC = 0x8000,
   4161     SHCONTF_INCLUDESUPERHIDDEN = 0x10000
   4162 };
   4163 
   4164 typedef DWORD SHCONTF;
   4165 
   4166 #define SHCIDS_ALLFIELDS __MSABI_LONG(0x80000000)
   4167 #define SHCIDS_CANONICALONLY __MSABI_LONG(0x10000000)
   4168 #define SHCIDS_BITMASK __MSABI_LONG(0xffff0000)
   4169 #define SHCIDS_COLUMNMASK __MSABI_LONG(0x0000ffff)
   4170 
   4171 #define SFGAO_CANCOPY DROPEFFECT_COPY
   4172 #define SFGAO_CANMOVE DROPEFFECT_MOVE
   4173 #define SFGAO_CANLINK DROPEFFECT_LINK
   4174 #define SFGAO_STORAGE __MSABI_LONG(0x8)
   4175 #define SFGAO_CANRENAME __MSABI_LONG(0x10)
   4176 #define SFGAO_CANDELETE __MSABI_LONG(0x20)
   4177 #define SFGAO_HASPROPSHEET __MSABI_LONG(0x40)
   4178 #define SFGAO_DROPTARGET __MSABI_LONG(0x100)
   4179 
   4180 #define SFGAO_CAPABILITYMASK __MSABI_LONG(0x177)
   4181 
   4182 #define SFGAO_SYSTEM __MSABI_LONG(0x1000)
   4183 #define SFGAO_ENCRYPTED __MSABI_LONG(0x2000)
   4184 #define SFGAO_ISSLOW __MSABI_LONG(0x4000)
   4185 #define SFGAO_GHOSTED __MSABI_LONG(0x8000)
   4186 #define SFGAO_LINK __MSABI_LONG(0x10000)
   4187 #define SFGAO_SHARE __MSABI_LONG(0x20000)
   4188 #define SFGAO_READONLY __MSABI_LONG(0x40000)
   4189 #define SFGAO_HIDDEN __MSABI_LONG(0x80000)
   4190 
   4191 #define SFGAO_DISPLAYATTRMASK __MSABI_LONG(0xfc000)
   4192 
   4193 #define SFGAO_FILESYSANCESTOR __MSABI_LONG(0x10000000)
   4194 #define SFGAO_FOLDER __MSABI_LONG(0x20000000)
   4195 #define SFGAO_FILESYSTEM __MSABI_LONG(0x40000000)
   4196 #define SFGAO_HASSUBFOLDER __MSABI_LONG(0x80000000)
   4197 
   4198 #define SFGAO_CONTENTSMASK __MSABI_LONG(0x80000000)
   4199 
   4200 #define SFGAO_VALIDATE __MSABI_LONG(0x1000000)
   4201 #define SFGAO_REMOVABLE __MSABI_LONG(0x2000000)
   4202 #define SFGAO_COMPRESSED __MSABI_LONG(0x4000000)
   4203 #define SFGAO_BROWSABLE __MSABI_LONG(0x8000000)
   4204 #define SFGAO_NONENUMERATED __MSABI_LONG(0x100000)
   4205 #define SFGAO_NEWCONTENT __MSABI_LONG(0x200000)
   4206 #define SFGAO_CANMONIKER __MSABI_LONG(0x400000)
   4207 #define SFGAO_HASSTORAGE __MSABI_LONG(0x400000)
   4208 #define SFGAO_STREAM __MSABI_LONG(0x400000)
   4209 #define SFGAO_STORAGEANCESTOR __MSABI_LONG(0x00800000)
   4210 
   4211 #define SFGAO_STORAGECAPMASK __MSABI_LONG(0x70c50008)
   4212 #define SFGAO_PKEYSFGAOMASK __MSABI_LONG(0x81044000)
   4213 
   4214 typedef ULONG SFGAOF;
   4215 
   4216 #define STR_BIND_FORCE_FOLDER_SHORTCUT_RESOLVE L"Force Folder Shortcut Resolve"
   4217 #define STR_AVOID_DRIVE_RESTRICTION_POLICY L"Avoid Drive Restriction Policy"
   4218 #define STR_AVOID_DRIVE_RESTRICTION_POLICY L"Avoid Drive Restriction Policy"
   4219 #define STR_SKIP_BINDING_CLSID L"Skip Binding CLSID"
   4220 #define STR_PARSE_PREFER_FOLDER_BROWSING L"Parse Prefer Folder Browsing"
   4221 #define STR_DONT_PARSE_RELATIVE L"Don't Parse Relative"
   4222 #define STR_PARSE_TRANSLATE_ALIASES L"Parse Translate Aliases"
   4223 #define STR_PARSE_SKIP_NET_CACHE L"Skip Net Resource Cache"
   4224 #define STR_PARSE_SHELL_PROTOCOL_TO_FILE_OBJECTS L"Parse Shell Protocol To File Objects"
   4225 #if _WIN32_IE >= 0x0700
   4226 #define STR_TRACK_CLSID L"Track the CLSID"
   4227 #define STR_INTERNAL_NAVIGATE L"Internal Navigation"
   4228 #define STR_PARSE_PROPERTYSTORE L"DelegateNamedProperties"
   4229 #define STR_NO_VALIDATE_FILENAME_CHARS L"NoValidateFilenameChars"
   4230 #define STR_BIND_DELEGATE_CREATE_OBJECT L"Delegate Object Creation"
   4231 #define STR_PARSE_ALLOW_INTERNET_SHELL_FOLDERS L"Allow binding to Internet shell folder handlers and negate STR_PARSE_PREFER_WEB_BROWSING"
   4232 #define STR_PARSE_PREFER_WEB_BROWSING L"Do not bind to Internet shell folder handlers"
   4233 #define STR_PARSE_SHOW_NET_DIAGNOSTICS_UI L"Show network diagnostics UI"
   4234 #define STR_PARSE_DONT_REQUIRE_VALIDATED_URLS L"Do not require validated URLs"
   4235 #define STR_INTERNETFOLDER_PARSE_ONLY_URLMON_BINDABLE L"Validate URL"
   4236 #endif
   4237 
   4238 #if NTDDI_VERSION >= NTDDI_WIN8
   4239 #define BIND_INTERRUPTABLE 0xffffffff
   4240 #endif
   4241 
   4242 #if NTDDI_VERSION >= NTDDI_WIN7
   4243 #define STR_BIND_FOLDERS_READ_ONLY L"Folders As Read Only"
   4244 #define STR_BIND_FOLDER_ENUM_MODE L"Folder Enum Mode"
   4245 
   4246 typedef enum FOLDER_ENUM_MODE {
   4247     FEM_VIEWRESULT = 0,
   4248     FEM_NAVIGATION = 1
   4249 } FOLDER_ENUM_MODE;
   4250 
   4251 /*****************************************************************************
   4252  * IObjectWithFolderEnumMode interface
   4253  */
   4254 #ifndef __IObjectWithFolderEnumMode_INTERFACE_DEFINED__
   4255 #define __IObjectWithFolderEnumMode_INTERFACE_DEFINED__
   4256 
   4257 DEFINE_GUID(IID_IObjectWithFolderEnumMode, 0x6a9d9026, 0x0e6e, 0x464c, 0xb0,0x00, 0x42,0xec,0xc0,0x7d,0xe6,0x73);
   4258 #if defined(__cplusplus) && !defined(CINTERFACE)
   4259 MIDL_INTERFACE("6a9d9026-0e6e-464c-b000-42ecc07de673")
   4260 IObjectWithFolderEnumMode : public IUnknown
   4261 {
   4262     virtual HRESULT STDMETHODCALLTYPE SetMode(
   4263         FOLDER_ENUM_MODE feMode) = 0;
   4264 
   4265     virtual HRESULT STDMETHODCALLTYPE GetMode(
   4266         FOLDER_ENUM_MODE *pfeMode) = 0;
   4267 
   4268 };
   4269 #ifdef __CRT_UUID_DECL
   4270 __CRT_UUID_DECL(IObjectWithFolderEnumMode, 0x6a9d9026, 0x0e6e, 0x464c, 0xb0,0x00, 0x42,0xec,0xc0,0x7d,0xe6,0x73)
   4271 #endif
   4272 #else
   4273 typedef struct IObjectWithFolderEnumModeVtbl {
   4274     BEGIN_INTERFACE
   4275 
   4276     /*** IUnknown methods ***/
   4277     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4278         IObjectWithFolderEnumMode *This,
   4279         REFIID riid,
   4280         void **ppvObject);
   4281 
   4282     ULONG (STDMETHODCALLTYPE *AddRef)(
   4283         IObjectWithFolderEnumMode *This);
   4284 
   4285     ULONG (STDMETHODCALLTYPE *Release)(
   4286         IObjectWithFolderEnumMode *This);
   4287 
   4288     /*** IObjectWithFolderEnumMode methods ***/
   4289     HRESULT (STDMETHODCALLTYPE *SetMode)(
   4290         IObjectWithFolderEnumMode *This,
   4291         FOLDER_ENUM_MODE feMode);
   4292 
   4293     HRESULT (STDMETHODCALLTYPE *GetMode)(
   4294         IObjectWithFolderEnumMode *This,
   4295         FOLDER_ENUM_MODE *pfeMode);
   4296 
   4297     END_INTERFACE
   4298 } IObjectWithFolderEnumModeVtbl;
   4299 
   4300 interface IObjectWithFolderEnumMode {
   4301     CONST_VTBL IObjectWithFolderEnumModeVtbl* lpVtbl;
   4302 };
   4303 
   4304 #ifdef COBJMACROS
   4305 #ifndef WIDL_C_INLINE_WRAPPERS
   4306 /*** IUnknown methods ***/
   4307 #define IObjectWithFolderEnumMode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4308 #define IObjectWithFolderEnumMode_AddRef(This) (This)->lpVtbl->AddRef(This)
   4309 #define IObjectWithFolderEnumMode_Release(This) (This)->lpVtbl->Release(This)
   4310 /*** IObjectWithFolderEnumMode methods ***/
   4311 #define IObjectWithFolderEnumMode_SetMode(This,feMode) (This)->lpVtbl->SetMode(This,feMode)
   4312 #define IObjectWithFolderEnumMode_GetMode(This,pfeMode) (This)->lpVtbl->GetMode(This,pfeMode)
   4313 #else
   4314 /*** IUnknown methods ***/
   4315 static inline HRESULT IObjectWithFolderEnumMode_QueryInterface(IObjectWithFolderEnumMode* This,REFIID riid,void **ppvObject) {
   4316     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4317 }
   4318 static inline ULONG IObjectWithFolderEnumMode_AddRef(IObjectWithFolderEnumMode* This) {
   4319     return This->lpVtbl->AddRef(This);
   4320 }
   4321 static inline ULONG IObjectWithFolderEnumMode_Release(IObjectWithFolderEnumMode* This) {
   4322     return This->lpVtbl->Release(This);
   4323 }
   4324 /*** IObjectWithFolderEnumMode methods ***/
   4325 static inline HRESULT IObjectWithFolderEnumMode_SetMode(IObjectWithFolderEnumMode* This,FOLDER_ENUM_MODE feMode) {
   4326     return This->lpVtbl->SetMode(This,feMode);
   4327 }
   4328 static inline HRESULT IObjectWithFolderEnumMode_GetMode(IObjectWithFolderEnumMode* This,FOLDER_ENUM_MODE *pfeMode) {
   4329     return This->lpVtbl->GetMode(This,pfeMode);
   4330 }
   4331 #endif
   4332 #endif
   4333 
   4334 #endif
   4335 
   4336 
   4337 #endif  /* __IObjectWithFolderEnumMode_INTERFACE_DEFINED__ */
   4338 
   4339 
   4340 #define STR_PARSE_WITH_EXPLICIT_PROGID L"ExplicitProgid"
   4341 #define STR_PARSE_WITH_EXPLICIT_ASSOCAPP L"ExplicitAssociationApp"
   4342 #define STR_PARSE_EXPLICIT_ASSOCIATION_SUCCESSFUL L"ExplicitAssociationSuccessful"
   4343 #define STR_PARSE_AND_CREATE_ITEM L"ParseAndCreateItem"
   4344 #define STR_PROPERTYBAG_PARAM L"SHBindCtxPropertyBag"
   4345 #define STR_ENUM_ITEMS_FLAGS L"SHCONTF"
   4346 
   4347 #ifndef __IShellItem_FWD_DEFINED__
   4348 #define __IShellItem_FWD_DEFINED__
   4349 typedef interface IShellItem IShellItem;
   4350 #ifdef __cplusplus
   4351 interface IShellItem;
   4352 #endif /* __cplusplus */
   4353 #endif
   4354 
   4355 
   4356 /*****************************************************************************
   4357  * IParseAndCreateItem interface
   4358  */
   4359 #ifndef __IParseAndCreateItem_INTERFACE_DEFINED__
   4360 #define __IParseAndCreateItem_INTERFACE_DEFINED__
   4361 
   4362 DEFINE_GUID(IID_IParseAndCreateItem, 0x67efed0e, 0xe827, 0x4408, 0xb4,0x93, 0x78,0xf3,0x98,0x2b,0x68,0x5c);
   4363 #if defined(__cplusplus) && !defined(CINTERFACE)
   4364 MIDL_INTERFACE("67efed0e-e827-4408-b493-78f3982b685c")
   4365 IParseAndCreateItem : public IUnknown
   4366 {
   4367     virtual HRESULT STDMETHODCALLTYPE SetItem(
   4368         IShellItem *psi) = 0;
   4369 
   4370     virtual HRESULT STDMETHODCALLTYPE GetItem(
   4371         REFIID riid,
   4372         void **ppv) = 0;
   4373 
   4374 };
   4375 #ifdef __CRT_UUID_DECL
   4376 __CRT_UUID_DECL(IParseAndCreateItem, 0x67efed0e, 0xe827, 0x4408, 0xb4,0x93, 0x78,0xf3,0x98,0x2b,0x68,0x5c)
   4377 #endif
   4378 #else
   4379 typedef struct IParseAndCreateItemVtbl {
   4380     BEGIN_INTERFACE
   4381 
   4382     /*** IUnknown methods ***/
   4383     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4384         IParseAndCreateItem *This,
   4385         REFIID riid,
   4386         void **ppvObject);
   4387 
   4388     ULONG (STDMETHODCALLTYPE *AddRef)(
   4389         IParseAndCreateItem *This);
   4390 
   4391     ULONG (STDMETHODCALLTYPE *Release)(
   4392         IParseAndCreateItem *This);
   4393 
   4394     /*** IParseAndCreateItem methods ***/
   4395     HRESULT (STDMETHODCALLTYPE *SetItem)(
   4396         IParseAndCreateItem *This,
   4397         IShellItem *psi);
   4398 
   4399     HRESULT (STDMETHODCALLTYPE *GetItem)(
   4400         IParseAndCreateItem *This,
   4401         REFIID riid,
   4402         void **ppv);
   4403 
   4404     END_INTERFACE
   4405 } IParseAndCreateItemVtbl;
   4406 
   4407 interface IParseAndCreateItem {
   4408     CONST_VTBL IParseAndCreateItemVtbl* lpVtbl;
   4409 };
   4410 
   4411 #ifdef COBJMACROS
   4412 #ifndef WIDL_C_INLINE_WRAPPERS
   4413 /*** IUnknown methods ***/
   4414 #define IParseAndCreateItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4415 #define IParseAndCreateItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   4416 #define IParseAndCreateItem_Release(This) (This)->lpVtbl->Release(This)
   4417 /*** IParseAndCreateItem methods ***/
   4418 #define IParseAndCreateItem_SetItem(This,psi) (This)->lpVtbl->SetItem(This,psi)
   4419 #define IParseAndCreateItem_GetItem(This,riid,ppv) (This)->lpVtbl->GetItem(This,riid,ppv)
   4420 #else
   4421 /*** IUnknown methods ***/
   4422 static inline HRESULT IParseAndCreateItem_QueryInterface(IParseAndCreateItem* This,REFIID riid,void **ppvObject) {
   4423     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4424 }
   4425 static inline ULONG IParseAndCreateItem_AddRef(IParseAndCreateItem* This) {
   4426     return This->lpVtbl->AddRef(This);
   4427 }
   4428 static inline ULONG IParseAndCreateItem_Release(IParseAndCreateItem* This) {
   4429     return This->lpVtbl->Release(This);
   4430 }
   4431 /*** IParseAndCreateItem methods ***/
   4432 static inline HRESULT IParseAndCreateItem_SetItem(IParseAndCreateItem* This,IShellItem *psi) {
   4433     return This->lpVtbl->SetItem(This,psi);
   4434 }
   4435 static inline HRESULT IParseAndCreateItem_GetItem(IParseAndCreateItem* This,REFIID riid,void **ppv) {
   4436     return This->lpVtbl->GetItem(This,riid,ppv);
   4437 }
   4438 #endif
   4439 #endif
   4440 
   4441 #endif
   4442 
   4443 
   4444 #endif  /* __IParseAndCreateItem_INTERFACE_DEFINED__ */
   4445 
   4446 
   4447 #define STR_ITEM_CACHE_CONTEXT L"ItemCacheContext"
   4448 #endif
   4449 
   4450 #ifndef __IShellFolder_FWD_DEFINED__
   4451 #define __IShellFolder_FWD_DEFINED__
   4452 typedef interface IShellFolder IShellFolder;
   4453 #ifdef __cplusplus
   4454 interface IShellFolder;
   4455 #endif /* __cplusplus */
   4456 #endif
   4457 
   4458 
   4459 /*****************************************************************************
   4460  * IShellFolder interface
   4461  */
   4462 #ifndef __IShellFolder_INTERFACE_DEFINED__
   4463 #define __IShellFolder_INTERFACE_DEFINED__
   4464 
   4465 DEFINE_GUID(IID_IShellFolder, 0x000214e6, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   4466 #if defined(__cplusplus) && !defined(CINTERFACE)
   4467 MIDL_INTERFACE("000214e6-0000-0000-c000-000000000046")
   4468 IShellFolder : public IUnknown
   4469 {
   4470     virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
   4471         HWND hwnd,
   4472         IBindCtx *pbc,
   4473         LPWSTR pszDisplayName,
   4474         ULONG *pchEaten,
   4475         PIDLIST_RELATIVE *ppidl,
   4476         ULONG *pdwAttributes) = 0;
   4477 
   4478     virtual HRESULT STDMETHODCALLTYPE EnumObjects(
   4479         HWND hwnd,
   4480         SHCONTF grfFlags,
   4481         IEnumIDList **ppenumIDList) = 0;
   4482 
   4483     virtual HRESULT STDMETHODCALLTYPE BindToObject(
   4484         PCUIDLIST_RELATIVE pidl,
   4485         IBindCtx *pbc,
   4486         REFIID riid,
   4487         void **ppv) = 0;
   4488 
   4489     virtual HRESULT STDMETHODCALLTYPE BindToStorage(
   4490         PCUIDLIST_RELATIVE pidl,
   4491         IBindCtx *pbc,
   4492         REFIID riid,
   4493         void **ppv) = 0;
   4494 
   4495     virtual HRESULT STDMETHODCALLTYPE CompareIDs(
   4496         LPARAM lParam,
   4497         PCUIDLIST_RELATIVE pidl1,
   4498         PCUIDLIST_RELATIVE pidl2) = 0;
   4499 
   4500     virtual HRESULT STDMETHODCALLTYPE CreateViewObject(
   4501         HWND hwndOwner,
   4502         REFIID riid,
   4503         void **ppv) = 0;
   4504 
   4505     virtual HRESULT STDMETHODCALLTYPE GetAttributesOf(
   4506         UINT cidl,
   4507         PCUITEMID_CHILD_ARRAY apidl,
   4508         SFGAOF *rgfInOut) = 0;
   4509 
   4510     virtual HRESULT STDMETHODCALLTYPE GetUIObjectOf(
   4511         HWND hwndOwner,
   4512         UINT cidl,
   4513         PCUITEMID_CHILD_ARRAY apidl,
   4514         REFIID riid,
   4515         UINT *rgfReserved,
   4516         void **ppv) = 0;
   4517 
   4518     virtual HRESULT STDMETHODCALLTYPE GetDisplayNameOf(
   4519         PCUITEMID_CHILD pidl,
   4520         SHGDNF uFlags,
   4521         STRRET *pName) = 0;
   4522 
   4523     virtual HRESULT STDMETHODCALLTYPE SetNameOf(
   4524         HWND hwnd,
   4525         PCUITEMID_CHILD pidl,
   4526         LPCWSTR pszName,
   4527         SHGDNF uFlags,
   4528         PITEMID_CHILD *ppidlOut) = 0;
   4529 
   4530 };
   4531 #ifdef __CRT_UUID_DECL
   4532 __CRT_UUID_DECL(IShellFolder, 0x000214e6, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   4533 #endif
   4534 #else
   4535 typedef struct IShellFolderVtbl {
   4536     BEGIN_INTERFACE
   4537 
   4538     /*** IUnknown methods ***/
   4539     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4540         IShellFolder *This,
   4541         REFIID riid,
   4542         void **ppvObject);
   4543 
   4544     ULONG (STDMETHODCALLTYPE *AddRef)(
   4545         IShellFolder *This);
   4546 
   4547     ULONG (STDMETHODCALLTYPE *Release)(
   4548         IShellFolder *This);
   4549 
   4550     /*** IShellFolder methods ***/
   4551     HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
   4552         IShellFolder *This,
   4553         HWND hwnd,
   4554         IBindCtx *pbc,
   4555         LPWSTR pszDisplayName,
   4556         ULONG *pchEaten,
   4557         PIDLIST_RELATIVE *ppidl,
   4558         ULONG *pdwAttributes);
   4559 
   4560     HRESULT (STDMETHODCALLTYPE *EnumObjects)(
   4561         IShellFolder *This,
   4562         HWND hwnd,
   4563         SHCONTF grfFlags,
   4564         IEnumIDList **ppenumIDList);
   4565 
   4566     HRESULT (STDMETHODCALLTYPE *BindToObject)(
   4567         IShellFolder *This,
   4568         PCUIDLIST_RELATIVE pidl,
   4569         IBindCtx *pbc,
   4570         REFIID riid,
   4571         void **ppv);
   4572 
   4573     HRESULT (STDMETHODCALLTYPE *BindToStorage)(
   4574         IShellFolder *This,
   4575         PCUIDLIST_RELATIVE pidl,
   4576         IBindCtx *pbc,
   4577         REFIID riid,
   4578         void **ppv);
   4579 
   4580     HRESULT (STDMETHODCALLTYPE *CompareIDs)(
   4581         IShellFolder *This,
   4582         LPARAM lParam,
   4583         PCUIDLIST_RELATIVE pidl1,
   4584         PCUIDLIST_RELATIVE pidl2);
   4585 
   4586     HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
   4587         IShellFolder *This,
   4588         HWND hwndOwner,
   4589         REFIID riid,
   4590         void **ppv);
   4591 
   4592     HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
   4593         IShellFolder *This,
   4594         UINT cidl,
   4595         PCUITEMID_CHILD_ARRAY apidl,
   4596         SFGAOF *rgfInOut);
   4597 
   4598     HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
   4599         IShellFolder *This,
   4600         HWND hwndOwner,
   4601         UINT cidl,
   4602         PCUITEMID_CHILD_ARRAY apidl,
   4603         REFIID riid,
   4604         UINT *rgfReserved,
   4605         void **ppv);
   4606 
   4607     HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
   4608         IShellFolder *This,
   4609         PCUITEMID_CHILD pidl,
   4610         SHGDNF uFlags,
   4611         STRRET *pName);
   4612 
   4613     HRESULT (STDMETHODCALLTYPE *SetNameOf)(
   4614         IShellFolder *This,
   4615         HWND hwnd,
   4616         PCUITEMID_CHILD pidl,
   4617         LPCWSTR pszName,
   4618         SHGDNF uFlags,
   4619         PITEMID_CHILD *ppidlOut);
   4620 
   4621     END_INTERFACE
   4622 } IShellFolderVtbl;
   4623 
   4624 interface IShellFolder {
   4625     CONST_VTBL IShellFolderVtbl* lpVtbl;
   4626 };
   4627 
   4628 #ifdef COBJMACROS
   4629 #ifndef WIDL_C_INLINE_WRAPPERS
   4630 /*** IUnknown methods ***/
   4631 #define IShellFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4632 #define IShellFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
   4633 #define IShellFolder_Release(This) (This)->lpVtbl->Release(This)
   4634 /*** IShellFolder methods ***/
   4635 #define IShellFolder_ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes) (This)->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes)
   4636 #define IShellFolder_EnumObjects(This,hwnd,grfFlags,ppenumIDList) (This)->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList)
   4637 #define IShellFolder_BindToObject(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv)
   4638 #define IShellFolder_BindToStorage(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv)
   4639 #define IShellFolder_CompareIDs(This,lParam,pidl1,pidl2) (This)->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2)
   4640 #define IShellFolder_CreateViewObject(This,hwndOwner,riid,ppv) (This)->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv)
   4641 #define IShellFolder_GetAttributesOf(This,cidl,apidl,rgfInOut) (This)->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut)
   4642 #define IShellFolder_GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv) (This)->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv)
   4643 #define IShellFolder_GetDisplayNameOf(This,pidl,uFlags,pName) (This)->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName)
   4644 #define IShellFolder_SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut) (This)->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut)
   4645 #else
   4646 /*** IUnknown methods ***/
   4647 static inline HRESULT IShellFolder_QueryInterface(IShellFolder* This,REFIID riid,void **ppvObject) {
   4648     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4649 }
   4650 static inline ULONG IShellFolder_AddRef(IShellFolder* This) {
   4651     return This->lpVtbl->AddRef(This);
   4652 }
   4653 static inline ULONG IShellFolder_Release(IShellFolder* This) {
   4654     return This->lpVtbl->Release(This);
   4655 }
   4656 /*** IShellFolder methods ***/
   4657 static inline HRESULT IShellFolder_ParseDisplayName(IShellFolder* This,HWND hwnd,IBindCtx *pbc,LPWSTR pszDisplayName,ULONG *pchEaten,PIDLIST_RELATIVE *ppidl,ULONG *pdwAttributes) {
   4658     return This->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes);
   4659 }
   4660 static inline HRESULT IShellFolder_EnumObjects(IShellFolder* This,HWND hwnd,SHCONTF grfFlags,IEnumIDList **ppenumIDList) {
   4661     return This->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList);
   4662 }
   4663 static inline HRESULT IShellFolder_BindToObject(IShellFolder* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
   4664     return This->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv);
   4665 }
   4666 static inline HRESULT IShellFolder_BindToStorage(IShellFolder* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
   4667     return This->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv);
   4668 }
   4669 static inline HRESULT IShellFolder_CompareIDs(IShellFolder* This,LPARAM lParam,PCUIDLIST_RELATIVE pidl1,PCUIDLIST_RELATIVE pidl2) {
   4670     return This->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2);
   4671 }
   4672 static inline HRESULT IShellFolder_CreateViewObject(IShellFolder* This,HWND hwndOwner,REFIID riid,void **ppv) {
   4673     return This->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv);
   4674 }
   4675 static inline HRESULT IShellFolder_GetAttributesOf(IShellFolder* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,SFGAOF *rgfInOut) {
   4676     return This->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut);
   4677 }
   4678 static inline HRESULT IShellFolder_GetUIObjectOf(IShellFolder* This,HWND hwndOwner,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,REFIID riid,UINT *rgfReserved,void **ppv) {
   4679     return This->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv);
   4680 }
   4681 static inline HRESULT IShellFolder_GetDisplayNameOf(IShellFolder* This,PCUITEMID_CHILD pidl,SHGDNF uFlags,STRRET *pName) {
   4682     return This->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName);
   4683 }
   4684 static inline HRESULT IShellFolder_SetNameOf(IShellFolder* This,HWND hwnd,PCUITEMID_CHILD pidl,LPCWSTR pszName,SHGDNF uFlags,PITEMID_CHILD *ppidlOut) {
   4685     return This->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut);
   4686 }
   4687 #endif
   4688 #endif
   4689 
   4690 #endif
   4691 
   4692 HRESULT STDMETHODCALLTYPE IShellFolder_RemoteSetNameOf_Proxy(
   4693     IShellFolder* This,
   4694     HWND hwnd,
   4695     PCUITEMID_CHILD pidl,
   4696     LPCWSTR pszName,
   4697     SHGDNF uFlags,
   4698     PITEMID_CHILD *ppidlOut);
   4699 void __RPC_STUB IShellFolder_RemoteSetNameOf_Stub(
   4700     IRpcStubBuffer* This,
   4701     IRpcChannelBuffer* pRpcChannelBuffer,
   4702     PRPC_MESSAGE pRpcMessage,
   4703     DWORD* pdwStubPhase);
   4704 HRESULT CALLBACK IShellFolder_SetNameOf_Proxy(
   4705     IShellFolder* This,
   4706     HWND hwnd,
   4707     PCUITEMID_CHILD pidl,
   4708     LPCWSTR pszName,
   4709     SHGDNF uFlags,
   4710     PITEMID_CHILD *ppidlOut);
   4711 HRESULT __RPC_STUB IShellFolder_SetNameOf_Stub(
   4712     IShellFolder* This,
   4713     HWND hwnd,
   4714     PCUITEMID_CHILD pidl,
   4715     LPCWSTR pszName,
   4716     SHGDNF uFlags,
   4717     PITEMID_CHILD *ppidlOut);
   4718 
   4719 #endif  /* __IShellFolder_INTERFACE_DEFINED__ */
   4720 
   4721 typedef IShellFolder *LPSHELLFOLDER;
   4722 
   4723 typedef struct EXTRASEARCH {
   4724     GUID guidSearch;
   4725     WCHAR wszFriendlyName[80];
   4726     WCHAR wszUrl[2084];
   4727 } EXTRASEARCH;
   4728 typedef struct EXTRASEARCH *LPEXTRASEARCH;
   4729 
   4730 /*****************************************************************************
   4731  * IEnumExtraSearch interface
   4732  */
   4733 #ifndef __IEnumExtraSearch_INTERFACE_DEFINED__
   4734 #define __IEnumExtraSearch_INTERFACE_DEFINED__
   4735 
   4736 DEFINE_GUID(IID_IEnumExtraSearch, 0x0e700be1, 0x9db6, 0x11d1, 0xa1,0xce, 0x00,0xc0,0x4f,0xd7,0x5d,0x13);
   4737 #if defined(__cplusplus) && !defined(CINTERFACE)
   4738 MIDL_INTERFACE("0e700be1-9db6-11d1-a1ce-00c04fd75d13")
   4739 IEnumExtraSearch : public IUnknown
   4740 {
   4741     virtual HRESULT STDMETHODCALLTYPE Next(
   4742         ULONG celt,
   4743         EXTRASEARCH *rgelt,
   4744         ULONG *pceltFetched) = 0;
   4745 
   4746     virtual HRESULT STDMETHODCALLTYPE Skip(
   4747         ULONG celt) = 0;
   4748 
   4749     virtual HRESULT STDMETHODCALLTYPE Reset(
   4750         ) = 0;
   4751 
   4752     virtual HRESULT STDMETHODCALLTYPE Clone(
   4753         IEnumExtraSearch **ppenum) = 0;
   4754 
   4755 };
   4756 #ifdef __CRT_UUID_DECL
   4757 __CRT_UUID_DECL(IEnumExtraSearch, 0x0e700be1, 0x9db6, 0x11d1, 0xa1,0xce, 0x00,0xc0,0x4f,0xd7,0x5d,0x13)
   4758 #endif
   4759 #else
   4760 typedef struct IEnumExtraSearchVtbl {
   4761     BEGIN_INTERFACE
   4762 
   4763     /*** IUnknown methods ***/
   4764     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4765         IEnumExtraSearch *This,
   4766         REFIID riid,
   4767         void **ppvObject);
   4768 
   4769     ULONG (STDMETHODCALLTYPE *AddRef)(
   4770         IEnumExtraSearch *This);
   4771 
   4772     ULONG (STDMETHODCALLTYPE *Release)(
   4773         IEnumExtraSearch *This);
   4774 
   4775     /*** IEnumExtraSearch methods ***/
   4776     HRESULT (STDMETHODCALLTYPE *Next)(
   4777         IEnumExtraSearch *This,
   4778         ULONG celt,
   4779         EXTRASEARCH *rgelt,
   4780         ULONG *pceltFetched);
   4781 
   4782     HRESULT (STDMETHODCALLTYPE *Skip)(
   4783         IEnumExtraSearch *This,
   4784         ULONG celt);
   4785 
   4786     HRESULT (STDMETHODCALLTYPE *Reset)(
   4787         IEnumExtraSearch *This);
   4788 
   4789     HRESULT (STDMETHODCALLTYPE *Clone)(
   4790         IEnumExtraSearch *This,
   4791         IEnumExtraSearch **ppenum);
   4792 
   4793     END_INTERFACE
   4794 } IEnumExtraSearchVtbl;
   4795 
   4796 interface IEnumExtraSearch {
   4797     CONST_VTBL IEnumExtraSearchVtbl* lpVtbl;
   4798 };
   4799 
   4800 #ifdef COBJMACROS
   4801 #ifndef WIDL_C_INLINE_WRAPPERS
   4802 /*** IUnknown methods ***/
   4803 #define IEnumExtraSearch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4804 #define IEnumExtraSearch_AddRef(This) (This)->lpVtbl->AddRef(This)
   4805 #define IEnumExtraSearch_Release(This) (This)->lpVtbl->Release(This)
   4806 /*** IEnumExtraSearch methods ***/
   4807 #define IEnumExtraSearch_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   4808 #define IEnumExtraSearch_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   4809 #define IEnumExtraSearch_Reset(This) (This)->lpVtbl->Reset(This)
   4810 #define IEnumExtraSearch_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   4811 #else
   4812 /*** IUnknown methods ***/
   4813 static inline HRESULT IEnumExtraSearch_QueryInterface(IEnumExtraSearch* This,REFIID riid,void **ppvObject) {
   4814     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4815 }
   4816 static inline ULONG IEnumExtraSearch_AddRef(IEnumExtraSearch* This) {
   4817     return This->lpVtbl->AddRef(This);
   4818 }
   4819 static inline ULONG IEnumExtraSearch_Release(IEnumExtraSearch* This) {
   4820     return This->lpVtbl->Release(This);
   4821 }
   4822 /*** IEnumExtraSearch methods ***/
   4823 static inline HRESULT IEnumExtraSearch_Next(IEnumExtraSearch* This,ULONG celt,EXTRASEARCH *rgelt,ULONG *pceltFetched) {
   4824     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   4825 }
   4826 static inline HRESULT IEnumExtraSearch_Skip(IEnumExtraSearch* This,ULONG celt) {
   4827     return This->lpVtbl->Skip(This,celt);
   4828 }
   4829 static inline HRESULT IEnumExtraSearch_Reset(IEnumExtraSearch* This) {
   4830     return This->lpVtbl->Reset(This);
   4831 }
   4832 static inline HRESULT IEnumExtraSearch_Clone(IEnumExtraSearch* This,IEnumExtraSearch **ppenum) {
   4833     return This->lpVtbl->Clone(This,ppenum);
   4834 }
   4835 #endif
   4836 #endif
   4837 
   4838 #endif
   4839 
   4840 
   4841 #endif  /* __IEnumExtraSearch_INTERFACE_DEFINED__ */
   4842 
   4843 typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
   4844 
   4845 /*****************************************************************************
   4846  * IShellFolder2 interface
   4847  */
   4848 #ifndef __IShellFolder2_INTERFACE_DEFINED__
   4849 #define __IShellFolder2_INTERFACE_DEFINED__
   4850 
   4851 DEFINE_GUID(IID_IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3,0x0e, 0x00,0xc0,0x4f,0x79,0xab,0xd1);
   4852 #if defined(__cplusplus) && !defined(CINTERFACE)
   4853 MIDL_INTERFACE("93f2f68c-1d1b-11d3-a30e-00c04f79abd1")
   4854 IShellFolder2 : public IShellFolder
   4855 {
   4856     virtual HRESULT STDMETHODCALLTYPE GetDefaultSearchGUID(
   4857         GUID *pguid) = 0;
   4858 
   4859     virtual HRESULT STDMETHODCALLTYPE EnumSearches(
   4860         IEnumExtraSearch **ppenum) = 0;
   4861 
   4862     virtual HRESULT STDMETHODCALLTYPE GetDefaultColumn(
   4863         DWORD dwRes,
   4864         ULONG *pSort,
   4865         ULONG *pDisplay) = 0;
   4866 
   4867     virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnState(
   4868         UINT iColumn,
   4869         SHCOLSTATEF *pcsFlags) = 0;
   4870 
   4871     virtual HRESULT STDMETHODCALLTYPE GetDetailsEx(
   4872         PCUITEMID_CHILD pidl,
   4873         const SHCOLUMNID *pscid,
   4874         VARIANT *pv) = 0;
   4875 
   4876     virtual HRESULT STDMETHODCALLTYPE GetDetailsOf(
   4877         PCUITEMID_CHILD pidl,
   4878         UINT iColumn,
   4879         SHELLDETAILS *psd) = 0;
   4880 
   4881     virtual HRESULT STDMETHODCALLTYPE MapColumnToSCID(
   4882         UINT iColumn,
   4883         SHCOLUMNID *pscid) = 0;
   4884 
   4885 };
   4886 #ifdef __CRT_UUID_DECL
   4887 __CRT_UUID_DECL(IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3,0x0e, 0x00,0xc0,0x4f,0x79,0xab,0xd1)
   4888 #endif
   4889 #else
   4890 typedef struct IShellFolder2Vtbl {
   4891     BEGIN_INTERFACE
   4892 
   4893     /*** IUnknown methods ***/
   4894     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4895         IShellFolder2 *This,
   4896         REFIID riid,
   4897         void **ppvObject);
   4898 
   4899     ULONG (STDMETHODCALLTYPE *AddRef)(
   4900         IShellFolder2 *This);
   4901 
   4902     ULONG (STDMETHODCALLTYPE *Release)(
   4903         IShellFolder2 *This);
   4904 
   4905     /*** IShellFolder methods ***/
   4906     HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
   4907         IShellFolder2 *This,
   4908         HWND hwnd,
   4909         IBindCtx *pbc,
   4910         LPWSTR pszDisplayName,
   4911         ULONG *pchEaten,
   4912         PIDLIST_RELATIVE *ppidl,
   4913         ULONG *pdwAttributes);
   4914 
   4915     HRESULT (STDMETHODCALLTYPE *EnumObjects)(
   4916         IShellFolder2 *This,
   4917         HWND hwnd,
   4918         SHCONTF grfFlags,
   4919         IEnumIDList **ppenumIDList);
   4920 
   4921     HRESULT (STDMETHODCALLTYPE *BindToObject)(
   4922         IShellFolder2 *This,
   4923         PCUIDLIST_RELATIVE pidl,
   4924         IBindCtx *pbc,
   4925         REFIID riid,
   4926         void **ppv);
   4927 
   4928     HRESULT (STDMETHODCALLTYPE *BindToStorage)(
   4929         IShellFolder2 *This,
   4930         PCUIDLIST_RELATIVE pidl,
   4931         IBindCtx *pbc,
   4932         REFIID riid,
   4933         void **ppv);
   4934 
   4935     HRESULT (STDMETHODCALLTYPE *CompareIDs)(
   4936         IShellFolder2 *This,
   4937         LPARAM lParam,
   4938         PCUIDLIST_RELATIVE pidl1,
   4939         PCUIDLIST_RELATIVE pidl2);
   4940 
   4941     HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
   4942         IShellFolder2 *This,
   4943         HWND hwndOwner,
   4944         REFIID riid,
   4945         void **ppv);
   4946 
   4947     HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
   4948         IShellFolder2 *This,
   4949         UINT cidl,
   4950         PCUITEMID_CHILD_ARRAY apidl,
   4951         SFGAOF *rgfInOut);
   4952 
   4953     HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
   4954         IShellFolder2 *This,
   4955         HWND hwndOwner,
   4956         UINT cidl,
   4957         PCUITEMID_CHILD_ARRAY apidl,
   4958         REFIID riid,
   4959         UINT *rgfReserved,
   4960         void **ppv);
   4961 
   4962     HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
   4963         IShellFolder2 *This,
   4964         PCUITEMID_CHILD pidl,
   4965         SHGDNF uFlags,
   4966         STRRET *pName);
   4967 
   4968     HRESULT (STDMETHODCALLTYPE *SetNameOf)(
   4969         IShellFolder2 *This,
   4970         HWND hwnd,
   4971         PCUITEMID_CHILD pidl,
   4972         LPCWSTR pszName,
   4973         SHGDNF uFlags,
   4974         PITEMID_CHILD *ppidlOut);
   4975 
   4976     /*** IShellFolder2 methods ***/
   4977     HRESULT (STDMETHODCALLTYPE *GetDefaultSearchGUID)(
   4978         IShellFolder2 *This,
   4979         GUID *pguid);
   4980 
   4981     HRESULT (STDMETHODCALLTYPE *EnumSearches)(
   4982         IShellFolder2 *This,
   4983         IEnumExtraSearch **ppenum);
   4984 
   4985     HRESULT (STDMETHODCALLTYPE *GetDefaultColumn)(
   4986         IShellFolder2 *This,
   4987         DWORD dwRes,
   4988         ULONG *pSort,
   4989         ULONG *pDisplay);
   4990 
   4991     HRESULT (STDMETHODCALLTYPE *GetDefaultColumnState)(
   4992         IShellFolder2 *This,
   4993         UINT iColumn,
   4994         SHCOLSTATEF *pcsFlags);
   4995 
   4996     HRESULT (STDMETHODCALLTYPE *GetDetailsEx)(
   4997         IShellFolder2 *This,
   4998         PCUITEMID_CHILD pidl,
   4999         const SHCOLUMNID *pscid,
   5000         VARIANT *pv);
   5001 
   5002     HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
   5003         IShellFolder2 *This,
   5004         PCUITEMID_CHILD pidl,
   5005         UINT iColumn,
   5006         SHELLDETAILS *psd);
   5007 
   5008     HRESULT (STDMETHODCALLTYPE *MapColumnToSCID)(
   5009         IShellFolder2 *This,
   5010         UINT iColumn,
   5011         SHCOLUMNID *pscid);
   5012 
   5013     END_INTERFACE
   5014 } IShellFolder2Vtbl;
   5015 
   5016 interface IShellFolder2 {
   5017     CONST_VTBL IShellFolder2Vtbl* lpVtbl;
   5018 };
   5019 
   5020 #ifdef COBJMACROS
   5021 #ifndef WIDL_C_INLINE_WRAPPERS
   5022 /*** IUnknown methods ***/
   5023 #define IShellFolder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5024 #define IShellFolder2_AddRef(This) (This)->lpVtbl->AddRef(This)
   5025 #define IShellFolder2_Release(This) (This)->lpVtbl->Release(This)
   5026 /*** IShellFolder methods ***/
   5027 #define IShellFolder2_ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes) (This)->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes)
   5028 #define IShellFolder2_EnumObjects(This,hwnd,grfFlags,ppenumIDList) (This)->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList)
   5029 #define IShellFolder2_BindToObject(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv)
   5030 #define IShellFolder2_BindToStorage(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv)
   5031 #define IShellFolder2_CompareIDs(This,lParam,pidl1,pidl2) (This)->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2)
   5032 #define IShellFolder2_CreateViewObject(This,hwndOwner,riid,ppv) (This)->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv)
   5033 #define IShellFolder2_GetAttributesOf(This,cidl,apidl,rgfInOut) (This)->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut)
   5034 #define IShellFolder2_GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv) (This)->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv)
   5035 #define IShellFolder2_GetDisplayNameOf(This,pidl,uFlags,pName) (This)->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName)
   5036 #define IShellFolder2_SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut) (This)->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut)
   5037 /*** IShellFolder2 methods ***/
   5038 #define IShellFolder2_GetDefaultSearchGUID(This,pguid) (This)->lpVtbl->GetDefaultSearchGUID(This,pguid)
   5039 #define IShellFolder2_EnumSearches(This,ppenum) (This)->lpVtbl->EnumSearches(This,ppenum)
   5040 #define IShellFolder2_GetDefaultColumn(This,dwRes,pSort,pDisplay) (This)->lpVtbl->GetDefaultColumn(This,dwRes,pSort,pDisplay)
   5041 #define IShellFolder2_GetDefaultColumnState(This,iColumn,pcsFlags) (This)->lpVtbl->GetDefaultColumnState(This,iColumn,pcsFlags)
   5042 #define IShellFolder2_GetDetailsEx(This,pidl,pscid,pv) (This)->lpVtbl->GetDetailsEx(This,pidl,pscid,pv)
   5043 #define IShellFolder2_GetDetailsOf(This,pidl,iColumn,psd) (This)->lpVtbl->GetDetailsOf(This,pidl,iColumn,psd)
   5044 #define IShellFolder2_MapColumnToSCID(This,iColumn,pscid) (This)->lpVtbl->MapColumnToSCID(This,iColumn,pscid)
   5045 #else
   5046 /*** IUnknown methods ***/
   5047 static inline HRESULT IShellFolder2_QueryInterface(IShellFolder2* This,REFIID riid,void **ppvObject) {
   5048     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5049 }
   5050 static inline ULONG IShellFolder2_AddRef(IShellFolder2* This) {
   5051     return This->lpVtbl->AddRef(This);
   5052 }
   5053 static inline ULONG IShellFolder2_Release(IShellFolder2* This) {
   5054     return This->lpVtbl->Release(This);
   5055 }
   5056 /*** IShellFolder methods ***/
   5057 static inline HRESULT IShellFolder2_ParseDisplayName(IShellFolder2* This,HWND hwnd,IBindCtx *pbc,LPWSTR pszDisplayName,ULONG *pchEaten,PIDLIST_RELATIVE *ppidl,ULONG *pdwAttributes) {
   5058     return This->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes);
   5059 }
   5060 static inline HRESULT IShellFolder2_EnumObjects(IShellFolder2* This,HWND hwnd,SHCONTF grfFlags,IEnumIDList **ppenumIDList) {
   5061     return This->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList);
   5062 }
   5063 static inline HRESULT IShellFolder2_BindToObject(IShellFolder2* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
   5064     return This->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv);
   5065 }
   5066 static inline HRESULT IShellFolder2_BindToStorage(IShellFolder2* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
   5067     return This->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv);
   5068 }
   5069 static inline HRESULT IShellFolder2_CompareIDs(IShellFolder2* This,LPARAM lParam,PCUIDLIST_RELATIVE pidl1,PCUIDLIST_RELATIVE pidl2) {
   5070     return This->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2);
   5071 }
   5072 static inline HRESULT IShellFolder2_CreateViewObject(IShellFolder2* This,HWND hwndOwner,REFIID riid,void **ppv) {
   5073     return This->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv);
   5074 }
   5075 static inline HRESULT IShellFolder2_GetAttributesOf(IShellFolder2* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,SFGAOF *rgfInOut) {
   5076     return This->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut);
   5077 }
   5078 static inline HRESULT IShellFolder2_GetUIObjectOf(IShellFolder2* This,HWND hwndOwner,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,REFIID riid,UINT *rgfReserved,void **ppv) {
   5079     return This->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv);
   5080 }
   5081 static inline HRESULT IShellFolder2_GetDisplayNameOf(IShellFolder2* This,PCUITEMID_CHILD pidl,SHGDNF uFlags,STRRET *pName) {
   5082     return This->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName);
   5083 }
   5084 static inline HRESULT IShellFolder2_SetNameOf(IShellFolder2* This,HWND hwnd,PCUITEMID_CHILD pidl,LPCWSTR pszName,SHGDNF uFlags,PITEMID_CHILD *ppidlOut) {
   5085     return This->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut);
   5086 }
   5087 /*** IShellFolder2 methods ***/
   5088 static inline HRESULT IShellFolder2_GetDefaultSearchGUID(IShellFolder2* This,GUID *pguid) {
   5089     return This->lpVtbl->GetDefaultSearchGUID(This,pguid);
   5090 }
   5091 static inline HRESULT IShellFolder2_EnumSearches(IShellFolder2* This,IEnumExtraSearch **ppenum) {
   5092     return This->lpVtbl->EnumSearches(This,ppenum);
   5093 }
   5094 static inline HRESULT IShellFolder2_GetDefaultColumn(IShellFolder2* This,DWORD dwRes,ULONG *pSort,ULONG *pDisplay) {
   5095     return This->lpVtbl->GetDefaultColumn(This,dwRes,pSort,pDisplay);
   5096 }
   5097 static inline HRESULT IShellFolder2_GetDefaultColumnState(IShellFolder2* This,UINT iColumn,SHCOLSTATEF *pcsFlags) {
   5098     return This->lpVtbl->GetDefaultColumnState(This,iColumn,pcsFlags);
   5099 }
   5100 static inline HRESULT IShellFolder2_GetDetailsEx(IShellFolder2* This,PCUITEMID_CHILD pidl,const SHCOLUMNID *pscid,VARIANT *pv) {
   5101     return This->lpVtbl->GetDetailsEx(This,pidl,pscid,pv);
   5102 }
   5103 static inline HRESULT IShellFolder2_GetDetailsOf(IShellFolder2* This,PCUITEMID_CHILD pidl,UINT iColumn,SHELLDETAILS *psd) {
   5104     return This->lpVtbl->GetDetailsOf(This,pidl,iColumn,psd);
   5105 }
   5106 static inline HRESULT IShellFolder2_MapColumnToSCID(IShellFolder2* This,UINT iColumn,SHCOLUMNID *pscid) {
   5107     return This->lpVtbl->MapColumnToSCID(This,iColumn,pscid);
   5108 }
   5109 #endif
   5110 #endif
   5111 
   5112 #endif
   5113 
   5114 
   5115 #endif  /* __IShellFolder2_INTERFACE_DEFINED__ */
   5116 
   5117 typedef char *LPVIEWSETTINGS;
   5118 
   5119 typedef enum FOLDERFLAGS {
   5120     FWF_NONE = 0x0,
   5121     FWF_AUTOARRANGE = 0x1,
   5122     FWF_ABBREVIATEDNAMES = 0x2,
   5123     FWF_SNAPTOGRID = 0x4,
   5124     FWF_OWNERDATA = 0x8,
   5125     FWF_BESTFITWINDOW = 0x10,
   5126     FWF_DESKTOP = 0x20,
   5127     FWF_SINGLESEL = 0x40,
   5128     FWF_NOSUBFOLDERS = 0x80,
   5129     FWF_TRANSPARENT = 0x100,
   5130     FWF_NOCLIENTEDGE = 0x200,
   5131     FWF_NOSCROLL = 0x400,
   5132     FWF_ALIGNLEFT = 0x800,
   5133     FWF_NOICONS = 0x1000,
   5134     FWF_SHOWSELALWAYS = 0x2000,
   5135     FWF_NOVISIBLE = 0x4000,
   5136     FWF_SINGLECLICKACTIVATE = 0x8000,
   5137     FWF_NOWEBVIEW = 0x10000,
   5138     FWF_HIDEFILENAMES = 0x20000,
   5139     FWF_CHECKSELECT = 0x40000,
   5140     FWF_NOENUMREFRESH = 0x80000,
   5141     FWF_NOGROUPING = 0x100000,
   5142     FWF_FULLROWSELECT = 0x200000,
   5143     FWF_NOFILTERS = 0x400000,
   5144     FWF_NOCOLUMNHEADER = 0x800000,
   5145     FWF_NOHEADERINALLVIEWS = 0x1000000,
   5146     FWF_EXTENDEDTILES = 0x2000000,
   5147     FWF_TRICHECKSELECT = 0x4000000,
   5148     FWF_AUTOCHECKSELECT = 0x8000000,
   5149     FWF_NOBROWSERVIEWSTATE = 0x10000000,
   5150     FWF_SUBSETGROUPS = 0x20000000,
   5151     FWF_USESEARCHFOLDER = 0x40000000,
   5152     FWF_ALLOWRTLREADING = 0x80000000
   5153 } FOLDERFLAGS;
   5154 
   5155 DEFINE_ENUM_FLAG_OPERATORS(FOLDERFLAGS)
   5156 
   5157 typedef enum FOLDERVIEWMODE {
   5158     FVM_AUTO = -1,
   5159     FVM_FIRST = 1,
   5160     FVM_ICON = 1,
   5161     FVM_SMALLICON = 2,
   5162     FVM_LIST = 3,
   5163     FVM_DETAILS = 4,
   5164     FVM_THUMBNAIL = 5,
   5165     FVM_TILE = 6,
   5166     FVM_THUMBSTRIP = 7,
   5167     FVM_CONTENT = 8,
   5168     FVM_LAST = 8
   5169 } FOLDERVIEWMODE;
   5170 
   5171 #if NTDDI_VERSION >= NTDDI_VISTA
   5172 typedef enum FOLDERLOGICALVIEWMODE {
   5173     FLVM_UNSPECIFIED = -1,
   5174     FLVM_FIRST = 1,
   5175     FLVM_DETAILS = 1,
   5176     FLVM_TILES = 2,
   5177     FLVM_ICONS = 3,
   5178     FLVM_LIST = 4,
   5179     FLVM_CONTENT = 5,
   5180     FLVM_LAST = 5
   5181 } FOLDERLOGICALVIEWMODE;
   5182 #endif
   5183 typedef struct FOLDERSETTINGS {
   5184     UINT ViewMode;
   5185     UINT fFlags;
   5186 } FOLDERSETTINGS;
   5187 
   5188 typedef FOLDERSETTINGS *LPFOLDERSETTINGS;
   5189 typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
   5190 typedef FOLDERSETTINGS *PFOLDERSETTINGS;
   5191 
   5192 /*****************************************************************************
   5193  * IFolderViewOptions interface
   5194  */
   5195 #ifndef __IFolderViewOptions_INTERFACE_DEFINED__
   5196 #define __IFolderViewOptions_INTERFACE_DEFINED__
   5197 
   5198 typedef enum FOLDERVIEWOPTIONS {
   5199     FVO_DEFAULT = 0x0,
   5200     FVO_VISTALAYOUT = 0x1,
   5201     FVO_CUSTOMPOSITION = 0x2,
   5202     FVO_CUSTOMORDERING = 0x4,
   5203     FVO_SUPPORTHYPERLINKS = 0x8,
   5204     FVO_NOANIMATIONS = 0x10,
   5205     FVO_NOSCROLLTIPS = 0x20
   5206 } FOLDERVIEWOPTIONS;
   5207 
   5208 DEFINE_ENUM_FLAG_OPERATORS(FOLDERVIEWOPTIONS)
   5209 
   5210 DEFINE_GUID(IID_IFolderViewOptions, 0x3cc974d2, 0xb302, 0x4d36, 0xad,0x3e, 0x06,0xd9,0x3f,0x69,0x5d,0x3f);
   5211 #if defined(__cplusplus) && !defined(CINTERFACE)
   5212 MIDL_INTERFACE("3cc974d2-b302-4d36-ad3e-06d93f695d3f")
   5213 IFolderViewOptions : public IUnknown
   5214 {
   5215     virtual HRESULT STDMETHODCALLTYPE SetFolderViewOptions(
   5216         FOLDERVIEWOPTIONS fvoMask,
   5217         FOLDERVIEWOPTIONS fvoFlags) = 0;
   5218 
   5219     virtual HRESULT STDMETHODCALLTYPE GetFolderViewOptions(
   5220         FOLDERVIEWOPTIONS *pfvoFlags) = 0;
   5221 
   5222 };
   5223 #ifdef __CRT_UUID_DECL
   5224 __CRT_UUID_DECL(IFolderViewOptions, 0x3cc974d2, 0xb302, 0x4d36, 0xad,0x3e, 0x06,0xd9,0x3f,0x69,0x5d,0x3f)
   5225 #endif
   5226 #else
   5227 typedef struct IFolderViewOptionsVtbl {
   5228     BEGIN_INTERFACE
   5229 
   5230     /*** IUnknown methods ***/
   5231     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5232         IFolderViewOptions *This,
   5233         REFIID riid,
   5234         void **ppvObject);
   5235 
   5236     ULONG (STDMETHODCALLTYPE *AddRef)(
   5237         IFolderViewOptions *This);
   5238 
   5239     ULONG (STDMETHODCALLTYPE *Release)(
   5240         IFolderViewOptions *This);
   5241 
   5242     /*** IFolderViewOptions methods ***/
   5243     HRESULT (STDMETHODCALLTYPE *SetFolderViewOptions)(
   5244         IFolderViewOptions *This,
   5245         FOLDERVIEWOPTIONS fvoMask,
   5246         FOLDERVIEWOPTIONS fvoFlags);
   5247 
   5248     HRESULT (STDMETHODCALLTYPE *GetFolderViewOptions)(
   5249         IFolderViewOptions *This,
   5250         FOLDERVIEWOPTIONS *pfvoFlags);
   5251 
   5252     END_INTERFACE
   5253 } IFolderViewOptionsVtbl;
   5254 
   5255 interface IFolderViewOptions {
   5256     CONST_VTBL IFolderViewOptionsVtbl* lpVtbl;
   5257 };
   5258 
   5259 #ifdef COBJMACROS
   5260 #ifndef WIDL_C_INLINE_WRAPPERS
   5261 /*** IUnknown methods ***/
   5262 #define IFolderViewOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5263 #define IFolderViewOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
   5264 #define IFolderViewOptions_Release(This) (This)->lpVtbl->Release(This)
   5265 /*** IFolderViewOptions methods ***/
   5266 #define IFolderViewOptions_SetFolderViewOptions(This,fvoMask,fvoFlags) (This)->lpVtbl->SetFolderViewOptions(This,fvoMask,fvoFlags)
   5267 #define IFolderViewOptions_GetFolderViewOptions(This,pfvoFlags) (This)->lpVtbl->GetFolderViewOptions(This,pfvoFlags)
   5268 #else
   5269 /*** IUnknown methods ***/
   5270 static inline HRESULT IFolderViewOptions_QueryInterface(IFolderViewOptions* This,REFIID riid,void **ppvObject) {
   5271     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5272 }
   5273 static inline ULONG IFolderViewOptions_AddRef(IFolderViewOptions* This) {
   5274     return This->lpVtbl->AddRef(This);
   5275 }
   5276 static inline ULONG IFolderViewOptions_Release(IFolderViewOptions* This) {
   5277     return This->lpVtbl->Release(This);
   5278 }
   5279 /*** IFolderViewOptions methods ***/
   5280 static inline HRESULT IFolderViewOptions_SetFolderViewOptions(IFolderViewOptions* This,FOLDERVIEWOPTIONS fvoMask,FOLDERVIEWOPTIONS fvoFlags) {
   5281     return This->lpVtbl->SetFolderViewOptions(This,fvoMask,fvoFlags);
   5282 }
   5283 static inline HRESULT IFolderViewOptions_GetFolderViewOptions(IFolderViewOptions* This,FOLDERVIEWOPTIONS *pfvoFlags) {
   5284     return This->lpVtbl->GetFolderViewOptions(This,pfvoFlags);
   5285 }
   5286 #endif
   5287 #endif
   5288 
   5289 #endif
   5290 
   5291 
   5292 #endif  /* __IFolderViewOptions_INTERFACE_DEFINED__ */
   5293 
   5294 typedef enum _SVSIF {
   5295     SVSI_DESELECT = 0x0,
   5296     SVSI_SELECT = 0x1,
   5297     SVSI_EDIT = 0x3,
   5298     SVSI_DESELECTOTHERS = 0x4,
   5299     SVSI_ENSUREVISIBLE = 0x8,
   5300     SVSI_FOCUSED = 0x10,
   5301     SVSI_TRANSLATEPT = 0x20,
   5302     SVSI_SELECTIONMARK = 0x40,
   5303     SVSI_POSITIONITEM = 0x80,
   5304     SVSI_CHECK = 0x100,
   5305     SVSI_CHECK2 = 0x200,
   5306     SVSI_KEYBOARDSELECT = 0x401,
   5307     SVSI_NOTAKEFOCUS = 0x40000000
   5308 } _SVSIF;
   5309 
   5310 #define SVSI_NOSTATECHANGE   ((UINT)0x80000000)
   5311 
   5312 typedef UINT SVSIF;
   5313 
   5314 typedef enum _SVGIO {
   5315     SVGIO_BACKGROUND = 0x0,
   5316     SVGIO_SELECTION = 0x1,
   5317     SVGIO_ALLVIEW = 0x2,
   5318     SVGIO_CHECKED = 0x3,
   5319     SVGIO_TYPE_MASK = 0xf,
   5320     SVGIO_FLAG_VIEWORDER = 0x80000000
   5321 } _SVGIO;
   5322 
   5323 DEFINE_ENUM_FLAG_OPERATORS(_SVGIO)
   5324 
   5325 typedef int SVGIO;
   5326 
   5327 typedef enum SVUIA_STATUS {
   5328     SVUIA_DEACTIVATE = 0,
   5329     SVUIA_ACTIVATE_NOFOCUS = 1,
   5330     SVUIA_ACTIVATE_FOCUS = 2,
   5331     SVUIA_INPLACEACTIVATE = 3
   5332 } SVUIA_STATUS;
   5333 
   5334 #ifdef _FIX_ENABLEMODELESS_CONFLICT
   5335 #define EnableModeless EnableModelessSV
   5336 #endif
   5337 
   5338 #if 0
   5339 typedef LPARAM LPFNSVADDPROPSHEETPAGE;
   5340 #else
   5341 #include <prsht.h>
   5342 typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;
   5343 #endif
   5344 
   5345 #ifndef __IShellBrowser_FWD_DEFINED__
   5346 #define __IShellBrowser_FWD_DEFINED__
   5347 typedef interface IShellBrowser IShellBrowser;
   5348 #ifdef __cplusplus
   5349 interface IShellBrowser;
   5350 #endif /* __cplusplus */
   5351 #endif
   5352 
   5353 
   5354 /*****************************************************************************
   5355  * IShellView interface
   5356  */
   5357 #ifndef __IShellView_INTERFACE_DEFINED__
   5358 #define __IShellView_INTERFACE_DEFINED__
   5359 
   5360 DEFINE_GUID(IID_IShellView, 0x000214e3, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   5361 #if defined(__cplusplus) && !defined(CINTERFACE)
   5362 MIDL_INTERFACE("000214e3-0000-0000-c000-000000000046")
   5363 IShellView : public IOleWindow
   5364 {
   5365     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
   5366         MSG *pmsg) = 0;
   5367 
   5368     virtual HRESULT STDMETHODCALLTYPE EnableModeless(
   5369         WINBOOL fEnable) = 0;
   5370 
   5371     virtual HRESULT STDMETHODCALLTYPE UIActivate(
   5372         UINT uState) = 0;
   5373 
   5374     virtual HRESULT STDMETHODCALLTYPE Refresh(
   5375         ) = 0;
   5376 
   5377     virtual HRESULT STDMETHODCALLTYPE CreateViewWindow(
   5378         IShellView *psvPrevious,
   5379         LPCFOLDERSETTINGS pfs,
   5380         IShellBrowser *psb,
   5381         RECT *prcView,
   5382         HWND *phWnd) = 0;
   5383 
   5384     virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow(
   5385         ) = 0;
   5386 
   5387     virtual HRESULT STDMETHODCALLTYPE GetCurrentInfo(
   5388         LPFOLDERSETTINGS pfs) = 0;
   5389 
   5390     virtual HRESULT STDMETHODCALLTYPE AddPropertySheetPages(
   5391         DWORD dwReserved,
   5392         LPFNSVADDPROPSHEETPAGE pfn,
   5393         LPARAM lparam) = 0;
   5394 
   5395     virtual HRESULT STDMETHODCALLTYPE SaveViewState(
   5396         ) = 0;
   5397 
   5398     virtual HRESULT STDMETHODCALLTYPE SelectItem(
   5399         PCUITEMID_CHILD pidlItem,
   5400         SVSIF uFlags) = 0;
   5401 
   5402     virtual HRESULT STDMETHODCALLTYPE GetItemObject(
   5403         UINT uItem,
   5404         REFIID riid,
   5405         void **ppv) = 0;
   5406 
   5407 };
   5408 #ifdef __CRT_UUID_DECL
   5409 __CRT_UUID_DECL(IShellView, 0x000214e3, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   5410 #endif
   5411 #else
   5412 typedef struct IShellViewVtbl {
   5413     BEGIN_INTERFACE
   5414 
   5415     /*** IUnknown methods ***/
   5416     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5417         IShellView *This,
   5418         REFIID riid,
   5419         void **ppvObject);
   5420 
   5421     ULONG (STDMETHODCALLTYPE *AddRef)(
   5422         IShellView *This);
   5423 
   5424     ULONG (STDMETHODCALLTYPE *Release)(
   5425         IShellView *This);
   5426 
   5427     /*** IOleWindow methods ***/
   5428     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   5429         IShellView *This,
   5430         HWND *phwnd);
   5431 
   5432     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
   5433         IShellView *This,
   5434         WINBOOL fEnterMode);
   5435 
   5436     /*** IShellView methods ***/
   5437     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
   5438         IShellView *This,
   5439         MSG *pmsg);
   5440 
   5441     HRESULT (STDMETHODCALLTYPE *EnableModeless)(
   5442         IShellView *This,
   5443         WINBOOL fEnable);
   5444 
   5445     HRESULT (STDMETHODCALLTYPE *UIActivate)(
   5446         IShellView *This,
   5447         UINT uState);
   5448 
   5449     HRESULT (STDMETHODCALLTYPE *Refresh)(
   5450         IShellView *This);
   5451 
   5452     HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
   5453         IShellView *This,
   5454         IShellView *psvPrevious,
   5455         LPCFOLDERSETTINGS pfs,
   5456         IShellBrowser *psb,
   5457         RECT *prcView,
   5458         HWND *phWnd);
   5459 
   5460     HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
   5461         IShellView *This);
   5462 
   5463     HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
   5464         IShellView *This,
   5465         LPFOLDERSETTINGS pfs);
   5466 
   5467     HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
   5468         IShellView *This,
   5469         DWORD dwReserved,
   5470         LPFNSVADDPROPSHEETPAGE pfn,
   5471         LPARAM lparam);
   5472 
   5473     HRESULT (STDMETHODCALLTYPE *SaveViewState)(
   5474         IShellView *This);
   5475 
   5476     HRESULT (STDMETHODCALLTYPE *SelectItem)(
   5477         IShellView *This,
   5478         PCUITEMID_CHILD pidlItem,
   5479         SVSIF uFlags);
   5480 
   5481     HRESULT (STDMETHODCALLTYPE *GetItemObject)(
   5482         IShellView *This,
   5483         UINT uItem,
   5484         REFIID riid,
   5485         void **ppv);
   5486 
   5487     END_INTERFACE
   5488 } IShellViewVtbl;
   5489 
   5490 interface IShellView {
   5491     CONST_VTBL IShellViewVtbl* lpVtbl;
   5492 };
   5493 
   5494 #ifdef COBJMACROS
   5495 #ifndef WIDL_C_INLINE_WRAPPERS
   5496 /*** IUnknown methods ***/
   5497 #define IShellView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5498 #define IShellView_AddRef(This) (This)->lpVtbl->AddRef(This)
   5499 #define IShellView_Release(This) (This)->lpVtbl->Release(This)
   5500 /*** IOleWindow methods ***/
   5501 #define IShellView_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   5502 #define IShellView_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   5503 /*** IShellView methods ***/
   5504 #define IShellView_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
   5505 #define IShellView_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
   5506 #define IShellView_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
   5507 #define IShellView_Refresh(This) (This)->lpVtbl->Refresh(This)
   5508 #define IShellView_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
   5509 #define IShellView_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
   5510 #define IShellView_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
   5511 #define IShellView_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
   5512 #define IShellView_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
   5513 #define IShellView_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
   5514 #define IShellView_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
   5515 #else
   5516 /*** IUnknown methods ***/
   5517 static inline HRESULT IShellView_QueryInterface(IShellView* This,REFIID riid,void **ppvObject) {
   5518     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5519 }
   5520 static inline ULONG IShellView_AddRef(IShellView* This) {
   5521     return This->lpVtbl->AddRef(This);
   5522 }
   5523 static inline ULONG IShellView_Release(IShellView* This) {
   5524     return This->lpVtbl->Release(This);
   5525 }
   5526 /*** IOleWindow methods ***/
   5527 static inline HRESULT IShellView_GetWindow(IShellView* This,HWND *phwnd) {
   5528     return This->lpVtbl->GetWindow(This,phwnd);
   5529 }
   5530 static inline HRESULT IShellView_ContextSensitiveHelp(IShellView* This,WINBOOL fEnterMode) {
   5531     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   5532 }
   5533 /*** IShellView methods ***/
   5534 static inline HRESULT IShellView_TranslateAccelerator(IShellView* This,MSG *pmsg) {
   5535     return This->lpVtbl->TranslateAccelerator(This,pmsg);
   5536 }
   5537 static inline HRESULT IShellView_EnableModeless(IShellView* This,WINBOOL fEnable) {
   5538     return This->lpVtbl->EnableModeless(This,fEnable);
   5539 }
   5540 static inline HRESULT IShellView_UIActivate(IShellView* This,UINT uState) {
   5541     return This->lpVtbl->UIActivate(This,uState);
   5542 }
   5543 static inline HRESULT IShellView_Refresh(IShellView* This) {
   5544     return This->lpVtbl->Refresh(This);
   5545 }
   5546 static inline HRESULT IShellView_CreateViewWindow(IShellView* This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd) {
   5547     return This->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd);
   5548 }
   5549 static inline HRESULT IShellView_DestroyViewWindow(IShellView* This) {
   5550     return This->lpVtbl->DestroyViewWindow(This);
   5551 }
   5552 static inline HRESULT IShellView_GetCurrentInfo(IShellView* This,LPFOLDERSETTINGS pfs) {
   5553     return This->lpVtbl->GetCurrentInfo(This,pfs);
   5554 }
   5555 static inline HRESULT IShellView_AddPropertySheetPages(IShellView* This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam) {
   5556     return This->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam);
   5557 }
   5558 static inline HRESULT IShellView_SaveViewState(IShellView* This) {
   5559     return This->lpVtbl->SaveViewState(This);
   5560 }
   5561 static inline HRESULT IShellView_SelectItem(IShellView* This,PCUITEMID_CHILD pidlItem,SVSIF uFlags) {
   5562     return This->lpVtbl->SelectItem(This,pidlItem,uFlags);
   5563 }
   5564 static inline HRESULT IShellView_GetItemObject(IShellView* This,UINT uItem,REFIID riid,void **ppv) {
   5565     return This->lpVtbl->GetItemObject(This,uItem,riid,ppv);
   5566 }
   5567 #endif
   5568 #endif
   5569 
   5570 #endif
   5571 
   5572 
   5573 #endif  /* __IShellView_INTERFACE_DEFINED__ */
   5574 
   5575 typedef IShellView *LPSHELLVIEW;
   5576 
   5577 /*****************************************************************************
   5578  * IShellView2 interface
   5579  */
   5580 #ifndef __IShellView2_INTERFACE_DEFINED__
   5581 #define __IShellView2_INTERFACE_DEFINED__
   5582 
   5583 typedef GUID SHELLVIEWID;
   5584 
   5585 #define SV2GV_CURRENTVIEW ((UINT)-1)
   5586 #define SV2GV_DEFAULTVIEW ((UINT)-2)
   5587 
   5588 #include <pshpack8.h>
   5589 typedef struct _SV2CVW2_PARAMS {
   5590     DWORD cbSize;
   5591     IShellView *psvPrev;
   5592     LPCFOLDERSETTINGS pfs;
   5593     IShellBrowser *psbOwner;
   5594     RECT *prcView;
   5595     const SHELLVIEWID *pvid;
   5596     HWND hwndView;
   5597 } SV2CVW2_PARAMS;
   5598 typedef struct _SV2CVW2_PARAMS *LPSV2CVW2_PARAMS;
   5599 #include <poppack.h>
   5600 
   5601 DEFINE_GUID(IID_IShellView2, 0x88e39e80, 0x3578, 0x11cf, 0xae,0x69, 0x08,0x00,0x2b,0x2e,0x12,0x62);
   5602 #if defined(__cplusplus) && !defined(CINTERFACE)
   5603 MIDL_INTERFACE("88e39e80-3578-11cf-ae69-08002b2e1262")
   5604 IShellView2 : public IShellView
   5605 {
   5606     virtual HRESULT STDMETHODCALLTYPE GetView(
   5607         SHELLVIEWID *pvid,
   5608         ULONG uView) = 0;
   5609 
   5610     virtual HRESULT STDMETHODCALLTYPE CreateViewWindow2(
   5611         LPSV2CVW2_PARAMS lpParams) = 0;
   5612 
   5613     virtual HRESULT STDMETHODCALLTYPE HandleRename(
   5614         PCUITEMID_CHILD pidlNew) = 0;
   5615 
   5616     virtual HRESULT STDMETHODCALLTYPE SelectAndPositionItem(
   5617         PCUITEMID_CHILD pidlItem,
   5618         UINT uFlags,
   5619         POINT *ppt) = 0;
   5620 
   5621 };
   5622 #ifdef __CRT_UUID_DECL
   5623 __CRT_UUID_DECL(IShellView2, 0x88e39e80, 0x3578, 0x11cf, 0xae,0x69, 0x08,0x00,0x2b,0x2e,0x12,0x62)
   5624 #endif
   5625 #else
   5626 typedef struct IShellView2Vtbl {
   5627     BEGIN_INTERFACE
   5628 
   5629     /*** IUnknown methods ***/
   5630     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5631         IShellView2 *This,
   5632         REFIID riid,
   5633         void **ppvObject);
   5634 
   5635     ULONG (STDMETHODCALLTYPE *AddRef)(
   5636         IShellView2 *This);
   5637 
   5638     ULONG (STDMETHODCALLTYPE *Release)(
   5639         IShellView2 *This);
   5640 
   5641     /*** IOleWindow methods ***/
   5642     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   5643         IShellView2 *This,
   5644         HWND *phwnd);
   5645 
   5646     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
   5647         IShellView2 *This,
   5648         WINBOOL fEnterMode);
   5649 
   5650     /*** IShellView methods ***/
   5651     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
   5652         IShellView2 *This,
   5653         MSG *pmsg);
   5654 
   5655     HRESULT (STDMETHODCALLTYPE *EnableModeless)(
   5656         IShellView2 *This,
   5657         WINBOOL fEnable);
   5658 
   5659     HRESULT (STDMETHODCALLTYPE *UIActivate)(
   5660         IShellView2 *This,
   5661         UINT uState);
   5662 
   5663     HRESULT (STDMETHODCALLTYPE *Refresh)(
   5664         IShellView2 *This);
   5665 
   5666     HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
   5667         IShellView2 *This,
   5668         IShellView *psvPrevious,
   5669         LPCFOLDERSETTINGS pfs,
   5670         IShellBrowser *psb,
   5671         RECT *prcView,
   5672         HWND *phWnd);
   5673 
   5674     HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
   5675         IShellView2 *This);
   5676 
   5677     HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
   5678         IShellView2 *This,
   5679         LPFOLDERSETTINGS pfs);
   5680 
   5681     HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
   5682         IShellView2 *This,
   5683         DWORD dwReserved,
   5684         LPFNSVADDPROPSHEETPAGE pfn,
   5685         LPARAM lparam);
   5686 
   5687     HRESULT (STDMETHODCALLTYPE *SaveViewState)(
   5688         IShellView2 *This);
   5689 
   5690     HRESULT (STDMETHODCALLTYPE *SelectItem)(
   5691         IShellView2 *This,
   5692         PCUITEMID_CHILD pidlItem,
   5693         SVSIF uFlags);
   5694 
   5695     HRESULT (STDMETHODCALLTYPE *GetItemObject)(
   5696         IShellView2 *This,
   5697         UINT uItem,
   5698         REFIID riid,
   5699         void **ppv);
   5700 
   5701     /*** IShellView2 methods ***/
   5702     HRESULT (STDMETHODCALLTYPE *GetView)(
   5703         IShellView2 *This,
   5704         SHELLVIEWID *pvid,
   5705         ULONG uView);
   5706 
   5707     HRESULT (STDMETHODCALLTYPE *CreateViewWindow2)(
   5708         IShellView2 *This,
   5709         LPSV2CVW2_PARAMS lpParams);
   5710 
   5711     HRESULT (STDMETHODCALLTYPE *HandleRename)(
   5712         IShellView2 *This,
   5713         PCUITEMID_CHILD pidlNew);
   5714 
   5715     HRESULT (STDMETHODCALLTYPE *SelectAndPositionItem)(
   5716         IShellView2 *This,
   5717         PCUITEMID_CHILD pidlItem,
   5718         UINT uFlags,
   5719         POINT *ppt);
   5720 
   5721     END_INTERFACE
   5722 } IShellView2Vtbl;
   5723 
   5724 interface IShellView2 {
   5725     CONST_VTBL IShellView2Vtbl* lpVtbl;
   5726 };
   5727 
   5728 #ifdef COBJMACROS
   5729 #ifndef WIDL_C_INLINE_WRAPPERS
   5730 /*** IUnknown methods ***/
   5731 #define IShellView2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5732 #define IShellView2_AddRef(This) (This)->lpVtbl->AddRef(This)
   5733 #define IShellView2_Release(This) (This)->lpVtbl->Release(This)
   5734 /*** IOleWindow methods ***/
   5735 #define IShellView2_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   5736 #define IShellView2_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   5737 /*** IShellView methods ***/
   5738 #define IShellView2_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
   5739 #define IShellView2_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
   5740 #define IShellView2_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
   5741 #define IShellView2_Refresh(This) (This)->lpVtbl->Refresh(This)
   5742 #define IShellView2_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
   5743 #define IShellView2_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
   5744 #define IShellView2_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
   5745 #define IShellView2_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
   5746 #define IShellView2_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
   5747 #define IShellView2_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
   5748 #define IShellView2_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
   5749 /*** IShellView2 methods ***/
   5750 #define IShellView2_GetView(This,pvid,uView) (This)->lpVtbl->GetView(This,pvid,uView)
   5751 #define IShellView2_CreateViewWindow2(This,lpParams) (This)->lpVtbl->CreateViewWindow2(This,lpParams)
   5752 #define IShellView2_HandleRename(This,pidlNew) (This)->lpVtbl->HandleRename(This,pidlNew)
   5753 #define IShellView2_SelectAndPositionItem(This,pidlItem,uFlags,ppt) (This)->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt)
   5754 #else
   5755 /*** IUnknown methods ***/
   5756 static inline HRESULT IShellView2_QueryInterface(IShellView2* This,REFIID riid,void **ppvObject) {
   5757     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5758 }
   5759 static inline ULONG IShellView2_AddRef(IShellView2* This) {
   5760     return This->lpVtbl->AddRef(This);
   5761 }
   5762 static inline ULONG IShellView2_Release(IShellView2* This) {
   5763     return This->lpVtbl->Release(This);
   5764 }
   5765 /*** IOleWindow methods ***/
   5766 static inline HRESULT IShellView2_GetWindow(IShellView2* This,HWND *phwnd) {
   5767     return This->lpVtbl->GetWindow(This,phwnd);
   5768 }
   5769 static inline HRESULT IShellView2_ContextSensitiveHelp(IShellView2* This,WINBOOL fEnterMode) {
   5770     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   5771 }
   5772 /*** IShellView methods ***/
   5773 static inline HRESULT IShellView2_TranslateAccelerator(IShellView2* This,MSG *pmsg) {
   5774     return This->lpVtbl->TranslateAccelerator(This,pmsg);
   5775 }
   5776 static inline HRESULT IShellView2_EnableModeless(IShellView2* This,WINBOOL fEnable) {
   5777     return This->lpVtbl->EnableModeless(This,fEnable);
   5778 }
   5779 static inline HRESULT IShellView2_UIActivate(IShellView2* This,UINT uState) {
   5780     return This->lpVtbl->UIActivate(This,uState);
   5781 }
   5782 static inline HRESULT IShellView2_Refresh(IShellView2* This) {
   5783     return This->lpVtbl->Refresh(This);
   5784 }
   5785 static inline HRESULT IShellView2_CreateViewWindow(IShellView2* This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd) {
   5786     return This->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd);
   5787 }
   5788 static inline HRESULT IShellView2_DestroyViewWindow(IShellView2* This) {
   5789     return This->lpVtbl->DestroyViewWindow(This);
   5790 }
   5791 static inline HRESULT IShellView2_GetCurrentInfo(IShellView2* This,LPFOLDERSETTINGS pfs) {
   5792     return This->lpVtbl->GetCurrentInfo(This,pfs);
   5793 }
   5794 static inline HRESULT IShellView2_AddPropertySheetPages(IShellView2* This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam) {
   5795     return This->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam);
   5796 }
   5797 static inline HRESULT IShellView2_SaveViewState(IShellView2* This) {
   5798     return This->lpVtbl->SaveViewState(This);
   5799 }
   5800 static inline HRESULT IShellView2_SelectItem(IShellView2* This,PCUITEMID_CHILD pidlItem,SVSIF uFlags) {
   5801     return This->lpVtbl->SelectItem(This,pidlItem,uFlags);
   5802 }
   5803 static inline HRESULT IShellView2_GetItemObject(IShellView2* This,UINT uItem,REFIID riid,void **ppv) {
   5804     return This->lpVtbl->GetItemObject(This,uItem,riid,ppv);
   5805 }
   5806 /*** IShellView2 methods ***/
   5807 static inline HRESULT IShellView2_GetView(IShellView2* This,SHELLVIEWID *pvid,ULONG uView) {
   5808     return This->lpVtbl->GetView(This,pvid,uView);
   5809 }
   5810 static inline HRESULT IShellView2_CreateViewWindow2(IShellView2* This,LPSV2CVW2_PARAMS lpParams) {
   5811     return This->lpVtbl->CreateViewWindow2(This,lpParams);
   5812 }
   5813 static inline HRESULT IShellView2_HandleRename(IShellView2* This,PCUITEMID_CHILD pidlNew) {
   5814     return This->lpVtbl->HandleRename(This,pidlNew);
   5815 }
   5816 static inline HRESULT IShellView2_SelectAndPositionItem(IShellView2* This,PCUITEMID_CHILD pidlItem,UINT uFlags,POINT *ppt) {
   5817     return This->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt);
   5818 }
   5819 #endif
   5820 #endif
   5821 
   5822 #endif
   5823 
   5824 
   5825 #endif  /* __IShellView2_INTERFACE_DEFINED__ */
   5826 
   5827 
   5828 #if NTDDI_VERSION >= NTDDI_VISTA
   5829 /*****************************************************************************
   5830  * IShellView3 interface
   5831  */
   5832 #ifndef __IShellView3_INTERFACE_DEFINED__
   5833 #define __IShellView3_INTERFACE_DEFINED__
   5834 
   5835 enum _SV3CVW3_FLAGS {
   5836     SV3CVW3_DEFAULT = 0x0,
   5837     SV3CVW3_NONINTERACTIVE = 0x1,
   5838     SV3CVW3_FORCEVIEWMODE = 0x2,
   5839     SV3CVW3_FORCEFOLDERFLAGS = 0x4
   5840 };
   5841 
   5842 typedef DWORD SV3CVW3_FLAGS;
   5843 
   5844 DEFINE_GUID(IID_IShellView3, 0xec39fa88, 0xf8af, 0x41c5, 0x84,0x21, 0x38,0xbe,0xd2,0x8f,0x46,0x73);
   5845 #if defined(__cplusplus) && !defined(CINTERFACE)
   5846 MIDL_INTERFACE("ec39fa88-f8af-41c5-8421-38bed28f4673")
   5847 IShellView3 : public IShellView2
   5848 {
   5849     virtual HRESULT STDMETHODCALLTYPE CreateViewWindow3(
   5850         IShellBrowser *psbOwner,
   5851         IShellView *psvPrev,
   5852         SV3CVW3_FLAGS dwViewFlags,
   5853         FOLDERFLAGS dwMask,
   5854         FOLDERFLAGS dwFlags,
   5855         FOLDERVIEWMODE fvMode,
   5856         const SHELLVIEWID *pvid,
   5857         const RECT *prcView,
   5858         HWND *phwndView) = 0;
   5859 
   5860 };
   5861 #ifdef __CRT_UUID_DECL
   5862 __CRT_UUID_DECL(IShellView3, 0xec39fa88, 0xf8af, 0x41c5, 0x84,0x21, 0x38,0xbe,0xd2,0x8f,0x46,0x73)
   5863 #endif
   5864 #else
   5865 typedef struct IShellView3Vtbl {
   5866     BEGIN_INTERFACE
   5867 
   5868     /*** IUnknown methods ***/
   5869     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5870         IShellView3 *This,
   5871         REFIID riid,
   5872         void **ppvObject);
   5873 
   5874     ULONG (STDMETHODCALLTYPE *AddRef)(
   5875         IShellView3 *This);
   5876 
   5877     ULONG (STDMETHODCALLTYPE *Release)(
   5878         IShellView3 *This);
   5879 
   5880     /*** IOleWindow methods ***/
   5881     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   5882         IShellView3 *This,
   5883         HWND *phwnd);
   5884 
   5885     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
   5886         IShellView3 *This,
   5887         WINBOOL fEnterMode);
   5888 
   5889     /*** IShellView methods ***/
   5890     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
   5891         IShellView3 *This,
   5892         MSG *pmsg);
   5893 
   5894     HRESULT (STDMETHODCALLTYPE *EnableModeless)(
   5895         IShellView3 *This,
   5896         WINBOOL fEnable);
   5897 
   5898     HRESULT (STDMETHODCALLTYPE *UIActivate)(
   5899         IShellView3 *This,
   5900         UINT uState);
   5901 
   5902     HRESULT (STDMETHODCALLTYPE *Refresh)(
   5903         IShellView3 *This);
   5904 
   5905     HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
   5906         IShellView3 *This,
   5907         IShellView *psvPrevious,
   5908         LPCFOLDERSETTINGS pfs,
   5909         IShellBrowser *psb,
   5910         RECT *prcView,
   5911         HWND *phWnd);
   5912 
   5913     HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
   5914         IShellView3 *This);
   5915 
   5916     HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
   5917         IShellView3 *This,
   5918         LPFOLDERSETTINGS pfs);
   5919 
   5920     HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
   5921         IShellView3 *This,
   5922         DWORD dwReserved,
   5923         LPFNSVADDPROPSHEETPAGE pfn,
   5924         LPARAM lparam);
   5925 
   5926     HRESULT (STDMETHODCALLTYPE *SaveViewState)(
   5927         IShellView3 *This);
   5928 
   5929     HRESULT (STDMETHODCALLTYPE *SelectItem)(
   5930         IShellView3 *This,
   5931         PCUITEMID_CHILD pidlItem,
   5932         SVSIF uFlags);
   5933 
   5934     HRESULT (STDMETHODCALLTYPE *GetItemObject)(
   5935         IShellView3 *This,
   5936         UINT uItem,
   5937         REFIID riid,
   5938         void **ppv);
   5939 
   5940     /*** IShellView2 methods ***/
   5941     HRESULT (STDMETHODCALLTYPE *GetView)(
   5942         IShellView3 *This,
   5943         SHELLVIEWID *pvid,
   5944         ULONG uView);
   5945 
   5946     HRESULT (STDMETHODCALLTYPE *CreateViewWindow2)(
   5947         IShellView3 *This,
   5948         LPSV2CVW2_PARAMS lpParams);
   5949 
   5950     HRESULT (STDMETHODCALLTYPE *HandleRename)(
   5951         IShellView3 *This,
   5952         PCUITEMID_CHILD pidlNew);
   5953 
   5954     HRESULT (STDMETHODCALLTYPE *SelectAndPositionItem)(
   5955         IShellView3 *This,
   5956         PCUITEMID_CHILD pidlItem,
   5957         UINT uFlags,
   5958         POINT *ppt);
   5959 
   5960     /*** IShellView3 methods ***/
   5961     HRESULT (STDMETHODCALLTYPE *CreateViewWindow3)(
   5962         IShellView3 *This,
   5963         IShellBrowser *psbOwner,
   5964         IShellView *psvPrev,
   5965         SV3CVW3_FLAGS dwViewFlags,
   5966         FOLDERFLAGS dwMask,
   5967         FOLDERFLAGS dwFlags,
   5968         FOLDERVIEWMODE fvMode,
   5969         const SHELLVIEWID *pvid,
   5970         const RECT *prcView,
   5971         HWND *phwndView);
   5972 
   5973     END_INTERFACE
   5974 } IShellView3Vtbl;
   5975 
   5976 interface IShellView3 {
   5977     CONST_VTBL IShellView3Vtbl* lpVtbl;
   5978 };
   5979 
   5980 #ifdef COBJMACROS
   5981 #ifndef WIDL_C_INLINE_WRAPPERS
   5982 /*** IUnknown methods ***/
   5983 #define IShellView3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5984 #define IShellView3_AddRef(This) (This)->lpVtbl->AddRef(This)
   5985 #define IShellView3_Release(This) (This)->lpVtbl->Release(This)
   5986 /*** IOleWindow methods ***/
   5987 #define IShellView3_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   5988 #define IShellView3_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   5989 /*** IShellView methods ***/
   5990 #define IShellView3_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
   5991 #define IShellView3_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
   5992 #define IShellView3_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
   5993 #define IShellView3_Refresh(This) (This)->lpVtbl->Refresh(This)
   5994 #define IShellView3_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
   5995 #define IShellView3_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
   5996 #define IShellView3_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
   5997 #define IShellView3_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
   5998 #define IShellView3_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
   5999 #define IShellView3_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
   6000 #define IShellView3_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
   6001 /*** IShellView2 methods ***/
   6002 #define IShellView3_GetView(This,pvid,uView) (This)->lpVtbl->GetView(This,pvid,uView)
   6003 #define IShellView3_CreateViewWindow2(This,lpParams) (This)->lpVtbl->CreateViewWindow2(This,lpParams)
   6004 #define IShellView3_HandleRename(This,pidlNew) (This)->lpVtbl->HandleRename(This,pidlNew)
   6005 #define IShellView3_SelectAndPositionItem(This,pidlItem,uFlags,ppt) (This)->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt)
   6006 /*** IShellView3 methods ***/
   6007 #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)
   6008 #else
   6009 /*** IUnknown methods ***/
   6010 static inline HRESULT IShellView3_QueryInterface(IShellView3* This,REFIID riid,void **ppvObject) {
   6011     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6012 }
   6013 static inline ULONG IShellView3_AddRef(IShellView3* This) {
   6014     return This->lpVtbl->AddRef(This);
   6015 }
   6016 static inline ULONG IShellView3_Release(IShellView3* This) {
   6017     return This->lpVtbl->Release(This);
   6018 }
   6019 /*** IOleWindow methods ***/
   6020 static inline HRESULT IShellView3_GetWindow(IShellView3* This,HWND *phwnd) {
   6021     return This->lpVtbl->GetWindow(This,phwnd);
   6022 }
   6023 static inline HRESULT IShellView3_ContextSensitiveHelp(IShellView3* This,WINBOOL fEnterMode) {
   6024     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   6025 }
   6026 /*** IShellView methods ***/
   6027 static inline HRESULT IShellView3_TranslateAccelerator(IShellView3* This,MSG *pmsg) {
   6028     return This->lpVtbl->TranslateAccelerator(This,pmsg);
   6029 }
   6030 static inline HRESULT IShellView3_EnableModeless(IShellView3* This,WINBOOL fEnable) {
   6031     return This->lpVtbl->EnableModeless(This,fEnable);
   6032 }
   6033 static inline HRESULT IShellView3_UIActivate(IShellView3* This,UINT uState) {
   6034     return This->lpVtbl->UIActivate(This,uState);
   6035 }
   6036 static inline HRESULT IShellView3_Refresh(IShellView3* This) {
   6037     return This->lpVtbl->Refresh(This);
   6038 }
   6039 static inline HRESULT IShellView3_CreateViewWindow(IShellView3* This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd) {
   6040     return This->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd);
   6041 }
   6042 static inline HRESULT IShellView3_DestroyViewWindow(IShellView3* This) {
   6043     return This->lpVtbl->DestroyViewWindow(This);
   6044 }
   6045 static inline HRESULT IShellView3_GetCurrentInfo(IShellView3* This,LPFOLDERSETTINGS pfs) {
   6046     return This->lpVtbl->GetCurrentInfo(This,pfs);
   6047 }
   6048 static inline HRESULT IShellView3_AddPropertySheetPages(IShellView3* This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam) {
   6049     return This->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam);
   6050 }
   6051 static inline HRESULT IShellView3_SaveViewState(IShellView3* This) {
   6052     return This->lpVtbl->SaveViewState(This);
   6053 }
   6054 static inline HRESULT IShellView3_SelectItem(IShellView3* This,PCUITEMID_CHILD pidlItem,SVSIF uFlags) {
   6055     return This->lpVtbl->SelectItem(This,pidlItem,uFlags);
   6056 }
   6057 static inline HRESULT IShellView3_GetItemObject(IShellView3* This,UINT uItem,REFIID riid,void **ppv) {
   6058     return This->lpVtbl->GetItemObject(This,uItem,riid,ppv);
   6059 }
   6060 /*** IShellView2 methods ***/
   6061 static inline HRESULT IShellView3_GetView(IShellView3* This,SHELLVIEWID *pvid,ULONG uView) {
   6062     return This->lpVtbl->GetView(This,pvid,uView);
   6063 }
   6064 static inline HRESULT IShellView3_CreateViewWindow2(IShellView3* This,LPSV2CVW2_PARAMS lpParams) {
   6065     return This->lpVtbl->CreateViewWindow2(This,lpParams);
   6066 }
   6067 static inline HRESULT IShellView3_HandleRename(IShellView3* This,PCUITEMID_CHILD pidlNew) {
   6068     return This->lpVtbl->HandleRename(This,pidlNew);
   6069 }
   6070 static inline HRESULT IShellView3_SelectAndPositionItem(IShellView3* This,PCUITEMID_CHILD pidlItem,UINT uFlags,POINT *ppt) {
   6071     return This->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt);
   6072 }
   6073 /*** IShellView3 methods ***/
   6074 static inline 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) {
   6075     return This->lpVtbl->CreateViewWindow3(This,psbOwner,psvPrev,dwViewFlags,dwMask,dwFlags,fvMode,pvid,prcView,phwndView);
   6076 }
   6077 #endif
   6078 #endif
   6079 
   6080 #endif
   6081 
   6082 
   6083 #endif  /* __IShellView3_INTERFACE_DEFINED__ */
   6084 
   6085 #endif
   6086 #ifdef _FIX_ENABLEMODELESS_CONFLICT
   6087 #undef EnableModeless
   6088 #endif
   6089 
   6090 /*****************************************************************************
   6091  * IFolderView interface
   6092  */
   6093 #ifndef __IFolderView_INTERFACE_DEFINED__
   6094 #define __IFolderView_INTERFACE_DEFINED__
   6095 
   6096 DEFINE_GUID(IID_IFolderView, 0xcde725b0, 0xccc9, 0x4519, 0x91,0x7e, 0x32,0x5d,0x72,0xfa,0xb4,0xce);
   6097 #if defined(__cplusplus) && !defined(CINTERFACE)
   6098 MIDL_INTERFACE("cde725b0-ccc9-4519-917e-325d72fab4ce")
   6099 IFolderView : public IUnknown
   6100 {
   6101     virtual HRESULT STDMETHODCALLTYPE GetCurrentViewMode(
   6102         UINT *pViewMode) = 0;
   6103 
   6104     virtual HRESULT STDMETHODCALLTYPE SetCurrentViewMode(
   6105         UINT ViewMode) = 0;
   6106 
   6107     virtual HRESULT STDMETHODCALLTYPE GetFolder(
   6108         REFIID riid,
   6109         void **ppv) = 0;
   6110 
   6111     virtual HRESULT STDMETHODCALLTYPE Item(
   6112         int iItemIndex,
   6113         PITEMID_CHILD *ppidl) = 0;
   6114 
   6115     virtual HRESULT STDMETHODCALLTYPE ItemCount(
   6116         UINT uFlags,
   6117         int *pcItems) = 0;
   6118 
   6119     virtual HRESULT STDMETHODCALLTYPE Items(
   6120         UINT uFlags,
   6121         REFIID riid,
   6122         void **ppv) = 0;
   6123 
   6124     virtual HRESULT STDMETHODCALLTYPE GetSelectionMarkedItem(
   6125         int *piItem) = 0;
   6126 
   6127     virtual HRESULT STDMETHODCALLTYPE GetFocusedItem(
   6128         int *piItem) = 0;
   6129 
   6130     virtual HRESULT STDMETHODCALLTYPE GetItemPosition(
   6131         PCUITEMID_CHILD pidl,
   6132         POINT *ppt) = 0;
   6133 
   6134     virtual HRESULT STDMETHODCALLTYPE GetSpacing(
   6135         POINT *ppt) = 0;
   6136 
   6137     virtual HRESULT STDMETHODCALLTYPE GetDefaultSpacing(
   6138         POINT *ppt) = 0;
   6139 
   6140     virtual HRESULT STDMETHODCALLTYPE GetAutoArrange(
   6141         ) = 0;
   6142 
   6143     virtual HRESULT STDMETHODCALLTYPE SelectItem(
   6144         int iItem,
   6145         DWORD dwFlags) = 0;
   6146 
   6147     virtual HRESULT STDMETHODCALLTYPE SelectAndPositionItems(
   6148         UINT cidl,
   6149         PCUITEMID_CHILD_ARRAY apidl,
   6150         POINT *apt,
   6151         DWORD dwFlags) = 0;
   6152 
   6153 };
   6154 #ifdef __CRT_UUID_DECL
   6155 __CRT_UUID_DECL(IFolderView, 0xcde725b0, 0xccc9, 0x4519, 0x91,0x7e, 0x32,0x5d,0x72,0xfa,0xb4,0xce)
   6156 #endif
   6157 #else
   6158 typedef struct IFolderViewVtbl {
   6159     BEGIN_INTERFACE
   6160 
   6161     /*** IUnknown methods ***/
   6162     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6163         IFolderView *This,
   6164         REFIID riid,
   6165         void **ppvObject);
   6166 
   6167     ULONG (STDMETHODCALLTYPE *AddRef)(
   6168         IFolderView *This);
   6169 
   6170     ULONG (STDMETHODCALLTYPE *Release)(
   6171         IFolderView *This);
   6172 
   6173     /*** IFolderView methods ***/
   6174     HRESULT (STDMETHODCALLTYPE *GetCurrentViewMode)(
   6175         IFolderView *This,
   6176         UINT *pViewMode);
   6177 
   6178     HRESULT (STDMETHODCALLTYPE *SetCurrentViewMode)(
   6179         IFolderView *This,
   6180         UINT ViewMode);
   6181 
   6182     HRESULT (STDMETHODCALLTYPE *GetFolder)(
   6183         IFolderView *This,
   6184         REFIID riid,
   6185         void **ppv);
   6186 
   6187     HRESULT (STDMETHODCALLTYPE *Item)(
   6188         IFolderView *This,
   6189         int iItemIndex,
   6190         PITEMID_CHILD *ppidl);
   6191 
   6192     HRESULT (STDMETHODCALLTYPE *ItemCount)(
   6193         IFolderView *This,
   6194         UINT uFlags,
   6195         int *pcItems);
   6196 
   6197     HRESULT (STDMETHODCALLTYPE *Items)(
   6198         IFolderView *This,
   6199         UINT uFlags,
   6200         REFIID riid,
   6201         void **ppv);
   6202 
   6203     HRESULT (STDMETHODCALLTYPE *GetSelectionMarkedItem)(
   6204         IFolderView *This,
   6205         int *piItem);
   6206 
   6207     HRESULT (STDMETHODCALLTYPE *GetFocusedItem)(
   6208         IFolderView *This,
   6209         int *piItem);
   6210 
   6211     HRESULT (STDMETHODCALLTYPE *GetItemPosition)(
   6212         IFolderView *This,
   6213         PCUITEMID_CHILD pidl,
   6214         POINT *ppt);
   6215 
   6216     HRESULT (STDMETHODCALLTYPE *GetSpacing)(
   6217         IFolderView *This,
   6218         POINT *ppt);
   6219 
   6220     HRESULT (STDMETHODCALLTYPE *GetDefaultSpacing)(
   6221         IFolderView *This,
   6222         POINT *ppt);
   6223 
   6224     HRESULT (STDMETHODCALLTYPE *GetAutoArrange)(
   6225         IFolderView *This);
   6226 
   6227     HRESULT (STDMETHODCALLTYPE *SelectItem)(
   6228         IFolderView *This,
   6229         int iItem,
   6230         DWORD dwFlags);
   6231 
   6232     HRESULT (STDMETHODCALLTYPE *SelectAndPositionItems)(
   6233         IFolderView *This,
   6234         UINT cidl,
   6235         PCUITEMID_CHILD_ARRAY apidl,
   6236         POINT *apt,
   6237         DWORD dwFlags);
   6238 
   6239     END_INTERFACE
   6240 } IFolderViewVtbl;
   6241 
   6242 interface IFolderView {
   6243     CONST_VTBL IFolderViewVtbl* lpVtbl;
   6244 };
   6245 
   6246 #ifdef COBJMACROS
   6247 #ifndef WIDL_C_INLINE_WRAPPERS
   6248 /*** IUnknown methods ***/
   6249 #define IFolderView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6250 #define IFolderView_AddRef(This) (This)->lpVtbl->AddRef(This)
   6251 #define IFolderView_Release(This) (This)->lpVtbl->Release(This)
   6252 /*** IFolderView methods ***/
   6253 #define IFolderView_GetCurrentViewMode(This,pViewMode) (This)->lpVtbl->GetCurrentViewMode(This,pViewMode)
   6254 #define IFolderView_SetCurrentViewMode(This,ViewMode) (This)->lpVtbl->SetCurrentViewMode(This,ViewMode)
   6255 #define IFolderView_GetFolder(This,riid,ppv) (This)->lpVtbl->GetFolder(This,riid,ppv)
   6256 #define IFolderView_Item(This,iItemIndex,ppidl) (This)->lpVtbl->Item(This,iItemIndex,ppidl)
   6257 #define IFolderView_ItemCount(This,uFlags,pcItems) (This)->lpVtbl->ItemCount(This,uFlags,pcItems)
   6258 #define IFolderView_Items(This,uFlags,riid,ppv) (This)->lpVtbl->Items(This,uFlags,riid,ppv)
   6259 #define IFolderView_GetSelectionMarkedItem(This,piItem) (This)->lpVtbl->GetSelectionMarkedItem(This,piItem)
   6260 #define IFolderView_GetFocusedItem(This,piItem) (This)->lpVtbl->GetFocusedItem(This,piItem)
   6261 #define IFolderView_GetItemPosition(This,pidl,ppt) (This)->lpVtbl->GetItemPosition(This,pidl,ppt)
   6262 #define IFolderView_GetSpacing(This,ppt) (This)->lpVtbl->GetSpacing(This,ppt)
   6263 #define IFolderView_GetDefaultSpacing(This,ppt) (This)->lpVtbl->GetDefaultSpacing(This,ppt)
   6264 #define IFolderView_GetAutoArrange(This) (This)->lpVtbl->GetAutoArrange(This)
   6265 #define IFolderView_SelectItem(This,iItem,dwFlags) (This)->lpVtbl->SelectItem(This,iItem,dwFlags)
   6266 #define IFolderView_SelectAndPositionItems(This,cidl,apidl,apt,dwFlags) (This)->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags)
   6267 #else
   6268 /*** IUnknown methods ***/
   6269 static inline HRESULT IFolderView_QueryInterface(IFolderView* This,REFIID riid,void **ppvObject) {
   6270     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6271 }
   6272 static inline ULONG IFolderView_AddRef(IFolderView* This) {
   6273     return This->lpVtbl->AddRef(This);
   6274 }
   6275 static inline ULONG IFolderView_Release(IFolderView* This) {
   6276     return This->lpVtbl->Release(This);
   6277 }
   6278 /*** IFolderView methods ***/
   6279 static inline HRESULT IFolderView_GetCurrentViewMode(IFolderView* This,UINT *pViewMode) {
   6280     return This->lpVtbl->GetCurrentViewMode(This,pViewMode);
   6281 }
   6282 static inline HRESULT IFolderView_SetCurrentViewMode(IFolderView* This,UINT ViewMode) {
   6283     return This->lpVtbl->SetCurrentViewMode(This,ViewMode);
   6284 }
   6285 static inline HRESULT IFolderView_GetFolder(IFolderView* This,REFIID riid,void **ppv) {
   6286     return This->lpVtbl->GetFolder(This,riid,ppv);
   6287 }
   6288 static inline HRESULT IFolderView_Item(IFolderView* This,int iItemIndex,PITEMID_CHILD *ppidl) {
   6289     return This->lpVtbl->Item(This,iItemIndex,ppidl);
   6290 }
   6291 static inline HRESULT IFolderView_ItemCount(IFolderView* This,UINT uFlags,int *pcItems) {
   6292     return This->lpVtbl->ItemCount(This,uFlags,pcItems);
   6293 }
   6294 static inline HRESULT IFolderView_Items(IFolderView* This,UINT uFlags,REFIID riid,void **ppv) {
   6295     return This->lpVtbl->Items(This,uFlags,riid,ppv);
   6296 }
   6297 static inline HRESULT IFolderView_GetSelectionMarkedItem(IFolderView* This,int *piItem) {
   6298     return This->lpVtbl->GetSelectionMarkedItem(This,piItem);
   6299 }
   6300 static inline HRESULT IFolderView_GetFocusedItem(IFolderView* This,int *piItem) {
   6301     return This->lpVtbl->GetFocusedItem(This,piItem);
   6302 }
   6303 static inline HRESULT IFolderView_GetItemPosition(IFolderView* This,PCUITEMID_CHILD pidl,POINT *ppt) {
   6304     return This->lpVtbl->GetItemPosition(This,pidl,ppt);
   6305 }
   6306 static inline HRESULT IFolderView_GetSpacing(IFolderView* This,POINT *ppt) {
   6307     return This->lpVtbl->GetSpacing(This,ppt);
   6308 }
   6309 static inline HRESULT IFolderView_GetDefaultSpacing(IFolderView* This,POINT *ppt) {
   6310     return This->lpVtbl->GetDefaultSpacing(This,ppt);
   6311 }
   6312 static inline HRESULT IFolderView_GetAutoArrange(IFolderView* This) {
   6313     return This->lpVtbl->GetAutoArrange(This);
   6314 }
   6315 static inline HRESULT IFolderView_SelectItem(IFolderView* This,int iItem,DWORD dwFlags) {
   6316     return This->lpVtbl->SelectItem(This,iItem,dwFlags);
   6317 }
   6318 static inline HRESULT IFolderView_SelectAndPositionItems(IFolderView* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,POINT *apt,DWORD dwFlags) {
   6319     return This->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags);
   6320 }
   6321 #endif
   6322 #endif
   6323 
   6324 #endif
   6325 
   6326 
   6327 #endif  /* __IFolderView_INTERFACE_DEFINED__ */
   6328 
   6329 
   6330 #define SID_SFolderView IID_IFolderView
   6331 
   6332 #if NTDDI_VERSION >= NTDDI_WIN7
   6333 /*****************************************************************************
   6334  * ISearchBoxInfo interface
   6335  */
   6336 #ifndef __ISearchBoxInfo_INTERFACE_DEFINED__
   6337 #define __ISearchBoxInfo_INTERFACE_DEFINED__
   6338 
   6339 DEFINE_GUID(IID_ISearchBoxInfo, 0x6af6e03f, 0xd664, 0x4ef4, 0x96,0x26, 0xf7,0xe0,0xed,0x36,0x75,0x5e);
   6340 #if defined(__cplusplus) && !defined(CINTERFACE)
   6341 MIDL_INTERFACE("6af6e03f-d664-4ef4-9626-f7e0ed36755e")
   6342 ISearchBoxInfo : public IUnknown
   6343 {
   6344     virtual HRESULT STDMETHODCALLTYPE GetCondition(
   6345         REFIID riid,
   6346         void **ppv) = 0;
   6347 
   6348     virtual HRESULT STDMETHODCALLTYPE GetText(
   6349         LPWSTR *ppsz) = 0;
   6350 
   6351 };
   6352 #ifdef __CRT_UUID_DECL
   6353 __CRT_UUID_DECL(ISearchBoxInfo, 0x6af6e03f, 0xd664, 0x4ef4, 0x96,0x26, 0xf7,0xe0,0xed,0x36,0x75,0x5e)
   6354 #endif
   6355 #else
   6356 typedef struct ISearchBoxInfoVtbl {
   6357     BEGIN_INTERFACE
   6358 
   6359     /*** IUnknown methods ***/
   6360     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6361         ISearchBoxInfo *This,
   6362         REFIID riid,
   6363         void **ppvObject);
   6364 
   6365     ULONG (STDMETHODCALLTYPE *AddRef)(
   6366         ISearchBoxInfo *This);
   6367 
   6368     ULONG (STDMETHODCALLTYPE *Release)(
   6369         ISearchBoxInfo *This);
   6370 
   6371     /*** ISearchBoxInfo methods ***/
   6372     HRESULT (STDMETHODCALLTYPE *GetCondition)(
   6373         ISearchBoxInfo *This,
   6374         REFIID riid,
   6375         void **ppv);
   6376 
   6377     HRESULT (STDMETHODCALLTYPE *GetText)(
   6378         ISearchBoxInfo *This,
   6379         LPWSTR *ppsz);
   6380 
   6381     END_INTERFACE
   6382 } ISearchBoxInfoVtbl;
   6383 
   6384 interface ISearchBoxInfo {
   6385     CONST_VTBL ISearchBoxInfoVtbl* lpVtbl;
   6386 };
   6387 
   6388 #ifdef COBJMACROS
   6389 #ifndef WIDL_C_INLINE_WRAPPERS
   6390 /*** IUnknown methods ***/
   6391 #define ISearchBoxInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6392 #define ISearchBoxInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   6393 #define ISearchBoxInfo_Release(This) (This)->lpVtbl->Release(This)
   6394 /*** ISearchBoxInfo methods ***/
   6395 #define ISearchBoxInfo_GetCondition(This,riid,ppv) (This)->lpVtbl->GetCondition(This,riid,ppv)
   6396 #define ISearchBoxInfo_GetText(This,ppsz) (This)->lpVtbl->GetText(This,ppsz)
   6397 #else
   6398 /*** IUnknown methods ***/
   6399 static inline HRESULT ISearchBoxInfo_QueryInterface(ISearchBoxInfo* This,REFIID riid,void **ppvObject) {
   6400     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6401 }
   6402 static inline ULONG ISearchBoxInfo_AddRef(ISearchBoxInfo* This) {
   6403     return This->lpVtbl->AddRef(This);
   6404 }
   6405 static inline ULONG ISearchBoxInfo_Release(ISearchBoxInfo* This) {
   6406     return This->lpVtbl->Release(This);
   6407 }
   6408 /*** ISearchBoxInfo methods ***/
   6409 static inline HRESULT ISearchBoxInfo_GetCondition(ISearchBoxInfo* This,REFIID riid,void **ppv) {
   6410     return This->lpVtbl->GetCondition(This,riid,ppv);
   6411 }
   6412 static inline HRESULT ISearchBoxInfo_GetText(ISearchBoxInfo* This,LPWSTR *ppsz) {
   6413     return This->lpVtbl->GetText(This,ppsz);
   6414 }
   6415 #endif
   6416 #endif
   6417 
   6418 #endif
   6419 
   6420 
   6421 #endif  /* __ISearchBoxInfo_INTERFACE_DEFINED__ */
   6422 
   6423 #endif
   6424 
   6425 #if NTDDI_VERSION >= NTDDI_VISTA || _WIN32_IE >= _WIN32_IE_IE70
   6426 #ifndef NO_SHOBJIDL_SORTDIRECTION
   6427 enum tagSORTDIRECTION {
   6428     SORT_DESCENDING = -1,
   6429     SORT_ASCENDING = 1
   6430 };
   6431 #endif
   6432 
   6433 typedef int SORTDIRECTION;
   6434 
   6435 typedef struct SORTCOLUMN {
   6436     PROPERTYKEY propkey;
   6437     SORTDIRECTION direction;
   6438 } SORTCOLUMN;
   6439 
   6440 typedef enum FVTEXTTYPE {
   6441     FVST_EMPTYTEXT = 0
   6442 } FVTEXTTYPE;
   6443 
   6444 #ifndef __IShellItemArray_FWD_DEFINED__
   6445 #define __IShellItemArray_FWD_DEFINED__
   6446 typedef interface IShellItemArray IShellItemArray;
   6447 #ifdef __cplusplus
   6448 interface IShellItemArray;
   6449 #endif /* __cplusplus */
   6450 #endif
   6451 
   6452 
   6453 typedef HRESULT DEPRECATED_HRESULT;
   6454 
   6455 #ifdef __cplusplus
   6456 #define DEPRECATED_HRESULT HRESULT
   6457 #endif
   6458 
   6459 /*****************************************************************************
   6460  * IFolderView2 interface
   6461  */
   6462 #ifndef __IFolderView2_INTERFACE_DEFINED__
   6463 #define __IFolderView2_INTERFACE_DEFINED__
   6464 
   6465 DEFINE_GUID(IID_IFolderView2, 0x1af3a467, 0x214f, 0x4298, 0x90,0x8e, 0x06,0xb0,0x3e,0x0b,0x39,0xf9);
   6466 #if defined(__cplusplus) && !defined(CINTERFACE)
   6467 MIDL_INTERFACE("1af3a467-214f-4298-908e-06b03e0b39f9")
   6468 IFolderView2 : public IFolderView
   6469 {
   6470     virtual HRESULT STDMETHODCALLTYPE SetGroupBy(
   6471         REFPROPERTYKEY key,
   6472         WINBOOL fAscending) = 0;
   6473 
   6474     virtual HRESULT STDMETHODCALLTYPE GetGroupBy(
   6475         PROPERTYKEY *pkey,
   6476         WINBOOL *pfAscending) = 0;
   6477 
   6478     virtual HRESULT STDMETHODCALLTYPE SetViewProperty(
   6479         PCUITEMID_CHILD pidl,
   6480         REFPROPERTYKEY propkey,
   6481         REFPROPVARIANT propvar) = 0;
   6482 
   6483     virtual HRESULT STDMETHODCALLTYPE GetViewProperty(
   6484         PCUITEMID_CHILD pidl,
   6485         REFPROPERTYKEY propkey,
   6486         PROPVARIANT *ppropvar) = 0;
   6487 
   6488     virtual HRESULT STDMETHODCALLTYPE SetTileViewProperties(
   6489         PCUITEMID_CHILD pidl,
   6490         LPCWSTR pszPropList) = 0;
   6491 
   6492     virtual HRESULT STDMETHODCALLTYPE SetExtendedTileViewProperties(
   6493         PCUITEMID_CHILD pidl,
   6494         LPCWSTR pszPropList) = 0;
   6495 
   6496     virtual HRESULT STDMETHODCALLTYPE SetText(
   6497         FVTEXTTYPE iType,
   6498         LPCWSTR pwszText) = 0;
   6499 
   6500     virtual HRESULT STDMETHODCALLTYPE SetCurrentFolderFlags(
   6501         DWORD dwMask,
   6502         DWORD dwFlags) = 0;
   6503 
   6504     virtual HRESULT STDMETHODCALLTYPE GetCurrentFolderFlags(
   6505         DWORD *pdwFlags) = 0;
   6506 
   6507     virtual HRESULT STDMETHODCALLTYPE GetSortColumnCount(
   6508         int *pcColumns) = 0;
   6509 
   6510     virtual HRESULT STDMETHODCALLTYPE SetSortColumns(
   6511         const SORTCOLUMN *rgSortColumns,
   6512         int cColumns) = 0;
   6513 
   6514     virtual HRESULT STDMETHODCALLTYPE GetSortColumns(
   6515         SORTCOLUMN *rgSortColumns,
   6516         int cColumns) = 0;
   6517 
   6518     virtual HRESULT STDMETHODCALLTYPE GetItem(
   6519         int iItem,
   6520         REFIID riid,
   6521         void **ppv) = 0;
   6522 
   6523     virtual HRESULT STDMETHODCALLTYPE GetVisibleItem(
   6524         int iStart,
   6525         WINBOOL fPrevious,
   6526         int *piItem) = 0;
   6527 
   6528     virtual HRESULT STDMETHODCALLTYPE GetSelectedItem(
   6529         int iStart,
   6530         int *piItem) = 0;
   6531 
   6532     virtual HRESULT STDMETHODCALLTYPE GetSelection(
   6533         WINBOOL fNoneImpliesFolder,
   6534         IShellItemArray **ppsia) = 0;
   6535 
   6536     virtual HRESULT STDMETHODCALLTYPE GetSelectionState(
   6537         PCUITEMID_CHILD pidl,
   6538         DWORD *pdwFlags) = 0;
   6539 
   6540     virtual HRESULT STDMETHODCALLTYPE InvokeVerbOnSelection(
   6541         LPCSTR pszVerb) = 0;
   6542 
   6543     virtual HRESULT STDMETHODCALLTYPE SetViewModeAndIconSize(
   6544         FOLDERVIEWMODE uViewMode,
   6545         int iImageSize) = 0;
   6546 
   6547     virtual HRESULT STDMETHODCALLTYPE GetViewModeAndIconSize(
   6548         FOLDERVIEWMODE *puViewMode,
   6549         int *piImageSize) = 0;
   6550 
   6551     virtual HRESULT STDMETHODCALLTYPE SetGroupSubsetCount(
   6552         UINT cVisibleRows) = 0;
   6553 
   6554     virtual HRESULT STDMETHODCALLTYPE GetGroupSubsetCount(
   6555         UINT *pcVisibleRows) = 0;
   6556 
   6557     virtual HRESULT STDMETHODCALLTYPE SetRedraw(
   6558         WINBOOL fRedrawOn) = 0;
   6559 
   6560     virtual HRESULT STDMETHODCALLTYPE IsMoveInSameFolder(
   6561         ) = 0;
   6562 
   6563     virtual HRESULT STDMETHODCALLTYPE DoRename(
   6564         ) = 0;
   6565 
   6566 };
   6567 #ifdef __CRT_UUID_DECL
   6568 __CRT_UUID_DECL(IFolderView2, 0x1af3a467, 0x214f, 0x4298, 0x90,0x8e, 0x06,0xb0,0x3e,0x0b,0x39,0xf9)
   6569 #endif
   6570 #else
   6571 typedef struct IFolderView2Vtbl {
   6572     BEGIN_INTERFACE
   6573 
   6574     /*** IUnknown methods ***/
   6575     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6576         IFolderView2 *This,
   6577         REFIID riid,
   6578         void **ppvObject);
   6579 
   6580     ULONG (STDMETHODCALLTYPE *AddRef)(
   6581         IFolderView2 *This);
   6582 
   6583     ULONG (STDMETHODCALLTYPE *Release)(
   6584         IFolderView2 *This);
   6585 
   6586     /*** IFolderView methods ***/
   6587     HRESULT (STDMETHODCALLTYPE *GetCurrentViewMode)(
   6588         IFolderView2 *This,
   6589         UINT *pViewMode);
   6590 
   6591     HRESULT (STDMETHODCALLTYPE *SetCurrentViewMode)(
   6592         IFolderView2 *This,
   6593         UINT ViewMode);
   6594 
   6595     HRESULT (STDMETHODCALLTYPE *GetFolder)(
   6596         IFolderView2 *This,
   6597         REFIID riid,
   6598         void **ppv);
   6599 
   6600     HRESULT (STDMETHODCALLTYPE *Item)(
   6601         IFolderView2 *This,
   6602         int iItemIndex,
   6603         PITEMID_CHILD *ppidl);
   6604 
   6605     HRESULT (STDMETHODCALLTYPE *ItemCount)(
   6606         IFolderView2 *This,
   6607         UINT uFlags,
   6608         int *pcItems);
   6609 
   6610     HRESULT (STDMETHODCALLTYPE *Items)(
   6611         IFolderView2 *This,
   6612         UINT uFlags,
   6613         REFIID riid,
   6614         void **ppv);
   6615 
   6616     HRESULT (STDMETHODCALLTYPE *GetSelectionMarkedItem)(
   6617         IFolderView2 *This,
   6618         int *piItem);
   6619 
   6620     HRESULT (STDMETHODCALLTYPE *GetFocusedItem)(
   6621         IFolderView2 *This,
   6622         int *piItem);
   6623 
   6624     HRESULT (STDMETHODCALLTYPE *GetItemPosition)(
   6625         IFolderView2 *This,
   6626         PCUITEMID_CHILD pidl,
   6627         POINT *ppt);
   6628 
   6629     HRESULT (STDMETHODCALLTYPE *GetSpacing)(
   6630         IFolderView2 *This,
   6631         POINT *ppt);
   6632 
   6633     HRESULT (STDMETHODCALLTYPE *GetDefaultSpacing)(
   6634         IFolderView2 *This,
   6635         POINT *ppt);
   6636 
   6637     HRESULT (STDMETHODCALLTYPE *GetAutoArrange)(
   6638         IFolderView2 *This);
   6639 
   6640     HRESULT (STDMETHODCALLTYPE *SelectItem)(
   6641         IFolderView2 *This,
   6642         int iItem,
   6643         DWORD dwFlags);
   6644 
   6645     HRESULT (STDMETHODCALLTYPE *SelectAndPositionItems)(
   6646         IFolderView2 *This,
   6647         UINT cidl,
   6648         PCUITEMID_CHILD_ARRAY apidl,
   6649         POINT *apt,
   6650         DWORD dwFlags);
   6651 
   6652     /*** IFolderView2 methods ***/
   6653     HRESULT (STDMETHODCALLTYPE *SetGroupBy)(
   6654         IFolderView2 *This,
   6655         REFPROPERTYKEY key,
   6656         WINBOOL fAscending);
   6657 
   6658     HRESULT (STDMETHODCALLTYPE *GetGroupBy)(
   6659         IFolderView2 *This,
   6660         PROPERTYKEY *pkey,
   6661         WINBOOL *pfAscending);
   6662 
   6663     HRESULT (STDMETHODCALLTYPE *SetViewProperty)(
   6664         IFolderView2 *This,
   6665         PCUITEMID_CHILD pidl,
   6666         REFPROPERTYKEY propkey,
   6667         REFPROPVARIANT propvar);
   6668 
   6669     HRESULT (STDMETHODCALLTYPE *GetViewProperty)(
   6670         IFolderView2 *This,
   6671         PCUITEMID_CHILD pidl,
   6672         REFPROPERTYKEY propkey,
   6673         PROPVARIANT *ppropvar);
   6674 
   6675     HRESULT (STDMETHODCALLTYPE *SetTileViewProperties)(
   6676         IFolderView2 *This,
   6677         PCUITEMID_CHILD pidl,
   6678         LPCWSTR pszPropList);
   6679 
   6680     HRESULT (STDMETHODCALLTYPE *SetExtendedTileViewProperties)(
   6681         IFolderView2 *This,
   6682         PCUITEMID_CHILD pidl,
   6683         LPCWSTR pszPropList);
   6684 
   6685     HRESULT (STDMETHODCALLTYPE *SetText)(
   6686         IFolderView2 *This,
   6687         FVTEXTTYPE iType,
   6688         LPCWSTR pwszText);
   6689 
   6690     HRESULT (STDMETHODCALLTYPE *SetCurrentFolderFlags)(
   6691         IFolderView2 *This,
   6692         DWORD dwMask,
   6693         DWORD dwFlags);
   6694 
   6695     HRESULT (STDMETHODCALLTYPE *GetCurrentFolderFlags)(
   6696         IFolderView2 *This,
   6697         DWORD *pdwFlags);
   6698 
   6699     HRESULT (STDMETHODCALLTYPE *GetSortColumnCount)(
   6700         IFolderView2 *This,
   6701         int *pcColumns);
   6702 
   6703     HRESULT (STDMETHODCALLTYPE *SetSortColumns)(
   6704         IFolderView2 *This,
   6705         const SORTCOLUMN *rgSortColumns,
   6706         int cColumns);
   6707 
   6708     HRESULT (STDMETHODCALLTYPE *GetSortColumns)(
   6709         IFolderView2 *This,
   6710         SORTCOLUMN *rgSortColumns,
   6711         int cColumns);
   6712 
   6713     HRESULT (STDMETHODCALLTYPE *GetItem)(
   6714         IFolderView2 *This,
   6715         int iItem,
   6716         REFIID riid,
   6717         void **ppv);
   6718 
   6719     HRESULT (STDMETHODCALLTYPE *GetVisibleItem)(
   6720         IFolderView2 *This,
   6721         int iStart,
   6722         WINBOOL fPrevious,
   6723         int *piItem);
   6724 
   6725     HRESULT (STDMETHODCALLTYPE *GetSelectedItem)(
   6726         IFolderView2 *This,
   6727         int iStart,
   6728         int *piItem);
   6729 
   6730     HRESULT (STDMETHODCALLTYPE *GetSelection)(
   6731         IFolderView2 *This,
   6732         WINBOOL fNoneImpliesFolder,
   6733         IShellItemArray **ppsia);
   6734 
   6735     HRESULT (STDMETHODCALLTYPE *GetSelectionState)(
   6736         IFolderView2 *This,
   6737         PCUITEMID_CHILD pidl,
   6738         DWORD *pdwFlags);
   6739 
   6740     HRESULT (STDMETHODCALLTYPE *InvokeVerbOnSelection)(
   6741         IFolderView2 *This,
   6742         LPCSTR pszVerb);
   6743 
   6744     HRESULT (STDMETHODCALLTYPE *SetViewModeAndIconSize)(
   6745         IFolderView2 *This,
   6746         FOLDERVIEWMODE uViewMode,
   6747         int iImageSize);
   6748 
   6749     HRESULT (STDMETHODCALLTYPE *GetViewModeAndIconSize)(
   6750         IFolderView2 *This,
   6751         FOLDERVIEWMODE *puViewMode,
   6752         int *piImageSize);
   6753 
   6754     HRESULT (STDMETHODCALLTYPE *SetGroupSubsetCount)(
   6755         IFolderView2 *This,
   6756         UINT cVisibleRows);
   6757 
   6758     HRESULT (STDMETHODCALLTYPE *GetGroupSubsetCount)(
   6759         IFolderView2 *This,
   6760         UINT *pcVisibleRows);
   6761 
   6762     HRESULT (STDMETHODCALLTYPE *SetRedraw)(
   6763         IFolderView2 *This,
   6764         WINBOOL fRedrawOn);
   6765 
   6766     HRESULT (STDMETHODCALLTYPE *IsMoveInSameFolder)(
   6767         IFolderView2 *This);
   6768 
   6769     HRESULT (STDMETHODCALLTYPE *DoRename)(
   6770         IFolderView2 *This);
   6771 
   6772     END_INTERFACE
   6773 } IFolderView2Vtbl;
   6774 
   6775 interface IFolderView2 {
   6776     CONST_VTBL IFolderView2Vtbl* lpVtbl;
   6777 };
   6778 
   6779 #ifdef COBJMACROS
   6780 #ifndef WIDL_C_INLINE_WRAPPERS
   6781 /*** IUnknown methods ***/
   6782 #define IFolderView2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6783 #define IFolderView2_AddRef(This) (This)->lpVtbl->AddRef(This)
   6784 #define IFolderView2_Release(This) (This)->lpVtbl->Release(This)
   6785 /*** IFolderView methods ***/
   6786 #define IFolderView2_GetCurrentViewMode(This,pViewMode) (This)->lpVtbl->GetCurrentViewMode(This,pViewMode)
   6787 #define IFolderView2_SetCurrentViewMode(This,ViewMode) (This)->lpVtbl->SetCurrentViewMode(This,ViewMode)
   6788 #define IFolderView2_GetFolder(This,riid,ppv) (This)->lpVtbl->GetFolder(This,riid,ppv)
   6789 #define IFolderView2_Item(This,iItemIndex,ppidl) (This)->lpVtbl->Item(This,iItemIndex,ppidl)
   6790 #define IFolderView2_ItemCount(This,uFlags,pcItems) (This)->lpVtbl->ItemCount(This,uFlags,pcItems)
   6791 #define IFolderView2_Items(This,uFlags,riid,ppv) (This)->lpVtbl->Items(This,uFlags,riid,ppv)
   6792 #define IFolderView2_GetSelectionMarkedItem(This,piItem) (This)->lpVtbl->GetSelectionMarkedItem(This,piItem)
   6793 #define IFolderView2_GetFocusedItem(This,piItem) (This)->lpVtbl->GetFocusedItem(This,piItem)
   6794 #define IFolderView2_GetItemPosition(This,pidl,ppt) (This)->lpVtbl->GetItemPosition(This,pidl,ppt)
   6795 #define IFolderView2_GetSpacing(This,ppt) (This)->lpVtbl->GetSpacing(This,ppt)
   6796 #define IFolderView2_GetDefaultSpacing(This,ppt) (This)->lpVtbl->GetDefaultSpacing(This,ppt)
   6797 #define IFolderView2_GetAutoArrange(This) (This)->lpVtbl->GetAutoArrange(This)
   6798 #define IFolderView2_SelectItem(This,iItem,dwFlags) (This)->lpVtbl->SelectItem(This,iItem,dwFlags)
   6799 #define IFolderView2_SelectAndPositionItems(This,cidl,apidl,apt,dwFlags) (This)->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags)
   6800 /*** IFolderView2 methods ***/
   6801 #define IFolderView2_SetGroupBy(This,key,fAscending) (This)->lpVtbl->SetGroupBy(This,key,fAscending)
   6802 #define IFolderView2_GetGroupBy(This,pkey,pfAscending) (This)->lpVtbl->GetGroupBy(This,pkey,pfAscending)
   6803 #define IFolderView2_SetViewProperty(This,pidl,propkey,propvar) (This)->lpVtbl->SetViewProperty(This,pidl,propkey,propvar)
   6804 #define IFolderView2_GetViewProperty(This,pidl,propkey,ppropvar) (This)->lpVtbl->GetViewProperty(This,pidl,propkey,ppropvar)
   6805 #define IFolderView2_SetTileViewProperties(This,pidl,pszPropList) (This)->lpVtbl->SetTileViewProperties(This,pidl,pszPropList)
   6806 #define IFolderView2_SetExtendedTileViewProperties(This,pidl,pszPropList) (This)->lpVtbl->SetExtendedTileViewProperties(This,pidl,pszPropList)
   6807 #define IFolderView2_SetText(This,iType,pwszText) (This)->lpVtbl->SetText(This,iType,pwszText)
   6808 #define IFolderView2_SetCurrentFolderFlags(This,dwMask,dwFlags) (This)->lpVtbl->SetCurrentFolderFlags(This,dwMask,dwFlags)
   6809 #define IFolderView2_GetCurrentFolderFlags(This,pdwFlags) (This)->lpVtbl->GetCurrentFolderFlags(This,pdwFlags)
   6810 #define IFolderView2_GetSortColumnCount(This,pcColumns) (This)->lpVtbl->GetSortColumnCount(This,pcColumns)
   6811 #define IFolderView2_SetSortColumns(This,rgSortColumns,cColumns) (This)->lpVtbl->SetSortColumns(This,rgSortColumns,cColumns)
   6812 #define IFolderView2_GetSortColumns(This,rgSortColumns,cColumns) (This)->lpVtbl->GetSortColumns(This,rgSortColumns,cColumns)
   6813 #define IFolderView2_GetItem(This,iItem,riid,ppv) (This)->lpVtbl->GetItem(This,iItem,riid,ppv)
   6814 #define IFolderView2_GetVisibleItem(This,iStart,fPrevious,piItem) (This)->lpVtbl->GetVisibleItem(This,iStart,fPrevious,piItem)
   6815 #define IFolderView2_GetSelectedItem(This,iStart,piItem) (This)->lpVtbl->GetSelectedItem(This,iStart,piItem)
   6816 #define IFolderView2_GetSelection(This,fNoneImpliesFolder,ppsia) (This)->lpVtbl->GetSelection(This,fNoneImpliesFolder,ppsia)
   6817 #define IFolderView2_GetSelectionState(This,pidl,pdwFlags) (This)->lpVtbl->GetSelectionState(This,pidl,pdwFlags)
   6818 #define IFolderView2_InvokeVerbOnSelection(This,pszVerb) (This)->lpVtbl->InvokeVerbOnSelection(This,pszVerb)
   6819 #define IFolderView2_SetViewModeAndIconSize(This,uViewMode,iImageSize) (This)->lpVtbl->SetViewModeAndIconSize(This,uViewMode,iImageSize)
   6820 #define IFolderView2_GetViewModeAndIconSize(This,puViewMode,piImageSize) (This)->lpVtbl->GetViewModeAndIconSize(This,puViewMode,piImageSize)
   6821 #define IFolderView2_SetGroupSubsetCount(This,cVisibleRows) (This)->lpVtbl->SetGroupSubsetCount(This,cVisibleRows)
   6822 #define IFolderView2_GetGroupSubsetCount(This,pcVisibleRows) (This)->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows)
   6823 #define IFolderView2_SetRedraw(This,fRedrawOn) (This)->lpVtbl->SetRedraw(This,fRedrawOn)
   6824 #define IFolderView2_IsMoveInSameFolder(This) (This)->lpVtbl->IsMoveInSameFolder(This)
   6825 #define IFolderView2_DoRename(This) (This)->lpVtbl->DoRename(This)
   6826 #else
   6827 /*** IUnknown methods ***/
   6828 static inline HRESULT IFolderView2_QueryInterface(IFolderView2* This,REFIID riid,void **ppvObject) {
   6829     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6830 }
   6831 static inline ULONG IFolderView2_AddRef(IFolderView2* This) {
   6832     return This->lpVtbl->AddRef(This);
   6833 }
   6834 static inline ULONG IFolderView2_Release(IFolderView2* This) {
   6835     return This->lpVtbl->Release(This);
   6836 }
   6837 /*** IFolderView methods ***/
   6838 static inline HRESULT IFolderView2_GetCurrentViewMode(IFolderView2* This,UINT *pViewMode) {
   6839     return This->lpVtbl->GetCurrentViewMode(This,pViewMode);
   6840 }
   6841 static inline HRESULT IFolderView2_SetCurrentViewMode(IFolderView2* This,UINT ViewMode) {
   6842     return This->lpVtbl->SetCurrentViewMode(This,ViewMode);
   6843 }
   6844 static inline HRESULT IFolderView2_GetFolder(IFolderView2* This,REFIID riid,void **ppv) {
   6845     return This->lpVtbl->GetFolder(This,riid,ppv);
   6846 }
   6847 static inline HRESULT IFolderView2_Item(IFolderView2* This,int iItemIndex,PITEMID_CHILD *ppidl) {
   6848     return This->lpVtbl->Item(This,iItemIndex,ppidl);
   6849 }
   6850 static inline HRESULT IFolderView2_ItemCount(IFolderView2* This,UINT uFlags,int *pcItems) {
   6851     return This->lpVtbl->ItemCount(This,uFlags,pcItems);
   6852 }
   6853 static inline HRESULT IFolderView2_Items(IFolderView2* This,UINT uFlags,REFIID riid,void **ppv) {
   6854     return This->lpVtbl->Items(This,uFlags,riid,ppv);
   6855 }
   6856 static inline HRESULT IFolderView2_GetSelectionMarkedItem(IFolderView2* This,int *piItem) {
   6857     return This->lpVtbl->GetSelectionMarkedItem(This,piItem);
   6858 }
   6859 static inline HRESULT IFolderView2_GetFocusedItem(IFolderView2* This,int *piItem) {
   6860     return This->lpVtbl->GetFocusedItem(This,piItem);
   6861 }
   6862 static inline HRESULT IFolderView2_GetItemPosition(IFolderView2* This,PCUITEMID_CHILD pidl,POINT *ppt) {
   6863     return This->lpVtbl->GetItemPosition(This,pidl,ppt);
   6864 }
   6865 static inline HRESULT IFolderView2_GetSpacing(IFolderView2* This,POINT *ppt) {
   6866     return This->lpVtbl->GetSpacing(This,ppt);
   6867 }
   6868 static inline HRESULT IFolderView2_GetDefaultSpacing(IFolderView2* This,POINT *ppt) {
   6869     return This->lpVtbl->GetDefaultSpacing(This,ppt);
   6870 }
   6871 static inline HRESULT IFolderView2_GetAutoArrange(IFolderView2* This) {
   6872     return This->lpVtbl->GetAutoArrange(This);
   6873 }
   6874 static inline HRESULT IFolderView2_SelectItem(IFolderView2* This,int iItem,DWORD dwFlags) {
   6875     return This->lpVtbl->SelectItem(This,iItem,dwFlags);
   6876 }
   6877 static inline HRESULT IFolderView2_SelectAndPositionItems(IFolderView2* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,POINT *apt,DWORD dwFlags) {
   6878     return This->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags);
   6879 }
   6880 /*** IFolderView2 methods ***/
   6881 static inline HRESULT IFolderView2_SetGroupBy(IFolderView2* This,REFPROPERTYKEY key,WINBOOL fAscending) {
   6882     return This->lpVtbl->SetGroupBy(This,key,fAscending);
   6883 }
   6884 static inline HRESULT IFolderView2_GetGroupBy(IFolderView2* This,PROPERTYKEY *pkey,WINBOOL *pfAscending) {
   6885     return This->lpVtbl->GetGroupBy(This,pkey,pfAscending);
   6886 }
   6887 static inline HRESULT IFolderView2_SetViewProperty(IFolderView2* This,PCUITEMID_CHILD pidl,REFPROPERTYKEY propkey,REFPROPVARIANT propvar) {
   6888     return This->lpVtbl->SetViewProperty(This,pidl,propkey,propvar);
   6889 }
   6890 static inline HRESULT IFolderView2_GetViewProperty(IFolderView2* This,PCUITEMID_CHILD pidl,REFPROPERTYKEY propkey,PROPVARIANT *ppropvar) {
   6891     return This->lpVtbl->GetViewProperty(This,pidl,propkey,ppropvar);
   6892 }
   6893 static inline HRESULT IFolderView2_SetTileViewProperties(IFolderView2* This,PCUITEMID_CHILD pidl,LPCWSTR pszPropList) {
   6894     return This->lpVtbl->SetTileViewProperties(This,pidl,pszPropList);
   6895 }
   6896 static inline HRESULT IFolderView2_SetExtendedTileViewProperties(IFolderView2* This,PCUITEMID_CHILD pidl,LPCWSTR pszPropList) {
   6897     return This->lpVtbl->SetExtendedTileViewProperties(This,pidl,pszPropList);
   6898 }
   6899 static inline HRESULT IFolderView2_SetText(IFolderView2* This,FVTEXTTYPE iType,LPCWSTR pwszText) {
   6900     return This->lpVtbl->SetText(This,iType,pwszText);
   6901 }
   6902 static inline HRESULT IFolderView2_SetCurrentFolderFlags(IFolderView2* This,DWORD dwMask,DWORD dwFlags) {
   6903     return This->lpVtbl->SetCurrentFolderFlags(This,dwMask,dwFlags);
   6904 }
   6905 static inline HRESULT IFolderView2_GetCurrentFolderFlags(IFolderView2* This,DWORD *pdwFlags) {
   6906     return This->lpVtbl->GetCurrentFolderFlags(This,pdwFlags);
   6907 }
   6908 static inline HRESULT IFolderView2_GetSortColumnCount(IFolderView2* This,int *pcColumns) {
   6909     return This->lpVtbl->GetSortColumnCount(This,pcColumns);
   6910 }
   6911 static inline HRESULT IFolderView2_SetSortColumns(IFolderView2* This,const SORTCOLUMN *rgSortColumns,int cColumns) {
   6912     return This->lpVtbl->SetSortColumns(This,rgSortColumns,cColumns);
   6913 }
   6914 static inline HRESULT IFolderView2_GetSortColumns(IFolderView2* This,SORTCOLUMN *rgSortColumns,int cColumns) {
   6915     return This->lpVtbl->GetSortColumns(This,rgSortColumns,cColumns);
   6916 }
   6917 static inline HRESULT IFolderView2_GetItem(IFolderView2* This,int iItem,REFIID riid,void **ppv) {
   6918     return This->lpVtbl->GetItem(This,iItem,riid,ppv);
   6919 }
   6920 static inline HRESULT IFolderView2_GetVisibleItem(IFolderView2* This,int iStart,WINBOOL fPrevious,int *piItem) {
   6921     return This->lpVtbl->GetVisibleItem(This,iStart,fPrevious,piItem);
   6922 }
   6923 static inline HRESULT IFolderView2_GetSelectedItem(IFolderView2* This,int iStart,int *piItem) {
   6924     return This->lpVtbl->GetSelectedItem(This,iStart,piItem);
   6925 }
   6926 static inline HRESULT IFolderView2_GetSelection(IFolderView2* This,WINBOOL fNoneImpliesFolder,IShellItemArray **ppsia) {
   6927     return This->lpVtbl->GetSelection(This,fNoneImpliesFolder,ppsia);
   6928 }
   6929 static inline HRESULT IFolderView2_GetSelectionState(IFolderView2* This,PCUITEMID_CHILD pidl,DWORD *pdwFlags) {
   6930     return This->lpVtbl->GetSelectionState(This,pidl,pdwFlags);
   6931 }
   6932 static inline HRESULT IFolderView2_InvokeVerbOnSelection(IFolderView2* This,LPCSTR pszVerb) {
   6933     return This->lpVtbl->InvokeVerbOnSelection(This,pszVerb);
   6934 }
   6935 static inline HRESULT IFolderView2_SetViewModeAndIconSize(IFolderView2* This,FOLDERVIEWMODE uViewMode,int iImageSize) {
   6936     return This->lpVtbl->SetViewModeAndIconSize(This,uViewMode,iImageSize);
   6937 }
   6938 static inline HRESULT IFolderView2_GetViewModeAndIconSize(IFolderView2* This,FOLDERVIEWMODE *puViewMode,int *piImageSize) {
   6939     return This->lpVtbl->GetViewModeAndIconSize(This,puViewMode,piImageSize);
   6940 }
   6941 static inline HRESULT IFolderView2_SetGroupSubsetCount(IFolderView2* This,UINT cVisibleRows) {
   6942     return This->lpVtbl->SetGroupSubsetCount(This,cVisibleRows);
   6943 }
   6944 static inline HRESULT IFolderView2_GetGroupSubsetCount(IFolderView2* This,UINT *pcVisibleRows) {
   6945     return This->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows);
   6946 }
   6947 static inline HRESULT IFolderView2_SetRedraw(IFolderView2* This,WINBOOL fRedrawOn) {
   6948     return This->lpVtbl->SetRedraw(This,fRedrawOn);
   6949 }
   6950 static inline HRESULT IFolderView2_IsMoveInSameFolder(IFolderView2* This) {
   6951     return This->lpVtbl->IsMoveInSameFolder(This);
   6952 }
   6953 static inline HRESULT IFolderView2_DoRename(IFolderView2* This) {
   6954     return This->lpVtbl->DoRename(This);
   6955 }
   6956 #endif
   6957 #endif
   6958 
   6959 #endif
   6960 
   6961 HRESULT STDMETHODCALLTYPE IFolderView2_RemoteGetGroupBy_Proxy(
   6962     IFolderView2* This,
   6963     PROPERTYKEY *pkey,
   6964     WINBOOL *pfAscending);
   6965 void __RPC_STUB IFolderView2_RemoteGetGroupBy_Stub(
   6966     IRpcStubBuffer* This,
   6967     IRpcChannelBuffer* pRpcChannelBuffer,
   6968     PRPC_MESSAGE pRpcMessage,
   6969     DWORD* pdwStubPhase);
   6970 HRESULT CALLBACK IFolderView2_GetGroupBy_Proxy(
   6971     IFolderView2* This,
   6972     PROPERTYKEY *pkey,
   6973     WINBOOL *pfAscending);
   6974 HRESULT __RPC_STUB IFolderView2_GetGroupBy_Stub(
   6975     IFolderView2* This,
   6976     PROPERTYKEY *pkey,
   6977     WINBOOL *pfAscending);
   6978 
   6979 #endif  /* __IFolderView2_INTERFACE_DEFINED__ */
   6980 
   6981 
   6982 #if NTDDI_VERSION >= NTDDI_VISTA
   6983 /*****************************************************************************
   6984  * IFolderViewSettings interface
   6985  */
   6986 #ifndef __IFolderViewSettings_INTERFACE_DEFINED__
   6987 #define __IFolderViewSettings_INTERFACE_DEFINED__
   6988 
   6989 DEFINE_GUID(IID_IFolderViewSettings, 0xae8c987d, 0x8797, 0x4ed3, 0xbe,0x72, 0x2a,0x47,0xdd,0x93,0x8d,0xb0);
   6990 #if defined(__cplusplus) && !defined(CINTERFACE)
   6991 MIDL_INTERFACE("ae8c987d-8797-4ed3-be72-2a47dd938db0")
   6992 IFolderViewSettings : public IUnknown
   6993 {
   6994     virtual HRESULT STDMETHODCALLTYPE GetColumnPropertyList(
   6995         REFIID riid,
   6996         void **ppv) = 0;
   6997 
   6998     virtual HRESULT STDMETHODCALLTYPE GetGroupByProperty(
   6999         PROPERTYKEY *pkey,
   7000         WINBOOL *pfGroupAscending) = 0;
   7001 
   7002     virtual HRESULT STDMETHODCALLTYPE GetViewMode(
   7003         FOLDERLOGICALVIEWMODE *plvm) = 0;
   7004 
   7005     virtual HRESULT STDMETHODCALLTYPE GetIconSize(
   7006         UINT *puIconSize) = 0;
   7007 
   7008     virtual HRESULT STDMETHODCALLTYPE GetFolderFlags(
   7009         FOLDERFLAGS *pfolderMask,
   7010         FOLDERFLAGS *pfolderFlags) = 0;
   7011 
   7012     virtual HRESULT STDMETHODCALLTYPE GetSortColumns(
   7013         SORTCOLUMN *rgSortColumns,
   7014         UINT cColumnsIn,
   7015         UINT *pcColumnsOut) = 0;
   7016 
   7017     virtual HRESULT STDMETHODCALLTYPE GetGroupSubsetCount(
   7018         UINT *pcVisibleRows) = 0;
   7019 
   7020 };
   7021 #ifdef __CRT_UUID_DECL
   7022 __CRT_UUID_DECL(IFolderViewSettings, 0xae8c987d, 0x8797, 0x4ed3, 0xbe,0x72, 0x2a,0x47,0xdd,0x93,0x8d,0xb0)
   7023 #endif
   7024 #else
   7025 typedef struct IFolderViewSettingsVtbl {
   7026     BEGIN_INTERFACE
   7027 
   7028     /*** IUnknown methods ***/
   7029     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7030         IFolderViewSettings *This,
   7031         REFIID riid,
   7032         void **ppvObject);
   7033 
   7034     ULONG (STDMETHODCALLTYPE *AddRef)(
   7035         IFolderViewSettings *This);
   7036 
   7037     ULONG (STDMETHODCALLTYPE *Release)(
   7038         IFolderViewSettings *This);
   7039 
   7040     /*** IFolderViewSettings methods ***/
   7041     HRESULT (STDMETHODCALLTYPE *GetColumnPropertyList)(
   7042         IFolderViewSettings *This,
   7043         REFIID riid,
   7044         void **ppv);
   7045 
   7046     HRESULT (STDMETHODCALLTYPE *GetGroupByProperty)(
   7047         IFolderViewSettings *This,
   7048         PROPERTYKEY *pkey,
   7049         WINBOOL *pfGroupAscending);
   7050 
   7051     HRESULT (STDMETHODCALLTYPE *GetViewMode)(
   7052         IFolderViewSettings *This,
   7053         FOLDERLOGICALVIEWMODE *plvm);
   7054 
   7055     HRESULT (STDMETHODCALLTYPE *GetIconSize)(
   7056         IFolderViewSettings *This,
   7057         UINT *puIconSize);
   7058 
   7059     HRESULT (STDMETHODCALLTYPE *GetFolderFlags)(
   7060         IFolderViewSettings *This,
   7061         FOLDERFLAGS *pfolderMask,
   7062         FOLDERFLAGS *pfolderFlags);
   7063 
   7064     HRESULT (STDMETHODCALLTYPE *GetSortColumns)(
   7065         IFolderViewSettings *This,
   7066         SORTCOLUMN *rgSortColumns,
   7067         UINT cColumnsIn,
   7068         UINT *pcColumnsOut);
   7069 
   7070     HRESULT (STDMETHODCALLTYPE *GetGroupSubsetCount)(
   7071         IFolderViewSettings *This,
   7072         UINT *pcVisibleRows);
   7073 
   7074     END_INTERFACE
   7075 } IFolderViewSettingsVtbl;
   7076 
   7077 interface IFolderViewSettings {
   7078     CONST_VTBL IFolderViewSettingsVtbl* lpVtbl;
   7079 };
   7080 
   7081 #ifdef COBJMACROS
   7082 #ifndef WIDL_C_INLINE_WRAPPERS
   7083 /*** IUnknown methods ***/
   7084 #define IFolderViewSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7085 #define IFolderViewSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
   7086 #define IFolderViewSettings_Release(This) (This)->lpVtbl->Release(This)
   7087 /*** IFolderViewSettings methods ***/
   7088 #define IFolderViewSettings_GetColumnPropertyList(This,riid,ppv) (This)->lpVtbl->GetColumnPropertyList(This,riid,ppv)
   7089 #define IFolderViewSettings_GetGroupByProperty(This,pkey,pfGroupAscending) (This)->lpVtbl->GetGroupByProperty(This,pkey,pfGroupAscending)
   7090 #define IFolderViewSettings_GetViewMode(This,plvm) (This)->lpVtbl->GetViewMode(This,plvm)
   7091 #define IFolderViewSettings_GetIconSize(This,puIconSize) (This)->lpVtbl->GetIconSize(This,puIconSize)
   7092 #define IFolderViewSettings_GetFolderFlags(This,pfolderMask,pfolderFlags) (This)->lpVtbl->GetFolderFlags(This,pfolderMask,pfolderFlags)
   7093 #define IFolderViewSettings_GetSortColumns(This,rgSortColumns,cColumnsIn,pcColumnsOut) (This)->lpVtbl->GetSortColumns(This,rgSortColumns,cColumnsIn,pcColumnsOut)
   7094 #define IFolderViewSettings_GetGroupSubsetCount(This,pcVisibleRows) (This)->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows)
   7095 #else
   7096 /*** IUnknown methods ***/
   7097 static inline HRESULT IFolderViewSettings_QueryInterface(IFolderViewSettings* This,REFIID riid,void **ppvObject) {
   7098     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7099 }
   7100 static inline ULONG IFolderViewSettings_AddRef(IFolderViewSettings* This) {
   7101     return This->lpVtbl->AddRef(This);
   7102 }
   7103 static inline ULONG IFolderViewSettings_Release(IFolderViewSettings* This) {
   7104     return This->lpVtbl->Release(This);
   7105 }
   7106 /*** IFolderViewSettings methods ***/
   7107 static inline HRESULT IFolderViewSettings_GetColumnPropertyList(IFolderViewSettings* This,REFIID riid,void **ppv) {
   7108     return This->lpVtbl->GetColumnPropertyList(This,riid,ppv);
   7109 }
   7110 static inline HRESULT IFolderViewSettings_GetGroupByProperty(IFolderViewSettings* This,PROPERTYKEY *pkey,WINBOOL *pfGroupAscending) {
   7111     return This->lpVtbl->GetGroupByProperty(This,pkey,pfGroupAscending);
   7112 }
   7113 static inline HRESULT IFolderViewSettings_GetViewMode(IFolderViewSettings* This,FOLDERLOGICALVIEWMODE *plvm) {
   7114     return This->lpVtbl->GetViewMode(This,plvm);
   7115 }
   7116 static inline HRESULT IFolderViewSettings_GetIconSize(IFolderViewSettings* This,UINT *puIconSize) {
   7117     return This->lpVtbl->GetIconSize(This,puIconSize);
   7118 }
   7119 static inline HRESULT IFolderViewSettings_GetFolderFlags(IFolderViewSettings* This,FOLDERFLAGS *pfolderMask,FOLDERFLAGS *pfolderFlags) {
   7120     return This->lpVtbl->GetFolderFlags(This,pfolderMask,pfolderFlags);
   7121 }
   7122 static inline HRESULT IFolderViewSettings_GetSortColumns(IFolderViewSettings* This,SORTCOLUMN *rgSortColumns,UINT cColumnsIn,UINT *pcColumnsOut) {
   7123     return This->lpVtbl->GetSortColumns(This,rgSortColumns,cColumnsIn,pcColumnsOut);
   7124 }
   7125 static inline HRESULT IFolderViewSettings_GetGroupSubsetCount(IFolderViewSettings* This,UINT *pcVisibleRows) {
   7126     return This->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows);
   7127 }
   7128 #endif
   7129 #endif
   7130 
   7131 #endif
   7132 
   7133 
   7134 #endif  /* __IFolderViewSettings_INTERFACE_DEFINED__ */
   7135 
   7136 #endif
   7137 #endif
   7138 
   7139 #if _WIN32_IE >= _WIN32_IE_IE70
   7140 /*****************************************************************************
   7141  * IPreviewHandlerVisuals interface
   7142  */
   7143 #ifndef __IPreviewHandlerVisuals_INTERFACE_DEFINED__
   7144 #define __IPreviewHandlerVisuals_INTERFACE_DEFINED__
   7145 
   7146 DEFINE_GUID(IID_IPreviewHandlerVisuals, 0x196bf9a5, 0xb346, 0x4ef0, 0xaa,0x1e, 0x5d,0xcd,0xb7,0x67,0x68,0xb1);
   7147 #if defined(__cplusplus) && !defined(CINTERFACE)
   7148 MIDL_INTERFACE("196bf9a5-b346-4ef0-aa1e-5dcdb76768b1")
   7149 IPreviewHandlerVisuals : public IUnknown
   7150 {
   7151     virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor(
   7152         COLORREF color) = 0;
   7153 
   7154     virtual HRESULT STDMETHODCALLTYPE SetFont(
   7155         const LOGFONTW *plf) = 0;
   7156 
   7157     virtual HRESULT STDMETHODCALLTYPE SetTextColor(
   7158         COLORREF color) = 0;
   7159 
   7160 };
   7161 #ifdef __CRT_UUID_DECL
   7162 __CRT_UUID_DECL(IPreviewHandlerVisuals, 0x196bf9a5, 0xb346, 0x4ef0, 0xaa,0x1e, 0x5d,0xcd,0xb7,0x67,0x68,0xb1)
   7163 #endif
   7164 #else
   7165 typedef struct IPreviewHandlerVisualsVtbl {
   7166     BEGIN_INTERFACE
   7167 
   7168     /*** IUnknown methods ***/
   7169     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7170         IPreviewHandlerVisuals *This,
   7171         REFIID riid,
   7172         void **ppvObject);
   7173 
   7174     ULONG (STDMETHODCALLTYPE *AddRef)(
   7175         IPreviewHandlerVisuals *This);
   7176 
   7177     ULONG (STDMETHODCALLTYPE *Release)(
   7178         IPreviewHandlerVisuals *This);
   7179 
   7180     /*** IPreviewHandlerVisuals methods ***/
   7181     HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
   7182         IPreviewHandlerVisuals *This,
   7183         COLORREF color);
   7184 
   7185     HRESULT (STDMETHODCALLTYPE *SetFont)(
   7186         IPreviewHandlerVisuals *This,
   7187         const LOGFONTW *plf);
   7188 
   7189     HRESULT (STDMETHODCALLTYPE *SetTextColor)(
   7190         IPreviewHandlerVisuals *This,
   7191         COLORREF color);
   7192 
   7193     END_INTERFACE
   7194 } IPreviewHandlerVisualsVtbl;
   7195 
   7196 interface IPreviewHandlerVisuals {
   7197     CONST_VTBL IPreviewHandlerVisualsVtbl* lpVtbl;
   7198 };
   7199 
   7200 #ifdef COBJMACROS
   7201 #ifndef WIDL_C_INLINE_WRAPPERS
   7202 /*** IUnknown methods ***/
   7203 #define IPreviewHandlerVisuals_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7204 #define IPreviewHandlerVisuals_AddRef(This) (This)->lpVtbl->AddRef(This)
   7205 #define IPreviewHandlerVisuals_Release(This) (This)->lpVtbl->Release(This)
   7206 /*** IPreviewHandlerVisuals methods ***/
   7207 #define IPreviewHandlerVisuals_SetBackgroundColor(This,color) (This)->lpVtbl->SetBackgroundColor(This,color)
   7208 #define IPreviewHandlerVisuals_SetFont(This,plf) (This)->lpVtbl->SetFont(This,plf)
   7209 #define IPreviewHandlerVisuals_SetTextColor(This,color) (This)->lpVtbl->SetTextColor(This,color)
   7210 #else
   7211 /*** IUnknown methods ***/
   7212 static inline HRESULT IPreviewHandlerVisuals_QueryInterface(IPreviewHandlerVisuals* This,REFIID riid,void **ppvObject) {
   7213     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7214 }
   7215 static inline ULONG IPreviewHandlerVisuals_AddRef(IPreviewHandlerVisuals* This) {
   7216     return This->lpVtbl->AddRef(This);
   7217 }
   7218 static inline ULONG IPreviewHandlerVisuals_Release(IPreviewHandlerVisuals* This) {
   7219     return This->lpVtbl->Release(This);
   7220 }
   7221 /*** IPreviewHandlerVisuals methods ***/
   7222 static inline HRESULT IPreviewHandlerVisuals_SetBackgroundColor(IPreviewHandlerVisuals* This,COLORREF color) {
   7223     return This->lpVtbl->SetBackgroundColor(This,color);
   7224 }
   7225 static inline HRESULT IPreviewHandlerVisuals_SetFont(IPreviewHandlerVisuals* This,const LOGFONTW *plf) {
   7226     return This->lpVtbl->SetFont(This,plf);
   7227 }
   7228 static inline HRESULT IPreviewHandlerVisuals_SetTextColor(IPreviewHandlerVisuals* This,COLORREF color) {
   7229     return This->lpVtbl->SetTextColor(This,color);
   7230 }
   7231 #endif
   7232 #endif
   7233 
   7234 #endif
   7235 
   7236 
   7237 #endif  /* __IPreviewHandlerVisuals_INTERFACE_DEFINED__ */
   7238 
   7239 
   7240 /*****************************************************************************
   7241  * IVisualProperties interface
   7242  */
   7243 #ifndef __IVisualProperties_INTERFACE_DEFINED__
   7244 #define __IVisualProperties_INTERFACE_DEFINED__
   7245 
   7246 typedef enum VPWATERMARKFLAGS {
   7247     VPWF_DEFAULT = 0x0,
   7248     VPWF_ALPHABLEND = 0x1
   7249 } VPWATERMARKFLAGS;
   7250 
   7251 typedef enum VPCOLORFLAGS {
   7252     VPCF_TEXT = 1,
   7253     VPCF_BACKGROUND = 2,
   7254     VPCF_SORTCOLUMN = 3,
   7255     VPCF_SUBTEXT = 4,
   7256     VPCF_TEXTBACKGROUND = 5
   7257 } VPCOLORFLAGS;
   7258 
   7259 DEFINE_ENUM_FLAG_OPERATORS(VPWATERMARKFLAGS)
   7260 
   7261 DEFINE_GUID(IID_IVisualProperties, 0xe693cf68, 0xd967, 0x4112, 0x87,0x63, 0x99,0x17,0x2a,0xee,0x5e,0x5a);
   7262 #if defined(__cplusplus) && !defined(CINTERFACE)
   7263 MIDL_INTERFACE("e693cf68-d967-4112-8763-99172aee5e5a")
   7264 IVisualProperties : public IUnknown
   7265 {
   7266     virtual HRESULT STDMETHODCALLTYPE SetWatermark(
   7267         HBITMAP hbmp,
   7268         VPWATERMARKFLAGS vpwf) = 0;
   7269 
   7270     virtual HRESULT STDMETHODCALLTYPE SetColor(
   7271         VPCOLORFLAGS vpcf,
   7272         COLORREF cr) = 0;
   7273 
   7274     virtual HRESULT STDMETHODCALLTYPE GetColor(
   7275         VPCOLORFLAGS vpcf,
   7276         COLORREF *pcr) = 0;
   7277 
   7278     virtual HRESULT STDMETHODCALLTYPE SetItemHeight(
   7279         int cyItemInPixels) = 0;
   7280 
   7281     virtual HRESULT STDMETHODCALLTYPE GetItemHeight(
   7282         int *cyItemInPixels) = 0;
   7283 
   7284     virtual HRESULT STDMETHODCALLTYPE SetFont(
   7285         const LOGFONTW *plf,
   7286         WINBOOL bRedraw) = 0;
   7287 
   7288     virtual HRESULT STDMETHODCALLTYPE GetFont(
   7289         LOGFONTW *plf) = 0;
   7290 
   7291     virtual HRESULT STDMETHODCALLTYPE SetTheme(
   7292         LPCWSTR pszSubAppName,
   7293         LPCWSTR pszSubIdList) = 0;
   7294 
   7295 };
   7296 #ifdef __CRT_UUID_DECL
   7297 __CRT_UUID_DECL(IVisualProperties, 0xe693cf68, 0xd967, 0x4112, 0x87,0x63, 0x99,0x17,0x2a,0xee,0x5e,0x5a)
   7298 #endif
   7299 #else
   7300 typedef struct IVisualPropertiesVtbl {
   7301     BEGIN_INTERFACE
   7302 
   7303     /*** IUnknown methods ***/
   7304     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7305         IVisualProperties *This,
   7306         REFIID riid,
   7307         void **ppvObject);
   7308 
   7309     ULONG (STDMETHODCALLTYPE *AddRef)(
   7310         IVisualProperties *This);
   7311 
   7312     ULONG (STDMETHODCALLTYPE *Release)(
   7313         IVisualProperties *This);
   7314 
   7315     /*** IVisualProperties methods ***/
   7316     HRESULT (STDMETHODCALLTYPE *SetWatermark)(
   7317         IVisualProperties *This,
   7318         HBITMAP hbmp,
   7319         VPWATERMARKFLAGS vpwf);
   7320 
   7321     HRESULT (STDMETHODCALLTYPE *SetColor)(
   7322         IVisualProperties *This,
   7323         VPCOLORFLAGS vpcf,
   7324         COLORREF cr);
   7325 
   7326     HRESULT (STDMETHODCALLTYPE *GetColor)(
   7327         IVisualProperties *This,
   7328         VPCOLORFLAGS vpcf,
   7329         COLORREF *pcr);
   7330 
   7331     HRESULT (STDMETHODCALLTYPE *SetItemHeight)(
   7332         IVisualProperties *This,
   7333         int cyItemInPixels);
   7334 
   7335     HRESULT (STDMETHODCALLTYPE *GetItemHeight)(
   7336         IVisualProperties *This,
   7337         int *cyItemInPixels);
   7338 
   7339     HRESULT (STDMETHODCALLTYPE *SetFont)(
   7340         IVisualProperties *This,
   7341         const LOGFONTW *plf,
   7342         WINBOOL bRedraw);
   7343 
   7344     HRESULT (STDMETHODCALLTYPE *GetFont)(
   7345         IVisualProperties *This,
   7346         LOGFONTW *plf);
   7347 
   7348     HRESULT (STDMETHODCALLTYPE *SetTheme)(
   7349         IVisualProperties *This,
   7350         LPCWSTR pszSubAppName,
   7351         LPCWSTR pszSubIdList);
   7352 
   7353     END_INTERFACE
   7354 } IVisualPropertiesVtbl;
   7355 
   7356 interface IVisualProperties {
   7357     CONST_VTBL IVisualPropertiesVtbl* lpVtbl;
   7358 };
   7359 
   7360 #ifdef COBJMACROS
   7361 #ifndef WIDL_C_INLINE_WRAPPERS
   7362 /*** IUnknown methods ***/
   7363 #define IVisualProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7364 #define IVisualProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
   7365 #define IVisualProperties_Release(This) (This)->lpVtbl->Release(This)
   7366 /*** IVisualProperties methods ***/
   7367 #define IVisualProperties_SetWatermark(This,hbmp,vpwf) (This)->lpVtbl->SetWatermark(This,hbmp,vpwf)
   7368 #define IVisualProperties_SetColor(This,vpcf,cr) (This)->lpVtbl->SetColor(This,vpcf,cr)
   7369 #define IVisualProperties_GetColor(This,vpcf,pcr) (This)->lpVtbl->GetColor(This,vpcf,pcr)
   7370 #define IVisualProperties_SetItemHeight(This,cyItemInPixels) (This)->lpVtbl->SetItemHeight(This,cyItemInPixels)
   7371 #define IVisualProperties_GetItemHeight(This,cyItemInPixels) (This)->lpVtbl->GetItemHeight(This,cyItemInPixels)
   7372 #define IVisualProperties_SetFont(This,plf,bRedraw) (This)->lpVtbl->SetFont(This,plf,bRedraw)
   7373 #define IVisualProperties_GetFont(This,plf) (This)->lpVtbl->GetFont(This,plf)
   7374 #define IVisualProperties_SetTheme(This,pszSubAppName,pszSubIdList) (This)->lpVtbl->SetTheme(This,pszSubAppName,pszSubIdList)
   7375 #else
   7376 /*** IUnknown methods ***/
   7377 static inline HRESULT IVisualProperties_QueryInterface(IVisualProperties* This,REFIID riid,void **ppvObject) {
   7378     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7379 }
   7380 static inline ULONG IVisualProperties_AddRef(IVisualProperties* This) {
   7381     return This->lpVtbl->AddRef(This);
   7382 }
   7383 static inline ULONG IVisualProperties_Release(IVisualProperties* This) {
   7384     return This->lpVtbl->Release(This);
   7385 }
   7386 /*** IVisualProperties methods ***/
   7387 static inline HRESULT IVisualProperties_SetWatermark(IVisualProperties* This,HBITMAP hbmp,VPWATERMARKFLAGS vpwf) {
   7388     return This->lpVtbl->SetWatermark(This,hbmp,vpwf);
   7389 }
   7390 static inline HRESULT IVisualProperties_SetColor(IVisualProperties* This,VPCOLORFLAGS vpcf,COLORREF cr) {
   7391     return This->lpVtbl->SetColor(This,vpcf,cr);
   7392 }
   7393 static inline HRESULT IVisualProperties_GetColor(IVisualProperties* This,VPCOLORFLAGS vpcf,COLORREF *pcr) {
   7394     return This->lpVtbl->GetColor(This,vpcf,pcr);
   7395 }
   7396 static inline HRESULT IVisualProperties_SetItemHeight(IVisualProperties* This,int cyItemInPixels) {
   7397     return This->lpVtbl->SetItemHeight(This,cyItemInPixels);
   7398 }
   7399 static inline HRESULT IVisualProperties_GetItemHeight(IVisualProperties* This,int *cyItemInPixels) {
   7400     return This->lpVtbl->GetItemHeight(This,cyItemInPixels);
   7401 }
   7402 static inline HRESULT IVisualProperties_SetFont(IVisualProperties* This,const LOGFONTW *plf,WINBOOL bRedraw) {
   7403     return This->lpVtbl->SetFont(This,plf,bRedraw);
   7404 }
   7405 static inline HRESULT IVisualProperties_GetFont(IVisualProperties* This,LOGFONTW *plf) {
   7406     return This->lpVtbl->GetFont(This,plf);
   7407 }
   7408 static inline HRESULT IVisualProperties_SetTheme(IVisualProperties* This,LPCWSTR pszSubAppName,LPCWSTR pszSubIdList) {
   7409     return This->lpVtbl->SetTheme(This,pszSubAppName,pszSubIdList);
   7410 }
   7411 #endif
   7412 #endif
   7413 
   7414 #endif
   7415 
   7416 
   7417 #endif  /* __IVisualProperties_INTERFACE_DEFINED__ */
   7418 
   7419 #endif
   7420 
   7421 #define CDBOSC_SETFOCUS 0x00000000
   7422 #define CDBOSC_KILLFOCUS 0x00000001
   7423 #define CDBOSC_SELCHANGE 0x00000002
   7424 #define CDBOSC_RENAME 0x00000003
   7425 #define CDBOSC_STATECHANGE 0x00000004
   7426 
   7427 /*****************************************************************************
   7428  * ICommDlgBrowser interface
   7429  */
   7430 #ifndef __ICommDlgBrowser_INTERFACE_DEFINED__
   7431 #define __ICommDlgBrowser_INTERFACE_DEFINED__
   7432 
   7433 DEFINE_GUID(IID_ICommDlgBrowser, 0x000214f1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   7434 #if defined(__cplusplus) && !defined(CINTERFACE)
   7435 MIDL_INTERFACE("000214f1-0000-0000-c000-000000000046")
   7436 ICommDlgBrowser : public IUnknown
   7437 {
   7438     virtual HRESULT STDMETHODCALLTYPE OnDefaultCommand(
   7439         IShellView *ppshv) = 0;
   7440 
   7441     virtual HRESULT STDMETHODCALLTYPE OnStateChange(
   7442         IShellView *ppshv,
   7443         ULONG uChange) = 0;
   7444 
   7445     virtual HRESULT STDMETHODCALLTYPE IncludeObject(
   7446         IShellView *ppshv,
   7447         PCUITEMID_CHILD pidl) = 0;
   7448 
   7449 };
   7450 #ifdef __CRT_UUID_DECL
   7451 __CRT_UUID_DECL(ICommDlgBrowser, 0x000214f1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   7452 #endif
   7453 #else
   7454 typedef struct ICommDlgBrowserVtbl {
   7455     BEGIN_INTERFACE
   7456 
   7457     /*** IUnknown methods ***/
   7458     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7459         ICommDlgBrowser *This,
   7460         REFIID riid,
   7461         void **ppvObject);
   7462 
   7463     ULONG (STDMETHODCALLTYPE *AddRef)(
   7464         ICommDlgBrowser *This);
   7465 
   7466     ULONG (STDMETHODCALLTYPE *Release)(
   7467         ICommDlgBrowser *This);
   7468 
   7469     /*** ICommDlgBrowser methods ***/
   7470     HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
   7471         ICommDlgBrowser *This,
   7472         IShellView *ppshv);
   7473 
   7474     HRESULT (STDMETHODCALLTYPE *OnStateChange)(
   7475         ICommDlgBrowser *This,
   7476         IShellView *ppshv,
   7477         ULONG uChange);
   7478 
   7479     HRESULT (STDMETHODCALLTYPE *IncludeObject)(
   7480         ICommDlgBrowser *This,
   7481         IShellView *ppshv,
   7482         PCUITEMID_CHILD pidl);
   7483 
   7484     END_INTERFACE
   7485 } ICommDlgBrowserVtbl;
   7486 
   7487 interface ICommDlgBrowser {
   7488     CONST_VTBL ICommDlgBrowserVtbl* lpVtbl;
   7489 };
   7490 
   7491 #ifdef COBJMACROS
   7492 #ifndef WIDL_C_INLINE_WRAPPERS
   7493 /*** IUnknown methods ***/
   7494 #define ICommDlgBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7495 #define ICommDlgBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
   7496 #define ICommDlgBrowser_Release(This) (This)->lpVtbl->Release(This)
   7497 /*** ICommDlgBrowser methods ***/
   7498 #define ICommDlgBrowser_OnDefaultCommand(This,ppshv) (This)->lpVtbl->OnDefaultCommand(This,ppshv)
   7499 #define ICommDlgBrowser_OnStateChange(This,ppshv,uChange) (This)->lpVtbl->OnStateChange(This,ppshv,uChange)
   7500 #define ICommDlgBrowser_IncludeObject(This,ppshv,pidl) (This)->lpVtbl->IncludeObject(This,ppshv,pidl)
   7501 #else
   7502 /*** IUnknown methods ***/
   7503 static inline HRESULT ICommDlgBrowser_QueryInterface(ICommDlgBrowser* This,REFIID riid,void **ppvObject) {
   7504     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7505 }
   7506 static inline ULONG ICommDlgBrowser_AddRef(ICommDlgBrowser* This) {
   7507     return This->lpVtbl->AddRef(This);
   7508 }
   7509 static inline ULONG ICommDlgBrowser_Release(ICommDlgBrowser* This) {
   7510     return This->lpVtbl->Release(This);
   7511 }
   7512 /*** ICommDlgBrowser methods ***/
   7513 static inline HRESULT ICommDlgBrowser_OnDefaultCommand(ICommDlgBrowser* This,IShellView *ppshv) {
   7514     return This->lpVtbl->OnDefaultCommand(This,ppshv);
   7515 }
   7516 static inline HRESULT ICommDlgBrowser_OnStateChange(ICommDlgBrowser* This,IShellView *ppshv,ULONG uChange) {
   7517     return This->lpVtbl->OnStateChange(This,ppshv,uChange);
   7518 }
   7519 static inline HRESULT ICommDlgBrowser_IncludeObject(ICommDlgBrowser* This,IShellView *ppshv,PCUITEMID_CHILD pidl) {
   7520     return This->lpVtbl->IncludeObject(This,ppshv,pidl);
   7521 }
   7522 #endif
   7523 #endif
   7524 
   7525 #endif
   7526 
   7527 
   7528 #endif  /* __ICommDlgBrowser_INTERFACE_DEFINED__ */
   7529 
   7530 typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
   7531 
   7532 #define SID_SExplorerBrowserFrame IID_ICommDlgBrowser
   7533 
   7534 #define CDB2N_CONTEXTMENU_DONE 0x00000001
   7535 #define CDB2N_CONTEXTMENU_START 0x00000002
   7536 
   7537 #define CDB2GVF_SHOWALLFILES 0x1
   7538 #if NTDDI_VERSION >= NTDDI_VISTA
   7539 #define CDB2GVF_ISFILESAVE 0x2
   7540 #define CDB2GVF_ALLOWPREVIEWPANE 0x4
   7541 #define CDB2GVF_NOSELECTVERB 0x8
   7542 #define CDB2GVF_NOINCLUDEITEM 0x10
   7543 #define CDB2GVF_ISFOLDERPICKER 0x20
   7544 #define CDB2GVF_ADDSHIELD 0x40
   7545 #endif
   7546 
   7547 /*****************************************************************************
   7548  * ICommDlgBrowser2 interface
   7549  */
   7550 #ifndef __ICommDlgBrowser2_INTERFACE_DEFINED__
   7551 #define __ICommDlgBrowser2_INTERFACE_DEFINED__
   7552 
   7553 DEFINE_GUID(IID_ICommDlgBrowser2, 0x10339516, 0x2894, 0x11d2, 0x90,0x39, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e);
   7554 #if defined(__cplusplus) && !defined(CINTERFACE)
   7555 MIDL_INTERFACE("10339516-2894-11d2-9039-00c04f8eeb3e")
   7556 ICommDlgBrowser2 : public ICommDlgBrowser
   7557 {
   7558     virtual HRESULT STDMETHODCALLTYPE Notify(
   7559         IShellView *ppshv,
   7560         DWORD dwNotifyType) = 0;
   7561 
   7562     virtual HRESULT STDMETHODCALLTYPE GetDefaultMenuText(
   7563         IShellView *ppshv,
   7564         LPWSTR pszText,
   7565         int cchMax) = 0;
   7566 
   7567     virtual HRESULT STDMETHODCALLTYPE GetViewFlags(
   7568         DWORD *pdwFlags) = 0;
   7569 
   7570 };
   7571 #ifdef __CRT_UUID_DECL
   7572 __CRT_UUID_DECL(ICommDlgBrowser2, 0x10339516, 0x2894, 0x11d2, 0x90,0x39, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e)
   7573 #endif
   7574 #else
   7575 typedef struct ICommDlgBrowser2Vtbl {
   7576     BEGIN_INTERFACE
   7577 
   7578     /*** IUnknown methods ***/
   7579     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7580         ICommDlgBrowser2 *This,
   7581         REFIID riid,
   7582         void **ppvObject);
   7583 
   7584     ULONG (STDMETHODCALLTYPE *AddRef)(
   7585         ICommDlgBrowser2 *This);
   7586 
   7587     ULONG (STDMETHODCALLTYPE *Release)(
   7588         ICommDlgBrowser2 *This);
   7589 
   7590     /*** ICommDlgBrowser methods ***/
   7591     HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
   7592         ICommDlgBrowser2 *This,
   7593         IShellView *ppshv);
   7594 
   7595     HRESULT (STDMETHODCALLTYPE *OnStateChange)(
   7596         ICommDlgBrowser2 *This,
   7597         IShellView *ppshv,
   7598         ULONG uChange);
   7599 
   7600     HRESULT (STDMETHODCALLTYPE *IncludeObject)(
   7601         ICommDlgBrowser2 *This,
   7602         IShellView *ppshv,
   7603         PCUITEMID_CHILD pidl);
   7604 
   7605     /*** ICommDlgBrowser2 methods ***/
   7606     HRESULT (STDMETHODCALLTYPE *Notify)(
   7607         ICommDlgBrowser2 *This,
   7608         IShellView *ppshv,
   7609         DWORD dwNotifyType);
   7610 
   7611     HRESULT (STDMETHODCALLTYPE *GetDefaultMenuText)(
   7612         ICommDlgBrowser2 *This,
   7613         IShellView *ppshv,
   7614         LPWSTR pszText,
   7615         int cchMax);
   7616 
   7617     HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
   7618         ICommDlgBrowser2 *This,
   7619         DWORD *pdwFlags);
   7620 
   7621     END_INTERFACE
   7622 } ICommDlgBrowser2Vtbl;
   7623 
   7624 interface ICommDlgBrowser2 {
   7625     CONST_VTBL ICommDlgBrowser2Vtbl* lpVtbl;
   7626 };
   7627 
   7628 #ifdef COBJMACROS
   7629 #ifndef WIDL_C_INLINE_WRAPPERS
   7630 /*** IUnknown methods ***/
   7631 #define ICommDlgBrowser2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7632 #define ICommDlgBrowser2_AddRef(This) (This)->lpVtbl->AddRef(This)
   7633 #define ICommDlgBrowser2_Release(This) (This)->lpVtbl->Release(This)
   7634 /*** ICommDlgBrowser methods ***/
   7635 #define ICommDlgBrowser2_OnDefaultCommand(This,ppshv) (This)->lpVtbl->OnDefaultCommand(This,ppshv)
   7636 #define ICommDlgBrowser2_OnStateChange(This,ppshv,uChange) (This)->lpVtbl->OnStateChange(This,ppshv,uChange)
   7637 #define ICommDlgBrowser2_IncludeObject(This,ppshv,pidl) (This)->lpVtbl->IncludeObject(This,ppshv,pidl)
   7638 /*** ICommDlgBrowser2 methods ***/
   7639 #define ICommDlgBrowser2_Notify(This,ppshv,dwNotifyType) (This)->lpVtbl->Notify(This,ppshv,dwNotifyType)
   7640 #define ICommDlgBrowser2_GetDefaultMenuText(This,ppshv,pszText,cchMax) (This)->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax)
   7641 #define ICommDlgBrowser2_GetViewFlags(This,pdwFlags) (This)->lpVtbl->GetViewFlags(This,pdwFlags)
   7642 #else
   7643 /*** IUnknown methods ***/
   7644 static inline HRESULT ICommDlgBrowser2_QueryInterface(ICommDlgBrowser2* This,REFIID riid,void **ppvObject) {
   7645     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7646 }
   7647 static inline ULONG ICommDlgBrowser2_AddRef(ICommDlgBrowser2* This) {
   7648     return This->lpVtbl->AddRef(This);
   7649 }
   7650 static inline ULONG ICommDlgBrowser2_Release(ICommDlgBrowser2* This) {
   7651     return This->lpVtbl->Release(This);
   7652 }
   7653 /*** ICommDlgBrowser methods ***/
   7654 static inline HRESULT ICommDlgBrowser2_OnDefaultCommand(ICommDlgBrowser2* This,IShellView *ppshv) {
   7655     return This->lpVtbl->OnDefaultCommand(This,ppshv);
   7656 }
   7657 static inline HRESULT ICommDlgBrowser2_OnStateChange(ICommDlgBrowser2* This,IShellView *ppshv,ULONG uChange) {
   7658     return This->lpVtbl->OnStateChange(This,ppshv,uChange);
   7659 }
   7660 static inline HRESULT ICommDlgBrowser2_IncludeObject(ICommDlgBrowser2* This,IShellView *ppshv,PCUITEMID_CHILD pidl) {
   7661     return This->lpVtbl->IncludeObject(This,ppshv,pidl);
   7662 }
   7663 /*** ICommDlgBrowser2 methods ***/
   7664 static inline HRESULT ICommDlgBrowser2_Notify(ICommDlgBrowser2* This,IShellView *ppshv,DWORD dwNotifyType) {
   7665     return This->lpVtbl->Notify(This,ppshv,dwNotifyType);
   7666 }
   7667 static inline HRESULT ICommDlgBrowser2_GetDefaultMenuText(ICommDlgBrowser2* This,IShellView *ppshv,LPWSTR pszText,int cchMax) {
   7668     return This->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax);
   7669 }
   7670 static inline HRESULT ICommDlgBrowser2_GetViewFlags(ICommDlgBrowser2* This,DWORD *pdwFlags) {
   7671     return This->lpVtbl->GetViewFlags(This,pdwFlags);
   7672 }
   7673 #endif
   7674 #endif
   7675 
   7676 #endif
   7677 
   7678 
   7679 #endif  /* __ICommDlgBrowser2_INTERFACE_DEFINED__ */
   7680 
   7681 typedef ICommDlgBrowser2 *LPCOMMDLGBROWSER2;
   7682 
   7683 #if _WIN32_IE >= _WIN32_IE_IE70
   7684 /*****************************************************************************
   7685  * ICommDlgBrowser3 interface
   7686  */
   7687 #ifndef __ICommDlgBrowser3_INTERFACE_DEFINED__
   7688 #define __ICommDlgBrowser3_INTERFACE_DEFINED__
   7689 
   7690 DEFINE_GUID(IID_ICommDlgBrowser3, 0xc8ad25a1, 0x3294, 0x41ee, 0x81,0x65, 0x71,0x17,0x4b,0xd0,0x1c,0x57);
   7691 #if defined(__cplusplus) && !defined(CINTERFACE)
   7692 MIDL_INTERFACE("c8ad25a1-3294-41ee-8165-71174bd01c57")
   7693 ICommDlgBrowser3 : public ICommDlgBrowser2
   7694 {
   7695     virtual HRESULT STDMETHODCALLTYPE OnColumnClicked(
   7696         IShellView *ppshv,
   7697         int iColumn) = 0;
   7698 
   7699     virtual HRESULT STDMETHODCALLTYPE GetCurrentFilter(
   7700         LPWSTR pszFileSpec,
   7701         int cchFileSpec) = 0;
   7702 
   7703     virtual HRESULT STDMETHODCALLTYPE OnPreViewCreated(
   7704         IShellView *ppshv) = 0;
   7705 
   7706 };
   7707 #ifdef __CRT_UUID_DECL
   7708 __CRT_UUID_DECL(ICommDlgBrowser3, 0xc8ad25a1, 0x3294, 0x41ee, 0x81,0x65, 0x71,0x17,0x4b,0xd0,0x1c,0x57)
   7709 #endif
   7710 #else
   7711 typedef struct ICommDlgBrowser3Vtbl {
   7712     BEGIN_INTERFACE
   7713 
   7714     /*** IUnknown methods ***/
   7715     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7716         ICommDlgBrowser3 *This,
   7717         REFIID riid,
   7718         void **ppvObject);
   7719 
   7720     ULONG (STDMETHODCALLTYPE *AddRef)(
   7721         ICommDlgBrowser3 *This);
   7722 
   7723     ULONG (STDMETHODCALLTYPE *Release)(
   7724         ICommDlgBrowser3 *This);
   7725 
   7726     /*** ICommDlgBrowser methods ***/
   7727     HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
   7728         ICommDlgBrowser3 *This,
   7729         IShellView *ppshv);
   7730 
   7731     HRESULT (STDMETHODCALLTYPE *OnStateChange)(
   7732         ICommDlgBrowser3 *This,
   7733         IShellView *ppshv,
   7734         ULONG uChange);
   7735 
   7736     HRESULT (STDMETHODCALLTYPE *IncludeObject)(
   7737         ICommDlgBrowser3 *This,
   7738         IShellView *ppshv,
   7739         PCUITEMID_CHILD pidl);
   7740 
   7741     /*** ICommDlgBrowser2 methods ***/
   7742     HRESULT (STDMETHODCALLTYPE *Notify)(
   7743         ICommDlgBrowser3 *This,
   7744         IShellView *ppshv,
   7745         DWORD dwNotifyType);
   7746 
   7747     HRESULT (STDMETHODCALLTYPE *GetDefaultMenuText)(
   7748         ICommDlgBrowser3 *This,
   7749         IShellView *ppshv,
   7750         LPWSTR pszText,
   7751         int cchMax);
   7752 
   7753     HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
   7754         ICommDlgBrowser3 *This,
   7755         DWORD *pdwFlags);
   7756 
   7757     /*** ICommDlgBrowser3 methods ***/
   7758     HRESULT (STDMETHODCALLTYPE *OnColumnClicked)(
   7759         ICommDlgBrowser3 *This,
   7760         IShellView *ppshv,
   7761         int iColumn);
   7762 
   7763     HRESULT (STDMETHODCALLTYPE *GetCurrentFilter)(
   7764         ICommDlgBrowser3 *This,
   7765         LPWSTR pszFileSpec,
   7766         int cchFileSpec);
   7767 
   7768     HRESULT (STDMETHODCALLTYPE *OnPreViewCreated)(
   7769         ICommDlgBrowser3 *This,
   7770         IShellView *ppshv);
   7771 
   7772     END_INTERFACE
   7773 } ICommDlgBrowser3Vtbl;
   7774 
   7775 interface ICommDlgBrowser3 {
   7776     CONST_VTBL ICommDlgBrowser3Vtbl* lpVtbl;
   7777 };
   7778 
   7779 #ifdef COBJMACROS
   7780 #ifndef WIDL_C_INLINE_WRAPPERS
   7781 /*** IUnknown methods ***/
   7782 #define ICommDlgBrowser3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7783 #define ICommDlgBrowser3_AddRef(This) (This)->lpVtbl->AddRef(This)
   7784 #define ICommDlgBrowser3_Release(This) (This)->lpVtbl->Release(This)
   7785 /*** ICommDlgBrowser methods ***/
   7786 #define ICommDlgBrowser3_OnDefaultCommand(This,ppshv) (This)->lpVtbl->OnDefaultCommand(This,ppshv)
   7787 #define ICommDlgBrowser3_OnStateChange(This,ppshv,uChange) (This)->lpVtbl->OnStateChange(This,ppshv,uChange)
   7788 #define ICommDlgBrowser3_IncludeObject(This,ppshv,pidl) (This)->lpVtbl->IncludeObject(This,ppshv,pidl)
   7789 /*** ICommDlgBrowser2 methods ***/
   7790 #define ICommDlgBrowser3_Notify(This,ppshv,dwNotifyType) (This)->lpVtbl->Notify(This,ppshv,dwNotifyType)
   7791 #define ICommDlgBrowser3_GetDefaultMenuText(This,ppshv,pszText,cchMax) (This)->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax)
   7792 #define ICommDlgBrowser3_GetViewFlags(This,pdwFlags) (This)->lpVtbl->GetViewFlags(This,pdwFlags)
   7793 /*** ICommDlgBrowser3 methods ***/
   7794 #define ICommDlgBrowser3_OnColumnClicked(This,ppshv,iColumn) (This)->lpVtbl->OnColumnClicked(This,ppshv,iColumn)
   7795 #define ICommDlgBrowser3_GetCurrentFilter(This,pszFileSpec,cchFileSpec) (This)->lpVtbl->GetCurrentFilter(This,pszFileSpec,cchFileSpec)
   7796 #define ICommDlgBrowser3_OnPreViewCreated(This,ppshv) (This)->lpVtbl->OnPreViewCreated(This,ppshv)
   7797 #else
   7798 /*** IUnknown methods ***/
   7799 static inline HRESULT ICommDlgBrowser3_QueryInterface(ICommDlgBrowser3* This,REFIID riid,void **ppvObject) {
   7800     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7801 }
   7802 static inline ULONG ICommDlgBrowser3_AddRef(ICommDlgBrowser3* This) {
   7803     return This->lpVtbl->AddRef(This);
   7804 }
   7805 static inline ULONG ICommDlgBrowser3_Release(ICommDlgBrowser3* This) {
   7806     return This->lpVtbl->Release(This);
   7807 }
   7808 /*** ICommDlgBrowser methods ***/
   7809 static inline HRESULT ICommDlgBrowser3_OnDefaultCommand(ICommDlgBrowser3* This,IShellView *ppshv) {
   7810     return This->lpVtbl->OnDefaultCommand(This,ppshv);
   7811 }
   7812 static inline HRESULT ICommDlgBrowser3_OnStateChange(ICommDlgBrowser3* This,IShellView *ppshv,ULONG uChange) {
   7813     return This->lpVtbl->OnStateChange(This,ppshv,uChange);
   7814 }
   7815 static inline HRESULT ICommDlgBrowser3_IncludeObject(ICommDlgBrowser3* This,IShellView *ppshv,PCUITEMID_CHILD pidl) {
   7816     return This->lpVtbl->IncludeObject(This,ppshv,pidl);
   7817 }
   7818 /*** ICommDlgBrowser2 methods ***/
   7819 static inline HRESULT ICommDlgBrowser3_Notify(ICommDlgBrowser3* This,IShellView *ppshv,DWORD dwNotifyType) {
   7820     return This->lpVtbl->Notify(This,ppshv,dwNotifyType);
   7821 }
   7822 static inline HRESULT ICommDlgBrowser3_GetDefaultMenuText(ICommDlgBrowser3* This,IShellView *ppshv,LPWSTR pszText,int cchMax) {
   7823     return This->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax);
   7824 }
   7825 static inline HRESULT ICommDlgBrowser3_GetViewFlags(ICommDlgBrowser3* This,DWORD *pdwFlags) {
   7826     return This->lpVtbl->GetViewFlags(This,pdwFlags);
   7827 }
   7828 /*** ICommDlgBrowser3 methods ***/
   7829 static inline HRESULT ICommDlgBrowser3_OnColumnClicked(ICommDlgBrowser3* This,IShellView *ppshv,int iColumn) {
   7830     return This->lpVtbl->OnColumnClicked(This,ppshv,iColumn);
   7831 }
   7832 static inline HRESULT ICommDlgBrowser3_GetCurrentFilter(ICommDlgBrowser3* This,LPWSTR pszFileSpec,int cchFileSpec) {
   7833     return This->lpVtbl->GetCurrentFilter(This,pszFileSpec,cchFileSpec);
   7834 }
   7835 static inline HRESULT ICommDlgBrowser3_OnPreViewCreated(ICommDlgBrowser3* This,IShellView *ppshv) {
   7836     return This->lpVtbl->OnPreViewCreated(This,ppshv);
   7837 }
   7838 #endif
   7839 #endif
   7840 
   7841 #endif
   7842 
   7843 
   7844 #endif  /* __ICommDlgBrowser3_INTERFACE_DEFINED__ */
   7845 
   7846 
   7847 typedef enum CM_MASK {
   7848     CM_MASK_WIDTH = 0x1,
   7849     CM_MASK_DEFAULTWIDTH = 0x2,
   7850     CM_MASK_IDEALWIDTH = 0x4,
   7851     CM_MASK_NAME = 0x8,
   7852     CM_MASK_STATE = 0x10
   7853 } CM_MASK;
   7854 
   7855 DEFINE_ENUM_FLAG_OPERATORS(CM_MASK)
   7856 
   7857 typedef enum CM_STATE {
   7858     CM_STATE_NONE = 0x0,
   7859     CM_STATE_VISIBLE = 0x1,
   7860     CM_STATE_FIXEDWIDTH = 0x2,
   7861     CM_STATE_NOSORTBYFOLDERNESS = 0x4,
   7862     CM_STATE_ALWAYSVISIBLE = 0x8
   7863 } CM_STATE;
   7864 
   7865 DEFINE_ENUM_FLAG_OPERATORS(CM_STATE)
   7866 
   7867 typedef enum CM_ENUM_FLAGS {
   7868     CM_ENUM_ALL = 0x1,
   7869     CM_ENUM_VISIBLE = 0x2
   7870 } CM_ENUM_FLAGS;
   7871 
   7872 DEFINE_ENUM_FLAG_OPERATORS(CM_ENUM_FLAGS)
   7873 
   7874 typedef enum CM_SET_WIDTH_VALUE {
   7875     CM_WIDTH_USEDEFAULT = -1,
   7876     CM_WIDTH_AUTOSIZE = -2
   7877 } CM_SET_WIDTH_VALUE;
   7878 
   7879 typedef struct CM_COLUMNINFO {
   7880     DWORD cbSize;
   7881     DWORD dwMask;
   7882     DWORD dwState;
   7883     UINT uWidth;
   7884     UINT uDefaultWidth;
   7885     UINT uIdealWidth;
   7886     WCHAR wszName[80];
   7887 } CM_COLUMNINFO;
   7888 
   7889 /*****************************************************************************
   7890  * IColumnManager interface
   7891  */
   7892 #ifndef __IColumnManager_INTERFACE_DEFINED__
   7893 #define __IColumnManager_INTERFACE_DEFINED__
   7894 
   7895 DEFINE_GUID(IID_IColumnManager, 0xd8ec27bb, 0x3f3b, 0x4042, 0xb1,0x0a, 0x4a,0xcf,0xd9,0x24,0xd4,0x53);
   7896 #if defined(__cplusplus) && !defined(CINTERFACE)
   7897 MIDL_INTERFACE("d8ec27bb-3f3b-4042-b10a-4acfd924d453")
   7898 IColumnManager : public IUnknown
   7899 {
   7900     virtual HRESULT STDMETHODCALLTYPE SetColumnInfo(
   7901         REFPROPERTYKEY propkey,
   7902         const CM_COLUMNINFO *pcmci) = 0;
   7903 
   7904     virtual HRESULT STDMETHODCALLTYPE GetColumnInfo(
   7905         REFPROPERTYKEY propkey,
   7906         CM_COLUMNINFO *pcmci) = 0;
   7907 
   7908     virtual HRESULT STDMETHODCALLTYPE GetColumnCount(
   7909         CM_ENUM_FLAGS dwFlags,
   7910         UINT *puCount) = 0;
   7911 
   7912     virtual HRESULT STDMETHODCALLTYPE GetColumns(
   7913         CM_ENUM_FLAGS dwFlags,
   7914         PROPERTYKEY *rgkeyOrder,
   7915         UINT cColumns) = 0;
   7916 
   7917     virtual HRESULT STDMETHODCALLTYPE SetColumns(
   7918         const PROPERTYKEY *rgkeyOrder,
   7919         UINT cVisible) = 0;
   7920 
   7921 };
   7922 #ifdef __CRT_UUID_DECL
   7923 __CRT_UUID_DECL(IColumnManager, 0xd8ec27bb, 0x3f3b, 0x4042, 0xb1,0x0a, 0x4a,0xcf,0xd9,0x24,0xd4,0x53)
   7924 #endif
   7925 #else
   7926 typedef struct IColumnManagerVtbl {
   7927     BEGIN_INTERFACE
   7928 
   7929     /*** IUnknown methods ***/
   7930     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   7931         IColumnManager *This,
   7932         REFIID riid,
   7933         void **ppvObject);
   7934 
   7935     ULONG (STDMETHODCALLTYPE *AddRef)(
   7936         IColumnManager *This);
   7937 
   7938     ULONG (STDMETHODCALLTYPE *Release)(
   7939         IColumnManager *This);
   7940 
   7941     /*** IColumnManager methods ***/
   7942     HRESULT (STDMETHODCALLTYPE *SetColumnInfo)(
   7943         IColumnManager *This,
   7944         REFPROPERTYKEY propkey,
   7945         const CM_COLUMNINFO *pcmci);
   7946 
   7947     HRESULT (STDMETHODCALLTYPE *GetColumnInfo)(
   7948         IColumnManager *This,
   7949         REFPROPERTYKEY propkey,
   7950         CM_COLUMNINFO *pcmci);
   7951 
   7952     HRESULT (STDMETHODCALLTYPE *GetColumnCount)(
   7953         IColumnManager *This,
   7954         CM_ENUM_FLAGS dwFlags,
   7955         UINT *puCount);
   7956 
   7957     HRESULT (STDMETHODCALLTYPE *GetColumns)(
   7958         IColumnManager *This,
   7959         CM_ENUM_FLAGS dwFlags,
   7960         PROPERTYKEY *rgkeyOrder,
   7961         UINT cColumns);
   7962 
   7963     HRESULT (STDMETHODCALLTYPE *SetColumns)(
   7964         IColumnManager *This,
   7965         const PROPERTYKEY *rgkeyOrder,
   7966         UINT cVisible);
   7967 
   7968     END_INTERFACE
   7969 } IColumnManagerVtbl;
   7970 
   7971 interface IColumnManager {
   7972     CONST_VTBL IColumnManagerVtbl* lpVtbl;
   7973 };
   7974 
   7975 #ifdef COBJMACROS
   7976 #ifndef WIDL_C_INLINE_WRAPPERS
   7977 /*** IUnknown methods ***/
   7978 #define IColumnManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7979 #define IColumnManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   7980 #define IColumnManager_Release(This) (This)->lpVtbl->Release(This)
   7981 /*** IColumnManager methods ***/
   7982 #define IColumnManager_SetColumnInfo(This,propkey,pcmci) (This)->lpVtbl->SetColumnInfo(This,propkey,pcmci)
   7983 #define IColumnManager_GetColumnInfo(This,propkey,pcmci) (This)->lpVtbl->GetColumnInfo(This,propkey,pcmci)
   7984 #define IColumnManager_GetColumnCount(This,dwFlags,puCount) (This)->lpVtbl->GetColumnCount(This,dwFlags,puCount)
   7985 #define IColumnManager_GetColumns(This,dwFlags,rgkeyOrder,cColumns) (This)->lpVtbl->GetColumns(This,dwFlags,rgkeyOrder,cColumns)
   7986 #define IColumnManager_SetColumns(This,rgkeyOrder,cVisible) (This)->lpVtbl->SetColumns(This,rgkeyOrder,cVisible)
   7987 #else
   7988 /*** IUnknown methods ***/
   7989 static inline HRESULT IColumnManager_QueryInterface(IColumnManager* This,REFIID riid,void **ppvObject) {
   7990     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7991 }
   7992 static inline ULONG IColumnManager_AddRef(IColumnManager* This) {
   7993     return This->lpVtbl->AddRef(This);
   7994 }
   7995 static inline ULONG IColumnManager_Release(IColumnManager* This) {
   7996     return This->lpVtbl->Release(This);
   7997 }
   7998 /*** IColumnManager methods ***/
   7999 static inline HRESULT IColumnManager_SetColumnInfo(IColumnManager* This,REFPROPERTYKEY propkey,const CM_COLUMNINFO *pcmci) {
   8000     return This->lpVtbl->SetColumnInfo(This,propkey,pcmci);
   8001 }
   8002 static inline HRESULT IColumnManager_GetColumnInfo(IColumnManager* This,REFPROPERTYKEY propkey,CM_COLUMNINFO *pcmci) {
   8003     return This->lpVtbl->GetColumnInfo(This,propkey,pcmci);
   8004 }
   8005 static inline HRESULT IColumnManager_GetColumnCount(IColumnManager* This,CM_ENUM_FLAGS dwFlags,UINT *puCount) {
   8006     return This->lpVtbl->GetColumnCount(This,dwFlags,puCount);
   8007 }
   8008 static inline HRESULT IColumnManager_GetColumns(IColumnManager* This,CM_ENUM_FLAGS dwFlags,PROPERTYKEY *rgkeyOrder,UINT cColumns) {
   8009     return This->lpVtbl->GetColumns(This,dwFlags,rgkeyOrder,cColumns);
   8010 }
   8011 static inline HRESULT IColumnManager_SetColumns(IColumnManager* This,const PROPERTYKEY *rgkeyOrder,UINT cVisible) {
   8012     return This->lpVtbl->SetColumns(This,rgkeyOrder,cVisible);
   8013 }
   8014 #endif
   8015 #endif
   8016 
   8017 #endif
   8018 
   8019 
   8020 #endif  /* __IColumnManager_INTERFACE_DEFINED__ */
   8021 
   8022 #endif
   8023 
   8024 /*****************************************************************************
   8025  * IFolderFilterSite interface
   8026  */
   8027 #ifndef __IFolderFilterSite_INTERFACE_DEFINED__
   8028 #define __IFolderFilterSite_INTERFACE_DEFINED__
   8029 
   8030 DEFINE_GUID(IID_IFolderFilterSite, 0xc0a651f5, 0xb48b, 0x11d2, 0xb5,0xed, 0x00,0x60,0x97,0xc6,0x86,0xf6);
   8031 #if defined(__cplusplus) && !defined(CINTERFACE)
   8032 MIDL_INTERFACE("c0a651f5-b48b-11d2-b5ed-006097c686f6")
   8033 IFolderFilterSite : public IUnknown
   8034 {
   8035     virtual HRESULT STDMETHODCALLTYPE SetFilter(
   8036         IUnknown *punk) = 0;
   8037 
   8038 };
   8039 #ifdef __CRT_UUID_DECL
   8040 __CRT_UUID_DECL(IFolderFilterSite, 0xc0a651f5, 0xb48b, 0x11d2, 0xb5,0xed, 0x00,0x60,0x97,0xc6,0x86,0xf6)
   8041 #endif
   8042 #else
   8043 typedef struct IFolderFilterSiteVtbl {
   8044     BEGIN_INTERFACE
   8045 
   8046     /*** IUnknown methods ***/
   8047     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8048         IFolderFilterSite *This,
   8049         REFIID riid,
   8050         void **ppvObject);
   8051 
   8052     ULONG (STDMETHODCALLTYPE *AddRef)(
   8053         IFolderFilterSite *This);
   8054 
   8055     ULONG (STDMETHODCALLTYPE *Release)(
   8056         IFolderFilterSite *This);
   8057 
   8058     /*** IFolderFilterSite methods ***/
   8059     HRESULT (STDMETHODCALLTYPE *SetFilter)(
   8060         IFolderFilterSite *This,
   8061         IUnknown *punk);
   8062 
   8063     END_INTERFACE
   8064 } IFolderFilterSiteVtbl;
   8065 
   8066 interface IFolderFilterSite {
   8067     CONST_VTBL IFolderFilterSiteVtbl* lpVtbl;
   8068 };
   8069 
   8070 #ifdef COBJMACROS
   8071 #ifndef WIDL_C_INLINE_WRAPPERS
   8072 /*** IUnknown methods ***/
   8073 #define IFolderFilterSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8074 #define IFolderFilterSite_AddRef(This) (This)->lpVtbl->AddRef(This)
   8075 #define IFolderFilterSite_Release(This) (This)->lpVtbl->Release(This)
   8076 /*** IFolderFilterSite methods ***/
   8077 #define IFolderFilterSite_SetFilter(This,punk) (This)->lpVtbl->SetFilter(This,punk)
   8078 #else
   8079 /*** IUnknown methods ***/
   8080 static inline HRESULT IFolderFilterSite_QueryInterface(IFolderFilterSite* This,REFIID riid,void **ppvObject) {
   8081     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8082 }
   8083 static inline ULONG IFolderFilterSite_AddRef(IFolderFilterSite* This) {
   8084     return This->lpVtbl->AddRef(This);
   8085 }
   8086 static inline ULONG IFolderFilterSite_Release(IFolderFilterSite* This) {
   8087     return This->lpVtbl->Release(This);
   8088 }
   8089 /*** IFolderFilterSite methods ***/
   8090 static inline HRESULT IFolderFilterSite_SetFilter(IFolderFilterSite* This,IUnknown *punk) {
   8091     return This->lpVtbl->SetFilter(This,punk);
   8092 }
   8093 #endif
   8094 #endif
   8095 
   8096 #endif
   8097 
   8098 
   8099 #endif  /* __IFolderFilterSite_INTERFACE_DEFINED__ */
   8100 
   8101 
   8102 /*****************************************************************************
   8103  * IFolderFilter interface
   8104  */
   8105 #ifndef __IFolderFilter_INTERFACE_DEFINED__
   8106 #define __IFolderFilter_INTERFACE_DEFINED__
   8107 
   8108 DEFINE_GUID(IID_IFolderFilter, 0x9cc22886, 0xdc8e, 0x11d2, 0xb1,0xd0, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e);
   8109 #if defined(__cplusplus) && !defined(CINTERFACE)
   8110 MIDL_INTERFACE("9cc22886-dc8e-11d2-b1d0-00c04f8eeb3e")
   8111 IFolderFilter : public IUnknown
   8112 {
   8113     virtual HRESULT STDMETHODCALLTYPE ShouldShow(
   8114         IShellFolder *psf,
   8115         PCIDLIST_ABSOLUTE pidlFolder,
   8116         PCUITEMID_CHILD pidlItem) = 0;
   8117 
   8118     virtual HRESULT STDMETHODCALLTYPE GetEnumFlags(
   8119         IShellFolder *psf,
   8120         PCIDLIST_ABSOLUTE pidlFolder,
   8121         HWND *phwnd,
   8122         DWORD *pgrfFlags) = 0;
   8123 
   8124 };
   8125 #ifdef __CRT_UUID_DECL
   8126 __CRT_UUID_DECL(IFolderFilter, 0x9cc22886, 0xdc8e, 0x11d2, 0xb1,0xd0, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e)
   8127 #endif
   8128 #else
   8129 typedef struct IFolderFilterVtbl {
   8130     BEGIN_INTERFACE
   8131 
   8132     /*** IUnknown methods ***/
   8133     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8134         IFolderFilter *This,
   8135         REFIID riid,
   8136         void **ppvObject);
   8137 
   8138     ULONG (STDMETHODCALLTYPE *AddRef)(
   8139         IFolderFilter *This);
   8140 
   8141     ULONG (STDMETHODCALLTYPE *Release)(
   8142         IFolderFilter *This);
   8143 
   8144     /*** IFolderFilter methods ***/
   8145     HRESULT (STDMETHODCALLTYPE *ShouldShow)(
   8146         IFolderFilter *This,
   8147         IShellFolder *psf,
   8148         PCIDLIST_ABSOLUTE pidlFolder,
   8149         PCUITEMID_CHILD pidlItem);
   8150 
   8151     HRESULT (STDMETHODCALLTYPE *GetEnumFlags)(
   8152         IFolderFilter *This,
   8153         IShellFolder *psf,
   8154         PCIDLIST_ABSOLUTE pidlFolder,
   8155         HWND *phwnd,
   8156         DWORD *pgrfFlags);
   8157 
   8158     END_INTERFACE
   8159 } IFolderFilterVtbl;
   8160 
   8161 interface IFolderFilter {
   8162     CONST_VTBL IFolderFilterVtbl* lpVtbl;
   8163 };
   8164 
   8165 #ifdef COBJMACROS
   8166 #ifndef WIDL_C_INLINE_WRAPPERS
   8167 /*** IUnknown methods ***/
   8168 #define IFolderFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8169 #define IFolderFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   8170 #define IFolderFilter_Release(This) (This)->lpVtbl->Release(This)
   8171 /*** IFolderFilter methods ***/
   8172 #define IFolderFilter_ShouldShow(This,psf,pidlFolder,pidlItem) (This)->lpVtbl->ShouldShow(This,psf,pidlFolder,pidlItem)
   8173 #define IFolderFilter_GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags) (This)->lpVtbl->GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags)
   8174 #else
   8175 /*** IUnknown methods ***/
   8176 static inline HRESULT IFolderFilter_QueryInterface(IFolderFilter* This,REFIID riid,void **ppvObject) {
   8177     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8178 }
   8179 static inline ULONG IFolderFilter_AddRef(IFolderFilter* This) {
   8180     return This->lpVtbl->AddRef(This);
   8181 }
   8182 static inline ULONG IFolderFilter_Release(IFolderFilter* This) {
   8183     return This->lpVtbl->Release(This);
   8184 }
   8185 /*** IFolderFilter methods ***/
   8186 static inline HRESULT IFolderFilter_ShouldShow(IFolderFilter* This,IShellFolder *psf,PCIDLIST_ABSOLUTE pidlFolder,PCUITEMID_CHILD pidlItem) {
   8187     return This->lpVtbl->ShouldShow(This,psf,pidlFolder,pidlItem);
   8188 }
   8189 static inline HRESULT IFolderFilter_GetEnumFlags(IFolderFilter* This,IShellFolder *psf,PCIDLIST_ABSOLUTE pidlFolder,HWND *phwnd,DWORD *pgrfFlags) {
   8190     return This->lpVtbl->GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags);
   8191 }
   8192 #endif
   8193 #endif
   8194 
   8195 #endif
   8196 
   8197 
   8198 #endif  /* __IFolderFilter_INTERFACE_DEFINED__ */
   8199 
   8200 
   8201 /*****************************************************************************
   8202  * IInputObjectSite interface
   8203  */
   8204 #ifndef __IInputObjectSite_INTERFACE_DEFINED__
   8205 #define __IInputObjectSite_INTERFACE_DEFINED__
   8206 
   8207 DEFINE_GUID(IID_IInputObjectSite, 0xf1db8392, 0x7331, 0x11d0, 0x8c,0x99, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8);
   8208 #if defined(__cplusplus) && !defined(CINTERFACE)
   8209 MIDL_INTERFACE("f1db8392-7331-11d0-8c99-00a0c92dbfe8")
   8210 IInputObjectSite : public IUnknown
   8211 {
   8212     virtual HRESULT STDMETHODCALLTYPE OnFocusChangeIS(
   8213         IUnknown *punkObj,
   8214         WINBOOL fSetFocus) = 0;
   8215 
   8216 };
   8217 #ifdef __CRT_UUID_DECL
   8218 __CRT_UUID_DECL(IInputObjectSite, 0xf1db8392, 0x7331, 0x11d0, 0x8c,0x99, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8)
   8219 #endif
   8220 #else
   8221 typedef struct IInputObjectSiteVtbl {
   8222     BEGIN_INTERFACE
   8223 
   8224     /*** IUnknown methods ***/
   8225     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8226         IInputObjectSite *This,
   8227         REFIID riid,
   8228         void **ppvObject);
   8229 
   8230     ULONG (STDMETHODCALLTYPE *AddRef)(
   8231         IInputObjectSite *This);
   8232 
   8233     ULONG (STDMETHODCALLTYPE *Release)(
   8234         IInputObjectSite *This);
   8235 
   8236     /*** IInputObjectSite methods ***/
   8237     HRESULT (STDMETHODCALLTYPE *OnFocusChangeIS)(
   8238         IInputObjectSite *This,
   8239         IUnknown *punkObj,
   8240         WINBOOL fSetFocus);
   8241 
   8242     END_INTERFACE
   8243 } IInputObjectSiteVtbl;
   8244 
   8245 interface IInputObjectSite {
   8246     CONST_VTBL IInputObjectSiteVtbl* lpVtbl;
   8247 };
   8248 
   8249 #ifdef COBJMACROS
   8250 #ifndef WIDL_C_INLINE_WRAPPERS
   8251 /*** IUnknown methods ***/
   8252 #define IInputObjectSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8253 #define IInputObjectSite_AddRef(This) (This)->lpVtbl->AddRef(This)
   8254 #define IInputObjectSite_Release(This) (This)->lpVtbl->Release(This)
   8255 /*** IInputObjectSite methods ***/
   8256 #define IInputObjectSite_OnFocusChangeIS(This,punkObj,fSetFocus) (This)->lpVtbl->OnFocusChangeIS(This,punkObj,fSetFocus)
   8257 #else
   8258 /*** IUnknown methods ***/
   8259 static inline HRESULT IInputObjectSite_QueryInterface(IInputObjectSite* This,REFIID riid,void **ppvObject) {
   8260     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8261 }
   8262 static inline ULONG IInputObjectSite_AddRef(IInputObjectSite* This) {
   8263     return This->lpVtbl->AddRef(This);
   8264 }
   8265 static inline ULONG IInputObjectSite_Release(IInputObjectSite* This) {
   8266     return This->lpVtbl->Release(This);
   8267 }
   8268 /*** IInputObjectSite methods ***/
   8269 static inline HRESULT IInputObjectSite_OnFocusChangeIS(IInputObjectSite* This,IUnknown *punkObj,WINBOOL fSetFocus) {
   8270     return This->lpVtbl->OnFocusChangeIS(This,punkObj,fSetFocus);
   8271 }
   8272 #endif
   8273 #endif
   8274 
   8275 #endif
   8276 
   8277 
   8278 #endif  /* __IInputObjectSite_INTERFACE_DEFINED__ */
   8279 
   8280 
   8281 /*****************************************************************************
   8282  * IInputObject interface
   8283  */
   8284 #ifndef __IInputObject_INTERFACE_DEFINED__
   8285 #define __IInputObject_INTERFACE_DEFINED__
   8286 
   8287 DEFINE_GUID(IID_IInputObject, 0x68284faa, 0x6a48, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4);
   8288 #if defined(__cplusplus) && !defined(CINTERFACE)
   8289 MIDL_INTERFACE("68284faa-6a48-11d0-8c78-00c04fd918b4")
   8290 IInputObject : public IUnknown
   8291 {
   8292     virtual HRESULT STDMETHODCALLTYPE UIActivateIO(
   8293         WINBOOL fActivate,
   8294         MSG *pMsg) = 0;
   8295 
   8296     virtual HRESULT STDMETHODCALLTYPE HasFocusIO(
   8297         ) = 0;
   8298 
   8299     virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorIO(
   8300         MSG *pMsg) = 0;
   8301 
   8302 };
   8303 #ifdef __CRT_UUID_DECL
   8304 __CRT_UUID_DECL(IInputObject, 0x68284faa, 0x6a48, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4)
   8305 #endif
   8306 #else
   8307 typedef struct IInputObjectVtbl {
   8308     BEGIN_INTERFACE
   8309 
   8310     /*** IUnknown methods ***/
   8311     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8312         IInputObject *This,
   8313         REFIID riid,
   8314         void **ppvObject);
   8315 
   8316     ULONG (STDMETHODCALLTYPE *AddRef)(
   8317         IInputObject *This);
   8318 
   8319     ULONG (STDMETHODCALLTYPE *Release)(
   8320         IInputObject *This);
   8321 
   8322     /*** IInputObject methods ***/
   8323     HRESULT (STDMETHODCALLTYPE *UIActivateIO)(
   8324         IInputObject *This,
   8325         WINBOOL fActivate,
   8326         MSG *pMsg);
   8327 
   8328     HRESULT (STDMETHODCALLTYPE *HasFocusIO)(
   8329         IInputObject *This);
   8330 
   8331     HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorIO)(
   8332         IInputObject *This,
   8333         MSG *pMsg);
   8334 
   8335     END_INTERFACE
   8336 } IInputObjectVtbl;
   8337 
   8338 interface IInputObject {
   8339     CONST_VTBL IInputObjectVtbl* lpVtbl;
   8340 };
   8341 
   8342 #ifdef COBJMACROS
   8343 #ifndef WIDL_C_INLINE_WRAPPERS
   8344 /*** IUnknown methods ***/
   8345 #define IInputObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8346 #define IInputObject_AddRef(This) (This)->lpVtbl->AddRef(This)
   8347 #define IInputObject_Release(This) (This)->lpVtbl->Release(This)
   8348 /*** IInputObject methods ***/
   8349 #define IInputObject_UIActivateIO(This,fActivate,pMsg) (This)->lpVtbl->UIActivateIO(This,fActivate,pMsg)
   8350 #define IInputObject_HasFocusIO(This) (This)->lpVtbl->HasFocusIO(This)
   8351 #define IInputObject_TranslateAcceleratorIO(This,pMsg) (This)->lpVtbl->TranslateAcceleratorIO(This,pMsg)
   8352 #else
   8353 /*** IUnknown methods ***/
   8354 static inline HRESULT IInputObject_QueryInterface(IInputObject* This,REFIID riid,void **ppvObject) {
   8355     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8356 }
   8357 static inline ULONG IInputObject_AddRef(IInputObject* This) {
   8358     return This->lpVtbl->AddRef(This);
   8359 }
   8360 static inline ULONG IInputObject_Release(IInputObject* This) {
   8361     return This->lpVtbl->Release(This);
   8362 }
   8363 /*** IInputObject methods ***/
   8364 static inline HRESULT IInputObject_UIActivateIO(IInputObject* This,WINBOOL fActivate,MSG *pMsg) {
   8365     return This->lpVtbl->UIActivateIO(This,fActivate,pMsg);
   8366 }
   8367 static inline HRESULT IInputObject_HasFocusIO(IInputObject* This) {
   8368     return This->lpVtbl->HasFocusIO(This);
   8369 }
   8370 static inline HRESULT IInputObject_TranslateAcceleratorIO(IInputObject* This,MSG *pMsg) {
   8371     return This->lpVtbl->TranslateAcceleratorIO(This,pMsg);
   8372 }
   8373 #endif
   8374 #endif
   8375 
   8376 #endif
   8377 
   8378 
   8379 #endif  /* __IInputObject_INTERFACE_DEFINED__ */
   8380 
   8381 
   8382 /*****************************************************************************
   8383  * IInputObject2 interface
   8384  */
   8385 #ifndef __IInputObject2_INTERFACE_DEFINED__
   8386 #define __IInputObject2_INTERFACE_DEFINED__
   8387 
   8388 DEFINE_GUID(IID_IInputObject2, 0x6915c085, 0x510b, 0x44cd, 0x94,0xaf, 0x28,0xdf,0xa5,0x6c,0xf9,0x2b);
   8389 #if defined(__cplusplus) && !defined(CINTERFACE)
   8390 MIDL_INTERFACE("6915c085-510b-44cd-94af-28dfa56cf92b")
   8391 IInputObject2 : public IInputObject
   8392 {
   8393     virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorGlobal(
   8394         MSG *pMsg) = 0;
   8395 
   8396 };
   8397 #ifdef __CRT_UUID_DECL
   8398 __CRT_UUID_DECL(IInputObject2, 0x6915c085, 0x510b, 0x44cd, 0x94,0xaf, 0x28,0xdf,0xa5,0x6c,0xf9,0x2b)
   8399 #endif
   8400 #else
   8401 typedef struct IInputObject2Vtbl {
   8402     BEGIN_INTERFACE
   8403 
   8404     /*** IUnknown methods ***/
   8405     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8406         IInputObject2 *This,
   8407         REFIID riid,
   8408         void **ppvObject);
   8409 
   8410     ULONG (STDMETHODCALLTYPE *AddRef)(
   8411         IInputObject2 *This);
   8412 
   8413     ULONG (STDMETHODCALLTYPE *Release)(
   8414         IInputObject2 *This);
   8415 
   8416     /*** IInputObject methods ***/
   8417     HRESULT (STDMETHODCALLTYPE *UIActivateIO)(
   8418         IInputObject2 *This,
   8419         WINBOOL fActivate,
   8420         MSG *pMsg);
   8421 
   8422     HRESULT (STDMETHODCALLTYPE *HasFocusIO)(
   8423         IInputObject2 *This);
   8424 
   8425     HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorIO)(
   8426         IInputObject2 *This,
   8427         MSG *pMsg);
   8428 
   8429     /*** IInputObject2 methods ***/
   8430     HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorGlobal)(
   8431         IInputObject2 *This,
   8432         MSG *pMsg);
   8433 
   8434     END_INTERFACE
   8435 } IInputObject2Vtbl;
   8436 
   8437 interface IInputObject2 {
   8438     CONST_VTBL IInputObject2Vtbl* lpVtbl;
   8439 };
   8440 
   8441 #ifdef COBJMACROS
   8442 #ifndef WIDL_C_INLINE_WRAPPERS
   8443 /*** IUnknown methods ***/
   8444 #define IInputObject2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8445 #define IInputObject2_AddRef(This) (This)->lpVtbl->AddRef(This)
   8446 #define IInputObject2_Release(This) (This)->lpVtbl->Release(This)
   8447 /*** IInputObject methods ***/
   8448 #define IInputObject2_UIActivateIO(This,fActivate,pMsg) (This)->lpVtbl->UIActivateIO(This,fActivate,pMsg)
   8449 #define IInputObject2_HasFocusIO(This) (This)->lpVtbl->HasFocusIO(This)
   8450 #define IInputObject2_TranslateAcceleratorIO(This,pMsg) (This)->lpVtbl->TranslateAcceleratorIO(This,pMsg)
   8451 /*** IInputObject2 methods ***/
   8452 #define IInputObject2_TranslateAcceleratorGlobal(This,pMsg) (This)->lpVtbl->TranslateAcceleratorGlobal(This,pMsg)
   8453 #else
   8454 /*** IUnknown methods ***/
   8455 static inline HRESULT IInputObject2_QueryInterface(IInputObject2* This,REFIID riid,void **ppvObject) {
   8456     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8457 }
   8458 static inline ULONG IInputObject2_AddRef(IInputObject2* This) {
   8459     return This->lpVtbl->AddRef(This);
   8460 }
   8461 static inline ULONG IInputObject2_Release(IInputObject2* This) {
   8462     return This->lpVtbl->Release(This);
   8463 }
   8464 /*** IInputObject methods ***/
   8465 static inline HRESULT IInputObject2_UIActivateIO(IInputObject2* This,WINBOOL fActivate,MSG *pMsg) {
   8466     return This->lpVtbl->UIActivateIO(This,fActivate,pMsg);
   8467 }
   8468 static inline HRESULT IInputObject2_HasFocusIO(IInputObject2* This) {
   8469     return This->lpVtbl->HasFocusIO(This);
   8470 }
   8471 static inline HRESULT IInputObject2_TranslateAcceleratorIO(IInputObject2* This,MSG *pMsg) {
   8472     return This->lpVtbl->TranslateAcceleratorIO(This,pMsg);
   8473 }
   8474 /*** IInputObject2 methods ***/
   8475 static inline HRESULT IInputObject2_TranslateAcceleratorGlobal(IInputObject2* This,MSG *pMsg) {
   8476     return This->lpVtbl->TranslateAcceleratorGlobal(This,pMsg);
   8477 }
   8478 #endif
   8479 #endif
   8480 
   8481 #endif
   8482 
   8483 
   8484 #endif  /* __IInputObject2_INTERFACE_DEFINED__ */
   8485 
   8486 
   8487 /*****************************************************************************
   8488  * IShellIcon interface
   8489  */
   8490 #ifndef __IShellIcon_INTERFACE_DEFINED__
   8491 #define __IShellIcon_INTERFACE_DEFINED__
   8492 
   8493 DEFINE_GUID(IID_IShellIcon, 0x000214e5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   8494 #if defined(__cplusplus) && !defined(CINTERFACE)
   8495 MIDL_INTERFACE("000214e5-0000-0000-c000-000000000046")
   8496 IShellIcon : public IUnknown
   8497 {
   8498     virtual HRESULT STDMETHODCALLTYPE GetIconOf(
   8499         PCUITEMID_CHILD pidl,
   8500         UINT flags,
   8501         int *pIconIndex) = 0;
   8502 
   8503 };
   8504 #ifdef __CRT_UUID_DECL
   8505 __CRT_UUID_DECL(IShellIcon, 0x000214e5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   8506 #endif
   8507 #else
   8508 typedef struct IShellIconVtbl {
   8509     BEGIN_INTERFACE
   8510 
   8511     /*** IUnknown methods ***/
   8512     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8513         IShellIcon *This,
   8514         REFIID riid,
   8515         void **ppvObject);
   8516 
   8517     ULONG (STDMETHODCALLTYPE *AddRef)(
   8518         IShellIcon *This);
   8519 
   8520     ULONG (STDMETHODCALLTYPE *Release)(
   8521         IShellIcon *This);
   8522 
   8523     /*** IShellIcon methods ***/
   8524     HRESULT (STDMETHODCALLTYPE *GetIconOf)(
   8525         IShellIcon *This,
   8526         PCUITEMID_CHILD pidl,
   8527         UINT flags,
   8528         int *pIconIndex);
   8529 
   8530     END_INTERFACE
   8531 } IShellIconVtbl;
   8532 
   8533 interface IShellIcon {
   8534     CONST_VTBL IShellIconVtbl* lpVtbl;
   8535 };
   8536 
   8537 #ifdef COBJMACROS
   8538 #ifndef WIDL_C_INLINE_WRAPPERS
   8539 /*** IUnknown methods ***/
   8540 #define IShellIcon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8541 #define IShellIcon_AddRef(This) (This)->lpVtbl->AddRef(This)
   8542 #define IShellIcon_Release(This) (This)->lpVtbl->Release(This)
   8543 /*** IShellIcon methods ***/
   8544 #define IShellIcon_GetIconOf(This,pidl,flags,pIconIndex) (This)->lpVtbl->GetIconOf(This,pidl,flags,pIconIndex)
   8545 #else
   8546 /*** IUnknown methods ***/
   8547 static inline HRESULT IShellIcon_QueryInterface(IShellIcon* This,REFIID riid,void **ppvObject) {
   8548     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8549 }
   8550 static inline ULONG IShellIcon_AddRef(IShellIcon* This) {
   8551     return This->lpVtbl->AddRef(This);
   8552 }
   8553 static inline ULONG IShellIcon_Release(IShellIcon* This) {
   8554     return This->lpVtbl->Release(This);
   8555 }
   8556 /*** IShellIcon methods ***/
   8557 static inline HRESULT IShellIcon_GetIconOf(IShellIcon* This,PCUITEMID_CHILD pidl,UINT flags,int *pIconIndex) {
   8558     return This->lpVtbl->GetIconOf(This,pidl,flags,pIconIndex);
   8559 }
   8560 #endif
   8561 #endif
   8562 
   8563 #endif
   8564 
   8565 
   8566 #endif  /* __IShellIcon_INTERFACE_DEFINED__ */
   8567 
   8568 
   8569 #define SBSP_DEFBROWSER 0x0000
   8570 #define SBSP_SAMEBROWSER 0x0001
   8571 #define SBSP_NEWBROWSER 0x0002
   8572 
   8573 #define SBSP_DEFMODE 0x0000
   8574 #define SBSP_OPENMODE 0x0010
   8575 #define SBSP_EXPLOREMODE 0x0020
   8576 #define SBSP_HELPMODE 0x0040
   8577 #define SBSP_NOTRANSFERHIST 0x0080
   8578 
   8579 #define SBSP_ABSOLUTE 0x0000
   8580 #define SBSP_RELATIVE 0x1000
   8581 #define SBSP_PARENT 0x2000
   8582 #define SBSP_NAVIGATEBACK 0x4000
   8583 #define SBSP_NAVIGATEFORWARD 0x8000
   8584 #define SBSP_ALLOW_AUTONAVIGATE 0x00010000
   8585 #if NTDDI_VERSION >= NTDDI_VISTA
   8586 #define SBSP_KEEPSAMETEMPLATE 0x00020000
   8587 #define SBSP_KEEPWORDWHEELTEXT 0x00040000
   8588 #define SBSP_ACTIVATE_NOFOCUS 0x00080000
   8589 #define SBSP_CREATENOHISTORY 0x00100000
   8590 #define SBSP_PLAYNOSOUND 0x00200000
   8591 #endif
   8592 #if _WIN32_IE >= _WIN32_IE_IE60SP2
   8593 #define SBSP_CALLERUNTRUSTED 0x00800000
   8594 #define SBSP_TRUSTFIRSTDOWNLOAD 0x01000000
   8595 #define SBSP_UNTRUSTEDFORDOWNLOAD 0x02000000
   8596 #endif
   8597 #define SBSP_NOAUTOSELECT 0x04000000
   8598 #define SBSP_WRITENOHISTORY 0x08000000
   8599 #if _WIN32_IE >= _WIN32_IE_IE60SP2
   8600 #define SBSP_TRUSTEDFORACTIVEX 0x10000000
   8601 #endif
   8602 #if _WIN32_IE >= _WIN32_IE_IE70
   8603 #define SBSP_FEEDNAVIGATION 0x20000000
   8604 #endif
   8605 #define SBSP_REDIRECT 0x40000000
   8606 #define SBSP_INITIATEDBYHLINKFRAME 0x80000000
   8607 
   8608 #define FCW_STATUS 0x0001
   8609 #define FCW_TOOLBAR 0x0002
   8610 #define FCW_TREE 0x0003
   8611 #define FCW_INTERNETBAR 0x0006
   8612 #define FCW_PROGRESS 0x0008
   8613 
   8614 #define FCT_MERGE 0x0001
   8615 #define FCT_CONFIGABLE 0x0002
   8616 #define FCT_ADDTOEND 0x0004
   8617 
   8618 #if 0
   8619 typedef LPARAM LPTBBUTTONSB;
   8620 #else
   8621 #include <commctrl.h>
   8622 
   8623 typedef LPTBBUTTON LPTBBUTTONSB;
   8624 #endif
   8625 
   8626 /*****************************************************************************
   8627  * IShellBrowser interface
   8628  */
   8629 #ifndef __IShellBrowser_INTERFACE_DEFINED__
   8630 #define __IShellBrowser_INTERFACE_DEFINED__
   8631 
   8632 DEFINE_GUID(IID_IShellBrowser, 0x000214e2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   8633 #if defined(__cplusplus) && !defined(CINTERFACE)
   8634 MIDL_INTERFACE("000214e2-0000-0000-c000-000000000046")
   8635 IShellBrowser : public IOleWindow
   8636 {
   8637     virtual HRESULT STDMETHODCALLTYPE InsertMenusSB(
   8638         HMENU hmenuShared,
   8639         LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0;
   8640 
   8641     virtual HRESULT STDMETHODCALLTYPE SetMenuSB(
   8642         HMENU hmenuShared,
   8643         HOLEMENU holemenuRes,
   8644         HWND hwndActiveObject) = 0;
   8645 
   8646     virtual HRESULT STDMETHODCALLTYPE RemoveMenusSB(
   8647         HMENU hmenuShared) = 0;
   8648 
   8649     virtual HRESULT STDMETHODCALLTYPE SetStatusTextSB(
   8650         LPCWSTR pszStatusText) = 0;
   8651 
   8652     virtual HRESULT STDMETHODCALLTYPE EnableModelessSB(
   8653         WINBOOL fEnable) = 0;
   8654 
   8655     virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorSB(
   8656         MSG *pmsg,
   8657         WORD wID) = 0;
   8658 
   8659     virtual HRESULT STDMETHODCALLTYPE BrowseObject(
   8660         PCUIDLIST_RELATIVE pidl,
   8661         UINT wFlags) = 0;
   8662 
   8663     virtual HRESULT STDMETHODCALLTYPE GetViewStateStream(
   8664         DWORD grfMode,
   8665         IStream **ppStrm) = 0;
   8666 
   8667     virtual HRESULT STDMETHODCALLTYPE GetControlWindow(
   8668         UINT id,
   8669         HWND *phwnd) = 0;
   8670 
   8671     virtual HRESULT STDMETHODCALLTYPE SendControlMsg(
   8672         UINT id,
   8673         UINT uMsg,
   8674         WPARAM wParam,
   8675         LPARAM lParam,
   8676         LRESULT *pret) = 0;
   8677 
   8678     virtual HRESULT STDMETHODCALLTYPE QueryActiveShellView(
   8679         IShellView **ppshv) = 0;
   8680 
   8681     virtual HRESULT STDMETHODCALLTYPE OnViewWindowActive(
   8682         IShellView *pshv) = 0;
   8683 
   8684     virtual HRESULT STDMETHODCALLTYPE SetToolbarItems(
   8685         LPTBBUTTONSB lpButtons,
   8686         UINT nButtons,
   8687         UINT uFlags) = 0;
   8688 
   8689 };
   8690 #ifdef __CRT_UUID_DECL
   8691 __CRT_UUID_DECL(IShellBrowser, 0x000214e2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
   8692 #endif
   8693 #else
   8694 typedef struct IShellBrowserVtbl {
   8695     BEGIN_INTERFACE
   8696 
   8697     /*** IUnknown methods ***/
   8698     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8699         IShellBrowser *This,
   8700         REFIID riid,
   8701         void **ppvObject);
   8702 
   8703     ULONG (STDMETHODCALLTYPE *AddRef)(
   8704         IShellBrowser *This);
   8705 
   8706     ULONG (STDMETHODCALLTYPE *Release)(
   8707         IShellBrowser *This);
   8708 
   8709     /*** IOleWindow methods ***/
   8710     HRESULT (STDMETHODCALLTYPE *GetWindow)(
   8711         IShellBrowser *This,
   8712         HWND *phwnd);
   8713 
   8714     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
   8715         IShellBrowser *This,
   8716         WINBOOL fEnterMode);
   8717 
   8718     /*** IShellBrowser methods ***/
   8719     HRESULT (STDMETHODCALLTYPE *InsertMenusSB)(
   8720         IShellBrowser *This,
   8721         HMENU hmenuShared,
   8722         LPOLEMENUGROUPWIDTHS lpMenuWidths);
   8723 
   8724     HRESULT (STDMETHODCALLTYPE *SetMenuSB)(
   8725         IShellBrowser *This,
   8726         HMENU hmenuShared,
   8727         HOLEMENU holemenuRes,
   8728         HWND hwndActiveObject);
   8729 
   8730     HRESULT (STDMETHODCALLTYPE *RemoveMenusSB)(
   8731         IShellBrowser *This,
   8732         HMENU hmenuShared);
   8733 
   8734     HRESULT (STDMETHODCALLTYPE *SetStatusTextSB)(
   8735         IShellBrowser *This,
   8736         LPCWSTR pszStatusText);
   8737 
   8738     HRESULT (STDMETHODCALLTYPE *EnableModelessSB)(
   8739         IShellBrowser *This,
   8740         WINBOOL fEnable);
   8741 
   8742     HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorSB)(
   8743         IShellBrowser *This,
   8744         MSG *pmsg,
   8745         WORD wID);
   8746 
   8747     HRESULT (STDMETHODCALLTYPE *BrowseObject)(
   8748         IShellBrowser *This,
   8749         PCUIDLIST_RELATIVE pidl,
   8750         UINT wFlags);
   8751 
   8752     HRESULT (STDMETHODCALLTYPE *GetViewStateStream)(
   8753         IShellBrowser *This,
   8754         DWORD grfMode,
   8755         IStream **ppStrm);
   8756 
   8757     HRESULT (STDMETHODCALLTYPE *GetControlWindow)(
   8758         IShellBrowser *This,
   8759         UINT id,
   8760         HWND *phwnd);
   8761 
   8762     HRESULT (STDMETHODCALLTYPE *SendControlMsg)(
   8763         IShellBrowser *This,
   8764         UINT id,
   8765         UINT uMsg,
   8766         WPARAM wParam,
   8767         LPARAM lParam,
   8768         LRESULT *pret);
   8769 
   8770     HRESULT (STDMETHODCALLTYPE *QueryActiveShellView)(
   8771         IShellBrowser *This,
   8772         IShellView **ppshv);
   8773 
   8774     HRESULT (STDMETHODCALLTYPE *OnViewWindowActive)(
   8775         IShellBrowser *This,
   8776         IShellView *pshv);
   8777 
   8778     HRESULT (STDMETHODCALLTYPE *SetToolbarItems)(
   8779         IShellBrowser *This,
   8780         LPTBBUTTONSB lpButtons,
   8781         UINT nButtons,
   8782         UINT uFlags);
   8783 
   8784     END_INTERFACE
   8785 } IShellBrowserVtbl;
   8786 
   8787 interface IShellBrowser {
   8788     CONST_VTBL IShellBrowserVtbl* lpVtbl;
   8789 };
   8790 
   8791 #ifdef COBJMACROS
   8792 #ifndef WIDL_C_INLINE_WRAPPERS
   8793 /*** IUnknown methods ***/
   8794 #define IShellBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8795 #define IShellBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
   8796 #define IShellBrowser_Release(This) (This)->lpVtbl->Release(This)
   8797 /*** IOleWindow methods ***/
   8798 #define IShellBrowser_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   8799 #define IShellBrowser_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   8800 /*** IShellBrowser methods ***/
   8801 #define IShellBrowser_InsertMenusSB(This,hmenuShared,lpMenuWidths) (This)->lpVtbl->InsertMenusSB(This,hmenuShared,lpMenuWidths)
   8802 #define IShellBrowser_SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject) (This)->lpVtbl->SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject)
   8803 #define IShellBrowser_RemoveMenusSB(This,hmenuShared) (This)->lpVtbl->RemoveMenusSB(This,hmenuShared)
   8804 #define IShellBrowser_SetStatusTextSB(This,pszStatusText) (This)->lpVtbl->SetStatusTextSB(This,pszStatusText)
   8805 #define IShellBrowser_EnableModelessSB(This,fEnable) (This)->lpVtbl->EnableModelessSB(This,fEnable)
   8806 #define IShellBrowser_TranslateAcceleratorSB(This,pmsg,wID) (This)->lpVtbl->TranslateAcceleratorSB(This,pmsg,wID)
   8807 #define IShellBrowser_BrowseObject(This,pidl,wFlags) (This)->lpVtbl->BrowseObject(This,pidl,wFlags)
   8808 #define IShellBrowser_GetViewStateStream(This,grfMode,ppStrm) (This)->lpVtbl->GetViewStateStream(This,grfMode,ppStrm)
   8809 #define IShellBrowser_GetControlWindow(This,id,phwnd) (This)->lpVtbl->GetControlWindow(This,id,phwnd)
   8810 #define IShellBrowser_SendControlMsg(This,id,uMsg,wParam,lParam,pret) (This)->lpVtbl->SendControlMsg(This,id,uMsg,wParam,lParam,pret)
   8811 #define IShellBrowser_QueryActiveShellView(This,ppshv) (This)->lpVtbl->QueryActiveShellView(This,ppshv)
   8812 #define IShellBrowser_OnViewWindowActive(This,pshv) (This)->lpVtbl->OnViewWindowActive(This,pshv)
   8813 #define IShellBrowser_SetToolbarItems(This,lpButtons,nButtons,uFlags) (This)->lpVtbl->SetToolbarItems(This,lpButtons,nButtons,uFlags)
   8814 #else
   8815 /*** IUnknown methods ***/
   8816 static inline HRESULT IShellBrowser_QueryInterface(IShellBrowser* This,REFIID riid,void **ppvObject) {
   8817     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8818 }
   8819 static inline ULONG IShellBrowser_AddRef(IShellBrowser* This) {
   8820     return This->lpVtbl->AddRef(This);
   8821 }
   8822 static inline ULONG IShellBrowser_Release(IShellBrowser* This) {
   8823     return This->lpVtbl->Release(This);
   8824 }
   8825 /*** IOleWindow methods ***/
   8826 static inline HRESULT IShellBrowser_GetWindow(IShellBrowser* This,HWND *phwnd) {
   8827     return This->lpVtbl->GetWindow(This,phwnd);
   8828 }
   8829 static inline HRESULT IShellBrowser_ContextSensitiveHelp(IShellBrowser* This,WINBOOL fEnterMode) {
   8830     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
   8831 }
   8832 /*** IShellBrowser methods ***/
   8833 static inline HRESULT IShellBrowser_InsertMenusSB(IShellBrowser* This,HMENU hmenuShared,LPOLEMENUGROUPWIDTHS lpMenuWidths) {
   8834     return This->lpVtbl->InsertMenusSB(This,hmenuShared,lpMenuWidths);
   8835 }
   8836 static inline HRESULT IShellBrowser_SetMenuSB(IShellBrowser* This,HMENU hmenuShared,HOLEMENU holemenuRes,HWND hwndActiveObject) {
   8837     return This->lpVtbl->SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject);
   8838 }
   8839 static inline HRESULT IShellBrowser_RemoveMenusSB(IShellBrowser* This,HMENU hmenuShared) {
   8840     return This->lpVtbl->RemoveMenusSB(This,hmenuShared);
   8841 }
   8842 static inline HRESULT IShellBrowser_SetStatusTextSB(IShellBrowser* This,LPCWSTR pszStatusText) {
   8843     return This->lpVtbl->SetStatusTextSB(This,pszStatusText);
   8844 }
   8845 static inline HRESULT IShellBrowser_EnableModelessSB(IShellBrowser* This,WINBOOL fEnable) {
   8846     return This->lpVtbl->EnableModelessSB(This,fEnable);
   8847 }
   8848 static inline HRESULT IShellBrowser_TranslateAcceleratorSB(IShellBrowser* This,MSG *pmsg,WORD wID) {
   8849     return This->lpVtbl->TranslateAcceleratorSB(This,pmsg,wID);
   8850 }
   8851 static inline HRESULT IShellBrowser_BrowseObject(IShellBrowser* This,PCUIDLIST_RELATIVE pidl,UINT wFlags) {
   8852     return This->lpVtbl->BrowseObject(This,pidl,wFlags);
   8853 }
   8854 static inline HRESULT IShellBrowser_GetViewStateStream(IShellBrowser* This,DWORD grfMode,IStream **ppStrm) {
   8855     return This->lpVtbl->GetViewStateStream(This,grfMode,ppStrm);
   8856 }
   8857 static inline HRESULT IShellBrowser_GetControlWindow(IShellBrowser* This,UINT id,HWND *phwnd) {
   8858     return This->lpVtbl->GetControlWindow(This,id,phwnd);
   8859 }
   8860 static inline HRESULT IShellBrowser_SendControlMsg(IShellBrowser* This,UINT id,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *pret) {
   8861     return This->lpVtbl->SendControlMsg(This,id,uMsg,wParam,lParam,pret);
   8862 }
   8863 static inline HRESULT IShellBrowser_QueryActiveShellView(IShellBrowser* This,IShellView **ppshv) {
   8864     return This->lpVtbl->QueryActiveShellView(This,ppshv);
   8865 }
   8866 static inline HRESULT IShellBrowser_OnViewWindowActive(IShellBrowser* This,IShellView *pshv) {
   8867     return This->lpVtbl->OnViewWindowActive(This,pshv);
   8868 }
   8869 static inline HRESULT IShellBrowser_SetToolbarItems(IShellBrowser* This,LPTBBUTTONSB lpButtons,UINT nButtons,UINT uFlags) {
   8870     return This->lpVtbl->SetToolbarItems(This,lpButtons,nButtons,uFlags);
   8871 }
   8872 #endif
   8873 #endif
   8874 
   8875 #endif
   8876 
   8877 
   8878 #endif  /* __IShellBrowser_INTERFACE_DEFINED__ */
   8879 
   8880 
   8881 typedef IShellBrowser *LPSHELLBROWSER;
   8882 
   8883 /*****************************************************************************
   8884  * IProfferService interface
   8885  */
   8886 #ifndef __IProfferService_INTERFACE_DEFINED__
   8887 #define __IProfferService_INTERFACE_DEFINED__
   8888 
   8889 DEFINE_GUID(IID_IProfferService, 0xcb728b20, 0xf786, 0x11ce, 0x92,0xad, 0x00,0xaa,0x00,0xa7,0x4c,0xd0);
   8890 #if defined(__cplusplus) && !defined(CINTERFACE)
   8891 MIDL_INTERFACE("cb728b20-f786-11ce-92ad-00aa00a74cd0")
   8892 IProfferService : public IUnknown
   8893 {
   8894     virtual HRESULT STDMETHODCALLTYPE ProfferService(
   8895         REFGUID guidService,
   8896         IServiceProvider *psp,
   8897         DWORD *pdwCookie) = 0;
   8898 
   8899     virtual HRESULT STDMETHODCALLTYPE RevokeService(
   8900         DWORD dwCookie) = 0;
   8901 
   8902 };
   8903 #ifdef __CRT_UUID_DECL
   8904 __CRT_UUID_DECL(IProfferService, 0xcb728b20, 0xf786, 0x11ce, 0x92,0xad, 0x00,0xaa,0x00,0xa7,0x4c,0xd0)
   8905 #endif
   8906 #else
   8907 typedef struct IProfferServiceVtbl {
   8908     BEGIN_INTERFACE
   8909 
   8910     /*** IUnknown methods ***/
   8911     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   8912         IProfferService *This,
   8913         REFIID riid,
   8914         void **ppvObject);
   8915 
   8916     ULONG (STDMETHODCALLTYPE *AddRef)(
   8917         IProfferService *This);
   8918 
   8919     ULONG (STDMETHODCALLTYPE *Release)(
   8920         IProfferService *This);
   8921 
   8922     /*** IProfferService methods ***/
   8923     HRESULT (STDMETHODCALLTYPE *ProfferService)(
   8924         IProfferService *This,
   8925         REFGUID guidService,
   8926         IServiceProvider *psp,
   8927         DWORD *pdwCookie);
   8928 
   8929     HRESULT (STDMETHODCALLTYPE *RevokeService)(
   8930         IProfferService *This,
   8931         DWORD dwCookie);
   8932 
   8933     END_INTERFACE
   8934 } IProfferServiceVtbl;
   8935 
   8936 interface IProfferService {
   8937     CONST_VTBL IProfferServiceVtbl* lpVtbl;
   8938 };
   8939 
   8940 #ifdef COBJMACROS
   8941 #ifndef WIDL_C_INLINE_WRAPPERS
   8942 /*** IUnknown methods ***/
   8943 #define IProfferService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   8944 #define IProfferService_AddRef(This) (This)->lpVtbl->AddRef(This)
   8945 #define IProfferService_Release(This) (This)->lpVtbl->Release(This)
   8946 /*** IProfferService methods ***/
   8947 #define IProfferService_ProfferService(This,guidService,psp,pdwCookie) (This)->lpVtbl->ProfferService(This,guidService,psp,pdwCookie)
   8948 #define IProfferService_RevokeService(This,dwCookie) (This)->lpVtbl->RevokeService(This,dwCookie)
   8949 #else
   8950 /*** IUnknown methods ***/
   8951 static inline HRESULT IProfferService_QueryInterface(IProfferService* This,REFIID riid,void **ppvObject) {
   8952     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   8953 }
   8954 static inline ULONG IProfferService_AddRef(IProfferService* This) {
   8955     return This->lpVtbl->AddRef(This);
   8956 }
   8957 static inline ULONG IProfferService_Release(IProfferService* This) {
   8958     return This->lpVtbl->Release(This);
   8959 }
   8960 /*** IProfferService methods ***/
   8961 static inline HRESULT IProfferService_ProfferService(IProfferService* This,REFGUID guidService,IServiceProvider *psp,DWORD *pdwCookie) {
   8962     return This->lpVtbl->ProfferService(This,guidService,psp,pdwCookie);
   8963 }
   8964 static inline HRESULT IProfferService_RevokeService(IProfferService* This,DWORD dwCookie) {
   8965     return This->lpVtbl->RevokeService(This,dwCookie);
   8966 }
   8967 #endif
   8968 #endif
   8969 
   8970 #endif
   8971 
   8972 
   8973 #endif  /* __IProfferService_INTERFACE_DEFINED__ */
   8974 
   8975 
   8976 #define SID_SProfferService IID_IProfferService
   8977 #define STR_DONT_RESOLVE_LINK L"Don't Resolve Link"
   8978 #define STR_GET_ASYNC_HANDLER L"GetAsyncHandler"
   8979 
   8980 /*****************************************************************************
   8981  * IShellItem interface
   8982  */
   8983 #ifndef __IShellItem_INTERFACE_DEFINED__
   8984 #define __IShellItem_INTERFACE_DEFINED__
   8985 
   8986 typedef enum _SIGDN {
   8987     SIGDN_NORMALDISPLAY = 0x0,
   8988     SIGDN_PARENTRELATIVEPARSING = (int)0x80018001,
   8989     SIGDN_DESKTOPABSOLUTEPARSING = (int)0x80028000,
   8990     SIGDN_PARENTRELATIVEEDITING = (int)0x80031001,
   8991     SIGDN_DESKTOPABSOLUTEEDITING = (int)0x8004c000,
   8992     SIGDN_FILESYSPATH = (int)0x80058000,
   8993     SIGDN_URL = (int)0x80068000,
   8994     SIGDN_PARENTRELATIVEFORADDRESSBAR = (int)0x8007c001,
   8995     SIGDN_PARENTRELATIVE = (int)0x80080001,
   8996     SIGDN_PARENTRELATIVEFORUI = (int)0x80094001
   8997 } SIGDN;
   8998 
   8999 enum _SICHINTF {
   9000     SICHINT_DISPLAY = 0x0,
   9001     SICHINT_ALLFIELDS = (int)0x80000000,
   9002     SICHINT_CANONICAL = 0x10000000,
   9003     SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL = 0x20000000
   9004 };
   9005 
   9006 typedef DWORD SICHINTF;
   9007 
   9008 DEFINE_GUID(IID_IShellItem, 0x43826d1e, 0xe718, 0x42ee, 0xbc,0x55, 0xa1,0xe2,0x61,0xc3,0x7b,0xfe);
   9009 #if defined(__cplusplus) && !defined(CINTERFACE)
   9010 MIDL_INTERFACE("43826d1e-e718-42ee-bc55-a1e261c37bfe")
   9011 IShellItem : public IUnknown
   9012 {
   9013     virtual HRESULT STDMETHODCALLTYPE BindToHandler(
   9014         IBindCtx *pbc,
   9015         REFGUID bhid,
   9016         REFIID riid,
   9017         void **ppv) = 0;
   9018 
   9019     virtual HRESULT STDMETHODCALLTYPE GetParent(
   9020         IShellItem **ppsi) = 0;
   9021 
   9022     virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
   9023         SIGDN sigdnName,
   9024         LPWSTR *ppszName) = 0;
   9025 
   9026     virtual HRESULT STDMETHODCALLTYPE GetAttributes(
   9027         SFGAOF sfgaoMask,
   9028         SFGAOF *psfgaoAttribs) = 0;
   9029 
   9030     virtual HRESULT STDMETHODCALLTYPE Compare(
   9031         IShellItem *psi,
   9032         SICHINTF hint,
   9033         int *piOrder) = 0;
   9034 
   9035 };
   9036 #ifdef __CRT_UUID_DECL
   9037 __CRT_UUID_DECL(IShellItem, 0x43826d1e, 0xe718, 0x42ee, 0xbc,0x55, 0xa1,0xe2,0x61,0xc3,0x7b,0xfe)
   9038 #endif
   9039 #else
   9040 typedef struct IShellItemVtbl {
   9041     BEGIN_INTERFACE
   9042 
   9043     /*** IUnknown methods ***/
   9044     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9045         IShellItem *This,
   9046         REFIID riid,
   9047         void **ppvObject);
   9048 
   9049     ULONG (STDMETHODCALLTYPE *AddRef)(
   9050         IShellItem *This);
   9051 
   9052     ULONG (STDMETHODCALLTYPE *Release)(
   9053         IShellItem *This);
   9054 
   9055     /*** IShellItem methods ***/
   9056     HRESULT (STDMETHODCALLTYPE *BindToHandler)(
   9057         IShellItem *This,
   9058         IBindCtx *pbc,
   9059         REFGUID bhid,
   9060         REFIID riid,
   9061         void **ppv);
   9062 
   9063     HRESULT (STDMETHODCALLTYPE *GetParent)(
   9064         IShellItem *This,
   9065         IShellItem **ppsi);
   9066 
   9067     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
   9068         IShellItem *This,
   9069         SIGDN sigdnName,
   9070         LPWSTR *ppszName);
   9071 
   9072     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
   9073         IShellItem *This,
   9074         SFGAOF sfgaoMask,
   9075         SFGAOF *psfgaoAttribs);
   9076 
   9077     HRESULT (STDMETHODCALLTYPE *Compare)(
   9078         IShellItem *This,
   9079         IShellItem *psi,
   9080         SICHINTF hint,
   9081         int *piOrder);
   9082 
   9083     END_INTERFACE
   9084 } IShellItemVtbl;
   9085 
   9086 interface IShellItem {
   9087     CONST_VTBL IShellItemVtbl* lpVtbl;
   9088 };
   9089 
   9090 #ifdef COBJMACROS
   9091 #ifndef WIDL_C_INLINE_WRAPPERS
   9092 /*** IUnknown methods ***/
   9093 #define IShellItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9094 #define IShellItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   9095 #define IShellItem_Release(This) (This)->lpVtbl->Release(This)
   9096 /*** IShellItem methods ***/
   9097 #define IShellItem_BindToHandler(This,pbc,bhid,riid,ppv) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv)
   9098 #define IShellItem_GetParent(This,ppsi) (This)->lpVtbl->GetParent(This,ppsi)
   9099 #define IShellItem_GetDisplayName(This,sigdnName,ppszName) (This)->lpVtbl->GetDisplayName(This,sigdnName,ppszName)
   9100 #define IShellItem_GetAttributes(This,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs)
   9101 #define IShellItem_Compare(This,psi,hint,piOrder) (This)->lpVtbl->Compare(This,psi,hint,piOrder)
   9102 #else
   9103 /*** IUnknown methods ***/
   9104 static inline HRESULT IShellItem_QueryInterface(IShellItem* This,REFIID riid,void **ppvObject) {
   9105     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9106 }
   9107 static inline ULONG IShellItem_AddRef(IShellItem* This) {
   9108     return This->lpVtbl->AddRef(This);
   9109 }
   9110 static inline ULONG IShellItem_Release(IShellItem* This) {
   9111     return This->lpVtbl->Release(This);
   9112 }
   9113 /*** IShellItem methods ***/
   9114 static inline HRESULT IShellItem_BindToHandler(IShellItem* This,IBindCtx *pbc,REFGUID bhid,REFIID riid,void **ppv) {
   9115     return This->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv);
   9116 }
   9117 static inline HRESULT IShellItem_GetParent(IShellItem* This,IShellItem **ppsi) {
   9118     return This->lpVtbl->GetParent(This,ppsi);
   9119 }
   9120 static inline HRESULT IShellItem_GetDisplayName(IShellItem* This,SIGDN sigdnName,LPWSTR *ppszName) {
   9121     return This->lpVtbl->GetDisplayName(This,sigdnName,ppszName);
   9122 }
   9123 static inline HRESULT IShellItem_GetAttributes(IShellItem* This,SFGAOF sfgaoMask,SFGAOF *psfgaoAttribs) {
   9124     return This->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs);
   9125 }
   9126 static inline HRESULT IShellItem_Compare(IShellItem* This,IShellItem *psi,SICHINTF hint,int *piOrder) {
   9127     return This->lpVtbl->Compare(This,psi,hint,piOrder);
   9128 }
   9129 #endif
   9130 #endif
   9131 
   9132 #endif
   9133 
   9134 
   9135 #endif  /* __IShellItem_INTERFACE_DEFINED__ */
   9136 
   9137 
   9138 SHSTDAPI_(PIDLIST_ABSOLUTE) SHSimpleIDListFromPath(PCWSTR pszPath);
   9139 
   9140 #if _WIN32_IE >= _WIN32_IE_IE70
   9141   SHSTDAPI SHCreateItemFromIDList(PCIDLIST_ABSOLUTE pidl, REFIID riid, void **ppv);
   9142   SHSTDAPI SHCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc, REFIID riid, void **ppv);
   9143   SHSTDAPI SHCreateItemWithParent(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psfParent, PCUITEMID_CHILD pidl, REFIID riid, void **ppvItem);
   9144   SHSTDAPI SHCreateItemFromRelativeName(IShellItem *psiParent, PCWSTR pszName, IBindCtx *pbc, REFIID riid, void **ppv);
   9145 #endif
   9146 #if NTDDI_VERSION >= NTDDI_VISTA
   9147   SHSTDAPI SHCreateItemInKnownFolder(REFKNOWNFOLDERID kfid, DWORD dwKFFlags, PCWSTR pszItem, REFIID riid, void **ppv);
   9148   SHSTDAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl);
   9149   SHSTDAPI SHGetItemFromObject(IUnknown *punk, REFIID riid, void **ppv);
   9150   SHSTDAPI SHGetPropertyStoreFromIDList(PCIDLIST_ABSOLUTE pidl, GETPROPERTYSTOREFLAGS flags, REFIID riid, void **ppv);
   9151   SHSTDAPI SHGetPropertyStoreFromParsingName(PCWSTR pszPath, IBindCtx *pbc, GETPROPERTYSTOREFLAGS flags, REFIID riid, void **ppv);
   9152   SHSTDAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName);
   9153 #endif
   9154 #if NTDDI_VERSION >= NTDDI_WIN7
   9155 typedef enum DATAOBJ_GET_ITEM_FLAGS {
   9156     DOGIF_DEFAULT = 0x0,
   9157     DOGIF_TRAVERSE_LINK = 0x1,
   9158     DOGIF_NO_HDROP = 0x2,
   9159     DOGIF_NO_URL = 0x4,
   9160     DOGIF_ONLY_IF_ONE = 0x8
   9161 } DATAOBJ_GET_ITEM_FLAGS;
   9162 
   9163 DEFINE_ENUM_FLAG_OPERATORS(DATAOBJ_GET_ITEM_FLAGS)
   9164 
   9165   STDAPI SHGetItemFromDataObject(IDataObject *pdtobj, DATAOBJ_GET_ITEM_FLAGS dwFlags, REFIID riid, void **ppv);
   9166 #endif
   9167 
   9168 #define STR_GPS_HANDLERPROPERTIESONLY L"GPS_HANDLERPROPERTIESONLY"
   9169 #define STR_GPS_FASTPROPERTIESONLY L"GPS_FASTPROPERTIESONLY"
   9170 #define STR_GPS_OPENSLOWITEM L"GPS_OPENSLOWITEM"
   9171 #define STR_GPS_DELAYCREATION L"GPS_DELAYCREATION"
   9172 #define STR_GPS_BESTEFFORT L"GPS_BESTEFFORT"
   9173 #define STR_GPS_NO_OPLOCK L"GPS_NO_OPLOCK"
   9174 
   9175 /*****************************************************************************
   9176  * IShellItem2 interface
   9177  */
   9178 #ifndef __IShellItem2_INTERFACE_DEFINED__
   9179 #define __IShellItem2_INTERFACE_DEFINED__
   9180 
   9181 DEFINE_GUID(IID_IShellItem2, 0x7e9fb0d3, 0x919f, 0x4307, 0xab,0x2e, 0x9b,0x18,0x60,0x31,0x0c,0x93);
   9182 #if defined(__cplusplus) && !defined(CINTERFACE)
   9183 MIDL_INTERFACE("7e9fb0d3-919f-4307-ab2e-9b1860310c93")
   9184 IShellItem2 : public IShellItem
   9185 {
   9186     virtual HRESULT STDMETHODCALLTYPE GetPropertyStore(
   9187         GETPROPERTYSTOREFLAGS flags,
   9188         REFIID riid,
   9189         void **ppv) = 0;
   9190 
   9191     virtual HRESULT STDMETHODCALLTYPE GetPropertyStoreWithCreateObject(
   9192         GETPROPERTYSTOREFLAGS flags,
   9193         IUnknown *punkCreateObject,
   9194         REFIID riid,
   9195         void **ppv) = 0;
   9196 
   9197     virtual HRESULT STDMETHODCALLTYPE GetPropertyStoreForKeys(
   9198         const PROPERTYKEY *rgKeys,
   9199         UINT cKeys,
   9200         GETPROPERTYSTOREFLAGS flags,
   9201         REFIID riid,
   9202         void **ppv) = 0;
   9203 
   9204     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionList(
   9205         REFPROPERTYKEY keyType,
   9206         REFIID riid,
   9207         void **ppv) = 0;
   9208 
   9209     virtual HRESULT STDMETHODCALLTYPE Update(
   9210         IBindCtx *pbc) = 0;
   9211 
   9212     virtual HRESULT STDMETHODCALLTYPE GetProperty(
   9213         REFPROPERTYKEY key,
   9214         PROPVARIANT *ppropvar) = 0;
   9215 
   9216     virtual HRESULT STDMETHODCALLTYPE GetCLSID(
   9217         REFPROPERTYKEY key,
   9218         CLSID *pclsid) = 0;
   9219 
   9220     virtual HRESULT STDMETHODCALLTYPE GetFileTime(
   9221         REFPROPERTYKEY key,
   9222         FILETIME *pft) = 0;
   9223 
   9224     virtual HRESULT STDMETHODCALLTYPE GetInt32(
   9225         REFPROPERTYKEY key,
   9226         int *pi) = 0;
   9227 
   9228     virtual HRESULT STDMETHODCALLTYPE GetString(
   9229         REFPROPERTYKEY key,
   9230         LPWSTR *ppsz) = 0;
   9231 
   9232     virtual HRESULT STDMETHODCALLTYPE GetUInt32(
   9233         REFPROPERTYKEY key,
   9234         ULONG *pui) = 0;
   9235 
   9236     virtual HRESULT STDMETHODCALLTYPE GetUInt64(
   9237         REFPROPERTYKEY key,
   9238         ULONGLONG *pull) = 0;
   9239 
   9240     virtual HRESULT STDMETHODCALLTYPE GetBool(
   9241         REFPROPERTYKEY key,
   9242         WINBOOL *pf) = 0;
   9243 
   9244 };
   9245 #ifdef __CRT_UUID_DECL
   9246 __CRT_UUID_DECL(IShellItem2, 0x7e9fb0d3, 0x919f, 0x4307, 0xab,0x2e, 0x9b,0x18,0x60,0x31,0x0c,0x93)
   9247 #endif
   9248 #else
   9249 typedef struct IShellItem2Vtbl {
   9250     BEGIN_INTERFACE
   9251 
   9252     /*** IUnknown methods ***/
   9253     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9254         IShellItem2 *This,
   9255         REFIID riid,
   9256         void **ppvObject);
   9257 
   9258     ULONG (STDMETHODCALLTYPE *AddRef)(
   9259         IShellItem2 *This);
   9260 
   9261     ULONG (STDMETHODCALLTYPE *Release)(
   9262         IShellItem2 *This);
   9263 
   9264     /*** IShellItem methods ***/
   9265     HRESULT (STDMETHODCALLTYPE *BindToHandler)(
   9266         IShellItem2 *This,
   9267         IBindCtx *pbc,
   9268         REFGUID bhid,
   9269         REFIID riid,
   9270         void **ppv);
   9271 
   9272     HRESULT (STDMETHODCALLTYPE *GetParent)(
   9273         IShellItem2 *This,
   9274         IShellItem **ppsi);
   9275 
   9276     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
   9277         IShellItem2 *This,
   9278         SIGDN sigdnName,
   9279         LPWSTR *ppszName);
   9280 
   9281     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
   9282         IShellItem2 *This,
   9283         SFGAOF sfgaoMask,
   9284         SFGAOF *psfgaoAttribs);
   9285 
   9286     HRESULT (STDMETHODCALLTYPE *Compare)(
   9287         IShellItem2 *This,
   9288         IShellItem *psi,
   9289         SICHINTF hint,
   9290         int *piOrder);
   9291 
   9292     /*** IShellItem2 methods ***/
   9293     HRESULT (STDMETHODCALLTYPE *GetPropertyStore)(
   9294         IShellItem2 *This,
   9295         GETPROPERTYSTOREFLAGS flags,
   9296         REFIID riid,
   9297         void **ppv);
   9298 
   9299     HRESULT (STDMETHODCALLTYPE *GetPropertyStoreWithCreateObject)(
   9300         IShellItem2 *This,
   9301         GETPROPERTYSTOREFLAGS flags,
   9302         IUnknown *punkCreateObject,
   9303         REFIID riid,
   9304         void **ppv);
   9305 
   9306     HRESULT (STDMETHODCALLTYPE *GetPropertyStoreForKeys)(
   9307         IShellItem2 *This,
   9308         const PROPERTYKEY *rgKeys,
   9309         UINT cKeys,
   9310         GETPROPERTYSTOREFLAGS flags,
   9311         REFIID riid,
   9312         void **ppv);
   9313 
   9314     HRESULT (STDMETHODCALLTYPE *GetPropertyDescriptionList)(
   9315         IShellItem2 *This,
   9316         REFPROPERTYKEY keyType,
   9317         REFIID riid,
   9318         void **ppv);
   9319 
   9320     HRESULT (STDMETHODCALLTYPE *Update)(
   9321         IShellItem2 *This,
   9322         IBindCtx *pbc);
   9323 
   9324     HRESULT (STDMETHODCALLTYPE *GetProperty)(
   9325         IShellItem2 *This,
   9326         REFPROPERTYKEY key,
   9327         PROPVARIANT *ppropvar);
   9328 
   9329     HRESULT (STDMETHODCALLTYPE *GetCLSID)(
   9330         IShellItem2 *This,
   9331         REFPROPERTYKEY key,
   9332         CLSID *pclsid);
   9333 
   9334     HRESULT (STDMETHODCALLTYPE *GetFileTime)(
   9335         IShellItem2 *This,
   9336         REFPROPERTYKEY key,
   9337         FILETIME *pft);
   9338 
   9339     HRESULT (STDMETHODCALLTYPE *GetInt32)(
   9340         IShellItem2 *This,
   9341         REFPROPERTYKEY key,
   9342         int *pi);
   9343 
   9344     HRESULT (STDMETHODCALLTYPE *GetString)(
   9345         IShellItem2 *This,
   9346         REFPROPERTYKEY key,
   9347         LPWSTR *ppsz);
   9348 
   9349     HRESULT (STDMETHODCALLTYPE *GetUInt32)(
   9350         IShellItem2 *This,
   9351         REFPROPERTYKEY key,
   9352         ULONG *pui);
   9353 
   9354     HRESULT (STDMETHODCALLTYPE *GetUInt64)(
   9355         IShellItem2 *This,
   9356         REFPROPERTYKEY key,
   9357         ULONGLONG *pull);
   9358 
   9359     HRESULT (STDMETHODCALLTYPE *GetBool)(
   9360         IShellItem2 *This,
   9361         REFPROPERTYKEY key,
   9362         WINBOOL *pf);
   9363 
   9364     END_INTERFACE
   9365 } IShellItem2Vtbl;
   9366 
   9367 interface IShellItem2 {
   9368     CONST_VTBL IShellItem2Vtbl* lpVtbl;
   9369 };
   9370 
   9371 #ifdef COBJMACROS
   9372 #ifndef WIDL_C_INLINE_WRAPPERS
   9373 /*** IUnknown methods ***/
   9374 #define IShellItem2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9375 #define IShellItem2_AddRef(This) (This)->lpVtbl->AddRef(This)
   9376 #define IShellItem2_Release(This) (This)->lpVtbl->Release(This)
   9377 /*** IShellItem methods ***/
   9378 #define IShellItem2_BindToHandler(This,pbc,bhid,riid,ppv) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv)
   9379 #define IShellItem2_GetParent(This,ppsi) (This)->lpVtbl->GetParent(This,ppsi)
   9380 #define IShellItem2_GetDisplayName(This,sigdnName,ppszName) (This)->lpVtbl->GetDisplayName(This,sigdnName,ppszName)
   9381 #define IShellItem2_GetAttributes(This,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs)
   9382 #define IShellItem2_Compare(This,psi,hint,piOrder) (This)->lpVtbl->Compare(This,psi,hint,piOrder)
   9383 /*** IShellItem2 methods ***/
   9384 #define IShellItem2_GetPropertyStore(This,flags,riid,ppv) (This)->lpVtbl->GetPropertyStore(This,flags,riid,ppv)
   9385 #define IShellItem2_GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv) (This)->lpVtbl->GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv)
   9386 #define IShellItem2_GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv) (This)->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv)
   9387 #define IShellItem2_GetPropertyDescriptionList(This,keyType,riid,ppv) (This)->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv)
   9388 #define IShellItem2_Update(This,pbc) (This)->lpVtbl->Update(This,pbc)
   9389 #define IShellItem2_GetProperty(This,key,ppropvar) (This)->lpVtbl->GetProperty(This,key,ppropvar)
   9390 #define IShellItem2_GetCLSID(This,key,pclsid) (This)->lpVtbl->GetCLSID(This,key,pclsid)
   9391 #define IShellItem2_GetFileTime(This,key,pft) (This)->lpVtbl->GetFileTime(This,key,pft)
   9392 #define IShellItem2_GetInt32(This,key,pi) (This)->lpVtbl->GetInt32(This,key,pi)
   9393 #define IShellItem2_GetString(This,key,ppsz) (This)->lpVtbl->GetString(This,key,ppsz)
   9394 #define IShellItem2_GetUInt32(This,key,pui) (This)->lpVtbl->GetUInt32(This,key,pui)
   9395 #define IShellItem2_GetUInt64(This,key,pull) (This)->lpVtbl->GetUInt64(This,key,pull)
   9396 #define IShellItem2_GetBool(This,key,pf) (This)->lpVtbl->GetBool(This,key,pf)
   9397 #else
   9398 /*** IUnknown methods ***/
   9399 static inline HRESULT IShellItem2_QueryInterface(IShellItem2* This,REFIID riid,void **ppvObject) {
   9400     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9401 }
   9402 static inline ULONG IShellItem2_AddRef(IShellItem2* This) {
   9403     return This->lpVtbl->AddRef(This);
   9404 }
   9405 static inline ULONG IShellItem2_Release(IShellItem2* This) {
   9406     return This->lpVtbl->Release(This);
   9407 }
   9408 /*** IShellItem methods ***/
   9409 static inline HRESULT IShellItem2_BindToHandler(IShellItem2* This,IBindCtx *pbc,REFGUID bhid,REFIID riid,void **ppv) {
   9410     return This->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv);
   9411 }
   9412 static inline HRESULT IShellItem2_GetParent(IShellItem2* This,IShellItem **ppsi) {
   9413     return This->lpVtbl->GetParent(This,ppsi);
   9414 }
   9415 static inline HRESULT IShellItem2_GetDisplayName(IShellItem2* This,SIGDN sigdnName,LPWSTR *ppszName) {
   9416     return This->lpVtbl->GetDisplayName(This,sigdnName,ppszName);
   9417 }
   9418 static inline HRESULT IShellItem2_GetAttributes(IShellItem2* This,SFGAOF sfgaoMask,SFGAOF *psfgaoAttribs) {
   9419     return This->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs);
   9420 }
   9421 static inline HRESULT IShellItem2_Compare(IShellItem2* This,IShellItem *psi,SICHINTF hint,int *piOrder) {
   9422     return This->lpVtbl->Compare(This,psi,hint,piOrder);
   9423 }
   9424 /*** IShellItem2 methods ***/
   9425 static inline HRESULT IShellItem2_GetPropertyStore(IShellItem2* This,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
   9426     return This->lpVtbl->GetPropertyStore(This,flags,riid,ppv);
   9427 }
   9428 static inline HRESULT IShellItem2_GetPropertyStoreWithCreateObject(IShellItem2* This,GETPROPERTYSTOREFLAGS flags,IUnknown *punkCreateObject,REFIID riid,void **ppv) {
   9429     return This->lpVtbl->GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv);
   9430 }
   9431 static inline HRESULT IShellItem2_GetPropertyStoreForKeys(IShellItem2* This,const PROPERTYKEY *rgKeys,UINT cKeys,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
   9432     return This->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv);
   9433 }
   9434 static inline HRESULT IShellItem2_GetPropertyDescriptionList(IShellItem2* This,REFPROPERTYKEY keyType,REFIID riid,void **ppv) {
   9435     return This->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv);
   9436 }
   9437 static inline HRESULT IShellItem2_Update(IShellItem2* This,IBindCtx *pbc) {
   9438     return This->lpVtbl->Update(This,pbc);
   9439 }
   9440 static inline HRESULT IShellItem2_GetProperty(IShellItem2* This,REFPROPERTYKEY key,PROPVARIANT *ppropvar) {
   9441     return This->lpVtbl->GetProperty(This,key,ppropvar);
   9442 }
   9443 static inline HRESULT IShellItem2_GetCLSID(IShellItem2* This,REFPROPERTYKEY key,CLSID *pclsid) {
   9444     return This->lpVtbl->GetCLSID(This,key,pclsid);
   9445 }
   9446 static inline HRESULT IShellItem2_GetFileTime(IShellItem2* This,REFPROPERTYKEY key,FILETIME *pft) {
   9447     return This->lpVtbl->GetFileTime(This,key,pft);
   9448 }
   9449 static inline HRESULT IShellItem2_GetInt32(IShellItem2* This,REFPROPERTYKEY key,int *pi) {
   9450     return This->lpVtbl->GetInt32(This,key,pi);
   9451 }
   9452 static inline HRESULT IShellItem2_GetString(IShellItem2* This,REFPROPERTYKEY key,LPWSTR *ppsz) {
   9453     return This->lpVtbl->GetString(This,key,ppsz);
   9454 }
   9455 static inline HRESULT IShellItem2_GetUInt32(IShellItem2* This,REFPROPERTYKEY key,ULONG *pui) {
   9456     return This->lpVtbl->GetUInt32(This,key,pui);
   9457 }
   9458 static inline HRESULT IShellItem2_GetUInt64(IShellItem2* This,REFPROPERTYKEY key,ULONGLONG *pull) {
   9459     return This->lpVtbl->GetUInt64(This,key,pull);
   9460 }
   9461 static inline HRESULT IShellItem2_GetBool(IShellItem2* This,REFPROPERTYKEY key,WINBOOL *pf) {
   9462     return This->lpVtbl->GetBool(This,key,pf);
   9463 }
   9464 #endif
   9465 #endif
   9466 
   9467 #endif
   9468 
   9469 
   9470 #endif  /* __IShellItem2_INTERFACE_DEFINED__ */
   9471 
   9472 
   9473 enum _SIIGBF {
   9474     SIIGBF_RESIZETOFIT = 0x0,
   9475     SIIGBF_BIGGERSIZEOK = 0x1,
   9476     SIIGBF_MEMORYONLY = 0x2,
   9477     SIIGBF_ICONONLY = 0x4,
   9478     SIIGBF_THUMBNAILONLY = 0x8,
   9479     SIIGBF_INCACHEONLY = 0x10,
   9480     SIIGBF_CROPTOSQUARE = 0x20,
   9481     SIIGBF_WIDETHUMBNAILS = 0x40,
   9482     SIIGBF_ICONBACKGROUND = 0x80,
   9483     SIIGBF_SCALEUP = 0x100
   9484 };
   9485 
   9486 typedef int SIIGBF;
   9487 
   9488 /*****************************************************************************
   9489  * IShellItemImageFactory interface
   9490  */
   9491 #ifndef __IShellItemImageFactory_INTERFACE_DEFINED__
   9492 #define __IShellItemImageFactory_INTERFACE_DEFINED__
   9493 
   9494 DEFINE_GUID(IID_IShellItemImageFactory, 0xbcc18b79, 0xba16, 0x442f, 0x80,0xc4, 0x8a,0x59,0xc3,0x0c,0x46,0x3b);
   9495 #if defined(__cplusplus) && !defined(CINTERFACE)
   9496 MIDL_INTERFACE("bcc18b79-ba16-442f-80c4-8a59c30c463b")
   9497 IShellItemImageFactory : public IUnknown
   9498 {
   9499     virtual HRESULT STDMETHODCALLTYPE GetImage(
   9500         SIZE size,
   9501         SIIGBF flags,
   9502         HBITMAP *phbm) = 0;
   9503 
   9504 };
   9505 #ifdef __CRT_UUID_DECL
   9506 __CRT_UUID_DECL(IShellItemImageFactory, 0xbcc18b79, 0xba16, 0x442f, 0x80,0xc4, 0x8a,0x59,0xc3,0x0c,0x46,0x3b)
   9507 #endif
   9508 #else
   9509 typedef struct IShellItemImageFactoryVtbl {
   9510     BEGIN_INTERFACE
   9511 
   9512     /*** IUnknown methods ***/
   9513     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9514         IShellItemImageFactory *This,
   9515         REFIID riid,
   9516         void **ppvObject);
   9517 
   9518     ULONG (STDMETHODCALLTYPE *AddRef)(
   9519         IShellItemImageFactory *This);
   9520 
   9521     ULONG (STDMETHODCALLTYPE *Release)(
   9522         IShellItemImageFactory *This);
   9523 
   9524     /*** IShellItemImageFactory methods ***/
   9525     HRESULT (STDMETHODCALLTYPE *GetImage)(
   9526         IShellItemImageFactory *This,
   9527         SIZE size,
   9528         SIIGBF flags,
   9529         HBITMAP *phbm);
   9530 
   9531     END_INTERFACE
   9532 } IShellItemImageFactoryVtbl;
   9533 
   9534 interface IShellItemImageFactory {
   9535     CONST_VTBL IShellItemImageFactoryVtbl* lpVtbl;
   9536 };
   9537 
   9538 #ifdef COBJMACROS
   9539 #ifndef WIDL_C_INLINE_WRAPPERS
   9540 /*** IUnknown methods ***/
   9541 #define IShellItemImageFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9542 #define IShellItemImageFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
   9543 #define IShellItemImageFactory_Release(This) (This)->lpVtbl->Release(This)
   9544 /*** IShellItemImageFactory methods ***/
   9545 #define IShellItemImageFactory_GetImage(This,size,flags,phbm) (This)->lpVtbl->GetImage(This,size,flags,phbm)
   9546 #else
   9547 /*** IUnknown methods ***/
   9548 static inline HRESULT IShellItemImageFactory_QueryInterface(IShellItemImageFactory* This,REFIID riid,void **ppvObject) {
   9549     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9550 }
   9551 static inline ULONG IShellItemImageFactory_AddRef(IShellItemImageFactory* This) {
   9552     return This->lpVtbl->AddRef(This);
   9553 }
   9554 static inline ULONG IShellItemImageFactory_Release(IShellItemImageFactory* This) {
   9555     return This->lpVtbl->Release(This);
   9556 }
   9557 /*** IShellItemImageFactory methods ***/
   9558 static inline HRESULT IShellItemImageFactory_GetImage(IShellItemImageFactory* This,SIZE size,SIIGBF flags,HBITMAP *phbm) {
   9559     return This->lpVtbl->GetImage(This,size,flags,phbm);
   9560 }
   9561 #endif
   9562 #endif
   9563 
   9564 #endif
   9565 
   9566 
   9567 #endif  /* __IShellItemImageFactory_INTERFACE_DEFINED__ */
   9568 
   9569 
   9570 /*****************************************************************************
   9571  * IUserAccountChangeCallback interface
   9572  */
   9573 #ifndef __IUserAccountChangeCallback_INTERFACE_DEFINED__
   9574 #define __IUserAccountChangeCallback_INTERFACE_DEFINED__
   9575 
   9576 DEFINE_GUID(IID_IUserAccountChangeCallback, 0xa561e69a, 0xb4b8, 0x4113, 0x91,0xa5, 0x64,0xc6,0xbc,0xca,0x34,0x30);
   9577 #if defined(__cplusplus) && !defined(CINTERFACE)
   9578 MIDL_INTERFACE("a561e69a-b4b8-4113-91a5-64c6bcca3430")
   9579 IUserAccountChangeCallback : public IUnknown
   9580 {
   9581     virtual HRESULT STDMETHODCALLTYPE OnPictureChange(
   9582         LPCWSTR pszUserName) = 0;
   9583 
   9584 };
   9585 #ifdef __CRT_UUID_DECL
   9586 __CRT_UUID_DECL(IUserAccountChangeCallback, 0xa561e69a, 0xb4b8, 0x4113, 0x91,0xa5, 0x64,0xc6,0xbc,0xca,0x34,0x30)
   9587 #endif
   9588 #else
   9589 typedef struct IUserAccountChangeCallbackVtbl {
   9590     BEGIN_INTERFACE
   9591 
   9592     /*** IUnknown methods ***/
   9593     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9594         IUserAccountChangeCallback *This,
   9595         REFIID riid,
   9596         void **ppvObject);
   9597 
   9598     ULONG (STDMETHODCALLTYPE *AddRef)(
   9599         IUserAccountChangeCallback *This);
   9600 
   9601     ULONG (STDMETHODCALLTYPE *Release)(
   9602         IUserAccountChangeCallback *This);
   9603 
   9604     /*** IUserAccountChangeCallback methods ***/
   9605     HRESULT (STDMETHODCALLTYPE *OnPictureChange)(
   9606         IUserAccountChangeCallback *This,
   9607         LPCWSTR pszUserName);
   9608 
   9609     END_INTERFACE
   9610 } IUserAccountChangeCallbackVtbl;
   9611 
   9612 interface IUserAccountChangeCallback {
   9613     CONST_VTBL IUserAccountChangeCallbackVtbl* lpVtbl;
   9614 };
   9615 
   9616 #ifdef COBJMACROS
   9617 #ifndef WIDL_C_INLINE_WRAPPERS
   9618 /*** IUnknown methods ***/
   9619 #define IUserAccountChangeCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9620 #define IUserAccountChangeCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
   9621 #define IUserAccountChangeCallback_Release(This) (This)->lpVtbl->Release(This)
   9622 /*** IUserAccountChangeCallback methods ***/
   9623 #define IUserAccountChangeCallback_OnPictureChange(This,pszUserName) (This)->lpVtbl->OnPictureChange(This,pszUserName)
   9624 #else
   9625 /*** IUnknown methods ***/
   9626 static inline HRESULT IUserAccountChangeCallback_QueryInterface(IUserAccountChangeCallback* This,REFIID riid,void **ppvObject) {
   9627     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9628 }
   9629 static inline ULONG IUserAccountChangeCallback_AddRef(IUserAccountChangeCallback* This) {
   9630     return This->lpVtbl->AddRef(This);
   9631 }
   9632 static inline ULONG IUserAccountChangeCallback_Release(IUserAccountChangeCallback* This) {
   9633     return This->lpVtbl->Release(This);
   9634 }
   9635 /*** IUserAccountChangeCallback methods ***/
   9636 static inline HRESULT IUserAccountChangeCallback_OnPictureChange(IUserAccountChangeCallback* This,LPCWSTR pszUserName) {
   9637     return This->lpVtbl->OnPictureChange(This,pszUserName);
   9638 }
   9639 #endif
   9640 #endif
   9641 
   9642 #endif
   9643 
   9644 
   9645 #endif  /* __IUserAccountChangeCallback_INTERFACE_DEFINED__ */
   9646 
   9647 
   9648 /*****************************************************************************
   9649  * IEnumShellItems interface
   9650  */
   9651 #ifndef __IEnumShellItems_INTERFACE_DEFINED__
   9652 #define __IEnumShellItems_INTERFACE_DEFINED__
   9653 
   9654 DEFINE_GUID(IID_IEnumShellItems, 0x70629033, 0xe363, 0x4a28, 0xa5,0x67, 0x0d,0xb7,0x80,0x06,0xe6,0xd7);
   9655 #if defined(__cplusplus) && !defined(CINTERFACE)
   9656 MIDL_INTERFACE("70629033-e363-4a28-a567-0db78006e6d7")
   9657 IEnumShellItems : public IUnknown
   9658 {
   9659     virtual HRESULT STDMETHODCALLTYPE Next(
   9660         ULONG celt,
   9661         IShellItem **rgelt,
   9662         ULONG *pceltFetched) = 0;
   9663 
   9664     virtual HRESULT STDMETHODCALLTYPE Skip(
   9665         ULONG celt) = 0;
   9666 
   9667     virtual HRESULT STDMETHODCALLTYPE Reset(
   9668         ) = 0;
   9669 
   9670     virtual HRESULT STDMETHODCALLTYPE Clone(
   9671         IEnumShellItems **ppenum) = 0;
   9672 
   9673 };
   9674 #ifdef __CRT_UUID_DECL
   9675 __CRT_UUID_DECL(IEnumShellItems, 0x70629033, 0xe363, 0x4a28, 0xa5,0x67, 0x0d,0xb7,0x80,0x06,0xe6,0xd7)
   9676 #endif
   9677 #else
   9678 typedef struct IEnumShellItemsVtbl {
   9679     BEGIN_INTERFACE
   9680 
   9681     /*** IUnknown methods ***/
   9682     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9683         IEnumShellItems *This,
   9684         REFIID riid,
   9685         void **ppvObject);
   9686 
   9687     ULONG (STDMETHODCALLTYPE *AddRef)(
   9688         IEnumShellItems *This);
   9689 
   9690     ULONG (STDMETHODCALLTYPE *Release)(
   9691         IEnumShellItems *This);
   9692 
   9693     /*** IEnumShellItems methods ***/
   9694     HRESULT (STDMETHODCALLTYPE *Next)(
   9695         IEnumShellItems *This,
   9696         ULONG celt,
   9697         IShellItem **rgelt,
   9698         ULONG *pceltFetched);
   9699 
   9700     HRESULT (STDMETHODCALLTYPE *Skip)(
   9701         IEnumShellItems *This,
   9702         ULONG celt);
   9703 
   9704     HRESULT (STDMETHODCALLTYPE *Reset)(
   9705         IEnumShellItems *This);
   9706 
   9707     HRESULT (STDMETHODCALLTYPE *Clone)(
   9708         IEnumShellItems *This,
   9709         IEnumShellItems **ppenum);
   9710 
   9711     END_INTERFACE
   9712 } IEnumShellItemsVtbl;
   9713 
   9714 interface IEnumShellItems {
   9715     CONST_VTBL IEnumShellItemsVtbl* lpVtbl;
   9716 };
   9717 
   9718 #ifdef COBJMACROS
   9719 #ifndef WIDL_C_INLINE_WRAPPERS
   9720 /*** IUnknown methods ***/
   9721 #define IEnumShellItems_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9722 #define IEnumShellItems_AddRef(This) (This)->lpVtbl->AddRef(This)
   9723 #define IEnumShellItems_Release(This) (This)->lpVtbl->Release(This)
   9724 /*** IEnumShellItems methods ***/
   9725 #define IEnumShellItems_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   9726 #define IEnumShellItems_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   9727 #define IEnumShellItems_Reset(This) (This)->lpVtbl->Reset(This)
   9728 #define IEnumShellItems_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   9729 #else
   9730 /*** IUnknown methods ***/
   9731 static inline HRESULT IEnumShellItems_QueryInterface(IEnumShellItems* This,REFIID riid,void **ppvObject) {
   9732     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9733 }
   9734 static inline ULONG IEnumShellItems_AddRef(IEnumShellItems* This) {
   9735     return This->lpVtbl->AddRef(This);
   9736 }
   9737 static inline ULONG IEnumShellItems_Release(IEnumShellItems* This) {
   9738     return This->lpVtbl->Release(This);
   9739 }
   9740 /*** IEnumShellItems methods ***/
   9741 static inline HRESULT IEnumShellItems_Next(IEnumShellItems* This,ULONG celt,IShellItem **rgelt,ULONG *pceltFetched) {
   9742     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
   9743 }
   9744 static inline HRESULT IEnumShellItems_Skip(IEnumShellItems* This,ULONG celt) {
   9745     return This->lpVtbl->Skip(This,celt);
   9746 }
   9747 static inline HRESULT IEnumShellItems_Reset(IEnumShellItems* This) {
   9748     return This->lpVtbl->Reset(This);
   9749 }
   9750 static inline HRESULT IEnumShellItems_Clone(IEnumShellItems* This,IEnumShellItems **ppenum) {
   9751     return This->lpVtbl->Clone(This,ppenum);
   9752 }
   9753 #endif
   9754 #endif
   9755 
   9756 #endif
   9757 
   9758 HRESULT STDMETHODCALLTYPE IEnumShellItems_RemoteNext_Proxy(
   9759     IEnumShellItems* This,
   9760     ULONG celt,
   9761     IShellItem **rgelt,
   9762     ULONG *pceltFetched);
   9763 void __RPC_STUB IEnumShellItems_RemoteNext_Stub(
   9764     IRpcStubBuffer* This,
   9765     IRpcChannelBuffer* pRpcChannelBuffer,
   9766     PRPC_MESSAGE pRpcMessage,
   9767     DWORD* pdwStubPhase);
   9768 HRESULT CALLBACK IEnumShellItems_Next_Proxy(
   9769     IEnumShellItems* This,
   9770     ULONG celt,
   9771     IShellItem **rgelt,
   9772     ULONG *pceltFetched);
   9773 HRESULT __RPC_STUB IEnumShellItems_Next_Stub(
   9774     IEnumShellItems* This,
   9775     ULONG celt,
   9776     IShellItem **rgelt,
   9777     ULONG *pceltFetched);
   9778 
   9779 #endif  /* __IEnumShellItems_INTERFACE_DEFINED__ */
   9780 
   9781 
   9782 typedef GUID STGTRANSCONFIRMATION;
   9783 typedef GUID *LPSTGTRANSCONFIRMATION;
   9784 
   9785 typedef enum STGOP {
   9786     STGOP_MOVE = 1,
   9787     STGOP_COPY = 2,
   9788     STGOP_SYNC = 3,
   9789     STGOP_REMOVE = 5,
   9790     STGOP_RENAME = 6,
   9791     STGOP_APPLYPROPERTIES = 8,
   9792     STGOP_NEW = 10
   9793 } STGOP;
   9794 
   9795 enum _TRANSFER_SOURCE_FLAGS {
   9796     TSF_NORMAL = 0x0,
   9797     TSF_FAIL_EXIST = 0x0,
   9798     TSF_RENAME_EXIST = 0x1,
   9799     TSF_OVERWRITE_EXIST = 0x2,
   9800     TSF_ALLOW_DECRYPTION = 0x4,
   9801     TSF_NO_SECURITY = 0x8,
   9802     TSF_COPY_CREATION_TIME = 0x10,
   9803     TSF_COPY_WRITE_TIME = 0x20,
   9804     TSF_USE_FULL_ACCESS = 0x40,
   9805     TSF_DELETE_RECYCLE_IF_POSSIBLE = 0x80,
   9806     TSF_COPY_HARD_LINK = 0x100,
   9807     TSF_COPY_LOCALIZED_NAME = 0x200,
   9808     TSF_MOVE_AS_COPY_DELETE = 0x400,
   9809     TSF_SUSPEND_SHELLEVENTS = 0x800
   9810 };
   9811 
   9812 typedef DWORD TRANSFER_SOURCE_FLAGS;
   9813 
   9814 #if _WIN32_IE >= _WIN32_IE_IE70
   9815 /*****************************************************************************
   9816  * ITransferAdviseSink interface
   9817  */
   9818 #ifndef __ITransferAdviseSink_INTERFACE_DEFINED__
   9819 #define __ITransferAdviseSink_INTERFACE_DEFINED__
   9820 
   9821 enum _TRANSFER_ADVISE_STATE {
   9822     TS_NONE = 0x0,
   9823     TS_PERFORMING = 0x1,
   9824     TS_PREPARING = 0x2,
   9825     TS_INDETERMINATE = 0x4
   9826 };
   9827 
   9828 typedef DWORD TRANSFER_ADVISE_STATE;
   9829 
   9830 DEFINE_GUID(IID_ITransferAdviseSink, 0xd594d0d8, 0x8da7, 0x457b, 0xb3,0xb4, 0xce,0x5d,0xba,0xac,0x0b,0x88);
   9831 #if defined(__cplusplus) && !defined(CINTERFACE)
   9832 MIDL_INTERFACE("d594d0d8-8da7-457b-b3b4-ce5dbaac0b88")
   9833 ITransferAdviseSink : public IUnknown
   9834 {
   9835     virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
   9836         ULONGLONG ullSizeCurrent,
   9837         ULONGLONG ullSizeTotal,
   9838         int nFilesCurrent,
   9839         int nFilesTotal,
   9840         int nFoldersCurrent,
   9841         int nFoldersTotal) = 0;
   9842 
   9843     virtual HRESULT STDMETHODCALLTYPE UpdateTransferState(
   9844         TRANSFER_ADVISE_STATE ts) = 0;
   9845 
   9846     virtual HRESULT STDMETHODCALLTYPE ConfirmOverwrite(
   9847         IShellItem *psiSource,
   9848         IShellItem *psiDestParent,
   9849         LPCWSTR pszName) = 0;
   9850 
   9851     virtual HRESULT STDMETHODCALLTYPE ConfirmEncryptionLoss(
   9852         IShellItem *psiSource) = 0;
   9853 
   9854     virtual HRESULT STDMETHODCALLTYPE FileFailure(
   9855         IShellItem *psi,
   9856         LPCWSTR pszItem,
   9857         HRESULT hrError,
   9858         LPWSTR pszRename,
   9859         ULONG cchRename) = 0;
   9860 
   9861     virtual HRESULT STDMETHODCALLTYPE SubStreamFailure(
   9862         IShellItem *psi,
   9863         LPCWSTR pszStreamName,
   9864         HRESULT hrError) = 0;
   9865 
   9866     virtual HRESULT STDMETHODCALLTYPE PropertyFailure(
   9867         IShellItem *psi,
   9868         const PROPERTYKEY *pkey,
   9869         HRESULT hrError) = 0;
   9870 
   9871 };
   9872 #ifdef __CRT_UUID_DECL
   9873 __CRT_UUID_DECL(ITransferAdviseSink, 0xd594d0d8, 0x8da7, 0x457b, 0xb3,0xb4, 0xce,0x5d,0xba,0xac,0x0b,0x88)
   9874 #endif
   9875 #else
   9876 typedef struct ITransferAdviseSinkVtbl {
   9877     BEGIN_INTERFACE
   9878 
   9879     /*** IUnknown methods ***/
   9880     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   9881         ITransferAdviseSink *This,
   9882         REFIID riid,
   9883         void **ppvObject);
   9884 
   9885     ULONG (STDMETHODCALLTYPE *AddRef)(
   9886         ITransferAdviseSink *This);
   9887 
   9888     ULONG (STDMETHODCALLTYPE *Release)(
   9889         ITransferAdviseSink *This);
   9890 
   9891     /*** ITransferAdviseSink methods ***/
   9892     HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
   9893         ITransferAdviseSink *This,
   9894         ULONGLONG ullSizeCurrent,
   9895         ULONGLONG ullSizeTotal,
   9896         int nFilesCurrent,
   9897         int nFilesTotal,
   9898         int nFoldersCurrent,
   9899         int nFoldersTotal);
   9900 
   9901     HRESULT (STDMETHODCALLTYPE *UpdateTransferState)(
   9902         ITransferAdviseSink *This,
   9903         TRANSFER_ADVISE_STATE ts);
   9904 
   9905     HRESULT (STDMETHODCALLTYPE *ConfirmOverwrite)(
   9906         ITransferAdviseSink *This,
   9907         IShellItem *psiSource,
   9908         IShellItem *psiDestParent,
   9909         LPCWSTR pszName);
   9910 
   9911     HRESULT (STDMETHODCALLTYPE *ConfirmEncryptionLoss)(
   9912         ITransferAdviseSink *This,
   9913         IShellItem *psiSource);
   9914 
   9915     HRESULT (STDMETHODCALLTYPE *FileFailure)(
   9916         ITransferAdviseSink *This,
   9917         IShellItem *psi,
   9918         LPCWSTR pszItem,
   9919         HRESULT hrError,
   9920         LPWSTR pszRename,
   9921         ULONG cchRename);
   9922 
   9923     HRESULT (STDMETHODCALLTYPE *SubStreamFailure)(
   9924         ITransferAdviseSink *This,
   9925         IShellItem *psi,
   9926         LPCWSTR pszStreamName,
   9927         HRESULT hrError);
   9928 
   9929     HRESULT (STDMETHODCALLTYPE *PropertyFailure)(
   9930         ITransferAdviseSink *This,
   9931         IShellItem *psi,
   9932         const PROPERTYKEY *pkey,
   9933         HRESULT hrError);
   9934 
   9935     END_INTERFACE
   9936 } ITransferAdviseSinkVtbl;
   9937 
   9938 interface ITransferAdviseSink {
   9939     CONST_VTBL ITransferAdviseSinkVtbl* lpVtbl;
   9940 };
   9941 
   9942 #ifdef COBJMACROS
   9943 #ifndef WIDL_C_INLINE_WRAPPERS
   9944 /*** IUnknown methods ***/
   9945 #define ITransferAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   9946 #define ITransferAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
   9947 #define ITransferAdviseSink_Release(This) (This)->lpVtbl->Release(This)
   9948 /*** ITransferAdviseSink methods ***/
   9949 #define ITransferAdviseSink_UpdateProgress(This,ullSizeCurrent,ullSizeTotal,nFilesCurrent,nFilesTotal,nFoldersCurrent,nFoldersTotal) (This)->lpVtbl->UpdateProgress(This,ullSizeCurrent,ullSizeTotal,nFilesCurrent,nFilesTotal,nFoldersCurrent,nFoldersTotal)
   9950 #define ITransferAdviseSink_UpdateTransferState(This,ts) (This)->lpVtbl->UpdateTransferState(This,ts)
   9951 #define ITransferAdviseSink_ConfirmOverwrite(This,psiSource,psiDestParent,pszName) (This)->lpVtbl->ConfirmOverwrite(This,psiSource,psiDestParent,pszName)
   9952 #define ITransferAdviseSink_ConfirmEncryptionLoss(This,psiSource) (This)->lpVtbl->ConfirmEncryptionLoss(This,psiSource)
   9953 #define ITransferAdviseSink_FileFailure(This,psi,pszItem,hrError,pszRename,cchRename) (This)->lpVtbl->FileFailure(This,psi,pszItem,hrError,pszRename,cchRename)
   9954 #define ITransferAdviseSink_SubStreamFailure(This,psi,pszStreamName,hrError) (This)->lpVtbl->SubStreamFailure(This,psi,pszStreamName,hrError)
   9955 #define ITransferAdviseSink_PropertyFailure(This,psi,pkey,hrError) (This)->lpVtbl->PropertyFailure(This,psi,pkey,hrError)
   9956 #else
   9957 /*** IUnknown methods ***/
   9958 static inline HRESULT ITransferAdviseSink_QueryInterface(ITransferAdviseSink* This,REFIID riid,void **ppvObject) {
   9959     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   9960 }
   9961 static inline ULONG ITransferAdviseSink_AddRef(ITransferAdviseSink* This) {
   9962     return This->lpVtbl->AddRef(This);
   9963 }
   9964 static inline ULONG ITransferAdviseSink_Release(ITransferAdviseSink* This) {
   9965     return This->lpVtbl->Release(This);
   9966 }
   9967 /*** ITransferAdviseSink methods ***/
   9968 static inline HRESULT ITransferAdviseSink_UpdateProgress(ITransferAdviseSink* This,ULONGLONG ullSizeCurrent,ULONGLONG ullSizeTotal,int nFilesCurrent,int nFilesTotal,int nFoldersCurrent,int nFoldersTotal) {
   9969     return This->lpVtbl->UpdateProgress(This,ullSizeCurrent,ullSizeTotal,nFilesCurrent,nFilesTotal,nFoldersCurrent,nFoldersTotal);
   9970 }
   9971 static inline HRESULT ITransferAdviseSink_UpdateTransferState(ITransferAdviseSink* This,TRANSFER_ADVISE_STATE ts) {
   9972     return This->lpVtbl->UpdateTransferState(This,ts);
   9973 }
   9974 static inline HRESULT ITransferAdviseSink_ConfirmOverwrite(ITransferAdviseSink* This,IShellItem *psiSource,IShellItem *psiDestParent,LPCWSTR pszName) {
   9975     return This->lpVtbl->ConfirmOverwrite(This,psiSource,psiDestParent,pszName);
   9976 }
   9977 static inline HRESULT ITransferAdviseSink_ConfirmEncryptionLoss(ITransferAdviseSink* This,IShellItem *psiSource) {
   9978     return This->lpVtbl->ConfirmEncryptionLoss(This,psiSource);
   9979 }
   9980 static inline HRESULT ITransferAdviseSink_FileFailure(ITransferAdviseSink* This,IShellItem *psi,LPCWSTR pszItem,HRESULT hrError,LPWSTR pszRename,ULONG cchRename) {
   9981     return This->lpVtbl->FileFailure(This,psi,pszItem,hrError,pszRename,cchRename);
   9982 }
   9983 static inline HRESULT ITransferAdviseSink_SubStreamFailure(ITransferAdviseSink* This,IShellItem *psi,LPCWSTR pszStreamName,HRESULT hrError) {
   9984     return This->lpVtbl->SubStreamFailure(This,psi,pszStreamName,hrError);
   9985 }
   9986 static inline HRESULT ITransferAdviseSink_PropertyFailure(ITransferAdviseSink* This,IShellItem *psi,const PROPERTYKEY *pkey,HRESULT hrError) {
   9987     return This->lpVtbl->PropertyFailure(This,psi,pkey,hrError);
   9988 }
   9989 #endif
   9990 #endif
   9991 
   9992 #endif
   9993 
   9994 
   9995 #endif  /* __ITransferAdviseSink_INTERFACE_DEFINED__ */
   9996 
   9997 #endif
   9998 
   9999 #if NTDDI_VERSION >= NTDDI_VISTA
  10000 /*****************************************************************************
  10001  * ITransferSource interface
  10002  */
  10003 #ifndef __ITransferSource_INTERFACE_DEFINED__
  10004 #define __ITransferSource_INTERFACE_DEFINED__
  10005 
  10006 DEFINE_GUID(IID_ITransferSource, 0x00adb003, 0xbde9, 0x45c6, 0x8e,0x29, 0xd0,0x9f,0x93,0x53,0xe1,0x08);
  10007 #if defined(__cplusplus) && !defined(CINTERFACE)
  10008 MIDL_INTERFACE("00adb003-bde9-45c6-8e29-d09f9353e108")
  10009 ITransferSource : public IUnknown
  10010 {
  10011     virtual HRESULT STDMETHODCALLTYPE Advise(
  10012         ITransferAdviseSink *psink,
  10013         DWORD *pdwCookie) = 0;
  10014 
  10015     virtual HRESULT STDMETHODCALLTYPE Unadvise(
  10016         DWORD dwCookie) = 0;
  10017 
  10018     virtual HRESULT STDMETHODCALLTYPE SetProperties(
  10019         IPropertyChangeArray *pproparray) = 0;
  10020 
  10021     virtual HRESULT STDMETHODCALLTYPE OpenItem(
  10022         IShellItem *psi,
  10023         TRANSFER_SOURCE_FLAGS flags,
  10024         REFIID riid,
  10025         void **ppv) = 0;
  10026 
  10027     virtual HRESULT STDMETHODCALLTYPE MoveItem(
  10028         IShellItem *psi,
  10029         IShellItem *psiParentDst,
  10030         LPCWSTR pszNameDst,
  10031         TRANSFER_SOURCE_FLAGS flags,
  10032         IShellItem **ppsiNew) = 0;
  10033 
  10034     virtual HRESULT STDMETHODCALLTYPE RecycleItem(
  10035         IShellItem *psiSource,
  10036         IShellItem *psiParentDest,
  10037         TRANSFER_SOURCE_FLAGS flags,
  10038         IShellItem **ppsiNewDest) = 0;
  10039 
  10040     virtual HRESULT STDMETHODCALLTYPE RemoveItem(
  10041         IShellItem *psiSource,
  10042         TRANSFER_SOURCE_FLAGS flags) = 0;
  10043 
  10044     virtual HRESULT STDMETHODCALLTYPE RenameItem(
  10045         IShellItem *psiSource,
  10046         LPCWSTR pszNewName,
  10047         TRANSFER_SOURCE_FLAGS flags,
  10048         IShellItem **ppsiNewDest) = 0;
  10049 
  10050     virtual HRESULT STDMETHODCALLTYPE LinkItem(
  10051         IShellItem *psiSource,
  10052         IShellItem *psiParentDest,
  10053         LPCWSTR pszNewName,
  10054         TRANSFER_SOURCE_FLAGS flags,
  10055         IShellItem **ppsiNewDest) = 0;
  10056 
  10057     virtual HRESULT STDMETHODCALLTYPE ApplyPropertiesToItem(
  10058         IShellItem *psiSource,
  10059         IShellItem **ppsiNew) = 0;
  10060 
  10061     virtual HRESULT STDMETHODCALLTYPE GetDefaultDestinationName(
  10062         IShellItem *psiSource,
  10063         IShellItem *psiParentDest,
  10064         LPWSTR *ppszDestinationName) = 0;
  10065 
  10066     virtual HRESULT STDMETHODCALLTYPE EnterFolder(
  10067         IShellItem *psiChildFolderDest) = 0;
  10068 
  10069     virtual HRESULT STDMETHODCALLTYPE LeaveFolder(
  10070         IShellItem *psiChildFolderDest) = 0;
  10071 
  10072 };
  10073 #ifdef __CRT_UUID_DECL
  10074 __CRT_UUID_DECL(ITransferSource, 0x00adb003, 0xbde9, 0x45c6, 0x8e,0x29, 0xd0,0x9f,0x93,0x53,0xe1,0x08)
  10075 #endif
  10076 #else
  10077 typedef struct ITransferSourceVtbl {
  10078     BEGIN_INTERFACE
  10079 
  10080     /*** IUnknown methods ***/
  10081     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10082         ITransferSource *This,
  10083         REFIID riid,
  10084         void **ppvObject);
  10085 
  10086     ULONG (STDMETHODCALLTYPE *AddRef)(
  10087         ITransferSource *This);
  10088 
  10089     ULONG (STDMETHODCALLTYPE *Release)(
  10090         ITransferSource *This);
  10091 
  10092     /*** ITransferSource methods ***/
  10093     HRESULT (STDMETHODCALLTYPE *Advise)(
  10094         ITransferSource *This,
  10095         ITransferAdviseSink *psink,
  10096         DWORD *pdwCookie);
  10097 
  10098     HRESULT (STDMETHODCALLTYPE *Unadvise)(
  10099         ITransferSource *This,
  10100         DWORD dwCookie);
  10101 
  10102     HRESULT (STDMETHODCALLTYPE *SetProperties)(
  10103         ITransferSource *This,
  10104         IPropertyChangeArray *pproparray);
  10105 
  10106     HRESULT (STDMETHODCALLTYPE *OpenItem)(
  10107         ITransferSource *This,
  10108         IShellItem *psi,
  10109         TRANSFER_SOURCE_FLAGS flags,
  10110         REFIID riid,
  10111         void **ppv);
  10112 
  10113     HRESULT (STDMETHODCALLTYPE *MoveItem)(
  10114         ITransferSource *This,
  10115         IShellItem *psi,
  10116         IShellItem *psiParentDst,
  10117         LPCWSTR pszNameDst,
  10118         TRANSFER_SOURCE_FLAGS flags,
  10119         IShellItem **ppsiNew);
  10120 
  10121     HRESULT (STDMETHODCALLTYPE *RecycleItem)(
  10122         ITransferSource *This,
  10123         IShellItem *psiSource,
  10124         IShellItem *psiParentDest,
  10125         TRANSFER_SOURCE_FLAGS flags,
  10126         IShellItem **ppsiNewDest);
  10127 
  10128     HRESULT (STDMETHODCALLTYPE *RemoveItem)(
  10129         ITransferSource *This,
  10130         IShellItem *psiSource,
  10131         TRANSFER_SOURCE_FLAGS flags);
  10132 
  10133     HRESULT (STDMETHODCALLTYPE *RenameItem)(
  10134         ITransferSource *This,
  10135         IShellItem *psiSource,
  10136         LPCWSTR pszNewName,
  10137         TRANSFER_SOURCE_FLAGS flags,
  10138         IShellItem **ppsiNewDest);
  10139 
  10140     HRESULT (STDMETHODCALLTYPE *LinkItem)(
  10141         ITransferSource *This,
  10142         IShellItem *psiSource,
  10143         IShellItem *psiParentDest,
  10144         LPCWSTR pszNewName,
  10145         TRANSFER_SOURCE_FLAGS flags,
  10146         IShellItem **ppsiNewDest);
  10147 
  10148     HRESULT (STDMETHODCALLTYPE *ApplyPropertiesToItem)(
  10149         ITransferSource *This,
  10150         IShellItem *psiSource,
  10151         IShellItem **ppsiNew);
  10152 
  10153     HRESULT (STDMETHODCALLTYPE *GetDefaultDestinationName)(
  10154         ITransferSource *This,
  10155         IShellItem *psiSource,
  10156         IShellItem *psiParentDest,
  10157         LPWSTR *ppszDestinationName);
  10158 
  10159     HRESULT (STDMETHODCALLTYPE *EnterFolder)(
  10160         ITransferSource *This,
  10161         IShellItem *psiChildFolderDest);
  10162 
  10163     HRESULT (STDMETHODCALLTYPE *LeaveFolder)(
  10164         ITransferSource *This,
  10165         IShellItem *psiChildFolderDest);
  10166 
  10167     END_INTERFACE
  10168 } ITransferSourceVtbl;
  10169 
  10170 interface ITransferSource {
  10171     CONST_VTBL ITransferSourceVtbl* lpVtbl;
  10172 };
  10173 
  10174 #ifdef COBJMACROS
  10175 #ifndef WIDL_C_INLINE_WRAPPERS
  10176 /*** IUnknown methods ***/
  10177 #define ITransferSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10178 #define ITransferSource_AddRef(This) (This)->lpVtbl->AddRef(This)
  10179 #define ITransferSource_Release(This) (This)->lpVtbl->Release(This)
  10180 /*** ITransferSource methods ***/
  10181 #define ITransferSource_Advise(This,psink,pdwCookie) (This)->lpVtbl->Advise(This,psink,pdwCookie)
  10182 #define ITransferSource_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
  10183 #define ITransferSource_SetProperties(This,pproparray) (This)->lpVtbl->SetProperties(This,pproparray)
  10184 #define ITransferSource_OpenItem(This,psi,flags,riid,ppv) (This)->lpVtbl->OpenItem(This,psi,flags,riid,ppv)
  10185 #define ITransferSource_MoveItem(This,psi,psiParentDst,pszNameDst,flags,ppsiNew) (This)->lpVtbl->MoveItem(This,psi,psiParentDst,pszNameDst,flags,ppsiNew)
  10186 #define ITransferSource_RecycleItem(This,psiSource,psiParentDest,flags,ppsiNewDest) (This)->lpVtbl->RecycleItem(This,psiSource,psiParentDest,flags,ppsiNewDest)
  10187 #define ITransferSource_RemoveItem(This,psiSource,flags) (This)->lpVtbl->RemoveItem(This,psiSource,flags)
  10188 #define ITransferSource_RenameItem(This,psiSource,pszNewName,flags,ppsiNewDest) (This)->lpVtbl->RenameItem(This,psiSource,pszNewName,flags,ppsiNewDest)
  10189 #define ITransferSource_LinkItem(This,psiSource,psiParentDest,pszNewName,flags,ppsiNewDest) (This)->lpVtbl->LinkItem(This,psiSource,psiParentDest,pszNewName,flags,ppsiNewDest)
  10190 #define ITransferSource_ApplyPropertiesToItem(This,psiSource,ppsiNew) (This)->lpVtbl->ApplyPropertiesToItem(This,psiSource,ppsiNew)
  10191 #define ITransferSource_GetDefaultDestinationName(This,psiSource,psiParentDest,ppszDestinationName) (This)->lpVtbl->GetDefaultDestinationName(This,psiSource,psiParentDest,ppszDestinationName)
  10192 #define ITransferSource_EnterFolder(This,psiChildFolderDest) (This)->lpVtbl->EnterFolder(This,psiChildFolderDest)
  10193 #define ITransferSource_LeaveFolder(This,psiChildFolderDest) (This)->lpVtbl->LeaveFolder(This,psiChildFolderDest)
  10194 #else
  10195 /*** IUnknown methods ***/
  10196 static inline HRESULT ITransferSource_QueryInterface(ITransferSource* This,REFIID riid,void **ppvObject) {
  10197     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10198 }
  10199 static inline ULONG ITransferSource_AddRef(ITransferSource* This) {
  10200     return This->lpVtbl->AddRef(This);
  10201 }
  10202 static inline ULONG ITransferSource_Release(ITransferSource* This) {
  10203     return This->lpVtbl->Release(This);
  10204 }
  10205 /*** ITransferSource methods ***/
  10206 static inline HRESULT ITransferSource_Advise(ITransferSource* This,ITransferAdviseSink *psink,DWORD *pdwCookie) {
  10207     return This->lpVtbl->Advise(This,psink,pdwCookie);
  10208 }
  10209 static inline HRESULT ITransferSource_Unadvise(ITransferSource* This,DWORD dwCookie) {
  10210     return This->lpVtbl->Unadvise(This,dwCookie);
  10211 }
  10212 static inline HRESULT ITransferSource_SetProperties(ITransferSource* This,IPropertyChangeArray *pproparray) {
  10213     return This->lpVtbl->SetProperties(This,pproparray);
  10214 }
  10215 static inline HRESULT ITransferSource_OpenItem(ITransferSource* This,IShellItem *psi,TRANSFER_SOURCE_FLAGS flags,REFIID riid,void **ppv) {
  10216     return This->lpVtbl->OpenItem(This,psi,flags,riid,ppv);
  10217 }
  10218 static inline HRESULT ITransferSource_MoveItem(ITransferSource* This,IShellItem *psi,IShellItem *psiParentDst,LPCWSTR pszNameDst,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNew) {
  10219     return This->lpVtbl->MoveItem(This,psi,psiParentDst,pszNameDst,flags,ppsiNew);
  10220 }
  10221 static inline HRESULT ITransferSource_RecycleItem(ITransferSource* This,IShellItem *psiSource,IShellItem *psiParentDest,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNewDest) {
  10222     return This->lpVtbl->RecycleItem(This,psiSource,psiParentDest,flags,ppsiNewDest);
  10223 }
  10224 static inline HRESULT ITransferSource_RemoveItem(ITransferSource* This,IShellItem *psiSource,TRANSFER_SOURCE_FLAGS flags) {
  10225     return This->lpVtbl->RemoveItem(This,psiSource,flags);
  10226 }
  10227 static inline HRESULT ITransferSource_RenameItem(ITransferSource* This,IShellItem *psiSource,LPCWSTR pszNewName,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNewDest) {
  10228     return This->lpVtbl->RenameItem(This,psiSource,pszNewName,flags,ppsiNewDest);
  10229 }
  10230 static inline HRESULT ITransferSource_LinkItem(ITransferSource* This,IShellItem *psiSource,IShellItem *psiParentDest,LPCWSTR pszNewName,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNewDest) {
  10231     return This->lpVtbl->LinkItem(This,psiSource,psiParentDest,pszNewName,flags,ppsiNewDest);
  10232 }
  10233 static inline HRESULT ITransferSource_ApplyPropertiesToItem(ITransferSource* This,IShellItem *psiSource,IShellItem **ppsiNew) {
  10234     return This->lpVtbl->ApplyPropertiesToItem(This,psiSource,ppsiNew);
  10235 }
  10236 static inline HRESULT ITransferSource_GetDefaultDestinationName(ITransferSource* This,IShellItem *psiSource,IShellItem *psiParentDest,LPWSTR *ppszDestinationName) {
  10237     return This->lpVtbl->GetDefaultDestinationName(This,psiSource,psiParentDest,ppszDestinationName);
  10238 }
  10239 static inline HRESULT ITransferSource_EnterFolder(ITransferSource* This,IShellItem *psiChildFolderDest) {
  10240     return This->lpVtbl->EnterFolder(This,psiChildFolderDest);
  10241 }
  10242 static inline HRESULT ITransferSource_LeaveFolder(ITransferSource* This,IShellItem *psiChildFolderDest) {
  10243     return This->lpVtbl->LeaveFolder(This,psiChildFolderDest);
  10244 }
  10245 #endif
  10246 #endif
  10247 
  10248 #endif
  10249 
  10250 
  10251 #endif  /* __ITransferSource_INTERFACE_DEFINED__ */
  10252 
  10253 #endif
  10254 
  10255 typedef struct SHELL_ITEM_RESOURCE {
  10256     GUID guidType;
  10257     WCHAR szName[260];
  10258 } SHELL_ITEM_RESOURCE;
  10259 
  10260 /*****************************************************************************
  10261  * IEnumResources interface
  10262  */
  10263 #ifndef __IEnumResources_INTERFACE_DEFINED__
  10264 #define __IEnumResources_INTERFACE_DEFINED__
  10265 
  10266 DEFINE_GUID(IID_IEnumResources, 0x2dd81fe3, 0xa83c, 0x4da9, 0xa3,0x30, 0x47,0x24,0x9d,0x34,0x5b,0xa1);
  10267 #if defined(__cplusplus) && !defined(CINTERFACE)
  10268 MIDL_INTERFACE("2dd81fe3-a83c-4da9-a330-47249d345ba1")
  10269 IEnumResources : public IUnknown
  10270 {
  10271     virtual HRESULT STDMETHODCALLTYPE Next(
  10272         ULONG celt,
  10273         SHELL_ITEM_RESOURCE *psir,
  10274         ULONG *pceltFetched) = 0;
  10275 
  10276     virtual HRESULT STDMETHODCALLTYPE Skip(
  10277         ULONG celt) = 0;
  10278 
  10279     virtual HRESULT STDMETHODCALLTYPE Reset(
  10280         ) = 0;
  10281 
  10282     virtual HRESULT STDMETHODCALLTYPE Clone(
  10283         IEnumResources **ppenumr) = 0;
  10284 
  10285 };
  10286 #ifdef __CRT_UUID_DECL
  10287 __CRT_UUID_DECL(IEnumResources, 0x2dd81fe3, 0xa83c, 0x4da9, 0xa3,0x30, 0x47,0x24,0x9d,0x34,0x5b,0xa1)
  10288 #endif
  10289 #else
  10290 typedef struct IEnumResourcesVtbl {
  10291     BEGIN_INTERFACE
  10292 
  10293     /*** IUnknown methods ***/
  10294     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10295         IEnumResources *This,
  10296         REFIID riid,
  10297         void **ppvObject);
  10298 
  10299     ULONG (STDMETHODCALLTYPE *AddRef)(
  10300         IEnumResources *This);
  10301 
  10302     ULONG (STDMETHODCALLTYPE *Release)(
  10303         IEnumResources *This);
  10304 
  10305     /*** IEnumResources methods ***/
  10306     HRESULT (STDMETHODCALLTYPE *Next)(
  10307         IEnumResources *This,
  10308         ULONG celt,
  10309         SHELL_ITEM_RESOURCE *psir,
  10310         ULONG *pceltFetched);
  10311 
  10312     HRESULT (STDMETHODCALLTYPE *Skip)(
  10313         IEnumResources *This,
  10314         ULONG celt);
  10315 
  10316     HRESULT (STDMETHODCALLTYPE *Reset)(
  10317         IEnumResources *This);
  10318 
  10319     HRESULT (STDMETHODCALLTYPE *Clone)(
  10320         IEnumResources *This,
  10321         IEnumResources **ppenumr);
  10322 
  10323     END_INTERFACE
  10324 } IEnumResourcesVtbl;
  10325 
  10326 interface IEnumResources {
  10327     CONST_VTBL IEnumResourcesVtbl* lpVtbl;
  10328 };
  10329 
  10330 #ifdef COBJMACROS
  10331 #ifndef WIDL_C_INLINE_WRAPPERS
  10332 /*** IUnknown methods ***/
  10333 #define IEnumResources_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10334 #define IEnumResources_AddRef(This) (This)->lpVtbl->AddRef(This)
  10335 #define IEnumResources_Release(This) (This)->lpVtbl->Release(This)
  10336 /*** IEnumResources methods ***/
  10337 #define IEnumResources_Next(This,celt,psir,pceltFetched) (This)->lpVtbl->Next(This,celt,psir,pceltFetched)
  10338 #define IEnumResources_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
  10339 #define IEnumResources_Reset(This) (This)->lpVtbl->Reset(This)
  10340 #define IEnumResources_Clone(This,ppenumr) (This)->lpVtbl->Clone(This,ppenumr)
  10341 #else
  10342 /*** IUnknown methods ***/
  10343 static inline HRESULT IEnumResources_QueryInterface(IEnumResources* This,REFIID riid,void **ppvObject) {
  10344     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10345 }
  10346 static inline ULONG IEnumResources_AddRef(IEnumResources* This) {
  10347     return This->lpVtbl->AddRef(This);
  10348 }
  10349 static inline ULONG IEnumResources_Release(IEnumResources* This) {
  10350     return This->lpVtbl->Release(This);
  10351 }
  10352 /*** IEnumResources methods ***/
  10353 static inline HRESULT IEnumResources_Next(IEnumResources* This,ULONG celt,SHELL_ITEM_RESOURCE *psir,ULONG *pceltFetched) {
  10354     return This->lpVtbl->Next(This,celt,psir,pceltFetched);
  10355 }
  10356 static inline HRESULT IEnumResources_Skip(IEnumResources* This,ULONG celt) {
  10357     return This->lpVtbl->Skip(This,celt);
  10358 }
  10359 static inline HRESULT IEnumResources_Reset(IEnumResources* This) {
  10360     return This->lpVtbl->Reset(This);
  10361 }
  10362 static inline HRESULT IEnumResources_Clone(IEnumResources* This,IEnumResources **ppenumr) {
  10363     return This->lpVtbl->Clone(This,ppenumr);
  10364 }
  10365 #endif
  10366 #endif
  10367 
  10368 #endif
  10369 
  10370 
  10371 #endif  /* __IEnumResources_INTERFACE_DEFINED__ */
  10372 
  10373 
  10374 /*****************************************************************************
  10375  * IShellItemResources interface
  10376  */
  10377 #ifndef __IShellItemResources_INTERFACE_DEFINED__
  10378 #define __IShellItemResources_INTERFACE_DEFINED__
  10379 
  10380 DEFINE_GUID(IID_IShellItemResources, 0xff5693be, 0x2ce0, 0x4d48, 0xb5,0xc5, 0x40,0x81,0x7d,0x1a,0xcd,0xb9);
  10381 #if defined(__cplusplus) && !defined(CINTERFACE)
  10382 MIDL_INTERFACE("ff5693be-2ce0-4d48-b5c5-40817d1acdb9")
  10383 IShellItemResources : public IUnknown
  10384 {
  10385     virtual HRESULT STDMETHODCALLTYPE GetAttributes(
  10386         DWORD *pdwAttributes) = 0;
  10387 
  10388     virtual HRESULT STDMETHODCALLTYPE GetSize(
  10389         ULONGLONG *pullSize) = 0;
  10390 
  10391     virtual HRESULT STDMETHODCALLTYPE GetTimes(
  10392         FILETIME *pftCreation,
  10393         FILETIME *pftWrite,
  10394         FILETIME *pftAccess) = 0;
  10395 
  10396     virtual HRESULT STDMETHODCALLTYPE SetTimes(
  10397         const FILETIME *pftCreation,
  10398         const FILETIME *pftWrite,
  10399         const FILETIME *pftAccess) = 0;
  10400 
  10401     virtual HRESULT STDMETHODCALLTYPE GetResourceDescription(
  10402         const SHELL_ITEM_RESOURCE *pcsir,
  10403         LPWSTR *ppszDescription) = 0;
  10404 
  10405     virtual HRESULT STDMETHODCALLTYPE EnumResources(
  10406         IEnumResources **ppenumr) = 0;
  10407 
  10408     virtual HRESULT STDMETHODCALLTYPE SupportsResource(
  10409         const SHELL_ITEM_RESOURCE *pcsir) = 0;
  10410 
  10411     virtual HRESULT STDMETHODCALLTYPE OpenResource(
  10412         const SHELL_ITEM_RESOURCE *pcsir,
  10413         REFIID riid,
  10414         void **ppv) = 0;
  10415 
  10416     virtual HRESULT STDMETHODCALLTYPE CreateResource(
  10417         const SHELL_ITEM_RESOURCE *pcsir,
  10418         REFIID riid,
  10419         void **ppv) = 0;
  10420 
  10421     virtual HRESULT STDMETHODCALLTYPE MarkForDelete(
  10422         ) = 0;
  10423 
  10424 };
  10425 #ifdef __CRT_UUID_DECL
  10426 __CRT_UUID_DECL(IShellItemResources, 0xff5693be, 0x2ce0, 0x4d48, 0xb5,0xc5, 0x40,0x81,0x7d,0x1a,0xcd,0xb9)
  10427 #endif
  10428 #else
  10429 typedef struct IShellItemResourcesVtbl {
  10430     BEGIN_INTERFACE
  10431 
  10432     /*** IUnknown methods ***/
  10433     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10434         IShellItemResources *This,
  10435         REFIID riid,
  10436         void **ppvObject);
  10437 
  10438     ULONG (STDMETHODCALLTYPE *AddRef)(
  10439         IShellItemResources *This);
  10440 
  10441     ULONG (STDMETHODCALLTYPE *Release)(
  10442         IShellItemResources *This);
  10443 
  10444     /*** IShellItemResources methods ***/
  10445     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
  10446         IShellItemResources *This,
  10447         DWORD *pdwAttributes);
  10448 
  10449     HRESULT (STDMETHODCALLTYPE *GetSize)(
  10450         IShellItemResources *This,
  10451         ULONGLONG *pullSize);
  10452 
  10453     HRESULT (STDMETHODCALLTYPE *GetTimes)(
  10454         IShellItemResources *This,
  10455         FILETIME *pftCreation,
  10456         FILETIME *pftWrite,
  10457         FILETIME *pftAccess);
  10458 
  10459     HRESULT (STDMETHODCALLTYPE *SetTimes)(
  10460         IShellItemResources *This,
  10461         const FILETIME *pftCreation,
  10462         const FILETIME *pftWrite,
  10463         const FILETIME *pftAccess);
  10464 
  10465     HRESULT (STDMETHODCALLTYPE *GetResourceDescription)(
  10466         IShellItemResources *This,
  10467         const SHELL_ITEM_RESOURCE *pcsir,
  10468         LPWSTR *ppszDescription);
  10469 
  10470     HRESULT (STDMETHODCALLTYPE *EnumResources)(
  10471         IShellItemResources *This,
  10472         IEnumResources **ppenumr);
  10473 
  10474     HRESULT (STDMETHODCALLTYPE *SupportsResource)(
  10475         IShellItemResources *This,
  10476         const SHELL_ITEM_RESOURCE *pcsir);
  10477 
  10478     HRESULT (STDMETHODCALLTYPE *OpenResource)(
  10479         IShellItemResources *This,
  10480         const SHELL_ITEM_RESOURCE *pcsir,
  10481         REFIID riid,
  10482         void **ppv);
  10483 
  10484     HRESULT (STDMETHODCALLTYPE *CreateResource)(
  10485         IShellItemResources *This,
  10486         const SHELL_ITEM_RESOURCE *pcsir,
  10487         REFIID riid,
  10488         void **ppv);
  10489 
  10490     HRESULT (STDMETHODCALLTYPE *MarkForDelete)(
  10491         IShellItemResources *This);
  10492 
  10493     END_INTERFACE
  10494 } IShellItemResourcesVtbl;
  10495 
  10496 interface IShellItemResources {
  10497     CONST_VTBL IShellItemResourcesVtbl* lpVtbl;
  10498 };
  10499 
  10500 #ifdef COBJMACROS
  10501 #ifndef WIDL_C_INLINE_WRAPPERS
  10502 /*** IUnknown methods ***/
  10503 #define IShellItemResources_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10504 #define IShellItemResources_AddRef(This) (This)->lpVtbl->AddRef(This)
  10505 #define IShellItemResources_Release(This) (This)->lpVtbl->Release(This)
  10506 /*** IShellItemResources methods ***/
  10507 #define IShellItemResources_GetAttributes(This,pdwAttributes) (This)->lpVtbl->GetAttributes(This,pdwAttributes)
  10508 #define IShellItemResources_GetSize(This,pullSize) (This)->lpVtbl->GetSize(This,pullSize)
  10509 #define IShellItemResources_GetTimes(This,pftCreation,pftWrite,pftAccess) (This)->lpVtbl->GetTimes(This,pftCreation,pftWrite,pftAccess)
  10510 #define IShellItemResources_SetTimes(This,pftCreation,pftWrite,pftAccess) (This)->lpVtbl->SetTimes(This,pftCreation,pftWrite,pftAccess)
  10511 #define IShellItemResources_GetResourceDescription(This,pcsir,ppszDescription) (This)->lpVtbl->GetResourceDescription(This,pcsir,ppszDescription)
  10512 #define IShellItemResources_EnumResources(This,ppenumr) (This)->lpVtbl->EnumResources(This,ppenumr)
  10513 #define IShellItemResources_SupportsResource(This,pcsir) (This)->lpVtbl->SupportsResource(This,pcsir)
  10514 #define IShellItemResources_OpenResource(This,pcsir,riid,ppv) (This)->lpVtbl->OpenResource(This,pcsir,riid,ppv)
  10515 #define IShellItemResources_CreateResource(This,pcsir,riid,ppv) (This)->lpVtbl->CreateResource(This,pcsir,riid,ppv)
  10516 #define IShellItemResources_MarkForDelete(This) (This)->lpVtbl->MarkForDelete(This)
  10517 #else
  10518 /*** IUnknown methods ***/
  10519 static inline HRESULT IShellItemResources_QueryInterface(IShellItemResources* This,REFIID riid,void **ppvObject) {
  10520     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10521 }
  10522 static inline ULONG IShellItemResources_AddRef(IShellItemResources* This) {
  10523     return This->lpVtbl->AddRef(This);
  10524 }
  10525 static inline ULONG IShellItemResources_Release(IShellItemResources* This) {
  10526     return This->lpVtbl->Release(This);
  10527 }
  10528 /*** IShellItemResources methods ***/
  10529 static inline HRESULT IShellItemResources_GetAttributes(IShellItemResources* This,DWORD *pdwAttributes) {
  10530     return This->lpVtbl->GetAttributes(This,pdwAttributes);
  10531 }
  10532 static inline HRESULT IShellItemResources_GetSize(IShellItemResources* This,ULONGLONG *pullSize) {
  10533     return This->lpVtbl->GetSize(This,pullSize);
  10534 }
  10535 static inline HRESULT IShellItemResources_GetTimes(IShellItemResources* This,FILETIME *pftCreation,FILETIME *pftWrite,FILETIME *pftAccess) {
  10536     return This->lpVtbl->GetTimes(This,pftCreation,pftWrite,pftAccess);
  10537 }
  10538 static inline HRESULT IShellItemResources_SetTimes(IShellItemResources* This,const FILETIME *pftCreation,const FILETIME *pftWrite,const FILETIME *pftAccess) {
  10539     return This->lpVtbl->SetTimes(This,pftCreation,pftWrite,pftAccess);
  10540 }
  10541 static inline HRESULT IShellItemResources_GetResourceDescription(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir,LPWSTR *ppszDescription) {
  10542     return This->lpVtbl->GetResourceDescription(This,pcsir,ppszDescription);
  10543 }
  10544 static inline HRESULT IShellItemResources_EnumResources(IShellItemResources* This,IEnumResources **ppenumr) {
  10545     return This->lpVtbl->EnumResources(This,ppenumr);
  10546 }
  10547 static inline HRESULT IShellItemResources_SupportsResource(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir) {
  10548     return This->lpVtbl->SupportsResource(This,pcsir);
  10549 }
  10550 static inline HRESULT IShellItemResources_OpenResource(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir,REFIID riid,void **ppv) {
  10551     return This->lpVtbl->OpenResource(This,pcsir,riid,ppv);
  10552 }
  10553 static inline HRESULT IShellItemResources_CreateResource(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir,REFIID riid,void **ppv) {
  10554     return This->lpVtbl->CreateResource(This,pcsir,riid,ppv);
  10555 }
  10556 static inline HRESULT IShellItemResources_MarkForDelete(IShellItemResources* This) {
  10557     return This->lpVtbl->MarkForDelete(This);
  10558 }
  10559 #endif
  10560 #endif
  10561 
  10562 #endif
  10563 
  10564 
  10565 #endif  /* __IShellItemResources_INTERFACE_DEFINED__ */
  10566 
  10567 
  10568 /*****************************************************************************
  10569  * ITransferDestination interface
  10570  */
  10571 #ifndef __ITransferDestination_INTERFACE_DEFINED__
  10572 #define __ITransferDestination_INTERFACE_DEFINED__
  10573 
  10574 DEFINE_GUID(IID_ITransferDestination, 0x48addd32, 0x3ca5, 0x4124, 0xab,0xe3, 0xb5,0xa7,0x25,0x31,0xb2,0x07);
  10575 #if defined(__cplusplus) && !defined(CINTERFACE)
  10576 MIDL_INTERFACE("48addd32-3ca5-4124-abe3-b5a72531b207")
  10577 ITransferDestination : public IUnknown
  10578 {
  10579     virtual HRESULT STDMETHODCALLTYPE Advise(
  10580         ITransferAdviseSink *psink,
  10581         DWORD *pdwCookie) = 0;
  10582 
  10583     virtual HRESULT STDMETHODCALLTYPE Unadvise(
  10584         DWORD dwCookie) = 0;
  10585 
  10586     virtual HRESULT STDMETHODCALLTYPE CreateItem(
  10587         LPCWSTR pszName,
  10588         DWORD dwAttributes,
  10589         ULONGLONG ullSize,
  10590         TRANSFER_SOURCE_FLAGS flags,
  10591         REFIID riidItem,
  10592         void **ppvItem,
  10593         REFIID riidResources,
  10594         void **ppvResources) = 0;
  10595 
  10596 };
  10597 #ifdef __CRT_UUID_DECL
  10598 __CRT_UUID_DECL(ITransferDestination, 0x48addd32, 0x3ca5, 0x4124, 0xab,0xe3, 0xb5,0xa7,0x25,0x31,0xb2,0x07)
  10599 #endif
  10600 #else
  10601 typedef struct ITransferDestinationVtbl {
  10602     BEGIN_INTERFACE
  10603 
  10604     /*** IUnknown methods ***/
  10605     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10606         ITransferDestination *This,
  10607         REFIID riid,
  10608         void **ppvObject);
  10609 
  10610     ULONG (STDMETHODCALLTYPE *AddRef)(
  10611         ITransferDestination *This);
  10612 
  10613     ULONG (STDMETHODCALLTYPE *Release)(
  10614         ITransferDestination *This);
  10615 
  10616     /*** ITransferDestination methods ***/
  10617     HRESULT (STDMETHODCALLTYPE *Advise)(
  10618         ITransferDestination *This,
  10619         ITransferAdviseSink *psink,
  10620         DWORD *pdwCookie);
  10621 
  10622     HRESULT (STDMETHODCALLTYPE *Unadvise)(
  10623         ITransferDestination *This,
  10624         DWORD dwCookie);
  10625 
  10626     HRESULT (STDMETHODCALLTYPE *CreateItem)(
  10627         ITransferDestination *This,
  10628         LPCWSTR pszName,
  10629         DWORD dwAttributes,
  10630         ULONGLONG ullSize,
  10631         TRANSFER_SOURCE_FLAGS flags,
  10632         REFIID riidItem,
  10633         void **ppvItem,
  10634         REFIID riidResources,
  10635         void **ppvResources);
  10636 
  10637     END_INTERFACE
  10638 } ITransferDestinationVtbl;
  10639 
  10640 interface ITransferDestination {
  10641     CONST_VTBL ITransferDestinationVtbl* lpVtbl;
  10642 };
  10643 
  10644 #ifdef COBJMACROS
  10645 #ifndef WIDL_C_INLINE_WRAPPERS
  10646 /*** IUnknown methods ***/
  10647 #define ITransferDestination_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10648 #define ITransferDestination_AddRef(This) (This)->lpVtbl->AddRef(This)
  10649 #define ITransferDestination_Release(This) (This)->lpVtbl->Release(This)
  10650 /*** ITransferDestination methods ***/
  10651 #define ITransferDestination_Advise(This,psink,pdwCookie) (This)->lpVtbl->Advise(This,psink,pdwCookie)
  10652 #define ITransferDestination_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
  10653 #define ITransferDestination_CreateItem(This,pszName,dwAttributes,ullSize,flags,riidItem,ppvItem,riidResources,ppvResources) (This)->lpVtbl->CreateItem(This,pszName,dwAttributes,ullSize,flags,riidItem,ppvItem,riidResources,ppvResources)
  10654 #else
  10655 /*** IUnknown methods ***/
  10656 static inline HRESULT ITransferDestination_QueryInterface(ITransferDestination* This,REFIID riid,void **ppvObject) {
  10657     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10658 }
  10659 static inline ULONG ITransferDestination_AddRef(ITransferDestination* This) {
  10660     return This->lpVtbl->AddRef(This);
  10661 }
  10662 static inline ULONG ITransferDestination_Release(ITransferDestination* This) {
  10663     return This->lpVtbl->Release(This);
  10664 }
  10665 /*** ITransferDestination methods ***/
  10666 static inline HRESULT ITransferDestination_Advise(ITransferDestination* This,ITransferAdviseSink *psink,DWORD *pdwCookie) {
  10667     return This->lpVtbl->Advise(This,psink,pdwCookie);
  10668 }
  10669 static inline HRESULT ITransferDestination_Unadvise(ITransferDestination* This,DWORD dwCookie) {
  10670     return This->lpVtbl->Unadvise(This,dwCookie);
  10671 }
  10672 static inline HRESULT ITransferDestination_CreateItem(ITransferDestination* This,LPCWSTR pszName,DWORD dwAttributes,ULONGLONG ullSize,TRANSFER_SOURCE_FLAGS flags,REFIID riidItem,void **ppvItem,REFIID riidResources,void **ppvResources) {
  10673     return This->lpVtbl->CreateItem(This,pszName,dwAttributes,ullSize,flags,riidItem,ppvItem,riidResources,ppvResources);
  10674 }
  10675 #endif
  10676 #endif
  10677 
  10678 #endif
  10679 
  10680 
  10681 #endif  /* __ITransferDestination_INTERFACE_DEFINED__ */
  10682 
  10683 #if 0
  10684 typedef struct _OVERLAPPED {
  10685     ULONG_PTR Internal;
  10686     ULONG_PTR InternalHigh;
  10687     __C89_NAMELESS union {
  10688         __C89_NAMELESS struct {
  10689             DWORD Offset;
  10690             DWORD OffsetHigh;
  10691         } __C89_NAMELESSSTRUCTNAME;
  10692         PVOID Pointer;
  10693     } __C89_NAMELESSUNIONNAME;
  10694     HANDLE hEvent;
  10695 } OVERLAPPED;
  10696 typedef struct _OVERLAPPED *LPOVERLAPPED;
  10697 #endif
  10698 
  10699 /*****************************************************************************
  10700  * IStreamAsync interface
  10701  */
  10702 #ifndef __IStreamAsync_INTERFACE_DEFINED__
  10703 #define __IStreamAsync_INTERFACE_DEFINED__
  10704 
  10705 DEFINE_GUID(IID_IStreamAsync, 0xfe0b6665, 0xe0ca, 0x49b9, 0xa1,0x78, 0x2b,0x5c,0xb4,0x8d,0x92,0xa5);
  10706 #if defined(__cplusplus) && !defined(CINTERFACE)
  10707 MIDL_INTERFACE("fe0b6665-e0ca-49b9-a178-2b5cb48d92a5")
  10708 IStreamAsync : public IStream
  10709 {
  10710     virtual HRESULT STDMETHODCALLTYPE ReadAsync(
  10711         void *pv,
  10712         DWORD cb,
  10713         LPDWORD pcbRead,
  10714         LPOVERLAPPED lpOverlapped) = 0;
  10715 
  10716     virtual HRESULT STDMETHODCALLTYPE WriteAsync(
  10717         const void *lpBuffer,
  10718         DWORD cb,
  10719         LPDWORD pcbWritten,
  10720         LPOVERLAPPED lpOverlapped) = 0;
  10721 
  10722     virtual HRESULT STDMETHODCALLTYPE OverlappedResult(
  10723         LPOVERLAPPED lpOverlapped,
  10724         LPDWORD lpNumberOfBytesTransferred,
  10725         WINBOOL bWait) = 0;
  10726 
  10727     virtual HRESULT STDMETHODCALLTYPE CancelIo(
  10728         ) = 0;
  10729 
  10730 };
  10731 #ifdef __CRT_UUID_DECL
  10732 __CRT_UUID_DECL(IStreamAsync, 0xfe0b6665, 0xe0ca, 0x49b9, 0xa1,0x78, 0x2b,0x5c,0xb4,0x8d,0x92,0xa5)
  10733 #endif
  10734 #else
  10735 typedef struct IStreamAsyncVtbl {
  10736     BEGIN_INTERFACE
  10737 
  10738     /*** IUnknown methods ***/
  10739     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10740         IStreamAsync *This,
  10741         REFIID riid,
  10742         void **ppvObject);
  10743 
  10744     ULONG (STDMETHODCALLTYPE *AddRef)(
  10745         IStreamAsync *This);
  10746 
  10747     ULONG (STDMETHODCALLTYPE *Release)(
  10748         IStreamAsync *This);
  10749 
  10750     /*** ISequentialStream methods ***/
  10751     HRESULT (STDMETHODCALLTYPE *Read)(
  10752         IStreamAsync *This,
  10753         void *pv,
  10754         ULONG cb,
  10755         ULONG *pcbRead);
  10756 
  10757     HRESULT (STDMETHODCALLTYPE *Write)(
  10758         IStreamAsync *This,
  10759         const void *pv,
  10760         ULONG cb,
  10761         ULONG *pcbWritten);
  10762 
  10763     /*** IStream methods ***/
  10764     HRESULT (STDMETHODCALLTYPE *Seek)(
  10765         IStreamAsync *This,
  10766         LARGE_INTEGER dlibMove,
  10767         DWORD dwOrigin,
  10768         ULARGE_INTEGER *plibNewPosition);
  10769 
  10770     HRESULT (STDMETHODCALLTYPE *SetSize)(
  10771         IStreamAsync *This,
  10772         ULARGE_INTEGER libNewSize);
  10773 
  10774     HRESULT (STDMETHODCALLTYPE *CopyTo)(
  10775         IStreamAsync *This,
  10776         IStream *pstm,
  10777         ULARGE_INTEGER cb,
  10778         ULARGE_INTEGER *pcbRead,
  10779         ULARGE_INTEGER *pcbWritten);
  10780 
  10781     HRESULT (STDMETHODCALLTYPE *Commit)(
  10782         IStreamAsync *This,
  10783         DWORD grfCommitFlags);
  10784 
  10785     HRESULT (STDMETHODCALLTYPE *Revert)(
  10786         IStreamAsync *This);
  10787 
  10788     HRESULT (STDMETHODCALLTYPE *LockRegion)(
  10789         IStreamAsync *This,
  10790         ULARGE_INTEGER libOffset,
  10791         ULARGE_INTEGER cb,
  10792         DWORD dwLockType);
  10793 
  10794     HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
  10795         IStreamAsync *This,
  10796         ULARGE_INTEGER libOffset,
  10797         ULARGE_INTEGER cb,
  10798         DWORD dwLockType);
  10799 
  10800     HRESULT (STDMETHODCALLTYPE *Stat)(
  10801         IStreamAsync *This,
  10802         STATSTG *pstatstg,
  10803         DWORD grfStatFlag);
  10804 
  10805     HRESULT (STDMETHODCALLTYPE *Clone)(
  10806         IStreamAsync *This,
  10807         IStream **ppstm);
  10808 
  10809     /*** IStreamAsync methods ***/
  10810     HRESULT (STDMETHODCALLTYPE *ReadAsync)(
  10811         IStreamAsync *This,
  10812         void *pv,
  10813         DWORD cb,
  10814         LPDWORD pcbRead,
  10815         LPOVERLAPPED lpOverlapped);
  10816 
  10817     HRESULT (STDMETHODCALLTYPE *WriteAsync)(
  10818         IStreamAsync *This,
  10819         const void *lpBuffer,
  10820         DWORD cb,
  10821         LPDWORD pcbWritten,
  10822         LPOVERLAPPED lpOverlapped);
  10823 
  10824     HRESULT (STDMETHODCALLTYPE *OverlappedResult)(
  10825         IStreamAsync *This,
  10826         LPOVERLAPPED lpOverlapped,
  10827         LPDWORD lpNumberOfBytesTransferred,
  10828         WINBOOL bWait);
  10829 
  10830     HRESULT (STDMETHODCALLTYPE *CancelIo)(
  10831         IStreamAsync *This);
  10832 
  10833     END_INTERFACE
  10834 } IStreamAsyncVtbl;
  10835 
  10836 interface IStreamAsync {
  10837     CONST_VTBL IStreamAsyncVtbl* lpVtbl;
  10838 };
  10839 
  10840 #ifdef COBJMACROS
  10841 #ifndef WIDL_C_INLINE_WRAPPERS
  10842 /*** IUnknown methods ***/
  10843 #define IStreamAsync_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10844 #define IStreamAsync_AddRef(This) (This)->lpVtbl->AddRef(This)
  10845 #define IStreamAsync_Release(This) (This)->lpVtbl->Release(This)
  10846 /*** ISequentialStream methods ***/
  10847 #define IStreamAsync_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
  10848 #define IStreamAsync_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
  10849 /*** IStream methods ***/
  10850 #define IStreamAsync_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
  10851 #define IStreamAsync_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
  10852 #define IStreamAsync_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
  10853 #define IStreamAsync_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
  10854 #define IStreamAsync_Revert(This) (This)->lpVtbl->Revert(This)
  10855 #define IStreamAsync_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
  10856 #define IStreamAsync_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
  10857 #define IStreamAsync_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
  10858 #define IStreamAsync_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
  10859 /*** IStreamAsync methods ***/
  10860 #define IStreamAsync_ReadAsync(This,pv,cb,pcbRead,lpOverlapped) (This)->lpVtbl->ReadAsync(This,pv,cb,pcbRead,lpOverlapped)
  10861 #define IStreamAsync_WriteAsync(This,lpBuffer,cb,pcbWritten,lpOverlapped) (This)->lpVtbl->WriteAsync(This,lpBuffer,cb,pcbWritten,lpOverlapped)
  10862 #define IStreamAsync_OverlappedResult(This,lpOverlapped,lpNumberOfBytesTransferred,bWait) (This)->lpVtbl->OverlappedResult(This,lpOverlapped,lpNumberOfBytesTransferred,bWait)
  10863 #define IStreamAsync_CancelIo(This) (This)->lpVtbl->CancelIo(This)
  10864 #else
  10865 /*** IUnknown methods ***/
  10866 static inline HRESULT IStreamAsync_QueryInterface(IStreamAsync* This,REFIID riid,void **ppvObject) {
  10867     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10868 }
  10869 static inline ULONG IStreamAsync_AddRef(IStreamAsync* This) {
  10870     return This->lpVtbl->AddRef(This);
  10871 }
  10872 static inline ULONG IStreamAsync_Release(IStreamAsync* This) {
  10873     return This->lpVtbl->Release(This);
  10874 }
  10875 /*** ISequentialStream methods ***/
  10876 static inline HRESULT IStreamAsync_Read(IStreamAsync* This,void *pv,ULONG cb,ULONG *pcbRead) {
  10877     return This->lpVtbl->Read(This,pv,cb,pcbRead);
  10878 }
  10879 static inline HRESULT IStreamAsync_Write(IStreamAsync* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
  10880     return This->lpVtbl->Write(This,pv,cb,pcbWritten);
  10881 }
  10882 /*** IStream methods ***/
  10883 static inline HRESULT IStreamAsync_Seek(IStreamAsync* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
  10884     return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
  10885 }
  10886 static inline HRESULT IStreamAsync_SetSize(IStreamAsync* This,ULARGE_INTEGER libNewSize) {
  10887     return This->lpVtbl->SetSize(This,libNewSize);
  10888 }
  10889 static inline HRESULT IStreamAsync_CopyTo(IStreamAsync* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
  10890     return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
  10891 }
  10892 static inline HRESULT IStreamAsync_Commit(IStreamAsync* This,DWORD grfCommitFlags) {
  10893     return This->lpVtbl->Commit(This,grfCommitFlags);
  10894 }
  10895 static inline HRESULT IStreamAsync_Revert(IStreamAsync* This) {
  10896     return This->lpVtbl->Revert(This);
  10897 }
  10898 static inline HRESULT IStreamAsync_LockRegion(IStreamAsync* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
  10899     return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
  10900 }
  10901 static inline HRESULT IStreamAsync_UnlockRegion(IStreamAsync* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
  10902     return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
  10903 }
  10904 static inline HRESULT IStreamAsync_Stat(IStreamAsync* This,STATSTG *pstatstg,DWORD grfStatFlag) {
  10905     return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
  10906 }
  10907 static inline HRESULT IStreamAsync_Clone(IStreamAsync* This,IStream **ppstm) {
  10908     return This->lpVtbl->Clone(This,ppstm);
  10909 }
  10910 /*** IStreamAsync methods ***/
  10911 static inline HRESULT IStreamAsync_ReadAsync(IStreamAsync* This,void *pv,DWORD cb,LPDWORD pcbRead,LPOVERLAPPED lpOverlapped) {
  10912     return This->lpVtbl->ReadAsync(This,pv,cb,pcbRead,lpOverlapped);
  10913 }
  10914 static inline HRESULT IStreamAsync_WriteAsync(IStreamAsync* This,const void *lpBuffer,DWORD cb,LPDWORD pcbWritten,LPOVERLAPPED lpOverlapped) {
  10915     return This->lpVtbl->WriteAsync(This,lpBuffer,cb,pcbWritten,lpOverlapped);
  10916 }
  10917 static inline HRESULT IStreamAsync_OverlappedResult(IStreamAsync* This,LPOVERLAPPED lpOverlapped,LPDWORD lpNumberOfBytesTransferred,WINBOOL bWait) {
  10918     return This->lpVtbl->OverlappedResult(This,lpOverlapped,lpNumberOfBytesTransferred,bWait);
  10919 }
  10920 static inline HRESULT IStreamAsync_CancelIo(IStreamAsync* This) {
  10921     return This->lpVtbl->CancelIo(This);
  10922 }
  10923 #endif
  10924 #endif
  10925 
  10926 #endif
  10927 
  10928 
  10929 #endif  /* __IStreamAsync_INTERFACE_DEFINED__ */
  10930 
  10931 
  10932 /*****************************************************************************
  10933  * IStreamUnbufferedInfo interface
  10934  */
  10935 #ifndef __IStreamUnbufferedInfo_INTERFACE_DEFINED__
  10936 #define __IStreamUnbufferedInfo_INTERFACE_DEFINED__
  10937 
  10938 DEFINE_GUID(IID_IStreamUnbufferedInfo, 0x8a68fdda, 0x1fdc, 0x4c20, 0x8c,0xeb, 0x41,0x66,0x43,0xb5,0xa6,0x25);
  10939 #if defined(__cplusplus) && !defined(CINTERFACE)
  10940 MIDL_INTERFACE("8a68fdda-1fdc-4c20-8ceb-416643b5a625")
  10941 IStreamUnbufferedInfo : public IUnknown
  10942 {
  10943     virtual HRESULT STDMETHODCALLTYPE GetSectorSize(
  10944         ULONG *pcbSectorSize) = 0;
  10945 
  10946 };
  10947 #ifdef __CRT_UUID_DECL
  10948 __CRT_UUID_DECL(IStreamUnbufferedInfo, 0x8a68fdda, 0x1fdc, 0x4c20, 0x8c,0xeb, 0x41,0x66,0x43,0xb5,0xa6,0x25)
  10949 #endif
  10950 #else
  10951 typedef struct IStreamUnbufferedInfoVtbl {
  10952     BEGIN_INTERFACE
  10953 
  10954     /*** IUnknown methods ***/
  10955     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  10956         IStreamUnbufferedInfo *This,
  10957         REFIID riid,
  10958         void **ppvObject);
  10959 
  10960     ULONG (STDMETHODCALLTYPE *AddRef)(
  10961         IStreamUnbufferedInfo *This);
  10962 
  10963     ULONG (STDMETHODCALLTYPE *Release)(
  10964         IStreamUnbufferedInfo *This);
  10965 
  10966     /*** IStreamUnbufferedInfo methods ***/
  10967     HRESULT (STDMETHODCALLTYPE *GetSectorSize)(
  10968         IStreamUnbufferedInfo *This,
  10969         ULONG *pcbSectorSize);
  10970 
  10971     END_INTERFACE
  10972 } IStreamUnbufferedInfoVtbl;
  10973 
  10974 interface IStreamUnbufferedInfo {
  10975     CONST_VTBL IStreamUnbufferedInfoVtbl* lpVtbl;
  10976 };
  10977 
  10978 #ifdef COBJMACROS
  10979 #ifndef WIDL_C_INLINE_WRAPPERS
  10980 /*** IUnknown methods ***/
  10981 #define IStreamUnbufferedInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  10982 #define IStreamUnbufferedInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  10983 #define IStreamUnbufferedInfo_Release(This) (This)->lpVtbl->Release(This)
  10984 /*** IStreamUnbufferedInfo methods ***/
  10985 #define IStreamUnbufferedInfo_GetSectorSize(This,pcbSectorSize) (This)->lpVtbl->GetSectorSize(This,pcbSectorSize)
  10986 #else
  10987 /*** IUnknown methods ***/
  10988 static inline HRESULT IStreamUnbufferedInfo_QueryInterface(IStreamUnbufferedInfo* This,REFIID riid,void **ppvObject) {
  10989     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  10990 }
  10991 static inline ULONG IStreamUnbufferedInfo_AddRef(IStreamUnbufferedInfo* This) {
  10992     return This->lpVtbl->AddRef(This);
  10993 }
  10994 static inline ULONG IStreamUnbufferedInfo_Release(IStreamUnbufferedInfo* This) {
  10995     return This->lpVtbl->Release(This);
  10996 }
  10997 /*** IStreamUnbufferedInfo methods ***/
  10998 static inline HRESULT IStreamUnbufferedInfo_GetSectorSize(IStreamUnbufferedInfo* This,ULONG *pcbSectorSize) {
  10999     return This->lpVtbl->GetSectorSize(This,pcbSectorSize);
  11000 }
  11001 #endif
  11002 #endif
  11003 
  11004 #endif
  11005 
  11006 
  11007 #endif  /* __IStreamUnbufferedInfo_INTERFACE_DEFINED__ */
  11008 
  11009 
  11010 #if _WIN32_IE >= _WIN32_IE_IE70
  11011 /*****************************************************************************
  11012  * IFileOperationProgressSink interface
  11013  */
  11014 #ifndef __IFileOperationProgressSink_INTERFACE_DEFINED__
  11015 #define __IFileOperationProgressSink_INTERFACE_DEFINED__
  11016 
  11017 DEFINE_GUID(IID_IFileOperationProgressSink, 0x04b0f1a7, 0x9490, 0x44bc, 0x96,0xe1, 0x42,0x96,0xa3,0x12,0x52,0xe2);
  11018 #if defined(__cplusplus) && !defined(CINTERFACE)
  11019 MIDL_INTERFACE("04b0f1a7-9490-44bc-96e1-4296a31252e2")
  11020 IFileOperationProgressSink : public IUnknown
  11021 {
  11022     virtual HRESULT STDMETHODCALLTYPE StartOperations(
  11023         ) = 0;
  11024 
  11025     virtual HRESULT STDMETHODCALLTYPE FinishOperations(
  11026         HRESULT hrResult) = 0;
  11027 
  11028     virtual HRESULT STDMETHODCALLTYPE PreRenameItem(
  11029         DWORD dwFlags,
  11030         IShellItem *psiItem,
  11031         LPCWSTR pszNewName) = 0;
  11032 
  11033     virtual HRESULT STDMETHODCALLTYPE PostRenameItem(
  11034         DWORD dwFlags,
  11035         IShellItem *psiItem,
  11036         LPCWSTR pszNewName,
  11037         HRESULT hrRename,
  11038         IShellItem *psiNewlyCreated) = 0;
  11039 
  11040     virtual HRESULT STDMETHODCALLTYPE PreMoveItem(
  11041         DWORD dwFlags,
  11042         IShellItem *psiItem,
  11043         IShellItem *psiDestinationFolder,
  11044         LPCWSTR pszNewName) = 0;
  11045 
  11046     virtual HRESULT STDMETHODCALLTYPE PostMoveItem(
  11047         DWORD dwFlags,
  11048         IShellItem *psiItem,
  11049         IShellItem *psiDestinationFolder,
  11050         LPCWSTR pszNewName,
  11051         HRESULT hrMove,
  11052         IShellItem *psiNewlyCreated) = 0;
  11053 
  11054     virtual HRESULT STDMETHODCALLTYPE PreCopyItem(
  11055         DWORD dwFlags,
  11056         IShellItem *psiItem,
  11057         IShellItem *psiDestinationFolder,
  11058         LPCWSTR pszNewName) = 0;
  11059 
  11060     virtual HRESULT STDMETHODCALLTYPE PostCopyItem(
  11061         DWORD dwFlags,
  11062         IShellItem *psiItem,
  11063         IShellItem *psiDestinationFolder,
  11064         LPCWSTR pszNewName,
  11065         HRESULT hrCopy,
  11066         IShellItem *psiNewlyCreated) = 0;
  11067 
  11068     virtual HRESULT STDMETHODCALLTYPE PreDeleteItem(
  11069         DWORD dwFlags,
  11070         IShellItem *psiItem) = 0;
  11071 
  11072     virtual HRESULT STDMETHODCALLTYPE PostDeleteItem(
  11073         DWORD dwFlags,
  11074         IShellItem *psiItem,
  11075         HRESULT hrDelete,
  11076         IShellItem *psiNewlyCreated) = 0;
  11077 
  11078     virtual HRESULT STDMETHODCALLTYPE PreNewItem(
  11079         DWORD dwFlags,
  11080         IShellItem *psiDestinationFolder,
  11081         LPCWSTR pszNewName) = 0;
  11082 
  11083     virtual HRESULT STDMETHODCALLTYPE PostNewItem(
  11084         DWORD dwFlags,
  11085         IShellItem *psiDestinationFolder,
  11086         LPCWSTR pszNewName,
  11087         LPCWSTR pszTemplateName,
  11088         DWORD dwFileAttributes,
  11089         HRESULT hrNew,
  11090         IShellItem *psiNewItem) = 0;
  11091 
  11092     virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
  11093         UINT iWorkTotal,
  11094         UINT iWorkSoFar) = 0;
  11095 
  11096     virtual HRESULT STDMETHODCALLTYPE ResetTimer(
  11097         ) = 0;
  11098 
  11099     virtual HRESULT STDMETHODCALLTYPE PauseTimer(
  11100         ) = 0;
  11101 
  11102     virtual HRESULT STDMETHODCALLTYPE ResumeTimer(
  11103         ) = 0;
  11104 
  11105 };
  11106 #ifdef __CRT_UUID_DECL
  11107 __CRT_UUID_DECL(IFileOperationProgressSink, 0x04b0f1a7, 0x9490, 0x44bc, 0x96,0xe1, 0x42,0x96,0xa3,0x12,0x52,0xe2)
  11108 #endif
  11109 #else
  11110 typedef struct IFileOperationProgressSinkVtbl {
  11111     BEGIN_INTERFACE
  11112 
  11113     /*** IUnknown methods ***/
  11114     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11115         IFileOperationProgressSink *This,
  11116         REFIID riid,
  11117         void **ppvObject);
  11118 
  11119     ULONG (STDMETHODCALLTYPE *AddRef)(
  11120         IFileOperationProgressSink *This);
  11121 
  11122     ULONG (STDMETHODCALLTYPE *Release)(
  11123         IFileOperationProgressSink *This);
  11124 
  11125     /*** IFileOperationProgressSink methods ***/
  11126     HRESULT (STDMETHODCALLTYPE *StartOperations)(
  11127         IFileOperationProgressSink *This);
  11128 
  11129     HRESULT (STDMETHODCALLTYPE *FinishOperations)(
  11130         IFileOperationProgressSink *This,
  11131         HRESULT hrResult);
  11132 
  11133     HRESULT (STDMETHODCALLTYPE *PreRenameItem)(
  11134         IFileOperationProgressSink *This,
  11135         DWORD dwFlags,
  11136         IShellItem *psiItem,
  11137         LPCWSTR pszNewName);
  11138 
  11139     HRESULT (STDMETHODCALLTYPE *PostRenameItem)(
  11140         IFileOperationProgressSink *This,
  11141         DWORD dwFlags,
  11142         IShellItem *psiItem,
  11143         LPCWSTR pszNewName,
  11144         HRESULT hrRename,
  11145         IShellItem *psiNewlyCreated);
  11146 
  11147     HRESULT (STDMETHODCALLTYPE *PreMoveItem)(
  11148         IFileOperationProgressSink *This,
  11149         DWORD dwFlags,
  11150         IShellItem *psiItem,
  11151         IShellItem *psiDestinationFolder,
  11152         LPCWSTR pszNewName);
  11153 
  11154     HRESULT (STDMETHODCALLTYPE *PostMoveItem)(
  11155         IFileOperationProgressSink *This,
  11156         DWORD dwFlags,
  11157         IShellItem *psiItem,
  11158         IShellItem *psiDestinationFolder,
  11159         LPCWSTR pszNewName,
  11160         HRESULT hrMove,
  11161         IShellItem *psiNewlyCreated);
  11162 
  11163     HRESULT (STDMETHODCALLTYPE *PreCopyItem)(
  11164         IFileOperationProgressSink *This,
  11165         DWORD dwFlags,
  11166         IShellItem *psiItem,
  11167         IShellItem *psiDestinationFolder,
  11168         LPCWSTR pszNewName);
  11169 
  11170     HRESULT (STDMETHODCALLTYPE *PostCopyItem)(
  11171         IFileOperationProgressSink *This,
  11172         DWORD dwFlags,
  11173         IShellItem *psiItem,
  11174         IShellItem *psiDestinationFolder,
  11175         LPCWSTR pszNewName,
  11176         HRESULT hrCopy,
  11177         IShellItem *psiNewlyCreated);
  11178 
  11179     HRESULT (STDMETHODCALLTYPE *PreDeleteItem)(
  11180         IFileOperationProgressSink *This,
  11181         DWORD dwFlags,
  11182         IShellItem *psiItem);
  11183 
  11184     HRESULT (STDMETHODCALLTYPE *PostDeleteItem)(
  11185         IFileOperationProgressSink *This,
  11186         DWORD dwFlags,
  11187         IShellItem *psiItem,
  11188         HRESULT hrDelete,
  11189         IShellItem *psiNewlyCreated);
  11190 
  11191     HRESULT (STDMETHODCALLTYPE *PreNewItem)(
  11192         IFileOperationProgressSink *This,
  11193         DWORD dwFlags,
  11194         IShellItem *psiDestinationFolder,
  11195         LPCWSTR pszNewName);
  11196 
  11197     HRESULT (STDMETHODCALLTYPE *PostNewItem)(
  11198         IFileOperationProgressSink *This,
  11199         DWORD dwFlags,
  11200         IShellItem *psiDestinationFolder,
  11201         LPCWSTR pszNewName,
  11202         LPCWSTR pszTemplateName,
  11203         DWORD dwFileAttributes,
  11204         HRESULT hrNew,
  11205         IShellItem *psiNewItem);
  11206 
  11207     HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
  11208         IFileOperationProgressSink *This,
  11209         UINT iWorkTotal,
  11210         UINT iWorkSoFar);
  11211 
  11212     HRESULT (STDMETHODCALLTYPE *ResetTimer)(
  11213         IFileOperationProgressSink *This);
  11214 
  11215     HRESULT (STDMETHODCALLTYPE *PauseTimer)(
  11216         IFileOperationProgressSink *This);
  11217 
  11218     HRESULT (STDMETHODCALLTYPE *ResumeTimer)(
  11219         IFileOperationProgressSink *This);
  11220 
  11221     END_INTERFACE
  11222 } IFileOperationProgressSinkVtbl;
  11223 
  11224 interface IFileOperationProgressSink {
  11225     CONST_VTBL IFileOperationProgressSinkVtbl* lpVtbl;
  11226 };
  11227 
  11228 #ifdef COBJMACROS
  11229 #ifndef WIDL_C_INLINE_WRAPPERS
  11230 /*** IUnknown methods ***/
  11231 #define IFileOperationProgressSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11232 #define IFileOperationProgressSink_AddRef(This) (This)->lpVtbl->AddRef(This)
  11233 #define IFileOperationProgressSink_Release(This) (This)->lpVtbl->Release(This)
  11234 /*** IFileOperationProgressSink methods ***/
  11235 #define IFileOperationProgressSink_StartOperations(This) (This)->lpVtbl->StartOperations(This)
  11236 #define IFileOperationProgressSink_FinishOperations(This,hrResult) (This)->lpVtbl->FinishOperations(This,hrResult)
  11237 #define IFileOperationProgressSink_PreRenameItem(This,dwFlags,psiItem,pszNewName) (This)->lpVtbl->PreRenameItem(This,dwFlags,psiItem,pszNewName)
  11238 #define IFileOperationProgressSink_PostRenameItem(This,dwFlags,psiItem,pszNewName,hrRename,psiNewlyCreated) (This)->lpVtbl->PostRenameItem(This,dwFlags,psiItem,pszNewName,hrRename,psiNewlyCreated)
  11239 #define IFileOperationProgressSink_PreMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName) (This)->lpVtbl->PreMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName)
  11240 #define IFileOperationProgressSink_PostMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrMove,psiNewlyCreated) (This)->lpVtbl->PostMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrMove,psiNewlyCreated)
  11241 #define IFileOperationProgressSink_PreCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName) (This)->lpVtbl->PreCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName)
  11242 #define IFileOperationProgressSink_PostCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrCopy,psiNewlyCreated) (This)->lpVtbl->PostCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrCopy,psiNewlyCreated)
  11243 #define IFileOperationProgressSink_PreDeleteItem(This,dwFlags,psiItem) (This)->lpVtbl->PreDeleteItem(This,dwFlags,psiItem)
  11244 #define IFileOperationProgressSink_PostDeleteItem(This,dwFlags,psiItem,hrDelete,psiNewlyCreated) (This)->lpVtbl->PostDeleteItem(This,dwFlags,psiItem,hrDelete,psiNewlyCreated)
  11245 #define IFileOperationProgressSink_PreNewItem(This,dwFlags,psiDestinationFolder,pszNewName) (This)->lpVtbl->PreNewItem(This,dwFlags,psiDestinationFolder,pszNewName)
  11246 #define IFileOperationProgressSink_PostNewItem(This,dwFlags,psiDestinationFolder,pszNewName,pszTemplateName,dwFileAttributes,hrNew,psiNewItem) (This)->lpVtbl->PostNewItem(This,dwFlags,psiDestinationFolder,pszNewName,pszTemplateName,dwFileAttributes,hrNew,psiNewItem)
  11247 #define IFileOperationProgressSink_UpdateProgress(This,iWorkTotal,iWorkSoFar) (This)->lpVtbl->UpdateProgress(This,iWorkTotal,iWorkSoFar)
  11248 #define IFileOperationProgressSink_ResetTimer(This) (This)->lpVtbl->ResetTimer(This)
  11249 #define IFileOperationProgressSink_PauseTimer(This) (This)->lpVtbl->PauseTimer(This)
  11250 #define IFileOperationProgressSink_ResumeTimer(This) (This)->lpVtbl->ResumeTimer(This)
  11251 #else
  11252 /*** IUnknown methods ***/
  11253 static inline HRESULT IFileOperationProgressSink_QueryInterface(IFileOperationProgressSink* This,REFIID riid,void **ppvObject) {
  11254     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11255 }
  11256 static inline ULONG IFileOperationProgressSink_AddRef(IFileOperationProgressSink* This) {
  11257     return This->lpVtbl->AddRef(This);
  11258 }
  11259 static inline ULONG IFileOperationProgressSink_Release(IFileOperationProgressSink* This) {
  11260     return This->lpVtbl->Release(This);
  11261 }
  11262 /*** IFileOperationProgressSink methods ***/
  11263 static inline HRESULT IFileOperationProgressSink_StartOperations(IFileOperationProgressSink* This) {
  11264     return This->lpVtbl->StartOperations(This);
  11265 }
  11266 static inline HRESULT IFileOperationProgressSink_FinishOperations(IFileOperationProgressSink* This,HRESULT hrResult) {
  11267     return This->lpVtbl->FinishOperations(This,hrResult);
  11268 }
  11269 static inline HRESULT IFileOperationProgressSink_PreRenameItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,LPCWSTR pszNewName) {
  11270     return This->lpVtbl->PreRenameItem(This,dwFlags,psiItem,pszNewName);
  11271 }
  11272 static inline HRESULT IFileOperationProgressSink_PostRenameItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,LPCWSTR pszNewName,HRESULT hrRename,IShellItem *psiNewlyCreated) {
  11273     return This->lpVtbl->PostRenameItem(This,dwFlags,psiItem,pszNewName,hrRename,psiNewlyCreated);
  11274 }
  11275 static inline HRESULT IFileOperationProgressSink_PreMoveItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName) {
  11276     return This->lpVtbl->PreMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName);
  11277 }
  11278 static inline HRESULT IFileOperationProgressSink_PostMoveItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,HRESULT hrMove,IShellItem *psiNewlyCreated) {
  11279     return This->lpVtbl->PostMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrMove,psiNewlyCreated);
  11280 }
  11281 static inline HRESULT IFileOperationProgressSink_PreCopyItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName) {
  11282     return This->lpVtbl->PreCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName);
  11283 }
  11284 static inline HRESULT IFileOperationProgressSink_PostCopyItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,HRESULT hrCopy,IShellItem *psiNewlyCreated) {
  11285     return This->lpVtbl->PostCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrCopy,psiNewlyCreated);
  11286 }
  11287 static inline HRESULT IFileOperationProgressSink_PreDeleteItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem) {
  11288     return This->lpVtbl->PreDeleteItem(This,dwFlags,psiItem);
  11289 }
  11290 static inline HRESULT IFileOperationProgressSink_PostDeleteItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,HRESULT hrDelete,IShellItem *psiNewlyCreated) {
  11291     return This->lpVtbl->PostDeleteItem(This,dwFlags,psiItem,hrDelete,psiNewlyCreated);
  11292 }
  11293 static inline HRESULT IFileOperationProgressSink_PreNewItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiDestinationFolder,LPCWSTR pszNewName) {
  11294     return This->lpVtbl->PreNewItem(This,dwFlags,psiDestinationFolder,pszNewName);
  11295 }
  11296 static inline HRESULT IFileOperationProgressSink_PostNewItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,LPCWSTR pszTemplateName,DWORD dwFileAttributes,HRESULT hrNew,IShellItem *psiNewItem) {
  11297     return This->lpVtbl->PostNewItem(This,dwFlags,psiDestinationFolder,pszNewName,pszTemplateName,dwFileAttributes,hrNew,psiNewItem);
  11298 }
  11299 static inline HRESULT IFileOperationProgressSink_UpdateProgress(IFileOperationProgressSink* This,UINT iWorkTotal,UINT iWorkSoFar) {
  11300     return This->lpVtbl->UpdateProgress(This,iWorkTotal,iWorkSoFar);
  11301 }
  11302 static inline HRESULT IFileOperationProgressSink_ResetTimer(IFileOperationProgressSink* This) {
  11303     return This->lpVtbl->ResetTimer(This);
  11304 }
  11305 static inline HRESULT IFileOperationProgressSink_PauseTimer(IFileOperationProgressSink* This) {
  11306     return This->lpVtbl->PauseTimer(This);
  11307 }
  11308 static inline HRESULT IFileOperationProgressSink_ResumeTimer(IFileOperationProgressSink* This) {
  11309     return This->lpVtbl->ResumeTimer(This);
  11310 }
  11311 #endif
  11312 #endif
  11313 
  11314 #endif
  11315 
  11316 
  11317 #endif  /* __IFileOperationProgressSink_INTERFACE_DEFINED__ */
  11318 
  11319 #endif
  11320 
  11321 /*****************************************************************************
  11322  * IShellItemArray interface
  11323  */
  11324 #ifndef __IShellItemArray_INTERFACE_DEFINED__
  11325 #define __IShellItemArray_INTERFACE_DEFINED__
  11326 
  11327 typedef enum SIATTRIBFLAGS {
  11328     SIATTRIBFLAGS_AND = 0x1,
  11329     SIATTRIBFLAGS_OR = 0x2,
  11330     SIATTRIBFLAGS_APPCOMPAT = 0x3,
  11331     SIATTRIBFLAGS_MASK = 0x3,
  11332     SIATTRIBFLAGS_ALLITEMS = 0x4000
  11333 } SIATTRIBFLAGS;
  11334 
  11335 DEFINE_ENUM_FLAG_OPERATORS(SIATTRIBFLAGS)
  11336 
  11337 DEFINE_GUID(IID_IShellItemArray, 0xb63ea76d, 0x1f85, 0x456f, 0xa1,0x9c, 0x48,0x15,0x9e,0xfa,0x85,0x8b);
  11338 #if defined(__cplusplus) && !defined(CINTERFACE)
  11339 MIDL_INTERFACE("b63ea76d-1f85-456f-a19c-48159efa858b")
  11340 IShellItemArray : public IUnknown
  11341 {
  11342     virtual HRESULT STDMETHODCALLTYPE BindToHandler(
  11343         IBindCtx *pbc,
  11344         REFGUID bhid,
  11345         REFIID riid,
  11346         void **ppvOut) = 0;
  11347 
  11348     virtual HRESULT STDMETHODCALLTYPE GetPropertyStore(
  11349         GETPROPERTYSTOREFLAGS flags,
  11350         REFIID riid,
  11351         void **ppv) = 0;
  11352 
  11353     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionList(
  11354         REFPROPERTYKEY keyType,
  11355         REFIID riid,
  11356         void **ppv) = 0;
  11357 
  11358     virtual HRESULT STDMETHODCALLTYPE GetAttributes(
  11359         SIATTRIBFLAGS AttribFlags,
  11360         SFGAOF sfgaoMask,
  11361         SFGAOF *psfgaoAttribs) = 0;
  11362 
  11363     virtual HRESULT STDMETHODCALLTYPE GetCount(
  11364         DWORD *pdwNumItems) = 0;
  11365 
  11366     virtual HRESULT STDMETHODCALLTYPE GetItemAt(
  11367         DWORD dwIndex,
  11368         IShellItem **ppsi) = 0;
  11369 
  11370     virtual HRESULT STDMETHODCALLTYPE EnumItems(
  11371         IEnumShellItems **ppenumShellItems) = 0;
  11372 
  11373 };
  11374 #ifdef __CRT_UUID_DECL
  11375 __CRT_UUID_DECL(IShellItemArray, 0xb63ea76d, 0x1f85, 0x456f, 0xa1,0x9c, 0x48,0x15,0x9e,0xfa,0x85,0x8b)
  11376 #endif
  11377 #else
  11378 typedef struct IShellItemArrayVtbl {
  11379     BEGIN_INTERFACE
  11380 
  11381     /*** IUnknown methods ***/
  11382     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11383         IShellItemArray *This,
  11384         REFIID riid,
  11385         void **ppvObject);
  11386 
  11387     ULONG (STDMETHODCALLTYPE *AddRef)(
  11388         IShellItemArray *This);
  11389 
  11390     ULONG (STDMETHODCALLTYPE *Release)(
  11391         IShellItemArray *This);
  11392 
  11393     /*** IShellItemArray methods ***/
  11394     HRESULT (STDMETHODCALLTYPE *BindToHandler)(
  11395         IShellItemArray *This,
  11396         IBindCtx *pbc,
  11397         REFGUID bhid,
  11398         REFIID riid,
  11399         void **ppvOut);
  11400 
  11401     HRESULT (STDMETHODCALLTYPE *GetPropertyStore)(
  11402         IShellItemArray *This,
  11403         GETPROPERTYSTOREFLAGS flags,
  11404         REFIID riid,
  11405         void **ppv);
  11406 
  11407     HRESULT (STDMETHODCALLTYPE *GetPropertyDescriptionList)(
  11408         IShellItemArray *This,
  11409         REFPROPERTYKEY keyType,
  11410         REFIID riid,
  11411         void **ppv);
  11412 
  11413     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
  11414         IShellItemArray *This,
  11415         SIATTRIBFLAGS AttribFlags,
  11416         SFGAOF sfgaoMask,
  11417         SFGAOF *psfgaoAttribs);
  11418 
  11419     HRESULT (STDMETHODCALLTYPE *GetCount)(
  11420         IShellItemArray *This,
  11421         DWORD *pdwNumItems);
  11422 
  11423     HRESULT (STDMETHODCALLTYPE *GetItemAt)(
  11424         IShellItemArray *This,
  11425         DWORD dwIndex,
  11426         IShellItem **ppsi);
  11427 
  11428     HRESULT (STDMETHODCALLTYPE *EnumItems)(
  11429         IShellItemArray *This,
  11430         IEnumShellItems **ppenumShellItems);
  11431 
  11432     END_INTERFACE
  11433 } IShellItemArrayVtbl;
  11434 
  11435 interface IShellItemArray {
  11436     CONST_VTBL IShellItemArrayVtbl* lpVtbl;
  11437 };
  11438 
  11439 #ifdef COBJMACROS
  11440 #ifndef WIDL_C_INLINE_WRAPPERS
  11441 /*** IUnknown methods ***/
  11442 #define IShellItemArray_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11443 #define IShellItemArray_AddRef(This) (This)->lpVtbl->AddRef(This)
  11444 #define IShellItemArray_Release(This) (This)->lpVtbl->Release(This)
  11445 /*** IShellItemArray methods ***/
  11446 #define IShellItemArray_BindToHandler(This,pbc,bhid,riid,ppvOut) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppvOut)
  11447 #define IShellItemArray_GetPropertyStore(This,flags,riid,ppv) (This)->lpVtbl->GetPropertyStore(This,flags,riid,ppv)
  11448 #define IShellItemArray_GetPropertyDescriptionList(This,keyType,riid,ppv) (This)->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv)
  11449 #define IShellItemArray_GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs)
  11450 #define IShellItemArray_GetCount(This,pdwNumItems) (This)->lpVtbl->GetCount(This,pdwNumItems)
  11451 #define IShellItemArray_GetItemAt(This,dwIndex,ppsi) (This)->lpVtbl->GetItemAt(This,dwIndex,ppsi)
  11452 #define IShellItemArray_EnumItems(This,ppenumShellItems) (This)->lpVtbl->EnumItems(This,ppenumShellItems)
  11453 #else
  11454 /*** IUnknown methods ***/
  11455 static inline HRESULT IShellItemArray_QueryInterface(IShellItemArray* This,REFIID riid,void **ppvObject) {
  11456     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11457 }
  11458 static inline ULONG IShellItemArray_AddRef(IShellItemArray* This) {
  11459     return This->lpVtbl->AddRef(This);
  11460 }
  11461 static inline ULONG IShellItemArray_Release(IShellItemArray* This) {
  11462     return This->lpVtbl->Release(This);
  11463 }
  11464 /*** IShellItemArray methods ***/
  11465 static inline HRESULT IShellItemArray_BindToHandler(IShellItemArray* This,IBindCtx *pbc,REFGUID bhid,REFIID riid,void **ppvOut) {
  11466     return This->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppvOut);
  11467 }
  11468 static inline HRESULT IShellItemArray_GetPropertyStore(IShellItemArray* This,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
  11469     return This->lpVtbl->GetPropertyStore(This,flags,riid,ppv);
  11470 }
  11471 static inline HRESULT IShellItemArray_GetPropertyDescriptionList(IShellItemArray* This,REFPROPERTYKEY keyType,REFIID riid,void **ppv) {
  11472     return This->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv);
  11473 }
  11474 static inline HRESULT IShellItemArray_GetAttributes(IShellItemArray* This,SIATTRIBFLAGS AttribFlags,SFGAOF sfgaoMask,SFGAOF *psfgaoAttribs) {
  11475     return This->lpVtbl->GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs);
  11476 }
  11477 static inline HRESULT IShellItemArray_GetCount(IShellItemArray* This,DWORD *pdwNumItems) {
  11478     return This->lpVtbl->GetCount(This,pdwNumItems);
  11479 }
  11480 static inline HRESULT IShellItemArray_GetItemAt(IShellItemArray* This,DWORD dwIndex,IShellItem **ppsi) {
  11481     return This->lpVtbl->GetItemAt(This,dwIndex,ppsi);
  11482 }
  11483 static inline HRESULT IShellItemArray_EnumItems(IShellItemArray* This,IEnumShellItems **ppenumShellItems) {
  11484     return This->lpVtbl->EnumItems(This,ppenumShellItems);
  11485 }
  11486 #endif
  11487 #endif
  11488 
  11489 #endif
  11490 
  11491 
  11492 #endif  /* __IShellItemArray_INTERFACE_DEFINED__ */
  11493 
  11494 
  11495 #if _WIN32_IE >= _WIN32_IE_IE70
  11496   SHSTDAPI SHCreateShellItemArray(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psf, UINT cidl, PCUITEMID_CHILD_ARRAY ppidl, IShellItemArray **ppsiItemArray);
  11497   SHSTDAPI SHCreateShellItemArrayFromDataObject(IDataObject *pdo, REFIID riid, void **ppv);
  11498   SHSTDAPI SHCreateShellItemArrayFromIDLists(UINT cidl, PCIDLIST_ABSOLUTE_ARRAY rgpidl, IShellItemArray **ppsiItemArray);
  11499   SHSTDAPI SHCreateShellItemArrayFromShellItem(IShellItem *psi, REFIID riid, void **ppv);
  11500 #endif
  11501 
  11502 /*****************************************************************************
  11503  * IInitializeWithItem interface
  11504  */
  11505 #ifndef __IInitializeWithItem_INTERFACE_DEFINED__
  11506 #define __IInitializeWithItem_INTERFACE_DEFINED__
  11507 
  11508 DEFINE_GUID(IID_IInitializeWithItem, 0x7f73be3f, 0xfb79, 0x493c, 0xa6,0xc7, 0x7e,0xe1,0x4e,0x24,0x58,0x41);
  11509 #if defined(__cplusplus) && !defined(CINTERFACE)
  11510 MIDL_INTERFACE("7f73be3f-fb79-493c-a6c7-7ee14e245841")
  11511 IInitializeWithItem : public IUnknown
  11512 {
  11513     virtual HRESULT STDMETHODCALLTYPE Initialize(
  11514         IShellItem *psi,
  11515         DWORD grfMode) = 0;
  11516 
  11517 };
  11518 #ifdef __CRT_UUID_DECL
  11519 __CRT_UUID_DECL(IInitializeWithItem, 0x7f73be3f, 0xfb79, 0x493c, 0xa6,0xc7, 0x7e,0xe1,0x4e,0x24,0x58,0x41)
  11520 #endif
  11521 #else
  11522 typedef struct IInitializeWithItemVtbl {
  11523     BEGIN_INTERFACE
  11524 
  11525     /*** IUnknown methods ***/
  11526     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11527         IInitializeWithItem *This,
  11528         REFIID riid,
  11529         void **ppvObject);
  11530 
  11531     ULONG (STDMETHODCALLTYPE *AddRef)(
  11532         IInitializeWithItem *This);
  11533 
  11534     ULONG (STDMETHODCALLTYPE *Release)(
  11535         IInitializeWithItem *This);
  11536 
  11537     /*** IInitializeWithItem methods ***/
  11538     HRESULT (STDMETHODCALLTYPE *Initialize)(
  11539         IInitializeWithItem *This,
  11540         IShellItem *psi,
  11541         DWORD grfMode);
  11542 
  11543     END_INTERFACE
  11544 } IInitializeWithItemVtbl;
  11545 
  11546 interface IInitializeWithItem {
  11547     CONST_VTBL IInitializeWithItemVtbl* lpVtbl;
  11548 };
  11549 
  11550 #ifdef COBJMACROS
  11551 #ifndef WIDL_C_INLINE_WRAPPERS
  11552 /*** IUnknown methods ***/
  11553 #define IInitializeWithItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11554 #define IInitializeWithItem_AddRef(This) (This)->lpVtbl->AddRef(This)
  11555 #define IInitializeWithItem_Release(This) (This)->lpVtbl->Release(This)
  11556 /*** IInitializeWithItem methods ***/
  11557 #define IInitializeWithItem_Initialize(This,psi,grfMode) (This)->lpVtbl->Initialize(This,psi,grfMode)
  11558 #else
  11559 /*** IUnknown methods ***/
  11560 static inline HRESULT IInitializeWithItem_QueryInterface(IInitializeWithItem* This,REFIID riid,void **ppvObject) {
  11561     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11562 }
  11563 static inline ULONG IInitializeWithItem_AddRef(IInitializeWithItem* This) {
  11564     return This->lpVtbl->AddRef(This);
  11565 }
  11566 static inline ULONG IInitializeWithItem_Release(IInitializeWithItem* This) {
  11567     return This->lpVtbl->Release(This);
  11568 }
  11569 /*** IInitializeWithItem methods ***/
  11570 static inline HRESULT IInitializeWithItem_Initialize(IInitializeWithItem* This,IShellItem *psi,DWORD grfMode) {
  11571     return This->lpVtbl->Initialize(This,psi,grfMode);
  11572 }
  11573 #endif
  11574 #endif
  11575 
  11576 #endif
  11577 
  11578 
  11579 #endif  /* __IInitializeWithItem_INTERFACE_DEFINED__ */
  11580 
  11581 
  11582 /*****************************************************************************
  11583  * IObjectWithSelection interface
  11584  */
  11585 #ifndef __IObjectWithSelection_INTERFACE_DEFINED__
  11586 #define __IObjectWithSelection_INTERFACE_DEFINED__
  11587 
  11588 DEFINE_GUID(IID_IObjectWithSelection, 0x1c9cd5bb, 0x98e9, 0x4491, 0xa6,0x0f, 0x31,0xaa,0xcc,0x72,0xb8,0x3c);
  11589 #if defined(__cplusplus) && !defined(CINTERFACE)
  11590 MIDL_INTERFACE("1c9cd5bb-98e9-4491-a60f-31aacc72b83c")
  11591 IObjectWithSelection : public IUnknown
  11592 {
  11593     virtual HRESULT STDMETHODCALLTYPE SetSelection(
  11594         IShellItemArray *psia) = 0;
  11595 
  11596     virtual HRESULT STDMETHODCALLTYPE GetSelection(
  11597         REFIID riid,
  11598         void **ppv) = 0;
  11599 
  11600 };
  11601 #ifdef __CRT_UUID_DECL
  11602 __CRT_UUID_DECL(IObjectWithSelection, 0x1c9cd5bb, 0x98e9, 0x4491, 0xa6,0x0f, 0x31,0xaa,0xcc,0x72,0xb8,0x3c)
  11603 #endif
  11604 #else
  11605 typedef struct IObjectWithSelectionVtbl {
  11606     BEGIN_INTERFACE
  11607 
  11608     /*** IUnknown methods ***/
  11609     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11610         IObjectWithSelection *This,
  11611         REFIID riid,
  11612         void **ppvObject);
  11613 
  11614     ULONG (STDMETHODCALLTYPE *AddRef)(
  11615         IObjectWithSelection *This);
  11616 
  11617     ULONG (STDMETHODCALLTYPE *Release)(
  11618         IObjectWithSelection *This);
  11619 
  11620     /*** IObjectWithSelection methods ***/
  11621     HRESULT (STDMETHODCALLTYPE *SetSelection)(
  11622         IObjectWithSelection *This,
  11623         IShellItemArray *psia);
  11624 
  11625     HRESULT (STDMETHODCALLTYPE *GetSelection)(
  11626         IObjectWithSelection *This,
  11627         REFIID riid,
  11628         void **ppv);
  11629 
  11630     END_INTERFACE
  11631 } IObjectWithSelectionVtbl;
  11632 
  11633 interface IObjectWithSelection {
  11634     CONST_VTBL IObjectWithSelectionVtbl* lpVtbl;
  11635 };
  11636 
  11637 #ifdef COBJMACROS
  11638 #ifndef WIDL_C_INLINE_WRAPPERS
  11639 /*** IUnknown methods ***/
  11640 #define IObjectWithSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11641 #define IObjectWithSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
  11642 #define IObjectWithSelection_Release(This) (This)->lpVtbl->Release(This)
  11643 /*** IObjectWithSelection methods ***/
  11644 #define IObjectWithSelection_SetSelection(This,psia) (This)->lpVtbl->SetSelection(This,psia)
  11645 #define IObjectWithSelection_GetSelection(This,riid,ppv) (This)->lpVtbl->GetSelection(This,riid,ppv)
  11646 #else
  11647 /*** IUnknown methods ***/
  11648 static inline HRESULT IObjectWithSelection_QueryInterface(IObjectWithSelection* This,REFIID riid,void **ppvObject) {
  11649     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11650 }
  11651 static inline ULONG IObjectWithSelection_AddRef(IObjectWithSelection* This) {
  11652     return This->lpVtbl->AddRef(This);
  11653 }
  11654 static inline ULONG IObjectWithSelection_Release(IObjectWithSelection* This) {
  11655     return This->lpVtbl->Release(This);
  11656 }
  11657 /*** IObjectWithSelection methods ***/
  11658 static inline HRESULT IObjectWithSelection_SetSelection(IObjectWithSelection* This,IShellItemArray *psia) {
  11659     return This->lpVtbl->SetSelection(This,psia);
  11660 }
  11661 static inline HRESULT IObjectWithSelection_GetSelection(IObjectWithSelection* This,REFIID riid,void **ppv) {
  11662     return This->lpVtbl->GetSelection(This,riid,ppv);
  11663 }
  11664 #endif
  11665 #endif
  11666 
  11667 #endif
  11668 
  11669 
  11670 #endif  /* __IObjectWithSelection_INTERFACE_DEFINED__ */
  11671 
  11672 
  11673 /*****************************************************************************
  11674  * IObjectWithBackReferences interface
  11675  */
  11676 #ifndef __IObjectWithBackReferences_INTERFACE_DEFINED__
  11677 #define __IObjectWithBackReferences_INTERFACE_DEFINED__
  11678 
  11679 DEFINE_GUID(IID_IObjectWithBackReferences, 0x321a6a6a, 0xd61f, 0x4bf3, 0x97,0xae, 0x14,0xbe,0x29,0x86,0xbb,0x36);
  11680 #if defined(__cplusplus) && !defined(CINTERFACE)
  11681 MIDL_INTERFACE("321a6a6a-d61f-4bf3-97ae-14be2986bb36")
  11682 IObjectWithBackReferences : public IUnknown
  11683 {
  11684     virtual HRESULT STDMETHODCALLTYPE RemoveBackReferences(
  11685         ) = 0;
  11686 
  11687 };
  11688 #ifdef __CRT_UUID_DECL
  11689 __CRT_UUID_DECL(IObjectWithBackReferences, 0x321a6a6a, 0xd61f, 0x4bf3, 0x97,0xae, 0x14,0xbe,0x29,0x86,0xbb,0x36)
  11690 #endif
  11691 #else
  11692 typedef struct IObjectWithBackReferencesVtbl {
  11693     BEGIN_INTERFACE
  11694 
  11695     /*** IUnknown methods ***/
  11696     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11697         IObjectWithBackReferences *This,
  11698         REFIID riid,
  11699         void **ppvObject);
  11700 
  11701     ULONG (STDMETHODCALLTYPE *AddRef)(
  11702         IObjectWithBackReferences *This);
  11703 
  11704     ULONG (STDMETHODCALLTYPE *Release)(
  11705         IObjectWithBackReferences *This);
  11706 
  11707     /*** IObjectWithBackReferences methods ***/
  11708     HRESULT (STDMETHODCALLTYPE *RemoveBackReferences)(
  11709         IObjectWithBackReferences *This);
  11710 
  11711     END_INTERFACE
  11712 } IObjectWithBackReferencesVtbl;
  11713 
  11714 interface IObjectWithBackReferences {
  11715     CONST_VTBL IObjectWithBackReferencesVtbl* lpVtbl;
  11716 };
  11717 
  11718 #ifdef COBJMACROS
  11719 #ifndef WIDL_C_INLINE_WRAPPERS
  11720 /*** IUnknown methods ***/
  11721 #define IObjectWithBackReferences_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11722 #define IObjectWithBackReferences_AddRef(This) (This)->lpVtbl->AddRef(This)
  11723 #define IObjectWithBackReferences_Release(This) (This)->lpVtbl->Release(This)
  11724 /*** IObjectWithBackReferences methods ***/
  11725 #define IObjectWithBackReferences_RemoveBackReferences(This) (This)->lpVtbl->RemoveBackReferences(This)
  11726 #else
  11727 /*** IUnknown methods ***/
  11728 static inline HRESULT IObjectWithBackReferences_QueryInterface(IObjectWithBackReferences* This,REFIID riid,void **ppvObject) {
  11729     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11730 }
  11731 static inline ULONG IObjectWithBackReferences_AddRef(IObjectWithBackReferences* This) {
  11732     return This->lpVtbl->AddRef(This);
  11733 }
  11734 static inline ULONG IObjectWithBackReferences_Release(IObjectWithBackReferences* This) {
  11735     return This->lpVtbl->Release(This);
  11736 }
  11737 /*** IObjectWithBackReferences methods ***/
  11738 static inline HRESULT IObjectWithBackReferences_RemoveBackReferences(IObjectWithBackReferences* This) {
  11739     return This->lpVtbl->RemoveBackReferences(This);
  11740 }
  11741 #endif
  11742 #endif
  11743 
  11744 #endif
  11745 
  11746 
  11747 #endif  /* __IObjectWithBackReferences_INTERFACE_DEFINED__ */
  11748 
  11749 
  11750 enum _PROPERTYUI_NAME_FLAGS {
  11751     PUIFNF_DEFAULT = 0x0,
  11752     PUIFNF_MNEMONIC = 0x1
  11753 };
  11754 
  11755 typedef DWORD PROPERTYUI_NAME_FLAGS;
  11756 
  11757 enum _PROPERTYUI_FLAGS {
  11758     PUIF_DEFAULT = 0x0,
  11759     PUIF_RIGHTALIGN = 0x1,
  11760     PUIF_NOLABELININFOTIP = 0x2
  11761 };
  11762 
  11763 typedef DWORD PROPERTYUI_FLAGS;
  11764 
  11765 enum _PROPERTYUI_FORMAT_FLAGS {
  11766     PUIFFDF_DEFAULT = 0x0,
  11767     PUIFFDF_RIGHTTOLEFT = 0x1,
  11768     PUIFFDF_SHORTFORMAT = 0x2,
  11769     PUIFFDF_NOTIME = 0x4,
  11770     PUIFFDF_FRIENDLYDATE = 0x8
  11771 };
  11772 
  11773 typedef DWORD PROPERTYUI_FORMAT_FLAGS;
  11774 
  11775 /*****************************************************************************
  11776  * IPropertyUI interface
  11777  */
  11778 #ifndef __IPropertyUI_INTERFACE_DEFINED__
  11779 #define __IPropertyUI_INTERFACE_DEFINED__
  11780 
  11781 DEFINE_GUID(IID_IPropertyUI, 0x757a7d9f, 0x919a, 0x4118, 0x99,0xd7, 0xdb,0xb2,0x08,0xc8,0xcc,0x66);
  11782 #if defined(__cplusplus) && !defined(CINTERFACE)
  11783 MIDL_INTERFACE("757a7d9f-919a-4118-99d7-dbb208c8cc66")
  11784 IPropertyUI : public IUnknown
  11785 {
  11786     virtual HRESULT STDMETHODCALLTYPE ParsePropertyName(
  11787         LPCWSTR pszName,
  11788         FMTID *pfmtid,
  11789         PROPID *ppid,
  11790         ULONG *pchEaten) = 0;
  11791 
  11792     virtual HRESULT STDMETHODCALLTYPE GetCannonicalName(
  11793         REFFMTID fmtid,
  11794         PROPID pid,
  11795         LPWSTR pwszText,
  11796         DWORD cchText) = 0;
  11797 
  11798     virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
  11799         REFFMTID fmtid,
  11800         PROPID pid,
  11801         PROPERTYUI_NAME_FLAGS flags,
  11802         LPWSTR pwszText,
  11803         DWORD cchText) = 0;
  11804 
  11805     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescription(
  11806         REFFMTID fmtid,
  11807         PROPID pid,
  11808         LPWSTR pwszText,
  11809         DWORD cchText) = 0;
  11810 
  11811     virtual HRESULT STDMETHODCALLTYPE GetDefaultWidth(
  11812         REFFMTID fmtid,
  11813         PROPID pid,
  11814         ULONG *pcxChars) = 0;
  11815 
  11816     virtual HRESULT STDMETHODCALLTYPE GetFlags(
  11817         REFFMTID fmtid,
  11818         PROPID pid,
  11819         PROPERTYUI_FLAGS *pflags) = 0;
  11820 
  11821     virtual HRESULT STDMETHODCALLTYPE FormatForDisplay(
  11822         REFFMTID fmtid,
  11823         PROPID pid,
  11824         const PROPVARIANT *ppropvar,
  11825         PROPERTYUI_FORMAT_FLAGS puiff,
  11826         LPWSTR pwszText,
  11827         DWORD cchText) = 0;
  11828 
  11829     virtual HRESULT STDMETHODCALLTYPE GetHelpInfo(
  11830         REFFMTID fmtid,
  11831         PROPID pid,
  11832         LPWSTR pwszHelpFile,
  11833         DWORD cch,
  11834         UINT *puHelpID) = 0;
  11835 
  11836 };
  11837 #ifdef __CRT_UUID_DECL
  11838 __CRT_UUID_DECL(IPropertyUI, 0x757a7d9f, 0x919a, 0x4118, 0x99,0xd7, 0xdb,0xb2,0x08,0xc8,0xcc,0x66)
  11839 #endif
  11840 #else
  11841 typedef struct IPropertyUIVtbl {
  11842     BEGIN_INTERFACE
  11843 
  11844     /*** IUnknown methods ***/
  11845     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  11846         IPropertyUI *This,
  11847         REFIID riid,
  11848         void **ppvObject);
  11849 
  11850     ULONG (STDMETHODCALLTYPE *AddRef)(
  11851         IPropertyUI *This);
  11852 
  11853     ULONG (STDMETHODCALLTYPE *Release)(
  11854         IPropertyUI *This);
  11855 
  11856     /*** IPropertyUI methods ***/
  11857     HRESULT (STDMETHODCALLTYPE *ParsePropertyName)(
  11858         IPropertyUI *This,
  11859         LPCWSTR pszName,
  11860         FMTID *pfmtid,
  11861         PROPID *ppid,
  11862         ULONG *pchEaten);
  11863 
  11864     HRESULT (STDMETHODCALLTYPE *GetCannonicalName)(
  11865         IPropertyUI *This,
  11866         REFFMTID fmtid,
  11867         PROPID pid,
  11868         LPWSTR pwszText,
  11869         DWORD cchText);
  11870 
  11871     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
  11872         IPropertyUI *This,
  11873         REFFMTID fmtid,
  11874         PROPID pid,
  11875         PROPERTYUI_NAME_FLAGS flags,
  11876         LPWSTR pwszText,
  11877         DWORD cchText);
  11878 
  11879     HRESULT (STDMETHODCALLTYPE *GetPropertyDescription)(
  11880         IPropertyUI *This,
  11881         REFFMTID fmtid,
  11882         PROPID pid,
  11883         LPWSTR pwszText,
  11884         DWORD cchText);
  11885 
  11886     HRESULT (STDMETHODCALLTYPE *GetDefaultWidth)(
  11887         IPropertyUI *This,
  11888         REFFMTID fmtid,
  11889         PROPID pid,
  11890         ULONG *pcxChars);
  11891 
  11892     HRESULT (STDMETHODCALLTYPE *GetFlags)(
  11893         IPropertyUI *This,
  11894         REFFMTID fmtid,
  11895         PROPID pid,
  11896         PROPERTYUI_FLAGS *pflags);
  11897 
  11898     HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
  11899         IPropertyUI *This,
  11900         REFFMTID fmtid,
  11901         PROPID pid,
  11902         const PROPVARIANT *ppropvar,
  11903         PROPERTYUI_FORMAT_FLAGS puiff,
  11904         LPWSTR pwszText,
  11905         DWORD cchText);
  11906 
  11907     HRESULT (STDMETHODCALLTYPE *GetHelpInfo)(
  11908         IPropertyUI *This,
  11909         REFFMTID fmtid,
  11910         PROPID pid,
  11911         LPWSTR pwszHelpFile,
  11912         DWORD cch,
  11913         UINT *puHelpID);
  11914 
  11915     END_INTERFACE
  11916 } IPropertyUIVtbl;
  11917 
  11918 interface IPropertyUI {
  11919     CONST_VTBL IPropertyUIVtbl* lpVtbl;
  11920 };
  11921 
  11922 #ifdef COBJMACROS
  11923 #ifndef WIDL_C_INLINE_WRAPPERS
  11924 /*** IUnknown methods ***/
  11925 #define IPropertyUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  11926 #define IPropertyUI_AddRef(This) (This)->lpVtbl->AddRef(This)
  11927 #define IPropertyUI_Release(This) (This)->lpVtbl->Release(This)
  11928 /*** IPropertyUI methods ***/
  11929 #define IPropertyUI_ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten) (This)->lpVtbl->ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten)
  11930 #define IPropertyUI_GetCannonicalName(This,fmtid,pid,pwszText,cchText) (This)->lpVtbl->GetCannonicalName(This,fmtid,pid,pwszText,cchText)
  11931 #define IPropertyUI_GetDisplayName(This,fmtid,pid,flags,pwszText,cchText) (This)->lpVtbl->GetDisplayName(This,fmtid,pid,flags,pwszText,cchText)
  11932 #define IPropertyUI_GetPropertyDescription(This,fmtid,pid,pwszText,cchText) (This)->lpVtbl->GetPropertyDescription(This,fmtid,pid,pwszText,cchText)
  11933 #define IPropertyUI_GetDefaultWidth(This,fmtid,pid,pcxChars) (This)->lpVtbl->GetDefaultWidth(This,fmtid,pid,pcxChars)
  11934 #define IPropertyUI_GetFlags(This,fmtid,pid,pflags) (This)->lpVtbl->GetFlags(This,fmtid,pid,pflags)
  11935 #define IPropertyUI_FormatForDisplay(This,fmtid,pid,ppropvar,puiff,pwszText,cchText) (This)->lpVtbl->FormatForDisplay(This,fmtid,pid,ppropvar,puiff,pwszText,cchText)
  11936 #define IPropertyUI_GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID) (This)->lpVtbl->GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID)
  11937 #else
  11938 /*** IUnknown methods ***/
  11939 static inline HRESULT IPropertyUI_QueryInterface(IPropertyUI* This,REFIID riid,void **ppvObject) {
  11940     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  11941 }
  11942 static inline ULONG IPropertyUI_AddRef(IPropertyUI* This) {
  11943     return This->lpVtbl->AddRef(This);
  11944 }
  11945 static inline ULONG IPropertyUI_Release(IPropertyUI* This) {
  11946     return This->lpVtbl->Release(This);
  11947 }
  11948 /*** IPropertyUI methods ***/
  11949 static inline HRESULT IPropertyUI_ParsePropertyName(IPropertyUI* This,LPCWSTR pszName,FMTID *pfmtid,PROPID *ppid,ULONG *pchEaten) {
  11950     return This->lpVtbl->ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten);
  11951 }
  11952 static inline HRESULT IPropertyUI_GetCannonicalName(IPropertyUI* This,REFFMTID fmtid,PROPID pid,LPWSTR pwszText,DWORD cchText) {
  11953     return This->lpVtbl->GetCannonicalName(This,fmtid,pid,pwszText,cchText);
  11954 }
  11955 static inline HRESULT IPropertyUI_GetDisplayName(IPropertyUI* This,REFFMTID fmtid,PROPID pid,PROPERTYUI_NAME_FLAGS flags,LPWSTR pwszText,DWORD cchText) {
  11956     return This->lpVtbl->GetDisplayName(This,fmtid,pid,flags,pwszText,cchText);
  11957 }
  11958 static inline HRESULT IPropertyUI_GetPropertyDescription(IPropertyUI* This,REFFMTID fmtid,PROPID pid,LPWSTR pwszText,DWORD cchText) {
  11959     return This->lpVtbl->GetPropertyDescription(This,fmtid,pid,pwszText,cchText);
  11960 }
  11961 static inline HRESULT IPropertyUI_GetDefaultWidth(IPropertyUI* This,REFFMTID fmtid,PROPID pid,ULONG *pcxChars) {
  11962     return This->lpVtbl->GetDefaultWidth(This,fmtid,pid,pcxChars);
  11963 }
  11964 static inline HRESULT IPropertyUI_GetFlags(IPropertyUI* This,REFFMTID fmtid,PROPID pid,PROPERTYUI_FLAGS *pflags) {
  11965     return This->lpVtbl->GetFlags(This,fmtid,pid,pflags);
  11966 }
  11967 static inline HRESULT IPropertyUI_FormatForDisplay(IPropertyUI* This,REFFMTID fmtid,PROPID pid,const PROPVARIANT *ppropvar,PROPERTYUI_FORMAT_FLAGS puiff,LPWSTR pwszText,DWORD cchText) {
  11968     return This->lpVtbl->FormatForDisplay(This,fmtid,pid,ppropvar,puiff,pwszText,cchText);
  11969 }
  11970 static inline HRESULT IPropertyUI_GetHelpInfo(IPropertyUI* This,REFFMTID fmtid,PROPID pid,LPWSTR pwszHelpFile,DWORD cch,UINT *puHelpID) {
  11971     return This->lpVtbl->GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID);
  11972 }
  11973 #endif
  11974 #endif
  11975 
  11976 #endif
  11977 
  11978 
  11979 #endif  /* __IPropertyUI_INTERFACE_DEFINED__ */
  11980 
  11981 
  11982 #if _WIN32_IE >= _WIN32_IE_IE70
  11983   SHSTDAPI SHRemovePersonalPropertyValues(IShellItemArray *psia);
  11984   SHSTDAPI SHAddDefaultPropertiesByExt(PCWSTR pszExt, IPropertyStore *pPropStore);
  11985   SHSTDAPI SHCreateDefaultPropertiesOp(IShellItem *psi, IFileOperation **ppFileOp);
  11986   SHSTDAPI SHSetDefaultProperties(HWND hwnd, IShellItem *psi, DWORD dwFileOpFlags, IFileOperationProgressSink *pfops);
  11987 #endif
  11988 
  11989 /*****************************************************************************
  11990  * ICategoryProvider interface
  11991  */
  11992 #ifndef __ICategoryProvider_INTERFACE_DEFINED__
  11993 #define __ICategoryProvider_INTERFACE_DEFINED__
  11994 
  11995 DEFINE_GUID(IID_ICategoryProvider, 0x9af64809, 0x5864, 0x4c26, 0xa7,0x20, 0xc1,0xf7,0x8c,0x08,0x6e,0xe3);
  11996 #if defined(__cplusplus) && !defined(CINTERFACE)
  11997 MIDL_INTERFACE("9af64809-5864-4c26-a720-c1f78c086ee3")
  11998 ICategoryProvider : public IUnknown
  11999 {
  12000     virtual HRESULT STDMETHODCALLTYPE CanCategorizeOnSCID(
  12001         const SHCOLUMNID *pscid) = 0;
  12002 
  12003     virtual HRESULT STDMETHODCALLTYPE GetDefaultCategory(
  12004         GUID *pguid,
  12005         SHCOLUMNID *pscid) = 0;
  12006 
  12007     virtual HRESULT STDMETHODCALLTYPE GetCategoryForSCID(
  12008         const SHCOLUMNID *pscid,
  12009         GUID *pguid) = 0;
  12010 
  12011     virtual HRESULT STDMETHODCALLTYPE EnumCategories(
  12012         IEnumGUID **penum) = 0;
  12013 
  12014     virtual HRESULT STDMETHODCALLTYPE GetCategoryName(
  12015         const GUID *pguid,
  12016         LPWSTR pszName,
  12017         UINT cch) = 0;
  12018 
  12019     virtual HRESULT STDMETHODCALLTYPE CreateCategory(
  12020         const GUID *pguid,
  12021         REFIID riid,
  12022         void **ppv) = 0;
  12023 
  12024 };
  12025 #ifdef __CRT_UUID_DECL
  12026 __CRT_UUID_DECL(ICategoryProvider, 0x9af64809, 0x5864, 0x4c26, 0xa7,0x20, 0xc1,0xf7,0x8c,0x08,0x6e,0xe3)
  12027 #endif
  12028 #else
  12029 typedef struct ICategoryProviderVtbl {
  12030     BEGIN_INTERFACE
  12031 
  12032     /*** IUnknown methods ***/
  12033     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12034         ICategoryProvider *This,
  12035         REFIID riid,
  12036         void **ppvObject);
  12037 
  12038     ULONG (STDMETHODCALLTYPE *AddRef)(
  12039         ICategoryProvider *This);
  12040 
  12041     ULONG (STDMETHODCALLTYPE *Release)(
  12042         ICategoryProvider *This);
  12043 
  12044     /*** ICategoryProvider methods ***/
  12045     HRESULT (STDMETHODCALLTYPE *CanCategorizeOnSCID)(
  12046         ICategoryProvider *This,
  12047         const SHCOLUMNID *pscid);
  12048 
  12049     HRESULT (STDMETHODCALLTYPE *GetDefaultCategory)(
  12050         ICategoryProvider *This,
  12051         GUID *pguid,
  12052         SHCOLUMNID *pscid);
  12053 
  12054     HRESULT (STDMETHODCALLTYPE *GetCategoryForSCID)(
  12055         ICategoryProvider *This,
  12056         const SHCOLUMNID *pscid,
  12057         GUID *pguid);
  12058 
  12059     HRESULT (STDMETHODCALLTYPE *EnumCategories)(
  12060         ICategoryProvider *This,
  12061         IEnumGUID **penum);
  12062 
  12063     HRESULT (STDMETHODCALLTYPE *GetCategoryName)(
  12064         ICategoryProvider *This,
  12065         const GUID *pguid,
  12066         LPWSTR pszName,
  12067         UINT cch);
  12068 
  12069     HRESULT (STDMETHODCALLTYPE *CreateCategory)(
  12070         ICategoryProvider *This,
  12071         const GUID *pguid,
  12072         REFIID riid,
  12073         void **ppv);
  12074 
  12075     END_INTERFACE
  12076 } ICategoryProviderVtbl;
  12077 
  12078 interface ICategoryProvider {
  12079     CONST_VTBL ICategoryProviderVtbl* lpVtbl;
  12080 };
  12081 
  12082 #ifdef COBJMACROS
  12083 #ifndef WIDL_C_INLINE_WRAPPERS
  12084 /*** IUnknown methods ***/
  12085 #define ICategoryProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12086 #define ICategoryProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
  12087 #define ICategoryProvider_Release(This) (This)->lpVtbl->Release(This)
  12088 /*** ICategoryProvider methods ***/
  12089 #define ICategoryProvider_CanCategorizeOnSCID(This,pscid) (This)->lpVtbl->CanCategorizeOnSCID(This,pscid)
  12090 #define ICategoryProvider_GetDefaultCategory(This,pguid,pscid) (This)->lpVtbl->GetDefaultCategory(This,pguid,pscid)
  12091 #define ICategoryProvider_GetCategoryForSCID(This,pscid,pguid) (This)->lpVtbl->GetCategoryForSCID(This,pscid,pguid)
  12092 #define ICategoryProvider_EnumCategories(This,penum) (This)->lpVtbl->EnumCategories(This,penum)
  12093 #define ICategoryProvider_GetCategoryName(This,pguid,pszName,cch) (This)->lpVtbl->GetCategoryName(This,pguid,pszName,cch)
  12094 #define ICategoryProvider_CreateCategory(This,pguid,riid,ppv) (This)->lpVtbl->CreateCategory(This,pguid,riid,ppv)
  12095 #else
  12096 /*** IUnknown methods ***/
  12097 static inline HRESULT ICategoryProvider_QueryInterface(ICategoryProvider* This,REFIID riid,void **ppvObject) {
  12098     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12099 }
  12100 static inline ULONG ICategoryProvider_AddRef(ICategoryProvider* This) {
  12101     return This->lpVtbl->AddRef(This);
  12102 }
  12103 static inline ULONG ICategoryProvider_Release(ICategoryProvider* This) {
  12104     return This->lpVtbl->Release(This);
  12105 }
  12106 /*** ICategoryProvider methods ***/
  12107 static inline HRESULT ICategoryProvider_CanCategorizeOnSCID(ICategoryProvider* This,const SHCOLUMNID *pscid) {
  12108     return This->lpVtbl->CanCategorizeOnSCID(This,pscid);
  12109 }
  12110 static inline HRESULT ICategoryProvider_GetDefaultCategory(ICategoryProvider* This,GUID *pguid,SHCOLUMNID *pscid) {
  12111     return This->lpVtbl->GetDefaultCategory(This,pguid,pscid);
  12112 }
  12113 static inline HRESULT ICategoryProvider_GetCategoryForSCID(ICategoryProvider* This,const SHCOLUMNID *pscid,GUID *pguid) {
  12114     return This->lpVtbl->GetCategoryForSCID(This,pscid,pguid);
  12115 }
  12116 static inline HRESULT ICategoryProvider_EnumCategories(ICategoryProvider* This,IEnumGUID **penum) {
  12117     return This->lpVtbl->EnumCategories(This,penum);
  12118 }
  12119 static inline HRESULT ICategoryProvider_GetCategoryName(ICategoryProvider* This,const GUID *pguid,LPWSTR pszName,UINT cch) {
  12120     return This->lpVtbl->GetCategoryName(This,pguid,pszName,cch);
  12121 }
  12122 static inline HRESULT ICategoryProvider_CreateCategory(ICategoryProvider* This,const GUID *pguid,REFIID riid,void **ppv) {
  12123     return This->lpVtbl->CreateCategory(This,pguid,riid,ppv);
  12124 }
  12125 #endif
  12126 #endif
  12127 
  12128 #endif
  12129 
  12130 
  12131 #endif  /* __ICategoryProvider_INTERFACE_DEFINED__ */
  12132 
  12133 
  12134 typedef enum CATEGORYINFO_FLAGS {
  12135     CATINFO_NORMAL = 0x0,
  12136     CATINFO_COLLAPSED = 0x1,
  12137     CATINFO_HIDDEN = 0x2,
  12138     CATINFO_EXPANDED = 0x4,
  12139     CATINFO_NOHEADER = 0x8,
  12140     CATINFO_NOTCOLLAPSIBLE = 0x10,
  12141     CATINFO_NOHEADERCOUNT = 0x20,
  12142     CATINFO_SUBSETTED = 0x40
  12143 } CATEGORYINFO_FLAGS;
  12144 
  12145 DEFINE_ENUM_FLAG_OPERATORS(CATEGORYINFO_FLAGS)
  12146 
  12147 typedef enum CATSORT_FLAGS {
  12148     CATSORT_DEFAULT = 0x0,
  12149     CATSORT_NAME = 0x1
  12150 } CATSORT_FLAGS;
  12151 
  12152 DEFINE_ENUM_FLAG_OPERATORS(CATSORT_FLAGS)
  12153 
  12154 typedef struct CATEGORY_INFO {
  12155     CATEGORYINFO_FLAGS cif;
  12156     WCHAR wszName[260];
  12157 } CATEGORY_INFO;
  12158 
  12159 /*****************************************************************************
  12160  * ICategorizer interface
  12161  */
  12162 #ifndef __ICategorizer_INTERFACE_DEFINED__
  12163 #define __ICategorizer_INTERFACE_DEFINED__
  12164 
  12165 DEFINE_GUID(IID_ICategorizer, 0xa3b14589, 0x9174, 0x49a8, 0x89,0xa3, 0x06,0xa1,0xae,0x2b,0x9b,0xa7);
  12166 #if defined(__cplusplus) && !defined(CINTERFACE)
  12167 MIDL_INTERFACE("a3b14589-9174-49a8-89a3-06a1ae2b9ba7")
  12168 ICategorizer : public IUnknown
  12169 {
  12170     virtual HRESULT STDMETHODCALLTYPE GetDescription(
  12171         LPWSTR pszDesc,
  12172         UINT cch) = 0;
  12173 
  12174     virtual HRESULT STDMETHODCALLTYPE GetCategory(
  12175         UINT cidl,
  12176         PCUITEMID_CHILD_ARRAY apidl,
  12177         DWORD *rgCategoryIds) = 0;
  12178 
  12179     virtual HRESULT STDMETHODCALLTYPE GetCategoryInfo(
  12180         DWORD dwCategoryId,
  12181         CATEGORY_INFO *pci) = 0;
  12182 
  12183     virtual HRESULT STDMETHODCALLTYPE CompareCategory(
  12184         CATSORT_FLAGS csfFlags,
  12185         DWORD dwCategoryId1,
  12186         DWORD dwCategoryId2) = 0;
  12187 
  12188 };
  12189 #ifdef __CRT_UUID_DECL
  12190 __CRT_UUID_DECL(ICategorizer, 0xa3b14589, 0x9174, 0x49a8, 0x89,0xa3, 0x06,0xa1,0xae,0x2b,0x9b,0xa7)
  12191 #endif
  12192 #else
  12193 typedef struct ICategorizerVtbl {
  12194     BEGIN_INTERFACE
  12195 
  12196     /*** IUnknown methods ***/
  12197     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12198         ICategorizer *This,
  12199         REFIID riid,
  12200         void **ppvObject);
  12201 
  12202     ULONG (STDMETHODCALLTYPE *AddRef)(
  12203         ICategorizer *This);
  12204 
  12205     ULONG (STDMETHODCALLTYPE *Release)(
  12206         ICategorizer *This);
  12207 
  12208     /*** ICategorizer methods ***/
  12209     HRESULT (STDMETHODCALLTYPE *GetDescription)(
  12210         ICategorizer *This,
  12211         LPWSTR pszDesc,
  12212         UINT cch);
  12213 
  12214     HRESULT (STDMETHODCALLTYPE *GetCategory)(
  12215         ICategorizer *This,
  12216         UINT cidl,
  12217         PCUITEMID_CHILD_ARRAY apidl,
  12218         DWORD *rgCategoryIds);
  12219 
  12220     HRESULT (STDMETHODCALLTYPE *GetCategoryInfo)(
  12221         ICategorizer *This,
  12222         DWORD dwCategoryId,
  12223         CATEGORY_INFO *pci);
  12224 
  12225     HRESULT (STDMETHODCALLTYPE *CompareCategory)(
  12226         ICategorizer *This,
  12227         CATSORT_FLAGS csfFlags,
  12228         DWORD dwCategoryId1,
  12229         DWORD dwCategoryId2);
  12230 
  12231     END_INTERFACE
  12232 } ICategorizerVtbl;
  12233 
  12234 interface ICategorizer {
  12235     CONST_VTBL ICategorizerVtbl* lpVtbl;
  12236 };
  12237 
  12238 #ifdef COBJMACROS
  12239 #ifndef WIDL_C_INLINE_WRAPPERS
  12240 /*** IUnknown methods ***/
  12241 #define ICategorizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12242 #define ICategorizer_AddRef(This) (This)->lpVtbl->AddRef(This)
  12243 #define ICategorizer_Release(This) (This)->lpVtbl->Release(This)
  12244 /*** ICategorizer methods ***/
  12245 #define ICategorizer_GetDescription(This,pszDesc,cch) (This)->lpVtbl->GetDescription(This,pszDesc,cch)
  12246 #define ICategorizer_GetCategory(This,cidl,apidl,rgCategoryIds) (This)->lpVtbl->GetCategory(This,cidl,apidl,rgCategoryIds)
  12247 #define ICategorizer_GetCategoryInfo(This,dwCategoryId,pci) (This)->lpVtbl->GetCategoryInfo(This,dwCategoryId,pci)
  12248 #define ICategorizer_CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2) (This)->lpVtbl->CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2)
  12249 #else
  12250 /*** IUnknown methods ***/
  12251 static inline HRESULT ICategorizer_QueryInterface(ICategorizer* This,REFIID riid,void **ppvObject) {
  12252     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12253 }
  12254 static inline ULONG ICategorizer_AddRef(ICategorizer* This) {
  12255     return This->lpVtbl->AddRef(This);
  12256 }
  12257 static inline ULONG ICategorizer_Release(ICategorizer* This) {
  12258     return This->lpVtbl->Release(This);
  12259 }
  12260 /*** ICategorizer methods ***/
  12261 static inline HRESULT ICategorizer_GetDescription(ICategorizer* This,LPWSTR pszDesc,UINT cch) {
  12262     return This->lpVtbl->GetDescription(This,pszDesc,cch);
  12263 }
  12264 static inline HRESULT ICategorizer_GetCategory(ICategorizer* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,DWORD *rgCategoryIds) {
  12265     return This->lpVtbl->GetCategory(This,cidl,apidl,rgCategoryIds);
  12266 }
  12267 static inline HRESULT ICategorizer_GetCategoryInfo(ICategorizer* This,DWORD dwCategoryId,CATEGORY_INFO *pci) {
  12268     return This->lpVtbl->GetCategoryInfo(This,dwCategoryId,pci);
  12269 }
  12270 static inline HRESULT ICategorizer_CompareCategory(ICategorizer* This,CATSORT_FLAGS csfFlags,DWORD dwCategoryId1,DWORD dwCategoryId2) {
  12271     return This->lpVtbl->CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2);
  12272 }
  12273 #endif
  12274 #endif
  12275 
  12276 #endif
  12277 
  12278 
  12279 #endif  /* __ICategorizer_INTERFACE_DEFINED__ */
  12280 
  12281 
  12282 #include <pshpack8.h>
  12283 typedef struct SHDRAGIMAGE {
  12284     SIZE sizeDragImage;
  12285     POINT ptOffset;
  12286     HBITMAP hbmpDragImage;
  12287     COLORREF crColorKey;
  12288 } SHDRAGIMAGE;
  12289 typedef struct SHDRAGIMAGE *LPSHDRAGIMAGE;
  12290 #include <poppack.h>
  12291 
  12292 #define DI_GETDRAGIMAGE     TEXT("ShellGetDragImage")
  12293 
  12294 /*****************************************************************************
  12295  * IDropTargetHelper interface
  12296  */
  12297 #ifndef __IDropTargetHelper_INTERFACE_DEFINED__
  12298 #define __IDropTargetHelper_INTERFACE_DEFINED__
  12299 
  12300 DEFINE_GUID(IID_IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83,0x9a, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
  12301 #if defined(__cplusplus) && !defined(CINTERFACE)
  12302 MIDL_INTERFACE("4657278b-411b-11d2-839a-00c04fd918d0")
  12303 IDropTargetHelper : public IUnknown
  12304 {
  12305     virtual HRESULT STDMETHODCALLTYPE DragEnter(
  12306         HWND hwndTarget,
  12307         IDataObject *pDataObject,
  12308         POINT *ppt,
  12309         DWORD dwEffect) = 0;
  12310 
  12311     virtual HRESULT STDMETHODCALLTYPE DragLeave(
  12312         ) = 0;
  12313 
  12314     virtual HRESULT STDMETHODCALLTYPE DragOver(
  12315         POINT *ppt,
  12316         DWORD dwEffect) = 0;
  12317 
  12318     virtual HRESULT STDMETHODCALLTYPE Drop(
  12319         IDataObject *pDataObject,
  12320         POINT *ppt,
  12321         DWORD dwEffect) = 0;
  12322 
  12323     virtual HRESULT STDMETHODCALLTYPE Show(
  12324         WINBOOL fShow) = 0;
  12325 
  12326 };
  12327 #ifdef __CRT_UUID_DECL
  12328 __CRT_UUID_DECL(IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83,0x9a, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
  12329 #endif
  12330 #else
  12331 typedef struct IDropTargetHelperVtbl {
  12332     BEGIN_INTERFACE
  12333 
  12334     /*** IUnknown methods ***/
  12335     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12336         IDropTargetHelper *This,
  12337         REFIID riid,
  12338         void **ppvObject);
  12339 
  12340     ULONG (STDMETHODCALLTYPE *AddRef)(
  12341         IDropTargetHelper *This);
  12342 
  12343     ULONG (STDMETHODCALLTYPE *Release)(
  12344         IDropTargetHelper *This);
  12345 
  12346     /*** IDropTargetHelper methods ***/
  12347     HRESULT (STDMETHODCALLTYPE *DragEnter)(
  12348         IDropTargetHelper *This,
  12349         HWND hwndTarget,
  12350         IDataObject *pDataObject,
  12351         POINT *ppt,
  12352         DWORD dwEffect);
  12353 
  12354     HRESULT (STDMETHODCALLTYPE *DragLeave)(
  12355         IDropTargetHelper *This);
  12356 
  12357     HRESULT (STDMETHODCALLTYPE *DragOver)(
  12358         IDropTargetHelper *This,
  12359         POINT *ppt,
  12360         DWORD dwEffect);
  12361 
  12362     HRESULT (STDMETHODCALLTYPE *Drop)(
  12363         IDropTargetHelper *This,
  12364         IDataObject *pDataObject,
  12365         POINT *ppt,
  12366         DWORD dwEffect);
  12367 
  12368     HRESULT (STDMETHODCALLTYPE *Show)(
  12369         IDropTargetHelper *This,
  12370         WINBOOL fShow);
  12371 
  12372     END_INTERFACE
  12373 } IDropTargetHelperVtbl;
  12374 
  12375 interface IDropTargetHelper {
  12376     CONST_VTBL IDropTargetHelperVtbl* lpVtbl;
  12377 };
  12378 
  12379 #ifdef COBJMACROS
  12380 #ifndef WIDL_C_INLINE_WRAPPERS
  12381 /*** IUnknown methods ***/
  12382 #define IDropTargetHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12383 #define IDropTargetHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
  12384 #define IDropTargetHelper_Release(This) (This)->lpVtbl->Release(This)
  12385 /*** IDropTargetHelper methods ***/
  12386 #define IDropTargetHelper_DragEnter(This,hwndTarget,pDataObject,ppt,dwEffect) (This)->lpVtbl->DragEnter(This,hwndTarget,pDataObject,ppt,dwEffect)
  12387 #define IDropTargetHelper_DragLeave(This) (This)->lpVtbl->DragLeave(This)
  12388 #define IDropTargetHelper_DragOver(This,ppt,dwEffect) (This)->lpVtbl->DragOver(This,ppt,dwEffect)
  12389 #define IDropTargetHelper_Drop(This,pDataObject,ppt,dwEffect) (This)->lpVtbl->Drop(This,pDataObject,ppt,dwEffect)
  12390 #define IDropTargetHelper_Show(This,fShow) (This)->lpVtbl->Show(This,fShow)
  12391 #else
  12392 /*** IUnknown methods ***/
  12393 static inline HRESULT IDropTargetHelper_QueryInterface(IDropTargetHelper* This,REFIID riid,void **ppvObject) {
  12394     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12395 }
  12396 static inline ULONG IDropTargetHelper_AddRef(IDropTargetHelper* This) {
  12397     return This->lpVtbl->AddRef(This);
  12398 }
  12399 static inline ULONG IDropTargetHelper_Release(IDropTargetHelper* This) {
  12400     return This->lpVtbl->Release(This);
  12401 }
  12402 /*** IDropTargetHelper methods ***/
  12403 static inline HRESULT IDropTargetHelper_DragEnter(IDropTargetHelper* This,HWND hwndTarget,IDataObject *pDataObject,POINT *ppt,DWORD dwEffect) {
  12404     return This->lpVtbl->DragEnter(This,hwndTarget,pDataObject,ppt,dwEffect);
  12405 }
  12406 static inline HRESULT IDropTargetHelper_DragLeave(IDropTargetHelper* This) {
  12407     return This->lpVtbl->DragLeave(This);
  12408 }
  12409 static inline HRESULT IDropTargetHelper_DragOver(IDropTargetHelper* This,POINT *ppt,DWORD dwEffect) {
  12410     return This->lpVtbl->DragOver(This,ppt,dwEffect);
  12411 }
  12412 static inline HRESULT IDropTargetHelper_Drop(IDropTargetHelper* This,IDataObject *pDataObject,POINT *ppt,DWORD dwEffect) {
  12413     return This->lpVtbl->Drop(This,pDataObject,ppt,dwEffect);
  12414 }
  12415 static inline HRESULT IDropTargetHelper_Show(IDropTargetHelper* This,WINBOOL fShow) {
  12416     return This->lpVtbl->Show(This,fShow);
  12417 }
  12418 #endif
  12419 #endif
  12420 
  12421 #endif
  12422 
  12423 
  12424 #endif  /* __IDropTargetHelper_INTERFACE_DEFINED__ */
  12425 
  12426 
  12427 /*****************************************************************************
  12428  * IDragSourceHelper interface
  12429  */
  12430 #ifndef __IDragSourceHelper_INTERFACE_DEFINED__
  12431 #define __IDragSourceHelper_INTERFACE_DEFINED__
  12432 
  12433 DEFINE_GUID(IID_IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83,0x9d, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
  12434 #if defined(__cplusplus) && !defined(CINTERFACE)
  12435 MIDL_INTERFACE("de5bf786-477a-11d2-839d-00c04fd918d0")
  12436 IDragSourceHelper : public IUnknown
  12437 {
  12438     virtual HRESULT STDMETHODCALLTYPE InitializeFromBitmap(
  12439         LPSHDRAGIMAGE pshdi,
  12440         IDataObject *pDataObject) = 0;
  12441 
  12442     virtual HRESULT STDMETHODCALLTYPE InitializeFromWindow(
  12443         HWND hwnd,
  12444         POINT *ppt,
  12445         IDataObject *pDataObject) = 0;
  12446 
  12447 };
  12448 #ifdef __CRT_UUID_DECL
  12449 __CRT_UUID_DECL(IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83,0x9d, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
  12450 #endif
  12451 #else
  12452 typedef struct IDragSourceHelperVtbl {
  12453     BEGIN_INTERFACE
  12454 
  12455     /*** IUnknown methods ***/
  12456     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12457         IDragSourceHelper *This,
  12458         REFIID riid,
  12459         void **ppvObject);
  12460 
  12461     ULONG (STDMETHODCALLTYPE *AddRef)(
  12462         IDragSourceHelper *This);
  12463 
  12464     ULONG (STDMETHODCALLTYPE *Release)(
  12465         IDragSourceHelper *This);
  12466 
  12467     /*** IDragSourceHelper methods ***/
  12468     HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
  12469         IDragSourceHelper *This,
  12470         LPSHDRAGIMAGE pshdi,
  12471         IDataObject *pDataObject);
  12472 
  12473     HRESULT (STDMETHODCALLTYPE *InitializeFromWindow)(
  12474         IDragSourceHelper *This,
  12475         HWND hwnd,
  12476         POINT *ppt,
  12477         IDataObject *pDataObject);
  12478 
  12479     END_INTERFACE
  12480 } IDragSourceHelperVtbl;
  12481 
  12482 interface IDragSourceHelper {
  12483     CONST_VTBL IDragSourceHelperVtbl* lpVtbl;
  12484 };
  12485 
  12486 #ifdef COBJMACROS
  12487 #ifndef WIDL_C_INLINE_WRAPPERS
  12488 /*** IUnknown methods ***/
  12489 #define IDragSourceHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12490 #define IDragSourceHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
  12491 #define IDragSourceHelper_Release(This) (This)->lpVtbl->Release(This)
  12492 /*** IDragSourceHelper methods ***/
  12493 #define IDragSourceHelper_InitializeFromBitmap(This,pshdi,pDataObject) (This)->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject)
  12494 #define IDragSourceHelper_InitializeFromWindow(This,hwnd,ppt,pDataObject) (This)->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject)
  12495 #else
  12496 /*** IUnknown methods ***/
  12497 static inline HRESULT IDragSourceHelper_QueryInterface(IDragSourceHelper* This,REFIID riid,void **ppvObject) {
  12498     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12499 }
  12500 static inline ULONG IDragSourceHelper_AddRef(IDragSourceHelper* This) {
  12501     return This->lpVtbl->AddRef(This);
  12502 }
  12503 static inline ULONG IDragSourceHelper_Release(IDragSourceHelper* This) {
  12504     return This->lpVtbl->Release(This);
  12505 }
  12506 /*** IDragSourceHelper methods ***/
  12507 static inline HRESULT IDragSourceHelper_InitializeFromBitmap(IDragSourceHelper* This,LPSHDRAGIMAGE pshdi,IDataObject *pDataObject) {
  12508     return This->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject);
  12509 }
  12510 static inline HRESULT IDragSourceHelper_InitializeFromWindow(IDragSourceHelper* This,HWND hwnd,POINT *ppt,IDataObject *pDataObject) {
  12511     return This->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject);
  12512 }
  12513 #endif
  12514 #endif
  12515 
  12516 #endif
  12517 
  12518 
  12519 #endif  /* __IDragSourceHelper_INTERFACE_DEFINED__ */
  12520 
  12521 
  12522 #if NTDDI_VERSION >= NTDDI_VISTA
  12523 typedef enum DSH_FLAGS {
  12524     DSH_ALLOWDROPDESCRIPTIONTEXT = 0x1
  12525 } DSH_FLAGS;
  12526 
  12527 DEFINE_ENUM_FLAG_OPERATORS(DSH_FLAGS)
  12528 
  12529 /*****************************************************************************
  12530  * IDragSourceHelper2 interface
  12531  */
  12532 #ifndef __IDragSourceHelper2_INTERFACE_DEFINED__
  12533 #define __IDragSourceHelper2_INTERFACE_DEFINED__
  12534 
  12535 DEFINE_GUID(IID_IDragSourceHelper2, 0x83e07d0d, 0x0c5f, 0x4163, 0xbf,0x1a, 0x60,0xb2,0x74,0x05,0x1e,0x40);
  12536 #if defined(__cplusplus) && !defined(CINTERFACE)
  12537 MIDL_INTERFACE("83e07d0d-0c5f-4163-bf1a-60b274051e40")
  12538 IDragSourceHelper2 : public IDragSourceHelper
  12539 {
  12540     virtual HRESULT STDMETHODCALLTYPE SetFlags(
  12541         DWORD dwFlags) = 0;
  12542 
  12543 };
  12544 #ifdef __CRT_UUID_DECL
  12545 __CRT_UUID_DECL(IDragSourceHelper2, 0x83e07d0d, 0x0c5f, 0x4163, 0xbf,0x1a, 0x60,0xb2,0x74,0x05,0x1e,0x40)
  12546 #endif
  12547 #else
  12548 typedef struct IDragSourceHelper2Vtbl {
  12549     BEGIN_INTERFACE
  12550 
  12551     /*** IUnknown methods ***/
  12552     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12553         IDragSourceHelper2 *This,
  12554         REFIID riid,
  12555         void **ppvObject);
  12556 
  12557     ULONG (STDMETHODCALLTYPE *AddRef)(
  12558         IDragSourceHelper2 *This);
  12559 
  12560     ULONG (STDMETHODCALLTYPE *Release)(
  12561         IDragSourceHelper2 *This);
  12562 
  12563     /*** IDragSourceHelper methods ***/
  12564     HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
  12565         IDragSourceHelper2 *This,
  12566         LPSHDRAGIMAGE pshdi,
  12567         IDataObject *pDataObject);
  12568 
  12569     HRESULT (STDMETHODCALLTYPE *InitializeFromWindow)(
  12570         IDragSourceHelper2 *This,
  12571         HWND hwnd,
  12572         POINT *ppt,
  12573         IDataObject *pDataObject);
  12574 
  12575     /*** IDragSourceHelper2 methods ***/
  12576     HRESULT (STDMETHODCALLTYPE *SetFlags)(
  12577         IDragSourceHelper2 *This,
  12578         DWORD dwFlags);
  12579 
  12580     END_INTERFACE
  12581 } IDragSourceHelper2Vtbl;
  12582 
  12583 interface IDragSourceHelper2 {
  12584     CONST_VTBL IDragSourceHelper2Vtbl* lpVtbl;
  12585 };
  12586 
  12587 #ifdef COBJMACROS
  12588 #ifndef WIDL_C_INLINE_WRAPPERS
  12589 /*** IUnknown methods ***/
  12590 #define IDragSourceHelper2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12591 #define IDragSourceHelper2_AddRef(This) (This)->lpVtbl->AddRef(This)
  12592 #define IDragSourceHelper2_Release(This) (This)->lpVtbl->Release(This)
  12593 /*** IDragSourceHelper methods ***/
  12594 #define IDragSourceHelper2_InitializeFromBitmap(This,pshdi,pDataObject) (This)->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject)
  12595 #define IDragSourceHelper2_InitializeFromWindow(This,hwnd,ppt,pDataObject) (This)->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject)
  12596 /*** IDragSourceHelper2 methods ***/
  12597 #define IDragSourceHelper2_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
  12598 #else
  12599 /*** IUnknown methods ***/
  12600 static inline HRESULT IDragSourceHelper2_QueryInterface(IDragSourceHelper2* This,REFIID riid,void **ppvObject) {
  12601     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12602 }
  12603 static inline ULONG IDragSourceHelper2_AddRef(IDragSourceHelper2* This) {
  12604     return This->lpVtbl->AddRef(This);
  12605 }
  12606 static inline ULONG IDragSourceHelper2_Release(IDragSourceHelper2* This) {
  12607     return This->lpVtbl->Release(This);
  12608 }
  12609 /*** IDragSourceHelper methods ***/
  12610 static inline HRESULT IDragSourceHelper2_InitializeFromBitmap(IDragSourceHelper2* This,LPSHDRAGIMAGE pshdi,IDataObject *pDataObject) {
  12611     return This->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject);
  12612 }
  12613 static inline HRESULT IDragSourceHelper2_InitializeFromWindow(IDragSourceHelper2* This,HWND hwnd,POINT *ppt,IDataObject *pDataObject) {
  12614     return This->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject);
  12615 }
  12616 /*** IDragSourceHelper2 methods ***/
  12617 static inline HRESULT IDragSourceHelper2_SetFlags(IDragSourceHelper2* This,DWORD dwFlags) {
  12618     return This->lpVtbl->SetFlags(This,dwFlags);
  12619 }
  12620 #endif
  12621 #endif
  12622 
  12623 #endif
  12624 
  12625 
  12626 #endif  /* __IDragSourceHelper2_INTERFACE_DEFINED__ */
  12627 
  12628 #endif
  12629 
  12630 #define IShellLink __MINGW_NAME_AW(IShellLink)
  12631 
  12632 typedef enum SLR_FLAGS {
  12633     SLR_NO_UI = 0x1,
  12634     SLR_ANY_MATCH = 0x2,
  12635     SLR_UPDATE = 0x4,
  12636     SLR_NOUPDATE = 0x8,
  12637     SLR_NOSEARCH = 0x10,
  12638     SLR_NOTRACK = 0x20,
  12639     SLR_NOLINKINFO = 0x40,
  12640     SLR_INVOKE_MSI = 0x80,
  12641     SLR_NO_UI_WITH_MSG_PUMP = 0x101,
  12642     SLR_OFFER_DELETE_WITHOUT_FILE = 0x200,
  12643     SLR_KNOWNFOLDER = 0x400,
  12644     SLR_MACHINE_IN_LOCAL_TARGET = 0x800,
  12645     SLR_UPDATE_MACHINE_AND_SID = 0x1000
  12646 } SLR_FLAGS;
  12647 
  12648 DEFINE_ENUM_FLAG_OPERATORS(SLR_FLAGS)
  12649 
  12650 typedef enum SLGP_FLAGS {
  12651     SLGP_SHORTPATH = 0x1,
  12652     SLGP_UNCPRIORITY = 0x2,
  12653     SLGP_RAWPATH = 0x4,
  12654     SLGP_RELATIVEPRIORITY = 0x8
  12655 } SLGP_FLAGS;
  12656 
  12657 DEFINE_ENUM_FLAG_OPERATORS(SLGP_FLAGS)
  12658 
  12659 /*****************************************************************************
  12660  * IShellLinkA interface
  12661  */
  12662 #ifndef __IShellLinkA_INTERFACE_DEFINED__
  12663 #define __IShellLinkA_INTERFACE_DEFINED__
  12664 
  12665 DEFINE_GUID(IID_IShellLinkA, 0x000214ee, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  12666 #if defined(__cplusplus) && !defined(CINTERFACE)
  12667 MIDL_INTERFACE("000214ee-0000-0000-c000-000000000046")
  12668 IShellLinkA : public IUnknown
  12669 {
  12670     virtual HRESULT STDMETHODCALLTYPE GetPath(
  12671         LPSTR pszFile,
  12672         int cch,
  12673         WIN32_FIND_DATAA *pfd,
  12674         DWORD fFlags) = 0;
  12675 
  12676     virtual HRESULT STDMETHODCALLTYPE GetIDList(
  12677         PIDLIST_ABSOLUTE *ppidl) = 0;
  12678 
  12679     virtual HRESULT STDMETHODCALLTYPE SetIDList(
  12680         PCIDLIST_ABSOLUTE pidl) = 0;
  12681 
  12682     virtual HRESULT STDMETHODCALLTYPE GetDescription(
  12683         LPSTR pszName,
  12684         int cch) = 0;
  12685 
  12686     virtual HRESULT STDMETHODCALLTYPE SetDescription(
  12687         LPCSTR pszName) = 0;
  12688 
  12689     virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
  12690         LPSTR pszDir,
  12691         int cch) = 0;
  12692 
  12693     virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
  12694         LPCSTR pszDir) = 0;
  12695 
  12696     virtual HRESULT STDMETHODCALLTYPE GetArguments(
  12697         LPSTR pszArgs,
  12698         int cch) = 0;
  12699 
  12700     virtual HRESULT STDMETHODCALLTYPE SetArguments(
  12701         LPCSTR pszArgs) = 0;
  12702 
  12703     virtual HRESULT STDMETHODCALLTYPE GetHotkey(
  12704         WORD *pwHotkey) = 0;
  12705 
  12706     virtual HRESULT STDMETHODCALLTYPE SetHotkey(
  12707         WORD wHotkey) = 0;
  12708 
  12709     virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
  12710         int *piShowCmd) = 0;
  12711 
  12712     virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
  12713         int iShowCmd) = 0;
  12714 
  12715     virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
  12716         LPSTR pszIconPath,
  12717         int cch,
  12718         int *piIcon) = 0;
  12719 
  12720     virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
  12721         LPCSTR pszIconPath,
  12722         int iIcon) = 0;
  12723 
  12724     virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
  12725         LPCSTR pszPathRel,
  12726         DWORD dwReserved) = 0;
  12727 
  12728     virtual HRESULT STDMETHODCALLTYPE Resolve(
  12729         HWND hwnd,
  12730         DWORD fFlags) = 0;
  12731 
  12732     virtual HRESULT STDMETHODCALLTYPE SetPath(
  12733         LPCSTR pszFile) = 0;
  12734 
  12735 };
  12736 #ifdef __CRT_UUID_DECL
  12737 __CRT_UUID_DECL(IShellLinkA, 0x000214ee, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  12738 #endif
  12739 #else
  12740 typedef struct IShellLinkAVtbl {
  12741     BEGIN_INTERFACE
  12742 
  12743     /*** IUnknown methods ***/
  12744     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  12745         IShellLinkA *This,
  12746         REFIID riid,
  12747         void **ppvObject);
  12748 
  12749     ULONG (STDMETHODCALLTYPE *AddRef)(
  12750         IShellLinkA *This);
  12751 
  12752     ULONG (STDMETHODCALLTYPE *Release)(
  12753         IShellLinkA *This);
  12754 
  12755     /*** IShellLinkA methods ***/
  12756     HRESULT (STDMETHODCALLTYPE *GetPath)(
  12757         IShellLinkA *This,
  12758         LPSTR pszFile,
  12759         int cch,
  12760         WIN32_FIND_DATAA *pfd,
  12761         DWORD fFlags);
  12762 
  12763     HRESULT (STDMETHODCALLTYPE *GetIDList)(
  12764         IShellLinkA *This,
  12765         PIDLIST_ABSOLUTE *ppidl);
  12766 
  12767     HRESULT (STDMETHODCALLTYPE *SetIDList)(
  12768         IShellLinkA *This,
  12769         PCIDLIST_ABSOLUTE pidl);
  12770 
  12771     HRESULT (STDMETHODCALLTYPE *GetDescription)(
  12772         IShellLinkA *This,
  12773         LPSTR pszName,
  12774         int cch);
  12775 
  12776     HRESULT (STDMETHODCALLTYPE *SetDescription)(
  12777         IShellLinkA *This,
  12778         LPCSTR pszName);
  12779 
  12780     HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
  12781         IShellLinkA *This,
  12782         LPSTR pszDir,
  12783         int cch);
  12784 
  12785     HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
  12786         IShellLinkA *This,
  12787         LPCSTR pszDir);
  12788 
  12789     HRESULT (STDMETHODCALLTYPE *GetArguments)(
  12790         IShellLinkA *This,
  12791         LPSTR pszArgs,
  12792         int cch);
  12793 
  12794     HRESULT (STDMETHODCALLTYPE *SetArguments)(
  12795         IShellLinkA *This,
  12796         LPCSTR pszArgs);
  12797 
  12798     HRESULT (STDMETHODCALLTYPE *GetHotkey)(
  12799         IShellLinkA *This,
  12800         WORD *pwHotkey);
  12801 
  12802     HRESULT (STDMETHODCALLTYPE *SetHotkey)(
  12803         IShellLinkA *This,
  12804         WORD wHotkey);
  12805 
  12806     HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
  12807         IShellLinkA *This,
  12808         int *piShowCmd);
  12809 
  12810     HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
  12811         IShellLinkA *This,
  12812         int iShowCmd);
  12813 
  12814     HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
  12815         IShellLinkA *This,
  12816         LPSTR pszIconPath,
  12817         int cch,
  12818         int *piIcon);
  12819 
  12820     HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
  12821         IShellLinkA *This,
  12822         LPCSTR pszIconPath,
  12823         int iIcon);
  12824 
  12825     HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
  12826         IShellLinkA *This,
  12827         LPCSTR pszPathRel,
  12828         DWORD dwReserved);
  12829 
  12830     HRESULT (STDMETHODCALLTYPE *Resolve)(
  12831         IShellLinkA *This,
  12832         HWND hwnd,
  12833         DWORD fFlags);
  12834 
  12835     HRESULT (STDMETHODCALLTYPE *SetPath)(
  12836         IShellLinkA *This,
  12837         LPCSTR pszFile);
  12838 
  12839     END_INTERFACE
  12840 } IShellLinkAVtbl;
  12841 
  12842 interface IShellLinkA {
  12843     CONST_VTBL IShellLinkAVtbl* lpVtbl;
  12844 };
  12845 
  12846 #ifdef COBJMACROS
  12847 #ifndef WIDL_C_INLINE_WRAPPERS
  12848 /*** IUnknown methods ***/
  12849 #define IShellLinkA_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  12850 #define IShellLinkA_AddRef(This) (This)->lpVtbl->AddRef(This)
  12851 #define IShellLinkA_Release(This) (This)->lpVtbl->Release(This)
  12852 /*** IShellLinkA methods ***/
  12853 #define IShellLinkA_GetPath(This,pszFile,cch,pfd,fFlags) (This)->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags)
  12854 #define IShellLinkA_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
  12855 #define IShellLinkA_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
  12856 #define IShellLinkA_GetDescription(This,pszName,cch) (This)->lpVtbl->GetDescription(This,pszName,cch)
  12857 #define IShellLinkA_SetDescription(This,pszName) (This)->lpVtbl->SetDescription(This,pszName)
  12858 #define IShellLinkA_GetWorkingDirectory(This,pszDir,cch) (This)->lpVtbl->GetWorkingDirectory(This,pszDir,cch)
  12859 #define IShellLinkA_SetWorkingDirectory(This,pszDir) (This)->lpVtbl->SetWorkingDirectory(This,pszDir)
  12860 #define IShellLinkA_GetArguments(This,pszArgs,cch) (This)->lpVtbl->GetArguments(This,pszArgs,cch)
  12861 #define IShellLinkA_SetArguments(This,pszArgs) (This)->lpVtbl->SetArguments(This,pszArgs)
  12862 #define IShellLinkA_GetHotkey(This,pwHotkey) (This)->lpVtbl->GetHotkey(This,pwHotkey)
  12863 #define IShellLinkA_SetHotkey(This,wHotkey) (This)->lpVtbl->SetHotkey(This,wHotkey)
  12864 #define IShellLinkA_GetShowCmd(This,piShowCmd) (This)->lpVtbl->GetShowCmd(This,piShowCmd)
  12865 #define IShellLinkA_SetShowCmd(This,iShowCmd) (This)->lpVtbl->SetShowCmd(This,iShowCmd)
  12866 #define IShellLinkA_GetIconLocation(This,pszIconPath,cch,piIcon) (This)->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon)
  12867 #define IShellLinkA_SetIconLocation(This,pszIconPath,iIcon) (This)->lpVtbl->SetIconLocation(This,pszIconPath,iIcon)
  12868 #define IShellLinkA_SetRelativePath(This,pszPathRel,dwReserved) (This)->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved)
  12869 #define IShellLinkA_Resolve(This,hwnd,fFlags) (This)->lpVtbl->Resolve(This,hwnd,fFlags)
  12870 #define IShellLinkA_SetPath(This,pszFile) (This)->lpVtbl->SetPath(This,pszFile)
  12871 #else
  12872 /*** IUnknown methods ***/
  12873 static inline HRESULT IShellLinkA_QueryInterface(IShellLinkA* This,REFIID riid,void **ppvObject) {
  12874     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  12875 }
  12876 static inline ULONG IShellLinkA_AddRef(IShellLinkA* This) {
  12877     return This->lpVtbl->AddRef(This);
  12878 }
  12879 static inline ULONG IShellLinkA_Release(IShellLinkA* This) {
  12880     return This->lpVtbl->Release(This);
  12881 }
  12882 /*** IShellLinkA methods ***/
  12883 static inline HRESULT IShellLinkA_GetPath(IShellLinkA* This,LPSTR pszFile,int cch,WIN32_FIND_DATAA *pfd,DWORD fFlags) {
  12884     return This->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags);
  12885 }
  12886 static inline HRESULT IShellLinkA_GetIDList(IShellLinkA* This,PIDLIST_ABSOLUTE *ppidl) {
  12887     return This->lpVtbl->GetIDList(This,ppidl);
  12888 }
  12889 static inline HRESULT IShellLinkA_SetIDList(IShellLinkA* This,PCIDLIST_ABSOLUTE pidl) {
  12890     return This->lpVtbl->SetIDList(This,pidl);
  12891 }
  12892 static inline HRESULT IShellLinkA_GetDescription(IShellLinkA* This,LPSTR pszName,int cch) {
  12893     return This->lpVtbl->GetDescription(This,pszName,cch);
  12894 }
  12895 static inline HRESULT IShellLinkA_SetDescription(IShellLinkA* This,LPCSTR pszName) {
  12896     return This->lpVtbl->SetDescription(This,pszName);
  12897 }
  12898 static inline HRESULT IShellLinkA_GetWorkingDirectory(IShellLinkA* This,LPSTR pszDir,int cch) {
  12899     return This->lpVtbl->GetWorkingDirectory(This,pszDir,cch);
  12900 }
  12901 static inline HRESULT IShellLinkA_SetWorkingDirectory(IShellLinkA* This,LPCSTR pszDir) {
  12902     return This->lpVtbl->SetWorkingDirectory(This,pszDir);
  12903 }
  12904 static inline HRESULT IShellLinkA_GetArguments(IShellLinkA* This,LPSTR pszArgs,int cch) {
  12905     return This->lpVtbl->GetArguments(This,pszArgs,cch);
  12906 }
  12907 static inline HRESULT IShellLinkA_SetArguments(IShellLinkA* This,LPCSTR pszArgs) {
  12908     return This->lpVtbl->SetArguments(This,pszArgs);
  12909 }
  12910 static inline HRESULT IShellLinkA_GetHotkey(IShellLinkA* This,WORD *pwHotkey) {
  12911     return This->lpVtbl->GetHotkey(This,pwHotkey);
  12912 }
  12913 static inline HRESULT IShellLinkA_SetHotkey(IShellLinkA* This,WORD wHotkey) {
  12914     return This->lpVtbl->SetHotkey(This,wHotkey);
  12915 }
  12916 static inline HRESULT IShellLinkA_GetShowCmd(IShellLinkA* This,int *piShowCmd) {
  12917     return This->lpVtbl->GetShowCmd(This,piShowCmd);
  12918 }
  12919 static inline HRESULT IShellLinkA_SetShowCmd(IShellLinkA* This,int iShowCmd) {
  12920     return This->lpVtbl->SetShowCmd(This,iShowCmd);
  12921 }
  12922 static inline HRESULT IShellLinkA_GetIconLocation(IShellLinkA* This,LPSTR pszIconPath,int cch,int *piIcon) {
  12923     return This->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon);
  12924 }
  12925 static inline HRESULT IShellLinkA_SetIconLocation(IShellLinkA* This,LPCSTR pszIconPath,int iIcon) {
  12926     return This->lpVtbl->SetIconLocation(This,pszIconPath,iIcon);
  12927 }
  12928 static inline HRESULT IShellLinkA_SetRelativePath(IShellLinkA* This,LPCSTR pszPathRel,DWORD dwReserved) {
  12929     return This->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved);
  12930 }
  12931 static inline HRESULT IShellLinkA_Resolve(IShellLinkA* This,HWND hwnd,DWORD fFlags) {
  12932     return This->lpVtbl->Resolve(This,hwnd,fFlags);
  12933 }
  12934 static inline HRESULT IShellLinkA_SetPath(IShellLinkA* This,LPCSTR pszFile) {
  12935     return This->lpVtbl->SetPath(This,pszFile);
  12936 }
  12937 #endif
  12938 #endif
  12939 
  12940 #endif
  12941 
  12942 
  12943 #endif  /* __IShellLinkA_INTERFACE_DEFINED__ */
  12944 
  12945 
  12946 /*****************************************************************************
  12947  * IShellLinkW interface
  12948  */
  12949 #ifndef __IShellLinkW_INTERFACE_DEFINED__
  12950 #define __IShellLinkW_INTERFACE_DEFINED__
  12951 
  12952 DEFINE_GUID(IID_IShellLinkW, 0x000214f9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  12953 #if defined(__cplusplus) && !defined(CINTERFACE)
  12954 MIDL_INTERFACE("000214f9-0000-0000-c000-000000000046")
  12955 IShellLinkW : public IUnknown
  12956 {
  12957     virtual HRESULT STDMETHODCALLTYPE GetPath(
  12958         LPWSTR pszFile,
  12959         int cch,
  12960         WIN32_FIND_DATAW *pfd,
  12961         DWORD fFlags) = 0;
  12962 
  12963     virtual HRESULT STDMETHODCALLTYPE GetIDList(
  12964         PIDLIST_ABSOLUTE *ppidl) = 0;
  12965 
  12966     virtual HRESULT STDMETHODCALLTYPE SetIDList(
  12967         PCIDLIST_ABSOLUTE pidl) = 0;
  12968 
  12969     virtual HRESULT STDMETHODCALLTYPE GetDescription(
  12970         LPWSTR pszName,
  12971         int cch) = 0;
  12972 
  12973     virtual HRESULT STDMETHODCALLTYPE SetDescription(
  12974         LPCWSTR pszName) = 0;
  12975 
  12976     virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
  12977         LPWSTR pszDir,
  12978         int cch) = 0;
  12979 
  12980     virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
  12981         LPCWSTR pszDir) = 0;
  12982 
  12983     virtual HRESULT STDMETHODCALLTYPE GetArguments(
  12984         LPWSTR pszArgs,
  12985         int cch) = 0;
  12986 
  12987     virtual HRESULT STDMETHODCALLTYPE SetArguments(
  12988         LPCWSTR pszArgs) = 0;
  12989 
  12990     virtual HRESULT STDMETHODCALLTYPE GetHotkey(
  12991         WORD *pwHotkey) = 0;
  12992 
  12993     virtual HRESULT STDMETHODCALLTYPE SetHotkey(
  12994         WORD wHotkey) = 0;
  12995 
  12996     virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
  12997         int *piShowCmd) = 0;
  12998 
  12999     virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
  13000         int iShowCmd) = 0;
  13001 
  13002     virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
  13003         LPWSTR pszIconPath,
  13004         int cch,
  13005         int *piIcon) = 0;
  13006 
  13007     virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
  13008         LPCWSTR pszIconPath,
  13009         int iIcon) = 0;
  13010 
  13011     virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
  13012         LPCWSTR pszPathRel,
  13013         DWORD dwReserved) = 0;
  13014 
  13015     virtual HRESULT STDMETHODCALLTYPE Resolve(
  13016         HWND hwnd,
  13017         DWORD fFlags) = 0;
  13018 
  13019     virtual HRESULT STDMETHODCALLTYPE SetPath(
  13020         LPCWSTR pszFile) = 0;
  13021 
  13022 };
  13023 #ifdef __CRT_UUID_DECL
  13024 __CRT_UUID_DECL(IShellLinkW, 0x000214f9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  13025 #endif
  13026 #else
  13027 typedef struct IShellLinkWVtbl {
  13028     BEGIN_INTERFACE
  13029 
  13030     /*** IUnknown methods ***/
  13031     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13032         IShellLinkW *This,
  13033         REFIID riid,
  13034         void **ppvObject);
  13035 
  13036     ULONG (STDMETHODCALLTYPE *AddRef)(
  13037         IShellLinkW *This);
  13038 
  13039     ULONG (STDMETHODCALLTYPE *Release)(
  13040         IShellLinkW *This);
  13041 
  13042     /*** IShellLinkW methods ***/
  13043     HRESULT (STDMETHODCALLTYPE *GetPath)(
  13044         IShellLinkW *This,
  13045         LPWSTR pszFile,
  13046         int cch,
  13047         WIN32_FIND_DATAW *pfd,
  13048         DWORD fFlags);
  13049 
  13050     HRESULT (STDMETHODCALLTYPE *GetIDList)(
  13051         IShellLinkW *This,
  13052         PIDLIST_ABSOLUTE *ppidl);
  13053 
  13054     HRESULT (STDMETHODCALLTYPE *SetIDList)(
  13055         IShellLinkW *This,
  13056         PCIDLIST_ABSOLUTE pidl);
  13057 
  13058     HRESULT (STDMETHODCALLTYPE *GetDescription)(
  13059         IShellLinkW *This,
  13060         LPWSTR pszName,
  13061         int cch);
  13062 
  13063     HRESULT (STDMETHODCALLTYPE *SetDescription)(
  13064         IShellLinkW *This,
  13065         LPCWSTR pszName);
  13066 
  13067     HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
  13068         IShellLinkW *This,
  13069         LPWSTR pszDir,
  13070         int cch);
  13071 
  13072     HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
  13073         IShellLinkW *This,
  13074         LPCWSTR pszDir);
  13075 
  13076     HRESULT (STDMETHODCALLTYPE *GetArguments)(
  13077         IShellLinkW *This,
  13078         LPWSTR pszArgs,
  13079         int cch);
  13080 
  13081     HRESULT (STDMETHODCALLTYPE *SetArguments)(
  13082         IShellLinkW *This,
  13083         LPCWSTR pszArgs);
  13084 
  13085     HRESULT (STDMETHODCALLTYPE *GetHotkey)(
  13086         IShellLinkW *This,
  13087         WORD *pwHotkey);
  13088 
  13089     HRESULT (STDMETHODCALLTYPE *SetHotkey)(
  13090         IShellLinkW *This,
  13091         WORD wHotkey);
  13092 
  13093     HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
  13094         IShellLinkW *This,
  13095         int *piShowCmd);
  13096 
  13097     HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
  13098         IShellLinkW *This,
  13099         int iShowCmd);
  13100 
  13101     HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
  13102         IShellLinkW *This,
  13103         LPWSTR pszIconPath,
  13104         int cch,
  13105         int *piIcon);
  13106 
  13107     HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
  13108         IShellLinkW *This,
  13109         LPCWSTR pszIconPath,
  13110         int iIcon);
  13111 
  13112     HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
  13113         IShellLinkW *This,
  13114         LPCWSTR pszPathRel,
  13115         DWORD dwReserved);
  13116 
  13117     HRESULT (STDMETHODCALLTYPE *Resolve)(
  13118         IShellLinkW *This,
  13119         HWND hwnd,
  13120         DWORD fFlags);
  13121 
  13122     HRESULT (STDMETHODCALLTYPE *SetPath)(
  13123         IShellLinkW *This,
  13124         LPCWSTR pszFile);
  13125 
  13126     END_INTERFACE
  13127 } IShellLinkWVtbl;
  13128 
  13129 interface IShellLinkW {
  13130     CONST_VTBL IShellLinkWVtbl* lpVtbl;
  13131 };
  13132 
  13133 #ifdef COBJMACROS
  13134 #ifndef WIDL_C_INLINE_WRAPPERS
  13135 /*** IUnknown methods ***/
  13136 #define IShellLinkW_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13137 #define IShellLinkW_AddRef(This) (This)->lpVtbl->AddRef(This)
  13138 #define IShellLinkW_Release(This) (This)->lpVtbl->Release(This)
  13139 /*** IShellLinkW methods ***/
  13140 #define IShellLinkW_GetPath(This,pszFile,cch,pfd,fFlags) (This)->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags)
  13141 #define IShellLinkW_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
  13142 #define IShellLinkW_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
  13143 #define IShellLinkW_GetDescription(This,pszName,cch) (This)->lpVtbl->GetDescription(This,pszName,cch)
  13144 #define IShellLinkW_SetDescription(This,pszName) (This)->lpVtbl->SetDescription(This,pszName)
  13145 #define IShellLinkW_GetWorkingDirectory(This,pszDir,cch) (This)->lpVtbl->GetWorkingDirectory(This,pszDir,cch)
  13146 #define IShellLinkW_SetWorkingDirectory(This,pszDir) (This)->lpVtbl->SetWorkingDirectory(This,pszDir)
  13147 #define IShellLinkW_GetArguments(This,pszArgs,cch) (This)->lpVtbl->GetArguments(This,pszArgs,cch)
  13148 #define IShellLinkW_SetArguments(This,pszArgs) (This)->lpVtbl->SetArguments(This,pszArgs)
  13149 #define IShellLinkW_GetHotkey(This,pwHotkey) (This)->lpVtbl->GetHotkey(This,pwHotkey)
  13150 #define IShellLinkW_SetHotkey(This,wHotkey) (This)->lpVtbl->SetHotkey(This,wHotkey)
  13151 #define IShellLinkW_GetShowCmd(This,piShowCmd) (This)->lpVtbl->GetShowCmd(This,piShowCmd)
  13152 #define IShellLinkW_SetShowCmd(This,iShowCmd) (This)->lpVtbl->SetShowCmd(This,iShowCmd)
  13153 #define IShellLinkW_GetIconLocation(This,pszIconPath,cch,piIcon) (This)->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon)
  13154 #define IShellLinkW_SetIconLocation(This,pszIconPath,iIcon) (This)->lpVtbl->SetIconLocation(This,pszIconPath,iIcon)
  13155 #define IShellLinkW_SetRelativePath(This,pszPathRel,dwReserved) (This)->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved)
  13156 #define IShellLinkW_Resolve(This,hwnd,fFlags) (This)->lpVtbl->Resolve(This,hwnd,fFlags)
  13157 #define IShellLinkW_SetPath(This,pszFile) (This)->lpVtbl->SetPath(This,pszFile)
  13158 #else
  13159 /*** IUnknown methods ***/
  13160 static inline HRESULT IShellLinkW_QueryInterface(IShellLinkW* This,REFIID riid,void **ppvObject) {
  13161     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13162 }
  13163 static inline ULONG IShellLinkW_AddRef(IShellLinkW* This) {
  13164     return This->lpVtbl->AddRef(This);
  13165 }
  13166 static inline ULONG IShellLinkW_Release(IShellLinkW* This) {
  13167     return This->lpVtbl->Release(This);
  13168 }
  13169 /*** IShellLinkW methods ***/
  13170 static inline HRESULT IShellLinkW_GetPath(IShellLinkW* This,LPWSTR pszFile,int cch,WIN32_FIND_DATAW *pfd,DWORD fFlags) {
  13171     return This->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags);
  13172 }
  13173 static inline HRESULT IShellLinkW_GetIDList(IShellLinkW* This,PIDLIST_ABSOLUTE *ppidl) {
  13174     return This->lpVtbl->GetIDList(This,ppidl);
  13175 }
  13176 static inline HRESULT IShellLinkW_SetIDList(IShellLinkW* This,PCIDLIST_ABSOLUTE pidl) {
  13177     return This->lpVtbl->SetIDList(This,pidl);
  13178 }
  13179 static inline HRESULT IShellLinkW_GetDescription(IShellLinkW* This,LPWSTR pszName,int cch) {
  13180     return This->lpVtbl->GetDescription(This,pszName,cch);
  13181 }
  13182 static inline HRESULT IShellLinkW_SetDescription(IShellLinkW* This,LPCWSTR pszName) {
  13183     return This->lpVtbl->SetDescription(This,pszName);
  13184 }
  13185 static inline HRESULT IShellLinkW_GetWorkingDirectory(IShellLinkW* This,LPWSTR pszDir,int cch) {
  13186     return This->lpVtbl->GetWorkingDirectory(This,pszDir,cch);
  13187 }
  13188 static inline HRESULT IShellLinkW_SetWorkingDirectory(IShellLinkW* This,LPCWSTR pszDir) {
  13189     return This->lpVtbl->SetWorkingDirectory(This,pszDir);
  13190 }
  13191 static inline HRESULT IShellLinkW_GetArguments(IShellLinkW* This,LPWSTR pszArgs,int cch) {
  13192     return This->lpVtbl->GetArguments(This,pszArgs,cch);
  13193 }
  13194 static inline HRESULT IShellLinkW_SetArguments(IShellLinkW* This,LPCWSTR pszArgs) {
  13195     return This->lpVtbl->SetArguments(This,pszArgs);
  13196 }
  13197 static inline HRESULT IShellLinkW_GetHotkey(IShellLinkW* This,WORD *pwHotkey) {
  13198     return This->lpVtbl->GetHotkey(This,pwHotkey);
  13199 }
  13200 static inline HRESULT IShellLinkW_SetHotkey(IShellLinkW* This,WORD wHotkey) {
  13201     return This->lpVtbl->SetHotkey(This,wHotkey);
  13202 }
  13203 static inline HRESULT IShellLinkW_GetShowCmd(IShellLinkW* This,int *piShowCmd) {
  13204     return This->lpVtbl->GetShowCmd(This,piShowCmd);
  13205 }
  13206 static inline HRESULT IShellLinkW_SetShowCmd(IShellLinkW* This,int iShowCmd) {
  13207     return This->lpVtbl->SetShowCmd(This,iShowCmd);
  13208 }
  13209 static inline HRESULT IShellLinkW_GetIconLocation(IShellLinkW* This,LPWSTR pszIconPath,int cch,int *piIcon) {
  13210     return This->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon);
  13211 }
  13212 static inline HRESULT IShellLinkW_SetIconLocation(IShellLinkW* This,LPCWSTR pszIconPath,int iIcon) {
  13213     return This->lpVtbl->SetIconLocation(This,pszIconPath,iIcon);
  13214 }
  13215 static inline HRESULT IShellLinkW_SetRelativePath(IShellLinkW* This,LPCWSTR pszPathRel,DWORD dwReserved) {
  13216     return This->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved);
  13217 }
  13218 static inline HRESULT IShellLinkW_Resolve(IShellLinkW* This,HWND hwnd,DWORD fFlags) {
  13219     return This->lpVtbl->Resolve(This,hwnd,fFlags);
  13220 }
  13221 static inline HRESULT IShellLinkW_SetPath(IShellLinkW* This,LPCWSTR pszFile) {
  13222     return This->lpVtbl->SetPath(This,pszFile);
  13223 }
  13224 #endif
  13225 #endif
  13226 
  13227 #endif
  13228 
  13229 
  13230 #endif  /* __IShellLinkW_INTERFACE_DEFINED__ */
  13231 
  13232 
  13233 /*****************************************************************************
  13234  * IShellLinkDataList interface
  13235  */
  13236 #ifndef __IShellLinkDataList_INTERFACE_DEFINED__
  13237 #define __IShellLinkDataList_INTERFACE_DEFINED__
  13238 
  13239 DEFINE_GUID(IID_IShellLinkDataList, 0x45e2b4ae, 0xb1c3, 0x11d0, 0xb9,0x2f, 0x00,0xa0,0xc9,0x03,0x12,0xe1);
  13240 #if defined(__cplusplus) && !defined(CINTERFACE)
  13241 MIDL_INTERFACE("45e2b4ae-b1c3-11d0-b92f-00a0c90312e1")
  13242 IShellLinkDataList : public IUnknown
  13243 {
  13244     virtual HRESULT STDMETHODCALLTYPE AddDataBlock(
  13245         void *pDataBlock) = 0;
  13246 
  13247     virtual HRESULT STDMETHODCALLTYPE CopyDataBlock(
  13248         DWORD dwSig,
  13249         void **ppDataBlock) = 0;
  13250 
  13251     virtual HRESULT STDMETHODCALLTYPE RemoveDataBlock(
  13252         DWORD dwSig) = 0;
  13253 
  13254     virtual HRESULT STDMETHODCALLTYPE GetFlags(
  13255         DWORD *pdwFlags) = 0;
  13256 
  13257     virtual HRESULT STDMETHODCALLTYPE SetFlags(
  13258         DWORD dwFlags) = 0;
  13259 
  13260 };
  13261 #ifdef __CRT_UUID_DECL
  13262 __CRT_UUID_DECL(IShellLinkDataList, 0x45e2b4ae, 0xb1c3, 0x11d0, 0xb9,0x2f, 0x00,0xa0,0xc9,0x03,0x12,0xe1)
  13263 #endif
  13264 #else
  13265 typedef struct IShellLinkDataListVtbl {
  13266     BEGIN_INTERFACE
  13267 
  13268     /*** IUnknown methods ***/
  13269     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13270         IShellLinkDataList *This,
  13271         REFIID riid,
  13272         void **ppvObject);
  13273 
  13274     ULONG (STDMETHODCALLTYPE *AddRef)(
  13275         IShellLinkDataList *This);
  13276 
  13277     ULONG (STDMETHODCALLTYPE *Release)(
  13278         IShellLinkDataList *This);
  13279 
  13280     /*** IShellLinkDataList methods ***/
  13281     HRESULT (STDMETHODCALLTYPE *AddDataBlock)(
  13282         IShellLinkDataList *This,
  13283         void *pDataBlock);
  13284 
  13285     HRESULT (STDMETHODCALLTYPE *CopyDataBlock)(
  13286         IShellLinkDataList *This,
  13287         DWORD dwSig,
  13288         void **ppDataBlock);
  13289 
  13290     HRESULT (STDMETHODCALLTYPE *RemoveDataBlock)(
  13291         IShellLinkDataList *This,
  13292         DWORD dwSig);
  13293 
  13294     HRESULT (STDMETHODCALLTYPE *GetFlags)(
  13295         IShellLinkDataList *This,
  13296         DWORD *pdwFlags);
  13297 
  13298     HRESULT (STDMETHODCALLTYPE *SetFlags)(
  13299         IShellLinkDataList *This,
  13300         DWORD dwFlags);
  13301 
  13302     END_INTERFACE
  13303 } IShellLinkDataListVtbl;
  13304 
  13305 interface IShellLinkDataList {
  13306     CONST_VTBL IShellLinkDataListVtbl* lpVtbl;
  13307 };
  13308 
  13309 #ifdef COBJMACROS
  13310 #ifndef WIDL_C_INLINE_WRAPPERS
  13311 /*** IUnknown methods ***/
  13312 #define IShellLinkDataList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13313 #define IShellLinkDataList_AddRef(This) (This)->lpVtbl->AddRef(This)
  13314 #define IShellLinkDataList_Release(This) (This)->lpVtbl->Release(This)
  13315 /*** IShellLinkDataList methods ***/
  13316 #define IShellLinkDataList_AddDataBlock(This,pDataBlock) (This)->lpVtbl->AddDataBlock(This,pDataBlock)
  13317 #define IShellLinkDataList_CopyDataBlock(This,dwSig,ppDataBlock) (This)->lpVtbl->CopyDataBlock(This,dwSig,ppDataBlock)
  13318 #define IShellLinkDataList_RemoveDataBlock(This,dwSig) (This)->lpVtbl->RemoveDataBlock(This,dwSig)
  13319 #define IShellLinkDataList_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
  13320 #define IShellLinkDataList_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
  13321 #else
  13322 /*** IUnknown methods ***/
  13323 static inline HRESULT IShellLinkDataList_QueryInterface(IShellLinkDataList* This,REFIID riid,void **ppvObject) {
  13324     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13325 }
  13326 static inline ULONG IShellLinkDataList_AddRef(IShellLinkDataList* This) {
  13327     return This->lpVtbl->AddRef(This);
  13328 }
  13329 static inline ULONG IShellLinkDataList_Release(IShellLinkDataList* This) {
  13330     return This->lpVtbl->Release(This);
  13331 }
  13332 /*** IShellLinkDataList methods ***/
  13333 static inline HRESULT IShellLinkDataList_AddDataBlock(IShellLinkDataList* This,void *pDataBlock) {
  13334     return This->lpVtbl->AddDataBlock(This,pDataBlock);
  13335 }
  13336 static inline HRESULT IShellLinkDataList_CopyDataBlock(IShellLinkDataList* This,DWORD dwSig,void **ppDataBlock) {
  13337     return This->lpVtbl->CopyDataBlock(This,dwSig,ppDataBlock);
  13338 }
  13339 static inline HRESULT IShellLinkDataList_RemoveDataBlock(IShellLinkDataList* This,DWORD dwSig) {
  13340     return This->lpVtbl->RemoveDataBlock(This,dwSig);
  13341 }
  13342 static inline HRESULT IShellLinkDataList_GetFlags(IShellLinkDataList* This,DWORD *pdwFlags) {
  13343     return This->lpVtbl->GetFlags(This,pdwFlags);
  13344 }
  13345 static inline HRESULT IShellLinkDataList_SetFlags(IShellLinkDataList* This,DWORD dwFlags) {
  13346     return This->lpVtbl->SetFlags(This,dwFlags);
  13347 }
  13348 #endif
  13349 #endif
  13350 
  13351 #endif
  13352 
  13353 
  13354 #endif  /* __IShellLinkDataList_INTERFACE_DEFINED__ */
  13355 
  13356 
  13357 /*****************************************************************************
  13358  * IResolveShellLink interface
  13359  */
  13360 #ifndef __IResolveShellLink_INTERFACE_DEFINED__
  13361 #define __IResolveShellLink_INTERFACE_DEFINED__
  13362 
  13363 DEFINE_GUID(IID_IResolveShellLink, 0x5cd52983, 0x9449, 0x11d2, 0x96,0x3a, 0x00,0xc0,0x4f,0x79,0xad,0xf0);
  13364 #if defined(__cplusplus) && !defined(CINTERFACE)
  13365 MIDL_INTERFACE("5cd52983-9449-11d2-963a-00c04f79adf0")
  13366 IResolveShellLink : public IUnknown
  13367 {
  13368     virtual HRESULT STDMETHODCALLTYPE ResolveShellLink(
  13369         IUnknown *punkLink,
  13370         HWND hwnd,
  13371         DWORD fFlags) = 0;
  13372 
  13373 };
  13374 #ifdef __CRT_UUID_DECL
  13375 __CRT_UUID_DECL(IResolveShellLink, 0x5cd52983, 0x9449, 0x11d2, 0x96,0x3a, 0x00,0xc0,0x4f,0x79,0xad,0xf0)
  13376 #endif
  13377 #else
  13378 typedef struct IResolveShellLinkVtbl {
  13379     BEGIN_INTERFACE
  13380 
  13381     /*** IUnknown methods ***/
  13382     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13383         IResolveShellLink *This,
  13384         REFIID riid,
  13385         void **ppvObject);
  13386 
  13387     ULONG (STDMETHODCALLTYPE *AddRef)(
  13388         IResolveShellLink *This);
  13389 
  13390     ULONG (STDMETHODCALLTYPE *Release)(
  13391         IResolveShellLink *This);
  13392 
  13393     /*** IResolveShellLink methods ***/
  13394     HRESULT (STDMETHODCALLTYPE *ResolveShellLink)(
  13395         IResolveShellLink *This,
  13396         IUnknown *punkLink,
  13397         HWND hwnd,
  13398         DWORD fFlags);
  13399 
  13400     END_INTERFACE
  13401 } IResolveShellLinkVtbl;
  13402 
  13403 interface IResolveShellLink {
  13404     CONST_VTBL IResolveShellLinkVtbl* lpVtbl;
  13405 };
  13406 
  13407 #ifdef COBJMACROS
  13408 #ifndef WIDL_C_INLINE_WRAPPERS
  13409 /*** IUnknown methods ***/
  13410 #define IResolveShellLink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13411 #define IResolveShellLink_AddRef(This) (This)->lpVtbl->AddRef(This)
  13412 #define IResolveShellLink_Release(This) (This)->lpVtbl->Release(This)
  13413 /*** IResolveShellLink methods ***/
  13414 #define IResolveShellLink_ResolveShellLink(This,punkLink,hwnd,fFlags) (This)->lpVtbl->ResolveShellLink(This,punkLink,hwnd,fFlags)
  13415 #else
  13416 /*** IUnknown methods ***/
  13417 static inline HRESULT IResolveShellLink_QueryInterface(IResolveShellLink* This,REFIID riid,void **ppvObject) {
  13418     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13419 }
  13420 static inline ULONG IResolveShellLink_AddRef(IResolveShellLink* This) {
  13421     return This->lpVtbl->AddRef(This);
  13422 }
  13423 static inline ULONG IResolveShellLink_Release(IResolveShellLink* This) {
  13424     return This->lpVtbl->Release(This);
  13425 }
  13426 /*** IResolveShellLink methods ***/
  13427 static inline HRESULT IResolveShellLink_ResolveShellLink(IResolveShellLink* This,IUnknown *punkLink,HWND hwnd,DWORD fFlags) {
  13428     return This->lpVtbl->ResolveShellLink(This,punkLink,hwnd,fFlags);
  13429 }
  13430 #endif
  13431 #endif
  13432 
  13433 #endif
  13434 
  13435 
  13436 #endif  /* __IResolveShellLink_INTERFACE_DEFINED__ */
  13437 
  13438 
  13439 /*****************************************************************************
  13440  * IActionProgressDialog interface
  13441  */
  13442 #ifndef __IActionProgressDialog_INTERFACE_DEFINED__
  13443 #define __IActionProgressDialog_INTERFACE_DEFINED__
  13444 
  13445 enum _SPINITF {
  13446     SPINITF_NORMAL = 0x0,
  13447     SPINITF_MODAL = 0x1,
  13448     SPINITF_NOMINIMIZE = 0x8
  13449 };
  13450 
  13451 typedef DWORD SPINITF;
  13452 
  13453 DEFINE_GUID(IID_IActionProgressDialog, 0x49ff1172, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c);
  13454 #if defined(__cplusplus) && !defined(CINTERFACE)
  13455 MIDL_INTERFACE("49ff1172-eadc-446d-9285-156453a6431c")
  13456 IActionProgressDialog : public IUnknown
  13457 {
  13458     virtual HRESULT STDMETHODCALLTYPE Initialize(
  13459         SPINITF flags,
  13460         LPCWSTR pszTitle,
  13461         LPCWSTR pszCancel) = 0;
  13462 
  13463     virtual HRESULT STDMETHODCALLTYPE Stop(
  13464         ) = 0;
  13465 
  13466 };
  13467 #ifdef __CRT_UUID_DECL
  13468 __CRT_UUID_DECL(IActionProgressDialog, 0x49ff1172, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c)
  13469 #endif
  13470 #else
  13471 typedef struct IActionProgressDialogVtbl {
  13472     BEGIN_INTERFACE
  13473 
  13474     /*** IUnknown methods ***/
  13475     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13476         IActionProgressDialog *This,
  13477         REFIID riid,
  13478         void **ppvObject);
  13479 
  13480     ULONG (STDMETHODCALLTYPE *AddRef)(
  13481         IActionProgressDialog *This);
  13482 
  13483     ULONG (STDMETHODCALLTYPE *Release)(
  13484         IActionProgressDialog *This);
  13485 
  13486     /*** IActionProgressDialog methods ***/
  13487     HRESULT (STDMETHODCALLTYPE *Initialize)(
  13488         IActionProgressDialog *This,
  13489         SPINITF flags,
  13490         LPCWSTR pszTitle,
  13491         LPCWSTR pszCancel);
  13492 
  13493     HRESULT (STDMETHODCALLTYPE *Stop)(
  13494         IActionProgressDialog *This);
  13495 
  13496     END_INTERFACE
  13497 } IActionProgressDialogVtbl;
  13498 
  13499 interface IActionProgressDialog {
  13500     CONST_VTBL IActionProgressDialogVtbl* lpVtbl;
  13501 };
  13502 
  13503 #ifdef COBJMACROS
  13504 #ifndef WIDL_C_INLINE_WRAPPERS
  13505 /*** IUnknown methods ***/
  13506 #define IActionProgressDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13507 #define IActionProgressDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
  13508 #define IActionProgressDialog_Release(This) (This)->lpVtbl->Release(This)
  13509 /*** IActionProgressDialog methods ***/
  13510 #define IActionProgressDialog_Initialize(This,flags,pszTitle,pszCancel) (This)->lpVtbl->Initialize(This,flags,pszTitle,pszCancel)
  13511 #define IActionProgressDialog_Stop(This) (This)->lpVtbl->Stop(This)
  13512 #else
  13513 /*** IUnknown methods ***/
  13514 static inline HRESULT IActionProgressDialog_QueryInterface(IActionProgressDialog* This,REFIID riid,void **ppvObject) {
  13515     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13516 }
  13517 static inline ULONG IActionProgressDialog_AddRef(IActionProgressDialog* This) {
  13518     return This->lpVtbl->AddRef(This);
  13519 }
  13520 static inline ULONG IActionProgressDialog_Release(IActionProgressDialog* This) {
  13521     return This->lpVtbl->Release(This);
  13522 }
  13523 /*** IActionProgressDialog methods ***/
  13524 static inline HRESULT IActionProgressDialog_Initialize(IActionProgressDialog* This,SPINITF flags,LPCWSTR pszTitle,LPCWSTR pszCancel) {
  13525     return This->lpVtbl->Initialize(This,flags,pszTitle,pszCancel);
  13526 }
  13527 static inline HRESULT IActionProgressDialog_Stop(IActionProgressDialog* This) {
  13528     return This->lpVtbl->Stop(This);
  13529 }
  13530 #endif
  13531 #endif
  13532 
  13533 #endif
  13534 
  13535 
  13536 #endif  /* __IActionProgressDialog_INTERFACE_DEFINED__ */
  13537 
  13538 
  13539 /*****************************************************************************
  13540  * IHWEventHandler interface
  13541  */
  13542 #ifndef __IHWEventHandler_INTERFACE_DEFINED__
  13543 #define __IHWEventHandler_INTERFACE_DEFINED__
  13544 
  13545 DEFINE_GUID(IID_IHWEventHandler, 0xc1fb73d0, 0xec3a, 0x4ba2, 0xb5,0x12, 0x8c,0xdb,0x91,0x87,0xb6,0xd1);
  13546 #if defined(__cplusplus) && !defined(CINTERFACE)
  13547 MIDL_INTERFACE("c1fb73d0-ec3a-4ba2-b512-8cdb9187b6d1")
  13548 IHWEventHandler : public IUnknown
  13549 {
  13550     virtual HRESULT STDMETHODCALLTYPE Initialize(
  13551         LPCWSTR pszParams) = 0;
  13552 
  13553     virtual HRESULT STDMETHODCALLTYPE HandleEvent(
  13554         LPCWSTR pszDeviceID,
  13555         LPCWSTR pszAltDeviceID,
  13556         LPCWSTR pszEventType) = 0;
  13557 
  13558     virtual HRESULT STDMETHODCALLTYPE HandleEventWithContent(
  13559         LPCWSTR pszDeviceID,
  13560         LPCWSTR pszAltDeviceID,
  13561         LPCWSTR pszEventType,
  13562         LPCWSTR pszContentTypeHandler,
  13563         IDataObject *pdataobject) = 0;
  13564 
  13565 };
  13566 #ifdef __CRT_UUID_DECL
  13567 __CRT_UUID_DECL(IHWEventHandler, 0xc1fb73d0, 0xec3a, 0x4ba2, 0xb5,0x12, 0x8c,0xdb,0x91,0x87,0xb6,0xd1)
  13568 #endif
  13569 #else
  13570 typedef struct IHWEventHandlerVtbl {
  13571     BEGIN_INTERFACE
  13572 
  13573     /*** IUnknown methods ***/
  13574     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13575         IHWEventHandler *This,
  13576         REFIID riid,
  13577         void **ppvObject);
  13578 
  13579     ULONG (STDMETHODCALLTYPE *AddRef)(
  13580         IHWEventHandler *This);
  13581 
  13582     ULONG (STDMETHODCALLTYPE *Release)(
  13583         IHWEventHandler *This);
  13584 
  13585     /*** IHWEventHandler methods ***/
  13586     HRESULT (STDMETHODCALLTYPE *Initialize)(
  13587         IHWEventHandler *This,
  13588         LPCWSTR pszParams);
  13589 
  13590     HRESULT (STDMETHODCALLTYPE *HandleEvent)(
  13591         IHWEventHandler *This,
  13592         LPCWSTR pszDeviceID,
  13593         LPCWSTR pszAltDeviceID,
  13594         LPCWSTR pszEventType);
  13595 
  13596     HRESULT (STDMETHODCALLTYPE *HandleEventWithContent)(
  13597         IHWEventHandler *This,
  13598         LPCWSTR pszDeviceID,
  13599         LPCWSTR pszAltDeviceID,
  13600         LPCWSTR pszEventType,
  13601         LPCWSTR pszContentTypeHandler,
  13602         IDataObject *pdataobject);
  13603 
  13604     END_INTERFACE
  13605 } IHWEventHandlerVtbl;
  13606 
  13607 interface IHWEventHandler {
  13608     CONST_VTBL IHWEventHandlerVtbl* lpVtbl;
  13609 };
  13610 
  13611 #ifdef COBJMACROS
  13612 #ifndef WIDL_C_INLINE_WRAPPERS
  13613 /*** IUnknown methods ***/
  13614 #define IHWEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13615 #define IHWEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
  13616 #define IHWEventHandler_Release(This) (This)->lpVtbl->Release(This)
  13617 /*** IHWEventHandler methods ***/
  13618 #define IHWEventHandler_Initialize(This,pszParams) (This)->lpVtbl->Initialize(This,pszParams)
  13619 #define IHWEventHandler_HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType) (This)->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType)
  13620 #define IHWEventHandler_HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject) (This)->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject)
  13621 #else
  13622 /*** IUnknown methods ***/
  13623 static inline HRESULT IHWEventHandler_QueryInterface(IHWEventHandler* This,REFIID riid,void **ppvObject) {
  13624     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13625 }
  13626 static inline ULONG IHWEventHandler_AddRef(IHWEventHandler* This) {
  13627     return This->lpVtbl->AddRef(This);
  13628 }
  13629 static inline ULONG IHWEventHandler_Release(IHWEventHandler* This) {
  13630     return This->lpVtbl->Release(This);
  13631 }
  13632 /*** IHWEventHandler methods ***/
  13633 static inline HRESULT IHWEventHandler_Initialize(IHWEventHandler* This,LPCWSTR pszParams) {
  13634     return This->lpVtbl->Initialize(This,pszParams);
  13635 }
  13636 static inline HRESULT IHWEventHandler_HandleEvent(IHWEventHandler* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType) {
  13637     return This->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType);
  13638 }
  13639 static inline HRESULT IHWEventHandler_HandleEventWithContent(IHWEventHandler* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,LPCWSTR pszContentTypeHandler,IDataObject *pdataobject) {
  13640     return This->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject);
  13641 }
  13642 #endif
  13643 #endif
  13644 
  13645 #endif
  13646 
  13647 
  13648 #endif  /* __IHWEventHandler_INTERFACE_DEFINED__ */
  13649 
  13650 
  13651 /*****************************************************************************
  13652  * IHWEventHandler2 interface
  13653  */
  13654 #ifndef __IHWEventHandler2_INTERFACE_DEFINED__
  13655 #define __IHWEventHandler2_INTERFACE_DEFINED__
  13656 
  13657 DEFINE_GUID(IID_IHWEventHandler2, 0xcfcc809f, 0x295d, 0x42e8, 0x9f,0xfc, 0x42,0x4b,0x33,0xc4,0x87,0xe6);
  13658 #if defined(__cplusplus) && !defined(CINTERFACE)
  13659 MIDL_INTERFACE("cfcc809f-295d-42e8-9ffc-424b33c487e6")
  13660 IHWEventHandler2 : public IHWEventHandler
  13661 {
  13662     virtual HRESULT STDMETHODCALLTYPE HandleEventWithHWND(
  13663         LPCWSTR pszDeviceID,
  13664         LPCWSTR pszAltDeviceID,
  13665         LPCWSTR pszEventType,
  13666         HWND hwndOwner) = 0;
  13667 
  13668 };
  13669 #ifdef __CRT_UUID_DECL
  13670 __CRT_UUID_DECL(IHWEventHandler2, 0xcfcc809f, 0x295d, 0x42e8, 0x9f,0xfc, 0x42,0x4b,0x33,0xc4,0x87,0xe6)
  13671 #endif
  13672 #else
  13673 typedef struct IHWEventHandler2Vtbl {
  13674     BEGIN_INTERFACE
  13675 
  13676     /*** IUnknown methods ***/
  13677     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13678         IHWEventHandler2 *This,
  13679         REFIID riid,
  13680         void **ppvObject);
  13681 
  13682     ULONG (STDMETHODCALLTYPE *AddRef)(
  13683         IHWEventHandler2 *This);
  13684 
  13685     ULONG (STDMETHODCALLTYPE *Release)(
  13686         IHWEventHandler2 *This);
  13687 
  13688     /*** IHWEventHandler methods ***/
  13689     HRESULT (STDMETHODCALLTYPE *Initialize)(
  13690         IHWEventHandler2 *This,
  13691         LPCWSTR pszParams);
  13692 
  13693     HRESULT (STDMETHODCALLTYPE *HandleEvent)(
  13694         IHWEventHandler2 *This,
  13695         LPCWSTR pszDeviceID,
  13696         LPCWSTR pszAltDeviceID,
  13697         LPCWSTR pszEventType);
  13698 
  13699     HRESULT (STDMETHODCALLTYPE *HandleEventWithContent)(
  13700         IHWEventHandler2 *This,
  13701         LPCWSTR pszDeviceID,
  13702         LPCWSTR pszAltDeviceID,
  13703         LPCWSTR pszEventType,
  13704         LPCWSTR pszContentTypeHandler,
  13705         IDataObject *pdataobject);
  13706 
  13707     /*** IHWEventHandler2 methods ***/
  13708     HRESULT (STDMETHODCALLTYPE *HandleEventWithHWND)(
  13709         IHWEventHandler2 *This,
  13710         LPCWSTR pszDeviceID,
  13711         LPCWSTR pszAltDeviceID,
  13712         LPCWSTR pszEventType,
  13713         HWND hwndOwner);
  13714 
  13715     END_INTERFACE
  13716 } IHWEventHandler2Vtbl;
  13717 
  13718 interface IHWEventHandler2 {
  13719     CONST_VTBL IHWEventHandler2Vtbl* lpVtbl;
  13720 };
  13721 
  13722 #ifdef COBJMACROS
  13723 #ifndef WIDL_C_INLINE_WRAPPERS
  13724 /*** IUnknown methods ***/
  13725 #define IHWEventHandler2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13726 #define IHWEventHandler2_AddRef(This) (This)->lpVtbl->AddRef(This)
  13727 #define IHWEventHandler2_Release(This) (This)->lpVtbl->Release(This)
  13728 /*** IHWEventHandler methods ***/
  13729 #define IHWEventHandler2_Initialize(This,pszParams) (This)->lpVtbl->Initialize(This,pszParams)
  13730 #define IHWEventHandler2_HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType) (This)->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType)
  13731 #define IHWEventHandler2_HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject) (This)->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject)
  13732 /*** IHWEventHandler2 methods ***/
  13733 #define IHWEventHandler2_HandleEventWithHWND(This,pszDeviceID,pszAltDeviceID,pszEventType,hwndOwner) (This)->lpVtbl->HandleEventWithHWND(This,pszDeviceID,pszAltDeviceID,pszEventType,hwndOwner)
  13734 #else
  13735 /*** IUnknown methods ***/
  13736 static inline HRESULT IHWEventHandler2_QueryInterface(IHWEventHandler2* This,REFIID riid,void **ppvObject) {
  13737     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13738 }
  13739 static inline ULONG IHWEventHandler2_AddRef(IHWEventHandler2* This) {
  13740     return This->lpVtbl->AddRef(This);
  13741 }
  13742 static inline ULONG IHWEventHandler2_Release(IHWEventHandler2* This) {
  13743     return This->lpVtbl->Release(This);
  13744 }
  13745 /*** IHWEventHandler methods ***/
  13746 static inline HRESULT IHWEventHandler2_Initialize(IHWEventHandler2* This,LPCWSTR pszParams) {
  13747     return This->lpVtbl->Initialize(This,pszParams);
  13748 }
  13749 static inline HRESULT IHWEventHandler2_HandleEvent(IHWEventHandler2* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType) {
  13750     return This->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType);
  13751 }
  13752 static inline HRESULT IHWEventHandler2_HandleEventWithContent(IHWEventHandler2* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,LPCWSTR pszContentTypeHandler,IDataObject *pdataobject) {
  13753     return This->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject);
  13754 }
  13755 /*** IHWEventHandler2 methods ***/
  13756 static inline HRESULT IHWEventHandler2_HandleEventWithHWND(IHWEventHandler2* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,HWND hwndOwner) {
  13757     return This->lpVtbl->HandleEventWithHWND(This,pszDeviceID,pszAltDeviceID,pszEventType,hwndOwner);
  13758 }
  13759 #endif
  13760 #endif
  13761 
  13762 #endif
  13763 
  13764 
  13765 #endif  /* __IHWEventHandler2_INTERFACE_DEFINED__ */
  13766 
  13767 
  13768 #define ARCONTENT_AUTORUNINF 0x00000002
  13769 #define ARCONTENT_AUDIOCD 0x00000004
  13770 #define ARCONTENT_DVDMOVIE 0x00000008
  13771 #define ARCONTENT_BLANKCD 0x00000010
  13772 #define ARCONTENT_BLANKDVD 0x00000020
  13773 #define ARCONTENT_UNKNOWNCONTENT 0x00000040
  13774 #define ARCONTENT_AUTOPLAYPIX 0x00000080
  13775 #define ARCONTENT_AUTOPLAYMUSIC 0x00000100
  13776 #define ARCONTENT_AUTOPLAYVIDEO 0x00000200
  13777 
  13778 #if NTDDI_VERSION >= NTDDI_VISTA
  13779 #define ARCONTENT_VCD 0x00000400
  13780 #define ARCONTENT_SVCD 0x00000800
  13781 #define ARCONTENT_DVDAUDIO 0x00001000
  13782 #define ARCONTENT_BLANKBD 0x00002000
  13783 #define ARCONTENT_BLURAY 0x00004000
  13784 #define ARCONTENT_CAMERASTORAGE 0x00008000
  13785 #define ARCONTENT_CUSTOMEVENT 0x00010000
  13786 #define ARCONTENT_NONE 0x00000000
  13787 #define ARCONTENT_MASK 0x0001FFFE
  13788 
  13789 #define ARCONTENT_PHASE_UNKNOWN 0x00000000
  13790 #define ARCONTENT_PHASE_PRESNIFF 0x10000000
  13791 #define ARCONTENT_PHASE_SNIFFING 0x20000000
  13792 #define ARCONTENT_PHASE_FINAL 0x40000000
  13793 #define ARCONTENT_PHASE_MASK 0x70000000
  13794 #endif
  13795 
  13796 /*****************************************************************************
  13797  * IQueryCancelAutoPlay interface
  13798  */
  13799 #ifndef __IQueryCancelAutoPlay_INTERFACE_DEFINED__
  13800 #define __IQueryCancelAutoPlay_INTERFACE_DEFINED__
  13801 
  13802 DEFINE_GUID(IID_IQueryCancelAutoPlay, 0xddefe873, 0x6997, 0x4e68, 0xbe,0x26, 0x39,0xb6,0x33,0xad,0xbe,0x12);
  13803 #if defined(__cplusplus) && !defined(CINTERFACE)
  13804 MIDL_INTERFACE("ddefe873-6997-4e68-be26-39b633adbe12")
  13805 IQueryCancelAutoPlay : public IUnknown
  13806 {
  13807     virtual HRESULT STDMETHODCALLTYPE AllowAutoPlay(
  13808         LPCWSTR pszPath,
  13809         DWORD dwContentType,
  13810         LPCWSTR pszLabel,
  13811         DWORD dwSerialNumber) = 0;
  13812 
  13813 };
  13814 #ifdef __CRT_UUID_DECL
  13815 __CRT_UUID_DECL(IQueryCancelAutoPlay, 0xddefe873, 0x6997, 0x4e68, 0xbe,0x26, 0x39,0xb6,0x33,0xad,0xbe,0x12)
  13816 #endif
  13817 #else
  13818 typedef struct IQueryCancelAutoPlayVtbl {
  13819     BEGIN_INTERFACE
  13820 
  13821     /*** IUnknown methods ***/
  13822     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13823         IQueryCancelAutoPlay *This,
  13824         REFIID riid,
  13825         void **ppvObject);
  13826 
  13827     ULONG (STDMETHODCALLTYPE *AddRef)(
  13828         IQueryCancelAutoPlay *This);
  13829 
  13830     ULONG (STDMETHODCALLTYPE *Release)(
  13831         IQueryCancelAutoPlay *This);
  13832 
  13833     /*** IQueryCancelAutoPlay methods ***/
  13834     HRESULT (STDMETHODCALLTYPE *AllowAutoPlay)(
  13835         IQueryCancelAutoPlay *This,
  13836         LPCWSTR pszPath,
  13837         DWORD dwContentType,
  13838         LPCWSTR pszLabel,
  13839         DWORD dwSerialNumber);
  13840 
  13841     END_INTERFACE
  13842 } IQueryCancelAutoPlayVtbl;
  13843 
  13844 interface IQueryCancelAutoPlay {
  13845     CONST_VTBL IQueryCancelAutoPlayVtbl* lpVtbl;
  13846 };
  13847 
  13848 #ifdef COBJMACROS
  13849 #ifndef WIDL_C_INLINE_WRAPPERS
  13850 /*** IUnknown methods ***/
  13851 #define IQueryCancelAutoPlay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13852 #define IQueryCancelAutoPlay_AddRef(This) (This)->lpVtbl->AddRef(This)
  13853 #define IQueryCancelAutoPlay_Release(This) (This)->lpVtbl->Release(This)
  13854 /*** IQueryCancelAutoPlay methods ***/
  13855 #define IQueryCancelAutoPlay_AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber) (This)->lpVtbl->AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber)
  13856 #else
  13857 /*** IUnknown methods ***/
  13858 static inline HRESULT IQueryCancelAutoPlay_QueryInterface(IQueryCancelAutoPlay* This,REFIID riid,void **ppvObject) {
  13859     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13860 }
  13861 static inline ULONG IQueryCancelAutoPlay_AddRef(IQueryCancelAutoPlay* This) {
  13862     return This->lpVtbl->AddRef(This);
  13863 }
  13864 static inline ULONG IQueryCancelAutoPlay_Release(IQueryCancelAutoPlay* This) {
  13865     return This->lpVtbl->Release(This);
  13866 }
  13867 /*** IQueryCancelAutoPlay methods ***/
  13868 static inline HRESULT IQueryCancelAutoPlay_AllowAutoPlay(IQueryCancelAutoPlay* This,LPCWSTR pszPath,DWORD dwContentType,LPCWSTR pszLabel,DWORD dwSerialNumber) {
  13869     return This->lpVtbl->AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber);
  13870 }
  13871 #endif
  13872 #endif
  13873 
  13874 #endif
  13875 
  13876 
  13877 #endif  /* __IQueryCancelAutoPlay_INTERFACE_DEFINED__ */
  13878 
  13879 
  13880 #if NTDDI_VERSION >= NTDDI_VISTA
  13881 /*****************************************************************************
  13882  * IDynamicHWHandler interface
  13883  */
  13884 #ifndef __IDynamicHWHandler_INTERFACE_DEFINED__
  13885 #define __IDynamicHWHandler_INTERFACE_DEFINED__
  13886 
  13887 DEFINE_GUID(IID_IDynamicHWHandler, 0xdc2601d7, 0x059e, 0x42fc, 0xa0,0x9d, 0x2a,0xfd,0x21,0xb6,0xd5,0xf7);
  13888 #if defined(__cplusplus) && !defined(CINTERFACE)
  13889 MIDL_INTERFACE("dc2601d7-059e-42fc-a09d-2afd21b6d5f7")
  13890 IDynamicHWHandler : public IUnknown
  13891 {
  13892     virtual HRESULT STDMETHODCALLTYPE GetDynamicInfo(
  13893         LPCWSTR pszDeviceID,
  13894         DWORD dwContentType,
  13895         LPWSTR *ppszAction) = 0;
  13896 
  13897 };
  13898 #ifdef __CRT_UUID_DECL
  13899 __CRT_UUID_DECL(IDynamicHWHandler, 0xdc2601d7, 0x059e, 0x42fc, 0xa0,0x9d, 0x2a,0xfd,0x21,0xb6,0xd5,0xf7)
  13900 #endif
  13901 #else
  13902 typedef struct IDynamicHWHandlerVtbl {
  13903     BEGIN_INTERFACE
  13904 
  13905     /*** IUnknown methods ***/
  13906     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  13907         IDynamicHWHandler *This,
  13908         REFIID riid,
  13909         void **ppvObject);
  13910 
  13911     ULONG (STDMETHODCALLTYPE *AddRef)(
  13912         IDynamicHWHandler *This);
  13913 
  13914     ULONG (STDMETHODCALLTYPE *Release)(
  13915         IDynamicHWHandler *This);
  13916 
  13917     /*** IDynamicHWHandler methods ***/
  13918     HRESULT (STDMETHODCALLTYPE *GetDynamicInfo)(
  13919         IDynamicHWHandler *This,
  13920         LPCWSTR pszDeviceID,
  13921         DWORD dwContentType,
  13922         LPWSTR *ppszAction);
  13923 
  13924     END_INTERFACE
  13925 } IDynamicHWHandlerVtbl;
  13926 
  13927 interface IDynamicHWHandler {
  13928     CONST_VTBL IDynamicHWHandlerVtbl* lpVtbl;
  13929 };
  13930 
  13931 #ifdef COBJMACROS
  13932 #ifndef WIDL_C_INLINE_WRAPPERS
  13933 /*** IUnknown methods ***/
  13934 #define IDynamicHWHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  13935 #define IDynamicHWHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
  13936 #define IDynamicHWHandler_Release(This) (This)->lpVtbl->Release(This)
  13937 /*** IDynamicHWHandler methods ***/
  13938 #define IDynamicHWHandler_GetDynamicInfo(This,pszDeviceID,dwContentType,ppszAction) (This)->lpVtbl->GetDynamicInfo(This,pszDeviceID,dwContentType,ppszAction)
  13939 #else
  13940 /*** IUnknown methods ***/
  13941 static inline HRESULT IDynamicHWHandler_QueryInterface(IDynamicHWHandler* This,REFIID riid,void **ppvObject) {
  13942     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  13943 }
  13944 static inline ULONG IDynamicHWHandler_AddRef(IDynamicHWHandler* This) {
  13945     return This->lpVtbl->AddRef(This);
  13946 }
  13947 static inline ULONG IDynamicHWHandler_Release(IDynamicHWHandler* This) {
  13948     return This->lpVtbl->Release(This);
  13949 }
  13950 /*** IDynamicHWHandler methods ***/
  13951 static inline HRESULT IDynamicHWHandler_GetDynamicInfo(IDynamicHWHandler* This,LPCWSTR pszDeviceID,DWORD dwContentType,LPWSTR *ppszAction) {
  13952     return This->lpVtbl->GetDynamicInfo(This,pszDeviceID,dwContentType,ppszAction);
  13953 }
  13954 #endif
  13955 #endif
  13956 
  13957 #endif
  13958 
  13959 
  13960 #endif  /* __IDynamicHWHandler_INTERFACE_DEFINED__ */
  13961 
  13962 #endif
  13963 
  13964 /*****************************************************************************
  13965  * IActionProgress interface
  13966  */
  13967 #ifndef __IActionProgress_INTERFACE_DEFINED__
  13968 #define __IActionProgress_INTERFACE_DEFINED__
  13969 
  13970 enum _SPBEGINF {
  13971     SPBEGINF_NORMAL = 0x0,
  13972     SPBEGINF_AUTOTIME = 0x2,
  13973     SPBEGINF_NOPROGRESSBAR = 0x10,
  13974     SPBEGINF_MARQUEEPROGRESS = 0x20,
  13975     SPBEGINF_NOCANCELBUTTON = 0x40
  13976 };
  13977 
  13978 typedef DWORD SPBEGINF;
  13979 
  13980 typedef enum _SPACTION {
  13981     SPACTION_NONE = 0,
  13982     SPACTION_MOVING = 1,
  13983     SPACTION_COPYING = 2,
  13984     SPACTION_RECYCLING = 3,
  13985     SPACTION_APPLYINGATTRIBS = 4,
  13986     SPACTION_DOWNLOADING = 5,
  13987     SPACTION_SEARCHING_INTERNET = 6,
  13988     SPACTION_CALCULATING = 7,
  13989     SPACTION_UPLOADING = 8,
  13990     SPACTION_SEARCHING_FILES = 9,
  13991     SPACTION_DELETING = 10,
  13992     SPACTION_RENAMING = 11,
  13993     SPACTION_FORMATTING = 12,
  13994     SPACTION_COPY_MOVING = 13
  13995 } SPACTION;
  13996 
  13997 typedef enum _SPTEXT {
  13998     SPTEXT_ACTIONDESCRIPTION = 1,
  13999     SPTEXT_ACTIONDETAIL = 2
  14000 } SPTEXT;
  14001 
  14002 DEFINE_GUID(IID_IActionProgress, 0x49ff1173, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c);
  14003 #if defined(__cplusplus) && !defined(CINTERFACE)
  14004 MIDL_INTERFACE("49ff1173-eadc-446d-9285-156453a6431c")
  14005 IActionProgress : public IUnknown
  14006 {
  14007     virtual HRESULT STDMETHODCALLTYPE Begin(
  14008         SPACTION action,
  14009         SPBEGINF flags) = 0;
  14010 
  14011     virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
  14012         ULONGLONG ulCompleted,
  14013         ULONGLONG ulTotal) = 0;
  14014 
  14015     virtual HRESULT STDMETHODCALLTYPE UpdateText(
  14016         SPTEXT sptext,
  14017         LPCWSTR pszText,
  14018         WINBOOL fMayCompact) = 0;
  14019 
  14020     virtual HRESULT STDMETHODCALLTYPE QueryCancel(
  14021         WINBOOL *pfCancelled) = 0;
  14022 
  14023     virtual HRESULT STDMETHODCALLTYPE ResetCancel(
  14024         ) = 0;
  14025 
  14026     virtual HRESULT STDMETHODCALLTYPE End(
  14027         ) = 0;
  14028 
  14029 };
  14030 #ifdef __CRT_UUID_DECL
  14031 __CRT_UUID_DECL(IActionProgress, 0x49ff1173, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c)
  14032 #endif
  14033 #else
  14034 typedef struct IActionProgressVtbl {
  14035     BEGIN_INTERFACE
  14036 
  14037     /*** IUnknown methods ***/
  14038     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14039         IActionProgress *This,
  14040         REFIID riid,
  14041         void **ppvObject);
  14042 
  14043     ULONG (STDMETHODCALLTYPE *AddRef)(
  14044         IActionProgress *This);
  14045 
  14046     ULONG (STDMETHODCALLTYPE *Release)(
  14047         IActionProgress *This);
  14048 
  14049     /*** IActionProgress methods ***/
  14050     HRESULT (STDMETHODCALLTYPE *Begin)(
  14051         IActionProgress *This,
  14052         SPACTION action,
  14053         SPBEGINF flags);
  14054 
  14055     HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
  14056         IActionProgress *This,
  14057         ULONGLONG ulCompleted,
  14058         ULONGLONG ulTotal);
  14059 
  14060     HRESULT (STDMETHODCALLTYPE *UpdateText)(
  14061         IActionProgress *This,
  14062         SPTEXT sptext,
  14063         LPCWSTR pszText,
  14064         WINBOOL fMayCompact);
  14065 
  14066     HRESULT (STDMETHODCALLTYPE *QueryCancel)(
  14067         IActionProgress *This,
  14068         WINBOOL *pfCancelled);
  14069 
  14070     HRESULT (STDMETHODCALLTYPE *ResetCancel)(
  14071         IActionProgress *This);
  14072 
  14073     HRESULT (STDMETHODCALLTYPE *End)(
  14074         IActionProgress *This);
  14075 
  14076     END_INTERFACE
  14077 } IActionProgressVtbl;
  14078 
  14079 interface IActionProgress {
  14080     CONST_VTBL IActionProgressVtbl* lpVtbl;
  14081 };
  14082 
  14083 #ifdef COBJMACROS
  14084 #ifndef WIDL_C_INLINE_WRAPPERS
  14085 /*** IUnknown methods ***/
  14086 #define IActionProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14087 #define IActionProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
  14088 #define IActionProgress_Release(This) (This)->lpVtbl->Release(This)
  14089 /*** IActionProgress methods ***/
  14090 #define IActionProgress_Begin(This,action,flags) (This)->lpVtbl->Begin(This,action,flags)
  14091 #define IActionProgress_UpdateProgress(This,ulCompleted,ulTotal) (This)->lpVtbl->UpdateProgress(This,ulCompleted,ulTotal)
  14092 #define IActionProgress_UpdateText(This,sptext,pszText,fMayCompact) (This)->lpVtbl->UpdateText(This,sptext,pszText,fMayCompact)
  14093 #define IActionProgress_QueryCancel(This,pfCancelled) (This)->lpVtbl->QueryCancel(This,pfCancelled)
  14094 #define IActionProgress_ResetCancel(This) (This)->lpVtbl->ResetCancel(This)
  14095 #define IActionProgress_End(This) (This)->lpVtbl->End(This)
  14096 #else
  14097 /*** IUnknown methods ***/
  14098 static inline HRESULT IActionProgress_QueryInterface(IActionProgress* This,REFIID riid,void **ppvObject) {
  14099     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14100 }
  14101 static inline ULONG IActionProgress_AddRef(IActionProgress* This) {
  14102     return This->lpVtbl->AddRef(This);
  14103 }
  14104 static inline ULONG IActionProgress_Release(IActionProgress* This) {
  14105     return This->lpVtbl->Release(This);
  14106 }
  14107 /*** IActionProgress methods ***/
  14108 static inline HRESULT IActionProgress_Begin(IActionProgress* This,SPACTION action,SPBEGINF flags) {
  14109     return This->lpVtbl->Begin(This,action,flags);
  14110 }
  14111 static inline HRESULT IActionProgress_UpdateProgress(IActionProgress* This,ULONGLONG ulCompleted,ULONGLONG ulTotal) {
  14112     return This->lpVtbl->UpdateProgress(This,ulCompleted,ulTotal);
  14113 }
  14114 static inline HRESULT IActionProgress_UpdateText(IActionProgress* This,SPTEXT sptext,LPCWSTR pszText,WINBOOL fMayCompact) {
  14115     return This->lpVtbl->UpdateText(This,sptext,pszText,fMayCompact);
  14116 }
  14117 static inline HRESULT IActionProgress_QueryCancel(IActionProgress* This,WINBOOL *pfCancelled) {
  14118     return This->lpVtbl->QueryCancel(This,pfCancelled);
  14119 }
  14120 static inline HRESULT IActionProgress_ResetCancel(IActionProgress* This) {
  14121     return This->lpVtbl->ResetCancel(This);
  14122 }
  14123 static inline HRESULT IActionProgress_End(IActionProgress* This) {
  14124     return This->lpVtbl->End(This);
  14125 }
  14126 #endif
  14127 #endif
  14128 
  14129 #endif
  14130 
  14131 
  14132 #endif  /* __IActionProgress_INTERFACE_DEFINED__ */
  14133 
  14134 
  14135 /*****************************************************************************
  14136  * IShellExtInit interface
  14137  */
  14138 #ifndef __IShellExtInit_INTERFACE_DEFINED__
  14139 #define __IShellExtInit_INTERFACE_DEFINED__
  14140 
  14141 DEFINE_GUID(IID_IShellExtInit, 0x000214e8, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  14142 #if defined(__cplusplus) && !defined(CINTERFACE)
  14143 MIDL_INTERFACE("000214e8-0000-0000-c000-000000000046")
  14144 IShellExtInit : public IUnknown
  14145 {
  14146     virtual HRESULT STDMETHODCALLTYPE Initialize(
  14147         PCIDLIST_ABSOLUTE pidlFolder,
  14148         IDataObject *pdtobj,
  14149         HKEY hkeyProgID) = 0;
  14150 
  14151 };
  14152 #ifdef __CRT_UUID_DECL
  14153 __CRT_UUID_DECL(IShellExtInit, 0x000214e8, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  14154 #endif
  14155 #else
  14156 typedef struct IShellExtInitVtbl {
  14157     BEGIN_INTERFACE
  14158 
  14159     /*** IUnknown methods ***/
  14160     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14161         IShellExtInit *This,
  14162         REFIID riid,
  14163         void **ppvObject);
  14164 
  14165     ULONG (STDMETHODCALLTYPE *AddRef)(
  14166         IShellExtInit *This);
  14167 
  14168     ULONG (STDMETHODCALLTYPE *Release)(
  14169         IShellExtInit *This);
  14170 
  14171     /*** IShellExtInit methods ***/
  14172     HRESULT (STDMETHODCALLTYPE *Initialize)(
  14173         IShellExtInit *This,
  14174         PCIDLIST_ABSOLUTE pidlFolder,
  14175         IDataObject *pdtobj,
  14176         HKEY hkeyProgID);
  14177 
  14178     END_INTERFACE
  14179 } IShellExtInitVtbl;
  14180 
  14181 interface IShellExtInit {
  14182     CONST_VTBL IShellExtInitVtbl* lpVtbl;
  14183 };
  14184 
  14185 #ifdef COBJMACROS
  14186 #ifndef WIDL_C_INLINE_WRAPPERS
  14187 /*** IUnknown methods ***/
  14188 #define IShellExtInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14189 #define IShellExtInit_AddRef(This) (This)->lpVtbl->AddRef(This)
  14190 #define IShellExtInit_Release(This) (This)->lpVtbl->Release(This)
  14191 /*** IShellExtInit methods ***/
  14192 #define IShellExtInit_Initialize(This,pidlFolder,pdtobj,hkeyProgID) (This)->lpVtbl->Initialize(This,pidlFolder,pdtobj,hkeyProgID)
  14193 #else
  14194 /*** IUnknown methods ***/
  14195 static inline HRESULT IShellExtInit_QueryInterface(IShellExtInit* This,REFIID riid,void **ppvObject) {
  14196     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14197 }
  14198 static inline ULONG IShellExtInit_AddRef(IShellExtInit* This) {
  14199     return This->lpVtbl->AddRef(This);
  14200 }
  14201 static inline ULONG IShellExtInit_Release(IShellExtInit* This) {
  14202     return This->lpVtbl->Release(This);
  14203 }
  14204 /*** IShellExtInit methods ***/
  14205 static inline HRESULT IShellExtInit_Initialize(IShellExtInit* This,PCIDLIST_ABSOLUTE pidlFolder,IDataObject *pdtobj,HKEY hkeyProgID) {
  14206     return This->lpVtbl->Initialize(This,pidlFolder,pdtobj,hkeyProgID);
  14207 }
  14208 #endif
  14209 #endif
  14210 
  14211 #endif
  14212 
  14213 
  14214 #endif  /* __IShellExtInit_INTERFACE_DEFINED__ */
  14215 
  14216 typedef IShellExtInit *LPSHELLEXTINIT;
  14217 
  14218 /*****************************************************************************
  14219  * IShellPropSheetExt interface
  14220  */
  14221 #ifndef __IShellPropSheetExt_INTERFACE_DEFINED__
  14222 #define __IShellPropSheetExt_INTERFACE_DEFINED__
  14223 
  14224 enum _EXPPS {
  14225     EXPPS_FILETYPES = 0x1
  14226 };
  14227 
  14228 typedef UINT EXPPS;
  14229 
  14230 DEFINE_GUID(IID_IShellPropSheetExt, 0x000214e9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  14231 #if defined(__cplusplus) && !defined(CINTERFACE)
  14232 MIDL_INTERFACE("000214e9-0000-0000-c000-000000000046")
  14233 IShellPropSheetExt : public IUnknown
  14234 {
  14235     virtual HRESULT STDMETHODCALLTYPE AddPages(
  14236         LPFNSVADDPROPSHEETPAGE pfnAddPage,
  14237         LPARAM lParam) = 0;
  14238 
  14239     virtual HRESULT STDMETHODCALLTYPE ReplacePage(
  14240         EXPPS uPageID,
  14241         LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
  14242         LPARAM lParam) = 0;
  14243 
  14244 };
  14245 #ifdef __CRT_UUID_DECL
  14246 __CRT_UUID_DECL(IShellPropSheetExt, 0x000214e9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  14247 #endif
  14248 #else
  14249 typedef struct IShellPropSheetExtVtbl {
  14250     BEGIN_INTERFACE
  14251 
  14252     /*** IUnknown methods ***/
  14253     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14254         IShellPropSheetExt *This,
  14255         REFIID riid,
  14256         void **ppvObject);
  14257 
  14258     ULONG (STDMETHODCALLTYPE *AddRef)(
  14259         IShellPropSheetExt *This);
  14260 
  14261     ULONG (STDMETHODCALLTYPE *Release)(
  14262         IShellPropSheetExt *This);
  14263 
  14264     /*** IShellPropSheetExt methods ***/
  14265     HRESULT (STDMETHODCALLTYPE *AddPages)(
  14266         IShellPropSheetExt *This,
  14267         LPFNSVADDPROPSHEETPAGE pfnAddPage,
  14268         LPARAM lParam);
  14269 
  14270     HRESULT (STDMETHODCALLTYPE *ReplacePage)(
  14271         IShellPropSheetExt *This,
  14272         EXPPS uPageID,
  14273         LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
  14274         LPARAM lParam);
  14275 
  14276     END_INTERFACE
  14277 } IShellPropSheetExtVtbl;
  14278 
  14279 interface IShellPropSheetExt {
  14280     CONST_VTBL IShellPropSheetExtVtbl* lpVtbl;
  14281 };
  14282 
  14283 #ifdef COBJMACROS
  14284 #ifndef WIDL_C_INLINE_WRAPPERS
  14285 /*** IUnknown methods ***/
  14286 #define IShellPropSheetExt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14287 #define IShellPropSheetExt_AddRef(This) (This)->lpVtbl->AddRef(This)
  14288 #define IShellPropSheetExt_Release(This) (This)->lpVtbl->Release(This)
  14289 /*** IShellPropSheetExt methods ***/
  14290 #define IShellPropSheetExt_AddPages(This,pfnAddPage,lParam) (This)->lpVtbl->AddPages(This,pfnAddPage,lParam)
  14291 #define IShellPropSheetExt_ReplacePage(This,uPageID,pfnReplaceWith,lParam) (This)->lpVtbl->ReplacePage(This,uPageID,pfnReplaceWith,lParam)
  14292 #else
  14293 /*** IUnknown methods ***/
  14294 static inline HRESULT IShellPropSheetExt_QueryInterface(IShellPropSheetExt* This,REFIID riid,void **ppvObject) {
  14295     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14296 }
  14297 static inline ULONG IShellPropSheetExt_AddRef(IShellPropSheetExt* This) {
  14298     return This->lpVtbl->AddRef(This);
  14299 }
  14300 static inline ULONG IShellPropSheetExt_Release(IShellPropSheetExt* This) {
  14301     return This->lpVtbl->Release(This);
  14302 }
  14303 /*** IShellPropSheetExt methods ***/
  14304 static inline HRESULT IShellPropSheetExt_AddPages(IShellPropSheetExt* This,LPFNSVADDPROPSHEETPAGE pfnAddPage,LPARAM lParam) {
  14305     return This->lpVtbl->AddPages(This,pfnAddPage,lParam);
  14306 }
  14307 static inline HRESULT IShellPropSheetExt_ReplacePage(IShellPropSheetExt* This,EXPPS uPageID,LPFNSVADDPROPSHEETPAGE pfnReplaceWith,LPARAM lParam) {
  14308     return This->lpVtbl->ReplacePage(This,uPageID,pfnReplaceWith,lParam);
  14309 }
  14310 #endif
  14311 #endif
  14312 
  14313 #endif
  14314 
  14315 
  14316 #endif  /* __IShellPropSheetExt_INTERFACE_DEFINED__ */
  14317 
  14318 typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;
  14319 
  14320 /*****************************************************************************
  14321  * IRemoteComputer interface
  14322  */
  14323 #ifndef __IRemoteComputer_INTERFACE_DEFINED__
  14324 #define __IRemoteComputer_INTERFACE_DEFINED__
  14325 
  14326 DEFINE_GUID(IID_IRemoteComputer, 0x000214fe, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  14327 #if defined(__cplusplus) && !defined(CINTERFACE)
  14328 MIDL_INTERFACE("000214fe-0000-0000-c000-000000000046")
  14329 IRemoteComputer : public IUnknown
  14330 {
  14331     virtual HRESULT STDMETHODCALLTYPE Initialize(
  14332         LPCWSTR pszMachine,
  14333         WINBOOL bEnumerating) = 0;
  14334 
  14335 };
  14336 #ifdef __CRT_UUID_DECL
  14337 __CRT_UUID_DECL(IRemoteComputer, 0x000214fe, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  14338 #endif
  14339 #else
  14340 typedef struct IRemoteComputerVtbl {
  14341     BEGIN_INTERFACE
  14342 
  14343     /*** IUnknown methods ***/
  14344     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14345         IRemoteComputer *This,
  14346         REFIID riid,
  14347         void **ppvObject);
  14348 
  14349     ULONG (STDMETHODCALLTYPE *AddRef)(
  14350         IRemoteComputer *This);
  14351 
  14352     ULONG (STDMETHODCALLTYPE *Release)(
  14353         IRemoteComputer *This);
  14354 
  14355     /*** IRemoteComputer methods ***/
  14356     HRESULT (STDMETHODCALLTYPE *Initialize)(
  14357         IRemoteComputer *This,
  14358         LPCWSTR pszMachine,
  14359         WINBOOL bEnumerating);
  14360 
  14361     END_INTERFACE
  14362 } IRemoteComputerVtbl;
  14363 
  14364 interface IRemoteComputer {
  14365     CONST_VTBL IRemoteComputerVtbl* lpVtbl;
  14366 };
  14367 
  14368 #ifdef COBJMACROS
  14369 #ifndef WIDL_C_INLINE_WRAPPERS
  14370 /*** IUnknown methods ***/
  14371 #define IRemoteComputer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14372 #define IRemoteComputer_AddRef(This) (This)->lpVtbl->AddRef(This)
  14373 #define IRemoteComputer_Release(This) (This)->lpVtbl->Release(This)
  14374 /*** IRemoteComputer methods ***/
  14375 #define IRemoteComputer_Initialize(This,pszMachine,bEnumerating) (This)->lpVtbl->Initialize(This,pszMachine,bEnumerating)
  14376 #else
  14377 /*** IUnknown methods ***/
  14378 static inline HRESULT IRemoteComputer_QueryInterface(IRemoteComputer* This,REFIID riid,void **ppvObject) {
  14379     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14380 }
  14381 static inline ULONG IRemoteComputer_AddRef(IRemoteComputer* This) {
  14382     return This->lpVtbl->AddRef(This);
  14383 }
  14384 static inline ULONG IRemoteComputer_Release(IRemoteComputer* This) {
  14385     return This->lpVtbl->Release(This);
  14386 }
  14387 /*** IRemoteComputer methods ***/
  14388 static inline HRESULT IRemoteComputer_Initialize(IRemoteComputer* This,LPCWSTR pszMachine,WINBOOL bEnumerating) {
  14389     return This->lpVtbl->Initialize(This,pszMachine,bEnumerating);
  14390 }
  14391 #endif
  14392 #endif
  14393 
  14394 #endif
  14395 
  14396 
  14397 #endif  /* __IRemoteComputer_INTERFACE_DEFINED__ */
  14398 
  14399 
  14400 /*****************************************************************************
  14401  * IQueryContinue interface
  14402  */
  14403 #ifndef __IQueryContinue_INTERFACE_DEFINED__
  14404 #define __IQueryContinue_INTERFACE_DEFINED__
  14405 
  14406 DEFINE_GUID(IID_IQueryContinue, 0x7307055c, 0xb24a, 0x486b, 0x9f,0x25, 0x16,0x3e,0x59,0x7a,0x28,0xa9);
  14407 #if defined(__cplusplus) && !defined(CINTERFACE)
  14408 MIDL_INTERFACE("7307055c-b24a-486b-9f25-163e597a28a9")
  14409 IQueryContinue : public IUnknown
  14410 {
  14411     virtual HRESULT STDMETHODCALLTYPE QueryContinue(
  14412         ) = 0;
  14413 
  14414 };
  14415 #ifdef __CRT_UUID_DECL
  14416 __CRT_UUID_DECL(IQueryContinue, 0x7307055c, 0xb24a, 0x486b, 0x9f,0x25, 0x16,0x3e,0x59,0x7a,0x28,0xa9)
  14417 #endif
  14418 #else
  14419 typedef struct IQueryContinueVtbl {
  14420     BEGIN_INTERFACE
  14421 
  14422     /*** IUnknown methods ***/
  14423     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14424         IQueryContinue *This,
  14425         REFIID riid,
  14426         void **ppvObject);
  14427 
  14428     ULONG (STDMETHODCALLTYPE *AddRef)(
  14429         IQueryContinue *This);
  14430 
  14431     ULONG (STDMETHODCALLTYPE *Release)(
  14432         IQueryContinue *This);
  14433 
  14434     /*** IQueryContinue methods ***/
  14435     HRESULT (STDMETHODCALLTYPE *QueryContinue)(
  14436         IQueryContinue *This);
  14437 
  14438     END_INTERFACE
  14439 } IQueryContinueVtbl;
  14440 
  14441 interface IQueryContinue {
  14442     CONST_VTBL IQueryContinueVtbl* lpVtbl;
  14443 };
  14444 
  14445 #ifdef COBJMACROS
  14446 #ifndef WIDL_C_INLINE_WRAPPERS
  14447 /*** IUnknown methods ***/
  14448 #define IQueryContinue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14449 #define IQueryContinue_AddRef(This) (This)->lpVtbl->AddRef(This)
  14450 #define IQueryContinue_Release(This) (This)->lpVtbl->Release(This)
  14451 /*** IQueryContinue methods ***/
  14452 #define IQueryContinue_QueryContinue(This) (This)->lpVtbl->QueryContinue(This)
  14453 #else
  14454 /*** IUnknown methods ***/
  14455 static inline HRESULT IQueryContinue_QueryInterface(IQueryContinue* This,REFIID riid,void **ppvObject) {
  14456     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14457 }
  14458 static inline ULONG IQueryContinue_AddRef(IQueryContinue* This) {
  14459     return This->lpVtbl->AddRef(This);
  14460 }
  14461 static inline ULONG IQueryContinue_Release(IQueryContinue* This) {
  14462     return This->lpVtbl->Release(This);
  14463 }
  14464 /*** IQueryContinue methods ***/
  14465 static inline HRESULT IQueryContinue_QueryContinue(IQueryContinue* This) {
  14466     return This->lpVtbl->QueryContinue(This);
  14467 }
  14468 #endif
  14469 #endif
  14470 
  14471 #endif
  14472 
  14473 
  14474 #endif  /* __IQueryContinue_INTERFACE_DEFINED__ */
  14475 
  14476 
  14477 /*****************************************************************************
  14478  * IObjectWithCancelEvent interface
  14479  */
  14480 #ifndef __IObjectWithCancelEvent_INTERFACE_DEFINED__
  14481 #define __IObjectWithCancelEvent_INTERFACE_DEFINED__
  14482 
  14483 DEFINE_GUID(IID_IObjectWithCancelEvent, 0xf279b885, 0x0ae9, 0x4b85, 0xac,0x06, 0xdd,0xec,0xf9,0x40,0x89,0x41);
  14484 #if defined(__cplusplus) && !defined(CINTERFACE)
  14485 MIDL_INTERFACE("f279b885-0ae9-4b85-ac06-ddecf9408941")
  14486 IObjectWithCancelEvent : public IUnknown
  14487 {
  14488     virtual HRESULT STDMETHODCALLTYPE GetCancelEvent(
  14489         HANDLE *phEvent) = 0;
  14490 
  14491 };
  14492 #ifdef __CRT_UUID_DECL
  14493 __CRT_UUID_DECL(IObjectWithCancelEvent, 0xf279b885, 0x0ae9, 0x4b85, 0xac,0x06, 0xdd,0xec,0xf9,0x40,0x89,0x41)
  14494 #endif
  14495 #else
  14496 typedef struct IObjectWithCancelEventVtbl {
  14497     BEGIN_INTERFACE
  14498 
  14499     /*** IUnknown methods ***/
  14500     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14501         IObjectWithCancelEvent *This,
  14502         REFIID riid,
  14503         void **ppvObject);
  14504 
  14505     ULONG (STDMETHODCALLTYPE *AddRef)(
  14506         IObjectWithCancelEvent *This);
  14507 
  14508     ULONG (STDMETHODCALLTYPE *Release)(
  14509         IObjectWithCancelEvent *This);
  14510 
  14511     /*** IObjectWithCancelEvent methods ***/
  14512     HRESULT (STDMETHODCALLTYPE *GetCancelEvent)(
  14513         IObjectWithCancelEvent *This,
  14514         HANDLE *phEvent);
  14515 
  14516     END_INTERFACE
  14517 } IObjectWithCancelEventVtbl;
  14518 
  14519 interface IObjectWithCancelEvent {
  14520     CONST_VTBL IObjectWithCancelEventVtbl* lpVtbl;
  14521 };
  14522 
  14523 #ifdef COBJMACROS
  14524 #ifndef WIDL_C_INLINE_WRAPPERS
  14525 /*** IUnknown methods ***/
  14526 #define IObjectWithCancelEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14527 #define IObjectWithCancelEvent_AddRef(This) (This)->lpVtbl->AddRef(This)
  14528 #define IObjectWithCancelEvent_Release(This) (This)->lpVtbl->Release(This)
  14529 /*** IObjectWithCancelEvent methods ***/
  14530 #define IObjectWithCancelEvent_GetCancelEvent(This,phEvent) (This)->lpVtbl->GetCancelEvent(This,phEvent)
  14531 #else
  14532 /*** IUnknown methods ***/
  14533 static inline HRESULT IObjectWithCancelEvent_QueryInterface(IObjectWithCancelEvent* This,REFIID riid,void **ppvObject) {
  14534     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14535 }
  14536 static inline ULONG IObjectWithCancelEvent_AddRef(IObjectWithCancelEvent* This) {
  14537     return This->lpVtbl->AddRef(This);
  14538 }
  14539 static inline ULONG IObjectWithCancelEvent_Release(IObjectWithCancelEvent* This) {
  14540     return This->lpVtbl->Release(This);
  14541 }
  14542 /*** IObjectWithCancelEvent methods ***/
  14543 static inline HRESULT IObjectWithCancelEvent_GetCancelEvent(IObjectWithCancelEvent* This,HANDLE *phEvent) {
  14544     return This->lpVtbl->GetCancelEvent(This,phEvent);
  14545 }
  14546 #endif
  14547 #endif
  14548 
  14549 #endif
  14550 
  14551 
  14552 #endif  /* __IObjectWithCancelEvent_INTERFACE_DEFINED__ */
  14553 
  14554 
  14555 /*****************************************************************************
  14556  * IUserNotification interface
  14557  */
  14558 #ifndef __IUserNotification_INTERFACE_DEFINED__
  14559 #define __IUserNotification_INTERFACE_DEFINED__
  14560 
  14561 DEFINE_GUID(IID_IUserNotification, 0xba9711ba, 0x5893, 0x4787, 0xa7,0xe1, 0x41,0x27,0x71,0x51,0x55,0x0b);
  14562 #if defined(__cplusplus) && !defined(CINTERFACE)
  14563 MIDL_INTERFACE("ba9711ba-5893-4787-a7e1-41277151550b")
  14564 IUserNotification : public IUnknown
  14565 {
  14566     virtual HRESULT STDMETHODCALLTYPE SetBalloonInfo(
  14567         LPCWSTR pszTitle,
  14568         LPCWSTR pszText,
  14569         DWORD dwInfoFlags) = 0;
  14570 
  14571     virtual HRESULT STDMETHODCALLTYPE SetBalloonRetry(
  14572         DWORD dwShowTime,
  14573         DWORD dwInterval,
  14574         UINT cRetryCount) = 0;
  14575 
  14576     virtual HRESULT STDMETHODCALLTYPE SetIconInfo(
  14577         HICON hIcon,
  14578         LPCWSTR pszToolTip) = 0;
  14579 
  14580     virtual HRESULT STDMETHODCALLTYPE Show(
  14581         IQueryContinue *pqc,
  14582         DWORD dwContinuePollInterval) = 0;
  14583 
  14584     virtual HRESULT STDMETHODCALLTYPE PlaySound(
  14585         LPCWSTR pszSoundName) = 0;
  14586 
  14587 };
  14588 #ifdef __CRT_UUID_DECL
  14589 __CRT_UUID_DECL(IUserNotification, 0xba9711ba, 0x5893, 0x4787, 0xa7,0xe1, 0x41,0x27,0x71,0x51,0x55,0x0b)
  14590 #endif
  14591 #else
  14592 typedef struct IUserNotificationVtbl {
  14593     BEGIN_INTERFACE
  14594 
  14595     /*** IUnknown methods ***/
  14596     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14597         IUserNotification *This,
  14598         REFIID riid,
  14599         void **ppvObject);
  14600 
  14601     ULONG (STDMETHODCALLTYPE *AddRef)(
  14602         IUserNotification *This);
  14603 
  14604     ULONG (STDMETHODCALLTYPE *Release)(
  14605         IUserNotification *This);
  14606 
  14607     /*** IUserNotification methods ***/
  14608     HRESULT (STDMETHODCALLTYPE *SetBalloonInfo)(
  14609         IUserNotification *This,
  14610         LPCWSTR pszTitle,
  14611         LPCWSTR pszText,
  14612         DWORD dwInfoFlags);
  14613 
  14614     HRESULT (STDMETHODCALLTYPE *SetBalloonRetry)(
  14615         IUserNotification *This,
  14616         DWORD dwShowTime,
  14617         DWORD dwInterval,
  14618         UINT cRetryCount);
  14619 
  14620     HRESULT (STDMETHODCALLTYPE *SetIconInfo)(
  14621         IUserNotification *This,
  14622         HICON hIcon,
  14623         LPCWSTR pszToolTip);
  14624 
  14625     HRESULT (STDMETHODCALLTYPE *Show)(
  14626         IUserNotification *This,
  14627         IQueryContinue *pqc,
  14628         DWORD dwContinuePollInterval);
  14629 
  14630     HRESULT (STDMETHODCALLTYPE *PlaySound)(
  14631         IUserNotification *This,
  14632         LPCWSTR pszSoundName);
  14633 
  14634     END_INTERFACE
  14635 } IUserNotificationVtbl;
  14636 
  14637 interface IUserNotification {
  14638     CONST_VTBL IUserNotificationVtbl* lpVtbl;
  14639 };
  14640 
  14641 #ifdef COBJMACROS
  14642 #ifndef WIDL_C_INLINE_WRAPPERS
  14643 /*** IUnknown methods ***/
  14644 #define IUserNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14645 #define IUserNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
  14646 #define IUserNotification_Release(This) (This)->lpVtbl->Release(This)
  14647 /*** IUserNotification methods ***/
  14648 #define IUserNotification_SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags) (This)->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags)
  14649 #define IUserNotification_SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount) (This)->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount)
  14650 #define IUserNotification_SetIconInfo(This,hIcon,pszToolTip) (This)->lpVtbl->SetIconInfo(This,hIcon,pszToolTip)
  14651 #define IUserNotification_Show(This,pqc,dwContinuePollInterval) (This)->lpVtbl->Show(This,pqc,dwContinuePollInterval)
  14652 #define IUserNotification_PlaySound(This,pszSoundName) (This)->lpVtbl->PlaySound(This,pszSoundName)
  14653 #else
  14654 /*** IUnknown methods ***/
  14655 static inline HRESULT IUserNotification_QueryInterface(IUserNotification* This,REFIID riid,void **ppvObject) {
  14656     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14657 }
  14658 static inline ULONG IUserNotification_AddRef(IUserNotification* This) {
  14659     return This->lpVtbl->AddRef(This);
  14660 }
  14661 static inline ULONG IUserNotification_Release(IUserNotification* This) {
  14662     return This->lpVtbl->Release(This);
  14663 }
  14664 /*** IUserNotification methods ***/
  14665 static inline HRESULT IUserNotification_SetBalloonInfo(IUserNotification* This,LPCWSTR pszTitle,LPCWSTR pszText,DWORD dwInfoFlags) {
  14666     return This->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags);
  14667 }
  14668 static inline HRESULT IUserNotification_SetBalloonRetry(IUserNotification* This,DWORD dwShowTime,DWORD dwInterval,UINT cRetryCount) {
  14669     return This->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount);
  14670 }
  14671 static inline HRESULT IUserNotification_SetIconInfo(IUserNotification* This,HICON hIcon,LPCWSTR pszToolTip) {
  14672     return This->lpVtbl->SetIconInfo(This,hIcon,pszToolTip);
  14673 }
  14674 static inline HRESULT IUserNotification_Show(IUserNotification* This,IQueryContinue *pqc,DWORD dwContinuePollInterval) {
  14675     return This->lpVtbl->Show(This,pqc,dwContinuePollInterval);
  14676 }
  14677 static inline HRESULT IUserNotification_PlaySound(IUserNotification* This,LPCWSTR pszSoundName) {
  14678     return This->lpVtbl->PlaySound(This,pszSoundName);
  14679 }
  14680 #endif
  14681 #endif
  14682 
  14683 #endif
  14684 
  14685 
  14686 #endif  /* __IUserNotification_INTERFACE_DEFINED__ */
  14687 
  14688 
  14689 /*****************************************************************************
  14690  * IUserNotificationCallback interface
  14691  */
  14692 #ifndef __IUserNotificationCallback_INTERFACE_DEFINED__
  14693 #define __IUserNotificationCallback_INTERFACE_DEFINED__
  14694 
  14695 DEFINE_GUID(IID_IUserNotificationCallback, 0x19108294, 0x0441, 0x4aff, 0x80,0x13, 0xfa,0x0a,0x73,0x0b,0x0b,0xea);
  14696 #if defined(__cplusplus) && !defined(CINTERFACE)
  14697 MIDL_INTERFACE("19108294-0441-4aff-8013-fa0a730b0bea")
  14698 IUserNotificationCallback : public IUnknown
  14699 {
  14700     virtual HRESULT STDMETHODCALLTYPE OnBalloonUserClick(
  14701         POINT *pt) = 0;
  14702 
  14703     virtual HRESULT STDMETHODCALLTYPE OnLeftClick(
  14704         POINT *pt) = 0;
  14705 
  14706     virtual HRESULT STDMETHODCALLTYPE OnContextMenu(
  14707         POINT *pt) = 0;
  14708 
  14709 };
  14710 #ifdef __CRT_UUID_DECL
  14711 __CRT_UUID_DECL(IUserNotificationCallback, 0x19108294, 0x0441, 0x4aff, 0x80,0x13, 0xfa,0x0a,0x73,0x0b,0x0b,0xea)
  14712 #endif
  14713 #else
  14714 typedef struct IUserNotificationCallbackVtbl {
  14715     BEGIN_INTERFACE
  14716 
  14717     /*** IUnknown methods ***/
  14718     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14719         IUserNotificationCallback *This,
  14720         REFIID riid,
  14721         void **ppvObject);
  14722 
  14723     ULONG (STDMETHODCALLTYPE *AddRef)(
  14724         IUserNotificationCallback *This);
  14725 
  14726     ULONG (STDMETHODCALLTYPE *Release)(
  14727         IUserNotificationCallback *This);
  14728 
  14729     /*** IUserNotificationCallback methods ***/
  14730     HRESULT (STDMETHODCALLTYPE *OnBalloonUserClick)(
  14731         IUserNotificationCallback *This,
  14732         POINT *pt);
  14733 
  14734     HRESULT (STDMETHODCALLTYPE *OnLeftClick)(
  14735         IUserNotificationCallback *This,
  14736         POINT *pt);
  14737 
  14738     HRESULT (STDMETHODCALLTYPE *OnContextMenu)(
  14739         IUserNotificationCallback *This,
  14740         POINT *pt);
  14741 
  14742     END_INTERFACE
  14743 } IUserNotificationCallbackVtbl;
  14744 
  14745 interface IUserNotificationCallback {
  14746     CONST_VTBL IUserNotificationCallbackVtbl* lpVtbl;
  14747 };
  14748 
  14749 #ifdef COBJMACROS
  14750 #ifndef WIDL_C_INLINE_WRAPPERS
  14751 /*** IUnknown methods ***/
  14752 #define IUserNotificationCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14753 #define IUserNotificationCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
  14754 #define IUserNotificationCallback_Release(This) (This)->lpVtbl->Release(This)
  14755 /*** IUserNotificationCallback methods ***/
  14756 #define IUserNotificationCallback_OnBalloonUserClick(This,pt) (This)->lpVtbl->OnBalloonUserClick(This,pt)
  14757 #define IUserNotificationCallback_OnLeftClick(This,pt) (This)->lpVtbl->OnLeftClick(This,pt)
  14758 #define IUserNotificationCallback_OnContextMenu(This,pt) (This)->lpVtbl->OnContextMenu(This,pt)
  14759 #else
  14760 /*** IUnknown methods ***/
  14761 static inline HRESULT IUserNotificationCallback_QueryInterface(IUserNotificationCallback* This,REFIID riid,void **ppvObject) {
  14762     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14763 }
  14764 static inline ULONG IUserNotificationCallback_AddRef(IUserNotificationCallback* This) {
  14765     return This->lpVtbl->AddRef(This);
  14766 }
  14767 static inline ULONG IUserNotificationCallback_Release(IUserNotificationCallback* This) {
  14768     return This->lpVtbl->Release(This);
  14769 }
  14770 /*** IUserNotificationCallback methods ***/
  14771 static inline HRESULT IUserNotificationCallback_OnBalloonUserClick(IUserNotificationCallback* This,POINT *pt) {
  14772     return This->lpVtbl->OnBalloonUserClick(This,pt);
  14773 }
  14774 static inline HRESULT IUserNotificationCallback_OnLeftClick(IUserNotificationCallback* This,POINT *pt) {
  14775     return This->lpVtbl->OnLeftClick(This,pt);
  14776 }
  14777 static inline HRESULT IUserNotificationCallback_OnContextMenu(IUserNotificationCallback* This,POINT *pt) {
  14778     return This->lpVtbl->OnContextMenu(This,pt);
  14779 }
  14780 #endif
  14781 #endif
  14782 
  14783 #endif
  14784 
  14785 
  14786 #endif  /* __IUserNotificationCallback_INTERFACE_DEFINED__ */
  14787 
  14788 
  14789 /*****************************************************************************
  14790  * IUserNotification2 interface
  14791  */
  14792 #ifndef __IUserNotification2_INTERFACE_DEFINED__
  14793 #define __IUserNotification2_INTERFACE_DEFINED__
  14794 
  14795 DEFINE_GUID(IID_IUserNotification2, 0x215913cc, 0x57eb, 0x4fab, 0xab,0x5a, 0xe5,0xfa,0x7b,0xea,0x2a,0x6c);
  14796 #if defined(__cplusplus) && !defined(CINTERFACE)
  14797 MIDL_INTERFACE("215913cc-57eb-4fab-ab5a-e5fa7bea2a6c")
  14798 IUserNotification2 : public IUnknown
  14799 {
  14800     virtual HRESULT STDMETHODCALLTYPE SetBalloonInfo(
  14801         LPCWSTR pszTitle,
  14802         LPCWSTR pszText,
  14803         DWORD dwInfoFlags) = 0;
  14804 
  14805     virtual HRESULT STDMETHODCALLTYPE SetBalloonRetry(
  14806         DWORD dwShowTime,
  14807         DWORD dwInterval,
  14808         UINT cRetryCount) = 0;
  14809 
  14810     virtual HRESULT STDMETHODCALLTYPE SetIconInfo(
  14811         HICON hIcon,
  14812         LPCWSTR pszToolTip) = 0;
  14813 
  14814     virtual HRESULT STDMETHODCALLTYPE Show(
  14815         IQueryContinue *pqc,
  14816         DWORD dwContinuePollInterval,
  14817         IUserNotificationCallback *pSink) = 0;
  14818 
  14819     virtual HRESULT STDMETHODCALLTYPE PlaySound(
  14820         LPCWSTR pszSoundName) = 0;
  14821 
  14822 };
  14823 #ifdef __CRT_UUID_DECL
  14824 __CRT_UUID_DECL(IUserNotification2, 0x215913cc, 0x57eb, 0x4fab, 0xab,0x5a, 0xe5,0xfa,0x7b,0xea,0x2a,0x6c)
  14825 #endif
  14826 #else
  14827 typedef struct IUserNotification2Vtbl {
  14828     BEGIN_INTERFACE
  14829 
  14830     /*** IUnknown methods ***/
  14831     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14832         IUserNotification2 *This,
  14833         REFIID riid,
  14834         void **ppvObject);
  14835 
  14836     ULONG (STDMETHODCALLTYPE *AddRef)(
  14837         IUserNotification2 *This);
  14838 
  14839     ULONG (STDMETHODCALLTYPE *Release)(
  14840         IUserNotification2 *This);
  14841 
  14842     /*** IUserNotification2 methods ***/
  14843     HRESULT (STDMETHODCALLTYPE *SetBalloonInfo)(
  14844         IUserNotification2 *This,
  14845         LPCWSTR pszTitle,
  14846         LPCWSTR pszText,
  14847         DWORD dwInfoFlags);
  14848 
  14849     HRESULT (STDMETHODCALLTYPE *SetBalloonRetry)(
  14850         IUserNotification2 *This,
  14851         DWORD dwShowTime,
  14852         DWORD dwInterval,
  14853         UINT cRetryCount);
  14854 
  14855     HRESULT (STDMETHODCALLTYPE *SetIconInfo)(
  14856         IUserNotification2 *This,
  14857         HICON hIcon,
  14858         LPCWSTR pszToolTip);
  14859 
  14860     HRESULT (STDMETHODCALLTYPE *Show)(
  14861         IUserNotification2 *This,
  14862         IQueryContinue *pqc,
  14863         DWORD dwContinuePollInterval,
  14864         IUserNotificationCallback *pSink);
  14865 
  14866     HRESULT (STDMETHODCALLTYPE *PlaySound)(
  14867         IUserNotification2 *This,
  14868         LPCWSTR pszSoundName);
  14869 
  14870     END_INTERFACE
  14871 } IUserNotification2Vtbl;
  14872 
  14873 interface IUserNotification2 {
  14874     CONST_VTBL IUserNotification2Vtbl* lpVtbl;
  14875 };
  14876 
  14877 #ifdef COBJMACROS
  14878 #ifndef WIDL_C_INLINE_WRAPPERS
  14879 /*** IUnknown methods ***/
  14880 #define IUserNotification2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14881 #define IUserNotification2_AddRef(This) (This)->lpVtbl->AddRef(This)
  14882 #define IUserNotification2_Release(This) (This)->lpVtbl->Release(This)
  14883 /*** IUserNotification2 methods ***/
  14884 #define IUserNotification2_SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags) (This)->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags)
  14885 #define IUserNotification2_SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount) (This)->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount)
  14886 #define IUserNotification2_SetIconInfo(This,hIcon,pszToolTip) (This)->lpVtbl->SetIconInfo(This,hIcon,pszToolTip)
  14887 #define IUserNotification2_Show(This,pqc,dwContinuePollInterval,pSink) (This)->lpVtbl->Show(This,pqc,dwContinuePollInterval,pSink)
  14888 #define IUserNotification2_PlaySound(This,pszSoundName) (This)->lpVtbl->PlaySound(This,pszSoundName)
  14889 #else
  14890 /*** IUnknown methods ***/
  14891 static inline HRESULT IUserNotification2_QueryInterface(IUserNotification2* This,REFIID riid,void **ppvObject) {
  14892     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14893 }
  14894 static inline ULONG IUserNotification2_AddRef(IUserNotification2* This) {
  14895     return This->lpVtbl->AddRef(This);
  14896 }
  14897 static inline ULONG IUserNotification2_Release(IUserNotification2* This) {
  14898     return This->lpVtbl->Release(This);
  14899 }
  14900 /*** IUserNotification2 methods ***/
  14901 static inline HRESULT IUserNotification2_SetBalloonInfo(IUserNotification2* This,LPCWSTR pszTitle,LPCWSTR pszText,DWORD dwInfoFlags) {
  14902     return This->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags);
  14903 }
  14904 static inline HRESULT IUserNotification2_SetBalloonRetry(IUserNotification2* This,DWORD dwShowTime,DWORD dwInterval,UINT cRetryCount) {
  14905     return This->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount);
  14906 }
  14907 static inline HRESULT IUserNotification2_SetIconInfo(IUserNotification2* This,HICON hIcon,LPCWSTR pszToolTip) {
  14908     return This->lpVtbl->SetIconInfo(This,hIcon,pszToolTip);
  14909 }
  14910 static inline HRESULT IUserNotification2_Show(IUserNotification2* This,IQueryContinue *pqc,DWORD dwContinuePollInterval,IUserNotificationCallback *pSink) {
  14911     return This->lpVtbl->Show(This,pqc,dwContinuePollInterval,pSink);
  14912 }
  14913 static inline HRESULT IUserNotification2_PlaySound(IUserNotification2* This,LPCWSTR pszSoundName) {
  14914     return This->lpVtbl->PlaySound(This,pszSoundName);
  14915 }
  14916 #endif
  14917 #endif
  14918 
  14919 #endif
  14920 
  14921 
  14922 #endif  /* __IUserNotification2_INTERFACE_DEFINED__ */
  14923 
  14924 
  14925 /*****************************************************************************
  14926  * IItemNameLimits interface
  14927  */
  14928 #ifndef __IItemNameLimits_INTERFACE_DEFINED__
  14929 #define __IItemNameLimits_INTERFACE_DEFINED__
  14930 
  14931 DEFINE_GUID(IID_IItemNameLimits, 0x1df0d7f1, 0xb267, 0x4d28, 0x8b,0x10, 0x12,0xe2,0x32,0x02,0xa5,0xc4);
  14932 #if defined(__cplusplus) && !defined(CINTERFACE)
  14933 MIDL_INTERFACE("1df0d7f1-b267-4d28-8b10-12e23202a5c4")
  14934 IItemNameLimits : public IUnknown
  14935 {
  14936     virtual HRESULT STDMETHODCALLTYPE GetValidCharacters(
  14937         LPWSTR *ppwszValidChars,
  14938         LPWSTR *ppwszInvalidChars) = 0;
  14939 
  14940     virtual HRESULT STDMETHODCALLTYPE GetMaxLength(
  14941         LPCWSTR pszName,
  14942         int *piMaxNameLen) = 0;
  14943 
  14944 };
  14945 #ifdef __CRT_UUID_DECL
  14946 __CRT_UUID_DECL(IItemNameLimits, 0x1df0d7f1, 0xb267, 0x4d28, 0x8b,0x10, 0x12,0xe2,0x32,0x02,0xa5,0xc4)
  14947 #endif
  14948 #else
  14949 typedef struct IItemNameLimitsVtbl {
  14950     BEGIN_INTERFACE
  14951 
  14952     /*** IUnknown methods ***/
  14953     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  14954         IItemNameLimits *This,
  14955         REFIID riid,
  14956         void **ppvObject);
  14957 
  14958     ULONG (STDMETHODCALLTYPE *AddRef)(
  14959         IItemNameLimits *This);
  14960 
  14961     ULONG (STDMETHODCALLTYPE *Release)(
  14962         IItemNameLimits *This);
  14963 
  14964     /*** IItemNameLimits methods ***/
  14965     HRESULT (STDMETHODCALLTYPE *GetValidCharacters)(
  14966         IItemNameLimits *This,
  14967         LPWSTR *ppwszValidChars,
  14968         LPWSTR *ppwszInvalidChars);
  14969 
  14970     HRESULT (STDMETHODCALLTYPE *GetMaxLength)(
  14971         IItemNameLimits *This,
  14972         LPCWSTR pszName,
  14973         int *piMaxNameLen);
  14974 
  14975     END_INTERFACE
  14976 } IItemNameLimitsVtbl;
  14977 
  14978 interface IItemNameLimits {
  14979     CONST_VTBL IItemNameLimitsVtbl* lpVtbl;
  14980 };
  14981 
  14982 #ifdef COBJMACROS
  14983 #ifndef WIDL_C_INLINE_WRAPPERS
  14984 /*** IUnknown methods ***/
  14985 #define IItemNameLimits_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  14986 #define IItemNameLimits_AddRef(This) (This)->lpVtbl->AddRef(This)
  14987 #define IItemNameLimits_Release(This) (This)->lpVtbl->Release(This)
  14988 /*** IItemNameLimits methods ***/
  14989 #define IItemNameLimits_GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars) (This)->lpVtbl->GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars)
  14990 #define IItemNameLimits_GetMaxLength(This,pszName,piMaxNameLen) (This)->lpVtbl->GetMaxLength(This,pszName,piMaxNameLen)
  14991 #else
  14992 /*** IUnknown methods ***/
  14993 static inline HRESULT IItemNameLimits_QueryInterface(IItemNameLimits* This,REFIID riid,void **ppvObject) {
  14994     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  14995 }
  14996 static inline ULONG IItemNameLimits_AddRef(IItemNameLimits* This) {
  14997     return This->lpVtbl->AddRef(This);
  14998 }
  14999 static inline ULONG IItemNameLimits_Release(IItemNameLimits* This) {
  15000     return This->lpVtbl->Release(This);
  15001 }
  15002 /*** IItemNameLimits methods ***/
  15003 static inline HRESULT IItemNameLimits_GetValidCharacters(IItemNameLimits* This,LPWSTR *ppwszValidChars,LPWSTR *ppwszInvalidChars) {
  15004     return This->lpVtbl->GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars);
  15005 }
  15006 static inline HRESULT IItemNameLimits_GetMaxLength(IItemNameLimits* This,LPCWSTR pszName,int *piMaxNameLen) {
  15007     return This->lpVtbl->GetMaxLength(This,pszName,piMaxNameLen);
  15008 }
  15009 #endif
  15010 #endif
  15011 
  15012 #endif
  15013 
  15014 
  15015 #endif  /* __IItemNameLimits_INTERFACE_DEFINED__ */
  15016 
  15017 
  15018 #if NTDDI_VERSION >= NTDDI_VISTA
  15019 #ifndef __ICondition_FWD_DEFINED__
  15020 #define __ICondition_FWD_DEFINED__
  15021 typedef interface ICondition ICondition;
  15022 #ifdef __cplusplus
  15023 interface ICondition;
  15024 #endif /* __cplusplus */
  15025 #endif
  15026 
  15027 
  15028 /*****************************************************************************
  15029  * ISearchFolderItemFactory interface
  15030  */
  15031 #ifndef __ISearchFolderItemFactory_INTERFACE_DEFINED__
  15032 #define __ISearchFolderItemFactory_INTERFACE_DEFINED__
  15033 
  15034 DEFINE_GUID(IID_ISearchFolderItemFactory, 0xa0ffbc28, 0x5482, 0x4366, 0xbe,0x27, 0x3e,0x81,0xe7,0x8e,0x06,0xc2);
  15035 #if defined(__cplusplus) && !defined(CINTERFACE)
  15036 MIDL_INTERFACE("a0ffbc28-5482-4366-be27-3e81e78e06c2")
  15037 ISearchFolderItemFactory : public IUnknown
  15038 {
  15039     virtual HRESULT STDMETHODCALLTYPE SetDisplayName(
  15040         LPCWSTR pszDisplayName) = 0;
  15041 
  15042     virtual HRESULT STDMETHODCALLTYPE SetFolderTypeID(
  15043         FOLDERTYPEID ftid) = 0;
  15044 
  15045     virtual HRESULT STDMETHODCALLTYPE SetFolderLogicalViewMode(
  15046         FOLDERLOGICALVIEWMODE flvm) = 0;
  15047 
  15048     virtual HRESULT STDMETHODCALLTYPE SetIconSize(
  15049         int iIconSize) = 0;
  15050 
  15051     virtual HRESULT STDMETHODCALLTYPE SetVisibleColumns(
  15052         UINT cVisibleColumns,
  15053         PROPERTYKEY *rgKey) = 0;
  15054 
  15055     virtual HRESULT STDMETHODCALLTYPE SetSortColumns(
  15056         UINT cSortColumns,
  15057         SORTCOLUMN *rgSortColumns) = 0;
  15058 
  15059     virtual HRESULT STDMETHODCALLTYPE SetGroupColumn(
  15060         REFPROPERTYKEY keyGroup) = 0;
  15061 
  15062     virtual HRESULT STDMETHODCALLTYPE SetStacks(
  15063         UINT cStackKeys,
  15064         PROPERTYKEY *rgStackKeys) = 0;
  15065 
  15066     virtual HRESULT STDMETHODCALLTYPE SetScope(
  15067         IShellItemArray *psiaScope) = 0;
  15068 
  15069     virtual HRESULT STDMETHODCALLTYPE SetCondition(
  15070         ICondition *pCondition) = 0;
  15071 
  15072     virtual HRESULT STDMETHODCALLTYPE GetShellItem(
  15073         REFIID riid,
  15074         void **ppv) = 0;
  15075 
  15076     virtual HRESULT STDMETHODCALLTYPE GetIDList(
  15077         PIDLIST_ABSOLUTE *ppidl) = 0;
  15078 
  15079 };
  15080 #ifdef __CRT_UUID_DECL
  15081 __CRT_UUID_DECL(ISearchFolderItemFactory, 0xa0ffbc28, 0x5482, 0x4366, 0xbe,0x27, 0x3e,0x81,0xe7,0x8e,0x06,0xc2)
  15082 #endif
  15083 #else
  15084 typedef struct ISearchFolderItemFactoryVtbl {
  15085     BEGIN_INTERFACE
  15086 
  15087     /*** IUnknown methods ***/
  15088     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15089         ISearchFolderItemFactory *This,
  15090         REFIID riid,
  15091         void **ppvObject);
  15092 
  15093     ULONG (STDMETHODCALLTYPE *AddRef)(
  15094         ISearchFolderItemFactory *This);
  15095 
  15096     ULONG (STDMETHODCALLTYPE *Release)(
  15097         ISearchFolderItemFactory *This);
  15098 
  15099     /*** ISearchFolderItemFactory methods ***/
  15100     HRESULT (STDMETHODCALLTYPE *SetDisplayName)(
  15101         ISearchFolderItemFactory *This,
  15102         LPCWSTR pszDisplayName);
  15103 
  15104     HRESULT (STDMETHODCALLTYPE *SetFolderTypeID)(
  15105         ISearchFolderItemFactory *This,
  15106         FOLDERTYPEID ftid);
  15107 
  15108     HRESULT (STDMETHODCALLTYPE *SetFolderLogicalViewMode)(
  15109         ISearchFolderItemFactory *This,
  15110         FOLDERLOGICALVIEWMODE flvm);
  15111 
  15112     HRESULT (STDMETHODCALLTYPE *SetIconSize)(
  15113         ISearchFolderItemFactory *This,
  15114         int iIconSize);
  15115 
  15116     HRESULT (STDMETHODCALLTYPE *SetVisibleColumns)(
  15117         ISearchFolderItemFactory *This,
  15118         UINT cVisibleColumns,
  15119         PROPERTYKEY *rgKey);
  15120 
  15121     HRESULT (STDMETHODCALLTYPE *SetSortColumns)(
  15122         ISearchFolderItemFactory *This,
  15123         UINT cSortColumns,
  15124         SORTCOLUMN *rgSortColumns);
  15125 
  15126     HRESULT (STDMETHODCALLTYPE *SetGroupColumn)(
  15127         ISearchFolderItemFactory *This,
  15128         REFPROPERTYKEY keyGroup);
  15129 
  15130     HRESULT (STDMETHODCALLTYPE *SetStacks)(
  15131         ISearchFolderItemFactory *This,
  15132         UINT cStackKeys,
  15133         PROPERTYKEY *rgStackKeys);
  15134 
  15135     HRESULT (STDMETHODCALLTYPE *SetScope)(
  15136         ISearchFolderItemFactory *This,
  15137         IShellItemArray *psiaScope);
  15138 
  15139     HRESULT (STDMETHODCALLTYPE *SetCondition)(
  15140         ISearchFolderItemFactory *This,
  15141         ICondition *pCondition);
  15142 
  15143     HRESULT (STDMETHODCALLTYPE *GetShellItem)(
  15144         ISearchFolderItemFactory *This,
  15145         REFIID riid,
  15146         void **ppv);
  15147 
  15148     HRESULT (STDMETHODCALLTYPE *GetIDList)(
  15149         ISearchFolderItemFactory *This,
  15150         PIDLIST_ABSOLUTE *ppidl);
  15151 
  15152     END_INTERFACE
  15153 } ISearchFolderItemFactoryVtbl;
  15154 
  15155 interface ISearchFolderItemFactory {
  15156     CONST_VTBL ISearchFolderItemFactoryVtbl* lpVtbl;
  15157 };
  15158 
  15159 #ifdef COBJMACROS
  15160 #ifndef WIDL_C_INLINE_WRAPPERS
  15161 /*** IUnknown methods ***/
  15162 #define ISearchFolderItemFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15163 #define ISearchFolderItemFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
  15164 #define ISearchFolderItemFactory_Release(This) (This)->lpVtbl->Release(This)
  15165 /*** ISearchFolderItemFactory methods ***/
  15166 #define ISearchFolderItemFactory_SetDisplayName(This,pszDisplayName) (This)->lpVtbl->SetDisplayName(This,pszDisplayName)
  15167 #define ISearchFolderItemFactory_SetFolderTypeID(This,ftid) (This)->lpVtbl->SetFolderTypeID(This,ftid)
  15168 #define ISearchFolderItemFactory_SetFolderLogicalViewMode(This,flvm) (This)->lpVtbl->SetFolderLogicalViewMode(This,flvm)
  15169 #define ISearchFolderItemFactory_SetIconSize(This,iIconSize) (This)->lpVtbl->SetIconSize(This,iIconSize)
  15170 #define ISearchFolderItemFactory_SetVisibleColumns(This,cVisibleColumns,rgKey) (This)->lpVtbl->SetVisibleColumns(This,cVisibleColumns,rgKey)
  15171 #define ISearchFolderItemFactory_SetSortColumns(This,cSortColumns,rgSortColumns) (This)->lpVtbl->SetSortColumns(This,cSortColumns,rgSortColumns)
  15172 #define ISearchFolderItemFactory_SetGroupColumn(This,keyGroup) (This)->lpVtbl->SetGroupColumn(This,keyGroup)
  15173 #define ISearchFolderItemFactory_SetStacks(This,cStackKeys,rgStackKeys) (This)->lpVtbl->SetStacks(This,cStackKeys,rgStackKeys)
  15174 #define ISearchFolderItemFactory_SetScope(This,psiaScope) (This)->lpVtbl->SetScope(This,psiaScope)
  15175 #define ISearchFolderItemFactory_SetCondition(This,pCondition) (This)->lpVtbl->SetCondition(This,pCondition)
  15176 #define ISearchFolderItemFactory_GetShellItem(This,riid,ppv) (This)->lpVtbl->GetShellItem(This,riid,ppv)
  15177 #define ISearchFolderItemFactory_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
  15178 #else
  15179 /*** IUnknown methods ***/
  15180 static inline HRESULT ISearchFolderItemFactory_QueryInterface(ISearchFolderItemFactory* This,REFIID riid,void **ppvObject) {
  15181     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15182 }
  15183 static inline ULONG ISearchFolderItemFactory_AddRef(ISearchFolderItemFactory* This) {
  15184     return This->lpVtbl->AddRef(This);
  15185 }
  15186 static inline ULONG ISearchFolderItemFactory_Release(ISearchFolderItemFactory* This) {
  15187     return This->lpVtbl->Release(This);
  15188 }
  15189 /*** ISearchFolderItemFactory methods ***/
  15190 static inline HRESULT ISearchFolderItemFactory_SetDisplayName(ISearchFolderItemFactory* This,LPCWSTR pszDisplayName) {
  15191     return This->lpVtbl->SetDisplayName(This,pszDisplayName);
  15192 }
  15193 static inline HRESULT ISearchFolderItemFactory_SetFolderTypeID(ISearchFolderItemFactory* This,FOLDERTYPEID ftid) {
  15194     return This->lpVtbl->SetFolderTypeID(This,ftid);
  15195 }
  15196 static inline HRESULT ISearchFolderItemFactory_SetFolderLogicalViewMode(ISearchFolderItemFactory* This,FOLDERLOGICALVIEWMODE flvm) {
  15197     return This->lpVtbl->SetFolderLogicalViewMode(This,flvm);
  15198 }
  15199 static inline HRESULT ISearchFolderItemFactory_SetIconSize(ISearchFolderItemFactory* This,int iIconSize) {
  15200     return This->lpVtbl->SetIconSize(This,iIconSize);
  15201 }
  15202 static inline HRESULT ISearchFolderItemFactory_SetVisibleColumns(ISearchFolderItemFactory* This,UINT cVisibleColumns,PROPERTYKEY *rgKey) {
  15203     return This->lpVtbl->SetVisibleColumns(This,cVisibleColumns,rgKey);
  15204 }
  15205 static inline HRESULT ISearchFolderItemFactory_SetSortColumns(ISearchFolderItemFactory* This,UINT cSortColumns,SORTCOLUMN *rgSortColumns) {
  15206     return This->lpVtbl->SetSortColumns(This,cSortColumns,rgSortColumns);
  15207 }
  15208 static inline HRESULT ISearchFolderItemFactory_SetGroupColumn(ISearchFolderItemFactory* This,REFPROPERTYKEY keyGroup) {
  15209     return This->lpVtbl->SetGroupColumn(This,keyGroup);
  15210 }
  15211 static inline HRESULT ISearchFolderItemFactory_SetStacks(ISearchFolderItemFactory* This,UINT cStackKeys,PROPERTYKEY *rgStackKeys) {
  15212     return This->lpVtbl->SetStacks(This,cStackKeys,rgStackKeys);
  15213 }
  15214 static inline HRESULT ISearchFolderItemFactory_SetScope(ISearchFolderItemFactory* This,IShellItemArray *psiaScope) {
  15215     return This->lpVtbl->SetScope(This,psiaScope);
  15216 }
  15217 static inline HRESULT ISearchFolderItemFactory_SetCondition(ISearchFolderItemFactory* This,ICondition *pCondition) {
  15218     return This->lpVtbl->SetCondition(This,pCondition);
  15219 }
  15220 static inline HRESULT ISearchFolderItemFactory_GetShellItem(ISearchFolderItemFactory* This,REFIID riid,void **ppv) {
  15221     return This->lpVtbl->GetShellItem(This,riid,ppv);
  15222 }
  15223 static inline HRESULT ISearchFolderItemFactory_GetIDList(ISearchFolderItemFactory* This,PIDLIST_ABSOLUTE *ppidl) {
  15224     return This->lpVtbl->GetIDList(This,ppidl);
  15225 }
  15226 #endif
  15227 #endif
  15228 
  15229 #endif
  15230 
  15231 
  15232 #endif  /* __ISearchFolderItemFactory_INTERFACE_DEFINED__ */
  15233 
  15234 #endif
  15235 
  15236 #define IEI_PRIORITY_MAX ITSAT_MAX_PRIORITY
  15237 #define IEI_PRIORITY_MIN ITSAT_MIN_PRIORITY
  15238 #define IEIT_PRIORITY_NORMAL ITSAT_DEFAULT_PRIORITY
  15239 
  15240 #define IEIFLAG_ASYNC 0x0001
  15241 #define IEIFLAG_CACHE 0x0002
  15242 #define IEIFLAG_ASPECT 0x0004
  15243 #define IEIFLAG_OFFLINE 0x0008
  15244 #define IEIFLAG_GLEAM 0x0010
  15245 #define IEIFLAG_SCREEN 0x0020
  15246 #define IEIFLAG_ORIGSIZE 0x0040
  15247 #define IEIFLAG_NOSTAMP 0x0080
  15248 #define IEIFLAG_NOBORDER 0x0100
  15249 #define IEIFLAG_QUALITY 0x0200
  15250 #define IEIFLAG_REFRESH 0x0400
  15251 
  15252 /*****************************************************************************
  15253  * IExtractImage interface
  15254  */
  15255 #ifndef __IExtractImage_INTERFACE_DEFINED__
  15256 #define __IExtractImage_INTERFACE_DEFINED__
  15257 
  15258 DEFINE_GUID(IID_IExtractImage, 0xbb2e617c, 0x0920, 0x11d1, 0x9a,0x0b, 0x00,0xc0,0x4f,0xc2,0xd6,0xc1);
  15259 #if defined(__cplusplus) && !defined(CINTERFACE)
  15260 MIDL_INTERFACE("bb2e617c-0920-11d1-9a0b-00c04fc2d6c1")
  15261 IExtractImage : public IUnknown
  15262 {
  15263     virtual HRESULT STDMETHODCALLTYPE GetLocation(
  15264         LPWSTR pszPathBuffer,
  15265         DWORD cch,
  15266         DWORD *pdwPriority,
  15267         const SIZE *prgSize,
  15268         DWORD dwRecClrDepth,
  15269         DWORD *pdwFlags) = 0;
  15270 
  15271     virtual HRESULT STDMETHODCALLTYPE Extract(
  15272         HBITMAP *phBmpThumbnail) = 0;
  15273 
  15274 };
  15275 #ifdef __CRT_UUID_DECL
  15276 __CRT_UUID_DECL(IExtractImage, 0xbb2e617c, 0x0920, 0x11d1, 0x9a,0x0b, 0x00,0xc0,0x4f,0xc2,0xd6,0xc1)
  15277 #endif
  15278 #else
  15279 typedef struct IExtractImageVtbl {
  15280     BEGIN_INTERFACE
  15281 
  15282     /*** IUnknown methods ***/
  15283     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15284         IExtractImage *This,
  15285         REFIID riid,
  15286         void **ppvObject);
  15287 
  15288     ULONG (STDMETHODCALLTYPE *AddRef)(
  15289         IExtractImage *This);
  15290 
  15291     ULONG (STDMETHODCALLTYPE *Release)(
  15292         IExtractImage *This);
  15293 
  15294     /*** IExtractImage methods ***/
  15295     HRESULT (STDMETHODCALLTYPE *GetLocation)(
  15296         IExtractImage *This,
  15297         LPWSTR pszPathBuffer,
  15298         DWORD cch,
  15299         DWORD *pdwPriority,
  15300         const SIZE *prgSize,
  15301         DWORD dwRecClrDepth,
  15302         DWORD *pdwFlags);
  15303 
  15304     HRESULT (STDMETHODCALLTYPE *Extract)(
  15305         IExtractImage *This,
  15306         HBITMAP *phBmpThumbnail);
  15307 
  15308     END_INTERFACE
  15309 } IExtractImageVtbl;
  15310 
  15311 interface IExtractImage {
  15312     CONST_VTBL IExtractImageVtbl* lpVtbl;
  15313 };
  15314 
  15315 #ifdef COBJMACROS
  15316 #ifndef WIDL_C_INLINE_WRAPPERS
  15317 /*** IUnknown methods ***/
  15318 #define IExtractImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15319 #define IExtractImage_AddRef(This) (This)->lpVtbl->AddRef(This)
  15320 #define IExtractImage_Release(This) (This)->lpVtbl->Release(This)
  15321 /*** IExtractImage methods ***/
  15322 #define IExtractImage_GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags) (This)->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags)
  15323 #define IExtractImage_Extract(This,phBmpThumbnail) (This)->lpVtbl->Extract(This,phBmpThumbnail)
  15324 #else
  15325 /*** IUnknown methods ***/
  15326 static inline HRESULT IExtractImage_QueryInterface(IExtractImage* This,REFIID riid,void **ppvObject) {
  15327     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15328 }
  15329 static inline ULONG IExtractImage_AddRef(IExtractImage* This) {
  15330     return This->lpVtbl->AddRef(This);
  15331 }
  15332 static inline ULONG IExtractImage_Release(IExtractImage* This) {
  15333     return This->lpVtbl->Release(This);
  15334 }
  15335 /*** IExtractImage methods ***/
  15336 static inline HRESULT IExtractImage_GetLocation(IExtractImage* This,LPWSTR pszPathBuffer,DWORD cch,DWORD *pdwPriority,const SIZE *prgSize,DWORD dwRecClrDepth,DWORD *pdwFlags) {
  15337     return This->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags);
  15338 }
  15339 static inline HRESULT IExtractImage_Extract(IExtractImage* This,HBITMAP *phBmpThumbnail) {
  15340     return This->lpVtbl->Extract(This,phBmpThumbnail);
  15341 }
  15342 #endif
  15343 #endif
  15344 
  15345 #endif
  15346 
  15347 
  15348 #endif  /* __IExtractImage_INTERFACE_DEFINED__ */
  15349 
  15350 typedef IExtractImage *LPEXTRACTIMAGE;
  15351 
  15352 /*****************************************************************************
  15353  * IExtractImage2 interface
  15354  */
  15355 #ifndef __IExtractImage2_INTERFACE_DEFINED__
  15356 #define __IExtractImage2_INTERFACE_DEFINED__
  15357 
  15358 DEFINE_GUID(IID_IExtractImage2, 0x953bb1ee, 0x93b4, 0x11d1, 0x98,0xa3, 0x00,0xc0,0x4f,0xb6,0x87,0xda);
  15359 #if defined(__cplusplus) && !defined(CINTERFACE)
  15360 MIDL_INTERFACE("953bb1ee-93b4-11d1-98a3-00c04fb687da")
  15361 IExtractImage2 : public IExtractImage
  15362 {
  15363     virtual HRESULT STDMETHODCALLTYPE GetDateStamp(
  15364         FILETIME *pDateStamp) = 0;
  15365 
  15366 };
  15367 #ifdef __CRT_UUID_DECL
  15368 __CRT_UUID_DECL(IExtractImage2, 0x953bb1ee, 0x93b4, 0x11d1, 0x98,0xa3, 0x00,0xc0,0x4f,0xb6,0x87,0xda)
  15369 #endif
  15370 #else
  15371 typedef struct IExtractImage2Vtbl {
  15372     BEGIN_INTERFACE
  15373 
  15374     /*** IUnknown methods ***/
  15375     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15376         IExtractImage2 *This,
  15377         REFIID riid,
  15378         void **ppvObject);
  15379 
  15380     ULONG (STDMETHODCALLTYPE *AddRef)(
  15381         IExtractImage2 *This);
  15382 
  15383     ULONG (STDMETHODCALLTYPE *Release)(
  15384         IExtractImage2 *This);
  15385 
  15386     /*** IExtractImage methods ***/
  15387     HRESULT (STDMETHODCALLTYPE *GetLocation)(
  15388         IExtractImage2 *This,
  15389         LPWSTR pszPathBuffer,
  15390         DWORD cch,
  15391         DWORD *pdwPriority,
  15392         const SIZE *prgSize,
  15393         DWORD dwRecClrDepth,
  15394         DWORD *pdwFlags);
  15395 
  15396     HRESULT (STDMETHODCALLTYPE *Extract)(
  15397         IExtractImage2 *This,
  15398         HBITMAP *phBmpThumbnail);
  15399 
  15400     /*** IExtractImage2 methods ***/
  15401     HRESULT (STDMETHODCALLTYPE *GetDateStamp)(
  15402         IExtractImage2 *This,
  15403         FILETIME *pDateStamp);
  15404 
  15405     END_INTERFACE
  15406 } IExtractImage2Vtbl;
  15407 
  15408 interface IExtractImage2 {
  15409     CONST_VTBL IExtractImage2Vtbl* lpVtbl;
  15410 };
  15411 
  15412 #ifdef COBJMACROS
  15413 #ifndef WIDL_C_INLINE_WRAPPERS
  15414 /*** IUnknown methods ***/
  15415 #define IExtractImage2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15416 #define IExtractImage2_AddRef(This) (This)->lpVtbl->AddRef(This)
  15417 #define IExtractImage2_Release(This) (This)->lpVtbl->Release(This)
  15418 /*** IExtractImage methods ***/
  15419 #define IExtractImage2_GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags) (This)->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags)
  15420 #define IExtractImage2_Extract(This,phBmpThumbnail) (This)->lpVtbl->Extract(This,phBmpThumbnail)
  15421 /*** IExtractImage2 methods ***/
  15422 #define IExtractImage2_GetDateStamp(This,pDateStamp) (This)->lpVtbl->GetDateStamp(This,pDateStamp)
  15423 #else
  15424 /*** IUnknown methods ***/
  15425 static inline HRESULT IExtractImage2_QueryInterface(IExtractImage2* This,REFIID riid,void **ppvObject) {
  15426     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15427 }
  15428 static inline ULONG IExtractImage2_AddRef(IExtractImage2* This) {
  15429     return This->lpVtbl->AddRef(This);
  15430 }
  15431 static inline ULONG IExtractImage2_Release(IExtractImage2* This) {
  15432     return This->lpVtbl->Release(This);
  15433 }
  15434 /*** IExtractImage methods ***/
  15435 static inline HRESULT IExtractImage2_GetLocation(IExtractImage2* This,LPWSTR pszPathBuffer,DWORD cch,DWORD *pdwPriority,const SIZE *prgSize,DWORD dwRecClrDepth,DWORD *pdwFlags) {
  15436     return This->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags);
  15437 }
  15438 static inline HRESULT IExtractImage2_Extract(IExtractImage2* This,HBITMAP *phBmpThumbnail) {
  15439     return This->lpVtbl->Extract(This,phBmpThumbnail);
  15440 }
  15441 /*** IExtractImage2 methods ***/
  15442 static inline HRESULT IExtractImage2_GetDateStamp(IExtractImage2* This,FILETIME *pDateStamp) {
  15443     return This->lpVtbl->GetDateStamp(This,pDateStamp);
  15444 }
  15445 #endif
  15446 #endif
  15447 
  15448 #endif
  15449 
  15450 
  15451 #endif  /* __IExtractImage2_INTERFACE_DEFINED__ */
  15452 
  15453 typedef IExtractImage2 *LPEXTRACTIMAGE2;
  15454 
  15455 /*****************************************************************************
  15456  * IThumbnailHandlerFactory interface
  15457  */
  15458 #ifndef __IThumbnailHandlerFactory_INTERFACE_DEFINED__
  15459 #define __IThumbnailHandlerFactory_INTERFACE_DEFINED__
  15460 
  15461 DEFINE_GUID(IID_IThumbnailHandlerFactory, 0xe35b4b2e, 0x00da, 0x4bc1, 0x9f,0x13, 0x38,0xbc,0x11,0xf5,0xd4,0x17);
  15462 #if defined(__cplusplus) && !defined(CINTERFACE)
  15463 MIDL_INTERFACE("e35b4b2e-00da-4bc1-9f13-38bc11f5d417")
  15464 IThumbnailHandlerFactory : public IUnknown
  15465 {
  15466     virtual HRESULT STDMETHODCALLTYPE GetThumbnailHandler(
  15467         PCUITEMID_CHILD pidlChild,
  15468         IBindCtx *pbc,
  15469         REFIID riid,
  15470         void **ppv) = 0;
  15471 
  15472 };
  15473 #ifdef __CRT_UUID_DECL
  15474 __CRT_UUID_DECL(IThumbnailHandlerFactory, 0xe35b4b2e, 0x00da, 0x4bc1, 0x9f,0x13, 0x38,0xbc,0x11,0xf5,0xd4,0x17)
  15475 #endif
  15476 #else
  15477 typedef struct IThumbnailHandlerFactoryVtbl {
  15478     BEGIN_INTERFACE
  15479 
  15480     /*** IUnknown methods ***/
  15481     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15482         IThumbnailHandlerFactory *This,
  15483         REFIID riid,
  15484         void **ppvObject);
  15485 
  15486     ULONG (STDMETHODCALLTYPE *AddRef)(
  15487         IThumbnailHandlerFactory *This);
  15488 
  15489     ULONG (STDMETHODCALLTYPE *Release)(
  15490         IThumbnailHandlerFactory *This);
  15491 
  15492     /*** IThumbnailHandlerFactory methods ***/
  15493     HRESULT (STDMETHODCALLTYPE *GetThumbnailHandler)(
  15494         IThumbnailHandlerFactory *This,
  15495         PCUITEMID_CHILD pidlChild,
  15496         IBindCtx *pbc,
  15497         REFIID riid,
  15498         void **ppv);
  15499 
  15500     END_INTERFACE
  15501 } IThumbnailHandlerFactoryVtbl;
  15502 
  15503 interface IThumbnailHandlerFactory {
  15504     CONST_VTBL IThumbnailHandlerFactoryVtbl* lpVtbl;
  15505 };
  15506 
  15507 #ifdef COBJMACROS
  15508 #ifndef WIDL_C_INLINE_WRAPPERS
  15509 /*** IUnknown methods ***/
  15510 #define IThumbnailHandlerFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15511 #define IThumbnailHandlerFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
  15512 #define IThumbnailHandlerFactory_Release(This) (This)->lpVtbl->Release(This)
  15513 /*** IThumbnailHandlerFactory methods ***/
  15514 #define IThumbnailHandlerFactory_GetThumbnailHandler(This,pidlChild,pbc,riid,ppv) (This)->lpVtbl->GetThumbnailHandler(This,pidlChild,pbc,riid,ppv)
  15515 #else
  15516 /*** IUnknown methods ***/
  15517 static inline HRESULT IThumbnailHandlerFactory_QueryInterface(IThumbnailHandlerFactory* This,REFIID riid,void **ppvObject) {
  15518     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15519 }
  15520 static inline ULONG IThumbnailHandlerFactory_AddRef(IThumbnailHandlerFactory* This) {
  15521     return This->lpVtbl->AddRef(This);
  15522 }
  15523 static inline ULONG IThumbnailHandlerFactory_Release(IThumbnailHandlerFactory* This) {
  15524     return This->lpVtbl->Release(This);
  15525 }
  15526 /*** IThumbnailHandlerFactory methods ***/
  15527 static inline HRESULT IThumbnailHandlerFactory_GetThumbnailHandler(IThumbnailHandlerFactory* This,PCUITEMID_CHILD pidlChild,IBindCtx *pbc,REFIID riid,void **ppv) {
  15528     return This->lpVtbl->GetThumbnailHandler(This,pidlChild,pbc,riid,ppv);
  15529 }
  15530 #endif
  15531 #endif
  15532 
  15533 #endif
  15534 
  15535 
  15536 #endif  /* __IThumbnailHandlerFactory_INTERFACE_DEFINED__ */
  15537 
  15538 
  15539 /*****************************************************************************
  15540  * IParentAndItem interface
  15541  */
  15542 #ifndef __IParentAndItem_INTERFACE_DEFINED__
  15543 #define __IParentAndItem_INTERFACE_DEFINED__
  15544 
  15545 DEFINE_GUID(IID_IParentAndItem, 0xb3a4b685, 0xb685, 0x4805, 0x99,0xd9, 0x5d,0xea,0xd2,0x87,0x32,0x36);
  15546 #if defined(__cplusplus) && !defined(CINTERFACE)
  15547 MIDL_INTERFACE("b3a4b685-b685-4805-99d9-5dead2873236")
  15548 IParentAndItem : public IUnknown
  15549 {
  15550     virtual HRESULT STDMETHODCALLTYPE SetParentAndItem(
  15551         PCIDLIST_ABSOLUTE pidlParent,
  15552         IShellFolder *psf,
  15553         PCUITEMID_CHILD pidlChild) = 0;
  15554 
  15555     virtual HRESULT STDMETHODCALLTYPE GetParentAndItem(
  15556         PIDLIST_ABSOLUTE *ppidlParent,
  15557         IShellFolder **ppsf,
  15558         PITEMID_CHILD *ppidlChild) = 0;
  15559 
  15560 };
  15561 #ifdef __CRT_UUID_DECL
  15562 __CRT_UUID_DECL(IParentAndItem, 0xb3a4b685, 0xb685, 0x4805, 0x99,0xd9, 0x5d,0xea,0xd2,0x87,0x32,0x36)
  15563 #endif
  15564 #else
  15565 typedef struct IParentAndItemVtbl {
  15566     BEGIN_INTERFACE
  15567 
  15568     /*** IUnknown methods ***/
  15569     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15570         IParentAndItem *This,
  15571         REFIID riid,
  15572         void **ppvObject);
  15573 
  15574     ULONG (STDMETHODCALLTYPE *AddRef)(
  15575         IParentAndItem *This);
  15576 
  15577     ULONG (STDMETHODCALLTYPE *Release)(
  15578         IParentAndItem *This);
  15579 
  15580     /*** IParentAndItem methods ***/
  15581     HRESULT (STDMETHODCALLTYPE *SetParentAndItem)(
  15582         IParentAndItem *This,
  15583         PCIDLIST_ABSOLUTE pidlParent,
  15584         IShellFolder *psf,
  15585         PCUITEMID_CHILD pidlChild);
  15586 
  15587     HRESULT (STDMETHODCALLTYPE *GetParentAndItem)(
  15588         IParentAndItem *This,
  15589         PIDLIST_ABSOLUTE *ppidlParent,
  15590         IShellFolder **ppsf,
  15591         PITEMID_CHILD *ppidlChild);
  15592 
  15593     END_INTERFACE
  15594 } IParentAndItemVtbl;
  15595 
  15596 interface IParentAndItem {
  15597     CONST_VTBL IParentAndItemVtbl* lpVtbl;
  15598 };
  15599 
  15600 #ifdef COBJMACROS
  15601 #ifndef WIDL_C_INLINE_WRAPPERS
  15602 /*** IUnknown methods ***/
  15603 #define IParentAndItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15604 #define IParentAndItem_AddRef(This) (This)->lpVtbl->AddRef(This)
  15605 #define IParentAndItem_Release(This) (This)->lpVtbl->Release(This)
  15606 /*** IParentAndItem methods ***/
  15607 #define IParentAndItem_SetParentAndItem(This,pidlParent,psf,pidlChild) (This)->lpVtbl->SetParentAndItem(This,pidlParent,psf,pidlChild)
  15608 #define IParentAndItem_GetParentAndItem(This,ppidlParent,ppsf,ppidlChild) (This)->lpVtbl->GetParentAndItem(This,ppidlParent,ppsf,ppidlChild)
  15609 #else
  15610 /*** IUnknown methods ***/
  15611 static inline HRESULT IParentAndItem_QueryInterface(IParentAndItem* This,REFIID riid,void **ppvObject) {
  15612     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15613 }
  15614 static inline ULONG IParentAndItem_AddRef(IParentAndItem* This) {
  15615     return This->lpVtbl->AddRef(This);
  15616 }
  15617 static inline ULONG IParentAndItem_Release(IParentAndItem* This) {
  15618     return This->lpVtbl->Release(This);
  15619 }
  15620 /*** IParentAndItem methods ***/
  15621 static inline HRESULT IParentAndItem_SetParentAndItem(IParentAndItem* This,PCIDLIST_ABSOLUTE pidlParent,IShellFolder *psf,PCUITEMID_CHILD pidlChild) {
  15622     return This->lpVtbl->SetParentAndItem(This,pidlParent,psf,pidlChild);
  15623 }
  15624 static inline HRESULT IParentAndItem_GetParentAndItem(IParentAndItem* This,PIDLIST_ABSOLUTE *ppidlParent,IShellFolder **ppsf,PITEMID_CHILD *ppidlChild) {
  15625     return This->lpVtbl->GetParentAndItem(This,ppidlParent,ppsf,ppidlChild);
  15626 }
  15627 #endif
  15628 #endif
  15629 
  15630 #endif
  15631 
  15632 HRESULT STDMETHODCALLTYPE IParentAndItem_RemoteGetParentAndItem_Proxy(
  15633     IParentAndItem* This,
  15634     PIDLIST_ABSOLUTE *ppidlParent,
  15635     IShellFolder **ppsf,
  15636     PITEMID_CHILD *ppidlChild);
  15637 void __RPC_STUB IParentAndItem_RemoteGetParentAndItem_Stub(
  15638     IRpcStubBuffer* This,
  15639     IRpcChannelBuffer* pRpcChannelBuffer,
  15640     PRPC_MESSAGE pRpcMessage,
  15641     DWORD* pdwStubPhase);
  15642 HRESULT CALLBACK IParentAndItem_GetParentAndItem_Proxy(
  15643     IParentAndItem* This,
  15644     PIDLIST_ABSOLUTE *ppidlParent,
  15645     IShellFolder **ppsf,
  15646     PITEMID_CHILD *ppidlChild);
  15647 HRESULT __RPC_STUB IParentAndItem_GetParentAndItem_Stub(
  15648     IParentAndItem* This,
  15649     PIDLIST_ABSOLUTE *ppidlParent,
  15650     IShellFolder **ppsf,
  15651     PITEMID_CHILD *ppidlChild);
  15652 
  15653 #endif  /* __IParentAndItem_INTERFACE_DEFINED__ */
  15654 
  15655 
  15656 /*****************************************************************************
  15657  * IDockingWindow interface
  15658  */
  15659 #ifndef __IDockingWindow_INTERFACE_DEFINED__
  15660 #define __IDockingWindow_INTERFACE_DEFINED__
  15661 
  15662 DEFINE_GUID(IID_IDockingWindow, 0x012dd920, 0x7b26, 0x11d0, 0x8c,0xa9, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8);
  15663 #if defined(__cplusplus) && !defined(CINTERFACE)
  15664 MIDL_INTERFACE("012dd920-7b26-11d0-8ca9-00a0c92dbfe8")
  15665 IDockingWindow : public IOleWindow
  15666 {
  15667     virtual HRESULT STDMETHODCALLTYPE ShowDW(
  15668         WINBOOL fShow) = 0;
  15669 
  15670     virtual HRESULT STDMETHODCALLTYPE CloseDW(
  15671         DWORD dwReserved) = 0;
  15672 
  15673     virtual HRESULT STDMETHODCALLTYPE ResizeBorderDW(
  15674         LPCRECT prcBorder,
  15675         IUnknown *punkToolbarSite,
  15676         WINBOOL fReserved) = 0;
  15677 
  15678 };
  15679 #ifdef __CRT_UUID_DECL
  15680 __CRT_UUID_DECL(IDockingWindow, 0x012dd920, 0x7b26, 0x11d0, 0x8c,0xa9, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8)
  15681 #endif
  15682 #else
  15683 typedef struct IDockingWindowVtbl {
  15684     BEGIN_INTERFACE
  15685 
  15686     /*** IUnknown methods ***/
  15687     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15688         IDockingWindow *This,
  15689         REFIID riid,
  15690         void **ppvObject);
  15691 
  15692     ULONG (STDMETHODCALLTYPE *AddRef)(
  15693         IDockingWindow *This);
  15694 
  15695     ULONG (STDMETHODCALLTYPE *Release)(
  15696         IDockingWindow *This);
  15697 
  15698     /*** IOleWindow methods ***/
  15699     HRESULT (STDMETHODCALLTYPE *GetWindow)(
  15700         IDockingWindow *This,
  15701         HWND *phwnd);
  15702 
  15703     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
  15704         IDockingWindow *This,
  15705         WINBOOL fEnterMode);
  15706 
  15707     /*** IDockingWindow methods ***/
  15708     HRESULT (STDMETHODCALLTYPE *ShowDW)(
  15709         IDockingWindow *This,
  15710         WINBOOL fShow);
  15711 
  15712     HRESULT (STDMETHODCALLTYPE *CloseDW)(
  15713         IDockingWindow *This,
  15714         DWORD dwReserved);
  15715 
  15716     HRESULT (STDMETHODCALLTYPE *ResizeBorderDW)(
  15717         IDockingWindow *This,
  15718         LPCRECT prcBorder,
  15719         IUnknown *punkToolbarSite,
  15720         WINBOOL fReserved);
  15721 
  15722     END_INTERFACE
  15723 } IDockingWindowVtbl;
  15724 
  15725 interface IDockingWindow {
  15726     CONST_VTBL IDockingWindowVtbl* lpVtbl;
  15727 };
  15728 
  15729 #ifdef COBJMACROS
  15730 #ifndef WIDL_C_INLINE_WRAPPERS
  15731 /*** IUnknown methods ***/
  15732 #define IDockingWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15733 #define IDockingWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
  15734 #define IDockingWindow_Release(This) (This)->lpVtbl->Release(This)
  15735 /*** IOleWindow methods ***/
  15736 #define IDockingWindow_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
  15737 #define IDockingWindow_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
  15738 /*** IDockingWindow methods ***/
  15739 #define IDockingWindow_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
  15740 #define IDockingWindow_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
  15741 #define IDockingWindow_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
  15742 #else
  15743 /*** IUnknown methods ***/
  15744 static inline HRESULT IDockingWindow_QueryInterface(IDockingWindow* This,REFIID riid,void **ppvObject) {
  15745     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15746 }
  15747 static inline ULONG IDockingWindow_AddRef(IDockingWindow* This) {
  15748     return This->lpVtbl->AddRef(This);
  15749 }
  15750 static inline ULONG IDockingWindow_Release(IDockingWindow* This) {
  15751     return This->lpVtbl->Release(This);
  15752 }
  15753 /*** IOleWindow methods ***/
  15754 static inline HRESULT IDockingWindow_GetWindow(IDockingWindow* This,HWND *phwnd) {
  15755     return This->lpVtbl->GetWindow(This,phwnd);
  15756 }
  15757 static inline HRESULT IDockingWindow_ContextSensitiveHelp(IDockingWindow* This,WINBOOL fEnterMode) {
  15758     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
  15759 }
  15760 /*** IDockingWindow methods ***/
  15761 static inline HRESULT IDockingWindow_ShowDW(IDockingWindow* This,WINBOOL fShow) {
  15762     return This->lpVtbl->ShowDW(This,fShow);
  15763 }
  15764 static inline HRESULT IDockingWindow_CloseDW(IDockingWindow* This,DWORD dwReserved) {
  15765     return This->lpVtbl->CloseDW(This,dwReserved);
  15766 }
  15767 static inline HRESULT IDockingWindow_ResizeBorderDW(IDockingWindow* This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved) {
  15768     return This->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved);
  15769 }
  15770 #endif
  15771 #endif
  15772 
  15773 #endif
  15774 
  15775 
  15776 #endif  /* __IDockingWindow_INTERFACE_DEFINED__ */
  15777 
  15778 
  15779 #define DBIM_MINSIZE 0x0001
  15780 #define DBIM_MAXSIZE 0x0002
  15781 #define DBIM_INTEGRAL 0x0004
  15782 #define DBIM_ACTUAL 0x0008
  15783 #define DBIM_TITLE 0x0010
  15784 #define DBIM_MODEFLAGS 0x0020
  15785 #define DBIM_BKCOLOR 0x0040
  15786 
  15787 #include <pshpack8.h>
  15788 typedef struct DESKBANDINFO {
  15789     DWORD dwMask;
  15790     POINTL ptMinSize;
  15791     POINTL ptMaxSize;
  15792     POINTL ptIntegral;
  15793     POINTL ptActual;
  15794     WCHAR wszTitle[256];
  15795     DWORD dwModeFlags;
  15796     COLORREF crBkgnd;
  15797 } DESKBANDINFO;
  15798 #include <poppack.h>
  15799 
  15800 #define DBIMF_NORMAL 0x0000
  15801 #define DBIMF_FIXED 0x0001
  15802 #define DBIMF_FIXEDBMP 0x0004
  15803 #define DBIMF_VARIABLEHEIGHT 0x0008
  15804 #define DBIMF_UNDELETEABLE 0x0010
  15805 #define DBIMF_DEBOSSED 0x0020
  15806 #define DBIMF_BKCOLOR 0x0040
  15807 #define DBIMF_USECHEVRON 0x0080
  15808 #define DBIMF_BREAK 0x0100
  15809 #define DBIMF_ADDTOFRONT 0x0200
  15810 #define DBIMF_TOPALIGN 0x0400
  15811 #if NTDDI_VERSION >= NTDDI_VISTA
  15812 #define DBIMF_NOGRIPPER 0x0800
  15813 #define DBIMF_ALWAYSGRIPPER 0x1000
  15814 #define DBIMF_NOMARGINS 0x2000
  15815 #endif
  15816 
  15817 #define DBIF_VIEWMODE_NORMAL 0x0000
  15818 #define DBIF_VIEWMODE_VERTICAL 0x0001
  15819 #define DBIF_VIEWMODE_FLOATING 0x0002
  15820 #define DBIF_VIEWMODE_TRANSPARENT 0x0004
  15821 
  15822 enum tagDESKBANDCID {
  15823     DBID_BANDINFOCHANGED = 0,
  15824     DBID_SHOWONLY = 1,
  15825     DBID_MAXIMIZEBAND = 2,
  15826     DBID_PUSHCHEVRON = 3,
  15827     DBID_DELAYINIT = 4,
  15828     DBID_FINISHINIT = 5,
  15829     DBID_SETWINDOWTHEME = 6,
  15830     DBID_PERMITAUTOHIDE = 7
  15831 };
  15832 
  15833 #define DBPC_SELECTFIRST    (DWORD)-1
  15834 #define DBPC_SELECTLAST     (DWORD)-2
  15835 
  15836 #define CGID_DeskBand IID_IDeskBand
  15837 
  15838 /*****************************************************************************
  15839  * IDeskBand interface
  15840  */
  15841 #ifndef __IDeskBand_INTERFACE_DEFINED__
  15842 #define __IDeskBand_INTERFACE_DEFINED__
  15843 
  15844 DEFINE_GUID(IID_IDeskBand, 0xeb0fe172, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac);
  15845 #if defined(__cplusplus) && !defined(CINTERFACE)
  15846 MIDL_INTERFACE("eb0fe172-1a3a-11d0-89b3-00a0c90a90ac")
  15847 IDeskBand : public IDockingWindow
  15848 {
  15849     virtual HRESULT STDMETHODCALLTYPE GetBandInfo(
  15850         DWORD dwBandID,
  15851         DWORD dwViewMode,
  15852         DESKBANDINFO *pdbi) = 0;
  15853 
  15854 };
  15855 #ifdef __CRT_UUID_DECL
  15856 __CRT_UUID_DECL(IDeskBand, 0xeb0fe172, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac)
  15857 #endif
  15858 #else
  15859 typedef struct IDeskBandVtbl {
  15860     BEGIN_INTERFACE
  15861 
  15862     /*** IUnknown methods ***/
  15863     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15864         IDeskBand *This,
  15865         REFIID riid,
  15866         void **ppvObject);
  15867 
  15868     ULONG (STDMETHODCALLTYPE *AddRef)(
  15869         IDeskBand *This);
  15870 
  15871     ULONG (STDMETHODCALLTYPE *Release)(
  15872         IDeskBand *This);
  15873 
  15874     /*** IOleWindow methods ***/
  15875     HRESULT (STDMETHODCALLTYPE *GetWindow)(
  15876         IDeskBand *This,
  15877         HWND *phwnd);
  15878 
  15879     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
  15880         IDeskBand *This,
  15881         WINBOOL fEnterMode);
  15882 
  15883     /*** IDockingWindow methods ***/
  15884     HRESULT (STDMETHODCALLTYPE *ShowDW)(
  15885         IDeskBand *This,
  15886         WINBOOL fShow);
  15887 
  15888     HRESULT (STDMETHODCALLTYPE *CloseDW)(
  15889         IDeskBand *This,
  15890         DWORD dwReserved);
  15891 
  15892     HRESULT (STDMETHODCALLTYPE *ResizeBorderDW)(
  15893         IDeskBand *This,
  15894         LPCRECT prcBorder,
  15895         IUnknown *punkToolbarSite,
  15896         WINBOOL fReserved);
  15897 
  15898     /*** IDeskBand methods ***/
  15899     HRESULT (STDMETHODCALLTYPE *GetBandInfo)(
  15900         IDeskBand *This,
  15901         DWORD dwBandID,
  15902         DWORD dwViewMode,
  15903         DESKBANDINFO *pdbi);
  15904 
  15905     END_INTERFACE
  15906 } IDeskBandVtbl;
  15907 
  15908 interface IDeskBand {
  15909     CONST_VTBL IDeskBandVtbl* lpVtbl;
  15910 };
  15911 
  15912 #ifdef COBJMACROS
  15913 #ifndef WIDL_C_INLINE_WRAPPERS
  15914 /*** IUnknown methods ***/
  15915 #define IDeskBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  15916 #define IDeskBand_AddRef(This) (This)->lpVtbl->AddRef(This)
  15917 #define IDeskBand_Release(This) (This)->lpVtbl->Release(This)
  15918 /*** IOleWindow methods ***/
  15919 #define IDeskBand_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
  15920 #define IDeskBand_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
  15921 /*** IDockingWindow methods ***/
  15922 #define IDeskBand_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
  15923 #define IDeskBand_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
  15924 #define IDeskBand_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
  15925 /*** IDeskBand methods ***/
  15926 #define IDeskBand_GetBandInfo(This,dwBandID,dwViewMode,pdbi) (This)->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi)
  15927 #else
  15928 /*** IUnknown methods ***/
  15929 static inline HRESULT IDeskBand_QueryInterface(IDeskBand* This,REFIID riid,void **ppvObject) {
  15930     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  15931 }
  15932 static inline ULONG IDeskBand_AddRef(IDeskBand* This) {
  15933     return This->lpVtbl->AddRef(This);
  15934 }
  15935 static inline ULONG IDeskBand_Release(IDeskBand* This) {
  15936     return This->lpVtbl->Release(This);
  15937 }
  15938 /*** IOleWindow methods ***/
  15939 static inline HRESULT IDeskBand_GetWindow(IDeskBand* This,HWND *phwnd) {
  15940     return This->lpVtbl->GetWindow(This,phwnd);
  15941 }
  15942 static inline HRESULT IDeskBand_ContextSensitiveHelp(IDeskBand* This,WINBOOL fEnterMode) {
  15943     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
  15944 }
  15945 /*** IDockingWindow methods ***/
  15946 static inline HRESULT IDeskBand_ShowDW(IDeskBand* This,WINBOOL fShow) {
  15947     return This->lpVtbl->ShowDW(This,fShow);
  15948 }
  15949 static inline HRESULT IDeskBand_CloseDW(IDeskBand* This,DWORD dwReserved) {
  15950     return This->lpVtbl->CloseDW(This,dwReserved);
  15951 }
  15952 static inline HRESULT IDeskBand_ResizeBorderDW(IDeskBand* This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved) {
  15953     return This->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved);
  15954 }
  15955 /*** IDeskBand methods ***/
  15956 static inline HRESULT IDeskBand_GetBandInfo(IDeskBand* This,DWORD dwBandID,DWORD dwViewMode,DESKBANDINFO *pdbi) {
  15957     return This->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi);
  15958 }
  15959 #endif
  15960 #endif
  15961 
  15962 #endif
  15963 
  15964 
  15965 #endif  /* __IDeskBand_INTERFACE_DEFINED__ */
  15966 
  15967 
  15968 #if NTDDI_VERSION >= NTDDI_VISTA
  15969 /*****************************************************************************
  15970  * IDeskBandInfo interface
  15971  */
  15972 #ifndef __IDeskBandInfo_INTERFACE_DEFINED__
  15973 #define __IDeskBandInfo_INTERFACE_DEFINED__
  15974 
  15975 DEFINE_GUID(IID_IDeskBandInfo, 0x77e425fc, 0xcbf9, 0x4307, 0xba,0x6a, 0xbb,0x57,0x27,0x74,0x56,0x61);
  15976 #if defined(__cplusplus) && !defined(CINTERFACE)
  15977 MIDL_INTERFACE("77e425fc-cbf9-4307-ba6a-bb5727745661")
  15978 IDeskBandInfo : public IUnknown
  15979 {
  15980     virtual HRESULT STDMETHODCALLTYPE GetDefaultBandWidth(
  15981         DWORD dwBandID,
  15982         DWORD dwViewMode,
  15983         int *pnWidth) = 0;
  15984 
  15985 };
  15986 #ifdef __CRT_UUID_DECL
  15987 __CRT_UUID_DECL(IDeskBandInfo, 0x77e425fc, 0xcbf9, 0x4307, 0xba,0x6a, 0xbb,0x57,0x27,0x74,0x56,0x61)
  15988 #endif
  15989 #else
  15990 typedef struct IDeskBandInfoVtbl {
  15991     BEGIN_INTERFACE
  15992 
  15993     /*** IUnknown methods ***/
  15994     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  15995         IDeskBandInfo *This,
  15996         REFIID riid,
  15997         void **ppvObject);
  15998 
  15999     ULONG (STDMETHODCALLTYPE *AddRef)(
  16000         IDeskBandInfo *This);
  16001 
  16002     ULONG (STDMETHODCALLTYPE *Release)(
  16003         IDeskBandInfo *This);
  16004 
  16005     /*** IDeskBandInfo methods ***/
  16006     HRESULT (STDMETHODCALLTYPE *GetDefaultBandWidth)(
  16007         IDeskBandInfo *This,
  16008         DWORD dwBandID,
  16009         DWORD dwViewMode,
  16010         int *pnWidth);
  16011 
  16012     END_INTERFACE
  16013 } IDeskBandInfoVtbl;
  16014 
  16015 interface IDeskBandInfo {
  16016     CONST_VTBL IDeskBandInfoVtbl* lpVtbl;
  16017 };
  16018 
  16019 #ifdef COBJMACROS
  16020 #ifndef WIDL_C_INLINE_WRAPPERS
  16021 /*** IUnknown methods ***/
  16022 #define IDeskBandInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16023 #define IDeskBandInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  16024 #define IDeskBandInfo_Release(This) (This)->lpVtbl->Release(This)
  16025 /*** IDeskBandInfo methods ***/
  16026 #define IDeskBandInfo_GetDefaultBandWidth(This,dwBandID,dwViewMode,pnWidth) (This)->lpVtbl->GetDefaultBandWidth(This,dwBandID,dwViewMode,pnWidth)
  16027 #else
  16028 /*** IUnknown methods ***/
  16029 static inline HRESULT IDeskBandInfo_QueryInterface(IDeskBandInfo* This,REFIID riid,void **ppvObject) {
  16030     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16031 }
  16032 static inline ULONG IDeskBandInfo_AddRef(IDeskBandInfo* This) {
  16033     return This->lpVtbl->AddRef(This);
  16034 }
  16035 static inline ULONG IDeskBandInfo_Release(IDeskBandInfo* This) {
  16036     return This->lpVtbl->Release(This);
  16037 }
  16038 /*** IDeskBandInfo methods ***/
  16039 static inline HRESULT IDeskBandInfo_GetDefaultBandWidth(IDeskBandInfo* This,DWORD dwBandID,DWORD dwViewMode,int *pnWidth) {
  16040     return This->lpVtbl->GetDefaultBandWidth(This,dwBandID,dwViewMode,pnWidth);
  16041 }
  16042 #endif
  16043 #endif
  16044 
  16045 #endif
  16046 
  16047 
  16048 #endif  /* __IDeskBandInfo_INTERFACE_DEFINED__ */
  16049 
  16050 
  16051 /*****************************************************************************
  16052  * IDeskBand2 interface
  16053  */
  16054 #ifndef __IDeskBand2_INTERFACE_DEFINED__
  16055 #define __IDeskBand2_INTERFACE_DEFINED__
  16056 
  16057 DEFINE_GUID(IID_IDeskBand2, 0x79d16de4, 0xabee, 0x4021, 0x8d,0x9d, 0x91,0x69,0xb2,0x61,0xd6,0x57);
  16058 #if defined(__cplusplus) && !defined(CINTERFACE)
  16059 MIDL_INTERFACE("79d16de4-abee-4021-8d9d-9169b261d657")
  16060 IDeskBand2 : public IDeskBand
  16061 {
  16062     virtual HRESULT STDMETHODCALLTYPE CanRenderComposited(
  16063         WINBOOL *pfCanRenderComposited) = 0;
  16064 
  16065     virtual HRESULT STDMETHODCALLTYPE SetCompositionState(
  16066         WINBOOL fCompositionEnabled) = 0;
  16067 
  16068     virtual HRESULT STDMETHODCALLTYPE GetCompositionState(
  16069         WINBOOL *pfCompositionEnabled) = 0;
  16070 
  16071 };
  16072 #ifdef __CRT_UUID_DECL
  16073 __CRT_UUID_DECL(IDeskBand2, 0x79d16de4, 0xabee, 0x4021, 0x8d,0x9d, 0x91,0x69,0xb2,0x61,0xd6,0x57)
  16074 #endif
  16075 #else
  16076 typedef struct IDeskBand2Vtbl {
  16077     BEGIN_INTERFACE
  16078 
  16079     /*** IUnknown methods ***/
  16080     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  16081         IDeskBand2 *This,
  16082         REFIID riid,
  16083         void **ppvObject);
  16084 
  16085     ULONG (STDMETHODCALLTYPE *AddRef)(
  16086         IDeskBand2 *This);
  16087 
  16088     ULONG (STDMETHODCALLTYPE *Release)(
  16089         IDeskBand2 *This);
  16090 
  16091     /*** IOleWindow methods ***/
  16092     HRESULT (STDMETHODCALLTYPE *GetWindow)(
  16093         IDeskBand2 *This,
  16094         HWND *phwnd);
  16095 
  16096     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
  16097         IDeskBand2 *This,
  16098         WINBOOL fEnterMode);
  16099 
  16100     /*** IDockingWindow methods ***/
  16101     HRESULT (STDMETHODCALLTYPE *ShowDW)(
  16102         IDeskBand2 *This,
  16103         WINBOOL fShow);
  16104 
  16105     HRESULT (STDMETHODCALLTYPE *CloseDW)(
  16106         IDeskBand2 *This,
  16107         DWORD dwReserved);
  16108 
  16109     HRESULT (STDMETHODCALLTYPE *ResizeBorderDW)(
  16110         IDeskBand2 *This,
  16111         LPCRECT prcBorder,
  16112         IUnknown *punkToolbarSite,
  16113         WINBOOL fReserved);
  16114 
  16115     /*** IDeskBand methods ***/
  16116     HRESULT (STDMETHODCALLTYPE *GetBandInfo)(
  16117         IDeskBand2 *This,
  16118         DWORD dwBandID,
  16119         DWORD dwViewMode,
  16120         DESKBANDINFO *pdbi);
  16121 
  16122     /*** IDeskBand2 methods ***/
  16123     HRESULT (STDMETHODCALLTYPE *CanRenderComposited)(
  16124         IDeskBand2 *This,
  16125         WINBOOL *pfCanRenderComposited);
  16126 
  16127     HRESULT (STDMETHODCALLTYPE *SetCompositionState)(
  16128         IDeskBand2 *This,
  16129         WINBOOL fCompositionEnabled);
  16130 
  16131     HRESULT (STDMETHODCALLTYPE *GetCompositionState)(
  16132         IDeskBand2 *This,
  16133         WINBOOL *pfCompositionEnabled);
  16134 
  16135     END_INTERFACE
  16136 } IDeskBand2Vtbl;
  16137 
  16138 interface IDeskBand2 {
  16139     CONST_VTBL IDeskBand2Vtbl* lpVtbl;
  16140 };
  16141 
  16142 #ifdef COBJMACROS
  16143 #ifndef WIDL_C_INLINE_WRAPPERS
  16144 /*** IUnknown methods ***/
  16145 #define IDeskBand2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16146 #define IDeskBand2_AddRef(This) (This)->lpVtbl->AddRef(This)
  16147 #define IDeskBand2_Release(This) (This)->lpVtbl->Release(This)
  16148 /*** IOleWindow methods ***/
  16149 #define IDeskBand2_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
  16150 #define IDeskBand2_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
  16151 /*** IDockingWindow methods ***/
  16152 #define IDeskBand2_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
  16153 #define IDeskBand2_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
  16154 #define IDeskBand2_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
  16155 /*** IDeskBand methods ***/
  16156 #define IDeskBand2_GetBandInfo(This,dwBandID,dwViewMode,pdbi) (This)->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi)
  16157 /*** IDeskBand2 methods ***/
  16158 #define IDeskBand2_CanRenderComposited(This,pfCanRenderComposited) (This)->lpVtbl->CanRenderComposited(This,pfCanRenderComposited)
  16159 #define IDeskBand2_SetCompositionState(This,fCompositionEnabled) (This)->lpVtbl->SetCompositionState(This,fCompositionEnabled)
  16160 #define IDeskBand2_GetCompositionState(This,pfCompositionEnabled) (This)->lpVtbl->GetCompositionState(This,pfCompositionEnabled)
  16161 #else
  16162 /*** IUnknown methods ***/
  16163 static inline HRESULT IDeskBand2_QueryInterface(IDeskBand2* This,REFIID riid,void **ppvObject) {
  16164     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16165 }
  16166 static inline ULONG IDeskBand2_AddRef(IDeskBand2* This) {
  16167     return This->lpVtbl->AddRef(This);
  16168 }
  16169 static inline ULONG IDeskBand2_Release(IDeskBand2* This) {
  16170     return This->lpVtbl->Release(This);
  16171 }
  16172 /*** IOleWindow methods ***/
  16173 static inline HRESULT IDeskBand2_GetWindow(IDeskBand2* This,HWND *phwnd) {
  16174     return This->lpVtbl->GetWindow(This,phwnd);
  16175 }
  16176 static inline HRESULT IDeskBand2_ContextSensitiveHelp(IDeskBand2* This,WINBOOL fEnterMode) {
  16177     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
  16178 }
  16179 /*** IDockingWindow methods ***/
  16180 static inline HRESULT IDeskBand2_ShowDW(IDeskBand2* This,WINBOOL fShow) {
  16181     return This->lpVtbl->ShowDW(This,fShow);
  16182 }
  16183 static inline HRESULT IDeskBand2_CloseDW(IDeskBand2* This,DWORD dwReserved) {
  16184     return This->lpVtbl->CloseDW(This,dwReserved);
  16185 }
  16186 static inline HRESULT IDeskBand2_ResizeBorderDW(IDeskBand2* This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved) {
  16187     return This->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved);
  16188 }
  16189 /*** IDeskBand methods ***/
  16190 static inline HRESULT IDeskBand2_GetBandInfo(IDeskBand2* This,DWORD dwBandID,DWORD dwViewMode,DESKBANDINFO *pdbi) {
  16191     return This->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi);
  16192 }
  16193 /*** IDeskBand2 methods ***/
  16194 static inline HRESULT IDeskBand2_CanRenderComposited(IDeskBand2* This,WINBOOL *pfCanRenderComposited) {
  16195     return This->lpVtbl->CanRenderComposited(This,pfCanRenderComposited);
  16196 }
  16197 static inline HRESULT IDeskBand2_SetCompositionState(IDeskBand2* This,WINBOOL fCompositionEnabled) {
  16198     return This->lpVtbl->SetCompositionState(This,fCompositionEnabled);
  16199 }
  16200 static inline HRESULT IDeskBand2_GetCompositionState(IDeskBand2* This,WINBOOL *pfCompositionEnabled) {
  16201     return This->lpVtbl->GetCompositionState(This,pfCompositionEnabled);
  16202 }
  16203 #endif
  16204 #endif
  16205 
  16206 #endif
  16207 
  16208 
  16209 #endif  /* __IDeskBand2_INTERFACE_DEFINED__ */
  16210 
  16211 #endif
  16212 
  16213 /*****************************************************************************
  16214  * ITaskbarList interface
  16215  */
  16216 #ifndef __ITaskbarList_INTERFACE_DEFINED__
  16217 #define __ITaskbarList_INTERFACE_DEFINED__
  16218 
  16219 DEFINE_GUID(IID_ITaskbarList, 0x56fdf342, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90);
  16220 #if defined(__cplusplus) && !defined(CINTERFACE)
  16221 MIDL_INTERFACE("56fdf342-fd6d-11d0-958a-006097c9a090")
  16222 ITaskbarList : public IUnknown
  16223 {
  16224     virtual HRESULT STDMETHODCALLTYPE HrInit(
  16225         ) = 0;
  16226 
  16227     virtual HRESULT STDMETHODCALLTYPE AddTab(
  16228         HWND hwnd) = 0;
  16229 
  16230     virtual HRESULT STDMETHODCALLTYPE DeleteTab(
  16231         HWND hwnd) = 0;
  16232 
  16233     virtual HRESULT STDMETHODCALLTYPE ActivateTab(
  16234         HWND hwnd) = 0;
  16235 
  16236     virtual HRESULT STDMETHODCALLTYPE SetActiveAlt(
  16237         HWND hwnd) = 0;
  16238 
  16239 };
  16240 #ifdef __CRT_UUID_DECL
  16241 __CRT_UUID_DECL(ITaskbarList, 0x56fdf342, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90)
  16242 #endif
  16243 #else
  16244 typedef struct ITaskbarListVtbl {
  16245     BEGIN_INTERFACE
  16246 
  16247     /*** IUnknown methods ***/
  16248     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  16249         ITaskbarList *This,
  16250         REFIID riid,
  16251         void **ppvObject);
  16252 
  16253     ULONG (STDMETHODCALLTYPE *AddRef)(
  16254         ITaskbarList *This);
  16255 
  16256     ULONG (STDMETHODCALLTYPE *Release)(
  16257         ITaskbarList *This);
  16258 
  16259     /*** ITaskbarList methods ***/
  16260     HRESULT (STDMETHODCALLTYPE *HrInit)(
  16261         ITaskbarList *This);
  16262 
  16263     HRESULT (STDMETHODCALLTYPE *AddTab)(
  16264         ITaskbarList *This,
  16265         HWND hwnd);
  16266 
  16267     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
  16268         ITaskbarList *This,
  16269         HWND hwnd);
  16270 
  16271     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
  16272         ITaskbarList *This,
  16273         HWND hwnd);
  16274 
  16275     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
  16276         ITaskbarList *This,
  16277         HWND hwnd);
  16278 
  16279     END_INTERFACE
  16280 } ITaskbarListVtbl;
  16281 
  16282 interface ITaskbarList {
  16283     CONST_VTBL ITaskbarListVtbl* lpVtbl;
  16284 };
  16285 
  16286 #ifdef COBJMACROS
  16287 #ifndef WIDL_C_INLINE_WRAPPERS
  16288 /*** IUnknown methods ***/
  16289 #define ITaskbarList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16290 #define ITaskbarList_AddRef(This) (This)->lpVtbl->AddRef(This)
  16291 #define ITaskbarList_Release(This) (This)->lpVtbl->Release(This)
  16292 /*** ITaskbarList methods ***/
  16293 #define ITaskbarList_HrInit(This) (This)->lpVtbl->HrInit(This)
  16294 #define ITaskbarList_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
  16295 #define ITaskbarList_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
  16296 #define ITaskbarList_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
  16297 #define ITaskbarList_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
  16298 #else
  16299 /*** IUnknown methods ***/
  16300 static inline HRESULT ITaskbarList_QueryInterface(ITaskbarList* This,REFIID riid,void **ppvObject) {
  16301     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16302 }
  16303 static inline ULONG ITaskbarList_AddRef(ITaskbarList* This) {
  16304     return This->lpVtbl->AddRef(This);
  16305 }
  16306 static inline ULONG ITaskbarList_Release(ITaskbarList* This) {
  16307     return This->lpVtbl->Release(This);
  16308 }
  16309 /*** ITaskbarList methods ***/
  16310 static inline HRESULT ITaskbarList_HrInit(ITaskbarList* This) {
  16311     return This->lpVtbl->HrInit(This);
  16312 }
  16313 static inline HRESULT ITaskbarList_AddTab(ITaskbarList* This,HWND hwnd) {
  16314     return This->lpVtbl->AddTab(This,hwnd);
  16315 }
  16316 static inline HRESULT ITaskbarList_DeleteTab(ITaskbarList* This,HWND hwnd) {
  16317     return This->lpVtbl->DeleteTab(This,hwnd);
  16318 }
  16319 static inline HRESULT ITaskbarList_ActivateTab(ITaskbarList* This,HWND hwnd) {
  16320     return This->lpVtbl->ActivateTab(This,hwnd);
  16321 }
  16322 static inline HRESULT ITaskbarList_SetActiveAlt(ITaskbarList* This,HWND hwnd) {
  16323     return This->lpVtbl->SetActiveAlt(This,hwnd);
  16324 }
  16325 #endif
  16326 #endif
  16327 
  16328 #endif
  16329 
  16330 
  16331 #endif  /* __ITaskbarList_INTERFACE_DEFINED__ */
  16332 
  16333 
  16334 /*****************************************************************************
  16335  * ITaskbarList2 interface
  16336  */
  16337 #ifndef __ITaskbarList2_INTERFACE_DEFINED__
  16338 #define __ITaskbarList2_INTERFACE_DEFINED__
  16339 
  16340 DEFINE_GUID(IID_ITaskbarList2, 0x602d4995, 0xb13a, 0x429b, 0xa6,0x6e, 0x19,0x35,0xe4,0x4f,0x43,0x17);
  16341 #if defined(__cplusplus) && !defined(CINTERFACE)
  16342 MIDL_INTERFACE("602d4995-b13a-429b-a66e-1935e44f4317")
  16343 ITaskbarList2 : public ITaskbarList
  16344 {
  16345     virtual HRESULT STDMETHODCALLTYPE MarkFullscreenWindow(
  16346         HWND hwnd,
  16347         WINBOOL fFullscreen) = 0;
  16348 
  16349 };
  16350 #ifdef __CRT_UUID_DECL
  16351 __CRT_UUID_DECL(ITaskbarList2, 0x602d4995, 0xb13a, 0x429b, 0xa6,0x6e, 0x19,0x35,0xe4,0x4f,0x43,0x17)
  16352 #endif
  16353 #else
  16354 typedef struct ITaskbarList2Vtbl {
  16355     BEGIN_INTERFACE
  16356 
  16357     /*** IUnknown methods ***/
  16358     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  16359         ITaskbarList2 *This,
  16360         REFIID riid,
  16361         void **ppvObject);
  16362 
  16363     ULONG (STDMETHODCALLTYPE *AddRef)(
  16364         ITaskbarList2 *This);
  16365 
  16366     ULONG (STDMETHODCALLTYPE *Release)(
  16367         ITaskbarList2 *This);
  16368 
  16369     /*** ITaskbarList methods ***/
  16370     HRESULT (STDMETHODCALLTYPE *HrInit)(
  16371         ITaskbarList2 *This);
  16372 
  16373     HRESULT (STDMETHODCALLTYPE *AddTab)(
  16374         ITaskbarList2 *This,
  16375         HWND hwnd);
  16376 
  16377     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
  16378         ITaskbarList2 *This,
  16379         HWND hwnd);
  16380 
  16381     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
  16382         ITaskbarList2 *This,
  16383         HWND hwnd);
  16384 
  16385     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
  16386         ITaskbarList2 *This,
  16387         HWND hwnd);
  16388 
  16389     /*** ITaskbarList2 methods ***/
  16390     HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
  16391         ITaskbarList2 *This,
  16392         HWND hwnd,
  16393         WINBOOL fFullscreen);
  16394 
  16395     END_INTERFACE
  16396 } ITaskbarList2Vtbl;
  16397 
  16398 interface ITaskbarList2 {
  16399     CONST_VTBL ITaskbarList2Vtbl* lpVtbl;
  16400 };
  16401 
  16402 #ifdef COBJMACROS
  16403 #ifndef WIDL_C_INLINE_WRAPPERS
  16404 /*** IUnknown methods ***/
  16405 #define ITaskbarList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16406 #define ITaskbarList2_AddRef(This) (This)->lpVtbl->AddRef(This)
  16407 #define ITaskbarList2_Release(This) (This)->lpVtbl->Release(This)
  16408 /*** ITaskbarList methods ***/
  16409 #define ITaskbarList2_HrInit(This) (This)->lpVtbl->HrInit(This)
  16410 #define ITaskbarList2_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
  16411 #define ITaskbarList2_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
  16412 #define ITaskbarList2_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
  16413 #define ITaskbarList2_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
  16414 /*** ITaskbarList2 methods ***/
  16415 #define ITaskbarList2_MarkFullscreenWindow(This,hwnd,fFullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen)
  16416 #else
  16417 /*** IUnknown methods ***/
  16418 static inline HRESULT ITaskbarList2_QueryInterface(ITaskbarList2* This,REFIID riid,void **ppvObject) {
  16419     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16420 }
  16421 static inline ULONG ITaskbarList2_AddRef(ITaskbarList2* This) {
  16422     return This->lpVtbl->AddRef(This);
  16423 }
  16424 static inline ULONG ITaskbarList2_Release(ITaskbarList2* This) {
  16425     return This->lpVtbl->Release(This);
  16426 }
  16427 /*** ITaskbarList methods ***/
  16428 static inline HRESULT ITaskbarList2_HrInit(ITaskbarList2* This) {
  16429     return This->lpVtbl->HrInit(This);
  16430 }
  16431 static inline HRESULT ITaskbarList2_AddTab(ITaskbarList2* This,HWND hwnd) {
  16432     return This->lpVtbl->AddTab(This,hwnd);
  16433 }
  16434 static inline HRESULT ITaskbarList2_DeleteTab(ITaskbarList2* This,HWND hwnd) {
  16435     return This->lpVtbl->DeleteTab(This,hwnd);
  16436 }
  16437 static inline HRESULT ITaskbarList2_ActivateTab(ITaskbarList2* This,HWND hwnd) {
  16438     return This->lpVtbl->ActivateTab(This,hwnd);
  16439 }
  16440 static inline HRESULT ITaskbarList2_SetActiveAlt(ITaskbarList2* This,HWND hwnd) {
  16441     return This->lpVtbl->SetActiveAlt(This,hwnd);
  16442 }
  16443 /*** ITaskbarList2 methods ***/
  16444 static inline HRESULT ITaskbarList2_MarkFullscreenWindow(ITaskbarList2* This,HWND hwnd,WINBOOL fFullscreen) {
  16445     return This->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen);
  16446 }
  16447 #endif
  16448 #endif
  16449 
  16450 #endif
  16451 
  16452 
  16453 #endif  /* __ITaskbarList2_INTERFACE_DEFINED__ */
  16454 
  16455 
  16456 #if 0
  16457 typedef IUnknown *HIMAGELIST;
  16458 #endif
  16459 
  16460 typedef enum THUMBBUTTONFLAGS {
  16461     THBF_ENABLED = 0x0,
  16462     THBF_DISABLED = 0x1,
  16463     THBF_DISMISSONCLICK = 0x2,
  16464     THBF_NOBACKGROUND = 0x4,
  16465     THBF_HIDDEN = 0x8,
  16466     THBF_NONINTERACTIVE = 0x10
  16467 } THUMBBUTTONFLAGS;
  16468 
  16469 DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS)
  16470 
  16471 
  16472 typedef enum THUMBBUTTONMASK {
  16473     THB_BITMAP = 0x1,
  16474     THB_ICON = 0x2,
  16475     THB_TOOLTIP = 0x4,
  16476     THB_FLAGS = 0x8
  16477 } THUMBBUTTONMASK;
  16478 
  16479 DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK)
  16480 
  16481 #include <pshpack8.h>
  16482 typedef struct THUMBBUTTON {
  16483     THUMBBUTTONMASK dwMask;
  16484     UINT iId;
  16485     UINT iBitmap;
  16486     HICON hIcon;
  16487     WCHAR szTip[260];
  16488     THUMBBUTTONFLAGS dwFlags;
  16489 } THUMBBUTTON;
  16490 typedef struct THUMBBUTTON *LPTHUMBBUTTON;
  16491 #include <poppack.h>
  16492 
  16493 #define THBN_CLICKED 0x1800
  16494 
  16495 /*****************************************************************************
  16496  * ITaskbarList3 interface
  16497  */
  16498 #ifndef __ITaskbarList3_INTERFACE_DEFINED__
  16499 #define __ITaskbarList3_INTERFACE_DEFINED__
  16500 
  16501 typedef enum TBPFLAG {
  16502     TBPF_NOPROGRESS = 0x0,
  16503     TBPF_INDETERMINATE = 0x1,
  16504     TBPF_NORMAL = 0x2,
  16505     TBPF_ERROR = 0x4,
  16506     TBPF_PAUSED = 0x8
  16507 } TBPFLAG;
  16508 
  16509 DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG)
  16510 
  16511 DEFINE_GUID(IID_ITaskbarList3, 0xea1afb91, 0x9e28, 0x4b86, 0x90,0xe9, 0x9e,0x9f,0x8a,0x5e,0xef,0xaf);
  16512 #if defined(__cplusplus) && !defined(CINTERFACE)
  16513 MIDL_INTERFACE("ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf")
  16514 ITaskbarList3 : public ITaskbarList2
  16515 {
  16516     virtual HRESULT STDMETHODCALLTYPE SetProgressValue(
  16517         HWND hwnd,
  16518         ULONGLONG ullCompleted,
  16519         ULONGLONG ullTotal) = 0;
  16520 
  16521     virtual HRESULT STDMETHODCALLTYPE SetProgressState(
  16522         HWND hwnd,
  16523         TBPFLAG tbpFlags) = 0;
  16524 
  16525     virtual HRESULT STDMETHODCALLTYPE RegisterTab(
  16526         HWND hwndTab,
  16527         HWND hwndMDI) = 0;
  16528 
  16529     virtual HRESULT STDMETHODCALLTYPE UnregisterTab(
  16530         HWND hwndTab) = 0;
  16531 
  16532     virtual HRESULT STDMETHODCALLTYPE SetTabOrder(
  16533         HWND hwndTab,
  16534         HWND hwndInsertBefore) = 0;
  16535 
  16536     virtual HRESULT STDMETHODCALLTYPE SetTabActive(
  16537         HWND hwndTab,
  16538         HWND hwndMDI,
  16539         DWORD dwReserved) = 0;
  16540 
  16541     virtual HRESULT STDMETHODCALLTYPE ThumbBarAddButtons(
  16542         HWND hwnd,
  16543         UINT cButtons,
  16544         LPTHUMBBUTTON pButton) = 0;
  16545 
  16546     virtual HRESULT STDMETHODCALLTYPE ThumbBarUpdateButtons(
  16547         HWND hwnd,
  16548         UINT cButtons,
  16549         LPTHUMBBUTTON pButton) = 0;
  16550 
  16551     virtual HRESULT STDMETHODCALLTYPE ThumbBarSetImageList(
  16552         HWND hwnd,
  16553         HIMAGELIST himl) = 0;
  16554 
  16555     virtual HRESULT STDMETHODCALLTYPE SetOverlayIcon(
  16556         HWND hwnd,
  16557         HICON hIcon,
  16558         LPCWSTR pszDescription) = 0;
  16559 
  16560     virtual HRESULT STDMETHODCALLTYPE SetThumbnailTooltip(
  16561         HWND hwnd,
  16562         LPCWSTR pszTip) = 0;
  16563 
  16564     virtual HRESULT STDMETHODCALLTYPE SetThumbnailClip(
  16565         HWND hwnd,
  16566         RECT *prcClip) = 0;
  16567 
  16568 };
  16569 #ifdef __CRT_UUID_DECL
  16570 __CRT_UUID_DECL(ITaskbarList3, 0xea1afb91, 0x9e28, 0x4b86, 0x90,0xe9, 0x9e,0x9f,0x8a,0x5e,0xef,0xaf)
  16571 #endif
  16572 #else
  16573 typedef struct ITaskbarList3Vtbl {
  16574     BEGIN_INTERFACE
  16575 
  16576     /*** IUnknown methods ***/
  16577     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  16578         ITaskbarList3 *This,
  16579         REFIID riid,
  16580         void **ppvObject);
  16581 
  16582     ULONG (STDMETHODCALLTYPE *AddRef)(
  16583         ITaskbarList3 *This);
  16584 
  16585     ULONG (STDMETHODCALLTYPE *Release)(
  16586         ITaskbarList3 *This);
  16587 
  16588     /*** ITaskbarList methods ***/
  16589     HRESULT (STDMETHODCALLTYPE *HrInit)(
  16590         ITaskbarList3 *This);
  16591 
  16592     HRESULT (STDMETHODCALLTYPE *AddTab)(
  16593         ITaskbarList3 *This,
  16594         HWND hwnd);
  16595 
  16596     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
  16597         ITaskbarList3 *This,
  16598         HWND hwnd);
  16599 
  16600     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
  16601         ITaskbarList3 *This,
  16602         HWND hwnd);
  16603 
  16604     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
  16605         ITaskbarList3 *This,
  16606         HWND hwnd);
  16607 
  16608     /*** ITaskbarList2 methods ***/
  16609     HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
  16610         ITaskbarList3 *This,
  16611         HWND hwnd,
  16612         WINBOOL fFullscreen);
  16613 
  16614     /*** ITaskbarList3 methods ***/
  16615     HRESULT (STDMETHODCALLTYPE *SetProgressValue)(
  16616         ITaskbarList3 *This,
  16617         HWND hwnd,
  16618         ULONGLONG ullCompleted,
  16619         ULONGLONG ullTotal);
  16620 
  16621     HRESULT (STDMETHODCALLTYPE *SetProgressState)(
  16622         ITaskbarList3 *This,
  16623         HWND hwnd,
  16624         TBPFLAG tbpFlags);
  16625 
  16626     HRESULT (STDMETHODCALLTYPE *RegisterTab)(
  16627         ITaskbarList3 *This,
  16628         HWND hwndTab,
  16629         HWND hwndMDI);
  16630 
  16631     HRESULT (STDMETHODCALLTYPE *UnregisterTab)(
  16632         ITaskbarList3 *This,
  16633         HWND hwndTab);
  16634 
  16635     HRESULT (STDMETHODCALLTYPE *SetTabOrder)(
  16636         ITaskbarList3 *This,
  16637         HWND hwndTab,
  16638         HWND hwndInsertBefore);
  16639 
  16640     HRESULT (STDMETHODCALLTYPE *SetTabActive)(
  16641         ITaskbarList3 *This,
  16642         HWND hwndTab,
  16643         HWND hwndMDI,
  16644         DWORD dwReserved);
  16645 
  16646     HRESULT (STDMETHODCALLTYPE *ThumbBarAddButtons)(
  16647         ITaskbarList3 *This,
  16648         HWND hwnd,
  16649         UINT cButtons,
  16650         LPTHUMBBUTTON pButton);
  16651 
  16652     HRESULT (STDMETHODCALLTYPE *ThumbBarUpdateButtons)(
  16653         ITaskbarList3 *This,
  16654         HWND hwnd,
  16655         UINT cButtons,
  16656         LPTHUMBBUTTON pButton);
  16657 
  16658     HRESULT (STDMETHODCALLTYPE *ThumbBarSetImageList)(
  16659         ITaskbarList3 *This,
  16660         HWND hwnd,
  16661         HIMAGELIST himl);
  16662 
  16663     HRESULT (STDMETHODCALLTYPE *SetOverlayIcon)(
  16664         ITaskbarList3 *This,
  16665         HWND hwnd,
  16666         HICON hIcon,
  16667         LPCWSTR pszDescription);
  16668 
  16669     HRESULT (STDMETHODCALLTYPE *SetThumbnailTooltip)(
  16670         ITaskbarList3 *This,
  16671         HWND hwnd,
  16672         LPCWSTR pszTip);
  16673 
  16674     HRESULT (STDMETHODCALLTYPE *SetThumbnailClip)(
  16675         ITaskbarList3 *This,
  16676         HWND hwnd,
  16677         RECT *prcClip);
  16678 
  16679     END_INTERFACE
  16680 } ITaskbarList3Vtbl;
  16681 
  16682 interface ITaskbarList3 {
  16683     CONST_VTBL ITaskbarList3Vtbl* lpVtbl;
  16684 };
  16685 
  16686 #ifdef COBJMACROS
  16687 #ifndef WIDL_C_INLINE_WRAPPERS
  16688 /*** IUnknown methods ***/
  16689 #define ITaskbarList3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16690 #define ITaskbarList3_AddRef(This) (This)->lpVtbl->AddRef(This)
  16691 #define ITaskbarList3_Release(This) (This)->lpVtbl->Release(This)
  16692 /*** ITaskbarList methods ***/
  16693 #define ITaskbarList3_HrInit(This) (This)->lpVtbl->HrInit(This)
  16694 #define ITaskbarList3_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
  16695 #define ITaskbarList3_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
  16696 #define ITaskbarList3_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
  16697 #define ITaskbarList3_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
  16698 /*** ITaskbarList2 methods ***/
  16699 #define ITaskbarList3_MarkFullscreenWindow(This,hwnd,fFullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen)
  16700 /*** ITaskbarList3 methods ***/
  16701 #define ITaskbarList3_SetProgressValue(This,hwnd,ullCompleted,ullTotal) (This)->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal)
  16702 #define ITaskbarList3_SetProgressState(This,hwnd,tbpFlags) (This)->lpVtbl->SetProgressState(This,hwnd,tbpFlags)
  16703 #define ITaskbarList3_RegisterTab(This,hwndTab,hwndMDI) (This)->lpVtbl->RegisterTab(This,hwndTab,hwndMDI)
  16704 #define ITaskbarList3_UnregisterTab(This,hwndTab) (This)->lpVtbl->UnregisterTab(This,hwndTab)
  16705 #define ITaskbarList3_SetTabOrder(This,hwndTab,hwndInsertBefore) (This)->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore)
  16706 #define ITaskbarList3_SetTabActive(This,hwndTab,hwndMDI,dwReserved) (This)->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved)
  16707 #define ITaskbarList3_ThumbBarAddButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton)
  16708 #define ITaskbarList3_ThumbBarUpdateButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton)
  16709 #define ITaskbarList3_ThumbBarSetImageList(This,hwnd,himl) (This)->lpVtbl->ThumbBarSetImageList(This,hwnd,himl)
  16710 #define ITaskbarList3_SetOverlayIcon(This,hwnd,hIcon,pszDescription) (This)->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription)
  16711 #define ITaskbarList3_SetThumbnailTooltip(This,hwnd,pszTip) (This)->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip)
  16712 #define ITaskbarList3_SetThumbnailClip(This,hwnd,prcClip) (This)->lpVtbl->SetThumbnailClip(This,hwnd,prcClip)
  16713 #else
  16714 /*** IUnknown methods ***/
  16715 static inline HRESULT ITaskbarList3_QueryInterface(ITaskbarList3* This,REFIID riid,void **ppvObject) {
  16716     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16717 }
  16718 static inline ULONG ITaskbarList3_AddRef(ITaskbarList3* This) {
  16719     return This->lpVtbl->AddRef(This);
  16720 }
  16721 static inline ULONG ITaskbarList3_Release(ITaskbarList3* This) {
  16722     return This->lpVtbl->Release(This);
  16723 }
  16724 /*** ITaskbarList methods ***/
  16725 static inline HRESULT ITaskbarList3_HrInit(ITaskbarList3* This) {
  16726     return This->lpVtbl->HrInit(This);
  16727 }
  16728 static inline HRESULT ITaskbarList3_AddTab(ITaskbarList3* This,HWND hwnd) {
  16729     return This->lpVtbl->AddTab(This,hwnd);
  16730 }
  16731 static inline HRESULT ITaskbarList3_DeleteTab(ITaskbarList3* This,HWND hwnd) {
  16732     return This->lpVtbl->DeleteTab(This,hwnd);
  16733 }
  16734 static inline HRESULT ITaskbarList3_ActivateTab(ITaskbarList3* This,HWND hwnd) {
  16735     return This->lpVtbl->ActivateTab(This,hwnd);
  16736 }
  16737 static inline HRESULT ITaskbarList3_SetActiveAlt(ITaskbarList3* This,HWND hwnd) {
  16738     return This->lpVtbl->SetActiveAlt(This,hwnd);
  16739 }
  16740 /*** ITaskbarList2 methods ***/
  16741 static inline HRESULT ITaskbarList3_MarkFullscreenWindow(ITaskbarList3* This,HWND hwnd,WINBOOL fFullscreen) {
  16742     return This->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen);
  16743 }
  16744 /*** ITaskbarList3 methods ***/
  16745 static inline HRESULT ITaskbarList3_SetProgressValue(ITaskbarList3* This,HWND hwnd,ULONGLONG ullCompleted,ULONGLONG ullTotal) {
  16746     return This->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal);
  16747 }
  16748 static inline HRESULT ITaskbarList3_SetProgressState(ITaskbarList3* This,HWND hwnd,TBPFLAG tbpFlags) {
  16749     return This->lpVtbl->SetProgressState(This,hwnd,tbpFlags);
  16750 }
  16751 static inline HRESULT ITaskbarList3_RegisterTab(ITaskbarList3* This,HWND hwndTab,HWND hwndMDI) {
  16752     return This->lpVtbl->RegisterTab(This,hwndTab,hwndMDI);
  16753 }
  16754 static inline HRESULT ITaskbarList3_UnregisterTab(ITaskbarList3* This,HWND hwndTab) {
  16755     return This->lpVtbl->UnregisterTab(This,hwndTab);
  16756 }
  16757 static inline HRESULT ITaskbarList3_SetTabOrder(ITaskbarList3* This,HWND hwndTab,HWND hwndInsertBefore) {
  16758     return This->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore);
  16759 }
  16760 static inline HRESULT ITaskbarList3_SetTabActive(ITaskbarList3* This,HWND hwndTab,HWND hwndMDI,DWORD dwReserved) {
  16761     return This->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved);
  16762 }
  16763 static inline HRESULT ITaskbarList3_ThumbBarAddButtons(ITaskbarList3* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
  16764     return This->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton);
  16765 }
  16766 static inline HRESULT ITaskbarList3_ThumbBarUpdateButtons(ITaskbarList3* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
  16767     return This->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton);
  16768 }
  16769 static inline HRESULT ITaskbarList3_ThumbBarSetImageList(ITaskbarList3* This,HWND hwnd,HIMAGELIST himl) {
  16770     return This->lpVtbl->ThumbBarSetImageList(This,hwnd,himl);
  16771 }
  16772 static inline HRESULT ITaskbarList3_SetOverlayIcon(ITaskbarList3* This,HWND hwnd,HICON hIcon,LPCWSTR pszDescription) {
  16773     return This->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription);
  16774 }
  16775 static inline HRESULT ITaskbarList3_SetThumbnailTooltip(ITaskbarList3* This,HWND hwnd,LPCWSTR pszTip) {
  16776     return This->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip);
  16777 }
  16778 static inline HRESULT ITaskbarList3_SetThumbnailClip(ITaskbarList3* This,HWND hwnd,RECT *prcClip) {
  16779     return This->lpVtbl->SetThumbnailClip(This,hwnd,prcClip);
  16780 }
  16781 #endif
  16782 #endif
  16783 
  16784 #endif
  16785 
  16786 
  16787 #endif  /* __ITaskbarList3_INTERFACE_DEFINED__ */
  16788 
  16789 
  16790 /*****************************************************************************
  16791  * ITaskbarList4 interface
  16792  */
  16793 #ifndef __ITaskbarList4_INTERFACE_DEFINED__
  16794 #define __ITaskbarList4_INTERFACE_DEFINED__
  16795 
  16796 typedef enum STPFLAG {
  16797     STPF_NONE = 0x0,
  16798     STPF_USEAPPTHUMBNAILALWAYS = 0x1,
  16799     STPF_USEAPPTHUMBNAILWHENACTIVE = 0x2,
  16800     STPF_USEAPPPEEKALWAYS = 0x4,
  16801     STPF_USEAPPPEEKWHENACTIVE = 0x8
  16802 } STPFLAG;
  16803 
  16804 DEFINE_ENUM_FLAG_OPERATORS(STPFLAG)
  16805 
  16806 DEFINE_GUID(IID_ITaskbarList4, 0xc43dc798, 0x95d1, 0x4bea, 0x90,0x30, 0xbb,0x99,0xe2,0x98,0x3a,0x1a);
  16807 #if defined(__cplusplus) && !defined(CINTERFACE)
  16808 MIDL_INTERFACE("c43dc798-95d1-4bea-9030-bb99e2983a1a")
  16809 ITaskbarList4 : public ITaskbarList3
  16810 {
  16811     virtual HRESULT STDMETHODCALLTYPE SetTabProperties(
  16812         HWND hwndTab,
  16813         STPFLAG stpFlags) = 0;
  16814 
  16815 };
  16816 #ifdef __CRT_UUID_DECL
  16817 __CRT_UUID_DECL(ITaskbarList4, 0xc43dc798, 0x95d1, 0x4bea, 0x90,0x30, 0xbb,0x99,0xe2,0x98,0x3a,0x1a)
  16818 #endif
  16819 #else
  16820 typedef struct ITaskbarList4Vtbl {
  16821     BEGIN_INTERFACE
  16822 
  16823     /*** IUnknown methods ***/
  16824     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  16825         ITaskbarList4 *This,
  16826         REFIID riid,
  16827         void **ppvObject);
  16828 
  16829     ULONG (STDMETHODCALLTYPE *AddRef)(
  16830         ITaskbarList4 *This);
  16831 
  16832     ULONG (STDMETHODCALLTYPE *Release)(
  16833         ITaskbarList4 *This);
  16834 
  16835     /*** ITaskbarList methods ***/
  16836     HRESULT (STDMETHODCALLTYPE *HrInit)(
  16837         ITaskbarList4 *This);
  16838 
  16839     HRESULT (STDMETHODCALLTYPE *AddTab)(
  16840         ITaskbarList4 *This,
  16841         HWND hwnd);
  16842 
  16843     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
  16844         ITaskbarList4 *This,
  16845         HWND hwnd);
  16846 
  16847     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
  16848         ITaskbarList4 *This,
  16849         HWND hwnd);
  16850 
  16851     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
  16852         ITaskbarList4 *This,
  16853         HWND hwnd);
  16854 
  16855     /*** ITaskbarList2 methods ***/
  16856     HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
  16857         ITaskbarList4 *This,
  16858         HWND hwnd,
  16859         WINBOOL fFullscreen);
  16860 
  16861     /*** ITaskbarList3 methods ***/
  16862     HRESULT (STDMETHODCALLTYPE *SetProgressValue)(
  16863         ITaskbarList4 *This,
  16864         HWND hwnd,
  16865         ULONGLONG ullCompleted,
  16866         ULONGLONG ullTotal);
  16867 
  16868     HRESULT (STDMETHODCALLTYPE *SetProgressState)(
  16869         ITaskbarList4 *This,
  16870         HWND hwnd,
  16871         TBPFLAG tbpFlags);
  16872 
  16873     HRESULT (STDMETHODCALLTYPE *RegisterTab)(
  16874         ITaskbarList4 *This,
  16875         HWND hwndTab,
  16876         HWND hwndMDI);
  16877 
  16878     HRESULT (STDMETHODCALLTYPE *UnregisterTab)(
  16879         ITaskbarList4 *This,
  16880         HWND hwndTab);
  16881 
  16882     HRESULT (STDMETHODCALLTYPE *SetTabOrder)(
  16883         ITaskbarList4 *This,
  16884         HWND hwndTab,
  16885         HWND hwndInsertBefore);
  16886 
  16887     HRESULT (STDMETHODCALLTYPE *SetTabActive)(
  16888         ITaskbarList4 *This,
  16889         HWND hwndTab,
  16890         HWND hwndMDI,
  16891         DWORD dwReserved);
  16892 
  16893     HRESULT (STDMETHODCALLTYPE *ThumbBarAddButtons)(
  16894         ITaskbarList4 *This,
  16895         HWND hwnd,
  16896         UINT cButtons,
  16897         LPTHUMBBUTTON pButton);
  16898 
  16899     HRESULT (STDMETHODCALLTYPE *ThumbBarUpdateButtons)(
  16900         ITaskbarList4 *This,
  16901         HWND hwnd,
  16902         UINT cButtons,
  16903         LPTHUMBBUTTON pButton);
  16904 
  16905     HRESULT (STDMETHODCALLTYPE *ThumbBarSetImageList)(
  16906         ITaskbarList4 *This,
  16907         HWND hwnd,
  16908         HIMAGELIST himl);
  16909 
  16910     HRESULT (STDMETHODCALLTYPE *SetOverlayIcon)(
  16911         ITaskbarList4 *This,
  16912         HWND hwnd,
  16913         HICON hIcon,
  16914         LPCWSTR pszDescription);
  16915 
  16916     HRESULT (STDMETHODCALLTYPE *SetThumbnailTooltip)(
  16917         ITaskbarList4 *This,
  16918         HWND hwnd,
  16919         LPCWSTR pszTip);
  16920 
  16921     HRESULT (STDMETHODCALLTYPE *SetThumbnailClip)(
  16922         ITaskbarList4 *This,
  16923         HWND hwnd,
  16924         RECT *prcClip);
  16925 
  16926     /*** ITaskbarList4 methods ***/
  16927     HRESULT (STDMETHODCALLTYPE *SetTabProperties)(
  16928         ITaskbarList4 *This,
  16929         HWND hwndTab,
  16930         STPFLAG stpFlags);
  16931 
  16932     END_INTERFACE
  16933 } ITaskbarList4Vtbl;
  16934 
  16935 interface ITaskbarList4 {
  16936     CONST_VTBL ITaskbarList4Vtbl* lpVtbl;
  16937 };
  16938 
  16939 #ifdef COBJMACROS
  16940 #ifndef WIDL_C_INLINE_WRAPPERS
  16941 /*** IUnknown methods ***/
  16942 #define ITaskbarList4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  16943 #define ITaskbarList4_AddRef(This) (This)->lpVtbl->AddRef(This)
  16944 #define ITaskbarList4_Release(This) (This)->lpVtbl->Release(This)
  16945 /*** ITaskbarList methods ***/
  16946 #define ITaskbarList4_HrInit(This) (This)->lpVtbl->HrInit(This)
  16947 #define ITaskbarList4_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
  16948 #define ITaskbarList4_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
  16949 #define ITaskbarList4_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
  16950 #define ITaskbarList4_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
  16951 /*** ITaskbarList2 methods ***/
  16952 #define ITaskbarList4_MarkFullscreenWindow(This,hwnd,fFullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen)
  16953 /*** ITaskbarList3 methods ***/
  16954 #define ITaskbarList4_SetProgressValue(This,hwnd,ullCompleted,ullTotal) (This)->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal)
  16955 #define ITaskbarList4_SetProgressState(This,hwnd,tbpFlags) (This)->lpVtbl->SetProgressState(This,hwnd,tbpFlags)
  16956 #define ITaskbarList4_RegisterTab(This,hwndTab,hwndMDI) (This)->lpVtbl->RegisterTab(This,hwndTab,hwndMDI)
  16957 #define ITaskbarList4_UnregisterTab(This,hwndTab) (This)->lpVtbl->UnregisterTab(This,hwndTab)
  16958 #define ITaskbarList4_SetTabOrder(This,hwndTab,hwndInsertBefore) (This)->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore)
  16959 #define ITaskbarList4_SetTabActive(This,hwndTab,hwndMDI,dwReserved) (This)->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved)
  16960 #define ITaskbarList4_ThumbBarAddButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton)
  16961 #define ITaskbarList4_ThumbBarUpdateButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton)
  16962 #define ITaskbarList4_ThumbBarSetImageList(This,hwnd,himl) (This)->lpVtbl->ThumbBarSetImageList(This,hwnd,himl)
  16963 #define ITaskbarList4_SetOverlayIcon(This,hwnd,hIcon,pszDescription) (This)->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription)
  16964 #define ITaskbarList4_SetThumbnailTooltip(This,hwnd,pszTip) (This)->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip)
  16965 #define ITaskbarList4_SetThumbnailClip(This,hwnd,prcClip) (This)->lpVtbl->SetThumbnailClip(This,hwnd,prcClip)
  16966 /*** ITaskbarList4 methods ***/
  16967 #define ITaskbarList4_SetTabProperties(This,hwndTab,stpFlags) (This)->lpVtbl->SetTabProperties(This,hwndTab,stpFlags)
  16968 #else
  16969 /*** IUnknown methods ***/
  16970 static inline HRESULT ITaskbarList4_QueryInterface(ITaskbarList4* This,REFIID riid,void **ppvObject) {
  16971     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  16972 }
  16973 static inline ULONG ITaskbarList4_AddRef(ITaskbarList4* This) {
  16974     return This->lpVtbl->AddRef(This);
  16975 }
  16976 static inline ULONG ITaskbarList4_Release(ITaskbarList4* This) {
  16977     return This->lpVtbl->Release(This);
  16978 }
  16979 /*** ITaskbarList methods ***/
  16980 static inline HRESULT ITaskbarList4_HrInit(ITaskbarList4* This) {
  16981     return This->lpVtbl->HrInit(This);
  16982 }
  16983 static inline HRESULT ITaskbarList4_AddTab(ITaskbarList4* This,HWND hwnd) {
  16984     return This->lpVtbl->AddTab(This,hwnd);
  16985 }
  16986 static inline HRESULT ITaskbarList4_DeleteTab(ITaskbarList4* This,HWND hwnd) {
  16987     return This->lpVtbl->DeleteTab(This,hwnd);
  16988 }
  16989 static inline HRESULT ITaskbarList4_ActivateTab(ITaskbarList4* This,HWND hwnd) {
  16990     return This->lpVtbl->ActivateTab(This,hwnd);
  16991 }
  16992 static inline HRESULT ITaskbarList4_SetActiveAlt(ITaskbarList4* This,HWND hwnd) {
  16993     return This->lpVtbl->SetActiveAlt(This,hwnd);
  16994 }
  16995 /*** ITaskbarList2 methods ***/
  16996 static inline HRESULT ITaskbarList4_MarkFullscreenWindow(ITaskbarList4* This,HWND hwnd,WINBOOL fFullscreen) {
  16997     return This->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen);
  16998 }
  16999 /*** ITaskbarList3 methods ***/
  17000 static inline HRESULT ITaskbarList4_SetProgressValue(ITaskbarList4* This,HWND hwnd,ULONGLONG ullCompleted,ULONGLONG ullTotal) {
  17001     return This->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal);
  17002 }
  17003 static inline HRESULT ITaskbarList4_SetProgressState(ITaskbarList4* This,HWND hwnd,TBPFLAG tbpFlags) {
  17004     return This->lpVtbl->SetProgressState(This,hwnd,tbpFlags);
  17005 }
  17006 static inline HRESULT ITaskbarList4_RegisterTab(ITaskbarList4* This,HWND hwndTab,HWND hwndMDI) {
  17007     return This->lpVtbl->RegisterTab(This,hwndTab,hwndMDI);
  17008 }
  17009 static inline HRESULT ITaskbarList4_UnregisterTab(ITaskbarList4* This,HWND hwndTab) {
  17010     return This->lpVtbl->UnregisterTab(This,hwndTab);
  17011 }
  17012 static inline HRESULT ITaskbarList4_SetTabOrder(ITaskbarList4* This,HWND hwndTab,HWND hwndInsertBefore) {
  17013     return This->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore);
  17014 }
  17015 static inline HRESULT ITaskbarList4_SetTabActive(ITaskbarList4* This,HWND hwndTab,HWND hwndMDI,DWORD dwReserved) {
  17016     return This->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved);
  17017 }
  17018 static inline HRESULT ITaskbarList4_ThumbBarAddButtons(ITaskbarList4* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
  17019     return This->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton);
  17020 }
  17021 static inline HRESULT ITaskbarList4_ThumbBarUpdateButtons(ITaskbarList4* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
  17022     return This->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton);
  17023 }
  17024 static inline HRESULT ITaskbarList4_ThumbBarSetImageList(ITaskbarList4* This,HWND hwnd,HIMAGELIST himl) {
  17025     return This->lpVtbl->ThumbBarSetImageList(This,hwnd,himl);
  17026 }
  17027 static inline HRESULT ITaskbarList4_SetOverlayIcon(ITaskbarList4* This,HWND hwnd,HICON hIcon,LPCWSTR pszDescription) {
  17028     return This->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription);
  17029 }
  17030 static inline HRESULT ITaskbarList4_SetThumbnailTooltip(ITaskbarList4* This,HWND hwnd,LPCWSTR pszTip) {
  17031     return This->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip);
  17032 }
  17033 static inline HRESULT ITaskbarList4_SetThumbnailClip(ITaskbarList4* This,HWND hwnd,RECT *prcClip) {
  17034     return This->lpVtbl->SetThumbnailClip(This,hwnd,prcClip);
  17035 }
  17036 /*** ITaskbarList4 methods ***/
  17037 static inline HRESULT ITaskbarList4_SetTabProperties(ITaskbarList4* This,HWND hwndTab,STPFLAG stpFlags) {
  17038     return This->lpVtbl->SetTabProperties(This,hwndTab,stpFlags);
  17039 }
  17040 #endif
  17041 #endif
  17042 
  17043 #endif
  17044 
  17045 
  17046 #endif  /* __ITaskbarList4_INTERFACE_DEFINED__ */
  17047 
  17048 
  17049 /*****************************************************************************
  17050  * IStartMenuPinnedList interface
  17051  */
  17052 #ifndef __IStartMenuPinnedList_INTERFACE_DEFINED__
  17053 #define __IStartMenuPinnedList_INTERFACE_DEFINED__
  17054 
  17055 DEFINE_GUID(IID_IStartMenuPinnedList, 0x4cd19ada, 0x25a5, 0x4a32, 0xb3,0xb7, 0x34,0x7b,0xee,0x5b,0xe3,0x6b);
  17056 #if defined(__cplusplus) && !defined(CINTERFACE)
  17057 MIDL_INTERFACE("4cd19ada-25a5-4a32-b3b7-347bee5be36b")
  17058 IStartMenuPinnedList : public IUnknown
  17059 {
  17060     virtual HRESULT STDMETHODCALLTYPE RemoveFromList(
  17061         IShellItem *pitem) = 0;
  17062 
  17063 };
  17064 #ifdef __CRT_UUID_DECL
  17065 __CRT_UUID_DECL(IStartMenuPinnedList, 0x4cd19ada, 0x25a5, 0x4a32, 0xb3,0xb7, 0x34,0x7b,0xee,0x5b,0xe3,0x6b)
  17066 #endif
  17067 #else
  17068 typedef struct IStartMenuPinnedListVtbl {
  17069     BEGIN_INTERFACE
  17070 
  17071     /*** IUnknown methods ***/
  17072     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17073         IStartMenuPinnedList *This,
  17074         REFIID riid,
  17075         void **ppvObject);
  17076 
  17077     ULONG (STDMETHODCALLTYPE *AddRef)(
  17078         IStartMenuPinnedList *This);
  17079 
  17080     ULONG (STDMETHODCALLTYPE *Release)(
  17081         IStartMenuPinnedList *This);
  17082 
  17083     /*** IStartMenuPinnedList methods ***/
  17084     HRESULT (STDMETHODCALLTYPE *RemoveFromList)(
  17085         IStartMenuPinnedList *This,
  17086         IShellItem *pitem);
  17087 
  17088     END_INTERFACE
  17089 } IStartMenuPinnedListVtbl;
  17090 
  17091 interface IStartMenuPinnedList {
  17092     CONST_VTBL IStartMenuPinnedListVtbl* lpVtbl;
  17093 };
  17094 
  17095 #ifdef COBJMACROS
  17096 #ifndef WIDL_C_INLINE_WRAPPERS
  17097 /*** IUnknown methods ***/
  17098 #define IStartMenuPinnedList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17099 #define IStartMenuPinnedList_AddRef(This) (This)->lpVtbl->AddRef(This)
  17100 #define IStartMenuPinnedList_Release(This) (This)->lpVtbl->Release(This)
  17101 /*** IStartMenuPinnedList methods ***/
  17102 #define IStartMenuPinnedList_RemoveFromList(This,pitem) (This)->lpVtbl->RemoveFromList(This,pitem)
  17103 #else
  17104 /*** IUnknown methods ***/
  17105 static inline HRESULT IStartMenuPinnedList_QueryInterface(IStartMenuPinnedList* This,REFIID riid,void **ppvObject) {
  17106     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17107 }
  17108 static inline ULONG IStartMenuPinnedList_AddRef(IStartMenuPinnedList* This) {
  17109     return This->lpVtbl->AddRef(This);
  17110 }
  17111 static inline ULONG IStartMenuPinnedList_Release(IStartMenuPinnedList* This) {
  17112     return This->lpVtbl->Release(This);
  17113 }
  17114 /*** IStartMenuPinnedList methods ***/
  17115 static inline HRESULT IStartMenuPinnedList_RemoveFromList(IStartMenuPinnedList* This,IShellItem *pitem) {
  17116     return This->lpVtbl->RemoveFromList(This,pitem);
  17117 }
  17118 #endif
  17119 #endif
  17120 
  17121 #endif
  17122 
  17123 
  17124 #endif  /* __IStartMenuPinnedList_INTERFACE_DEFINED__ */
  17125 
  17126 
  17127 /*****************************************************************************
  17128  * ICDBurn interface
  17129  */
  17130 #ifndef __ICDBurn_INTERFACE_DEFINED__
  17131 #define __ICDBurn_INTERFACE_DEFINED__
  17132 
  17133 DEFINE_GUID(IID_ICDBurn, 0x3d73a659, 0xe5d0, 0x4d42, 0xaf,0xc0, 0x51,0x21,0xba,0x42,0x5c,0x8d);
  17134 #if defined(__cplusplus) && !defined(CINTERFACE)
  17135 MIDL_INTERFACE("3d73a659-e5d0-4d42-afc0-5121ba425c8d")
  17136 ICDBurn : public IUnknown
  17137 {
  17138     virtual HRESULT STDMETHODCALLTYPE GetRecorderDriveLetter(
  17139         LPWSTR pszDrive,
  17140         UINT cch) = 0;
  17141 
  17142     virtual HRESULT STDMETHODCALLTYPE Burn(
  17143         HWND hwnd) = 0;
  17144 
  17145     virtual HRESULT STDMETHODCALLTYPE HasRecordableDrive(
  17146         WINBOOL *pfHasRecorder) = 0;
  17147 
  17148 };
  17149 #ifdef __CRT_UUID_DECL
  17150 __CRT_UUID_DECL(ICDBurn, 0x3d73a659, 0xe5d0, 0x4d42, 0xaf,0xc0, 0x51,0x21,0xba,0x42,0x5c,0x8d)
  17151 #endif
  17152 #else
  17153 typedef struct ICDBurnVtbl {
  17154     BEGIN_INTERFACE
  17155 
  17156     /*** IUnknown methods ***/
  17157     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17158         ICDBurn *This,
  17159         REFIID riid,
  17160         void **ppvObject);
  17161 
  17162     ULONG (STDMETHODCALLTYPE *AddRef)(
  17163         ICDBurn *This);
  17164 
  17165     ULONG (STDMETHODCALLTYPE *Release)(
  17166         ICDBurn *This);
  17167 
  17168     /*** ICDBurn methods ***/
  17169     HRESULT (STDMETHODCALLTYPE *GetRecorderDriveLetter)(
  17170         ICDBurn *This,
  17171         LPWSTR pszDrive,
  17172         UINT cch);
  17173 
  17174     HRESULT (STDMETHODCALLTYPE *Burn)(
  17175         ICDBurn *This,
  17176         HWND hwnd);
  17177 
  17178     HRESULT (STDMETHODCALLTYPE *HasRecordableDrive)(
  17179         ICDBurn *This,
  17180         WINBOOL *pfHasRecorder);
  17181 
  17182     END_INTERFACE
  17183 } ICDBurnVtbl;
  17184 
  17185 interface ICDBurn {
  17186     CONST_VTBL ICDBurnVtbl* lpVtbl;
  17187 };
  17188 
  17189 #ifdef COBJMACROS
  17190 #ifndef WIDL_C_INLINE_WRAPPERS
  17191 /*** IUnknown methods ***/
  17192 #define ICDBurn_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17193 #define ICDBurn_AddRef(This) (This)->lpVtbl->AddRef(This)
  17194 #define ICDBurn_Release(This) (This)->lpVtbl->Release(This)
  17195 /*** ICDBurn methods ***/
  17196 #define ICDBurn_GetRecorderDriveLetter(This,pszDrive,cch) (This)->lpVtbl->GetRecorderDriveLetter(This,pszDrive,cch)
  17197 #define ICDBurn_Burn(This,hwnd) (This)->lpVtbl->Burn(This,hwnd)
  17198 #define ICDBurn_HasRecordableDrive(This,pfHasRecorder) (This)->lpVtbl->HasRecordableDrive(This,pfHasRecorder)
  17199 #else
  17200 /*** IUnknown methods ***/
  17201 static inline HRESULT ICDBurn_QueryInterface(ICDBurn* This,REFIID riid,void **ppvObject) {
  17202     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17203 }
  17204 static inline ULONG ICDBurn_AddRef(ICDBurn* This) {
  17205     return This->lpVtbl->AddRef(This);
  17206 }
  17207 static inline ULONG ICDBurn_Release(ICDBurn* This) {
  17208     return This->lpVtbl->Release(This);
  17209 }
  17210 /*** ICDBurn methods ***/
  17211 static inline HRESULT ICDBurn_GetRecorderDriveLetter(ICDBurn* This,LPWSTR pszDrive,UINT cch) {
  17212     return This->lpVtbl->GetRecorderDriveLetter(This,pszDrive,cch);
  17213 }
  17214 static inline HRESULT ICDBurn_Burn(ICDBurn* This,HWND hwnd) {
  17215     return This->lpVtbl->Burn(This,hwnd);
  17216 }
  17217 static inline HRESULT ICDBurn_HasRecordableDrive(ICDBurn* This,WINBOOL *pfHasRecorder) {
  17218     return This->lpVtbl->HasRecordableDrive(This,pfHasRecorder);
  17219 }
  17220 #endif
  17221 #endif
  17222 
  17223 #endif
  17224 
  17225 
  17226 #endif  /* __ICDBurn_INTERFACE_DEFINED__ */
  17227 
  17228 
  17229 #define IDD_WIZEXTN_FIRST 0x5000
  17230 #define IDD_WIZEXTN_LAST 0x5100
  17231 
  17232 /*****************************************************************************
  17233  * IWizardSite interface
  17234  */
  17235 #ifndef __IWizardSite_INTERFACE_DEFINED__
  17236 #define __IWizardSite_INTERFACE_DEFINED__
  17237 
  17238 DEFINE_GUID(IID_IWizardSite, 0x88960f5b, 0x422f, 0x4e7b, 0x80,0x13, 0x73,0x41,0x53,0x81,0xc3,0xc3);
  17239 #if defined(__cplusplus) && !defined(CINTERFACE)
  17240 MIDL_INTERFACE("88960f5b-422f-4e7b-8013-73415381c3c3")
  17241 IWizardSite : public IUnknown
  17242 {
  17243     virtual HRESULT STDMETHODCALLTYPE GetPreviousPage(
  17244         HPROPSHEETPAGE *phpage) = 0;
  17245 
  17246     virtual HRESULT STDMETHODCALLTYPE GetNextPage(
  17247         HPROPSHEETPAGE *phpage) = 0;
  17248 
  17249     virtual HRESULT STDMETHODCALLTYPE GetCancelledPage(
  17250         HPROPSHEETPAGE *phpage) = 0;
  17251 
  17252 };
  17253 #ifdef __CRT_UUID_DECL
  17254 __CRT_UUID_DECL(IWizardSite, 0x88960f5b, 0x422f, 0x4e7b, 0x80,0x13, 0x73,0x41,0x53,0x81,0xc3,0xc3)
  17255 #endif
  17256 #else
  17257 typedef struct IWizardSiteVtbl {
  17258     BEGIN_INTERFACE
  17259 
  17260     /*** IUnknown methods ***/
  17261     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17262         IWizardSite *This,
  17263         REFIID riid,
  17264         void **ppvObject);
  17265 
  17266     ULONG (STDMETHODCALLTYPE *AddRef)(
  17267         IWizardSite *This);
  17268 
  17269     ULONG (STDMETHODCALLTYPE *Release)(
  17270         IWizardSite *This);
  17271 
  17272     /*** IWizardSite methods ***/
  17273     HRESULT (STDMETHODCALLTYPE *GetPreviousPage)(
  17274         IWizardSite *This,
  17275         HPROPSHEETPAGE *phpage);
  17276 
  17277     HRESULT (STDMETHODCALLTYPE *GetNextPage)(
  17278         IWizardSite *This,
  17279         HPROPSHEETPAGE *phpage);
  17280 
  17281     HRESULT (STDMETHODCALLTYPE *GetCancelledPage)(
  17282         IWizardSite *This,
  17283         HPROPSHEETPAGE *phpage);
  17284 
  17285     END_INTERFACE
  17286 } IWizardSiteVtbl;
  17287 
  17288 interface IWizardSite {
  17289     CONST_VTBL IWizardSiteVtbl* lpVtbl;
  17290 };
  17291 
  17292 #ifdef COBJMACROS
  17293 #ifndef WIDL_C_INLINE_WRAPPERS
  17294 /*** IUnknown methods ***/
  17295 #define IWizardSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17296 #define IWizardSite_AddRef(This) (This)->lpVtbl->AddRef(This)
  17297 #define IWizardSite_Release(This) (This)->lpVtbl->Release(This)
  17298 /*** IWizardSite methods ***/
  17299 #define IWizardSite_GetPreviousPage(This,phpage) (This)->lpVtbl->GetPreviousPage(This,phpage)
  17300 #define IWizardSite_GetNextPage(This,phpage) (This)->lpVtbl->GetNextPage(This,phpage)
  17301 #define IWizardSite_GetCancelledPage(This,phpage) (This)->lpVtbl->GetCancelledPage(This,phpage)
  17302 #else
  17303 /*** IUnknown methods ***/
  17304 static inline HRESULT IWizardSite_QueryInterface(IWizardSite* This,REFIID riid,void **ppvObject) {
  17305     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17306 }
  17307 static inline ULONG IWizardSite_AddRef(IWizardSite* This) {
  17308     return This->lpVtbl->AddRef(This);
  17309 }
  17310 static inline ULONG IWizardSite_Release(IWizardSite* This) {
  17311     return This->lpVtbl->Release(This);
  17312 }
  17313 /*** IWizardSite methods ***/
  17314 static inline HRESULT IWizardSite_GetPreviousPage(IWizardSite* This,HPROPSHEETPAGE *phpage) {
  17315     return This->lpVtbl->GetPreviousPage(This,phpage);
  17316 }
  17317 static inline HRESULT IWizardSite_GetNextPage(IWizardSite* This,HPROPSHEETPAGE *phpage) {
  17318     return This->lpVtbl->GetNextPage(This,phpage);
  17319 }
  17320 static inline HRESULT IWizardSite_GetCancelledPage(IWizardSite* This,HPROPSHEETPAGE *phpage) {
  17321     return This->lpVtbl->GetCancelledPage(This,phpage);
  17322 }
  17323 #endif
  17324 #endif
  17325 
  17326 #endif
  17327 
  17328 
  17329 #endif  /* __IWizardSite_INTERFACE_DEFINED__ */
  17330 
  17331 
  17332 #define SID_WizardSite IID_IWizardSite
  17333 
  17334 /*****************************************************************************
  17335  * IWizardExtension interface
  17336  */
  17337 #ifndef __IWizardExtension_INTERFACE_DEFINED__
  17338 #define __IWizardExtension_INTERFACE_DEFINED__
  17339 
  17340 DEFINE_GUID(IID_IWizardExtension, 0xc02ea696, 0x86cc, 0x491e, 0x9b,0x23, 0x74,0x39,0x4a,0x04,0x44,0xa8);
  17341 #if defined(__cplusplus) && !defined(CINTERFACE)
  17342 MIDL_INTERFACE("c02ea696-86cc-491e-9b23-74394a0444a8")
  17343 IWizardExtension : public IUnknown
  17344 {
  17345     virtual HRESULT STDMETHODCALLTYPE AddPages(
  17346         HPROPSHEETPAGE *aPages,
  17347         UINT cPages,
  17348         UINT *pnPagesAdded) = 0;
  17349 
  17350     virtual HRESULT STDMETHODCALLTYPE GetFirstPage(
  17351         HPROPSHEETPAGE *phpage) = 0;
  17352 
  17353     virtual HRESULT STDMETHODCALLTYPE GetLastPage(
  17354         HPROPSHEETPAGE *phpage) = 0;
  17355 
  17356 };
  17357 #ifdef __CRT_UUID_DECL
  17358 __CRT_UUID_DECL(IWizardExtension, 0xc02ea696, 0x86cc, 0x491e, 0x9b,0x23, 0x74,0x39,0x4a,0x04,0x44,0xa8)
  17359 #endif
  17360 #else
  17361 typedef struct IWizardExtensionVtbl {
  17362     BEGIN_INTERFACE
  17363 
  17364     /*** IUnknown methods ***/
  17365     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17366         IWizardExtension *This,
  17367         REFIID riid,
  17368         void **ppvObject);
  17369 
  17370     ULONG (STDMETHODCALLTYPE *AddRef)(
  17371         IWizardExtension *This);
  17372 
  17373     ULONG (STDMETHODCALLTYPE *Release)(
  17374         IWizardExtension *This);
  17375 
  17376     /*** IWizardExtension methods ***/
  17377     HRESULT (STDMETHODCALLTYPE *AddPages)(
  17378         IWizardExtension *This,
  17379         HPROPSHEETPAGE *aPages,
  17380         UINT cPages,
  17381         UINT *pnPagesAdded);
  17382 
  17383     HRESULT (STDMETHODCALLTYPE *GetFirstPage)(
  17384         IWizardExtension *This,
  17385         HPROPSHEETPAGE *phpage);
  17386 
  17387     HRESULT (STDMETHODCALLTYPE *GetLastPage)(
  17388         IWizardExtension *This,
  17389         HPROPSHEETPAGE *phpage);
  17390 
  17391     END_INTERFACE
  17392 } IWizardExtensionVtbl;
  17393 
  17394 interface IWizardExtension {
  17395     CONST_VTBL IWizardExtensionVtbl* lpVtbl;
  17396 };
  17397 
  17398 #ifdef COBJMACROS
  17399 #ifndef WIDL_C_INLINE_WRAPPERS
  17400 /*** IUnknown methods ***/
  17401 #define IWizardExtension_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17402 #define IWizardExtension_AddRef(This) (This)->lpVtbl->AddRef(This)
  17403 #define IWizardExtension_Release(This) (This)->lpVtbl->Release(This)
  17404 /*** IWizardExtension methods ***/
  17405 #define IWizardExtension_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
  17406 #define IWizardExtension_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
  17407 #define IWizardExtension_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
  17408 #else
  17409 /*** IUnknown methods ***/
  17410 static inline HRESULT IWizardExtension_QueryInterface(IWizardExtension* This,REFIID riid,void **ppvObject) {
  17411     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17412 }
  17413 static inline ULONG IWizardExtension_AddRef(IWizardExtension* This) {
  17414     return This->lpVtbl->AddRef(This);
  17415 }
  17416 static inline ULONG IWizardExtension_Release(IWizardExtension* This) {
  17417     return This->lpVtbl->Release(This);
  17418 }
  17419 /*** IWizardExtension methods ***/
  17420 static inline HRESULT IWizardExtension_AddPages(IWizardExtension* This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded) {
  17421     return This->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded);
  17422 }
  17423 static inline HRESULT IWizardExtension_GetFirstPage(IWizardExtension* This,HPROPSHEETPAGE *phpage) {
  17424     return This->lpVtbl->GetFirstPage(This,phpage);
  17425 }
  17426 static inline HRESULT IWizardExtension_GetLastPage(IWizardExtension* This,HPROPSHEETPAGE *phpage) {
  17427     return This->lpVtbl->GetLastPage(This,phpage);
  17428 }
  17429 #endif
  17430 #endif
  17431 
  17432 #endif
  17433 
  17434 
  17435 #endif  /* __IWizardExtension_INTERFACE_DEFINED__ */
  17436 
  17437 
  17438 /*****************************************************************************
  17439  * IWebWizardExtension interface
  17440  */
  17441 #ifndef __IWebWizardExtension_INTERFACE_DEFINED__
  17442 #define __IWebWizardExtension_INTERFACE_DEFINED__
  17443 
  17444 DEFINE_GUID(IID_IWebWizardExtension, 0x0e6b3f66, 0x98d1, 0x48c0, 0xa2,0x22, 0xfb,0xde,0x74,0xe2,0xfb,0xc5);
  17445 #if defined(__cplusplus) && !defined(CINTERFACE)
  17446 MIDL_INTERFACE("0e6b3f66-98d1-48c0-a222-fbde74e2fbc5")
  17447 IWebWizardExtension : public IWizardExtension
  17448 {
  17449     virtual HRESULT STDMETHODCALLTYPE SetInitialURL(
  17450         LPCWSTR pszURL) = 0;
  17451 
  17452     virtual HRESULT STDMETHODCALLTYPE SetErrorURL(
  17453         LPCWSTR pszErrorURL) = 0;
  17454 
  17455 };
  17456 #ifdef __CRT_UUID_DECL
  17457 __CRT_UUID_DECL(IWebWizardExtension, 0x0e6b3f66, 0x98d1, 0x48c0, 0xa2,0x22, 0xfb,0xde,0x74,0xe2,0xfb,0xc5)
  17458 #endif
  17459 #else
  17460 typedef struct IWebWizardExtensionVtbl {
  17461     BEGIN_INTERFACE
  17462 
  17463     /*** IUnknown methods ***/
  17464     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17465         IWebWizardExtension *This,
  17466         REFIID riid,
  17467         void **ppvObject);
  17468 
  17469     ULONG (STDMETHODCALLTYPE *AddRef)(
  17470         IWebWizardExtension *This);
  17471 
  17472     ULONG (STDMETHODCALLTYPE *Release)(
  17473         IWebWizardExtension *This);
  17474 
  17475     /*** IWizardExtension methods ***/
  17476     HRESULT (STDMETHODCALLTYPE *AddPages)(
  17477         IWebWizardExtension *This,
  17478         HPROPSHEETPAGE *aPages,
  17479         UINT cPages,
  17480         UINT *pnPagesAdded);
  17481 
  17482     HRESULT (STDMETHODCALLTYPE *GetFirstPage)(
  17483         IWebWizardExtension *This,
  17484         HPROPSHEETPAGE *phpage);
  17485 
  17486     HRESULT (STDMETHODCALLTYPE *GetLastPage)(
  17487         IWebWizardExtension *This,
  17488         HPROPSHEETPAGE *phpage);
  17489 
  17490     /*** IWebWizardExtension methods ***/
  17491     HRESULT (STDMETHODCALLTYPE *SetInitialURL)(
  17492         IWebWizardExtension *This,
  17493         LPCWSTR pszURL);
  17494 
  17495     HRESULT (STDMETHODCALLTYPE *SetErrorURL)(
  17496         IWebWizardExtension *This,
  17497         LPCWSTR pszErrorURL);
  17498 
  17499     END_INTERFACE
  17500 } IWebWizardExtensionVtbl;
  17501 
  17502 interface IWebWizardExtension {
  17503     CONST_VTBL IWebWizardExtensionVtbl* lpVtbl;
  17504 };
  17505 
  17506 #ifdef COBJMACROS
  17507 #ifndef WIDL_C_INLINE_WRAPPERS
  17508 /*** IUnknown methods ***/
  17509 #define IWebWizardExtension_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17510 #define IWebWizardExtension_AddRef(This) (This)->lpVtbl->AddRef(This)
  17511 #define IWebWizardExtension_Release(This) (This)->lpVtbl->Release(This)
  17512 /*** IWizardExtension methods ***/
  17513 #define IWebWizardExtension_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
  17514 #define IWebWizardExtension_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
  17515 #define IWebWizardExtension_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
  17516 /*** IWebWizardExtension methods ***/
  17517 #define IWebWizardExtension_SetInitialURL(This,pszURL) (This)->lpVtbl->SetInitialURL(This,pszURL)
  17518 #define IWebWizardExtension_SetErrorURL(This,pszErrorURL) (This)->lpVtbl->SetErrorURL(This,pszErrorURL)
  17519 #else
  17520 /*** IUnknown methods ***/
  17521 static inline HRESULT IWebWizardExtension_QueryInterface(IWebWizardExtension* This,REFIID riid,void **ppvObject) {
  17522     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17523 }
  17524 static inline ULONG IWebWizardExtension_AddRef(IWebWizardExtension* This) {
  17525     return This->lpVtbl->AddRef(This);
  17526 }
  17527 static inline ULONG IWebWizardExtension_Release(IWebWizardExtension* This) {
  17528     return This->lpVtbl->Release(This);
  17529 }
  17530 /*** IWizardExtension methods ***/
  17531 static inline HRESULT IWebWizardExtension_AddPages(IWebWizardExtension* This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded) {
  17532     return This->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded);
  17533 }
  17534 static inline HRESULT IWebWizardExtension_GetFirstPage(IWebWizardExtension* This,HPROPSHEETPAGE *phpage) {
  17535     return This->lpVtbl->GetFirstPage(This,phpage);
  17536 }
  17537 static inline HRESULT IWebWizardExtension_GetLastPage(IWebWizardExtension* This,HPROPSHEETPAGE *phpage) {
  17538     return This->lpVtbl->GetLastPage(This,phpage);
  17539 }
  17540 /*** IWebWizardExtension methods ***/
  17541 static inline HRESULT IWebWizardExtension_SetInitialURL(IWebWizardExtension* This,LPCWSTR pszURL) {
  17542     return This->lpVtbl->SetInitialURL(This,pszURL);
  17543 }
  17544 static inline HRESULT IWebWizardExtension_SetErrorURL(IWebWizardExtension* This,LPCWSTR pszErrorURL) {
  17545     return This->lpVtbl->SetErrorURL(This,pszErrorURL);
  17546 }
  17547 #endif
  17548 #endif
  17549 
  17550 #endif
  17551 
  17552 
  17553 #endif  /* __IWebWizardExtension_INTERFACE_DEFINED__ */
  17554 
  17555 
  17556 #define SID_WebWizardHost IID_IWebWizardExtension
  17557 
  17558 #define SHPWHF_NORECOMPRESS 0x00000001
  17559 #define SHPWHF_NONETPLACECREATE 0x00000002
  17560 #define SHPWHF_NOFILESELECTOR 0x00000004
  17561 #define SHPWHF_USEMRU 0x00000008
  17562 #if NTDDI_VERSION >= NTDDI_VISTA
  17563 #define SHPWHF_ANYLOCATION 0x00000100
  17564 #endif
  17565 #define SHPWHF_VALIDATEVIAWEBFOLDERS 0x00010000
  17566 
  17567 #ifndef __IXMLDOMDocument_FWD_DEFINED__
  17568 #define __IXMLDOMDocument_FWD_DEFINED__
  17569 typedef interface IXMLDOMDocument IXMLDOMDocument;
  17570 #ifdef __cplusplus
  17571 interface IXMLDOMDocument;
  17572 #endif /* __cplusplus */
  17573 #endif
  17574 
  17575 
  17576 /*****************************************************************************
  17577  * IPublishingWizard interface
  17578  */
  17579 #ifndef __IPublishingWizard_INTERFACE_DEFINED__
  17580 #define __IPublishingWizard_INTERFACE_DEFINED__
  17581 
  17582 DEFINE_GUID(IID_IPublishingWizard, 0xaa9198bb, 0xccec, 0x472d, 0xbe,0xed, 0x19,0xa4,0xf6,0x73,0x3f,0x7a);
  17583 #if defined(__cplusplus) && !defined(CINTERFACE)
  17584 MIDL_INTERFACE("aa9198bb-ccec-472d-beed-19a4f6733f7a")
  17585 IPublishingWizard : public IWizardExtension
  17586 {
  17587     virtual HRESULT STDMETHODCALLTYPE Initialize(
  17588         IDataObject *pdo,
  17589         DWORD dwOptions,
  17590         LPCWSTR pszServiceScope) = 0;
  17591 
  17592     virtual HRESULT STDMETHODCALLTYPE GetTransferManifest(
  17593         HRESULT *phrFromTransfer,
  17594         IXMLDOMDocument **pdocManifest) = 0;
  17595 
  17596 };
  17597 #ifdef __CRT_UUID_DECL
  17598 __CRT_UUID_DECL(IPublishingWizard, 0xaa9198bb, 0xccec, 0x472d, 0xbe,0xed, 0x19,0xa4,0xf6,0x73,0x3f,0x7a)
  17599 #endif
  17600 #else
  17601 typedef struct IPublishingWizardVtbl {
  17602     BEGIN_INTERFACE
  17603 
  17604     /*** IUnknown methods ***/
  17605     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17606         IPublishingWizard *This,
  17607         REFIID riid,
  17608         void **ppvObject);
  17609 
  17610     ULONG (STDMETHODCALLTYPE *AddRef)(
  17611         IPublishingWizard *This);
  17612 
  17613     ULONG (STDMETHODCALLTYPE *Release)(
  17614         IPublishingWizard *This);
  17615 
  17616     /*** IWizardExtension methods ***/
  17617     HRESULT (STDMETHODCALLTYPE *AddPages)(
  17618         IPublishingWizard *This,
  17619         HPROPSHEETPAGE *aPages,
  17620         UINT cPages,
  17621         UINT *pnPagesAdded);
  17622 
  17623     HRESULT (STDMETHODCALLTYPE *GetFirstPage)(
  17624         IPublishingWizard *This,
  17625         HPROPSHEETPAGE *phpage);
  17626 
  17627     HRESULT (STDMETHODCALLTYPE *GetLastPage)(
  17628         IPublishingWizard *This,
  17629         HPROPSHEETPAGE *phpage);
  17630 
  17631     /*** IPublishingWizard methods ***/
  17632     HRESULT (STDMETHODCALLTYPE *Initialize)(
  17633         IPublishingWizard *This,
  17634         IDataObject *pdo,
  17635         DWORD dwOptions,
  17636         LPCWSTR pszServiceScope);
  17637 
  17638     HRESULT (STDMETHODCALLTYPE *GetTransferManifest)(
  17639         IPublishingWizard *This,
  17640         HRESULT *phrFromTransfer,
  17641         IXMLDOMDocument **pdocManifest);
  17642 
  17643     END_INTERFACE
  17644 } IPublishingWizardVtbl;
  17645 
  17646 interface IPublishingWizard {
  17647     CONST_VTBL IPublishingWizardVtbl* lpVtbl;
  17648 };
  17649 
  17650 #ifdef COBJMACROS
  17651 #ifndef WIDL_C_INLINE_WRAPPERS
  17652 /*** IUnknown methods ***/
  17653 #define IPublishingWizard_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17654 #define IPublishingWizard_AddRef(This) (This)->lpVtbl->AddRef(This)
  17655 #define IPublishingWizard_Release(This) (This)->lpVtbl->Release(This)
  17656 /*** IWizardExtension methods ***/
  17657 #define IPublishingWizard_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
  17658 #define IPublishingWizard_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
  17659 #define IPublishingWizard_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
  17660 /*** IPublishingWizard methods ***/
  17661 #define IPublishingWizard_Initialize(This,pdo,dwOptions,pszServiceScope) (This)->lpVtbl->Initialize(This,pdo,dwOptions,pszServiceScope)
  17662 #define IPublishingWizard_GetTransferManifest(This,phrFromTransfer,pdocManifest) (This)->lpVtbl->GetTransferManifest(This,phrFromTransfer,pdocManifest)
  17663 #else
  17664 /*** IUnknown methods ***/
  17665 static inline HRESULT IPublishingWizard_QueryInterface(IPublishingWizard* This,REFIID riid,void **ppvObject) {
  17666     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17667 }
  17668 static inline ULONG IPublishingWizard_AddRef(IPublishingWizard* This) {
  17669     return This->lpVtbl->AddRef(This);
  17670 }
  17671 static inline ULONG IPublishingWizard_Release(IPublishingWizard* This) {
  17672     return This->lpVtbl->Release(This);
  17673 }
  17674 /*** IWizardExtension methods ***/
  17675 static inline HRESULT IPublishingWizard_AddPages(IPublishingWizard* This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded) {
  17676     return This->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded);
  17677 }
  17678 static inline HRESULT IPublishingWizard_GetFirstPage(IPublishingWizard* This,HPROPSHEETPAGE *phpage) {
  17679     return This->lpVtbl->GetFirstPage(This,phpage);
  17680 }
  17681 static inline HRESULT IPublishingWizard_GetLastPage(IPublishingWizard* This,HPROPSHEETPAGE *phpage) {
  17682     return This->lpVtbl->GetLastPage(This,phpage);
  17683 }
  17684 /*** IPublishingWizard methods ***/
  17685 static inline HRESULT IPublishingWizard_Initialize(IPublishingWizard* This,IDataObject *pdo,DWORD dwOptions,LPCWSTR pszServiceScope) {
  17686     return This->lpVtbl->Initialize(This,pdo,dwOptions,pszServiceScope);
  17687 }
  17688 static inline HRESULT IPublishingWizard_GetTransferManifest(IPublishingWizard* This,HRESULT *phrFromTransfer,IXMLDOMDocument **pdocManifest) {
  17689     return This->lpVtbl->GetTransferManifest(This,phrFromTransfer,pdocManifest);
  17690 }
  17691 #endif
  17692 #endif
  17693 
  17694 #endif
  17695 
  17696 
  17697 #endif  /* __IPublishingWizard_INTERFACE_DEFINED__ */
  17698 
  17699 
  17700 /*****************************************************************************
  17701  * IFolderViewHost interface
  17702  */
  17703 #ifndef __IFolderViewHost_INTERFACE_DEFINED__
  17704 #define __IFolderViewHost_INTERFACE_DEFINED__
  17705 
  17706 DEFINE_GUID(IID_IFolderViewHost, 0x1ea58f02, 0xd55a, 0x411d, 0xb0,0x9e, 0x9e,0x65,0xac,0x21,0x60,0x5b);
  17707 #if defined(__cplusplus) && !defined(CINTERFACE)
  17708 MIDL_INTERFACE("1ea58f02-d55a-411d-b09e-9e65ac21605b")
  17709 IFolderViewHost : public IUnknown
  17710 {
  17711     virtual HRESULT STDMETHODCALLTYPE Initialize(
  17712         HWND hwndParent,
  17713         IDataObject *pdo,
  17714         RECT *prc) = 0;
  17715 
  17716 };
  17717 #ifdef __CRT_UUID_DECL
  17718 __CRT_UUID_DECL(IFolderViewHost, 0x1ea58f02, 0xd55a, 0x411d, 0xb0,0x9e, 0x9e,0x65,0xac,0x21,0x60,0x5b)
  17719 #endif
  17720 #else
  17721 typedef struct IFolderViewHostVtbl {
  17722     BEGIN_INTERFACE
  17723 
  17724     /*** IUnknown methods ***/
  17725     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17726         IFolderViewHost *This,
  17727         REFIID riid,
  17728         void **ppvObject);
  17729 
  17730     ULONG (STDMETHODCALLTYPE *AddRef)(
  17731         IFolderViewHost *This);
  17732 
  17733     ULONG (STDMETHODCALLTYPE *Release)(
  17734         IFolderViewHost *This);
  17735 
  17736     /*** IFolderViewHost methods ***/
  17737     HRESULT (STDMETHODCALLTYPE *Initialize)(
  17738         IFolderViewHost *This,
  17739         HWND hwndParent,
  17740         IDataObject *pdo,
  17741         RECT *prc);
  17742 
  17743     END_INTERFACE
  17744 } IFolderViewHostVtbl;
  17745 
  17746 interface IFolderViewHost {
  17747     CONST_VTBL IFolderViewHostVtbl* lpVtbl;
  17748 };
  17749 
  17750 #ifdef COBJMACROS
  17751 #ifndef WIDL_C_INLINE_WRAPPERS
  17752 /*** IUnknown methods ***/
  17753 #define IFolderViewHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17754 #define IFolderViewHost_AddRef(This) (This)->lpVtbl->AddRef(This)
  17755 #define IFolderViewHost_Release(This) (This)->lpVtbl->Release(This)
  17756 /*** IFolderViewHost methods ***/
  17757 #define IFolderViewHost_Initialize(This,hwndParent,pdo,prc) (This)->lpVtbl->Initialize(This,hwndParent,pdo,prc)
  17758 #else
  17759 /*** IUnknown methods ***/
  17760 static inline HRESULT IFolderViewHost_QueryInterface(IFolderViewHost* This,REFIID riid,void **ppvObject) {
  17761     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17762 }
  17763 static inline ULONG IFolderViewHost_AddRef(IFolderViewHost* This) {
  17764     return This->lpVtbl->AddRef(This);
  17765 }
  17766 static inline ULONG IFolderViewHost_Release(IFolderViewHost* This) {
  17767     return This->lpVtbl->Release(This);
  17768 }
  17769 /*** IFolderViewHost methods ***/
  17770 static inline HRESULT IFolderViewHost_Initialize(IFolderViewHost* This,HWND hwndParent,IDataObject *pdo,RECT *prc) {
  17771     return This->lpVtbl->Initialize(This,hwndParent,pdo,prc);
  17772 }
  17773 #endif
  17774 #endif
  17775 
  17776 #endif
  17777 
  17778 
  17779 #endif  /* __IFolderViewHost_INTERFACE_DEFINED__ */
  17780 
  17781 
  17782 #if _WIN32_IE >= _WIN32_IE_IE70
  17783 /*****************************************************************************
  17784  * IExplorerBrowserEvents interface
  17785  */
  17786 #ifndef __IExplorerBrowserEvents_INTERFACE_DEFINED__
  17787 #define __IExplorerBrowserEvents_INTERFACE_DEFINED__
  17788 
  17789 DEFINE_GUID(IID_IExplorerBrowserEvents, 0x361bbdc7, 0xe6ee, 0x4e13, 0xbe,0x58, 0x58,0xe2,0x24,0x0c,0x81,0x0f);
  17790 #if defined(__cplusplus) && !defined(CINTERFACE)
  17791 MIDL_INTERFACE("361bbdc7-e6ee-4e13-be58-58e2240c810f")
  17792 IExplorerBrowserEvents : public IUnknown
  17793 {
  17794     virtual HRESULT STDMETHODCALLTYPE OnNavigationPending(
  17795         PCIDLIST_ABSOLUTE pidlFolder) = 0;
  17796 
  17797     virtual HRESULT STDMETHODCALLTYPE OnViewCreated(
  17798         IShellView *psv) = 0;
  17799 
  17800     virtual HRESULT STDMETHODCALLTYPE OnNavigationComplete(
  17801         PCIDLIST_ABSOLUTE pidlFolder) = 0;
  17802 
  17803     virtual HRESULT STDMETHODCALLTYPE OnNavigationFailed(
  17804         PCIDLIST_ABSOLUTE pidlFolder) = 0;
  17805 
  17806 };
  17807 #ifdef __CRT_UUID_DECL
  17808 __CRT_UUID_DECL(IExplorerBrowserEvents, 0x361bbdc7, 0xe6ee, 0x4e13, 0xbe,0x58, 0x58,0xe2,0x24,0x0c,0x81,0x0f)
  17809 #endif
  17810 #else
  17811 typedef struct IExplorerBrowserEventsVtbl {
  17812     BEGIN_INTERFACE
  17813 
  17814     /*** IUnknown methods ***/
  17815     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17816         IExplorerBrowserEvents *This,
  17817         REFIID riid,
  17818         void **ppvObject);
  17819 
  17820     ULONG (STDMETHODCALLTYPE *AddRef)(
  17821         IExplorerBrowserEvents *This);
  17822 
  17823     ULONG (STDMETHODCALLTYPE *Release)(
  17824         IExplorerBrowserEvents *This);
  17825 
  17826     /*** IExplorerBrowserEvents methods ***/
  17827     HRESULT (STDMETHODCALLTYPE *OnNavigationPending)(
  17828         IExplorerBrowserEvents *This,
  17829         PCIDLIST_ABSOLUTE pidlFolder);
  17830 
  17831     HRESULT (STDMETHODCALLTYPE *OnViewCreated)(
  17832         IExplorerBrowserEvents *This,
  17833         IShellView *psv);
  17834 
  17835     HRESULT (STDMETHODCALLTYPE *OnNavigationComplete)(
  17836         IExplorerBrowserEvents *This,
  17837         PCIDLIST_ABSOLUTE pidlFolder);
  17838 
  17839     HRESULT (STDMETHODCALLTYPE *OnNavigationFailed)(
  17840         IExplorerBrowserEvents *This,
  17841         PCIDLIST_ABSOLUTE pidlFolder);
  17842 
  17843     END_INTERFACE
  17844 } IExplorerBrowserEventsVtbl;
  17845 
  17846 interface IExplorerBrowserEvents {
  17847     CONST_VTBL IExplorerBrowserEventsVtbl* lpVtbl;
  17848 };
  17849 
  17850 #ifdef COBJMACROS
  17851 #ifndef WIDL_C_INLINE_WRAPPERS
  17852 /*** IUnknown methods ***/
  17853 #define IExplorerBrowserEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  17854 #define IExplorerBrowserEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
  17855 #define IExplorerBrowserEvents_Release(This) (This)->lpVtbl->Release(This)
  17856 /*** IExplorerBrowserEvents methods ***/
  17857 #define IExplorerBrowserEvents_OnNavigationPending(This,pidlFolder) (This)->lpVtbl->OnNavigationPending(This,pidlFolder)
  17858 #define IExplorerBrowserEvents_OnViewCreated(This,psv) (This)->lpVtbl->OnViewCreated(This,psv)
  17859 #define IExplorerBrowserEvents_OnNavigationComplete(This,pidlFolder) (This)->lpVtbl->OnNavigationComplete(This,pidlFolder)
  17860 #define IExplorerBrowserEvents_OnNavigationFailed(This,pidlFolder) (This)->lpVtbl->OnNavigationFailed(This,pidlFolder)
  17861 #else
  17862 /*** IUnknown methods ***/
  17863 static inline HRESULT IExplorerBrowserEvents_QueryInterface(IExplorerBrowserEvents* This,REFIID riid,void **ppvObject) {
  17864     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  17865 }
  17866 static inline ULONG IExplorerBrowserEvents_AddRef(IExplorerBrowserEvents* This) {
  17867     return This->lpVtbl->AddRef(This);
  17868 }
  17869 static inline ULONG IExplorerBrowserEvents_Release(IExplorerBrowserEvents* This) {
  17870     return This->lpVtbl->Release(This);
  17871 }
  17872 /*** IExplorerBrowserEvents methods ***/
  17873 static inline HRESULT IExplorerBrowserEvents_OnNavigationPending(IExplorerBrowserEvents* This,PCIDLIST_ABSOLUTE pidlFolder) {
  17874     return This->lpVtbl->OnNavigationPending(This,pidlFolder);
  17875 }
  17876 static inline HRESULT IExplorerBrowserEvents_OnViewCreated(IExplorerBrowserEvents* This,IShellView *psv) {
  17877     return This->lpVtbl->OnViewCreated(This,psv);
  17878 }
  17879 static inline HRESULT IExplorerBrowserEvents_OnNavigationComplete(IExplorerBrowserEvents* This,PCIDLIST_ABSOLUTE pidlFolder) {
  17880     return This->lpVtbl->OnNavigationComplete(This,pidlFolder);
  17881 }
  17882 static inline HRESULT IExplorerBrowserEvents_OnNavigationFailed(IExplorerBrowserEvents* This,PCIDLIST_ABSOLUTE pidlFolder) {
  17883     return This->lpVtbl->OnNavigationFailed(This,pidlFolder);
  17884 }
  17885 #endif
  17886 #endif
  17887 
  17888 #endif
  17889 
  17890 
  17891 #endif  /* __IExplorerBrowserEvents_INTERFACE_DEFINED__ */
  17892 
  17893 
  17894 typedef enum EXPLORER_BROWSER_OPTIONS {
  17895     EBO_NONE = 0x0,
  17896     EBO_NAVIGATEONCE = 0x1,
  17897     EBO_SHOWFRAMES = 0x2,
  17898     EBO_ALWAYSNAVIGATE = 0x4,
  17899     EBO_NOTRAVELLOG = 0x8,
  17900     EBO_NOWRAPPERWINDOW = 0x10,
  17901     EBO_HTMLSHAREPOINTVIEW = 0x20,
  17902     EBO_NOBORDER = 0x40,
  17903     EBO_NOPERSISTVIEWSTATE = 0x80
  17904 } EXPLORER_BROWSER_OPTIONS;
  17905 
  17906 DEFINE_ENUM_FLAG_OPERATORS(EXPLORER_BROWSER_OPTIONS)
  17907 
  17908 typedef enum EXPLORER_BROWSER_FILL_FLAGS {
  17909     EBF_NONE = 0x0,
  17910     EBF_SELECTFROMDATAOBJECT = 0x100,
  17911     EBF_NODROPTARGET = 0x200
  17912 } EXPLORER_BROWSER_FILL_FLAGS;
  17913 
  17914 DEFINE_ENUM_FLAG_OPERATORS(EXPLORER_BROWSER_FILL_FLAGS)
  17915 
  17916 /*****************************************************************************
  17917  * IExplorerBrowser interface
  17918  */
  17919 #ifndef __IExplorerBrowser_INTERFACE_DEFINED__
  17920 #define __IExplorerBrowser_INTERFACE_DEFINED__
  17921 
  17922 DEFINE_GUID(IID_IExplorerBrowser, 0xdfd3b6b5, 0xc10c, 0x4be9, 0x85,0xf6, 0xa6,0x69,0x69,0xf4,0x02,0xf6);
  17923 #if defined(__cplusplus) && !defined(CINTERFACE)
  17924 MIDL_INTERFACE("dfd3b6b5-c10c-4be9-85f6-a66969f402f6")
  17925 IExplorerBrowser : public IUnknown
  17926 {
  17927     virtual HRESULT STDMETHODCALLTYPE Initialize(
  17928         HWND hwndParent,
  17929         const RECT *prc,
  17930         const FOLDERSETTINGS *pfs) = 0;
  17931 
  17932     virtual HRESULT STDMETHODCALLTYPE Destroy(
  17933         ) = 0;
  17934 
  17935     virtual HRESULT STDMETHODCALLTYPE SetRect(
  17936         HDWP *phdwp,
  17937         RECT rcBrowser) = 0;
  17938 
  17939     virtual HRESULT STDMETHODCALLTYPE SetPropertyBag(
  17940         LPCWSTR pszPropertyBag) = 0;
  17941 
  17942     virtual HRESULT STDMETHODCALLTYPE SetEmptyText(
  17943         LPCWSTR pszEmptyText) = 0;
  17944 
  17945     virtual HRESULT STDMETHODCALLTYPE SetFolderSettings(
  17946         const FOLDERSETTINGS *pfs) = 0;
  17947 
  17948     virtual HRESULT STDMETHODCALLTYPE Advise(
  17949         IExplorerBrowserEvents *psbe,
  17950         DWORD *pdwCookie) = 0;
  17951 
  17952     virtual HRESULT STDMETHODCALLTYPE Unadvise(
  17953         DWORD dwCookie) = 0;
  17954 
  17955     virtual HRESULT STDMETHODCALLTYPE SetOptions(
  17956         EXPLORER_BROWSER_OPTIONS dwFlag) = 0;
  17957 
  17958     virtual HRESULT STDMETHODCALLTYPE GetOptions(
  17959         EXPLORER_BROWSER_OPTIONS *pdwFlag) = 0;
  17960 
  17961     virtual HRESULT STDMETHODCALLTYPE BrowseToIDList(
  17962         PCUIDLIST_RELATIVE pidl,
  17963         UINT uFlags) = 0;
  17964 
  17965     virtual HRESULT STDMETHODCALLTYPE BrowseToObject(
  17966         IUnknown *punk,
  17967         UINT uFlags) = 0;
  17968 
  17969     virtual HRESULT STDMETHODCALLTYPE FillFromObject(
  17970         IUnknown *punk,
  17971         EXPLORER_BROWSER_FILL_FLAGS dwFlags) = 0;
  17972 
  17973     virtual HRESULT STDMETHODCALLTYPE RemoveAll(
  17974         ) = 0;
  17975 
  17976     virtual HRESULT STDMETHODCALLTYPE GetCurrentView(
  17977         REFIID riid,
  17978         void **ppv) = 0;
  17979 
  17980 };
  17981 #ifdef __CRT_UUID_DECL
  17982 __CRT_UUID_DECL(IExplorerBrowser, 0xdfd3b6b5, 0xc10c, 0x4be9, 0x85,0xf6, 0xa6,0x69,0x69,0xf4,0x02,0xf6)
  17983 #endif
  17984 #else
  17985 typedef struct IExplorerBrowserVtbl {
  17986     BEGIN_INTERFACE
  17987 
  17988     /*** IUnknown methods ***/
  17989     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  17990         IExplorerBrowser *This,
  17991         REFIID riid,
  17992         void **ppvObject);
  17993 
  17994     ULONG (STDMETHODCALLTYPE *AddRef)(
  17995         IExplorerBrowser *This);
  17996 
  17997     ULONG (STDMETHODCALLTYPE *Release)(
  17998         IExplorerBrowser *This);
  17999 
  18000     /*** IExplorerBrowser methods ***/
  18001     HRESULT (STDMETHODCALLTYPE *Initialize)(
  18002         IExplorerBrowser *This,
  18003         HWND hwndParent,
  18004         const RECT *prc,
  18005         const FOLDERSETTINGS *pfs);
  18006 
  18007     HRESULT (STDMETHODCALLTYPE *Destroy)(
  18008         IExplorerBrowser *This);
  18009 
  18010     HRESULT (STDMETHODCALLTYPE *SetRect)(
  18011         IExplorerBrowser *This,
  18012         HDWP *phdwp,
  18013         RECT rcBrowser);
  18014 
  18015     HRESULT (STDMETHODCALLTYPE *SetPropertyBag)(
  18016         IExplorerBrowser *This,
  18017         LPCWSTR pszPropertyBag);
  18018 
  18019     HRESULT (STDMETHODCALLTYPE *SetEmptyText)(
  18020         IExplorerBrowser *This,
  18021         LPCWSTR pszEmptyText);
  18022 
  18023     HRESULT (STDMETHODCALLTYPE *SetFolderSettings)(
  18024         IExplorerBrowser *This,
  18025         const FOLDERSETTINGS *pfs);
  18026 
  18027     HRESULT (STDMETHODCALLTYPE *Advise)(
  18028         IExplorerBrowser *This,
  18029         IExplorerBrowserEvents *psbe,
  18030         DWORD *pdwCookie);
  18031 
  18032     HRESULT (STDMETHODCALLTYPE *Unadvise)(
  18033         IExplorerBrowser *This,
  18034         DWORD dwCookie);
  18035 
  18036     HRESULT (STDMETHODCALLTYPE *SetOptions)(
  18037         IExplorerBrowser *This,
  18038         EXPLORER_BROWSER_OPTIONS dwFlag);
  18039 
  18040     HRESULT (STDMETHODCALLTYPE *GetOptions)(
  18041         IExplorerBrowser *This,
  18042         EXPLORER_BROWSER_OPTIONS *pdwFlag);
  18043 
  18044     HRESULT (STDMETHODCALLTYPE *BrowseToIDList)(
  18045         IExplorerBrowser *This,
  18046         PCUIDLIST_RELATIVE pidl,
  18047         UINT uFlags);
  18048 
  18049     HRESULT (STDMETHODCALLTYPE *BrowseToObject)(
  18050         IExplorerBrowser *This,
  18051         IUnknown *punk,
  18052         UINT uFlags);
  18053 
  18054     HRESULT (STDMETHODCALLTYPE *FillFromObject)(
  18055         IExplorerBrowser *This,
  18056         IUnknown *punk,
  18057         EXPLORER_BROWSER_FILL_FLAGS dwFlags);
  18058 
  18059     HRESULT (STDMETHODCALLTYPE *RemoveAll)(
  18060         IExplorerBrowser *This);
  18061 
  18062     HRESULT (STDMETHODCALLTYPE *GetCurrentView)(
  18063         IExplorerBrowser *This,
  18064         REFIID riid,
  18065         void **ppv);
  18066 
  18067     END_INTERFACE
  18068 } IExplorerBrowserVtbl;
  18069 
  18070 interface IExplorerBrowser {
  18071     CONST_VTBL IExplorerBrowserVtbl* lpVtbl;
  18072 };
  18073 
  18074 #ifdef COBJMACROS
  18075 #ifndef WIDL_C_INLINE_WRAPPERS
  18076 /*** IUnknown methods ***/
  18077 #define IExplorerBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18078 #define IExplorerBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
  18079 #define IExplorerBrowser_Release(This) (This)->lpVtbl->Release(This)
  18080 /*** IExplorerBrowser methods ***/
  18081 #define IExplorerBrowser_Initialize(This,hwndParent,prc,pfs) (This)->lpVtbl->Initialize(This,hwndParent,prc,pfs)
  18082 #define IExplorerBrowser_Destroy(This) (This)->lpVtbl->Destroy(This)
  18083 #define IExplorerBrowser_SetRect(This,phdwp,rcBrowser) (This)->lpVtbl->SetRect(This,phdwp,rcBrowser)
  18084 #define IExplorerBrowser_SetPropertyBag(This,pszPropertyBag) (This)->lpVtbl->SetPropertyBag(This,pszPropertyBag)
  18085 #define IExplorerBrowser_SetEmptyText(This,pszEmptyText) (This)->lpVtbl->SetEmptyText(This,pszEmptyText)
  18086 #define IExplorerBrowser_SetFolderSettings(This,pfs) (This)->lpVtbl->SetFolderSettings(This,pfs)
  18087 #define IExplorerBrowser_Advise(This,psbe,pdwCookie) (This)->lpVtbl->Advise(This,psbe,pdwCookie)
  18088 #define IExplorerBrowser_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
  18089 #define IExplorerBrowser_SetOptions(This,dwFlag) (This)->lpVtbl->SetOptions(This,dwFlag)
  18090 #define IExplorerBrowser_GetOptions(This,pdwFlag) (This)->lpVtbl->GetOptions(This,pdwFlag)
  18091 #define IExplorerBrowser_BrowseToIDList(This,pidl,uFlags) (This)->lpVtbl->BrowseToIDList(This,pidl,uFlags)
  18092 #define IExplorerBrowser_BrowseToObject(This,punk,uFlags) (This)->lpVtbl->BrowseToObject(This,punk,uFlags)
  18093 #define IExplorerBrowser_FillFromObject(This,punk,dwFlags) (This)->lpVtbl->FillFromObject(This,punk,dwFlags)
  18094 #define IExplorerBrowser_RemoveAll(This) (This)->lpVtbl->RemoveAll(This)
  18095 #define IExplorerBrowser_GetCurrentView(This,riid,ppv) (This)->lpVtbl->GetCurrentView(This,riid,ppv)
  18096 #else
  18097 /*** IUnknown methods ***/
  18098 static inline HRESULT IExplorerBrowser_QueryInterface(IExplorerBrowser* This,REFIID riid,void **ppvObject) {
  18099     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18100 }
  18101 static inline ULONG IExplorerBrowser_AddRef(IExplorerBrowser* This) {
  18102     return This->lpVtbl->AddRef(This);
  18103 }
  18104 static inline ULONG IExplorerBrowser_Release(IExplorerBrowser* This) {
  18105     return This->lpVtbl->Release(This);
  18106 }
  18107 /*** IExplorerBrowser methods ***/
  18108 static inline HRESULT IExplorerBrowser_Initialize(IExplorerBrowser* This,HWND hwndParent,const RECT *prc,const FOLDERSETTINGS *pfs) {
  18109     return This->lpVtbl->Initialize(This,hwndParent,prc,pfs);
  18110 }
  18111 static inline HRESULT IExplorerBrowser_Destroy(IExplorerBrowser* This) {
  18112     return This->lpVtbl->Destroy(This);
  18113 }
  18114 static inline HRESULT IExplorerBrowser_SetRect(IExplorerBrowser* This,HDWP *phdwp,RECT rcBrowser) {
  18115     return This->lpVtbl->SetRect(This,phdwp,rcBrowser);
  18116 }
  18117 static inline HRESULT IExplorerBrowser_SetPropertyBag(IExplorerBrowser* This,LPCWSTR pszPropertyBag) {
  18118     return This->lpVtbl->SetPropertyBag(This,pszPropertyBag);
  18119 }
  18120 static inline HRESULT IExplorerBrowser_SetEmptyText(IExplorerBrowser* This,LPCWSTR pszEmptyText) {
  18121     return This->lpVtbl->SetEmptyText(This,pszEmptyText);
  18122 }
  18123 static inline HRESULT IExplorerBrowser_SetFolderSettings(IExplorerBrowser* This,const FOLDERSETTINGS *pfs) {
  18124     return This->lpVtbl->SetFolderSettings(This,pfs);
  18125 }
  18126 static inline HRESULT IExplorerBrowser_Advise(IExplorerBrowser* This,IExplorerBrowserEvents *psbe,DWORD *pdwCookie) {
  18127     return This->lpVtbl->Advise(This,psbe,pdwCookie);
  18128 }
  18129 static inline HRESULT IExplorerBrowser_Unadvise(IExplorerBrowser* This,DWORD dwCookie) {
  18130     return This->lpVtbl->Unadvise(This,dwCookie);
  18131 }
  18132 static inline HRESULT IExplorerBrowser_SetOptions(IExplorerBrowser* This,EXPLORER_BROWSER_OPTIONS dwFlag) {
  18133     return This->lpVtbl->SetOptions(This,dwFlag);
  18134 }
  18135 static inline HRESULT IExplorerBrowser_GetOptions(IExplorerBrowser* This,EXPLORER_BROWSER_OPTIONS *pdwFlag) {
  18136     return This->lpVtbl->GetOptions(This,pdwFlag);
  18137 }
  18138 static inline HRESULT IExplorerBrowser_BrowseToIDList(IExplorerBrowser* This,PCUIDLIST_RELATIVE pidl,UINT uFlags) {
  18139     return This->lpVtbl->BrowseToIDList(This,pidl,uFlags);
  18140 }
  18141 static inline HRESULT IExplorerBrowser_BrowseToObject(IExplorerBrowser* This,IUnknown *punk,UINT uFlags) {
  18142     return This->lpVtbl->BrowseToObject(This,punk,uFlags);
  18143 }
  18144 static inline HRESULT IExplorerBrowser_FillFromObject(IExplorerBrowser* This,IUnknown *punk,EXPLORER_BROWSER_FILL_FLAGS dwFlags) {
  18145     return This->lpVtbl->FillFromObject(This,punk,dwFlags);
  18146 }
  18147 static inline HRESULT IExplorerBrowser_RemoveAll(IExplorerBrowser* This) {
  18148     return This->lpVtbl->RemoveAll(This);
  18149 }
  18150 static inline HRESULT IExplorerBrowser_GetCurrentView(IExplorerBrowser* This,REFIID riid,void **ppv) {
  18151     return This->lpVtbl->GetCurrentView(This,riid,ppv);
  18152 }
  18153 #endif
  18154 #endif
  18155 
  18156 #endif
  18157 
  18158 
  18159 #endif  /* __IExplorerBrowser_INTERFACE_DEFINED__ */
  18160 
  18161 
  18162 /*****************************************************************************
  18163  * IAccessibleObject interface
  18164  */
  18165 #ifndef __IAccessibleObject_INTERFACE_DEFINED__
  18166 #define __IAccessibleObject_INTERFACE_DEFINED__
  18167 
  18168 DEFINE_GUID(IID_IAccessibleObject, 0x95a391c5, 0x9ed4, 0x4c28, 0x84,0x01, 0xab,0x9e,0x06,0x71,0x9e,0x11);
  18169 #if defined(__cplusplus) && !defined(CINTERFACE)
  18170 MIDL_INTERFACE("95a391c5-9ed4-4c28-8401-ab9e06719e11")
  18171 IAccessibleObject : public IUnknown
  18172 {
  18173     virtual HRESULT STDMETHODCALLTYPE SetAccessibleName(
  18174         LPCWSTR pszName) = 0;
  18175 
  18176 };
  18177 #ifdef __CRT_UUID_DECL
  18178 __CRT_UUID_DECL(IAccessibleObject, 0x95a391c5, 0x9ed4, 0x4c28, 0x84,0x01, 0xab,0x9e,0x06,0x71,0x9e,0x11)
  18179 #endif
  18180 #else
  18181 typedef struct IAccessibleObjectVtbl {
  18182     BEGIN_INTERFACE
  18183 
  18184     /*** IUnknown methods ***/
  18185     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18186         IAccessibleObject *This,
  18187         REFIID riid,
  18188         void **ppvObject);
  18189 
  18190     ULONG (STDMETHODCALLTYPE *AddRef)(
  18191         IAccessibleObject *This);
  18192 
  18193     ULONG (STDMETHODCALLTYPE *Release)(
  18194         IAccessibleObject *This);
  18195 
  18196     /*** IAccessibleObject methods ***/
  18197     HRESULT (STDMETHODCALLTYPE *SetAccessibleName)(
  18198         IAccessibleObject *This,
  18199         LPCWSTR pszName);
  18200 
  18201     END_INTERFACE
  18202 } IAccessibleObjectVtbl;
  18203 
  18204 interface IAccessibleObject {
  18205     CONST_VTBL IAccessibleObjectVtbl* lpVtbl;
  18206 };
  18207 
  18208 #ifdef COBJMACROS
  18209 #ifndef WIDL_C_INLINE_WRAPPERS
  18210 /*** IUnknown methods ***/
  18211 #define IAccessibleObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18212 #define IAccessibleObject_AddRef(This) (This)->lpVtbl->AddRef(This)
  18213 #define IAccessibleObject_Release(This) (This)->lpVtbl->Release(This)
  18214 /*** IAccessibleObject methods ***/
  18215 #define IAccessibleObject_SetAccessibleName(This,pszName) (This)->lpVtbl->SetAccessibleName(This,pszName)
  18216 #else
  18217 /*** IUnknown methods ***/
  18218 static inline HRESULT IAccessibleObject_QueryInterface(IAccessibleObject* This,REFIID riid,void **ppvObject) {
  18219     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18220 }
  18221 static inline ULONG IAccessibleObject_AddRef(IAccessibleObject* This) {
  18222     return This->lpVtbl->AddRef(This);
  18223 }
  18224 static inline ULONG IAccessibleObject_Release(IAccessibleObject* This) {
  18225     return This->lpVtbl->Release(This);
  18226 }
  18227 /*** IAccessibleObject methods ***/
  18228 static inline HRESULT IAccessibleObject_SetAccessibleName(IAccessibleObject* This,LPCWSTR pszName) {
  18229     return This->lpVtbl->SetAccessibleName(This,pszName);
  18230 }
  18231 #endif
  18232 #endif
  18233 
  18234 #endif
  18235 
  18236 
  18237 #endif  /* __IAccessibleObject_INTERFACE_DEFINED__ */
  18238 
  18239 #endif
  18240 
  18241 /*****************************************************************************
  18242  * IResultsFolder interface
  18243  */
  18244 #ifndef __IResultsFolder_INTERFACE_DEFINED__
  18245 #define __IResultsFolder_INTERFACE_DEFINED__
  18246 
  18247 DEFINE_GUID(IID_IResultsFolder, 0x96e5ae6d, 0x6ae1, 0x4b1c, 0x90,0x0c, 0xc6,0x48,0x0e,0xaa,0x88,0x28);
  18248 #if defined(__cplusplus) && !defined(CINTERFACE)
  18249 MIDL_INTERFACE("96e5ae6d-6ae1-4b1c-900c-c6480eaa8828")
  18250 IResultsFolder : public IUnknown
  18251 {
  18252     virtual HRESULT STDMETHODCALLTYPE AddItem(
  18253         IShellItem *psi) = 0;
  18254 
  18255     virtual HRESULT STDMETHODCALLTYPE AddIDList(
  18256         PCIDLIST_ABSOLUTE pidl,
  18257         PITEMID_CHILD *ppidlAdded) = 0;
  18258 
  18259     virtual HRESULT STDMETHODCALLTYPE RemoveItem(
  18260         IShellItem *psi) = 0;
  18261 
  18262     virtual HRESULT STDMETHODCALLTYPE RemoveIDList(
  18263         PCIDLIST_ABSOLUTE pidl) = 0;
  18264 
  18265     virtual HRESULT STDMETHODCALLTYPE RemoveAll(
  18266         ) = 0;
  18267 
  18268 };
  18269 #ifdef __CRT_UUID_DECL
  18270 __CRT_UUID_DECL(IResultsFolder, 0x96e5ae6d, 0x6ae1, 0x4b1c, 0x90,0x0c, 0xc6,0x48,0x0e,0xaa,0x88,0x28)
  18271 #endif
  18272 #else
  18273 typedef struct IResultsFolderVtbl {
  18274     BEGIN_INTERFACE
  18275 
  18276     /*** IUnknown methods ***/
  18277     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18278         IResultsFolder *This,
  18279         REFIID riid,
  18280         void **ppvObject);
  18281 
  18282     ULONG (STDMETHODCALLTYPE *AddRef)(
  18283         IResultsFolder *This);
  18284 
  18285     ULONG (STDMETHODCALLTYPE *Release)(
  18286         IResultsFolder *This);
  18287 
  18288     /*** IResultsFolder methods ***/
  18289     HRESULT (STDMETHODCALLTYPE *AddItem)(
  18290         IResultsFolder *This,
  18291         IShellItem *psi);
  18292 
  18293     HRESULT (STDMETHODCALLTYPE *AddIDList)(
  18294         IResultsFolder *This,
  18295         PCIDLIST_ABSOLUTE pidl,
  18296         PITEMID_CHILD *ppidlAdded);
  18297 
  18298     HRESULT (STDMETHODCALLTYPE *RemoveItem)(
  18299         IResultsFolder *This,
  18300         IShellItem *psi);
  18301 
  18302     HRESULT (STDMETHODCALLTYPE *RemoveIDList)(
  18303         IResultsFolder *This,
  18304         PCIDLIST_ABSOLUTE pidl);
  18305 
  18306     HRESULT (STDMETHODCALLTYPE *RemoveAll)(
  18307         IResultsFolder *This);
  18308 
  18309     END_INTERFACE
  18310 } IResultsFolderVtbl;
  18311 
  18312 interface IResultsFolder {
  18313     CONST_VTBL IResultsFolderVtbl* lpVtbl;
  18314 };
  18315 
  18316 #ifdef COBJMACROS
  18317 #ifndef WIDL_C_INLINE_WRAPPERS
  18318 /*** IUnknown methods ***/
  18319 #define IResultsFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18320 #define IResultsFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
  18321 #define IResultsFolder_Release(This) (This)->lpVtbl->Release(This)
  18322 /*** IResultsFolder methods ***/
  18323 #define IResultsFolder_AddItem(This,psi) (This)->lpVtbl->AddItem(This,psi)
  18324 #define IResultsFolder_AddIDList(This,pidl,ppidlAdded) (This)->lpVtbl->AddIDList(This,pidl,ppidlAdded)
  18325 #define IResultsFolder_RemoveItem(This,psi) (This)->lpVtbl->RemoveItem(This,psi)
  18326 #define IResultsFolder_RemoveIDList(This,pidl) (This)->lpVtbl->RemoveIDList(This,pidl)
  18327 #define IResultsFolder_RemoveAll(This) (This)->lpVtbl->RemoveAll(This)
  18328 #else
  18329 /*** IUnknown methods ***/
  18330 static inline HRESULT IResultsFolder_QueryInterface(IResultsFolder* This,REFIID riid,void **ppvObject) {
  18331     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18332 }
  18333 static inline ULONG IResultsFolder_AddRef(IResultsFolder* This) {
  18334     return This->lpVtbl->AddRef(This);
  18335 }
  18336 static inline ULONG IResultsFolder_Release(IResultsFolder* This) {
  18337     return This->lpVtbl->Release(This);
  18338 }
  18339 /*** IResultsFolder methods ***/
  18340 static inline HRESULT IResultsFolder_AddItem(IResultsFolder* This,IShellItem *psi) {
  18341     return This->lpVtbl->AddItem(This,psi);
  18342 }
  18343 static inline HRESULT IResultsFolder_AddIDList(IResultsFolder* This,PCIDLIST_ABSOLUTE pidl,PITEMID_CHILD *ppidlAdded) {
  18344     return This->lpVtbl->AddIDList(This,pidl,ppidlAdded);
  18345 }
  18346 static inline HRESULT IResultsFolder_RemoveItem(IResultsFolder* This,IShellItem *psi) {
  18347     return This->lpVtbl->RemoveItem(This,psi);
  18348 }
  18349 static inline HRESULT IResultsFolder_RemoveIDList(IResultsFolder* This,PCIDLIST_ABSOLUTE pidl) {
  18350     return This->lpVtbl->RemoveIDList(This,pidl);
  18351 }
  18352 static inline HRESULT IResultsFolder_RemoveAll(IResultsFolder* This) {
  18353     return This->lpVtbl->RemoveAll(This);
  18354 }
  18355 #endif
  18356 #endif
  18357 
  18358 #endif
  18359 
  18360 HRESULT STDMETHODCALLTYPE IResultsFolder_RemoteAddIDList_Proxy(
  18361     IResultsFolder* This,
  18362     PCIDLIST_ABSOLUTE pidl,
  18363     PITEMID_CHILD *ppidlAdded);
  18364 void __RPC_STUB IResultsFolder_RemoteAddIDList_Stub(
  18365     IRpcStubBuffer* This,
  18366     IRpcChannelBuffer* pRpcChannelBuffer,
  18367     PRPC_MESSAGE pRpcMessage,
  18368     DWORD* pdwStubPhase);
  18369 HRESULT CALLBACK IResultsFolder_AddIDList_Proxy(
  18370     IResultsFolder* This,
  18371     PCIDLIST_ABSOLUTE pidl,
  18372     PITEMID_CHILD *ppidlAdded);
  18373 HRESULT __RPC_STUB IResultsFolder_AddIDList_Stub(
  18374     IResultsFolder* This,
  18375     PCIDLIST_ABSOLUTE pidl,
  18376     PITEMID_CHILD *ppidlAdded);
  18377 
  18378 #endif  /* __IResultsFolder_INTERFACE_DEFINED__ */
  18379 
  18380 #if _WIN32_IE >= _WIN32_IE_IE70
  18381 /*****************************************************************************
  18382  * IEnumObjects interface
  18383  */
  18384 #ifndef __IEnumObjects_INTERFACE_DEFINED__
  18385 #define __IEnumObjects_INTERFACE_DEFINED__
  18386 
  18387 DEFINE_GUID(IID_IEnumObjects, 0x2c1c7e2e, 0x2d0e, 0x4059, 0x83,0x1e, 0x1e,0x6f,0x82,0x33,0x5c,0x2e);
  18388 #if defined(__cplusplus) && !defined(CINTERFACE)
  18389 MIDL_INTERFACE("2c1c7e2e-2d0e-4059-831e-1e6f82335c2e")
  18390 IEnumObjects : public IUnknown
  18391 {
  18392     virtual HRESULT STDMETHODCALLTYPE Next(
  18393         ULONG celt,
  18394         REFIID riid,
  18395         void **rgelt,
  18396         ULONG *pceltFetched) = 0;
  18397 
  18398     virtual HRESULT STDMETHODCALLTYPE Skip(
  18399         ULONG celt) = 0;
  18400 
  18401     virtual HRESULT STDMETHODCALLTYPE Reset(
  18402         ) = 0;
  18403 
  18404     virtual HRESULT STDMETHODCALLTYPE Clone(
  18405         IEnumObjects **ppenum) = 0;
  18406 
  18407 };
  18408 #ifdef __CRT_UUID_DECL
  18409 __CRT_UUID_DECL(IEnumObjects, 0x2c1c7e2e, 0x2d0e, 0x4059, 0x83,0x1e, 0x1e,0x6f,0x82,0x33,0x5c,0x2e)
  18410 #endif
  18411 #else
  18412 typedef struct IEnumObjectsVtbl {
  18413     BEGIN_INTERFACE
  18414 
  18415     /*** IUnknown methods ***/
  18416     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18417         IEnumObjects *This,
  18418         REFIID riid,
  18419         void **ppvObject);
  18420 
  18421     ULONG (STDMETHODCALLTYPE *AddRef)(
  18422         IEnumObjects *This);
  18423 
  18424     ULONG (STDMETHODCALLTYPE *Release)(
  18425         IEnumObjects *This);
  18426 
  18427     /*** IEnumObjects methods ***/
  18428     HRESULT (STDMETHODCALLTYPE *Next)(
  18429         IEnumObjects *This,
  18430         ULONG celt,
  18431         REFIID riid,
  18432         void **rgelt,
  18433         ULONG *pceltFetched);
  18434 
  18435     HRESULT (STDMETHODCALLTYPE *Skip)(
  18436         IEnumObjects *This,
  18437         ULONG celt);
  18438 
  18439     HRESULT (STDMETHODCALLTYPE *Reset)(
  18440         IEnumObjects *This);
  18441 
  18442     HRESULT (STDMETHODCALLTYPE *Clone)(
  18443         IEnumObjects *This,
  18444         IEnumObjects **ppenum);
  18445 
  18446     END_INTERFACE
  18447 } IEnumObjectsVtbl;
  18448 
  18449 interface IEnumObjects {
  18450     CONST_VTBL IEnumObjectsVtbl* lpVtbl;
  18451 };
  18452 
  18453 #ifdef COBJMACROS
  18454 #ifndef WIDL_C_INLINE_WRAPPERS
  18455 /*** IUnknown methods ***/
  18456 #define IEnumObjects_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18457 #define IEnumObjects_AddRef(This) (This)->lpVtbl->AddRef(This)
  18458 #define IEnumObjects_Release(This) (This)->lpVtbl->Release(This)
  18459 /*** IEnumObjects methods ***/
  18460 #define IEnumObjects_Next(This,celt,riid,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,riid,rgelt,pceltFetched)
  18461 #define IEnumObjects_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
  18462 #define IEnumObjects_Reset(This) (This)->lpVtbl->Reset(This)
  18463 #define IEnumObjects_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
  18464 #else
  18465 /*** IUnknown methods ***/
  18466 static inline HRESULT IEnumObjects_QueryInterface(IEnumObjects* This,REFIID riid,void **ppvObject) {
  18467     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18468 }
  18469 static inline ULONG IEnumObjects_AddRef(IEnumObjects* This) {
  18470     return This->lpVtbl->AddRef(This);
  18471 }
  18472 static inline ULONG IEnumObjects_Release(IEnumObjects* This) {
  18473     return This->lpVtbl->Release(This);
  18474 }
  18475 /*** IEnumObjects methods ***/
  18476 static inline HRESULT IEnumObjects_Next(IEnumObjects* This,ULONG celt,REFIID riid,void **rgelt,ULONG *pceltFetched) {
  18477     return This->lpVtbl->Next(This,celt,riid,rgelt,pceltFetched);
  18478 }
  18479 static inline HRESULT IEnumObjects_Skip(IEnumObjects* This,ULONG celt) {
  18480     return This->lpVtbl->Skip(This,celt);
  18481 }
  18482 static inline HRESULT IEnumObjects_Reset(IEnumObjects* This) {
  18483     return This->lpVtbl->Reset(This);
  18484 }
  18485 static inline HRESULT IEnumObjects_Clone(IEnumObjects* This,IEnumObjects **ppenum) {
  18486     return This->lpVtbl->Clone(This,ppenum);
  18487 }
  18488 #endif
  18489 #endif
  18490 
  18491 #endif
  18492 
  18493 HRESULT STDMETHODCALLTYPE IEnumObjects_RemoteNext_Proxy(
  18494     IEnumObjects* This,
  18495     ULONG celt,
  18496     REFIID riid,
  18497     void **rgelt,
  18498     ULONG *pceltFetched);
  18499 void __RPC_STUB IEnumObjects_RemoteNext_Stub(
  18500     IRpcStubBuffer* This,
  18501     IRpcChannelBuffer* pRpcChannelBuffer,
  18502     PRPC_MESSAGE pRpcMessage,
  18503     DWORD* pdwStubPhase);
  18504 HRESULT CALLBACK IEnumObjects_Next_Proxy(
  18505     IEnumObjects* This,
  18506     ULONG celt,
  18507     REFIID riid,
  18508     void **rgelt,
  18509     ULONG *pceltFetched);
  18510 HRESULT __RPC_STUB IEnumObjects_Next_Stub(
  18511     IEnumObjects* This,
  18512     ULONG celt,
  18513     REFIID riid,
  18514     void **rgelt,
  18515     ULONG *pceltFetched);
  18516 
  18517 #endif  /* __IEnumObjects_INTERFACE_DEFINED__ */
  18518 
  18519 
  18520 enum _OPPROGDLGF {
  18521     OPPROGDLG_DEFAULT = 0x0,
  18522     OPPROGDLG_ENABLEPAUSE = 0x80,
  18523     OPPROGDLG_ALLOWUNDO = 0x100,
  18524     OPPROGDLG_DONTDISPLAYSOURCEPATH = 0x200,
  18525     OPPROGDLG_DONTDISPLAYDESTPATH = 0x400,
  18526     OPPROGDLG_NOMULTIDAYESTIMATES = 0x800,
  18527     OPPROGDLG_DONTDISPLAYLOCATIONS = 0x1000
  18528 };
  18529 
  18530 typedef DWORD OPPROGDLGF;
  18531 
  18532 /*****************************************************************************
  18533  * IOperationsProgressDialog interface
  18534  */
  18535 #ifndef __IOperationsProgressDialog_INTERFACE_DEFINED__
  18536 #define __IOperationsProgressDialog_INTERFACE_DEFINED__
  18537 
  18538 enum _PDMODE {
  18539     PDM_DEFAULT = 0x0,
  18540     PDM_RUN = 0x1,
  18541     PDM_PREFLIGHT = 0x2,
  18542     PDM_UNDOING = 0x4,
  18543     PDM_ERRORSBLOCKING = 0x8,
  18544     PDM_INDETERMINATE = 0x10
  18545 };
  18546 
  18547 typedef DWORD PDMODE;
  18548 
  18549 typedef enum PDOPSTATUS {
  18550     PDOPS_RUNNING = 1,
  18551     PDOPS_PAUSED = 2,
  18552     PDOPS_CANCELLED = 3,
  18553     PDOPS_STOPPED = 4,
  18554     PDOPS_ERRORS = 5
  18555 } PDOPSTATUS;
  18556 
  18557 DEFINE_GUID(IID_IOperationsProgressDialog, 0x0c9fb851, 0xe5c9, 0x43eb, 0xa3,0x70, 0xf0,0x67,0x7b,0x13,0x87,0x4c);
  18558 #if defined(__cplusplus) && !defined(CINTERFACE)
  18559 MIDL_INTERFACE("0c9fb851-e5c9-43eb-a370-f0677b13874c")
  18560 IOperationsProgressDialog : public IUnknown
  18561 {
  18562     virtual HRESULT STDMETHODCALLTYPE StartProgressDialog(
  18563         HWND hwndOwner,
  18564         OPPROGDLGF flags) = 0;
  18565 
  18566     virtual HRESULT STDMETHODCALLTYPE StopProgressDialog(
  18567         ) = 0;
  18568 
  18569     virtual HRESULT STDMETHODCALLTYPE SetOperation(
  18570         SPACTION action) = 0;
  18571 
  18572     virtual HRESULT STDMETHODCALLTYPE SetMode(
  18573         PDMODE mode) = 0;
  18574 
  18575     virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
  18576         ULONGLONG ullPointsCurrent,
  18577         ULONGLONG ullPointsTotal,
  18578         ULONGLONG ullSizeCurrent,
  18579         ULONGLONG ullSizeTotal,
  18580         ULONGLONG ullItemsCurrent,
  18581         ULONGLONG ullItemsTotal) = 0;
  18582 
  18583     virtual HRESULT STDMETHODCALLTYPE UpdateLocations(
  18584         IShellItem *psiSource,
  18585         IShellItem *psiTarget,
  18586         IShellItem *psiItem) = 0;
  18587 
  18588     virtual HRESULT STDMETHODCALLTYPE ResetTimer(
  18589         ) = 0;
  18590 
  18591     virtual HRESULT STDMETHODCALLTYPE PauseTimer(
  18592         ) = 0;
  18593 
  18594     virtual HRESULT STDMETHODCALLTYPE ResumeTimer(
  18595         ) = 0;
  18596 
  18597     virtual HRESULT STDMETHODCALLTYPE GetMilliseconds(
  18598         ULONGLONG *pullElapsed,
  18599         ULONGLONG *pullRemaining) = 0;
  18600 
  18601     virtual HRESULT STDMETHODCALLTYPE GetOperationStatus(
  18602         PDOPSTATUS *popstatus) = 0;
  18603 
  18604 };
  18605 #ifdef __CRT_UUID_DECL
  18606 __CRT_UUID_DECL(IOperationsProgressDialog, 0x0c9fb851, 0xe5c9, 0x43eb, 0xa3,0x70, 0xf0,0x67,0x7b,0x13,0x87,0x4c)
  18607 #endif
  18608 #else
  18609 typedef struct IOperationsProgressDialogVtbl {
  18610     BEGIN_INTERFACE
  18611 
  18612     /*** IUnknown methods ***/
  18613     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18614         IOperationsProgressDialog *This,
  18615         REFIID riid,
  18616         void **ppvObject);
  18617 
  18618     ULONG (STDMETHODCALLTYPE *AddRef)(
  18619         IOperationsProgressDialog *This);
  18620 
  18621     ULONG (STDMETHODCALLTYPE *Release)(
  18622         IOperationsProgressDialog *This);
  18623 
  18624     /*** IOperationsProgressDialog methods ***/
  18625     HRESULT (STDMETHODCALLTYPE *StartProgressDialog)(
  18626         IOperationsProgressDialog *This,
  18627         HWND hwndOwner,
  18628         OPPROGDLGF flags);
  18629 
  18630     HRESULT (STDMETHODCALLTYPE *StopProgressDialog)(
  18631         IOperationsProgressDialog *This);
  18632 
  18633     HRESULT (STDMETHODCALLTYPE *SetOperation)(
  18634         IOperationsProgressDialog *This,
  18635         SPACTION action);
  18636 
  18637     HRESULT (STDMETHODCALLTYPE *SetMode)(
  18638         IOperationsProgressDialog *This,
  18639         PDMODE mode);
  18640 
  18641     HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
  18642         IOperationsProgressDialog *This,
  18643         ULONGLONG ullPointsCurrent,
  18644         ULONGLONG ullPointsTotal,
  18645         ULONGLONG ullSizeCurrent,
  18646         ULONGLONG ullSizeTotal,
  18647         ULONGLONG ullItemsCurrent,
  18648         ULONGLONG ullItemsTotal);
  18649 
  18650     HRESULT (STDMETHODCALLTYPE *UpdateLocations)(
  18651         IOperationsProgressDialog *This,
  18652         IShellItem *psiSource,
  18653         IShellItem *psiTarget,
  18654         IShellItem *psiItem);
  18655 
  18656     HRESULT (STDMETHODCALLTYPE *ResetTimer)(
  18657         IOperationsProgressDialog *This);
  18658 
  18659     HRESULT (STDMETHODCALLTYPE *PauseTimer)(
  18660         IOperationsProgressDialog *This);
  18661 
  18662     HRESULT (STDMETHODCALLTYPE *ResumeTimer)(
  18663         IOperationsProgressDialog *This);
  18664 
  18665     HRESULT (STDMETHODCALLTYPE *GetMilliseconds)(
  18666         IOperationsProgressDialog *This,
  18667         ULONGLONG *pullElapsed,
  18668         ULONGLONG *pullRemaining);
  18669 
  18670     HRESULT (STDMETHODCALLTYPE *GetOperationStatus)(
  18671         IOperationsProgressDialog *This,
  18672         PDOPSTATUS *popstatus);
  18673 
  18674     END_INTERFACE
  18675 } IOperationsProgressDialogVtbl;
  18676 
  18677 interface IOperationsProgressDialog {
  18678     CONST_VTBL IOperationsProgressDialogVtbl* lpVtbl;
  18679 };
  18680 
  18681 #ifdef COBJMACROS
  18682 #ifndef WIDL_C_INLINE_WRAPPERS
  18683 /*** IUnknown methods ***/
  18684 #define IOperationsProgressDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18685 #define IOperationsProgressDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
  18686 #define IOperationsProgressDialog_Release(This) (This)->lpVtbl->Release(This)
  18687 /*** IOperationsProgressDialog methods ***/
  18688 #define IOperationsProgressDialog_StartProgressDialog(This,hwndOwner,flags) (This)->lpVtbl->StartProgressDialog(This,hwndOwner,flags)
  18689 #define IOperationsProgressDialog_StopProgressDialog(This) (This)->lpVtbl->StopProgressDialog(This)
  18690 #define IOperationsProgressDialog_SetOperation(This,action) (This)->lpVtbl->SetOperation(This,action)
  18691 #define IOperationsProgressDialog_SetMode(This,mode) (This)->lpVtbl->SetMode(This,mode)
  18692 #define IOperationsProgressDialog_UpdateProgress(This,ullPointsCurrent,ullPointsTotal,ullSizeCurrent,ullSizeTotal,ullItemsCurrent,ullItemsTotal) (This)->lpVtbl->UpdateProgress(This,ullPointsCurrent,ullPointsTotal,ullSizeCurrent,ullSizeTotal,ullItemsCurrent,ullItemsTotal)
  18693 #define IOperationsProgressDialog_UpdateLocations(This,psiSource,psiTarget,psiItem) (This)->lpVtbl->UpdateLocations(This,psiSource,psiTarget,psiItem)
  18694 #define IOperationsProgressDialog_ResetTimer(This) (This)->lpVtbl->ResetTimer(This)
  18695 #define IOperationsProgressDialog_PauseTimer(This) (This)->lpVtbl->PauseTimer(This)
  18696 #define IOperationsProgressDialog_ResumeTimer(This) (This)->lpVtbl->ResumeTimer(This)
  18697 #define IOperationsProgressDialog_GetMilliseconds(This,pullElapsed,pullRemaining) (This)->lpVtbl->GetMilliseconds(This,pullElapsed,pullRemaining)
  18698 #define IOperationsProgressDialog_GetOperationStatus(This,popstatus) (This)->lpVtbl->GetOperationStatus(This,popstatus)
  18699 #else
  18700 /*** IUnknown methods ***/
  18701 static inline HRESULT IOperationsProgressDialog_QueryInterface(IOperationsProgressDialog* This,REFIID riid,void **ppvObject) {
  18702     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18703 }
  18704 static inline ULONG IOperationsProgressDialog_AddRef(IOperationsProgressDialog* This) {
  18705     return This->lpVtbl->AddRef(This);
  18706 }
  18707 static inline ULONG IOperationsProgressDialog_Release(IOperationsProgressDialog* This) {
  18708     return This->lpVtbl->Release(This);
  18709 }
  18710 /*** IOperationsProgressDialog methods ***/
  18711 static inline HRESULT IOperationsProgressDialog_StartProgressDialog(IOperationsProgressDialog* This,HWND hwndOwner,OPPROGDLGF flags) {
  18712     return This->lpVtbl->StartProgressDialog(This,hwndOwner,flags);
  18713 }
  18714 static inline HRESULT IOperationsProgressDialog_StopProgressDialog(IOperationsProgressDialog* This) {
  18715     return This->lpVtbl->StopProgressDialog(This);
  18716 }
  18717 static inline HRESULT IOperationsProgressDialog_SetOperation(IOperationsProgressDialog* This,SPACTION action) {
  18718     return This->lpVtbl->SetOperation(This,action);
  18719 }
  18720 static inline HRESULT IOperationsProgressDialog_SetMode(IOperationsProgressDialog* This,PDMODE mode) {
  18721     return This->lpVtbl->SetMode(This,mode);
  18722 }
  18723 static inline HRESULT IOperationsProgressDialog_UpdateProgress(IOperationsProgressDialog* This,ULONGLONG ullPointsCurrent,ULONGLONG ullPointsTotal,ULONGLONG ullSizeCurrent,ULONGLONG ullSizeTotal,ULONGLONG ullItemsCurrent,ULONGLONG ullItemsTotal) {
  18724     return This->lpVtbl->UpdateProgress(This,ullPointsCurrent,ullPointsTotal,ullSizeCurrent,ullSizeTotal,ullItemsCurrent,ullItemsTotal);
  18725 }
  18726 static inline HRESULT IOperationsProgressDialog_UpdateLocations(IOperationsProgressDialog* This,IShellItem *psiSource,IShellItem *psiTarget,IShellItem *psiItem) {
  18727     return This->lpVtbl->UpdateLocations(This,psiSource,psiTarget,psiItem);
  18728 }
  18729 static inline HRESULT IOperationsProgressDialog_ResetTimer(IOperationsProgressDialog* This) {
  18730     return This->lpVtbl->ResetTimer(This);
  18731 }
  18732 static inline HRESULT IOperationsProgressDialog_PauseTimer(IOperationsProgressDialog* This) {
  18733     return This->lpVtbl->PauseTimer(This);
  18734 }
  18735 static inline HRESULT IOperationsProgressDialog_ResumeTimer(IOperationsProgressDialog* This) {
  18736     return This->lpVtbl->ResumeTimer(This);
  18737 }
  18738 static inline HRESULT IOperationsProgressDialog_GetMilliseconds(IOperationsProgressDialog* This,ULONGLONG *pullElapsed,ULONGLONG *pullRemaining) {
  18739     return This->lpVtbl->GetMilliseconds(This,pullElapsed,pullRemaining);
  18740 }
  18741 static inline HRESULT IOperationsProgressDialog_GetOperationStatus(IOperationsProgressDialog* This,PDOPSTATUS *popstatus) {
  18742     return This->lpVtbl->GetOperationStatus(This,popstatus);
  18743 }
  18744 #endif
  18745 #endif
  18746 
  18747 #endif
  18748 
  18749 
  18750 #endif  /* __IOperationsProgressDialog_INTERFACE_DEFINED__ */
  18751 
  18752 
  18753 /*****************************************************************************
  18754  * IIOCancelInformation interface
  18755  */
  18756 #ifndef __IIOCancelInformation_INTERFACE_DEFINED__
  18757 #define __IIOCancelInformation_INTERFACE_DEFINED__
  18758 
  18759 DEFINE_GUID(IID_IIOCancelInformation, 0xf5b0bf81, 0x8cb5, 0x4b1b, 0x94,0x49, 0x1a,0x15,0x9e,0x0c,0x73,0x3c);
  18760 #if defined(__cplusplus) && !defined(CINTERFACE)
  18761 MIDL_INTERFACE("f5b0bf81-8cb5-4b1b-9449-1a159e0c733c")
  18762 IIOCancelInformation : public IUnknown
  18763 {
  18764     virtual HRESULT STDMETHODCALLTYPE SetCancelInformation(
  18765         DWORD dwThreadID,
  18766         UINT uMsgCancel) = 0;
  18767 
  18768     virtual HRESULT STDMETHODCALLTYPE GetCancelInformation(
  18769         DWORD *pdwThreadID,
  18770         UINT *puMsgCancel) = 0;
  18771 
  18772 };
  18773 #ifdef __CRT_UUID_DECL
  18774 __CRT_UUID_DECL(IIOCancelInformation, 0xf5b0bf81, 0x8cb5, 0x4b1b, 0x94,0x49, 0x1a,0x15,0x9e,0x0c,0x73,0x3c)
  18775 #endif
  18776 #else
  18777 typedef struct IIOCancelInformationVtbl {
  18778     BEGIN_INTERFACE
  18779 
  18780     /*** IUnknown methods ***/
  18781     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18782         IIOCancelInformation *This,
  18783         REFIID riid,
  18784         void **ppvObject);
  18785 
  18786     ULONG (STDMETHODCALLTYPE *AddRef)(
  18787         IIOCancelInformation *This);
  18788 
  18789     ULONG (STDMETHODCALLTYPE *Release)(
  18790         IIOCancelInformation *This);
  18791 
  18792     /*** IIOCancelInformation methods ***/
  18793     HRESULT (STDMETHODCALLTYPE *SetCancelInformation)(
  18794         IIOCancelInformation *This,
  18795         DWORD dwThreadID,
  18796         UINT uMsgCancel);
  18797 
  18798     HRESULT (STDMETHODCALLTYPE *GetCancelInformation)(
  18799         IIOCancelInformation *This,
  18800         DWORD *pdwThreadID,
  18801         UINT *puMsgCancel);
  18802 
  18803     END_INTERFACE
  18804 } IIOCancelInformationVtbl;
  18805 
  18806 interface IIOCancelInformation {
  18807     CONST_VTBL IIOCancelInformationVtbl* lpVtbl;
  18808 };
  18809 
  18810 #ifdef COBJMACROS
  18811 #ifndef WIDL_C_INLINE_WRAPPERS
  18812 /*** IUnknown methods ***/
  18813 #define IIOCancelInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  18814 #define IIOCancelInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
  18815 #define IIOCancelInformation_Release(This) (This)->lpVtbl->Release(This)
  18816 /*** IIOCancelInformation methods ***/
  18817 #define IIOCancelInformation_SetCancelInformation(This,dwThreadID,uMsgCancel) (This)->lpVtbl->SetCancelInformation(This,dwThreadID,uMsgCancel)
  18818 #define IIOCancelInformation_GetCancelInformation(This,pdwThreadID,puMsgCancel) (This)->lpVtbl->GetCancelInformation(This,pdwThreadID,puMsgCancel)
  18819 #else
  18820 /*** IUnknown methods ***/
  18821 static inline HRESULT IIOCancelInformation_QueryInterface(IIOCancelInformation* This,REFIID riid,void **ppvObject) {
  18822     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  18823 }
  18824 static inline ULONG IIOCancelInformation_AddRef(IIOCancelInformation* This) {
  18825     return This->lpVtbl->AddRef(This);
  18826 }
  18827 static inline ULONG IIOCancelInformation_Release(IIOCancelInformation* This) {
  18828     return This->lpVtbl->Release(This);
  18829 }
  18830 /*** IIOCancelInformation methods ***/
  18831 static inline HRESULT IIOCancelInformation_SetCancelInformation(IIOCancelInformation* This,DWORD dwThreadID,UINT uMsgCancel) {
  18832     return This->lpVtbl->SetCancelInformation(This,dwThreadID,uMsgCancel);
  18833 }
  18834 static inline HRESULT IIOCancelInformation_GetCancelInformation(IIOCancelInformation* This,DWORD *pdwThreadID,UINT *puMsgCancel) {
  18835     return This->lpVtbl->GetCancelInformation(This,pdwThreadID,puMsgCancel);
  18836 }
  18837 #endif
  18838 #endif
  18839 
  18840 #endif
  18841 
  18842 
  18843 #endif  /* __IIOCancelInformation_INTERFACE_DEFINED__ */
  18844 
  18845 
  18846 #define FOFX_NOSKIPJUNCTIONS 0x00010000
  18847 #define FOFX_PREFERHARDLINK 0x00020000
  18848 #define FOFX_SHOWELEVATIONPROMPT 0x00040000
  18849 #define FOFX_RECYCLEONDELETE 0x00080000
  18850 #define FOFX_EARLYFAILURE 0x00100000
  18851 #define FOFX_PRESERVEFILEEXTENSIONS 0x00200000
  18852 #define FOFX_KEEPNEWERFILE 0x00400000
  18853 #define FOFX_NOCOPYHOOKS 0x00800000
  18854 #define FOFX_NOMINIMIZEBOX 0x01000000
  18855 #define FOFX_MOVEACLSACROSSVOLUMES 0x02000000
  18856 #define FOFX_DONTDISPLAYSOURCEPATH 0x04000000
  18857 #define FOFX_DONTDISPLAYDESTPATH 0x08000000
  18858 #define FOFX_REQUIREELEVATION 0x10000000
  18859 #define FOFX_ADDUNDORECORD 0x20000000
  18860 #define FOFX_COPYASDOWNLOAD 0x40000000
  18861 #define FOFX_DONTDISPLAYLOCATIONS 0x80000000
  18862 
  18863 /*****************************************************************************
  18864  * IFileOperation interface
  18865  */
  18866 #ifndef __IFileOperation_INTERFACE_DEFINED__
  18867 #define __IFileOperation_INTERFACE_DEFINED__
  18868 
  18869 DEFINE_GUID(IID_IFileOperation, 0x947aab5f, 0x0a5c, 0x4c13, 0xb4,0xd6, 0x4b,0xf7,0x83,0x6f,0xc9,0xf8);
  18870 #if defined(__cplusplus) && !defined(CINTERFACE)
  18871 MIDL_INTERFACE("947aab5f-0a5c-4c13-b4d6-4bf7836fc9f8")
  18872 IFileOperation : public IUnknown
  18873 {
  18874     virtual HRESULT STDMETHODCALLTYPE Advise(
  18875         IFileOperationProgressSink *pfops,
  18876         DWORD *pdwCookie) = 0;
  18877 
  18878     virtual HRESULT STDMETHODCALLTYPE Unadvise(
  18879         DWORD dwCookie) = 0;
  18880 
  18881     virtual HRESULT STDMETHODCALLTYPE SetOperationFlags(
  18882         DWORD dwOperationFlags) = 0;
  18883 
  18884     virtual HRESULT STDMETHODCALLTYPE SetProgressMessage(
  18885         LPCWSTR pszMessage) = 0;
  18886 
  18887     virtual HRESULT STDMETHODCALLTYPE SetProgressDialog(
  18888         IOperationsProgressDialog *popd) = 0;
  18889 
  18890     virtual HRESULT STDMETHODCALLTYPE SetProperties(
  18891         IPropertyChangeArray *pproparray) = 0;
  18892 
  18893     virtual HRESULT STDMETHODCALLTYPE SetOwnerWindow(
  18894         HWND hwndOwner) = 0;
  18895 
  18896     virtual HRESULT STDMETHODCALLTYPE ApplyPropertiesToItem(
  18897         IShellItem *psiItem) = 0;
  18898 
  18899     virtual HRESULT STDMETHODCALLTYPE ApplyPropertiesToItems(
  18900         IUnknown *punkItems) = 0;
  18901 
  18902     virtual HRESULT STDMETHODCALLTYPE RenameItem(
  18903         IShellItem *psiItem,
  18904         LPCWSTR pszNewName,
  18905         IFileOperationProgressSink *pfopsItem) = 0;
  18906 
  18907     virtual HRESULT STDMETHODCALLTYPE RenameItems(
  18908         IUnknown *pUnkItems,
  18909         LPCWSTR pszNewName) = 0;
  18910 
  18911     virtual HRESULT STDMETHODCALLTYPE MoveItem(
  18912         IShellItem *psiItem,
  18913         IShellItem *psiDestinationFolder,
  18914         LPCWSTR pszNewName,
  18915         IFileOperationProgressSink *pfopsItem) = 0;
  18916 
  18917     virtual HRESULT STDMETHODCALLTYPE MoveItems(
  18918         IUnknown *punkItems,
  18919         IShellItem *psiDestinationFolder) = 0;
  18920 
  18921     virtual HRESULT STDMETHODCALLTYPE CopyItem(
  18922         IShellItem *psiItem,
  18923         IShellItem *psiDestinationFolder,
  18924         LPCWSTR pszCopyName,
  18925         IFileOperationProgressSink *pfopsItem) = 0;
  18926 
  18927     virtual HRESULT STDMETHODCALLTYPE CopyItems(
  18928         IUnknown *punkItems,
  18929         IShellItem *psiDestinationFolder) = 0;
  18930 
  18931     virtual HRESULT STDMETHODCALLTYPE DeleteItem(
  18932         IShellItem *psiItem,
  18933         IFileOperationProgressSink *pfopsItem) = 0;
  18934 
  18935     virtual HRESULT STDMETHODCALLTYPE DeleteItems(
  18936         IUnknown *punkItems) = 0;
  18937 
  18938     virtual HRESULT STDMETHODCALLTYPE NewItem(
  18939         IShellItem *psiDestinationFolder,
  18940         DWORD dwFileAttributes,
  18941         LPCWSTR pszName,
  18942         LPCWSTR pszTemplateName,
  18943         IFileOperationProgressSink *pfopsItem) = 0;
  18944 
  18945     virtual HRESULT STDMETHODCALLTYPE PerformOperations(
  18946         ) = 0;
  18947 
  18948     virtual HRESULT STDMETHODCALLTYPE GetAnyOperationsAborted(
  18949         WINBOOL *pfAnyOperationsAborted) = 0;
  18950 
  18951 };
  18952 #ifdef __CRT_UUID_DECL
  18953 __CRT_UUID_DECL(IFileOperation, 0x947aab5f, 0x0a5c, 0x4c13, 0xb4,0xd6, 0x4b,0xf7,0x83,0x6f,0xc9,0xf8)
  18954 #endif
  18955 #else
  18956 typedef struct IFileOperationVtbl {
  18957     BEGIN_INTERFACE
  18958 
  18959     /*** IUnknown methods ***/
  18960     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  18961         IFileOperation *This,
  18962         REFIID riid,
  18963         void **ppvObject);
  18964 
  18965     ULONG (STDMETHODCALLTYPE *AddRef)(
  18966         IFileOperation *This);
  18967 
  18968     ULONG (STDMETHODCALLTYPE *Release)(
  18969         IFileOperation *This);
  18970 
  18971     /*** IFileOperation methods ***/
  18972     HRESULT (STDMETHODCALLTYPE *Advise)(
  18973         IFileOperation *This,
  18974         IFileOperationProgressSink *pfops,
  18975         DWORD *pdwCookie);
  18976 
  18977     HRESULT (STDMETHODCALLTYPE *Unadvise)(
  18978         IFileOperation *This,
  18979         DWORD dwCookie);
  18980 
  18981     HRESULT (STDMETHODCALLTYPE *SetOperationFlags)(
  18982         IFileOperation *This,
  18983         DWORD dwOperationFlags);
  18984 
  18985     HRESULT (STDMETHODCALLTYPE *SetProgressMessage)(
  18986         IFileOperation *This,
  18987         LPCWSTR pszMessage);
  18988 
  18989     HRESULT (STDMETHODCALLTYPE *SetProgressDialog)(
  18990         IFileOperation *This,
  18991         IOperationsProgressDialog *popd);
  18992 
  18993     HRESULT (STDMETHODCALLTYPE *SetProperties)(
  18994         IFileOperation *This,
  18995         IPropertyChangeArray *pproparray);
  18996 
  18997     HRESULT (STDMETHODCALLTYPE *SetOwnerWindow)(
  18998         IFileOperation *This,
  18999         HWND hwndOwner);
  19000 
  19001     HRESULT (STDMETHODCALLTYPE *ApplyPropertiesToItem)(
  19002         IFileOperation *This,
  19003         IShellItem *psiItem);
  19004 
  19005     HRESULT (STDMETHODCALLTYPE *ApplyPropertiesToItems)(
  19006         IFileOperation *This,
  19007         IUnknown *punkItems);
  19008 
  19009     HRESULT (STDMETHODCALLTYPE *RenameItem)(
  19010         IFileOperation *This,
  19011         IShellItem *psiItem,
  19012         LPCWSTR pszNewName,
  19013         IFileOperationProgressSink *pfopsItem);
  19014 
  19015     HRESULT (STDMETHODCALLTYPE *RenameItems)(
  19016         IFileOperation *This,
  19017         IUnknown *pUnkItems,
  19018         LPCWSTR pszNewName);
  19019 
  19020     HRESULT (STDMETHODCALLTYPE *MoveItem)(
  19021         IFileOperation *This,
  19022         IShellItem *psiItem,
  19023         IShellItem *psiDestinationFolder,
  19024         LPCWSTR pszNewName,
  19025         IFileOperationProgressSink *pfopsItem);
  19026 
  19027     HRESULT (STDMETHODCALLTYPE *MoveItems)(
  19028         IFileOperation *This,
  19029         IUnknown *punkItems,
  19030         IShellItem *psiDestinationFolder);
  19031 
  19032     HRESULT (STDMETHODCALLTYPE *CopyItem)(
  19033         IFileOperation *This,
  19034         IShellItem *psiItem,
  19035         IShellItem *psiDestinationFolder,
  19036         LPCWSTR pszCopyName,
  19037         IFileOperationProgressSink *pfopsItem);
  19038 
  19039     HRESULT (STDMETHODCALLTYPE *CopyItems)(
  19040         IFileOperation *This,
  19041         IUnknown *punkItems,
  19042         IShellItem *psiDestinationFolder);
  19043 
  19044     HRESULT (STDMETHODCALLTYPE *DeleteItem)(
  19045         IFileOperation *This,
  19046         IShellItem *psiItem,
  19047         IFileOperationProgressSink *pfopsItem);
  19048 
  19049     HRESULT (STDMETHODCALLTYPE *DeleteItems)(
  19050         IFileOperation *This,
  19051         IUnknown *punkItems);
  19052 
  19053     HRESULT (STDMETHODCALLTYPE *NewItem)(
  19054         IFileOperation *This,
  19055         IShellItem *psiDestinationFolder,
  19056         DWORD dwFileAttributes,
  19057         LPCWSTR pszName,
  19058         LPCWSTR pszTemplateName,
  19059         IFileOperationProgressSink *pfopsItem);
  19060 
  19061     HRESULT (STDMETHODCALLTYPE *PerformOperations)(
  19062         IFileOperation *This);
  19063 
  19064     HRESULT (STDMETHODCALLTYPE *GetAnyOperationsAborted)(
  19065         IFileOperation *This,
  19066         WINBOOL *pfAnyOperationsAborted);
  19067 
  19068     END_INTERFACE
  19069 } IFileOperationVtbl;
  19070 
  19071 interface IFileOperation {
  19072     CONST_VTBL IFileOperationVtbl* lpVtbl;
  19073 };
  19074 
  19075 #ifdef COBJMACROS
  19076 #ifndef WIDL_C_INLINE_WRAPPERS
  19077 /*** IUnknown methods ***/
  19078 #define IFileOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19079 #define IFileOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
  19080 #define IFileOperation_Release(This) (This)->lpVtbl->Release(This)
  19081 /*** IFileOperation methods ***/
  19082 #define IFileOperation_Advise(This,pfops,pdwCookie) (This)->lpVtbl->Advise(This,pfops,pdwCookie)
  19083 #define IFileOperation_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
  19084 #define IFileOperation_SetOperationFlags(This,dwOperationFlags) (This)->lpVtbl->SetOperationFlags(This,dwOperationFlags)
  19085 #define IFileOperation_SetProgressMessage(This,pszMessage) (This)->lpVtbl->SetProgressMessage(This,pszMessage)
  19086 #define IFileOperation_SetProgressDialog(This,popd) (This)->lpVtbl->SetProgressDialog(This,popd)
  19087 #define IFileOperation_SetProperties(This,pproparray) (This)->lpVtbl->SetProperties(This,pproparray)
  19088 #define IFileOperation_SetOwnerWindow(This,hwndOwner) (This)->lpVtbl->SetOwnerWindow(This,hwndOwner)
  19089 #define IFileOperation_ApplyPropertiesToItem(This,psiItem) (This)->lpVtbl->ApplyPropertiesToItem(This,psiItem)
  19090 #define IFileOperation_ApplyPropertiesToItems(This,punkItems) (This)->lpVtbl->ApplyPropertiesToItems(This,punkItems)
  19091 #define IFileOperation_RenameItem(This,psiItem,pszNewName,pfopsItem) (This)->lpVtbl->RenameItem(This,psiItem,pszNewName,pfopsItem)
  19092 #define IFileOperation_RenameItems(This,pUnkItems,pszNewName) (This)->lpVtbl->RenameItems(This,pUnkItems,pszNewName)
  19093 #define IFileOperation_MoveItem(This,psiItem,psiDestinationFolder,pszNewName,pfopsItem) (This)->lpVtbl->MoveItem(This,psiItem,psiDestinationFolder,pszNewName,pfopsItem)
  19094 #define IFileOperation_MoveItems(This,punkItems,psiDestinationFolder) (This)->lpVtbl->MoveItems(This,punkItems,psiDestinationFolder)
  19095 #define IFileOperation_CopyItem(This,psiItem,psiDestinationFolder,pszCopyName,pfopsItem) (This)->lpVtbl->CopyItem(This,psiItem,psiDestinationFolder,pszCopyName,pfopsItem)
  19096 #define IFileOperation_CopyItems(This,punkItems,psiDestinationFolder) (This)->lpVtbl->CopyItems(This,punkItems,psiDestinationFolder)
  19097 #define IFileOperation_DeleteItem(This,psiItem,pfopsItem) (This)->lpVtbl->DeleteItem(This,psiItem,pfopsItem)
  19098 #define IFileOperation_DeleteItems(This,punkItems) (This)->lpVtbl->DeleteItems(This,punkItems)
  19099 #define IFileOperation_NewItem(This,psiDestinationFolder,dwFileAttributes,pszName,pszTemplateName,pfopsItem) (This)->lpVtbl->NewItem(This,psiDestinationFolder,dwFileAttributes,pszName,pszTemplateName,pfopsItem)
  19100 #define IFileOperation_PerformOperations(This) (This)->lpVtbl->PerformOperations(This)
  19101 #define IFileOperation_GetAnyOperationsAborted(This,pfAnyOperationsAborted) (This)->lpVtbl->GetAnyOperationsAborted(This,pfAnyOperationsAborted)
  19102 #else
  19103 /*** IUnknown methods ***/
  19104 static inline HRESULT IFileOperation_QueryInterface(IFileOperation* This,REFIID riid,void **ppvObject) {
  19105     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19106 }
  19107 static inline ULONG IFileOperation_AddRef(IFileOperation* This) {
  19108     return This->lpVtbl->AddRef(This);
  19109 }
  19110 static inline ULONG IFileOperation_Release(IFileOperation* This) {
  19111     return This->lpVtbl->Release(This);
  19112 }
  19113 /*** IFileOperation methods ***/
  19114 static inline HRESULT IFileOperation_Advise(IFileOperation* This,IFileOperationProgressSink *pfops,DWORD *pdwCookie) {
  19115     return This->lpVtbl->Advise(This,pfops,pdwCookie);
  19116 }
  19117 static inline HRESULT IFileOperation_Unadvise(IFileOperation* This,DWORD dwCookie) {
  19118     return This->lpVtbl->Unadvise(This,dwCookie);
  19119 }
  19120 static inline HRESULT IFileOperation_SetOperationFlags(IFileOperation* This,DWORD dwOperationFlags) {
  19121     return This->lpVtbl->SetOperationFlags(This,dwOperationFlags);
  19122 }
  19123 static inline HRESULT IFileOperation_SetProgressMessage(IFileOperation* This,LPCWSTR pszMessage) {
  19124     return This->lpVtbl->SetProgressMessage(This,pszMessage);
  19125 }
  19126 static inline HRESULT IFileOperation_SetProgressDialog(IFileOperation* This,IOperationsProgressDialog *popd) {
  19127     return This->lpVtbl->SetProgressDialog(This,popd);
  19128 }
  19129 static inline HRESULT IFileOperation_SetProperties(IFileOperation* This,IPropertyChangeArray *pproparray) {
  19130     return This->lpVtbl->SetProperties(This,pproparray);
  19131 }
  19132 static inline HRESULT IFileOperation_SetOwnerWindow(IFileOperation* This,HWND hwndOwner) {
  19133     return This->lpVtbl->SetOwnerWindow(This,hwndOwner);
  19134 }
  19135 static inline HRESULT IFileOperation_ApplyPropertiesToItem(IFileOperation* This,IShellItem *psiItem) {
  19136     return This->lpVtbl->ApplyPropertiesToItem(This,psiItem);
  19137 }
  19138 static inline HRESULT IFileOperation_ApplyPropertiesToItems(IFileOperation* This,IUnknown *punkItems) {
  19139     return This->lpVtbl->ApplyPropertiesToItems(This,punkItems);
  19140 }
  19141 static inline HRESULT IFileOperation_RenameItem(IFileOperation* This,IShellItem *psiItem,LPCWSTR pszNewName,IFileOperationProgressSink *pfopsItem) {
  19142     return This->lpVtbl->RenameItem(This,psiItem,pszNewName,pfopsItem);
  19143 }
  19144 static inline HRESULT IFileOperation_RenameItems(IFileOperation* This,IUnknown *pUnkItems,LPCWSTR pszNewName) {
  19145     return This->lpVtbl->RenameItems(This,pUnkItems,pszNewName);
  19146 }
  19147 static inline HRESULT IFileOperation_MoveItem(IFileOperation* This,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,IFileOperationProgressSink *pfopsItem) {
  19148     return This->lpVtbl->MoveItem(This,psiItem,psiDestinationFolder,pszNewName,pfopsItem);
  19149 }
  19150 static inline HRESULT IFileOperation_MoveItems(IFileOperation* This,IUnknown *punkItems,IShellItem *psiDestinationFolder) {
  19151     return This->lpVtbl->MoveItems(This,punkItems,psiDestinationFolder);
  19152 }
  19153 static inline HRESULT IFileOperation_CopyItem(IFileOperation* This,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszCopyName,IFileOperationProgressSink *pfopsItem) {
  19154     return This->lpVtbl->CopyItem(This,psiItem,psiDestinationFolder,pszCopyName,pfopsItem);
  19155 }
  19156 static inline HRESULT IFileOperation_CopyItems(IFileOperation* This,IUnknown *punkItems,IShellItem *psiDestinationFolder) {
  19157     return This->lpVtbl->CopyItems(This,punkItems,psiDestinationFolder);
  19158 }
  19159 static inline HRESULT IFileOperation_DeleteItem(IFileOperation* This,IShellItem *psiItem,IFileOperationProgressSink *pfopsItem) {
  19160     return This->lpVtbl->DeleteItem(This,psiItem,pfopsItem);
  19161 }
  19162 static inline HRESULT IFileOperation_DeleteItems(IFileOperation* This,IUnknown *punkItems) {
  19163     return This->lpVtbl->DeleteItems(This,punkItems);
  19164 }
  19165 static inline HRESULT IFileOperation_NewItem(IFileOperation* This,IShellItem *psiDestinationFolder,DWORD dwFileAttributes,LPCWSTR pszName,LPCWSTR pszTemplateName,IFileOperationProgressSink *pfopsItem) {
  19166     return This->lpVtbl->NewItem(This,psiDestinationFolder,dwFileAttributes,pszName,pszTemplateName,pfopsItem);
  19167 }
  19168 static inline HRESULT IFileOperation_PerformOperations(IFileOperation* This) {
  19169     return This->lpVtbl->PerformOperations(This);
  19170 }
  19171 static inline HRESULT IFileOperation_GetAnyOperationsAborted(IFileOperation* This,WINBOOL *pfAnyOperationsAborted) {
  19172     return This->lpVtbl->GetAnyOperationsAborted(This,pfAnyOperationsAborted);
  19173 }
  19174 #endif
  19175 #endif
  19176 
  19177 #endif
  19178 
  19179 
  19180 #endif  /* __IFileOperation_INTERFACE_DEFINED__ */
  19181 
  19182 
  19183 /*****************************************************************************
  19184  * IObjectProvider interface
  19185  */
  19186 #ifndef __IObjectProvider_INTERFACE_DEFINED__
  19187 #define __IObjectProvider_INTERFACE_DEFINED__
  19188 
  19189 DEFINE_GUID(IID_IObjectProvider, 0xa6087428, 0x3be3, 0x4d73, 0xb3,0x08, 0x7c,0x04,0xa5,0x40,0xbf,0x1a);
  19190 #if defined(__cplusplus) && !defined(CINTERFACE)
  19191 MIDL_INTERFACE("a6087428-3be3-4d73-b308-7c04a540bf1a")
  19192 IObjectProvider : public IUnknown
  19193 {
  19194     virtual HRESULT STDMETHODCALLTYPE QueryObject(
  19195         REFGUID guidObject,
  19196         REFIID riid,
  19197         void **ppvOut) = 0;
  19198 
  19199 };
  19200 #ifdef __CRT_UUID_DECL
  19201 __CRT_UUID_DECL(IObjectProvider, 0xa6087428, 0x3be3, 0x4d73, 0xb3,0x08, 0x7c,0x04,0xa5,0x40,0xbf,0x1a)
  19202 #endif
  19203 #else
  19204 typedef struct IObjectProviderVtbl {
  19205     BEGIN_INTERFACE
  19206 
  19207     /*** IUnknown methods ***/
  19208     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19209         IObjectProvider *This,
  19210         REFIID riid,
  19211         void **ppvObject);
  19212 
  19213     ULONG (STDMETHODCALLTYPE *AddRef)(
  19214         IObjectProvider *This);
  19215 
  19216     ULONG (STDMETHODCALLTYPE *Release)(
  19217         IObjectProvider *This);
  19218 
  19219     /*** IObjectProvider methods ***/
  19220     HRESULT (STDMETHODCALLTYPE *QueryObject)(
  19221         IObjectProvider *This,
  19222         REFGUID guidObject,
  19223         REFIID riid,
  19224         void **ppvOut);
  19225 
  19226     END_INTERFACE
  19227 } IObjectProviderVtbl;
  19228 
  19229 interface IObjectProvider {
  19230     CONST_VTBL IObjectProviderVtbl* lpVtbl;
  19231 };
  19232 
  19233 #ifdef COBJMACROS
  19234 #ifndef WIDL_C_INLINE_WRAPPERS
  19235 /*** IUnknown methods ***/
  19236 #define IObjectProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19237 #define IObjectProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
  19238 #define IObjectProvider_Release(This) (This)->lpVtbl->Release(This)
  19239 /*** IObjectProvider methods ***/
  19240 #define IObjectProvider_QueryObject(This,guidObject,riid,ppvOut) (This)->lpVtbl->QueryObject(This,guidObject,riid,ppvOut)
  19241 #else
  19242 /*** IUnknown methods ***/
  19243 static inline HRESULT IObjectProvider_QueryInterface(IObjectProvider* This,REFIID riid,void **ppvObject) {
  19244     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19245 }
  19246 static inline ULONG IObjectProvider_AddRef(IObjectProvider* This) {
  19247     return This->lpVtbl->AddRef(This);
  19248 }
  19249 static inline ULONG IObjectProvider_Release(IObjectProvider* This) {
  19250     return This->lpVtbl->Release(This);
  19251 }
  19252 /*** IObjectProvider methods ***/
  19253 static inline HRESULT IObjectProvider_QueryObject(IObjectProvider* This,REFGUID guidObject,REFIID riid,void **ppvOut) {
  19254     return This->lpVtbl->QueryObject(This,guidObject,riid,ppvOut);
  19255 }
  19256 #endif
  19257 #endif
  19258 
  19259 #endif
  19260 
  19261 
  19262 #endif  /* __IObjectProvider_INTERFACE_DEFINED__ */
  19263 
  19264 #endif
  19265 
  19266 /*****************************************************************************
  19267  * INamespaceWalkCB interface
  19268  */
  19269 #ifndef __INamespaceWalkCB_INTERFACE_DEFINED__
  19270 #define __INamespaceWalkCB_INTERFACE_DEFINED__
  19271 
  19272 DEFINE_GUID(IID_INamespaceWalkCB, 0xd92995f8, 0xcf5e, 0x4a76, 0xbf,0x59, 0xea,0xd3,0x9e,0xa2,0xb9,0x7e);
  19273 #if defined(__cplusplus) && !defined(CINTERFACE)
  19274 MIDL_INTERFACE("d92995f8-cf5e-4a76-bf59-ead39ea2b97e")
  19275 INamespaceWalkCB : public IUnknown
  19276 {
  19277     virtual HRESULT STDMETHODCALLTYPE FoundItem(
  19278         IShellFolder *psf,
  19279         PCUITEMID_CHILD pidl) = 0;
  19280 
  19281     virtual HRESULT STDMETHODCALLTYPE EnterFolder(
  19282         IShellFolder *psf,
  19283         PCUITEMID_CHILD pidl) = 0;
  19284 
  19285     virtual HRESULT STDMETHODCALLTYPE LeaveFolder(
  19286         IShellFolder *psf,
  19287         PCUITEMID_CHILD pidl) = 0;
  19288 
  19289     virtual HRESULT STDMETHODCALLTYPE InitializeProgressDialog(
  19290         LPWSTR *ppszTitle,
  19291         LPWSTR *ppszCancel) = 0;
  19292 
  19293 };
  19294 #ifdef __CRT_UUID_DECL
  19295 __CRT_UUID_DECL(INamespaceWalkCB, 0xd92995f8, 0xcf5e, 0x4a76, 0xbf,0x59, 0xea,0xd3,0x9e,0xa2,0xb9,0x7e)
  19296 #endif
  19297 #else
  19298 typedef struct INamespaceWalkCBVtbl {
  19299     BEGIN_INTERFACE
  19300 
  19301     /*** IUnknown methods ***/
  19302     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19303         INamespaceWalkCB *This,
  19304         REFIID riid,
  19305         void **ppvObject);
  19306 
  19307     ULONG (STDMETHODCALLTYPE *AddRef)(
  19308         INamespaceWalkCB *This);
  19309 
  19310     ULONG (STDMETHODCALLTYPE *Release)(
  19311         INamespaceWalkCB *This);
  19312 
  19313     /*** INamespaceWalkCB methods ***/
  19314     HRESULT (STDMETHODCALLTYPE *FoundItem)(
  19315         INamespaceWalkCB *This,
  19316         IShellFolder *psf,
  19317         PCUITEMID_CHILD pidl);
  19318 
  19319     HRESULT (STDMETHODCALLTYPE *EnterFolder)(
  19320         INamespaceWalkCB *This,
  19321         IShellFolder *psf,
  19322         PCUITEMID_CHILD pidl);
  19323 
  19324     HRESULT (STDMETHODCALLTYPE *LeaveFolder)(
  19325         INamespaceWalkCB *This,
  19326         IShellFolder *psf,
  19327         PCUITEMID_CHILD pidl);
  19328 
  19329     HRESULT (STDMETHODCALLTYPE *InitializeProgressDialog)(
  19330         INamespaceWalkCB *This,
  19331         LPWSTR *ppszTitle,
  19332         LPWSTR *ppszCancel);
  19333 
  19334     END_INTERFACE
  19335 } INamespaceWalkCBVtbl;
  19336 
  19337 interface INamespaceWalkCB {
  19338     CONST_VTBL INamespaceWalkCBVtbl* lpVtbl;
  19339 };
  19340 
  19341 #ifdef COBJMACROS
  19342 #ifndef WIDL_C_INLINE_WRAPPERS
  19343 /*** IUnknown methods ***/
  19344 #define INamespaceWalkCB_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19345 #define INamespaceWalkCB_AddRef(This) (This)->lpVtbl->AddRef(This)
  19346 #define INamespaceWalkCB_Release(This) (This)->lpVtbl->Release(This)
  19347 /*** INamespaceWalkCB methods ***/
  19348 #define INamespaceWalkCB_FoundItem(This,psf,pidl) (This)->lpVtbl->FoundItem(This,psf,pidl)
  19349 #define INamespaceWalkCB_EnterFolder(This,psf,pidl) (This)->lpVtbl->EnterFolder(This,psf,pidl)
  19350 #define INamespaceWalkCB_LeaveFolder(This,psf,pidl) (This)->lpVtbl->LeaveFolder(This,psf,pidl)
  19351 #define INamespaceWalkCB_InitializeProgressDialog(This,ppszTitle,ppszCancel) (This)->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel)
  19352 #else
  19353 /*** IUnknown methods ***/
  19354 static inline HRESULT INamespaceWalkCB_QueryInterface(INamespaceWalkCB* This,REFIID riid,void **ppvObject) {
  19355     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19356 }
  19357 static inline ULONG INamespaceWalkCB_AddRef(INamespaceWalkCB* This) {
  19358     return This->lpVtbl->AddRef(This);
  19359 }
  19360 static inline ULONG INamespaceWalkCB_Release(INamespaceWalkCB* This) {
  19361     return This->lpVtbl->Release(This);
  19362 }
  19363 /*** INamespaceWalkCB methods ***/
  19364 static inline HRESULT INamespaceWalkCB_FoundItem(INamespaceWalkCB* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
  19365     return This->lpVtbl->FoundItem(This,psf,pidl);
  19366 }
  19367 static inline HRESULT INamespaceWalkCB_EnterFolder(INamespaceWalkCB* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
  19368     return This->lpVtbl->EnterFolder(This,psf,pidl);
  19369 }
  19370 static inline HRESULT INamespaceWalkCB_LeaveFolder(INamespaceWalkCB* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
  19371     return This->lpVtbl->LeaveFolder(This,psf,pidl);
  19372 }
  19373 static inline HRESULT INamespaceWalkCB_InitializeProgressDialog(INamespaceWalkCB* This,LPWSTR *ppszTitle,LPWSTR *ppszCancel) {
  19374     return This->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel);
  19375 }
  19376 #endif
  19377 #endif
  19378 
  19379 #endif
  19380 
  19381 
  19382 #endif  /* __INamespaceWalkCB_INTERFACE_DEFINED__ */
  19383 
  19384 
  19385 #if _WIN32_IE >= _WIN32_IE_IE70
  19386 /*****************************************************************************
  19387  * INamespaceWalkCB2 interface
  19388  */
  19389 #ifndef __INamespaceWalkCB2_INTERFACE_DEFINED__
  19390 #define __INamespaceWalkCB2_INTERFACE_DEFINED__
  19391 
  19392 DEFINE_GUID(IID_INamespaceWalkCB2, 0x7ac7492b, 0xc38e, 0x438a, 0x87,0xdb, 0x68,0x73,0x78,0x44,0xff,0x70);
  19393 #if defined(__cplusplus) && !defined(CINTERFACE)
  19394 MIDL_INTERFACE("7ac7492b-c38e-438a-87db-68737844ff70")
  19395 INamespaceWalkCB2 : public INamespaceWalkCB
  19396 {
  19397     virtual HRESULT STDMETHODCALLTYPE WalkComplete(
  19398         HRESULT hr) = 0;
  19399 
  19400 };
  19401 #ifdef __CRT_UUID_DECL
  19402 __CRT_UUID_DECL(INamespaceWalkCB2, 0x7ac7492b, 0xc38e, 0x438a, 0x87,0xdb, 0x68,0x73,0x78,0x44,0xff,0x70)
  19403 #endif
  19404 #else
  19405 typedef struct INamespaceWalkCB2Vtbl {
  19406     BEGIN_INTERFACE
  19407 
  19408     /*** IUnknown methods ***/
  19409     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19410         INamespaceWalkCB2 *This,
  19411         REFIID riid,
  19412         void **ppvObject);
  19413 
  19414     ULONG (STDMETHODCALLTYPE *AddRef)(
  19415         INamespaceWalkCB2 *This);
  19416 
  19417     ULONG (STDMETHODCALLTYPE *Release)(
  19418         INamespaceWalkCB2 *This);
  19419 
  19420     /*** INamespaceWalkCB methods ***/
  19421     HRESULT (STDMETHODCALLTYPE *FoundItem)(
  19422         INamespaceWalkCB2 *This,
  19423         IShellFolder *psf,
  19424         PCUITEMID_CHILD pidl);
  19425 
  19426     HRESULT (STDMETHODCALLTYPE *EnterFolder)(
  19427         INamespaceWalkCB2 *This,
  19428         IShellFolder *psf,
  19429         PCUITEMID_CHILD pidl);
  19430 
  19431     HRESULT (STDMETHODCALLTYPE *LeaveFolder)(
  19432         INamespaceWalkCB2 *This,
  19433         IShellFolder *psf,
  19434         PCUITEMID_CHILD pidl);
  19435 
  19436     HRESULT (STDMETHODCALLTYPE *InitializeProgressDialog)(
  19437         INamespaceWalkCB2 *This,
  19438         LPWSTR *ppszTitle,
  19439         LPWSTR *ppszCancel);
  19440 
  19441     /*** INamespaceWalkCB2 methods ***/
  19442     HRESULT (STDMETHODCALLTYPE *WalkComplete)(
  19443         INamespaceWalkCB2 *This,
  19444         HRESULT hr);
  19445 
  19446     END_INTERFACE
  19447 } INamespaceWalkCB2Vtbl;
  19448 
  19449 interface INamespaceWalkCB2 {
  19450     CONST_VTBL INamespaceWalkCB2Vtbl* lpVtbl;
  19451 };
  19452 
  19453 #ifdef COBJMACROS
  19454 #ifndef WIDL_C_INLINE_WRAPPERS
  19455 /*** IUnknown methods ***/
  19456 #define INamespaceWalkCB2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19457 #define INamespaceWalkCB2_AddRef(This) (This)->lpVtbl->AddRef(This)
  19458 #define INamespaceWalkCB2_Release(This) (This)->lpVtbl->Release(This)
  19459 /*** INamespaceWalkCB methods ***/
  19460 #define INamespaceWalkCB2_FoundItem(This,psf,pidl) (This)->lpVtbl->FoundItem(This,psf,pidl)
  19461 #define INamespaceWalkCB2_EnterFolder(This,psf,pidl) (This)->lpVtbl->EnterFolder(This,psf,pidl)
  19462 #define INamespaceWalkCB2_LeaveFolder(This,psf,pidl) (This)->lpVtbl->LeaveFolder(This,psf,pidl)
  19463 #define INamespaceWalkCB2_InitializeProgressDialog(This,ppszTitle,ppszCancel) (This)->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel)
  19464 /*** INamespaceWalkCB2 methods ***/
  19465 #define INamespaceWalkCB2_WalkComplete(This,hr) (This)->lpVtbl->WalkComplete(This,hr)
  19466 #else
  19467 /*** IUnknown methods ***/
  19468 static inline HRESULT INamespaceWalkCB2_QueryInterface(INamespaceWalkCB2* This,REFIID riid,void **ppvObject) {
  19469     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19470 }
  19471 static inline ULONG INamespaceWalkCB2_AddRef(INamespaceWalkCB2* This) {
  19472     return This->lpVtbl->AddRef(This);
  19473 }
  19474 static inline ULONG INamespaceWalkCB2_Release(INamespaceWalkCB2* This) {
  19475     return This->lpVtbl->Release(This);
  19476 }
  19477 /*** INamespaceWalkCB methods ***/
  19478 static inline HRESULT INamespaceWalkCB2_FoundItem(INamespaceWalkCB2* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
  19479     return This->lpVtbl->FoundItem(This,psf,pidl);
  19480 }
  19481 static inline HRESULT INamespaceWalkCB2_EnterFolder(INamespaceWalkCB2* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
  19482     return This->lpVtbl->EnterFolder(This,psf,pidl);
  19483 }
  19484 static inline HRESULT INamespaceWalkCB2_LeaveFolder(INamespaceWalkCB2* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
  19485     return This->lpVtbl->LeaveFolder(This,psf,pidl);
  19486 }
  19487 static inline HRESULT INamespaceWalkCB2_InitializeProgressDialog(INamespaceWalkCB2* This,LPWSTR *ppszTitle,LPWSTR *ppszCancel) {
  19488     return This->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel);
  19489 }
  19490 /*** INamespaceWalkCB2 methods ***/
  19491 static inline HRESULT INamespaceWalkCB2_WalkComplete(INamespaceWalkCB2* This,HRESULT hr) {
  19492     return This->lpVtbl->WalkComplete(This,hr);
  19493 }
  19494 #endif
  19495 #endif
  19496 
  19497 #endif
  19498 
  19499 
  19500 #endif  /* __INamespaceWalkCB2_INTERFACE_DEFINED__ */
  19501 
  19502 #endif
  19503 
  19504 /*****************************************************************************
  19505  * INamespaceWalk interface
  19506  */
  19507 #ifndef __INamespaceWalk_INTERFACE_DEFINED__
  19508 #define __INamespaceWalk_INTERFACE_DEFINED__
  19509 
  19510 typedef enum NAMESPACEWALKFLAG {
  19511     NSWF_DEFAULT = 0x0,
  19512     NSWF_NONE_IMPLIES_ALL = 0x1,
  19513     NSWF_ONE_IMPLIES_ALL = 0x2,
  19514     NSWF_DONT_TRAVERSE_LINKS = 0x4,
  19515     NSWF_DONT_ACCUMULATE_RESULT = 0x8,
  19516     NSWF_TRAVERSE_STREAM_JUNCTIONS = 0x10,
  19517     NSWF_FILESYSTEM_ONLY = 0x20,
  19518     NSWF_SHOW_PROGRESS = 0x40,
  19519     NSWF_FLAG_VIEWORDER = 0x80,
  19520     NSWF_IGNORE_AUTOPLAY_HIDA = 0x100,
  19521     NSWF_ASYNC = 0x200,
  19522     NSWF_DONT_RESOLVE_LINKS = 0x400,
  19523     NSWF_ACCUMULATE_FOLDERS = 0x800,
  19524     NSWF_DONT_SORT = 0x1000,
  19525     NSWF_USE_TRANSFER_MEDIUM = 0x2000,
  19526     NSWF_DONT_TRAVERSE_STREAM_JUNCTIONS = 0x4000,
  19527     NSWF_ANY_IMPLIES_ALL = 0x8000
  19528 } NAMESPACEWALKFLAG;
  19529 
  19530 #define NSWF_ENUMERATE_BEST_EFFORT 0x00010000
  19531 #define NSWF_TRAVERSE_ONLY_STORAGE 0x00020000
  19532 
  19533 DEFINE_ENUM_FLAG_OPERATORS(NAMESPACEWALKFLAG)
  19534 
  19535 DEFINE_GUID(IID_INamespaceWalk, 0x57ced8a7, 0x3f4a, 0x432c, 0x93,0x50, 0x30,0xf2,0x44,0x83,0xf7,0x4f);
  19536 #if defined(__cplusplus) && !defined(CINTERFACE)
  19537 MIDL_INTERFACE("57ced8a7-3f4a-432c-9350-30f24483f74f")
  19538 INamespaceWalk : public IUnknown
  19539 {
  19540     virtual HRESULT STDMETHODCALLTYPE Walk(
  19541         IUnknown *punkToWalk,
  19542         DWORD dwFlags,
  19543         int cDepth,
  19544         INamespaceWalkCB *pnswcb) = 0;
  19545 
  19546     virtual HRESULT STDMETHODCALLTYPE GetIDArrayResult(
  19547         UINT *pcItems,
  19548         PIDLIST_ABSOLUTE **prgpidl) = 0;
  19549 
  19550 };
  19551 #ifdef __CRT_UUID_DECL
  19552 __CRT_UUID_DECL(INamespaceWalk, 0x57ced8a7, 0x3f4a, 0x432c, 0x93,0x50, 0x30,0xf2,0x44,0x83,0xf7,0x4f)
  19553 #endif
  19554 #else
  19555 typedef struct INamespaceWalkVtbl {
  19556     BEGIN_INTERFACE
  19557 
  19558     /*** IUnknown methods ***/
  19559     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19560         INamespaceWalk *This,
  19561         REFIID riid,
  19562         void **ppvObject);
  19563 
  19564     ULONG (STDMETHODCALLTYPE *AddRef)(
  19565         INamespaceWalk *This);
  19566 
  19567     ULONG (STDMETHODCALLTYPE *Release)(
  19568         INamespaceWalk *This);
  19569 
  19570     /*** INamespaceWalk methods ***/
  19571     HRESULT (STDMETHODCALLTYPE *Walk)(
  19572         INamespaceWalk *This,
  19573         IUnknown *punkToWalk,
  19574         DWORD dwFlags,
  19575         int cDepth,
  19576         INamespaceWalkCB *pnswcb);
  19577 
  19578     HRESULT (STDMETHODCALLTYPE *GetIDArrayResult)(
  19579         INamespaceWalk *This,
  19580         UINT *pcItems,
  19581         PIDLIST_ABSOLUTE **prgpidl);
  19582 
  19583     END_INTERFACE
  19584 } INamespaceWalkVtbl;
  19585 
  19586 interface INamespaceWalk {
  19587     CONST_VTBL INamespaceWalkVtbl* lpVtbl;
  19588 };
  19589 
  19590 #ifdef COBJMACROS
  19591 #ifndef WIDL_C_INLINE_WRAPPERS
  19592 /*** IUnknown methods ***/
  19593 #define INamespaceWalk_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19594 #define INamespaceWalk_AddRef(This) (This)->lpVtbl->AddRef(This)
  19595 #define INamespaceWalk_Release(This) (This)->lpVtbl->Release(This)
  19596 /*** INamespaceWalk methods ***/
  19597 #define INamespaceWalk_Walk(This,punkToWalk,dwFlags,cDepth,pnswcb) (This)->lpVtbl->Walk(This,punkToWalk,dwFlags,cDepth,pnswcb)
  19598 #define INamespaceWalk_GetIDArrayResult(This,pcItems,prgpidl) (This)->lpVtbl->GetIDArrayResult(This,pcItems,prgpidl)
  19599 #else
  19600 /*** IUnknown methods ***/
  19601 static inline HRESULT INamespaceWalk_QueryInterface(INamespaceWalk* This,REFIID riid,void **ppvObject) {
  19602     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19603 }
  19604 static inline ULONG INamespaceWalk_AddRef(INamespaceWalk* This) {
  19605     return This->lpVtbl->AddRef(This);
  19606 }
  19607 static inline ULONG INamespaceWalk_Release(INamespaceWalk* This) {
  19608     return This->lpVtbl->Release(This);
  19609 }
  19610 /*** INamespaceWalk methods ***/
  19611 static inline HRESULT INamespaceWalk_Walk(INamespaceWalk* This,IUnknown *punkToWalk,DWORD dwFlags,int cDepth,INamespaceWalkCB *pnswcb) {
  19612     return This->lpVtbl->Walk(This,punkToWalk,dwFlags,cDepth,pnswcb);
  19613 }
  19614 static inline HRESULT INamespaceWalk_GetIDArrayResult(INamespaceWalk* This,UINT *pcItems,PIDLIST_ABSOLUTE **prgpidl) {
  19615     return This->lpVtbl->GetIDArrayResult(This,pcItems,prgpidl);
  19616 }
  19617 #endif
  19618 #endif
  19619 
  19620 #endif
  19621 
  19622 
  19623 #endif  /* __INamespaceWalk_INTERFACE_DEFINED__ */
  19624 
  19625 
  19626   __forceinline void FreeIDListArray(PIDLIST_RELATIVE *ppidls, UINT cItems) {
  19627     UINT i;
  19628     for (i = 0; i < cItems; i++) {
  19629       CoTaskMemFree(ppidls[i]);
  19630     }
  19631     CoTaskMemFree(ppidls);
  19632   }
  19633 #if defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)
  19634   __forceinline void FreeIDListArrayFull(PIDLIST_ABSOLUTE *ppidls, UINT cItems) {
  19635     UINT i;
  19636     for (i = 0; i < cItems; i++)
  19637       CoTaskMemFree(ppidls[i]);
  19638     CoTaskMemFree(ppidls);
  19639   }
  19640   __forceinline void FreeIDListArrayChild(PITEMID_CHILD *ppidls, UINT cItems) {
  19641     UINT i;
  19642     for (i = 0; i < cItems; i++)
  19643       CoTaskMemFree(ppidls[i]);
  19644     CoTaskMemFree(ppidls);
  19645   }
  19646 #else
  19647 #define FreeIDListArrayFull FreeIDListArray
  19648 #define FreeIDListArrayChild FreeIDListArray
  19649 #endif
  19650 
  19651 #define ACDD_VISIBLE 0x1
  19652 
  19653 /*****************************************************************************
  19654  * IAutoCompleteDropDown interface
  19655  */
  19656 #ifndef __IAutoCompleteDropDown_INTERFACE_DEFINED__
  19657 #define __IAutoCompleteDropDown_INTERFACE_DEFINED__
  19658 
  19659 DEFINE_GUID(IID_IAutoCompleteDropDown, 0x3cd141f4, 0x3c6a, 0x11d2, 0xbc,0xaa, 0x00,0xc0,0x4f,0xd9,0x29,0xdb);
  19660 #if defined(__cplusplus) && !defined(CINTERFACE)
  19661 MIDL_INTERFACE("3cd141f4-3c6a-11d2-bcaa-00c04fd929db")
  19662 IAutoCompleteDropDown : public IUnknown
  19663 {
  19664     virtual HRESULT STDMETHODCALLTYPE GetDropDownStatus(
  19665         DWORD *pdwFlags,
  19666         LPWSTR *ppwszString) = 0;
  19667 
  19668     virtual HRESULT STDMETHODCALLTYPE ResetEnumerator(
  19669         ) = 0;
  19670 
  19671 };
  19672 #ifdef __CRT_UUID_DECL
  19673 __CRT_UUID_DECL(IAutoCompleteDropDown, 0x3cd141f4, 0x3c6a, 0x11d2, 0xbc,0xaa, 0x00,0xc0,0x4f,0xd9,0x29,0xdb)
  19674 #endif
  19675 #else
  19676 typedef struct IAutoCompleteDropDownVtbl {
  19677     BEGIN_INTERFACE
  19678 
  19679     /*** IUnknown methods ***/
  19680     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19681         IAutoCompleteDropDown *This,
  19682         REFIID riid,
  19683         void **ppvObject);
  19684 
  19685     ULONG (STDMETHODCALLTYPE *AddRef)(
  19686         IAutoCompleteDropDown *This);
  19687 
  19688     ULONG (STDMETHODCALLTYPE *Release)(
  19689         IAutoCompleteDropDown *This);
  19690 
  19691     /*** IAutoCompleteDropDown methods ***/
  19692     HRESULT (STDMETHODCALLTYPE *GetDropDownStatus)(
  19693         IAutoCompleteDropDown *This,
  19694         DWORD *pdwFlags,
  19695         LPWSTR *ppwszString);
  19696 
  19697     HRESULT (STDMETHODCALLTYPE *ResetEnumerator)(
  19698         IAutoCompleteDropDown *This);
  19699 
  19700     END_INTERFACE
  19701 } IAutoCompleteDropDownVtbl;
  19702 
  19703 interface IAutoCompleteDropDown {
  19704     CONST_VTBL IAutoCompleteDropDownVtbl* lpVtbl;
  19705 };
  19706 
  19707 #ifdef COBJMACROS
  19708 #ifndef WIDL_C_INLINE_WRAPPERS
  19709 /*** IUnknown methods ***/
  19710 #define IAutoCompleteDropDown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19711 #define IAutoCompleteDropDown_AddRef(This) (This)->lpVtbl->AddRef(This)
  19712 #define IAutoCompleteDropDown_Release(This) (This)->lpVtbl->Release(This)
  19713 /*** IAutoCompleteDropDown methods ***/
  19714 #define IAutoCompleteDropDown_GetDropDownStatus(This,pdwFlags,ppwszString) (This)->lpVtbl->GetDropDownStatus(This,pdwFlags,ppwszString)
  19715 #define IAutoCompleteDropDown_ResetEnumerator(This) (This)->lpVtbl->ResetEnumerator(This)
  19716 #else
  19717 /*** IUnknown methods ***/
  19718 static inline HRESULT IAutoCompleteDropDown_QueryInterface(IAutoCompleteDropDown* This,REFIID riid,void **ppvObject) {
  19719     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19720 }
  19721 static inline ULONG IAutoCompleteDropDown_AddRef(IAutoCompleteDropDown* This) {
  19722     return This->lpVtbl->AddRef(This);
  19723 }
  19724 static inline ULONG IAutoCompleteDropDown_Release(IAutoCompleteDropDown* This) {
  19725     return This->lpVtbl->Release(This);
  19726 }
  19727 /*** IAutoCompleteDropDown methods ***/
  19728 static inline HRESULT IAutoCompleteDropDown_GetDropDownStatus(IAutoCompleteDropDown* This,DWORD *pdwFlags,LPWSTR *ppwszString) {
  19729     return This->lpVtbl->GetDropDownStatus(This,pdwFlags,ppwszString);
  19730 }
  19731 static inline HRESULT IAutoCompleteDropDown_ResetEnumerator(IAutoCompleteDropDown* This) {
  19732     return This->lpVtbl->ResetEnumerator(This);
  19733 }
  19734 #endif
  19735 #endif
  19736 
  19737 #endif
  19738 
  19739 
  19740 #endif  /* __IAutoCompleteDropDown_INTERFACE_DEFINED__ */
  19741 
  19742 
  19743 #include <pshpack8.h>
  19744 typedef struct tagBANDSITEINFO {
  19745     DWORD dwMask;
  19746     DWORD dwState;
  19747     DWORD dwStyle;
  19748 } BANDSITEINFO;
  19749 #include <poppack.h>
  19750 enum tagBANDSITECID {
  19751     BSID_BANDADDED = 0,
  19752     BSID_BANDREMOVED = 1
  19753 };
  19754 
  19755 #define BSIM_STATE 0x00000001
  19756 #define BSIM_STYLE 0x00000002
  19757 
  19758 #define BSSF_VISIBLE 0x00000001
  19759 #define BSSF_NOTITLE 0x00000002
  19760 #define BSSF_UNDELETEABLE 0x00001000
  19761 
  19762 #define BSIS_AUTOGRIPPER 0x00000000
  19763 #define BSIS_NOGRIPPER 0x00000001
  19764 #define BSIS_ALWAYSGRIPPER 0x00000002
  19765 #define BSIS_LEFTALIGN 0x00000004
  19766 #define BSIS_SINGLECLICK 0x00000008
  19767 #define BSIS_NOCONTEXTMENU 0x00000010
  19768 #define BSIS_NODROPTARGET 0x00000020
  19769 #define BSIS_NOCAPTION 0x00000040
  19770 #define BSIS_PREFERNOLINEBREAK 0x00000080
  19771 #define BSIS_LOCKED 0x00000100
  19772 #if _WIN32_IE >= _WIN32_IE_IE70
  19773 #define BSIS_PRESERVEORDERDURINGLAYOUT 0x00000200
  19774 #define BSIS_FIXEDORDER 0x00000400
  19775 #endif
  19776 
  19777 #define SID_SBandSite IID_IBandSite
  19778 #define CGID_BandSite IID_IBandSite
  19779 
  19780 /*****************************************************************************
  19781  * IBandSite interface
  19782  */
  19783 #ifndef __IBandSite_INTERFACE_DEFINED__
  19784 #define __IBandSite_INTERFACE_DEFINED__
  19785 
  19786 DEFINE_GUID(IID_IBandSite, 0x4cf504b0, 0xde96, 0x11d0, 0x8b,0x3f, 0x00,0xa0,0xc9,0x11,0xe8,0xe5);
  19787 #if defined(__cplusplus) && !defined(CINTERFACE)
  19788 MIDL_INTERFACE("4cf504b0-de96-11d0-8b3f-00a0c911e8e5")
  19789 IBandSite : public IUnknown
  19790 {
  19791     virtual HRESULT STDMETHODCALLTYPE AddBand(
  19792         IUnknown *punk) = 0;
  19793 
  19794     virtual HRESULT STDMETHODCALLTYPE EnumBands(
  19795         UINT uBand,
  19796         DWORD *pdwBandID) = 0;
  19797 
  19798     virtual HRESULT STDMETHODCALLTYPE QueryBand(
  19799         DWORD dwBandID,
  19800         IDeskBand **ppstb,
  19801         DWORD *pdwState,
  19802         LPWSTR pszName,
  19803         int cchName) = 0;
  19804 
  19805     virtual HRESULT STDMETHODCALLTYPE SetBandState(
  19806         DWORD dwBandID,
  19807         DWORD dwMask,
  19808         DWORD dwState) = 0;
  19809 
  19810     virtual HRESULT STDMETHODCALLTYPE RemoveBand(
  19811         DWORD dwBandID) = 0;
  19812 
  19813     virtual HRESULT STDMETHODCALLTYPE GetBandObject(
  19814         DWORD dwBandID,
  19815         REFIID riid,
  19816         void **ppv) = 0;
  19817 
  19818     virtual HRESULT STDMETHODCALLTYPE SetBandSiteInfo(
  19819         const BANDSITEINFO *pbsinfo) = 0;
  19820 
  19821     virtual HRESULT STDMETHODCALLTYPE GetBandSiteInfo(
  19822         BANDSITEINFO *pbsinfo) = 0;
  19823 
  19824 };
  19825 #ifdef __CRT_UUID_DECL
  19826 __CRT_UUID_DECL(IBandSite, 0x4cf504b0, 0xde96, 0x11d0, 0x8b,0x3f, 0x00,0xa0,0xc9,0x11,0xe8,0xe5)
  19827 #endif
  19828 #else
  19829 typedef struct IBandSiteVtbl {
  19830     BEGIN_INTERFACE
  19831 
  19832     /*** IUnknown methods ***/
  19833     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  19834         IBandSite *This,
  19835         REFIID riid,
  19836         void **ppvObject);
  19837 
  19838     ULONG (STDMETHODCALLTYPE *AddRef)(
  19839         IBandSite *This);
  19840 
  19841     ULONG (STDMETHODCALLTYPE *Release)(
  19842         IBandSite *This);
  19843 
  19844     /*** IBandSite methods ***/
  19845     HRESULT (STDMETHODCALLTYPE *AddBand)(
  19846         IBandSite *This,
  19847         IUnknown *punk);
  19848 
  19849     HRESULT (STDMETHODCALLTYPE *EnumBands)(
  19850         IBandSite *This,
  19851         UINT uBand,
  19852         DWORD *pdwBandID);
  19853 
  19854     HRESULT (STDMETHODCALLTYPE *QueryBand)(
  19855         IBandSite *This,
  19856         DWORD dwBandID,
  19857         IDeskBand **ppstb,
  19858         DWORD *pdwState,
  19859         LPWSTR pszName,
  19860         int cchName);
  19861 
  19862     HRESULT (STDMETHODCALLTYPE *SetBandState)(
  19863         IBandSite *This,
  19864         DWORD dwBandID,
  19865         DWORD dwMask,
  19866         DWORD dwState);
  19867 
  19868     HRESULT (STDMETHODCALLTYPE *RemoveBand)(
  19869         IBandSite *This,
  19870         DWORD dwBandID);
  19871 
  19872     HRESULT (STDMETHODCALLTYPE *GetBandObject)(
  19873         IBandSite *This,
  19874         DWORD dwBandID,
  19875         REFIID riid,
  19876         void **ppv);
  19877 
  19878     HRESULT (STDMETHODCALLTYPE *SetBandSiteInfo)(
  19879         IBandSite *This,
  19880         const BANDSITEINFO *pbsinfo);
  19881 
  19882     HRESULT (STDMETHODCALLTYPE *GetBandSiteInfo)(
  19883         IBandSite *This,
  19884         BANDSITEINFO *pbsinfo);
  19885 
  19886     END_INTERFACE
  19887 } IBandSiteVtbl;
  19888 
  19889 interface IBandSite {
  19890     CONST_VTBL IBandSiteVtbl* lpVtbl;
  19891 };
  19892 
  19893 #ifdef COBJMACROS
  19894 #ifndef WIDL_C_INLINE_WRAPPERS
  19895 /*** IUnknown methods ***/
  19896 #define IBandSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  19897 #define IBandSite_AddRef(This) (This)->lpVtbl->AddRef(This)
  19898 #define IBandSite_Release(This) (This)->lpVtbl->Release(This)
  19899 /*** IBandSite methods ***/
  19900 #define IBandSite_AddBand(This,punk) (This)->lpVtbl->AddBand(This,punk)
  19901 #define IBandSite_EnumBands(This,uBand,pdwBandID) (This)->lpVtbl->EnumBands(This,uBand,pdwBandID)
  19902 #define IBandSite_QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName) (This)->lpVtbl->QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName)
  19903 #define IBandSite_SetBandState(This,dwBandID,dwMask,dwState) (This)->lpVtbl->SetBandState(This,dwBandID,dwMask,dwState)
  19904 #define IBandSite_RemoveBand(This,dwBandID) (This)->lpVtbl->RemoveBand(This,dwBandID)
  19905 #define IBandSite_GetBandObject(This,dwBandID,riid,ppv) (This)->lpVtbl->GetBandObject(This,dwBandID,riid,ppv)
  19906 #define IBandSite_SetBandSiteInfo(This,pbsinfo) (This)->lpVtbl->SetBandSiteInfo(This,pbsinfo)
  19907 #define IBandSite_GetBandSiteInfo(This,pbsinfo) (This)->lpVtbl->GetBandSiteInfo(This,pbsinfo)
  19908 #else
  19909 /*** IUnknown methods ***/
  19910 static inline HRESULT IBandSite_QueryInterface(IBandSite* This,REFIID riid,void **ppvObject) {
  19911     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  19912 }
  19913 static inline ULONG IBandSite_AddRef(IBandSite* This) {
  19914     return This->lpVtbl->AddRef(This);
  19915 }
  19916 static inline ULONG IBandSite_Release(IBandSite* This) {
  19917     return This->lpVtbl->Release(This);
  19918 }
  19919 /*** IBandSite methods ***/
  19920 static inline HRESULT IBandSite_AddBand(IBandSite* This,IUnknown *punk) {
  19921     return This->lpVtbl->AddBand(This,punk);
  19922 }
  19923 static inline HRESULT IBandSite_EnumBands(IBandSite* This,UINT uBand,DWORD *pdwBandID) {
  19924     return This->lpVtbl->EnumBands(This,uBand,pdwBandID);
  19925 }
  19926 static inline HRESULT IBandSite_QueryBand(IBandSite* This,DWORD dwBandID,IDeskBand **ppstb,DWORD *pdwState,LPWSTR pszName,int cchName) {
  19927     return This->lpVtbl->QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName);
  19928 }
  19929 static inline HRESULT IBandSite_SetBandState(IBandSite* This,DWORD dwBandID,DWORD dwMask,DWORD dwState) {
  19930     return This->lpVtbl->SetBandState(This,dwBandID,dwMask,dwState);
  19931 }
  19932 static inline HRESULT IBandSite_RemoveBand(IBandSite* This,DWORD dwBandID) {
  19933     return This->lpVtbl->RemoveBand(This,dwBandID);
  19934 }
  19935 static inline HRESULT IBandSite_GetBandObject(IBandSite* This,DWORD dwBandID,REFIID riid,void **ppv) {
  19936     return This->lpVtbl->GetBandObject(This,dwBandID,riid,ppv);
  19937 }
  19938 static inline HRESULT IBandSite_SetBandSiteInfo(IBandSite* This,const BANDSITEINFO *pbsinfo) {
  19939     return This->lpVtbl->SetBandSiteInfo(This,pbsinfo);
  19940 }
  19941 static inline HRESULT IBandSite_GetBandSiteInfo(IBandSite* This,BANDSITEINFO *pbsinfo) {
  19942     return This->lpVtbl->GetBandSiteInfo(This,pbsinfo);
  19943 }
  19944 #endif
  19945 #endif
  19946 
  19947 #endif
  19948 
  19949 HRESULT STDMETHODCALLTYPE IBandSite_RemoteQueryBand_Proxy(
  19950     IBandSite* This,
  19951     DWORD dwBandID,
  19952     IDeskBand **ppstb,
  19953     DWORD *pdwState,
  19954     LPWSTR pszName,
  19955     int cchName);
  19956 void __RPC_STUB IBandSite_RemoteQueryBand_Stub(
  19957     IRpcStubBuffer* This,
  19958     IRpcChannelBuffer* pRpcChannelBuffer,
  19959     PRPC_MESSAGE pRpcMessage,
  19960     DWORD* pdwStubPhase);
  19961 HRESULT CALLBACK IBandSite_QueryBand_Proxy(
  19962     IBandSite* This,
  19963     DWORD dwBandID,
  19964     IDeskBand **ppstb,
  19965     DWORD *pdwState,
  19966     LPWSTR pszName,
  19967     int cchName);
  19968 HRESULT __RPC_STUB IBandSite_QueryBand_Stub(
  19969     IBandSite* This,
  19970     DWORD dwBandID,
  19971     IDeskBand **ppstb,
  19972     DWORD *pdwState,
  19973     LPWSTR pszName,
  19974     int cchName);
  19975 
  19976 #endif  /* __IBandSite_INTERFACE_DEFINED__ */
  19977 
  19978 
  19979 /*****************************************************************************
  19980  * IModalWindow interface
  19981  */
  19982 #ifndef __IModalWindow_INTERFACE_DEFINED__
  19983 #define __IModalWindow_INTERFACE_DEFINED__
  19984 
  19985 DEFINE_GUID(IID_IModalWindow, 0xb4db1657, 0x70d7, 0x485e, 0x8e,0x3e, 0x6f,0xcb,0x5a,0x5c,0x18,0x02);
  19986 #if defined(__cplusplus) && !defined(CINTERFACE)
  19987 MIDL_INTERFACE("b4db1657-70d7-485e-8e3e-6fcb5a5c1802")
  19988 IModalWindow : public IUnknown
  19989 {
  19990     virtual HRESULT STDMETHODCALLTYPE Show(
  19991         HWND hwndOwner) = 0;
  19992 
  19993 };
  19994 #ifdef __CRT_UUID_DECL
  19995 __CRT_UUID_DECL(IModalWindow, 0xb4db1657, 0x70d7, 0x485e, 0x8e,0x3e, 0x6f,0xcb,0x5a,0x5c,0x18,0x02)
  19996 #endif
  19997 #else
  19998 typedef struct IModalWindowVtbl {
  19999     BEGIN_INTERFACE
  20000 
  20001     /*** IUnknown methods ***/
  20002     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20003         IModalWindow *This,
  20004         REFIID riid,
  20005         void **ppvObject);
  20006 
  20007     ULONG (STDMETHODCALLTYPE *AddRef)(
  20008         IModalWindow *This);
  20009 
  20010     ULONG (STDMETHODCALLTYPE *Release)(
  20011         IModalWindow *This);
  20012 
  20013     /*** IModalWindow methods ***/
  20014     HRESULT (STDMETHODCALLTYPE *Show)(
  20015         IModalWindow *This,
  20016         HWND hwndOwner);
  20017 
  20018     END_INTERFACE
  20019 } IModalWindowVtbl;
  20020 
  20021 interface IModalWindow {
  20022     CONST_VTBL IModalWindowVtbl* lpVtbl;
  20023 };
  20024 
  20025 #ifdef COBJMACROS
  20026 #ifndef WIDL_C_INLINE_WRAPPERS
  20027 /*** IUnknown methods ***/
  20028 #define IModalWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20029 #define IModalWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
  20030 #define IModalWindow_Release(This) (This)->lpVtbl->Release(This)
  20031 /*** IModalWindow methods ***/
  20032 #define IModalWindow_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
  20033 #else
  20034 /*** IUnknown methods ***/
  20035 static inline HRESULT IModalWindow_QueryInterface(IModalWindow* This,REFIID riid,void **ppvObject) {
  20036     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20037 }
  20038 static inline ULONG IModalWindow_AddRef(IModalWindow* This) {
  20039     return This->lpVtbl->AddRef(This);
  20040 }
  20041 static inline ULONG IModalWindow_Release(IModalWindow* This) {
  20042     return This->lpVtbl->Release(This);
  20043 }
  20044 /*** IModalWindow methods ***/
  20045 static inline HRESULT IModalWindow_Show(IModalWindow* This,HWND hwndOwner) {
  20046     return This->lpVtbl->Show(This,hwndOwner);
  20047 }
  20048 #endif
  20049 #endif
  20050 
  20051 #endif
  20052 
  20053 HRESULT STDMETHODCALLTYPE IModalWindow_RemoteShow_Proxy(
  20054     IModalWindow* This,
  20055     HWND hwndOwner);
  20056 void __RPC_STUB IModalWindow_RemoteShow_Stub(
  20057     IRpcStubBuffer* This,
  20058     IRpcChannelBuffer* pRpcChannelBuffer,
  20059     PRPC_MESSAGE pRpcMessage,
  20060     DWORD* pdwStubPhase);
  20061 HRESULT CALLBACK IModalWindow_Show_Proxy(
  20062     IModalWindow* This,
  20063     HWND hwndOwner);
  20064 HRESULT __RPC_STUB IModalWindow_Show_Stub(
  20065     IModalWindow* This,
  20066     HWND hwndOwner);
  20067 
  20068 #endif  /* __IModalWindow_INTERFACE_DEFINED__ */
  20069 
  20070 
  20071 #define PROPSTR_EXTENSIONCOMPLETIONSTATE L"ExtensionCompletionState"
  20072 
  20073 enum tagCDBURNINGEXTENSIONRET {
  20074     CDBE_RET_DEFAULT = 0x0,
  20075     CDBE_RET_DONTRUNOTHEREXTS = 0x1,
  20076     CDBE_RET_STOPWIZARD = 0x2
  20077 };
  20078 
  20079 #define SID_CDWizardHost IID_ICDBurnExt
  20080 
  20081 enum _CDBE_ACTIONS {
  20082     CDBE_TYPE_MUSIC = 0x1,
  20083     CDBE_TYPE_DATA = 0x2,
  20084     CDBE_TYPE_ALL = (int)0xffffffff
  20085 };
  20086 
  20087 typedef DWORD CDBE_ACTIONS;
  20088 
  20089 /*****************************************************************************
  20090  * ICDBurnExt interface
  20091  */
  20092 #ifndef __ICDBurnExt_INTERFACE_DEFINED__
  20093 #define __ICDBurnExt_INTERFACE_DEFINED__
  20094 
  20095 DEFINE_GUID(IID_ICDBurnExt, 0x2271dcca, 0x74fc, 0x4414, 0x8f,0xb7, 0xc5,0x6b,0x05,0xac,0xe2,0xd7);
  20096 #if defined(__cplusplus) && !defined(CINTERFACE)
  20097 MIDL_INTERFACE("2271dcca-74fc-4414-8fb7-c56b05ace2d7")
  20098 ICDBurnExt : public IUnknown
  20099 {
  20100     virtual HRESULT STDMETHODCALLTYPE GetSupportedActionTypes(
  20101         CDBE_ACTIONS *pdwActions) = 0;
  20102 
  20103 };
  20104 #ifdef __CRT_UUID_DECL
  20105 __CRT_UUID_DECL(ICDBurnExt, 0x2271dcca, 0x74fc, 0x4414, 0x8f,0xb7, 0xc5,0x6b,0x05,0xac,0xe2,0xd7)
  20106 #endif
  20107 #else
  20108 typedef struct ICDBurnExtVtbl {
  20109     BEGIN_INTERFACE
  20110 
  20111     /*** IUnknown methods ***/
  20112     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20113         ICDBurnExt *This,
  20114         REFIID riid,
  20115         void **ppvObject);
  20116 
  20117     ULONG (STDMETHODCALLTYPE *AddRef)(
  20118         ICDBurnExt *This);
  20119 
  20120     ULONG (STDMETHODCALLTYPE *Release)(
  20121         ICDBurnExt *This);
  20122 
  20123     /*** ICDBurnExt methods ***/
  20124     HRESULT (STDMETHODCALLTYPE *GetSupportedActionTypes)(
  20125         ICDBurnExt *This,
  20126         CDBE_ACTIONS *pdwActions);
  20127 
  20128     END_INTERFACE
  20129 } ICDBurnExtVtbl;
  20130 
  20131 interface ICDBurnExt {
  20132     CONST_VTBL ICDBurnExtVtbl* lpVtbl;
  20133 };
  20134 
  20135 #ifdef COBJMACROS
  20136 #ifndef WIDL_C_INLINE_WRAPPERS
  20137 /*** IUnknown methods ***/
  20138 #define ICDBurnExt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20139 #define ICDBurnExt_AddRef(This) (This)->lpVtbl->AddRef(This)
  20140 #define ICDBurnExt_Release(This) (This)->lpVtbl->Release(This)
  20141 /*** ICDBurnExt methods ***/
  20142 #define ICDBurnExt_GetSupportedActionTypes(This,pdwActions) (This)->lpVtbl->GetSupportedActionTypes(This,pdwActions)
  20143 #else
  20144 /*** IUnknown methods ***/
  20145 static inline HRESULT ICDBurnExt_QueryInterface(ICDBurnExt* This,REFIID riid,void **ppvObject) {
  20146     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20147 }
  20148 static inline ULONG ICDBurnExt_AddRef(ICDBurnExt* This) {
  20149     return This->lpVtbl->AddRef(This);
  20150 }
  20151 static inline ULONG ICDBurnExt_Release(ICDBurnExt* This) {
  20152     return This->lpVtbl->Release(This);
  20153 }
  20154 /*** ICDBurnExt methods ***/
  20155 static inline HRESULT ICDBurnExt_GetSupportedActionTypes(ICDBurnExt* This,CDBE_ACTIONS *pdwActions) {
  20156     return This->lpVtbl->GetSupportedActionTypes(This,pdwActions);
  20157 }
  20158 #endif
  20159 #endif
  20160 
  20161 #endif
  20162 
  20163 
  20164 #endif  /* __ICDBurnExt_INTERFACE_DEFINED__ */
  20165 
  20166 
  20167 /*****************************************************************************
  20168  * IContextMenuSite interface
  20169  */
  20170 #ifndef __IContextMenuSite_INTERFACE_DEFINED__
  20171 #define __IContextMenuSite_INTERFACE_DEFINED__
  20172 
  20173 DEFINE_GUID(IID_IContextMenuSite, 0x0811aebe, 0x0b87, 0x4c54, 0x9e,0x72, 0x54,0x8c,0xf6,0x49,0x01,0x6b);
  20174 #if defined(__cplusplus) && !defined(CINTERFACE)
  20175 MIDL_INTERFACE("0811aebe-0b87-4c54-9e72-548cf649016b")
  20176 IContextMenuSite : public IUnknown
  20177 {
  20178     virtual HRESULT STDMETHODCALLTYPE DoContextMenuPopup(
  20179         IUnknown *punkContextMenu,
  20180         UINT fFlags,
  20181         POINT pt) = 0;
  20182 
  20183 };
  20184 #ifdef __CRT_UUID_DECL
  20185 __CRT_UUID_DECL(IContextMenuSite, 0x0811aebe, 0x0b87, 0x4c54, 0x9e,0x72, 0x54,0x8c,0xf6,0x49,0x01,0x6b)
  20186 #endif
  20187 #else
  20188 typedef struct IContextMenuSiteVtbl {
  20189     BEGIN_INTERFACE
  20190 
  20191     /*** IUnknown methods ***/
  20192     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20193         IContextMenuSite *This,
  20194         REFIID riid,
  20195         void **ppvObject);
  20196 
  20197     ULONG (STDMETHODCALLTYPE *AddRef)(
  20198         IContextMenuSite *This);
  20199 
  20200     ULONG (STDMETHODCALLTYPE *Release)(
  20201         IContextMenuSite *This);
  20202 
  20203     /*** IContextMenuSite methods ***/
  20204     HRESULT (STDMETHODCALLTYPE *DoContextMenuPopup)(
  20205         IContextMenuSite *This,
  20206         IUnknown *punkContextMenu,
  20207         UINT fFlags,
  20208         POINT pt);
  20209 
  20210     END_INTERFACE
  20211 } IContextMenuSiteVtbl;
  20212 
  20213 interface IContextMenuSite {
  20214     CONST_VTBL IContextMenuSiteVtbl* lpVtbl;
  20215 };
  20216 
  20217 #ifdef COBJMACROS
  20218 #ifndef WIDL_C_INLINE_WRAPPERS
  20219 /*** IUnknown methods ***/
  20220 #define IContextMenuSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20221 #define IContextMenuSite_AddRef(This) (This)->lpVtbl->AddRef(This)
  20222 #define IContextMenuSite_Release(This) (This)->lpVtbl->Release(This)
  20223 /*** IContextMenuSite methods ***/
  20224 #define IContextMenuSite_DoContextMenuPopup(This,punkContextMenu,fFlags,pt) (This)->lpVtbl->DoContextMenuPopup(This,punkContextMenu,fFlags,pt)
  20225 #else
  20226 /*** IUnknown methods ***/
  20227 static inline HRESULT IContextMenuSite_QueryInterface(IContextMenuSite* This,REFIID riid,void **ppvObject) {
  20228     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20229 }
  20230 static inline ULONG IContextMenuSite_AddRef(IContextMenuSite* This) {
  20231     return This->lpVtbl->AddRef(This);
  20232 }
  20233 static inline ULONG IContextMenuSite_Release(IContextMenuSite* This) {
  20234     return This->lpVtbl->Release(This);
  20235 }
  20236 /*** IContextMenuSite methods ***/
  20237 static inline HRESULT IContextMenuSite_DoContextMenuPopup(IContextMenuSite* This,IUnknown *punkContextMenu,UINT fFlags,POINT pt) {
  20238     return This->lpVtbl->DoContextMenuPopup(This,punkContextMenu,fFlags,pt);
  20239 }
  20240 #endif
  20241 #endif
  20242 
  20243 #endif
  20244 
  20245 
  20246 #endif  /* __IContextMenuSite_INTERFACE_DEFINED__ */
  20247 
  20248 
  20249 /*****************************************************************************
  20250  * IEnumReadyCallback interface
  20251  */
  20252 #ifndef __IEnumReadyCallback_INTERFACE_DEFINED__
  20253 #define __IEnumReadyCallback_INTERFACE_DEFINED__
  20254 
  20255 DEFINE_GUID(IID_IEnumReadyCallback, 0x61e00d45, 0x8fff, 0x4e60, 0x92,0x4e, 0x65,0x37,0xb6,0x16,0x12,0xdd);
  20256 #if defined(__cplusplus) && !defined(CINTERFACE)
  20257 MIDL_INTERFACE("61e00d45-8fff-4e60-924e-6537b61612dd")
  20258 IEnumReadyCallback : public IUnknown
  20259 {
  20260     virtual HRESULT STDMETHODCALLTYPE EnumReady(
  20261         ) = 0;
  20262 
  20263 };
  20264 #ifdef __CRT_UUID_DECL
  20265 __CRT_UUID_DECL(IEnumReadyCallback, 0x61e00d45, 0x8fff, 0x4e60, 0x92,0x4e, 0x65,0x37,0xb6,0x16,0x12,0xdd)
  20266 #endif
  20267 #else
  20268 typedef struct IEnumReadyCallbackVtbl {
  20269     BEGIN_INTERFACE
  20270 
  20271     /*** IUnknown methods ***/
  20272     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20273         IEnumReadyCallback *This,
  20274         REFIID riid,
  20275         void **ppvObject);
  20276 
  20277     ULONG (STDMETHODCALLTYPE *AddRef)(
  20278         IEnumReadyCallback *This);
  20279 
  20280     ULONG (STDMETHODCALLTYPE *Release)(
  20281         IEnumReadyCallback *This);
  20282 
  20283     /*** IEnumReadyCallback methods ***/
  20284     HRESULT (STDMETHODCALLTYPE *EnumReady)(
  20285         IEnumReadyCallback *This);
  20286 
  20287     END_INTERFACE
  20288 } IEnumReadyCallbackVtbl;
  20289 
  20290 interface IEnumReadyCallback {
  20291     CONST_VTBL IEnumReadyCallbackVtbl* lpVtbl;
  20292 };
  20293 
  20294 #ifdef COBJMACROS
  20295 #ifndef WIDL_C_INLINE_WRAPPERS
  20296 /*** IUnknown methods ***/
  20297 #define IEnumReadyCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20298 #define IEnumReadyCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
  20299 #define IEnumReadyCallback_Release(This) (This)->lpVtbl->Release(This)
  20300 /*** IEnumReadyCallback methods ***/
  20301 #define IEnumReadyCallback_EnumReady(This) (This)->lpVtbl->EnumReady(This)
  20302 #else
  20303 /*** IUnknown methods ***/
  20304 static inline HRESULT IEnumReadyCallback_QueryInterface(IEnumReadyCallback* This,REFIID riid,void **ppvObject) {
  20305     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20306 }
  20307 static inline ULONG IEnumReadyCallback_AddRef(IEnumReadyCallback* This) {
  20308     return This->lpVtbl->AddRef(This);
  20309 }
  20310 static inline ULONG IEnumReadyCallback_Release(IEnumReadyCallback* This) {
  20311     return This->lpVtbl->Release(This);
  20312 }
  20313 /*** IEnumReadyCallback methods ***/
  20314 static inline HRESULT IEnumReadyCallback_EnumReady(IEnumReadyCallback* This) {
  20315     return This->lpVtbl->EnumReady(This);
  20316 }
  20317 #endif
  20318 #endif
  20319 
  20320 #endif
  20321 
  20322 
  20323 #endif  /* __IEnumReadyCallback_INTERFACE_DEFINED__ */
  20324 
  20325 
  20326 /*****************************************************************************
  20327  * IEnumerableView interface
  20328  */
  20329 #ifndef __IEnumerableView_INTERFACE_DEFINED__
  20330 #define __IEnumerableView_INTERFACE_DEFINED__
  20331 
  20332 DEFINE_GUID(IID_IEnumerableView, 0x8c8bf236, 0x1aec, 0x495f, 0x98,0x94, 0x91,0xd5,0x7c,0x3c,0x68,0x6f);
  20333 #if defined(__cplusplus) && !defined(CINTERFACE)
  20334 MIDL_INTERFACE("8c8bf236-1aec-495f-9894-91d57c3c686f")
  20335 IEnumerableView : public IUnknown
  20336 {
  20337     virtual HRESULT STDMETHODCALLTYPE SetEnumReadyCallback(
  20338         IEnumReadyCallback *percb) = 0;
  20339 
  20340     virtual HRESULT STDMETHODCALLTYPE CreateEnumIDListFromContents(
  20341         PCIDLIST_ABSOLUTE pidlFolder,
  20342         DWORD dwEnumFlags,
  20343         IEnumIDList **ppEnumIDList) = 0;
  20344 
  20345 };
  20346 #ifdef __CRT_UUID_DECL
  20347 __CRT_UUID_DECL(IEnumerableView, 0x8c8bf236, 0x1aec, 0x495f, 0x98,0x94, 0x91,0xd5,0x7c,0x3c,0x68,0x6f)
  20348 #endif
  20349 #else
  20350 typedef struct IEnumerableViewVtbl {
  20351     BEGIN_INTERFACE
  20352 
  20353     /*** IUnknown methods ***/
  20354     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20355         IEnumerableView *This,
  20356         REFIID riid,
  20357         void **ppvObject);
  20358 
  20359     ULONG (STDMETHODCALLTYPE *AddRef)(
  20360         IEnumerableView *This);
  20361 
  20362     ULONG (STDMETHODCALLTYPE *Release)(
  20363         IEnumerableView *This);
  20364 
  20365     /*** IEnumerableView methods ***/
  20366     HRESULT (STDMETHODCALLTYPE *SetEnumReadyCallback)(
  20367         IEnumerableView *This,
  20368         IEnumReadyCallback *percb);
  20369 
  20370     HRESULT (STDMETHODCALLTYPE *CreateEnumIDListFromContents)(
  20371         IEnumerableView *This,
  20372         PCIDLIST_ABSOLUTE pidlFolder,
  20373         DWORD dwEnumFlags,
  20374         IEnumIDList **ppEnumIDList);
  20375 
  20376     END_INTERFACE
  20377 } IEnumerableViewVtbl;
  20378 
  20379 interface IEnumerableView {
  20380     CONST_VTBL IEnumerableViewVtbl* lpVtbl;
  20381 };
  20382 
  20383 #ifdef COBJMACROS
  20384 #ifndef WIDL_C_INLINE_WRAPPERS
  20385 /*** IUnknown methods ***/
  20386 #define IEnumerableView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20387 #define IEnumerableView_AddRef(This) (This)->lpVtbl->AddRef(This)
  20388 #define IEnumerableView_Release(This) (This)->lpVtbl->Release(This)
  20389 /*** IEnumerableView methods ***/
  20390 #define IEnumerableView_SetEnumReadyCallback(This,percb) (This)->lpVtbl->SetEnumReadyCallback(This,percb)
  20391 #define IEnumerableView_CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList) (This)->lpVtbl->CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList)
  20392 #else
  20393 /*** IUnknown methods ***/
  20394 static inline HRESULT IEnumerableView_QueryInterface(IEnumerableView* This,REFIID riid,void **ppvObject) {
  20395     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20396 }
  20397 static inline ULONG IEnumerableView_AddRef(IEnumerableView* This) {
  20398     return This->lpVtbl->AddRef(This);
  20399 }
  20400 static inline ULONG IEnumerableView_Release(IEnumerableView* This) {
  20401     return This->lpVtbl->Release(This);
  20402 }
  20403 /*** IEnumerableView methods ***/
  20404 static inline HRESULT IEnumerableView_SetEnumReadyCallback(IEnumerableView* This,IEnumReadyCallback *percb) {
  20405     return This->lpVtbl->SetEnumReadyCallback(This,percb);
  20406 }
  20407 static inline HRESULT IEnumerableView_CreateEnumIDListFromContents(IEnumerableView* This,PCIDLIST_ABSOLUTE pidlFolder,DWORD dwEnumFlags,IEnumIDList **ppEnumIDList) {
  20408     return This->lpVtbl->CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList);
  20409 }
  20410 #endif
  20411 #endif
  20412 
  20413 #endif
  20414 
  20415 
  20416 #endif  /* __IEnumerableView_INTERFACE_DEFINED__ */
  20417 
  20418 
  20419 #define SID_EnumerableView IID_IEnumerableView
  20420 
  20421 /*****************************************************************************
  20422  * IInsertItem interface
  20423  */
  20424 #ifndef __IInsertItem_INTERFACE_DEFINED__
  20425 #define __IInsertItem_INTERFACE_DEFINED__
  20426 
  20427 DEFINE_GUID(IID_IInsertItem, 0xd2b57227, 0x3d23, 0x4b95, 0x93,0xc0, 0x49,0x2b,0xd4,0x54,0xc3,0x56);
  20428 #if defined(__cplusplus) && !defined(CINTERFACE)
  20429 MIDL_INTERFACE("d2b57227-3d23-4b95-93c0-492bd454c356")
  20430 IInsertItem : public IUnknown
  20431 {
  20432     virtual HRESULT STDMETHODCALLTYPE InsertItem(
  20433         PCUIDLIST_RELATIVE pidl) = 0;
  20434 
  20435 };
  20436 #ifdef __CRT_UUID_DECL
  20437 __CRT_UUID_DECL(IInsertItem, 0xd2b57227, 0x3d23, 0x4b95, 0x93,0xc0, 0x49,0x2b,0xd4,0x54,0xc3,0x56)
  20438 #endif
  20439 #else
  20440 typedef struct IInsertItemVtbl {
  20441     BEGIN_INTERFACE
  20442 
  20443     /*** IUnknown methods ***/
  20444     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20445         IInsertItem *This,
  20446         REFIID riid,
  20447         void **ppvObject);
  20448 
  20449     ULONG (STDMETHODCALLTYPE *AddRef)(
  20450         IInsertItem *This);
  20451 
  20452     ULONG (STDMETHODCALLTYPE *Release)(
  20453         IInsertItem *This);
  20454 
  20455     /*** IInsertItem methods ***/
  20456     HRESULT (STDMETHODCALLTYPE *InsertItem)(
  20457         IInsertItem *This,
  20458         PCUIDLIST_RELATIVE pidl);
  20459 
  20460     END_INTERFACE
  20461 } IInsertItemVtbl;
  20462 
  20463 interface IInsertItem {
  20464     CONST_VTBL IInsertItemVtbl* lpVtbl;
  20465 };
  20466 
  20467 #ifdef COBJMACROS
  20468 #ifndef WIDL_C_INLINE_WRAPPERS
  20469 /*** IUnknown methods ***/
  20470 #define IInsertItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20471 #define IInsertItem_AddRef(This) (This)->lpVtbl->AddRef(This)
  20472 #define IInsertItem_Release(This) (This)->lpVtbl->Release(This)
  20473 /*** IInsertItem methods ***/
  20474 #define IInsertItem_InsertItem(This,pidl) (This)->lpVtbl->InsertItem(This,pidl)
  20475 #else
  20476 /*** IUnknown methods ***/
  20477 static inline HRESULT IInsertItem_QueryInterface(IInsertItem* This,REFIID riid,void **ppvObject) {
  20478     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20479 }
  20480 static inline ULONG IInsertItem_AddRef(IInsertItem* This) {
  20481     return This->lpVtbl->AddRef(This);
  20482 }
  20483 static inline ULONG IInsertItem_Release(IInsertItem* This) {
  20484     return This->lpVtbl->Release(This);
  20485 }
  20486 /*** IInsertItem methods ***/
  20487 static inline HRESULT IInsertItem_InsertItem(IInsertItem* This,PCUIDLIST_RELATIVE pidl) {
  20488     return This->lpVtbl->InsertItem(This,pidl);
  20489 }
  20490 #endif
  20491 #endif
  20492 
  20493 #endif
  20494 
  20495 
  20496 #endif  /* __IInsertItem_INTERFACE_DEFINED__ */
  20497 
  20498 
  20499 /*****************************************************************************
  20500  * IMenuBand interface
  20501  */
  20502 #ifndef __IMenuBand_INTERFACE_DEFINED__
  20503 #define __IMenuBand_INTERFACE_DEFINED__
  20504 
  20505 enum tagMENUBANDHANDLERCID {
  20506     MBHANDCID_PIDLSELECT = 0
  20507 };
  20508 
  20509 DEFINE_GUID(IID_IMenuBand, 0x568804cd, 0xcbd7, 0x11d0, 0x98,0x16, 0x00,0xc0,0x4f,0xd9,0x19,0x72);
  20510 #if defined(__cplusplus) && !defined(CINTERFACE)
  20511 MIDL_INTERFACE("568804cd-cbd7-11d0-9816-00c04fd91972")
  20512 IMenuBand : public IUnknown
  20513 {
  20514     virtual HRESULT STDMETHODCALLTYPE IsMenuMessage(
  20515         MSG *pmsg) = 0;
  20516 
  20517     virtual HRESULT STDMETHODCALLTYPE TranslateMenuMessage(
  20518         MSG *pmsg,
  20519         LRESULT *plRet) = 0;
  20520 
  20521 };
  20522 #ifdef __CRT_UUID_DECL
  20523 __CRT_UUID_DECL(IMenuBand, 0x568804cd, 0xcbd7, 0x11d0, 0x98,0x16, 0x00,0xc0,0x4f,0xd9,0x19,0x72)
  20524 #endif
  20525 #else
  20526 typedef struct IMenuBandVtbl {
  20527     BEGIN_INTERFACE
  20528 
  20529     /*** IUnknown methods ***/
  20530     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20531         IMenuBand *This,
  20532         REFIID riid,
  20533         void **ppvObject);
  20534 
  20535     ULONG (STDMETHODCALLTYPE *AddRef)(
  20536         IMenuBand *This);
  20537 
  20538     ULONG (STDMETHODCALLTYPE *Release)(
  20539         IMenuBand *This);
  20540 
  20541     /*** IMenuBand methods ***/
  20542     HRESULT (STDMETHODCALLTYPE *IsMenuMessage)(
  20543         IMenuBand *This,
  20544         MSG *pmsg);
  20545 
  20546     HRESULT (STDMETHODCALLTYPE *TranslateMenuMessage)(
  20547         IMenuBand *This,
  20548         MSG *pmsg,
  20549         LRESULT *plRet);
  20550 
  20551     END_INTERFACE
  20552 } IMenuBandVtbl;
  20553 
  20554 interface IMenuBand {
  20555     CONST_VTBL IMenuBandVtbl* lpVtbl;
  20556 };
  20557 
  20558 #ifdef COBJMACROS
  20559 #ifndef WIDL_C_INLINE_WRAPPERS
  20560 /*** IUnknown methods ***/
  20561 #define IMenuBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20562 #define IMenuBand_AddRef(This) (This)->lpVtbl->AddRef(This)
  20563 #define IMenuBand_Release(This) (This)->lpVtbl->Release(This)
  20564 /*** IMenuBand methods ***/
  20565 #define IMenuBand_IsMenuMessage(This,pmsg) (This)->lpVtbl->IsMenuMessage(This,pmsg)
  20566 #define IMenuBand_TranslateMenuMessage(This,pmsg,plRet) (This)->lpVtbl->TranslateMenuMessage(This,pmsg,plRet)
  20567 #else
  20568 /*** IUnknown methods ***/
  20569 static inline HRESULT IMenuBand_QueryInterface(IMenuBand* This,REFIID riid,void **ppvObject) {
  20570     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20571 }
  20572 static inline ULONG IMenuBand_AddRef(IMenuBand* This) {
  20573     return This->lpVtbl->AddRef(This);
  20574 }
  20575 static inline ULONG IMenuBand_Release(IMenuBand* This) {
  20576     return This->lpVtbl->Release(This);
  20577 }
  20578 /*** IMenuBand methods ***/
  20579 static inline HRESULT IMenuBand_IsMenuMessage(IMenuBand* This,MSG *pmsg) {
  20580     return This->lpVtbl->IsMenuMessage(This,pmsg);
  20581 }
  20582 static inline HRESULT IMenuBand_TranslateMenuMessage(IMenuBand* This,MSG *pmsg,LRESULT *plRet) {
  20583     return This->lpVtbl->TranslateMenuMessage(This,pmsg,plRet);
  20584 }
  20585 #endif
  20586 #endif
  20587 
  20588 #endif
  20589 
  20590 
  20591 #endif  /* __IMenuBand_INTERFACE_DEFINED__ */
  20592 
  20593 
  20594 /*****************************************************************************
  20595  * IFolderBandPriv interface
  20596  */
  20597 #ifndef __IFolderBandPriv_INTERFACE_DEFINED__
  20598 #define __IFolderBandPriv_INTERFACE_DEFINED__
  20599 
  20600 DEFINE_GUID(IID_IFolderBandPriv, 0x47c01f95, 0xe185, 0x412c, 0xb5,0xc5, 0x4f,0x27,0xdf,0x96,0x5a,0xea);
  20601 #if defined(__cplusplus) && !defined(CINTERFACE)
  20602 MIDL_INTERFACE("47c01f95-e185-412c-b5c5-4f27df965aea")
  20603 IFolderBandPriv : public IUnknown
  20604 {
  20605     virtual HRESULT STDMETHODCALLTYPE SetCascade(
  20606         WINBOOL fCascade) = 0;
  20607 
  20608     virtual HRESULT STDMETHODCALLTYPE SetAccelerators(
  20609         WINBOOL fAccelerators) = 0;
  20610 
  20611     virtual HRESULT STDMETHODCALLTYPE SetNoIcons(
  20612         WINBOOL fNoIcons) = 0;
  20613 
  20614     virtual HRESULT STDMETHODCALLTYPE SetNoText(
  20615         WINBOOL fNoText) = 0;
  20616 
  20617 };
  20618 #ifdef __CRT_UUID_DECL
  20619 __CRT_UUID_DECL(IFolderBandPriv, 0x47c01f95, 0xe185, 0x412c, 0xb5,0xc5, 0x4f,0x27,0xdf,0x96,0x5a,0xea)
  20620 #endif
  20621 #else
  20622 typedef struct IFolderBandPrivVtbl {
  20623     BEGIN_INTERFACE
  20624 
  20625     /*** IUnknown methods ***/
  20626     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20627         IFolderBandPriv *This,
  20628         REFIID riid,
  20629         void **ppvObject);
  20630 
  20631     ULONG (STDMETHODCALLTYPE *AddRef)(
  20632         IFolderBandPriv *This);
  20633 
  20634     ULONG (STDMETHODCALLTYPE *Release)(
  20635         IFolderBandPriv *This);
  20636 
  20637     /*** IFolderBandPriv methods ***/
  20638     HRESULT (STDMETHODCALLTYPE *SetCascade)(
  20639         IFolderBandPriv *This,
  20640         WINBOOL fCascade);
  20641 
  20642     HRESULT (STDMETHODCALLTYPE *SetAccelerators)(
  20643         IFolderBandPriv *This,
  20644         WINBOOL fAccelerators);
  20645 
  20646     HRESULT (STDMETHODCALLTYPE *SetNoIcons)(
  20647         IFolderBandPriv *This,
  20648         WINBOOL fNoIcons);
  20649 
  20650     HRESULT (STDMETHODCALLTYPE *SetNoText)(
  20651         IFolderBandPriv *This,
  20652         WINBOOL fNoText);
  20653 
  20654     END_INTERFACE
  20655 } IFolderBandPrivVtbl;
  20656 
  20657 interface IFolderBandPriv {
  20658     CONST_VTBL IFolderBandPrivVtbl* lpVtbl;
  20659 };
  20660 
  20661 #ifdef COBJMACROS
  20662 #ifndef WIDL_C_INLINE_WRAPPERS
  20663 /*** IUnknown methods ***/
  20664 #define IFolderBandPriv_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20665 #define IFolderBandPriv_AddRef(This) (This)->lpVtbl->AddRef(This)
  20666 #define IFolderBandPriv_Release(This) (This)->lpVtbl->Release(This)
  20667 /*** IFolderBandPriv methods ***/
  20668 #define IFolderBandPriv_SetCascade(This,fCascade) (This)->lpVtbl->SetCascade(This,fCascade)
  20669 #define IFolderBandPriv_SetAccelerators(This,fAccelerators) (This)->lpVtbl->SetAccelerators(This,fAccelerators)
  20670 #define IFolderBandPriv_SetNoIcons(This,fNoIcons) (This)->lpVtbl->SetNoIcons(This,fNoIcons)
  20671 #define IFolderBandPriv_SetNoText(This,fNoText) (This)->lpVtbl->SetNoText(This,fNoText)
  20672 #else
  20673 /*** IUnknown methods ***/
  20674 static inline HRESULT IFolderBandPriv_QueryInterface(IFolderBandPriv* This,REFIID riid,void **ppvObject) {
  20675     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20676 }
  20677 static inline ULONG IFolderBandPriv_AddRef(IFolderBandPriv* This) {
  20678     return This->lpVtbl->AddRef(This);
  20679 }
  20680 static inline ULONG IFolderBandPriv_Release(IFolderBandPriv* This) {
  20681     return This->lpVtbl->Release(This);
  20682 }
  20683 /*** IFolderBandPriv methods ***/
  20684 static inline HRESULT IFolderBandPriv_SetCascade(IFolderBandPriv* This,WINBOOL fCascade) {
  20685     return This->lpVtbl->SetCascade(This,fCascade);
  20686 }
  20687 static inline HRESULT IFolderBandPriv_SetAccelerators(IFolderBandPriv* This,WINBOOL fAccelerators) {
  20688     return This->lpVtbl->SetAccelerators(This,fAccelerators);
  20689 }
  20690 static inline HRESULT IFolderBandPriv_SetNoIcons(IFolderBandPriv* This,WINBOOL fNoIcons) {
  20691     return This->lpVtbl->SetNoIcons(This,fNoIcons);
  20692 }
  20693 static inline HRESULT IFolderBandPriv_SetNoText(IFolderBandPriv* This,WINBOOL fNoText) {
  20694     return This->lpVtbl->SetNoText(This,fNoText);
  20695 }
  20696 #endif
  20697 #endif
  20698 
  20699 #endif
  20700 
  20701 
  20702 #endif  /* __IFolderBandPriv_INTERFACE_DEFINED__ */
  20703 
  20704 
  20705 /*****************************************************************************
  20706  * IRegTreeItem interface
  20707  */
  20708 #ifndef __IRegTreeItem_INTERFACE_DEFINED__
  20709 #define __IRegTreeItem_INTERFACE_DEFINED__
  20710 
  20711 DEFINE_GUID(IID_IRegTreeItem, 0xa9521922, 0x0812, 0x4d44, 0x9e,0xc3, 0x7f,0xd3,0x8c,0x72,0x6f,0x3d);
  20712 #if defined(__cplusplus) && !defined(CINTERFACE)
  20713 MIDL_INTERFACE("a9521922-0812-4d44-9ec3-7fd38c726f3d")
  20714 IRegTreeItem : public IUnknown
  20715 {
  20716     virtual HRESULT STDMETHODCALLTYPE GetCheckState(
  20717         WINBOOL *pbCheck) = 0;
  20718 
  20719     virtual HRESULT STDMETHODCALLTYPE SetCheckState(
  20720         WINBOOL bCheck) = 0;
  20721 
  20722 };
  20723 #ifdef __CRT_UUID_DECL
  20724 __CRT_UUID_DECL(IRegTreeItem, 0xa9521922, 0x0812, 0x4d44, 0x9e,0xc3, 0x7f,0xd3,0x8c,0x72,0x6f,0x3d)
  20725 #endif
  20726 #else
  20727 typedef struct IRegTreeItemVtbl {
  20728     BEGIN_INTERFACE
  20729 
  20730     /*** IUnknown methods ***/
  20731     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20732         IRegTreeItem *This,
  20733         REFIID riid,
  20734         void **ppvObject);
  20735 
  20736     ULONG (STDMETHODCALLTYPE *AddRef)(
  20737         IRegTreeItem *This);
  20738 
  20739     ULONG (STDMETHODCALLTYPE *Release)(
  20740         IRegTreeItem *This);
  20741 
  20742     /*** IRegTreeItem methods ***/
  20743     HRESULT (STDMETHODCALLTYPE *GetCheckState)(
  20744         IRegTreeItem *This,
  20745         WINBOOL *pbCheck);
  20746 
  20747     HRESULT (STDMETHODCALLTYPE *SetCheckState)(
  20748         IRegTreeItem *This,
  20749         WINBOOL bCheck);
  20750 
  20751     END_INTERFACE
  20752 } IRegTreeItemVtbl;
  20753 
  20754 interface IRegTreeItem {
  20755     CONST_VTBL IRegTreeItemVtbl* lpVtbl;
  20756 };
  20757 
  20758 #ifdef COBJMACROS
  20759 #ifndef WIDL_C_INLINE_WRAPPERS
  20760 /*** IUnknown methods ***/
  20761 #define IRegTreeItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20762 #define IRegTreeItem_AddRef(This) (This)->lpVtbl->AddRef(This)
  20763 #define IRegTreeItem_Release(This) (This)->lpVtbl->Release(This)
  20764 /*** IRegTreeItem methods ***/
  20765 #define IRegTreeItem_GetCheckState(This,pbCheck) (This)->lpVtbl->GetCheckState(This,pbCheck)
  20766 #define IRegTreeItem_SetCheckState(This,bCheck) (This)->lpVtbl->SetCheckState(This,bCheck)
  20767 #else
  20768 /*** IUnknown methods ***/
  20769 static inline HRESULT IRegTreeItem_QueryInterface(IRegTreeItem* This,REFIID riid,void **ppvObject) {
  20770     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20771 }
  20772 static inline ULONG IRegTreeItem_AddRef(IRegTreeItem* This) {
  20773     return This->lpVtbl->AddRef(This);
  20774 }
  20775 static inline ULONG IRegTreeItem_Release(IRegTreeItem* This) {
  20776     return This->lpVtbl->Release(This);
  20777 }
  20778 /*** IRegTreeItem methods ***/
  20779 static inline HRESULT IRegTreeItem_GetCheckState(IRegTreeItem* This,WINBOOL *pbCheck) {
  20780     return This->lpVtbl->GetCheckState(This,pbCheck);
  20781 }
  20782 static inline HRESULT IRegTreeItem_SetCheckState(IRegTreeItem* This,WINBOOL bCheck) {
  20783     return This->lpVtbl->SetCheckState(This,bCheck);
  20784 }
  20785 #endif
  20786 #endif
  20787 
  20788 #endif
  20789 
  20790 
  20791 #endif  /* __IRegTreeItem_INTERFACE_DEFINED__ */
  20792 
  20793 
  20794 /*****************************************************************************
  20795  * IImageRecompress interface
  20796  */
  20797 #ifndef __IImageRecompress_INTERFACE_DEFINED__
  20798 #define __IImageRecompress_INTERFACE_DEFINED__
  20799 
  20800 DEFINE_GUID(IID_IImageRecompress, 0x505f1513, 0x6b3e, 0x4892, 0xa2,0x72, 0x59,0xf8,0x88,0x9a,0x4d,0x3e);
  20801 #if defined(__cplusplus) && !defined(CINTERFACE)
  20802 MIDL_INTERFACE("505f1513-6b3e-4892-a272-59f8889a4d3e")
  20803 IImageRecompress : public IUnknown
  20804 {
  20805     virtual HRESULT STDMETHODCALLTYPE RecompressImage(
  20806         IShellItem *psi,
  20807         int cx,
  20808         int cy,
  20809         int iQuality,
  20810         IStorage *pstg,
  20811         IStream **ppstrmOut) = 0;
  20812 
  20813 };
  20814 #ifdef __CRT_UUID_DECL
  20815 __CRT_UUID_DECL(IImageRecompress, 0x505f1513, 0x6b3e, 0x4892, 0xa2,0x72, 0x59,0xf8,0x88,0x9a,0x4d,0x3e)
  20816 #endif
  20817 #else
  20818 typedef struct IImageRecompressVtbl {
  20819     BEGIN_INTERFACE
  20820 
  20821     /*** IUnknown methods ***/
  20822     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20823         IImageRecompress *This,
  20824         REFIID riid,
  20825         void **ppvObject);
  20826 
  20827     ULONG (STDMETHODCALLTYPE *AddRef)(
  20828         IImageRecompress *This);
  20829 
  20830     ULONG (STDMETHODCALLTYPE *Release)(
  20831         IImageRecompress *This);
  20832 
  20833     /*** IImageRecompress methods ***/
  20834     HRESULT (STDMETHODCALLTYPE *RecompressImage)(
  20835         IImageRecompress *This,
  20836         IShellItem *psi,
  20837         int cx,
  20838         int cy,
  20839         int iQuality,
  20840         IStorage *pstg,
  20841         IStream **ppstrmOut);
  20842 
  20843     END_INTERFACE
  20844 } IImageRecompressVtbl;
  20845 
  20846 interface IImageRecompress {
  20847     CONST_VTBL IImageRecompressVtbl* lpVtbl;
  20848 };
  20849 
  20850 #ifdef COBJMACROS
  20851 #ifndef WIDL_C_INLINE_WRAPPERS
  20852 /*** IUnknown methods ***/
  20853 #define IImageRecompress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20854 #define IImageRecompress_AddRef(This) (This)->lpVtbl->AddRef(This)
  20855 #define IImageRecompress_Release(This) (This)->lpVtbl->Release(This)
  20856 /*** IImageRecompress methods ***/
  20857 #define IImageRecompress_RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut) (This)->lpVtbl->RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut)
  20858 #else
  20859 /*** IUnknown methods ***/
  20860 static inline HRESULT IImageRecompress_QueryInterface(IImageRecompress* This,REFIID riid,void **ppvObject) {
  20861     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20862 }
  20863 static inline ULONG IImageRecompress_AddRef(IImageRecompress* This) {
  20864     return This->lpVtbl->AddRef(This);
  20865 }
  20866 static inline ULONG IImageRecompress_Release(IImageRecompress* This) {
  20867     return This->lpVtbl->Release(This);
  20868 }
  20869 /*** IImageRecompress methods ***/
  20870 static inline HRESULT IImageRecompress_RecompressImage(IImageRecompress* This,IShellItem *psi,int cx,int cy,int iQuality,IStorage *pstg,IStream **ppstrmOut) {
  20871     return This->lpVtbl->RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut);
  20872 }
  20873 #endif
  20874 #endif
  20875 
  20876 #endif
  20877 
  20878 
  20879 #endif  /* __IImageRecompress_INTERFACE_DEFINED__ */
  20880 
  20881 
  20882 #if _WIN32_IE >= _WIN32_IE_IE60
  20883 /*****************************************************************************
  20884  * IDeskBar interface
  20885  */
  20886 #ifndef __IDeskBar_INTERFACE_DEFINED__
  20887 #define __IDeskBar_INTERFACE_DEFINED__
  20888 
  20889 DEFINE_GUID(IID_IDeskBar, 0xeb0fe173, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac);
  20890 #if defined(__cplusplus) && !defined(CINTERFACE)
  20891 MIDL_INTERFACE("eb0fe173-1a3a-11d0-89b3-00a0c90a90ac")
  20892 IDeskBar : public IOleWindow
  20893 {
  20894     virtual HRESULT STDMETHODCALLTYPE SetClient(
  20895         IUnknown *punkClient) = 0;
  20896 
  20897     virtual HRESULT STDMETHODCALLTYPE GetClient(
  20898         IUnknown **ppunkClient) = 0;
  20899 
  20900     virtual HRESULT STDMETHODCALLTYPE OnPosRectChangeDB(
  20901         RECT *prc) = 0;
  20902 
  20903 };
  20904 #ifdef __CRT_UUID_DECL
  20905 __CRT_UUID_DECL(IDeskBar, 0xeb0fe173, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac)
  20906 #endif
  20907 #else
  20908 typedef struct IDeskBarVtbl {
  20909     BEGIN_INTERFACE
  20910 
  20911     /*** IUnknown methods ***/
  20912     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  20913         IDeskBar *This,
  20914         REFIID riid,
  20915         void **ppvObject);
  20916 
  20917     ULONG (STDMETHODCALLTYPE *AddRef)(
  20918         IDeskBar *This);
  20919 
  20920     ULONG (STDMETHODCALLTYPE *Release)(
  20921         IDeskBar *This);
  20922 
  20923     /*** IOleWindow methods ***/
  20924     HRESULT (STDMETHODCALLTYPE *GetWindow)(
  20925         IDeskBar *This,
  20926         HWND *phwnd);
  20927 
  20928     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
  20929         IDeskBar *This,
  20930         WINBOOL fEnterMode);
  20931 
  20932     /*** IDeskBar methods ***/
  20933     HRESULT (STDMETHODCALLTYPE *SetClient)(
  20934         IDeskBar *This,
  20935         IUnknown *punkClient);
  20936 
  20937     HRESULT (STDMETHODCALLTYPE *GetClient)(
  20938         IDeskBar *This,
  20939         IUnknown **ppunkClient);
  20940 
  20941     HRESULT (STDMETHODCALLTYPE *OnPosRectChangeDB)(
  20942         IDeskBar *This,
  20943         RECT *prc);
  20944 
  20945     END_INTERFACE
  20946 } IDeskBarVtbl;
  20947 
  20948 interface IDeskBar {
  20949     CONST_VTBL IDeskBarVtbl* lpVtbl;
  20950 };
  20951 
  20952 #ifdef COBJMACROS
  20953 #ifndef WIDL_C_INLINE_WRAPPERS
  20954 /*** IUnknown methods ***/
  20955 #define IDeskBar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  20956 #define IDeskBar_AddRef(This) (This)->lpVtbl->AddRef(This)
  20957 #define IDeskBar_Release(This) (This)->lpVtbl->Release(This)
  20958 /*** IOleWindow methods ***/
  20959 #define IDeskBar_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
  20960 #define IDeskBar_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
  20961 /*** IDeskBar methods ***/
  20962 #define IDeskBar_SetClient(This,punkClient) (This)->lpVtbl->SetClient(This,punkClient)
  20963 #define IDeskBar_GetClient(This,ppunkClient) (This)->lpVtbl->GetClient(This,ppunkClient)
  20964 #define IDeskBar_OnPosRectChangeDB(This,prc) (This)->lpVtbl->OnPosRectChangeDB(This,prc)
  20965 #else
  20966 /*** IUnknown methods ***/
  20967 static inline HRESULT IDeskBar_QueryInterface(IDeskBar* This,REFIID riid,void **ppvObject) {
  20968     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  20969 }
  20970 static inline ULONG IDeskBar_AddRef(IDeskBar* This) {
  20971     return This->lpVtbl->AddRef(This);
  20972 }
  20973 static inline ULONG IDeskBar_Release(IDeskBar* This) {
  20974     return This->lpVtbl->Release(This);
  20975 }
  20976 /*** IOleWindow methods ***/
  20977 static inline HRESULT IDeskBar_GetWindow(IDeskBar* This,HWND *phwnd) {
  20978     return This->lpVtbl->GetWindow(This,phwnd);
  20979 }
  20980 static inline HRESULT IDeskBar_ContextSensitiveHelp(IDeskBar* This,WINBOOL fEnterMode) {
  20981     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
  20982 }
  20983 /*** IDeskBar methods ***/
  20984 static inline HRESULT IDeskBar_SetClient(IDeskBar* This,IUnknown *punkClient) {
  20985     return This->lpVtbl->SetClient(This,punkClient);
  20986 }
  20987 static inline HRESULT IDeskBar_GetClient(IDeskBar* This,IUnknown **ppunkClient) {
  20988     return This->lpVtbl->GetClient(This,ppunkClient);
  20989 }
  20990 static inline HRESULT IDeskBar_OnPosRectChangeDB(IDeskBar* This,RECT *prc) {
  20991     return This->lpVtbl->OnPosRectChangeDB(This,prc);
  20992 }
  20993 #endif
  20994 #endif
  20995 
  20996 #endif
  20997 
  20998 
  20999 #endif  /* __IDeskBar_INTERFACE_DEFINED__ */
  21000 
  21001 
  21002 /*****************************************************************************
  21003  * IMenuPopup interface
  21004  */
  21005 #ifndef __IMenuPopup_INTERFACE_DEFINED__
  21006 #define __IMenuPopup_INTERFACE_DEFINED__
  21007 
  21008 enum tagMENUPOPUPSELECT {
  21009     MPOS_EXECUTE = 0,
  21010     MPOS_FULLCANCEL = 1,
  21011     MPOS_CANCELLEVEL = 2,
  21012     MPOS_SELECTLEFT = 3,
  21013     MPOS_SELECTRIGHT = 4,
  21014     MPOS_CHILDTRACKING = 5
  21015 };
  21016 
  21017 enum tagMENUPOPUPPOPUPFLAGS {
  21018     MPPF_SETFOCUS = 0x1,
  21019     MPPF_INITIALSELECT = 0x2,
  21020     MPPF_NOANIMATE = 0x4,
  21021     MPPF_KEYBOARD = 0x10,
  21022     MPPF_REPOSITION = 0x20,
  21023     MPPF_FORCEZORDER = 0x40,
  21024     MPPF_FINALSELECT = 0x80,
  21025     MPPF_TOP = 0x20000000,
  21026     MPPF_LEFT = 0x40000000,
  21027     MPPF_RIGHT = 0x60000000,
  21028     MPPF_BOTTOM = (int)0x80000000,
  21029     MPPF_POS_MASK = (int)0xe0000000,
  21030     MPPF_ALIGN_LEFT = 0x2000000,
  21031     MPPF_ALIGN_RIGHT = 0x4000000
  21032 };
  21033 
  21034 typedef int MP_POPUPFLAGS;
  21035 
  21036 DEFINE_GUID(IID_IMenuPopup, 0xd1e7afeb, 0x6a2e, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4);
  21037 #if defined(__cplusplus) && !defined(CINTERFACE)
  21038 MIDL_INTERFACE("d1e7afeb-6a2e-11d0-8c78-00c04fd918b4")
  21039 IMenuPopup : public IDeskBar
  21040 {
  21041     virtual HRESULT STDMETHODCALLTYPE Popup(
  21042         POINTL *ppt,
  21043         RECTL *prcExclude,
  21044         MP_POPUPFLAGS dwFlags) = 0;
  21045 
  21046     virtual HRESULT STDMETHODCALLTYPE OnSelect(
  21047         DWORD dwSelectType) = 0;
  21048 
  21049     virtual HRESULT STDMETHODCALLTYPE SetSubMenu(
  21050         IMenuPopup *pmp,
  21051         WINBOOL fSet) = 0;
  21052 
  21053 };
  21054 #ifdef __CRT_UUID_DECL
  21055 __CRT_UUID_DECL(IMenuPopup, 0xd1e7afeb, 0x6a2e, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4)
  21056 #endif
  21057 #else
  21058 typedef struct IMenuPopupVtbl {
  21059     BEGIN_INTERFACE
  21060 
  21061     /*** IUnknown methods ***/
  21062     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  21063         IMenuPopup *This,
  21064         REFIID riid,
  21065         void **ppvObject);
  21066 
  21067     ULONG (STDMETHODCALLTYPE *AddRef)(
  21068         IMenuPopup *This);
  21069 
  21070     ULONG (STDMETHODCALLTYPE *Release)(
  21071         IMenuPopup *This);
  21072 
  21073     /*** IOleWindow methods ***/
  21074     HRESULT (STDMETHODCALLTYPE *GetWindow)(
  21075         IMenuPopup *This,
  21076         HWND *phwnd);
  21077 
  21078     HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
  21079         IMenuPopup *This,
  21080         WINBOOL fEnterMode);
  21081 
  21082     /*** IDeskBar methods ***/
  21083     HRESULT (STDMETHODCALLTYPE *SetClient)(
  21084         IMenuPopup *This,
  21085         IUnknown *punkClient);
  21086 
  21087     HRESULT (STDMETHODCALLTYPE *GetClient)(
  21088         IMenuPopup *This,
  21089         IUnknown **ppunkClient);
  21090 
  21091     HRESULT (STDMETHODCALLTYPE *OnPosRectChangeDB)(
  21092         IMenuPopup *This,
  21093         RECT *prc);
  21094 
  21095     /*** IMenuPopup methods ***/
  21096     HRESULT (STDMETHODCALLTYPE *Popup)(
  21097         IMenuPopup *This,
  21098         POINTL *ppt,
  21099         RECTL *prcExclude,
  21100         MP_POPUPFLAGS dwFlags);
  21101 
  21102     HRESULT (STDMETHODCALLTYPE *OnSelect)(
  21103         IMenuPopup *This,
  21104         DWORD dwSelectType);
  21105 
  21106     HRESULT (STDMETHODCALLTYPE *SetSubMenu)(
  21107         IMenuPopup *This,
  21108         IMenuPopup *pmp,
  21109         WINBOOL fSet);
  21110 
  21111     END_INTERFACE
  21112 } IMenuPopupVtbl;
  21113 
  21114 interface IMenuPopup {
  21115     CONST_VTBL IMenuPopupVtbl* lpVtbl;
  21116 };
  21117 
  21118 #ifdef COBJMACROS
  21119 #ifndef WIDL_C_INLINE_WRAPPERS
  21120 /*** IUnknown methods ***/
  21121 #define IMenuPopup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  21122 #define IMenuPopup_AddRef(This) (This)->lpVtbl->AddRef(This)
  21123 #define IMenuPopup_Release(This) (This)->lpVtbl->Release(This)
  21124 /*** IOleWindow methods ***/
  21125 #define IMenuPopup_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
  21126 #define IMenuPopup_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
  21127 /*** IDeskBar methods ***/
  21128 #define IMenuPopup_SetClient(This,punkClient) (This)->lpVtbl->SetClient(This,punkClient)
  21129 #define IMenuPopup_GetClient(This,ppunkClient) (This)->lpVtbl->GetClient(This,ppunkClient)
  21130 #define IMenuPopup_OnPosRectChangeDB(This,prc) (This)->lpVtbl->OnPosRectChangeDB(This,prc)
  21131 /*** IMenuPopup methods ***/
  21132 #define IMenuPopup_Popup(This,ppt,prcExclude,dwFlags) (This)->lpVtbl->Popup(This,ppt,prcExclude,dwFlags)
  21133 #define IMenuPopup_OnSelect(This,dwSelectType) (This)->lpVtbl->OnSelect(This,dwSelectType)
  21134 #define IMenuPopup_SetSubMenu(This,pmp,fSet) (This)->lpVtbl->SetSubMenu(This,pmp,fSet)
  21135 #else
  21136 /*** IUnknown methods ***/
  21137 static inline HRESULT IMenuPopup_QueryInterface(IMenuPopup* This,REFIID riid,void **ppvObject) {
  21138     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  21139 }
  21140 static inline ULONG IMenuPopup_AddRef(IMenuPopup* This) {
  21141     return This->lpVtbl->AddRef(This);
  21142 }
  21143 static inline ULONG IMenuPopup_Release(IMenuPopup* This) {
  21144     return This->lpVtbl->Release(This);
  21145 }
  21146 /*** IOleWindow methods ***/
  21147 static inline HRESULT IMenuPopup_GetWindow(IMenuPopup* This,HWND *phwnd) {
  21148     return This->lpVtbl->GetWindow(This,phwnd);
  21149 }
  21150 static inline HRESULT IMenuPopup_ContextSensitiveHelp(IMenuPopup* This,WINBOOL fEnterMode) {
  21151     return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
  21152 }
  21153 /*** IDeskBar methods ***/
  21154 static inline HRESULT IMenuPopup_SetClient(IMenuPopup* This,IUnknown *punkClient) {
  21155     return This->lpVtbl->SetClient(This,punkClient);
  21156 }
  21157 static inline HRESULT IMenuPopup_GetClient(IMenuPopup* This,IUnknown **ppunkClient) {
  21158     return This->lpVtbl->GetClient(This,ppunkClient);
  21159 }
  21160 static inline HRESULT IMenuPopup_OnPosRectChangeDB(IMenuPopup* This,RECT *prc) {
  21161     return This->lpVtbl->OnPosRectChangeDB(This,prc);
  21162 }
  21163 /*** IMenuPopup methods ***/
  21164 static inline HRESULT IMenuPopup_Popup(IMenuPopup* This,POINTL *ppt,RECTL *prcExclude,MP_POPUPFLAGS dwFlags) {
  21165     return This->lpVtbl->Popup(This,ppt,prcExclude,dwFlags);
  21166 }
  21167 static inline HRESULT IMenuPopup_OnSelect(IMenuPopup* This,DWORD dwSelectType) {
  21168     return This->lpVtbl->OnSelect(This,dwSelectType);
  21169 }
  21170 static inline HRESULT IMenuPopup_SetSubMenu(IMenuPopup* This,IMenuPopup *pmp,WINBOOL fSet) {
  21171     return This->lpVtbl->SetSubMenu(This,pmp,fSet);
  21172 }
  21173 #endif
  21174 #endif
  21175 
  21176 #endif
  21177 
  21178 
  21179 #endif  /* __IMenuPopup_INTERFACE_DEFINED__ */
  21180 
  21181 #endif
  21182 
  21183 #if NTDDI_VERSION >= NTDDI_VISTA
  21184 typedef enum FILE_USAGE_TYPE {
  21185     FUT_PLAYING = 0,
  21186     FUT_EDITING = 1,
  21187     FUT_GENERIC = 2
  21188 } FILE_USAGE_TYPE;
  21189 
  21190 #define OF_CAP_CANSWITCHTO 0x0001
  21191 #define OF_CAP_CANCLOSE 0x0002
  21192 
  21193 /*****************************************************************************
  21194  * IFileIsInUse interface
  21195  */
  21196 #ifndef __IFileIsInUse_INTERFACE_DEFINED__
  21197 #define __IFileIsInUse_INTERFACE_DEFINED__
  21198 
  21199 DEFINE_GUID(IID_IFileIsInUse, 0x64a1cbf0, 0x3a1a, 0x4461, 0x91,0x58, 0x37,0x69,0x69,0x69,0x39,0x50);
  21200 #if defined(__cplusplus) && !defined(CINTERFACE)
  21201 MIDL_INTERFACE("64a1cbf0-3a1a-4461-9158-376969693950")
  21202 IFileIsInUse : public IUnknown
  21203 {
  21204     virtual HRESULT STDMETHODCALLTYPE GetAppName(
  21205         LPWSTR *ppszName) = 0;
  21206 
  21207     virtual HRESULT STDMETHODCALLTYPE GetUsage(
  21208         FILE_USAGE_TYPE *pfut) = 0;
  21209 
  21210     virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
  21211         DWORD *pdwCapFlags) = 0;
  21212 
  21213     virtual HRESULT STDMETHODCALLTYPE GetSwitchToHWND(
  21214         HWND *phwnd) = 0;
  21215 
  21216     virtual HRESULT STDMETHODCALLTYPE CloseFile(
  21217         ) = 0;
  21218 
  21219 };
  21220 #ifdef __CRT_UUID_DECL
  21221 __CRT_UUID_DECL(IFileIsInUse, 0x64a1cbf0, 0x3a1a, 0x4461, 0x91,0x58, 0x37,0x69,0x69,0x69,0x39,0x50)
  21222 #endif
  21223 #else
  21224 typedef struct IFileIsInUseVtbl {
  21225     BEGIN_INTERFACE
  21226 
  21227     /*** IUnknown methods ***/
  21228     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  21229         IFileIsInUse *This,
  21230         REFIID riid,
  21231         void **ppvObject);
  21232 
  21233     ULONG (STDMETHODCALLTYPE *AddRef)(
  21234         IFileIsInUse *This);
  21235 
  21236     ULONG (STDMETHODCALLTYPE *Release)(
  21237         IFileIsInUse *This);
  21238 
  21239     /*** IFileIsInUse methods ***/
  21240     HRESULT (STDMETHODCALLTYPE *GetAppName)(
  21241         IFileIsInUse *This,
  21242         LPWSTR *ppszName);
  21243 
  21244     HRESULT (STDMETHODCALLTYPE *GetUsage)(
  21245         IFileIsInUse *This,
  21246         FILE_USAGE_TYPE *pfut);
  21247 
  21248     HRESULT (STDMETHODCALLTYPE *GetCapabilities)(
  21249         IFileIsInUse *This,
  21250         DWORD *pdwCapFlags);
  21251 
  21252     HRESULT (STDMETHODCALLTYPE *GetSwitchToHWND)(
  21253         IFileIsInUse *This,
  21254         HWND *phwnd);
  21255 
  21256     HRESULT (STDMETHODCALLTYPE *CloseFile)(
  21257         IFileIsInUse *This);
  21258 
  21259     END_INTERFACE
  21260 } IFileIsInUseVtbl;
  21261 
  21262 interface IFileIsInUse {
  21263     CONST_VTBL IFileIsInUseVtbl* lpVtbl;
  21264 };
  21265 
  21266 #ifdef COBJMACROS
  21267 #ifndef WIDL_C_INLINE_WRAPPERS
  21268 /*** IUnknown methods ***/
  21269 #define IFileIsInUse_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  21270 #define IFileIsInUse_AddRef(This) (This)->lpVtbl->AddRef(This)
  21271 #define IFileIsInUse_Release(This) (This)->lpVtbl->Release(This)
  21272 /*** IFileIsInUse methods ***/
  21273 #define IFileIsInUse_GetAppName(This,ppszName) (This)->lpVtbl->GetAppName(This,ppszName)
  21274 #define IFileIsInUse_GetUsage(This,pfut) (This)->lpVtbl->GetUsage(This,pfut)
  21275 #define IFileIsInUse_GetCapabilities(This,pdwCapFlags) (This)->lpVtbl->GetCapabilities(This,pdwCapFlags)
  21276 #define IFileIsInUse_GetSwitchToHWND(This,phwnd) (This)->lpVtbl->GetSwitchToHWND(This,phwnd)
  21277 #define IFileIsInUse_CloseFile(This) (This)->lpVtbl->CloseFile(This)
  21278 #else
  21279 /*** IUnknown methods ***/
  21280 static inline HRESULT IFileIsInUse_QueryInterface(IFileIsInUse* This,REFIID riid,void **ppvObject) {
  21281     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  21282 }
  21283 static inline ULONG IFileIsInUse_AddRef(IFileIsInUse* This) {
  21284     return This->lpVtbl->AddRef(This);
  21285 }
  21286 static inline ULONG IFileIsInUse_Release(IFileIsInUse* This) {
  21287     return This->lpVtbl->Release(This);
  21288 }
  21289 /*** IFileIsInUse methods ***/
  21290 static inline HRESULT IFileIsInUse_GetAppName(IFileIsInUse* This,LPWSTR *ppszName) {
  21291     return This->lpVtbl->GetAppName(This,ppszName);
  21292 }
  21293 static inline HRESULT IFileIsInUse_GetUsage(IFileIsInUse* This,FILE_USAGE_TYPE *pfut) {
  21294     return This->lpVtbl->GetUsage(This,pfut);
  21295 }
  21296 static inline HRESULT IFileIsInUse_GetCapabilities(IFileIsInUse* This,DWORD *pdwCapFlags) {
  21297     return This->lpVtbl->GetCapabilities(This,pdwCapFlags);
  21298 }
  21299 static inline HRESULT IFileIsInUse_GetSwitchToHWND(IFileIsInUse* This,HWND *phwnd) {
  21300     return This->lpVtbl->GetSwitchToHWND(This,phwnd);
  21301 }
  21302 static inline HRESULT IFileIsInUse_CloseFile(IFileIsInUse* This) {
  21303     return This->lpVtbl->CloseFile(This);
  21304 }
  21305 #endif
  21306 #endif
  21307 
  21308 #endif
  21309 
  21310 
  21311 #endif  /* __IFileIsInUse_INTERFACE_DEFINED__ */
  21312 
  21313 
  21314 #ifndef __IFileDialog_FWD_DEFINED__
  21315 #define __IFileDialog_FWD_DEFINED__
  21316 typedef interface IFileDialog IFileDialog;
  21317 #ifdef __cplusplus
  21318 interface IFileDialog;
  21319 #endif /* __cplusplus */
  21320 #endif
  21321 
  21322 
  21323 typedef enum FDE_OVERWRITE_RESPONSE {
  21324     FDEOR_DEFAULT = 0,
  21325     FDEOR_ACCEPT = 1,
  21326     FDEOR_REFUSE = 2
  21327 } FDE_OVERWRITE_RESPONSE;
  21328 
  21329 typedef enum FDE_SHAREVIOLATION_RESPONSE {
  21330     FDESVR_DEFAULT = 0,
  21331     FDESVR_ACCEPT = 1,
  21332     FDESVR_REFUSE = 2
  21333 } FDE_SHAREVIOLATION_RESPONSE;
  21334 
  21335 typedef enum FDAP {
  21336     FDAP_BOTTOM = 0,
  21337     FDAP_TOP = 1
  21338 } FDAP;
  21339 
  21340 /*****************************************************************************
  21341  * IFileDialogEvents interface
  21342  */
  21343 #ifndef __IFileDialogEvents_INTERFACE_DEFINED__
  21344 #define __IFileDialogEvents_INTERFACE_DEFINED__
  21345 
  21346 DEFINE_GUID(IID_IFileDialogEvents, 0x973510db, 0x7d7f, 0x452b, 0x89,0x75, 0x74,0xa8,0x58,0x28,0xd3,0x54);
  21347 #if defined(__cplusplus) && !defined(CINTERFACE)
  21348 MIDL_INTERFACE("973510db-7d7f-452b-8975-74a85828d354")
  21349 IFileDialogEvents : public IUnknown
  21350 {
  21351     virtual HRESULT STDMETHODCALLTYPE OnFileOk(
  21352         IFileDialog *pfd) = 0;
  21353 
  21354     virtual HRESULT STDMETHODCALLTYPE OnFolderChanging(
  21355         IFileDialog *pfd,
  21356         IShellItem *psiFolder) = 0;
  21357 
  21358     virtual HRESULT STDMETHODCALLTYPE OnFolderChange(
  21359         IFileDialog *pfd) = 0;
  21360 
  21361     virtual HRESULT STDMETHODCALLTYPE OnSelectionChange(
  21362         IFileDialog *pfd) = 0;
  21363 
  21364     virtual HRESULT STDMETHODCALLTYPE OnShareViolation(
  21365         IFileDialog *pfd,
  21366         IShellItem *psi,
  21367         FDE_SHAREVIOLATION_RESPONSE *pResponse) = 0;
  21368 
  21369     virtual HRESULT STDMETHODCALLTYPE OnTypeChange(
  21370         IFileDialog *pfd) = 0;
  21371 
  21372     virtual HRESULT STDMETHODCALLTYPE OnOverwrite(
  21373         IFileDialog *pfd,
  21374         IShellItem *psi,
  21375         FDE_OVERWRITE_RESPONSE *pResponse) = 0;
  21376 
  21377 };
  21378 #ifdef __CRT_UUID_DECL
  21379 __CRT_UUID_DECL(IFileDialogEvents, 0x973510db, 0x7d7f, 0x452b, 0x89,0x75, 0x74,0xa8,0x58,0x28,0xd3,0x54)
  21380 #endif
  21381 #else
  21382 typedef struct IFileDialogEventsVtbl {
  21383     BEGIN_INTERFACE
  21384 
  21385     /*** IUnknown methods ***/
  21386     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  21387         IFileDialogEvents *This,
  21388         REFIID riid,
  21389         void **ppvObject);
  21390 
  21391     ULONG (STDMETHODCALLTYPE *AddRef)(
  21392         IFileDialogEvents *This);
  21393 
  21394     ULONG (STDMETHODCALLTYPE *Release)(
  21395         IFileDialogEvents *This);
  21396 
  21397     /*** IFileDialogEvents methods ***/
  21398     HRESULT (STDMETHODCALLTYPE *OnFileOk)(
  21399         IFileDialogEvents *This,
  21400         IFileDialog *pfd);
  21401 
  21402     HRESULT (STDMETHODCALLTYPE *OnFolderChanging)(
  21403         IFileDialogEvents *This,
  21404         IFileDialog *pfd,
  21405         IShellItem *psiFolder);
  21406 
  21407     HRESULT (STDMETHODCALLTYPE *OnFolderChange)(
  21408         IFileDialogEvents *This,
  21409         IFileDialog *pfd);
  21410 
  21411     HRESULT (STDMETHODCALLTYPE *OnSelectionChange)(
  21412         IFileDialogEvents *This,
  21413         IFileDialog *pfd);
  21414 
  21415     HRESULT (STDMETHODCALLTYPE *OnShareViolation)(
  21416         IFileDialogEvents *This,
  21417         IFileDialog *pfd,
  21418         IShellItem *psi,
  21419         FDE_SHAREVIOLATION_RESPONSE *pResponse);
  21420 
  21421     HRESULT (STDMETHODCALLTYPE *OnTypeChange)(
  21422         IFileDialogEvents *This,
  21423         IFileDialog *pfd);
  21424 
  21425     HRESULT (STDMETHODCALLTYPE *OnOverwrite)(
  21426         IFileDialogEvents *This,
  21427         IFileDialog *pfd,
  21428         IShellItem *psi,
  21429         FDE_OVERWRITE_RESPONSE *pResponse);
  21430 
  21431     END_INTERFACE
  21432 } IFileDialogEventsVtbl;
  21433 
  21434 interface IFileDialogEvents {
  21435     CONST_VTBL IFileDialogEventsVtbl* lpVtbl;
  21436 };
  21437 
  21438 #ifdef COBJMACROS
  21439 #ifndef WIDL_C_INLINE_WRAPPERS
  21440 /*** IUnknown methods ***/
  21441 #define IFileDialogEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  21442 #define IFileDialogEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
  21443 #define IFileDialogEvents_Release(This) (This)->lpVtbl->Release(This)
  21444 /*** IFileDialogEvents methods ***/
  21445 #define IFileDialogEvents_OnFileOk(This,pfd) (This)->lpVtbl->OnFileOk(This,pfd)
  21446 #define IFileDialogEvents_OnFolderChanging(This,pfd,psiFolder) (This)->lpVtbl->OnFolderChanging(This,pfd,psiFolder)
  21447 #define IFileDialogEvents_OnFolderChange(This,pfd) (This)->lpVtbl->OnFolderChange(This,pfd)
  21448 #define IFileDialogEvents_OnSelectionChange(This,pfd) (This)->lpVtbl->OnSelectionChange(This,pfd)
  21449 #define IFileDialogEvents_OnShareViolation(This,pfd,psi,pResponse) (This)->lpVtbl->OnShareViolation(This,pfd,psi,pResponse)
  21450 #define IFileDialogEvents_OnTypeChange(This,pfd) (This)->lpVtbl->OnTypeChange(This,pfd)
  21451 #define IFileDialogEvents_OnOverwrite(This,pfd,psi,pResponse) (This)->lpVtbl->OnOverwrite(This,pfd,psi,pResponse)
  21452 #else
  21453 /*** IUnknown methods ***/
  21454 static inline HRESULT IFileDialogEvents_QueryInterface(IFileDialogEvents* This,REFIID riid,void **ppvObject) {
  21455     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  21456 }
  21457 static inline ULONG IFileDialogEvents_AddRef(IFileDialogEvents* This) {
  21458     return This->lpVtbl->AddRef(This);
  21459 }
  21460 static inline ULONG IFileDialogEvents_Release(IFileDialogEvents* This) {
  21461     return This->lpVtbl->Release(This);
  21462 }
  21463 /*** IFileDialogEvents methods ***/
  21464 static inline HRESULT IFileDialogEvents_OnFileOk(IFileDialogEvents* This,IFileDialog *pfd) {
  21465     return This->lpVtbl->OnFileOk(This,pfd);
  21466 }
  21467 static inline HRESULT IFileDialogEvents_OnFolderChanging(IFileDialogEvents* This,IFileDialog *pfd,IShellItem *psiFolder) {
  21468     return This->lpVtbl->OnFolderChanging(This,pfd,psiFolder);
  21469 }
  21470 static inline HRESULT IFileDialogEvents_OnFolderChange(IFileDialogEvents* This,IFileDialog *pfd) {
  21471     return This->lpVtbl->OnFolderChange(This,pfd);
  21472 }
  21473 static inline HRESULT IFileDialogEvents_OnSelectionChange(IFileDialogEvents* This,IFileDialog *pfd) {
  21474     return This->lpVtbl->OnSelectionChange(This,pfd);
  21475 }
  21476 static inline HRESULT IFileDialogEvents_OnShareViolation(IFileDialogEvents* This,IFileDialog *pfd,IShellItem *psi,FDE_SHAREVIOLATION_RESPONSE *pResponse) {
  21477     return This->lpVtbl->OnShareViolation(This,pfd,psi,pResponse);
  21478 }
  21479 static inline HRESULT IFileDialogEvents_OnTypeChange(IFileDialogEvents* This,IFileDialog *pfd) {
  21480     return This->lpVtbl->OnTypeChange(This,pfd);
  21481 }
  21482 static inline HRESULT IFileDialogEvents_OnOverwrite(IFileDialogEvents* This,IFileDialog *pfd,IShellItem *psi,FDE_OVERWRITE_RESPONSE *pResponse) {
  21483     return This->lpVtbl->OnOverwrite(This,pfd,psi,pResponse);
  21484 }
  21485 #endif
  21486 #endif
  21487 
  21488 #endif
  21489 
  21490 
  21491 #endif  /* __IFileDialogEvents_INTERFACE_DEFINED__ */
  21492 
  21493 
  21494 #ifndef __IShellItemFilter_FWD_DEFINED__
  21495 #define __IShellItemFilter_FWD_DEFINED__
  21496 typedef interface IShellItemFilter IShellItemFilter;
  21497 #ifdef __cplusplus
  21498 interface IShellItemFilter;
  21499 #endif /* __cplusplus */
  21500 #endif
  21501 
  21502 
  21503 /*****************************************************************************
  21504  * IFileDialog interface
  21505  */
  21506 #ifndef __IFileDialog_INTERFACE_DEFINED__
  21507 #define __IFileDialog_INTERFACE_DEFINED__
  21508 
  21509 enum _FILEOPENDIALOGOPTIONS {
  21510     FOS_OVERWRITEPROMPT = 0x2,
  21511     FOS_STRICTFILETYPES = 0x4,
  21512     FOS_NOCHANGEDIR = 0x8,
  21513     FOS_PICKFOLDERS = 0x20,
  21514     FOS_FORCEFILESYSTEM = 0x40,
  21515     FOS_ALLNONSTORAGEITEMS = 0x80,
  21516     FOS_NOVALIDATE = 0x100,
  21517     FOS_ALLOWMULTISELECT = 0x200,
  21518     FOS_PATHMUSTEXIST = 0x800,
  21519     FOS_FILEMUSTEXIST = 0x1000,
  21520     FOS_CREATEPROMPT = 0x2000,
  21521     FOS_SHAREAWARE = 0x4000,
  21522     FOS_NOREADONLYRETURN = 0x8000,
  21523     FOS_NOTESTFILECREATE = 0x10000,
  21524     FOS_HIDEMRUPLACES = 0x20000,
  21525     FOS_HIDEPINNEDPLACES = 0x40000,
  21526     FOS_NODEREFERENCELINKS = 0x100000,
  21527     FOS_DONTADDTORECENT = 0x2000000,
  21528     FOS_FORCESHOWHIDDEN = 0x10000000,
  21529     FOS_DEFAULTNOMINIMODE = 0x20000000,
  21530     FOS_FORCEPREVIEWPANEON = 0x40000000,
  21531     FOS_SUPPORTSTREAMABLEITEMS = 0x80000000
  21532 };
  21533 
  21534 typedef DWORD FILEOPENDIALOGOPTIONS;
  21535 
  21536 DEFINE_GUID(IID_IFileDialog, 0x42f85136, 0xdb7e, 0x439c, 0x85,0xf1, 0xe4,0x07,0x5d,0x13,0x5f,0xc8);
  21537 #if defined(__cplusplus) && !defined(CINTERFACE)
  21538 MIDL_INTERFACE("42f85136-db7e-439c-85f1-e4075d135fc8")
  21539 IFileDialog : public IModalWindow
  21540 {
  21541     virtual HRESULT STDMETHODCALLTYPE SetFileTypes(
  21542         UINT cFileTypes,
  21543         const COMDLG_FILTERSPEC *rgFilterSpec) = 0;
  21544 
  21545     virtual HRESULT STDMETHODCALLTYPE SetFileTypeIndex(
  21546         UINT iFileType) = 0;
  21547 
  21548     virtual HRESULT STDMETHODCALLTYPE GetFileTypeIndex(
  21549         UINT *piFileType) = 0;
  21550 
  21551     virtual HRESULT STDMETHODCALLTYPE Advise(
  21552         IFileDialogEvents *pfde,
  21553         DWORD *pdwCookie) = 0;
  21554 
  21555     virtual HRESULT STDMETHODCALLTYPE Unadvise(
  21556         DWORD dwCookie) = 0;
  21557 
  21558     virtual HRESULT STDMETHODCALLTYPE SetOptions(
  21559         FILEOPENDIALOGOPTIONS fos) = 0;
  21560 
  21561     virtual HRESULT STDMETHODCALLTYPE GetOptions(
  21562         FILEOPENDIALOGOPTIONS *pfos) = 0;
  21563 
  21564     virtual HRESULT STDMETHODCALLTYPE SetDefaultFolder(
  21565         IShellItem *psi) = 0;
  21566 
  21567     virtual HRESULT STDMETHODCALLTYPE SetFolder(
  21568         IShellItem *psi) = 0;
  21569 
  21570     virtual HRESULT STDMETHODCALLTYPE GetFolder(
  21571         IShellItem **ppsi) = 0;
  21572 
  21573     virtual HRESULT STDMETHODCALLTYPE GetCurrentSelection(
  21574         IShellItem **ppsi) = 0;
  21575 
  21576     virtual HRESULT STDMETHODCALLTYPE SetFileName(
  21577         LPCWSTR pszName) = 0;
  21578 
  21579     virtual HRESULT STDMETHODCALLTYPE GetFileName(
  21580         LPWSTR *pszName) = 0;
  21581 
  21582     virtual HRESULT STDMETHODCALLTYPE SetTitle(
  21583         LPCWSTR pszTitle) = 0;
  21584 
  21585     virtual HRESULT STDMETHODCALLTYPE SetOkButtonLabel(
  21586         LPCWSTR pszText) = 0;
  21587 
  21588     virtual HRESULT STDMETHODCALLTYPE SetFileNameLabel(
  21589         LPCWSTR pszLabel) = 0;
  21590 
  21591     virtual HRESULT STDMETHODCALLTYPE GetResult(
  21592         IShellItem **ppsi) = 0;
  21593 
  21594     virtual HRESULT STDMETHODCALLTYPE AddPlace(
  21595         IShellItem *psi,
  21596         FDAP fdap) = 0;
  21597 
  21598     virtual HRESULT STDMETHODCALLTYPE SetDefaultExtension(
  21599         LPCWSTR pszDefaultExtension) = 0;
  21600 
  21601     virtual HRESULT STDMETHODCALLTYPE Close(
  21602         HRESULT hr) = 0;
  21603 
  21604     virtual HRESULT STDMETHODCALLTYPE SetClientGuid(
  21605         REFGUID guid) = 0;
  21606 
  21607     virtual HRESULT STDMETHODCALLTYPE ClearClientData(
  21608         ) = 0;
  21609 
  21610     virtual HRESULT STDMETHODCALLTYPE SetFilter(
  21611         IShellItemFilter *pFilter) = 0;
  21612 
  21613 };
  21614 #ifdef __CRT_UUID_DECL
  21615 __CRT_UUID_DECL(IFileDialog, 0x42f85136, 0xdb7e, 0x439c, 0x85,0xf1, 0xe4,0x07,0x5d,0x13,0x5f,0xc8)
  21616 #endif
  21617 #else
  21618 typedef struct IFileDialogVtbl {
  21619     BEGIN_INTERFACE
  21620 
  21621     /*** IUnknown methods ***/
  21622     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  21623         IFileDialog *This,
  21624         REFIID riid,
  21625         void **ppvObject);
  21626 
  21627     ULONG (STDMETHODCALLTYPE *AddRef)(
  21628         IFileDialog *This);
  21629 
  21630     ULONG (STDMETHODCALLTYPE *Release)(
  21631         IFileDialog *This);
  21632 
  21633     /*** IModalWindow methods ***/
  21634     HRESULT (STDMETHODCALLTYPE *Show)(
  21635         IFileDialog *This,
  21636         HWND hwndOwner);
  21637 
  21638     /*** IFileDialog methods ***/
  21639     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
  21640         IFileDialog *This,
  21641         UINT cFileTypes,
  21642         const COMDLG_FILTERSPEC *rgFilterSpec);
  21643 
  21644     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
  21645         IFileDialog *This,
  21646         UINT iFileType);
  21647 
  21648     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
  21649         IFileDialog *This,
  21650         UINT *piFileType);
  21651 
  21652     HRESULT (STDMETHODCALLTYPE *Advise)(
  21653         IFileDialog *This,
  21654         IFileDialogEvents *pfde,
  21655         DWORD *pdwCookie);
  21656 
  21657     HRESULT (STDMETHODCALLTYPE *Unadvise)(
  21658         IFileDialog *This,
  21659         DWORD dwCookie);
  21660 
  21661     HRESULT (STDMETHODCALLTYPE *SetOptions)(
  21662         IFileDialog *This,
  21663         FILEOPENDIALOGOPTIONS fos);
  21664 
  21665     HRESULT (STDMETHODCALLTYPE *GetOptions)(
  21666         IFileDialog *This,
  21667         FILEOPENDIALOGOPTIONS *pfos);
  21668 
  21669     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
  21670         IFileDialog *This,
  21671         IShellItem *psi);
  21672 
  21673     HRESULT (STDMETHODCALLTYPE *SetFolder)(
  21674         IFileDialog *This,
  21675         IShellItem *psi);
  21676 
  21677     HRESULT (STDMETHODCALLTYPE *GetFolder)(
  21678         IFileDialog *This,
  21679         IShellItem **ppsi);
  21680 
  21681     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
  21682         IFileDialog *This,
  21683         IShellItem **ppsi);
  21684 
  21685     HRESULT (STDMETHODCALLTYPE *SetFileName)(
  21686         IFileDialog *This,
  21687         LPCWSTR pszName);
  21688 
  21689     HRESULT (STDMETHODCALLTYPE *GetFileName)(
  21690         IFileDialog *This,
  21691         LPWSTR *pszName);
  21692 
  21693     HRESULT (STDMETHODCALLTYPE *SetTitle)(
  21694         IFileDialog *This,
  21695         LPCWSTR pszTitle);
  21696 
  21697     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
  21698         IFileDialog *This,
  21699         LPCWSTR pszText);
  21700 
  21701     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
  21702         IFileDialog *This,
  21703         LPCWSTR pszLabel);
  21704 
  21705     HRESULT (STDMETHODCALLTYPE *GetResult)(
  21706         IFileDialog *This,
  21707         IShellItem **ppsi);
  21708 
  21709     HRESULT (STDMETHODCALLTYPE *AddPlace)(
  21710         IFileDialog *This,
  21711         IShellItem *psi,
  21712         FDAP fdap);
  21713 
  21714     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
  21715         IFileDialog *This,
  21716         LPCWSTR pszDefaultExtension);
  21717 
  21718     HRESULT (STDMETHODCALLTYPE *Close)(
  21719         IFileDialog *This,
  21720         HRESULT hr);
  21721 
  21722     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
  21723         IFileDialog *This,
  21724         REFGUID guid);
  21725 
  21726     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
  21727         IFileDialog *This);
  21728 
  21729     HRESULT (STDMETHODCALLTYPE *SetFilter)(
  21730         IFileDialog *This,
  21731         IShellItemFilter *pFilter);
  21732 
  21733     END_INTERFACE
  21734 } IFileDialogVtbl;
  21735 
  21736 interface IFileDialog {
  21737     CONST_VTBL IFileDialogVtbl* lpVtbl;
  21738 };
  21739 
  21740 #ifdef COBJMACROS
  21741 #ifndef WIDL_C_INLINE_WRAPPERS
  21742 /*** IUnknown methods ***/
  21743 #define IFileDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  21744 #define IFileDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
  21745 #define IFileDialog_Release(This) (This)->lpVtbl->Release(This)
  21746 /*** IModalWindow methods ***/
  21747 #define IFileDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
  21748 /*** IFileDialog methods ***/
  21749 #define IFileDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
  21750 #define IFileDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
  21751 #define IFileDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
  21752 #define IFileDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
  21753 #define IFileDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
  21754 #define IFileDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
  21755 #define IFileDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
  21756 #define IFileDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
  21757 #define IFileDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
  21758 #define IFileDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
  21759 #define IFileDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
  21760 #define IFileDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
  21761 #define IFileDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
  21762 #define IFileDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
  21763 #define IFileDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
  21764 #define IFileDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
  21765 #define IFileDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
  21766 #define IFileDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
  21767 #define IFileDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
  21768 #define IFileDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
  21769 #define IFileDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
  21770 #define IFileDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
  21771 #define IFileDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
  21772 #else
  21773 /*** IUnknown methods ***/
  21774 static inline HRESULT IFileDialog_QueryInterface(IFileDialog* This,REFIID riid,void **ppvObject) {
  21775     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  21776 }
  21777 static inline ULONG IFileDialog_AddRef(IFileDialog* This) {
  21778     return This->lpVtbl->AddRef(This);
  21779 }
  21780 static inline ULONG IFileDialog_Release(IFileDialog* This) {
  21781     return This->lpVtbl->Release(This);
  21782 }
  21783 /*** IModalWindow methods ***/
  21784 static inline HRESULT IFileDialog_Show(IFileDialog* This,HWND hwndOwner) {
  21785     return This->lpVtbl->Show(This,hwndOwner);
  21786 }
  21787 /*** IFileDialog methods ***/
  21788 static inline HRESULT IFileDialog_SetFileTypes(IFileDialog* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
  21789     return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
  21790 }
  21791 static inline HRESULT IFileDialog_SetFileTypeIndex(IFileDialog* This,UINT iFileType) {
  21792     return This->lpVtbl->SetFileTypeIndex(This,iFileType);
  21793 }
  21794 static inline HRESULT IFileDialog_GetFileTypeIndex(IFileDialog* This,UINT *piFileType) {
  21795     return This->lpVtbl->GetFileTypeIndex(This,piFileType);
  21796 }
  21797 static inline HRESULT IFileDialog_Advise(IFileDialog* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
  21798     return This->lpVtbl->Advise(This,pfde,pdwCookie);
  21799 }
  21800 static inline HRESULT IFileDialog_Unadvise(IFileDialog* This,DWORD dwCookie) {
  21801     return This->lpVtbl->Unadvise(This,dwCookie);
  21802 }
  21803 static inline HRESULT IFileDialog_SetOptions(IFileDialog* This,FILEOPENDIALOGOPTIONS fos) {
  21804     return This->lpVtbl->SetOptions(This,fos);
  21805 }
  21806 static inline HRESULT IFileDialog_GetOptions(IFileDialog* This,FILEOPENDIALOGOPTIONS *pfos) {
  21807     return This->lpVtbl->GetOptions(This,pfos);
  21808 }
  21809 static inline HRESULT IFileDialog_SetDefaultFolder(IFileDialog* This,IShellItem *psi) {
  21810     return This->lpVtbl->SetDefaultFolder(This,psi);
  21811 }
  21812 static inline HRESULT IFileDialog_SetFolder(IFileDialog* This,IShellItem *psi) {
  21813     return This->lpVtbl->SetFolder(This,psi);
  21814 }
  21815 static inline HRESULT IFileDialog_GetFolder(IFileDialog* This,IShellItem **ppsi) {
  21816     return This->lpVtbl->GetFolder(This,ppsi);
  21817 }
  21818 static inline HRESULT IFileDialog_GetCurrentSelection(IFileDialog* This,IShellItem **ppsi) {
  21819     return This->lpVtbl->GetCurrentSelection(This,ppsi);
  21820 }
  21821 static inline HRESULT IFileDialog_SetFileName(IFileDialog* This,LPCWSTR pszName) {
  21822     return This->lpVtbl->SetFileName(This,pszName);
  21823 }
  21824 static inline HRESULT IFileDialog_GetFileName(IFileDialog* This,LPWSTR *pszName) {
  21825     return This->lpVtbl->GetFileName(This,pszName);
  21826 }
  21827 static inline HRESULT IFileDialog_SetTitle(IFileDialog* This,LPCWSTR pszTitle) {
  21828     return This->lpVtbl->SetTitle(This,pszTitle);
  21829 }
  21830 static inline HRESULT IFileDialog_SetOkButtonLabel(IFileDialog* This,LPCWSTR pszText) {
  21831     return This->lpVtbl->SetOkButtonLabel(This,pszText);
  21832 }
  21833 static inline HRESULT IFileDialog_SetFileNameLabel(IFileDialog* This,LPCWSTR pszLabel) {
  21834     return This->lpVtbl->SetFileNameLabel(This,pszLabel);
  21835 }
  21836 static inline HRESULT IFileDialog_GetResult(IFileDialog* This,IShellItem **ppsi) {
  21837     return This->lpVtbl->GetResult(This,ppsi);
  21838 }
  21839 static inline HRESULT IFileDialog_AddPlace(IFileDialog* This,IShellItem *psi,FDAP fdap) {
  21840     return This->lpVtbl->AddPlace(This,psi,fdap);
  21841 }
  21842 static inline HRESULT IFileDialog_SetDefaultExtension(IFileDialog* This,LPCWSTR pszDefaultExtension) {
  21843     return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
  21844 }
  21845 static inline HRESULT IFileDialog_Close(IFileDialog* This,HRESULT hr) {
  21846     return This->lpVtbl->Close(This,hr);
  21847 }
  21848 static inline HRESULT IFileDialog_SetClientGuid(IFileDialog* This,REFGUID guid) {
  21849     return This->lpVtbl->SetClientGuid(This,guid);
  21850 }
  21851 static inline HRESULT IFileDialog_ClearClientData(IFileDialog* This) {
  21852     return This->lpVtbl->ClearClientData(This);
  21853 }
  21854 static inline HRESULT IFileDialog_SetFilter(IFileDialog* This,IShellItemFilter *pFilter) {
  21855     return This->lpVtbl->SetFilter(This,pFilter);
  21856 }
  21857 #endif
  21858 #endif
  21859 
  21860 #endif
  21861 
  21862 
  21863 #endif  /* __IFileDialog_INTERFACE_DEFINED__ */
  21864 
  21865 
  21866 /*****************************************************************************
  21867  * IFileSaveDialog interface
  21868  */
  21869 #ifndef __IFileSaveDialog_INTERFACE_DEFINED__
  21870 #define __IFileSaveDialog_INTERFACE_DEFINED__
  21871 
  21872 DEFINE_GUID(IID_IFileSaveDialog, 0x84bccd23, 0x5fde, 0x4cdb, 0xae,0xa4, 0xaf,0x64,0xb8,0x3d,0x78,0xab);
  21873 #if defined(__cplusplus) && !defined(CINTERFACE)
  21874 MIDL_INTERFACE("84bccd23-5fde-4cdb-aea4-af64b83d78ab")
  21875 IFileSaveDialog : public IFileDialog
  21876 {
  21877     virtual HRESULT STDMETHODCALLTYPE SetSaveAsItem(
  21878         IShellItem *psi) = 0;
  21879 
  21880     virtual HRESULT STDMETHODCALLTYPE SetProperties(
  21881         IPropertyStore *pStore) = 0;
  21882 
  21883     virtual HRESULT STDMETHODCALLTYPE SetCollectedProperties(
  21884         IPropertyDescriptionList *pList,
  21885         WINBOOL fAppendDefault) = 0;
  21886 
  21887     virtual HRESULT STDMETHODCALLTYPE GetProperties(
  21888         IPropertyStore **ppStore) = 0;
  21889 
  21890     virtual HRESULT STDMETHODCALLTYPE ApplyProperties(
  21891         IShellItem *psi,
  21892         IPropertyStore *pStore,
  21893         HWND hwnd,
  21894         IFileOperationProgressSink *pSink) = 0;
  21895 
  21896 };
  21897 #ifdef __CRT_UUID_DECL
  21898 __CRT_UUID_DECL(IFileSaveDialog, 0x84bccd23, 0x5fde, 0x4cdb, 0xae,0xa4, 0xaf,0x64,0xb8,0x3d,0x78,0xab)
  21899 #endif
  21900 #else
  21901 typedef struct IFileSaveDialogVtbl {
  21902     BEGIN_INTERFACE
  21903 
  21904     /*** IUnknown methods ***/
  21905     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  21906         IFileSaveDialog *This,
  21907         REFIID riid,
  21908         void **ppvObject);
  21909 
  21910     ULONG (STDMETHODCALLTYPE *AddRef)(
  21911         IFileSaveDialog *This);
  21912 
  21913     ULONG (STDMETHODCALLTYPE *Release)(
  21914         IFileSaveDialog *This);
  21915 
  21916     /*** IModalWindow methods ***/
  21917     HRESULT (STDMETHODCALLTYPE *Show)(
  21918         IFileSaveDialog *This,
  21919         HWND hwndOwner);
  21920 
  21921     /*** IFileDialog methods ***/
  21922     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
  21923         IFileSaveDialog *This,
  21924         UINT cFileTypes,
  21925         const COMDLG_FILTERSPEC *rgFilterSpec);
  21926 
  21927     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
  21928         IFileSaveDialog *This,
  21929         UINT iFileType);
  21930 
  21931     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
  21932         IFileSaveDialog *This,
  21933         UINT *piFileType);
  21934 
  21935     HRESULT (STDMETHODCALLTYPE *Advise)(
  21936         IFileSaveDialog *This,
  21937         IFileDialogEvents *pfde,
  21938         DWORD *pdwCookie);
  21939 
  21940     HRESULT (STDMETHODCALLTYPE *Unadvise)(
  21941         IFileSaveDialog *This,
  21942         DWORD dwCookie);
  21943 
  21944     HRESULT (STDMETHODCALLTYPE *SetOptions)(
  21945         IFileSaveDialog *This,
  21946         FILEOPENDIALOGOPTIONS fos);
  21947 
  21948     HRESULT (STDMETHODCALLTYPE *GetOptions)(
  21949         IFileSaveDialog *This,
  21950         FILEOPENDIALOGOPTIONS *pfos);
  21951 
  21952     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
  21953         IFileSaveDialog *This,
  21954         IShellItem *psi);
  21955 
  21956     HRESULT (STDMETHODCALLTYPE *SetFolder)(
  21957         IFileSaveDialog *This,
  21958         IShellItem *psi);
  21959 
  21960     HRESULT (STDMETHODCALLTYPE *GetFolder)(
  21961         IFileSaveDialog *This,
  21962         IShellItem **ppsi);
  21963 
  21964     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
  21965         IFileSaveDialog *This,
  21966         IShellItem **ppsi);
  21967 
  21968     HRESULT (STDMETHODCALLTYPE *SetFileName)(
  21969         IFileSaveDialog *This,
  21970         LPCWSTR pszName);
  21971 
  21972     HRESULT (STDMETHODCALLTYPE *GetFileName)(
  21973         IFileSaveDialog *This,
  21974         LPWSTR *pszName);
  21975 
  21976     HRESULT (STDMETHODCALLTYPE *SetTitle)(
  21977         IFileSaveDialog *This,
  21978         LPCWSTR pszTitle);
  21979 
  21980     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
  21981         IFileSaveDialog *This,
  21982         LPCWSTR pszText);
  21983 
  21984     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
  21985         IFileSaveDialog *This,
  21986         LPCWSTR pszLabel);
  21987 
  21988     HRESULT (STDMETHODCALLTYPE *GetResult)(
  21989         IFileSaveDialog *This,
  21990         IShellItem **ppsi);
  21991 
  21992     HRESULT (STDMETHODCALLTYPE *AddPlace)(
  21993         IFileSaveDialog *This,
  21994         IShellItem *psi,
  21995         FDAP fdap);
  21996 
  21997     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
  21998         IFileSaveDialog *This,
  21999         LPCWSTR pszDefaultExtension);
  22000 
  22001     HRESULT (STDMETHODCALLTYPE *Close)(
  22002         IFileSaveDialog *This,
  22003         HRESULT hr);
  22004 
  22005     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
  22006         IFileSaveDialog *This,
  22007         REFGUID guid);
  22008 
  22009     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
  22010         IFileSaveDialog *This);
  22011 
  22012     HRESULT (STDMETHODCALLTYPE *SetFilter)(
  22013         IFileSaveDialog *This,
  22014         IShellItemFilter *pFilter);
  22015 
  22016     /*** IFileSaveDialog methods ***/
  22017     HRESULT (STDMETHODCALLTYPE *SetSaveAsItem)(
  22018         IFileSaveDialog *This,
  22019         IShellItem *psi);
  22020 
  22021     HRESULT (STDMETHODCALLTYPE *SetProperties)(
  22022         IFileSaveDialog *This,
  22023         IPropertyStore *pStore);
  22024 
  22025     HRESULT (STDMETHODCALLTYPE *SetCollectedProperties)(
  22026         IFileSaveDialog *This,
  22027         IPropertyDescriptionList *pList,
  22028         WINBOOL fAppendDefault);
  22029 
  22030     HRESULT (STDMETHODCALLTYPE *GetProperties)(
  22031         IFileSaveDialog *This,
  22032         IPropertyStore **ppStore);
  22033 
  22034     HRESULT (STDMETHODCALLTYPE *ApplyProperties)(
  22035         IFileSaveDialog *This,
  22036         IShellItem *psi,
  22037         IPropertyStore *pStore,
  22038         HWND hwnd,
  22039         IFileOperationProgressSink *pSink);
  22040 
  22041     END_INTERFACE
  22042 } IFileSaveDialogVtbl;
  22043 
  22044 interface IFileSaveDialog {
  22045     CONST_VTBL IFileSaveDialogVtbl* lpVtbl;
  22046 };
  22047 
  22048 #ifdef COBJMACROS
  22049 #ifndef WIDL_C_INLINE_WRAPPERS
  22050 /*** IUnknown methods ***/
  22051 #define IFileSaveDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  22052 #define IFileSaveDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
  22053 #define IFileSaveDialog_Release(This) (This)->lpVtbl->Release(This)
  22054 /*** IModalWindow methods ***/
  22055 #define IFileSaveDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
  22056 /*** IFileDialog methods ***/
  22057 #define IFileSaveDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
  22058 #define IFileSaveDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
  22059 #define IFileSaveDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
  22060 #define IFileSaveDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
  22061 #define IFileSaveDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
  22062 #define IFileSaveDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
  22063 #define IFileSaveDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
  22064 #define IFileSaveDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
  22065 #define IFileSaveDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
  22066 #define IFileSaveDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
  22067 #define IFileSaveDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
  22068 #define IFileSaveDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
  22069 #define IFileSaveDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
  22070 #define IFileSaveDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
  22071 #define IFileSaveDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
  22072 #define IFileSaveDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
  22073 #define IFileSaveDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
  22074 #define IFileSaveDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
  22075 #define IFileSaveDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
  22076 #define IFileSaveDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
  22077 #define IFileSaveDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
  22078 #define IFileSaveDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
  22079 #define IFileSaveDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
  22080 /*** IFileSaveDialog methods ***/
  22081 #define IFileSaveDialog_SetSaveAsItem(This,psi) (This)->lpVtbl->SetSaveAsItem(This,psi)
  22082 #define IFileSaveDialog_SetProperties(This,pStore) (This)->lpVtbl->SetProperties(This,pStore)
  22083 #define IFileSaveDialog_SetCollectedProperties(This,pList,fAppendDefault) (This)->lpVtbl->SetCollectedProperties(This,pList,fAppendDefault)
  22084 #define IFileSaveDialog_GetProperties(This,ppStore) (This)->lpVtbl->GetProperties(This,ppStore)
  22085 #define IFileSaveDialog_ApplyProperties(This,psi,pStore,hwnd,pSink) (This)->lpVtbl->ApplyProperties(This,psi,pStore,hwnd,pSink)
  22086 #else
  22087 /*** IUnknown methods ***/
  22088 static inline HRESULT IFileSaveDialog_QueryInterface(IFileSaveDialog* This,REFIID riid,void **ppvObject) {
  22089     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  22090 }
  22091 static inline ULONG IFileSaveDialog_AddRef(IFileSaveDialog* This) {
  22092     return This->lpVtbl->AddRef(This);
  22093 }
  22094 static inline ULONG IFileSaveDialog_Release(IFileSaveDialog* This) {
  22095     return This->lpVtbl->Release(This);
  22096 }
  22097 /*** IModalWindow methods ***/
  22098 static inline HRESULT IFileSaveDialog_Show(IFileSaveDialog* This,HWND hwndOwner) {
  22099     return This->lpVtbl->Show(This,hwndOwner);
  22100 }
  22101 /*** IFileDialog methods ***/
  22102 static inline HRESULT IFileSaveDialog_SetFileTypes(IFileSaveDialog* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
  22103     return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
  22104 }
  22105 static inline HRESULT IFileSaveDialog_SetFileTypeIndex(IFileSaveDialog* This,UINT iFileType) {
  22106     return This->lpVtbl->SetFileTypeIndex(This,iFileType);
  22107 }
  22108 static inline HRESULT IFileSaveDialog_GetFileTypeIndex(IFileSaveDialog* This,UINT *piFileType) {
  22109     return This->lpVtbl->GetFileTypeIndex(This,piFileType);
  22110 }
  22111 static inline HRESULT IFileSaveDialog_Advise(IFileSaveDialog* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
  22112     return This->lpVtbl->Advise(This,pfde,pdwCookie);
  22113 }
  22114 static inline HRESULT IFileSaveDialog_Unadvise(IFileSaveDialog* This,DWORD dwCookie) {
  22115     return This->lpVtbl->Unadvise(This,dwCookie);
  22116 }
  22117 static inline HRESULT IFileSaveDialog_SetOptions(IFileSaveDialog* This,FILEOPENDIALOGOPTIONS fos) {
  22118     return This->lpVtbl->SetOptions(This,fos);
  22119 }
  22120 static inline HRESULT IFileSaveDialog_GetOptions(IFileSaveDialog* This,FILEOPENDIALOGOPTIONS *pfos) {
  22121     return This->lpVtbl->GetOptions(This,pfos);
  22122 }
  22123 static inline HRESULT IFileSaveDialog_SetDefaultFolder(IFileSaveDialog* This,IShellItem *psi) {
  22124     return This->lpVtbl->SetDefaultFolder(This,psi);
  22125 }
  22126 static inline HRESULT IFileSaveDialog_SetFolder(IFileSaveDialog* This,IShellItem *psi) {
  22127     return This->lpVtbl->SetFolder(This,psi);
  22128 }
  22129 static inline HRESULT IFileSaveDialog_GetFolder(IFileSaveDialog* This,IShellItem **ppsi) {
  22130     return This->lpVtbl->GetFolder(This,ppsi);
  22131 }
  22132 static inline HRESULT IFileSaveDialog_GetCurrentSelection(IFileSaveDialog* This,IShellItem **ppsi) {
  22133     return This->lpVtbl->GetCurrentSelection(This,ppsi);
  22134 }
  22135 static inline HRESULT IFileSaveDialog_SetFileName(IFileSaveDialog* This,LPCWSTR pszName) {
  22136     return This->lpVtbl->SetFileName(This,pszName);
  22137 }
  22138 static inline HRESULT IFileSaveDialog_GetFileName(IFileSaveDialog* This,LPWSTR *pszName) {
  22139     return This->lpVtbl->GetFileName(This,pszName);
  22140 }
  22141 static inline HRESULT IFileSaveDialog_SetTitle(IFileSaveDialog* This,LPCWSTR pszTitle) {
  22142     return This->lpVtbl->SetTitle(This,pszTitle);
  22143 }
  22144 static inline HRESULT IFileSaveDialog_SetOkButtonLabel(IFileSaveDialog* This,LPCWSTR pszText) {
  22145     return This->lpVtbl->SetOkButtonLabel(This,pszText);
  22146 }
  22147 static inline HRESULT IFileSaveDialog_SetFileNameLabel(IFileSaveDialog* This,LPCWSTR pszLabel) {
  22148     return This->lpVtbl->SetFileNameLabel(This,pszLabel);
  22149 }
  22150 static inline HRESULT IFileSaveDialog_GetResult(IFileSaveDialog* This,IShellItem **ppsi) {
  22151     return This->lpVtbl->GetResult(This,ppsi);
  22152 }
  22153 static inline HRESULT IFileSaveDialog_AddPlace(IFileSaveDialog* This,IShellItem *psi,FDAP fdap) {
  22154     return This->lpVtbl->AddPlace(This,psi,fdap);
  22155 }
  22156 static inline HRESULT IFileSaveDialog_SetDefaultExtension(IFileSaveDialog* This,LPCWSTR pszDefaultExtension) {
  22157     return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
  22158 }
  22159 static inline HRESULT IFileSaveDialog_Close(IFileSaveDialog* This,HRESULT hr) {
  22160     return This->lpVtbl->Close(This,hr);
  22161 }
  22162 static inline HRESULT IFileSaveDialog_SetClientGuid(IFileSaveDialog* This,REFGUID guid) {
  22163     return This->lpVtbl->SetClientGuid(This,guid);
  22164 }
  22165 static inline HRESULT IFileSaveDialog_ClearClientData(IFileSaveDialog* This) {
  22166     return This->lpVtbl->ClearClientData(This);
  22167 }
  22168 static inline HRESULT IFileSaveDialog_SetFilter(IFileSaveDialog* This,IShellItemFilter *pFilter) {
  22169     return This->lpVtbl->SetFilter(This,pFilter);
  22170 }
  22171 /*** IFileSaveDialog methods ***/
  22172 static inline HRESULT IFileSaveDialog_SetSaveAsItem(IFileSaveDialog* This,IShellItem *psi) {
  22173     return This->lpVtbl->SetSaveAsItem(This,psi);
  22174 }
  22175 static inline HRESULT IFileSaveDialog_SetProperties(IFileSaveDialog* This,IPropertyStore *pStore) {
  22176     return This->lpVtbl->SetProperties(This,pStore);
  22177 }
  22178 static inline HRESULT IFileSaveDialog_SetCollectedProperties(IFileSaveDialog* This,IPropertyDescriptionList *pList,WINBOOL fAppendDefault) {
  22179     return This->lpVtbl->SetCollectedProperties(This,pList,fAppendDefault);
  22180 }
  22181 static inline HRESULT IFileSaveDialog_GetProperties(IFileSaveDialog* This,IPropertyStore **ppStore) {
  22182     return This->lpVtbl->GetProperties(This,ppStore);
  22183 }
  22184 static inline HRESULT IFileSaveDialog_ApplyProperties(IFileSaveDialog* This,IShellItem *psi,IPropertyStore *pStore,HWND hwnd,IFileOperationProgressSink *pSink) {
  22185     return This->lpVtbl->ApplyProperties(This,psi,pStore,hwnd,pSink);
  22186 }
  22187 #endif
  22188 #endif
  22189 
  22190 #endif
  22191 
  22192 
  22193 #endif  /* __IFileSaveDialog_INTERFACE_DEFINED__ */
  22194 
  22195 
  22196 /*****************************************************************************
  22197  * IFileOpenDialog interface
  22198  */
  22199 #ifndef __IFileOpenDialog_INTERFACE_DEFINED__
  22200 #define __IFileOpenDialog_INTERFACE_DEFINED__
  22201 
  22202 DEFINE_GUID(IID_IFileOpenDialog, 0xd57c7288, 0xd4ad, 0x4768, 0xbe,0x02, 0x9d,0x96,0x95,0x32,0xd9,0x60);
  22203 #if defined(__cplusplus) && !defined(CINTERFACE)
  22204 MIDL_INTERFACE("d57c7288-d4ad-4768-be02-9d969532d960")
  22205 IFileOpenDialog : public IFileDialog
  22206 {
  22207     virtual HRESULT STDMETHODCALLTYPE GetResults(
  22208         IShellItemArray **ppenum) = 0;
  22209 
  22210     virtual HRESULT STDMETHODCALLTYPE GetSelectedItems(
  22211         IShellItemArray **ppsai) = 0;
  22212 
  22213 };
  22214 #ifdef __CRT_UUID_DECL
  22215 __CRT_UUID_DECL(IFileOpenDialog, 0xd57c7288, 0xd4ad, 0x4768, 0xbe,0x02, 0x9d,0x96,0x95,0x32,0xd9,0x60)
  22216 #endif
  22217 #else
  22218 typedef struct IFileOpenDialogVtbl {
  22219     BEGIN_INTERFACE
  22220 
  22221     /*** IUnknown methods ***/
  22222     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  22223         IFileOpenDialog *This,
  22224         REFIID riid,
  22225         void **ppvObject);
  22226 
  22227     ULONG (STDMETHODCALLTYPE *AddRef)(
  22228         IFileOpenDialog *This);
  22229 
  22230     ULONG (STDMETHODCALLTYPE *Release)(
  22231         IFileOpenDialog *This);
  22232 
  22233     /*** IModalWindow methods ***/
  22234     HRESULT (STDMETHODCALLTYPE *Show)(
  22235         IFileOpenDialog *This,
  22236         HWND hwndOwner);
  22237 
  22238     /*** IFileDialog methods ***/
  22239     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
  22240         IFileOpenDialog *This,
  22241         UINT cFileTypes,
  22242         const COMDLG_FILTERSPEC *rgFilterSpec);
  22243 
  22244     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
  22245         IFileOpenDialog *This,
  22246         UINT iFileType);
  22247 
  22248     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
  22249         IFileOpenDialog *This,
  22250         UINT *piFileType);
  22251 
  22252     HRESULT (STDMETHODCALLTYPE *Advise)(
  22253         IFileOpenDialog *This,
  22254         IFileDialogEvents *pfde,
  22255         DWORD *pdwCookie);
  22256 
  22257     HRESULT (STDMETHODCALLTYPE *Unadvise)(
  22258         IFileOpenDialog *This,
  22259         DWORD dwCookie);
  22260 
  22261     HRESULT (STDMETHODCALLTYPE *SetOptions)(
  22262         IFileOpenDialog *This,
  22263         FILEOPENDIALOGOPTIONS fos);
  22264 
  22265     HRESULT (STDMETHODCALLTYPE *GetOptions)(
  22266         IFileOpenDialog *This,
  22267         FILEOPENDIALOGOPTIONS *pfos);
  22268 
  22269     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
  22270         IFileOpenDialog *This,
  22271         IShellItem *psi);
  22272 
  22273     HRESULT (STDMETHODCALLTYPE *SetFolder)(
  22274         IFileOpenDialog *This,
  22275         IShellItem *psi);
  22276 
  22277     HRESULT (STDMETHODCALLTYPE *GetFolder)(
  22278         IFileOpenDialog *This,
  22279         IShellItem **ppsi);
  22280 
  22281     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
  22282         IFileOpenDialog *This,
  22283         IShellItem **ppsi);
  22284 
  22285     HRESULT (STDMETHODCALLTYPE *SetFileName)(
  22286         IFileOpenDialog *This,
  22287         LPCWSTR pszName);
  22288 
  22289     HRESULT (STDMETHODCALLTYPE *GetFileName)(
  22290         IFileOpenDialog *This,
  22291         LPWSTR *pszName);
  22292 
  22293     HRESULT (STDMETHODCALLTYPE *SetTitle)(
  22294         IFileOpenDialog *This,
  22295         LPCWSTR pszTitle);
  22296 
  22297     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
  22298         IFileOpenDialog *This,
  22299         LPCWSTR pszText);
  22300 
  22301     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
  22302         IFileOpenDialog *This,
  22303         LPCWSTR pszLabel);
  22304 
  22305     HRESULT (STDMETHODCALLTYPE *GetResult)(
  22306         IFileOpenDialog *This,
  22307         IShellItem **ppsi);
  22308 
  22309     HRESULT (STDMETHODCALLTYPE *AddPlace)(
  22310         IFileOpenDialog *This,
  22311         IShellItem *psi,
  22312         FDAP fdap);
  22313 
  22314     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
  22315         IFileOpenDialog *This,
  22316         LPCWSTR pszDefaultExtension);
  22317 
  22318     HRESULT (STDMETHODCALLTYPE *Close)(
  22319         IFileOpenDialog *This,
  22320         HRESULT hr);
  22321 
  22322     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
  22323         IFileOpenDialog *This,
  22324         REFGUID guid);
  22325 
  22326     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
  22327         IFileOpenDialog *This);
  22328 
  22329     HRESULT (STDMETHODCALLTYPE *SetFilter)(
  22330         IFileOpenDialog *This,
  22331         IShellItemFilter *pFilter);
  22332 
  22333     /*** IFileOpenDialog methods ***/
  22334     HRESULT (STDMETHODCALLTYPE *GetResults)(
  22335         IFileOpenDialog *This,
  22336         IShellItemArray **ppenum);
  22337 
  22338     HRESULT (STDMETHODCALLTYPE *GetSelectedItems)(
  22339         IFileOpenDialog *This,
  22340         IShellItemArray **ppsai);
  22341 
  22342     END_INTERFACE
  22343 } IFileOpenDialogVtbl;
  22344 
  22345 interface IFileOpenDialog {
  22346     CONST_VTBL IFileOpenDialogVtbl* lpVtbl;
  22347 };
  22348 
  22349 #ifdef COBJMACROS
  22350 #ifndef WIDL_C_INLINE_WRAPPERS
  22351 /*** IUnknown methods ***/
  22352 #define IFileOpenDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  22353 #define IFileOpenDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
  22354 #define IFileOpenDialog_Release(This) (This)->lpVtbl->Release(This)
  22355 /*** IModalWindow methods ***/
  22356 #define IFileOpenDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
  22357 /*** IFileDialog methods ***/
  22358 #define IFileOpenDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
  22359 #define IFileOpenDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
  22360 #define IFileOpenDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
  22361 #define IFileOpenDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
  22362 #define IFileOpenDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
  22363 #define IFileOpenDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
  22364 #define IFileOpenDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
  22365 #define IFileOpenDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
  22366 #define IFileOpenDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
  22367 #define IFileOpenDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
  22368 #define IFileOpenDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
  22369 #define IFileOpenDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
  22370 #define IFileOpenDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
  22371 #define IFileOpenDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
  22372 #define IFileOpenDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
  22373 #define IFileOpenDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
  22374 #define IFileOpenDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
  22375 #define IFileOpenDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
  22376 #define IFileOpenDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
  22377 #define IFileOpenDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
  22378 #define IFileOpenDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
  22379 #define IFileOpenDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
  22380 #define IFileOpenDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
  22381 /*** IFileOpenDialog methods ***/
  22382 #define IFileOpenDialog_GetResults(This,ppenum) (This)->lpVtbl->GetResults(This,ppenum)
  22383 #define IFileOpenDialog_GetSelectedItems(This,ppsai) (This)->lpVtbl->GetSelectedItems(This,ppsai)
  22384 #else
  22385 /*** IUnknown methods ***/
  22386 static inline HRESULT IFileOpenDialog_QueryInterface(IFileOpenDialog* This,REFIID riid,void **ppvObject) {
  22387     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  22388 }
  22389 static inline ULONG IFileOpenDialog_AddRef(IFileOpenDialog* This) {
  22390     return This->lpVtbl->AddRef(This);
  22391 }
  22392 static inline ULONG IFileOpenDialog_Release(IFileOpenDialog* This) {
  22393     return This->lpVtbl->Release(This);
  22394 }
  22395 /*** IModalWindow methods ***/
  22396 static inline HRESULT IFileOpenDialog_Show(IFileOpenDialog* This,HWND hwndOwner) {
  22397     return This->lpVtbl->Show(This,hwndOwner);
  22398 }
  22399 /*** IFileDialog methods ***/
  22400 static inline HRESULT IFileOpenDialog_SetFileTypes(IFileOpenDialog* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
  22401     return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
  22402 }
  22403 static inline HRESULT IFileOpenDialog_SetFileTypeIndex(IFileOpenDialog* This,UINT iFileType) {
  22404     return This->lpVtbl->SetFileTypeIndex(This,iFileType);
  22405 }
  22406 static inline HRESULT IFileOpenDialog_GetFileTypeIndex(IFileOpenDialog* This,UINT *piFileType) {
  22407     return This->lpVtbl->GetFileTypeIndex(This,piFileType);
  22408 }
  22409 static inline HRESULT IFileOpenDialog_Advise(IFileOpenDialog* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
  22410     return This->lpVtbl->Advise(This,pfde,pdwCookie);
  22411 }
  22412 static inline HRESULT IFileOpenDialog_Unadvise(IFileOpenDialog* This,DWORD dwCookie) {
  22413     return This->lpVtbl->Unadvise(This,dwCookie);
  22414 }
  22415 static inline HRESULT IFileOpenDialog_SetOptions(IFileOpenDialog* This,FILEOPENDIALOGOPTIONS fos) {
  22416     return This->lpVtbl->SetOptions(This,fos);
  22417 }
  22418 static inline HRESULT IFileOpenDialog_GetOptions(IFileOpenDialog* This,FILEOPENDIALOGOPTIONS *pfos) {
  22419     return This->lpVtbl->GetOptions(This,pfos);
  22420 }
  22421 static inline HRESULT IFileOpenDialog_SetDefaultFolder(IFileOpenDialog* This,IShellItem *psi) {
  22422     return This->lpVtbl->SetDefaultFolder(This,psi);
  22423 }
  22424 static inline HRESULT IFileOpenDialog_SetFolder(IFileOpenDialog* This,IShellItem *psi) {
  22425     return This->lpVtbl->SetFolder(This,psi);
  22426 }
  22427 static inline HRESULT IFileOpenDialog_GetFolder(IFileOpenDialog* This,IShellItem **ppsi) {
  22428     return This->lpVtbl->GetFolder(This,ppsi);
  22429 }
  22430 static inline HRESULT IFileOpenDialog_GetCurrentSelection(IFileOpenDialog* This,IShellItem **ppsi) {
  22431     return This->lpVtbl->GetCurrentSelection(This,ppsi);
  22432 }
  22433 static inline HRESULT IFileOpenDialog_SetFileName(IFileOpenDialog* This,LPCWSTR pszName) {
  22434     return This->lpVtbl->SetFileName(This,pszName);
  22435 }
  22436 static inline HRESULT IFileOpenDialog_GetFileName(IFileOpenDialog* This,LPWSTR *pszName) {
  22437     return This->lpVtbl->GetFileName(This,pszName);
  22438 }
  22439 static inline HRESULT IFileOpenDialog_SetTitle(IFileOpenDialog* This,LPCWSTR pszTitle) {
  22440     return This->lpVtbl->SetTitle(This,pszTitle);
  22441 }
  22442 static inline HRESULT IFileOpenDialog_SetOkButtonLabel(IFileOpenDialog* This,LPCWSTR pszText) {
  22443     return This->lpVtbl->SetOkButtonLabel(This,pszText);
  22444 }
  22445 static inline HRESULT IFileOpenDialog_SetFileNameLabel(IFileOpenDialog* This,LPCWSTR pszLabel) {
  22446     return This->lpVtbl->SetFileNameLabel(This,pszLabel);
  22447 }
  22448 static inline HRESULT IFileOpenDialog_GetResult(IFileOpenDialog* This,IShellItem **ppsi) {
  22449     return This->lpVtbl->GetResult(This,ppsi);
  22450 }
  22451 static inline HRESULT IFileOpenDialog_AddPlace(IFileOpenDialog* This,IShellItem *psi,FDAP fdap) {
  22452     return This->lpVtbl->AddPlace(This,psi,fdap);
  22453 }
  22454 static inline HRESULT IFileOpenDialog_SetDefaultExtension(IFileOpenDialog* This,LPCWSTR pszDefaultExtension) {
  22455     return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
  22456 }
  22457 static inline HRESULT IFileOpenDialog_Close(IFileOpenDialog* This,HRESULT hr) {
  22458     return This->lpVtbl->Close(This,hr);
  22459 }
  22460 static inline HRESULT IFileOpenDialog_SetClientGuid(IFileOpenDialog* This,REFGUID guid) {
  22461     return This->lpVtbl->SetClientGuid(This,guid);
  22462 }
  22463 static inline HRESULT IFileOpenDialog_ClearClientData(IFileOpenDialog* This) {
  22464     return This->lpVtbl->ClearClientData(This);
  22465 }
  22466 static inline HRESULT IFileOpenDialog_SetFilter(IFileOpenDialog* This,IShellItemFilter *pFilter) {
  22467     return This->lpVtbl->SetFilter(This,pFilter);
  22468 }
  22469 /*** IFileOpenDialog methods ***/
  22470 static inline HRESULT IFileOpenDialog_GetResults(IFileOpenDialog* This,IShellItemArray **ppenum) {
  22471     return This->lpVtbl->GetResults(This,ppenum);
  22472 }
  22473 static inline HRESULT IFileOpenDialog_GetSelectedItems(IFileOpenDialog* This,IShellItemArray **ppsai) {
  22474     return This->lpVtbl->GetSelectedItems(This,ppsai);
  22475 }
  22476 #endif
  22477 #endif
  22478 
  22479 #endif
  22480 
  22481 
  22482 #endif  /* __IFileOpenDialog_INTERFACE_DEFINED__ */
  22483 
  22484 
  22485 typedef enum CDCONTROLSTATEF {
  22486     CDCS_INACTIVE = 0x0,
  22487     CDCS_ENABLED = 0x1,
  22488     CDCS_VISIBLE = 0x2,
  22489     CDCS_ENABLEDVISIBLE = 0x3
  22490 } CDCONTROLSTATEF;
  22491 
  22492 DEFINE_ENUM_FLAG_OPERATORS(CDCONTROLSTATEF)
  22493 
  22494 /*****************************************************************************
  22495  * IFileDialogCustomize interface
  22496  */
  22497 #ifndef __IFileDialogCustomize_INTERFACE_DEFINED__
  22498 #define __IFileDialogCustomize_INTERFACE_DEFINED__
  22499 
  22500 DEFINE_GUID(IID_IFileDialogCustomize, 0xe6fdd21a, 0x163f, 0x4975, 0x9c,0x8c, 0xa6,0x9f,0x1b,0xa3,0x70,0x34);
  22501 #if defined(__cplusplus) && !defined(CINTERFACE)
  22502 MIDL_INTERFACE("e6fdd21a-163f-4975-9c8c-a69f1ba37034")
  22503 IFileDialogCustomize : public IUnknown
  22504 {
  22505     virtual HRESULT STDMETHODCALLTYPE EnableOpenDropDown(
  22506         DWORD dwIDCtl) = 0;
  22507 
  22508     virtual HRESULT STDMETHODCALLTYPE AddMenu(
  22509         DWORD dwIDCtl,
  22510         LPCWSTR pszLabel) = 0;
  22511 
  22512     virtual HRESULT STDMETHODCALLTYPE AddPushButton(
  22513         DWORD dwIDCtl,
  22514         LPCWSTR pszLabel) = 0;
  22515 
  22516     virtual HRESULT STDMETHODCALLTYPE AddComboBox(
  22517         DWORD dwIDCtl) = 0;
  22518 
  22519     virtual HRESULT STDMETHODCALLTYPE AddRadioButtonList(
  22520         DWORD dwIDCtl) = 0;
  22521 
  22522     virtual HRESULT STDMETHODCALLTYPE AddCheckButton(
  22523         DWORD dwIDCtl,
  22524         LPCWSTR pszLabel,
  22525         WINBOOL bChecked) = 0;
  22526 
  22527     virtual HRESULT STDMETHODCALLTYPE AddEditBox(
  22528         DWORD dwIDCtl,
  22529         LPCWSTR pszText) = 0;
  22530 
  22531     virtual HRESULT STDMETHODCALLTYPE AddSeparator(
  22532         DWORD dwIDCtl) = 0;
  22533 
  22534     virtual HRESULT STDMETHODCALLTYPE AddText(
  22535         DWORD dwIDCtl,
  22536         LPCWSTR pszText) = 0;
  22537 
  22538     virtual HRESULT STDMETHODCALLTYPE SetControlLabel(
  22539         DWORD dwIDCtl,
  22540         LPCWSTR pszLabel) = 0;
  22541 
  22542     virtual HRESULT STDMETHODCALLTYPE GetControlState(
  22543         DWORD dwIDCtl,
  22544         CDCONTROLSTATEF *pdwState) = 0;
  22545 
  22546     virtual HRESULT STDMETHODCALLTYPE SetControlState(
  22547         DWORD dwIDCtl,
  22548         CDCONTROLSTATEF dwState) = 0;
  22549 
  22550     virtual HRESULT STDMETHODCALLTYPE GetEditBoxText(
  22551         DWORD dwIDCtl,
  22552         WCHAR **ppszText) = 0;
  22553 
  22554     virtual HRESULT STDMETHODCALLTYPE SetEditBoxText(
  22555         DWORD dwIDCtl,
  22556         LPCWSTR pszText) = 0;
  22557 
  22558     virtual HRESULT STDMETHODCALLTYPE GetCheckButtonState(
  22559         DWORD dwIDCtl,
  22560         WINBOOL *pbChecked) = 0;
  22561 
  22562     virtual HRESULT STDMETHODCALLTYPE SetCheckButtonState(
  22563         DWORD dwIDCtl,
  22564         WINBOOL bChecked) = 0;
  22565 
  22566     virtual HRESULT STDMETHODCALLTYPE AddControlItem(
  22567         DWORD dwIDCtl,
  22568         DWORD dwIDItem,
  22569         LPCWSTR pszLabel) = 0;
  22570 
  22571     virtual HRESULT STDMETHODCALLTYPE RemoveControlItem(
  22572         DWORD dwIDCtl,
  22573         DWORD dwIDItem) = 0;
  22574 
  22575     virtual HRESULT STDMETHODCALLTYPE RemoveAllControlItems(
  22576         DWORD dwIDCtl) = 0;
  22577 
  22578     virtual HRESULT STDMETHODCALLTYPE GetControlItemState(
  22579         DWORD dwIDCtl,
  22580         DWORD dwIDItem,
  22581         CDCONTROLSTATEF *pdwState) = 0;
  22582 
  22583     virtual HRESULT STDMETHODCALLTYPE SetControlItemState(
  22584         DWORD dwIDCtl,
  22585         DWORD dwIDItem,
  22586         CDCONTROLSTATEF dwState) = 0;
  22587 
  22588     virtual HRESULT STDMETHODCALLTYPE GetSelectedControlItem(
  22589         DWORD dwIDCtl,
  22590         DWORD *pdwIDItem) = 0;
  22591 
  22592     virtual HRESULT STDMETHODCALLTYPE SetSelectedControlItem(
  22593         DWORD dwIDCtl,
  22594         DWORD dwIDItem) = 0;
  22595 
  22596     virtual HRESULT STDMETHODCALLTYPE StartVisualGroup(
  22597         DWORD dwIDCtl,
  22598         LPCWSTR pszLabel) = 0;
  22599 
  22600     virtual HRESULT STDMETHODCALLTYPE EndVisualGroup(
  22601         ) = 0;
  22602 
  22603     virtual HRESULT STDMETHODCALLTYPE MakeProminent(
  22604         DWORD dwIDCtl) = 0;
  22605 
  22606     virtual HRESULT STDMETHODCALLTYPE SetControlItemText(
  22607         DWORD dwIDCtl,
  22608         DWORD dwIDItem,
  22609         LPCWSTR pszLabel) = 0;
  22610 
  22611 };
  22612 #ifdef __CRT_UUID_DECL
  22613 __CRT_UUID_DECL(IFileDialogCustomize, 0xe6fdd21a, 0x163f, 0x4975, 0x9c,0x8c, 0xa6,0x9f,0x1b,0xa3,0x70,0x34)
  22614 #endif
  22615 #else
  22616 typedef struct IFileDialogCustomizeVtbl {
  22617     BEGIN_INTERFACE
  22618 
  22619     /*** IUnknown methods ***/
  22620     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  22621         IFileDialogCustomize *This,
  22622         REFIID riid,
  22623         void **ppvObject);
  22624 
  22625     ULONG (STDMETHODCALLTYPE *AddRef)(
  22626         IFileDialogCustomize *This);
  22627 
  22628     ULONG (STDMETHODCALLTYPE *Release)(
  22629         IFileDialogCustomize *This);
  22630 
  22631     /*** IFileDialogCustomize methods ***/
  22632     HRESULT (STDMETHODCALLTYPE *EnableOpenDropDown)(
  22633         IFileDialogCustomize *This,
  22634         DWORD dwIDCtl);
  22635 
  22636     HRESULT (STDMETHODCALLTYPE *AddMenu)(
  22637         IFileDialogCustomize *This,
  22638         DWORD dwIDCtl,
  22639         LPCWSTR pszLabel);
  22640 
  22641     HRESULT (STDMETHODCALLTYPE *AddPushButton)(
  22642         IFileDialogCustomize *This,
  22643         DWORD dwIDCtl,
  22644         LPCWSTR pszLabel);
  22645 
  22646     HRESULT (STDMETHODCALLTYPE *AddComboBox)(
  22647         IFileDialogCustomize *This,
  22648         DWORD dwIDCtl);
  22649 
  22650     HRESULT (STDMETHODCALLTYPE *AddRadioButtonList)(
  22651         IFileDialogCustomize *This,
  22652         DWORD dwIDCtl);
  22653 
  22654     HRESULT (STDMETHODCALLTYPE *AddCheckButton)(
  22655         IFileDialogCustomize *This,
  22656         DWORD dwIDCtl,
  22657         LPCWSTR pszLabel,
  22658         WINBOOL bChecked);
  22659 
  22660     HRESULT (STDMETHODCALLTYPE *AddEditBox)(
  22661         IFileDialogCustomize *This,
  22662         DWORD dwIDCtl,
  22663         LPCWSTR pszText);
  22664 
  22665     HRESULT (STDMETHODCALLTYPE *AddSeparator)(
  22666         IFileDialogCustomize *This,
  22667         DWORD dwIDCtl);
  22668 
  22669     HRESULT (STDMETHODCALLTYPE *AddText)(
  22670         IFileDialogCustomize *This,
  22671         DWORD dwIDCtl,
  22672         LPCWSTR pszText);
  22673 
  22674     HRESULT (STDMETHODCALLTYPE *SetControlLabel)(
  22675         IFileDialogCustomize *This,
  22676         DWORD dwIDCtl,
  22677         LPCWSTR pszLabel);
  22678 
  22679     HRESULT (STDMETHODCALLTYPE *GetControlState)(
  22680         IFileDialogCustomize *This,
  22681         DWORD dwIDCtl,
  22682         CDCONTROLSTATEF *pdwState);
  22683 
  22684     HRESULT (STDMETHODCALLTYPE *SetControlState)(
  22685         IFileDialogCustomize *This,
  22686         DWORD dwIDCtl,
  22687         CDCONTROLSTATEF dwState);
  22688 
  22689     HRESULT (STDMETHODCALLTYPE *GetEditBoxText)(
  22690         IFileDialogCustomize *This,
  22691         DWORD dwIDCtl,
  22692         WCHAR **ppszText);
  22693 
  22694     HRESULT (STDMETHODCALLTYPE *SetEditBoxText)(
  22695         IFileDialogCustomize *This,
  22696         DWORD dwIDCtl,
  22697         LPCWSTR pszText);
  22698 
  22699     HRESULT (STDMETHODCALLTYPE *GetCheckButtonState)(
  22700         IFileDialogCustomize *This,
  22701         DWORD dwIDCtl,
  22702         WINBOOL *pbChecked);
  22703 
  22704     HRESULT (STDMETHODCALLTYPE *SetCheckButtonState)(
  22705         IFileDialogCustomize *This,
  22706         DWORD dwIDCtl,
  22707         WINBOOL bChecked);
  22708 
  22709     HRESULT (STDMETHODCALLTYPE *AddControlItem)(
  22710         IFileDialogCustomize *This,
  22711         DWORD dwIDCtl,
  22712         DWORD dwIDItem,
  22713         LPCWSTR pszLabel);
  22714 
  22715     HRESULT (STDMETHODCALLTYPE *RemoveControlItem)(
  22716         IFileDialogCustomize *This,
  22717         DWORD dwIDCtl,
  22718         DWORD dwIDItem);
  22719 
  22720     HRESULT (STDMETHODCALLTYPE *RemoveAllControlItems)(
  22721         IFileDialogCustomize *This,
  22722         DWORD dwIDCtl);
  22723 
  22724     HRESULT (STDMETHODCALLTYPE *GetControlItemState)(
  22725         IFileDialogCustomize *This,
  22726         DWORD dwIDCtl,
  22727         DWORD dwIDItem,
  22728         CDCONTROLSTATEF *pdwState);
  22729 
  22730     HRESULT (STDMETHODCALLTYPE *SetControlItemState)(
  22731         IFileDialogCustomize *This,
  22732         DWORD dwIDCtl,
  22733         DWORD dwIDItem,
  22734         CDCONTROLSTATEF dwState);
  22735 
  22736     HRESULT (STDMETHODCALLTYPE *GetSelectedControlItem)(
  22737         IFileDialogCustomize *This,
  22738         DWORD dwIDCtl,
  22739         DWORD *pdwIDItem);
  22740 
  22741     HRESULT (STDMETHODCALLTYPE *SetSelectedControlItem)(
  22742         IFileDialogCustomize *This,
  22743         DWORD dwIDCtl,
  22744         DWORD dwIDItem);
  22745 
  22746     HRESULT (STDMETHODCALLTYPE *StartVisualGroup)(
  22747         IFileDialogCustomize *This,
  22748         DWORD dwIDCtl,
  22749         LPCWSTR pszLabel);
  22750 
  22751     HRESULT (STDMETHODCALLTYPE *EndVisualGroup)(
  22752         IFileDialogCustomize *This);
  22753 
  22754     HRESULT (STDMETHODCALLTYPE *MakeProminent)(
  22755         IFileDialogCustomize *This,
  22756         DWORD dwIDCtl);
  22757 
  22758     HRESULT (STDMETHODCALLTYPE *SetControlItemText)(
  22759         IFileDialogCustomize *This,
  22760         DWORD dwIDCtl,
  22761         DWORD dwIDItem,
  22762         LPCWSTR pszLabel);
  22763 
  22764     END_INTERFACE
  22765 } IFileDialogCustomizeVtbl;
  22766 
  22767 interface IFileDialogCustomize {
  22768     CONST_VTBL IFileDialogCustomizeVtbl* lpVtbl;
  22769 };
  22770 
  22771 #ifdef COBJMACROS
  22772 #ifndef WIDL_C_INLINE_WRAPPERS
  22773 /*** IUnknown methods ***/
  22774 #define IFileDialogCustomize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  22775 #define IFileDialogCustomize_AddRef(This) (This)->lpVtbl->AddRef(This)
  22776 #define IFileDialogCustomize_Release(This) (This)->lpVtbl->Release(This)
  22777 /*** IFileDialogCustomize methods ***/
  22778 #define IFileDialogCustomize_EnableOpenDropDown(This,dwIDCtl) (This)->lpVtbl->EnableOpenDropDown(This,dwIDCtl)
  22779 #define IFileDialogCustomize_AddMenu(This,dwIDCtl,pszLabel) (This)->lpVtbl->AddMenu(This,dwIDCtl,pszLabel)
  22780 #define IFileDialogCustomize_AddPushButton(This,dwIDCtl,pszLabel) (This)->lpVtbl->AddPushButton(This,dwIDCtl,pszLabel)
  22781 #define IFileDialogCustomize_AddComboBox(This,dwIDCtl) (This)->lpVtbl->AddComboBox(This,dwIDCtl)
  22782 #define IFileDialogCustomize_AddRadioButtonList(This,dwIDCtl) (This)->lpVtbl->AddRadioButtonList(This,dwIDCtl)
  22783 #define IFileDialogCustomize_AddCheckButton(This,dwIDCtl,pszLabel,bChecked) (This)->lpVtbl->AddCheckButton(This,dwIDCtl,pszLabel,bChecked)
  22784 #define IFileDialogCustomize_AddEditBox(This,dwIDCtl,pszText) (This)->lpVtbl->AddEditBox(This,dwIDCtl,pszText)
  22785 #define IFileDialogCustomize_AddSeparator(This,dwIDCtl) (This)->lpVtbl->AddSeparator(This,dwIDCtl)
  22786 #define IFileDialogCustomize_AddText(This,dwIDCtl,pszText) (This)->lpVtbl->AddText(This,dwIDCtl,pszText)
  22787 #define IFileDialogCustomize_SetControlLabel(This,dwIDCtl,pszLabel) (This)->lpVtbl->SetControlLabel(This,dwIDCtl,pszLabel)
  22788 #define IFileDialogCustomize_GetControlState(This,dwIDCtl,pdwState) (This)->lpVtbl->GetControlState(This,dwIDCtl,pdwState)
  22789 #define IFileDialogCustomize_SetControlState(This,dwIDCtl,dwState) (This)->lpVtbl->SetControlState(This,dwIDCtl,dwState)
  22790 #define IFileDialogCustomize_GetEditBoxText(This,dwIDCtl,ppszText) (This)->lpVtbl->GetEditBoxText(This,dwIDCtl,ppszText)
  22791 #define IFileDialogCustomize_SetEditBoxText(This,dwIDCtl,pszText) (This)->lpVtbl->SetEditBoxText(This,dwIDCtl,pszText)
  22792 #define IFileDialogCustomize_GetCheckButtonState(This,dwIDCtl,pbChecked) (This)->lpVtbl->GetCheckButtonState(This,dwIDCtl,pbChecked)
  22793 #define IFileDialogCustomize_SetCheckButtonState(This,dwIDCtl,bChecked) (This)->lpVtbl->SetCheckButtonState(This,dwIDCtl,bChecked)
  22794 #define IFileDialogCustomize_AddControlItem(This,dwIDCtl,dwIDItem,pszLabel) (This)->lpVtbl->AddControlItem(This,dwIDCtl,dwIDItem,pszLabel)
  22795 #define IFileDialogCustomize_RemoveControlItem(This,dwIDCtl,dwIDItem) (This)->lpVtbl->RemoveControlItem(This,dwIDCtl,dwIDItem)
  22796 #define IFileDialogCustomize_RemoveAllControlItems(This,dwIDCtl) (This)->lpVtbl->RemoveAllControlItems(This,dwIDCtl)
  22797 #define IFileDialogCustomize_GetControlItemState(This,dwIDCtl,dwIDItem,pdwState) (This)->lpVtbl->GetControlItemState(This,dwIDCtl,dwIDItem,pdwState)
  22798 #define IFileDialogCustomize_SetControlItemState(This,dwIDCtl,dwIDItem,dwState) (This)->lpVtbl->SetControlItemState(This,dwIDCtl,dwIDItem,dwState)
  22799 #define IFileDialogCustomize_GetSelectedControlItem(This,dwIDCtl,pdwIDItem) (This)->lpVtbl->GetSelectedControlItem(This,dwIDCtl,pdwIDItem)
  22800 #define IFileDialogCustomize_SetSelectedControlItem(This,dwIDCtl,dwIDItem) (This)->lpVtbl->SetSelectedControlItem(This,dwIDCtl,dwIDItem)
  22801 #define IFileDialogCustomize_StartVisualGroup(This,dwIDCtl,pszLabel) (This)->lpVtbl->StartVisualGroup(This,dwIDCtl,pszLabel)
  22802 #define IFileDialogCustomize_EndVisualGroup(This) (This)->lpVtbl->EndVisualGroup(This)
  22803 #define IFileDialogCustomize_MakeProminent(This,dwIDCtl) (This)->lpVtbl->MakeProminent(This,dwIDCtl)
  22804 #define IFileDialogCustomize_SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel) (This)->lpVtbl->SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel)
  22805 #else
  22806 /*** IUnknown methods ***/
  22807 static inline HRESULT IFileDialogCustomize_QueryInterface(IFileDialogCustomize* This,REFIID riid,void **ppvObject) {
  22808     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  22809 }
  22810 static inline ULONG IFileDialogCustomize_AddRef(IFileDialogCustomize* This) {
  22811     return This->lpVtbl->AddRef(This);
  22812 }
  22813 static inline ULONG IFileDialogCustomize_Release(IFileDialogCustomize* This) {
  22814     return This->lpVtbl->Release(This);
  22815 }
  22816 /*** IFileDialogCustomize methods ***/
  22817 static inline HRESULT IFileDialogCustomize_EnableOpenDropDown(IFileDialogCustomize* This,DWORD dwIDCtl) {
  22818     return This->lpVtbl->EnableOpenDropDown(This,dwIDCtl);
  22819 }
  22820 static inline HRESULT IFileDialogCustomize_AddMenu(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
  22821     return This->lpVtbl->AddMenu(This,dwIDCtl,pszLabel);
  22822 }
  22823 static inline HRESULT IFileDialogCustomize_AddPushButton(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
  22824     return This->lpVtbl->AddPushButton(This,dwIDCtl,pszLabel);
  22825 }
  22826 static inline HRESULT IFileDialogCustomize_AddComboBox(IFileDialogCustomize* This,DWORD dwIDCtl) {
  22827     return This->lpVtbl->AddComboBox(This,dwIDCtl);
  22828 }
  22829 static inline HRESULT IFileDialogCustomize_AddRadioButtonList(IFileDialogCustomize* This,DWORD dwIDCtl) {
  22830     return This->lpVtbl->AddRadioButtonList(This,dwIDCtl);
  22831 }
  22832 static inline HRESULT IFileDialogCustomize_AddCheckButton(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel,WINBOOL bChecked) {
  22833     return This->lpVtbl->AddCheckButton(This,dwIDCtl,pszLabel,bChecked);
  22834 }
  22835 static inline HRESULT IFileDialogCustomize_AddEditBox(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszText) {
  22836     return This->lpVtbl->AddEditBox(This,dwIDCtl,pszText);
  22837 }
  22838 static inline HRESULT IFileDialogCustomize_AddSeparator(IFileDialogCustomize* This,DWORD dwIDCtl) {
  22839     return This->lpVtbl->AddSeparator(This,dwIDCtl);
  22840 }
  22841 static inline HRESULT IFileDialogCustomize_AddText(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszText) {
  22842     return This->lpVtbl->AddText(This,dwIDCtl,pszText);
  22843 }
  22844 static inline HRESULT IFileDialogCustomize_SetControlLabel(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
  22845     return This->lpVtbl->SetControlLabel(This,dwIDCtl,pszLabel);
  22846 }
  22847 static inline HRESULT IFileDialogCustomize_GetControlState(IFileDialogCustomize* This,DWORD dwIDCtl,CDCONTROLSTATEF *pdwState) {
  22848     return This->lpVtbl->GetControlState(This,dwIDCtl,pdwState);
  22849 }
  22850 static inline HRESULT IFileDialogCustomize_SetControlState(IFileDialogCustomize* This,DWORD dwIDCtl,CDCONTROLSTATEF dwState) {
  22851     return This->lpVtbl->SetControlState(This,dwIDCtl,dwState);
  22852 }
  22853 static inline HRESULT IFileDialogCustomize_GetEditBoxText(IFileDialogCustomize* This,DWORD dwIDCtl,WCHAR **ppszText) {
  22854     return This->lpVtbl->GetEditBoxText(This,dwIDCtl,ppszText);
  22855 }
  22856 static inline HRESULT IFileDialogCustomize_SetEditBoxText(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszText) {
  22857     return This->lpVtbl->SetEditBoxText(This,dwIDCtl,pszText);
  22858 }
  22859 static inline HRESULT IFileDialogCustomize_GetCheckButtonState(IFileDialogCustomize* This,DWORD dwIDCtl,WINBOOL *pbChecked) {
  22860     return This->lpVtbl->GetCheckButtonState(This,dwIDCtl,pbChecked);
  22861 }
  22862 static inline HRESULT IFileDialogCustomize_SetCheckButtonState(IFileDialogCustomize* This,DWORD dwIDCtl,WINBOOL bChecked) {
  22863     return This->lpVtbl->SetCheckButtonState(This,dwIDCtl,bChecked);
  22864 }
  22865 static inline HRESULT IFileDialogCustomize_AddControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,LPCWSTR pszLabel) {
  22866     return This->lpVtbl->AddControlItem(This,dwIDCtl,dwIDItem,pszLabel);
  22867 }
  22868 static inline HRESULT IFileDialogCustomize_RemoveControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem) {
  22869     return This->lpVtbl->RemoveControlItem(This,dwIDCtl,dwIDItem);
  22870 }
  22871 static inline HRESULT IFileDialogCustomize_RemoveAllControlItems(IFileDialogCustomize* This,DWORD dwIDCtl) {
  22872     return This->lpVtbl->RemoveAllControlItems(This,dwIDCtl);
  22873 }
  22874 static inline HRESULT IFileDialogCustomize_GetControlItemState(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,CDCONTROLSTATEF *pdwState) {
  22875     return This->lpVtbl->GetControlItemState(This,dwIDCtl,dwIDItem,pdwState);
  22876 }
  22877 static inline HRESULT IFileDialogCustomize_SetControlItemState(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,CDCONTROLSTATEF dwState) {
  22878     return This->lpVtbl->SetControlItemState(This,dwIDCtl,dwIDItem,dwState);
  22879 }
  22880 static inline HRESULT IFileDialogCustomize_GetSelectedControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD *pdwIDItem) {
  22881     return This->lpVtbl->GetSelectedControlItem(This,dwIDCtl,pdwIDItem);
  22882 }
  22883 static inline HRESULT IFileDialogCustomize_SetSelectedControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem) {
  22884     return This->lpVtbl->SetSelectedControlItem(This,dwIDCtl,dwIDItem);
  22885 }
  22886 static inline HRESULT IFileDialogCustomize_StartVisualGroup(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
  22887     return This->lpVtbl->StartVisualGroup(This,dwIDCtl,pszLabel);
  22888 }
  22889 static inline HRESULT IFileDialogCustomize_EndVisualGroup(IFileDialogCustomize* This) {
  22890     return This->lpVtbl->EndVisualGroup(This);
  22891 }
  22892 static inline HRESULT IFileDialogCustomize_MakeProminent(IFileDialogCustomize* This,DWORD dwIDCtl) {
  22893     return This->lpVtbl->MakeProminent(This,dwIDCtl);
  22894 }
  22895 static inline HRESULT IFileDialogCustomize_SetControlItemText(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,LPCWSTR pszLabel) {
  22896     return This->lpVtbl->SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel);
  22897 }
  22898 #endif
  22899 #endif
  22900 
  22901 #endif
  22902 
  22903 
  22904 #endif  /* __IFileDialogCustomize_INTERFACE_DEFINED__ */
  22905 
  22906 
  22907 /*****************************************************************************
  22908  * IFileDialogControlEvents interface
  22909  */
  22910 #ifndef __IFileDialogControlEvents_INTERFACE_DEFINED__
  22911 #define __IFileDialogControlEvents_INTERFACE_DEFINED__
  22912 
  22913 DEFINE_GUID(IID_IFileDialogControlEvents, 0x36116642, 0xd713, 0x4b97, 0x9b,0x83, 0x74,0x84,0xa9,0xd0,0x04,0x33);
  22914 #if defined(__cplusplus) && !defined(CINTERFACE)
  22915 MIDL_INTERFACE("36116642-d713-4b97-9b83-7484a9d00433")
  22916 IFileDialogControlEvents : public IUnknown
  22917 {
  22918     virtual HRESULT STDMETHODCALLTYPE OnItemSelected(
  22919         IFileDialogCustomize *pfdc,
  22920         DWORD dwIDCtl,
  22921         DWORD dwIDItem) = 0;
  22922 
  22923     virtual HRESULT STDMETHODCALLTYPE OnButtonClicked(
  22924         IFileDialogCustomize *pfdc,
  22925         DWORD dwIDCtl) = 0;
  22926 
  22927     virtual HRESULT STDMETHODCALLTYPE OnCheckButtonToggled(
  22928         IFileDialogCustomize *pfdc,
  22929         DWORD dwIDCtl,
  22930         WINBOOL bChecked) = 0;
  22931 
  22932     virtual HRESULT STDMETHODCALLTYPE OnControlActivating(
  22933         IFileDialogCustomize *pfdc,
  22934         DWORD dwIDCtl) = 0;
  22935 
  22936 };
  22937 #ifdef __CRT_UUID_DECL
  22938 __CRT_UUID_DECL(IFileDialogControlEvents, 0x36116642, 0xd713, 0x4b97, 0x9b,0x83, 0x74,0x84,0xa9,0xd0,0x04,0x33)
  22939 #endif
  22940 #else
  22941 typedef struct IFileDialogControlEventsVtbl {
  22942     BEGIN_INTERFACE
  22943 
  22944     /*** IUnknown methods ***/
  22945     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  22946         IFileDialogControlEvents *This,
  22947         REFIID riid,
  22948         void **ppvObject);
  22949 
  22950     ULONG (STDMETHODCALLTYPE *AddRef)(
  22951         IFileDialogControlEvents *This);
  22952 
  22953     ULONG (STDMETHODCALLTYPE *Release)(
  22954         IFileDialogControlEvents *This);
  22955 
  22956     /*** IFileDialogControlEvents methods ***/
  22957     HRESULT (STDMETHODCALLTYPE *OnItemSelected)(
  22958         IFileDialogControlEvents *This,
  22959         IFileDialogCustomize *pfdc,
  22960         DWORD dwIDCtl,
  22961         DWORD dwIDItem);
  22962 
  22963     HRESULT (STDMETHODCALLTYPE *OnButtonClicked)(
  22964         IFileDialogControlEvents *This,
  22965         IFileDialogCustomize *pfdc,
  22966         DWORD dwIDCtl);
  22967 
  22968     HRESULT (STDMETHODCALLTYPE *OnCheckButtonToggled)(
  22969         IFileDialogControlEvents *This,
  22970         IFileDialogCustomize *pfdc,
  22971         DWORD dwIDCtl,
  22972         WINBOOL bChecked);
  22973 
  22974     HRESULT (STDMETHODCALLTYPE *OnControlActivating)(
  22975         IFileDialogControlEvents *This,
  22976         IFileDialogCustomize *pfdc,
  22977         DWORD dwIDCtl);
  22978 
  22979     END_INTERFACE
  22980 } IFileDialogControlEventsVtbl;
  22981 
  22982 interface IFileDialogControlEvents {
  22983     CONST_VTBL IFileDialogControlEventsVtbl* lpVtbl;
  22984 };
  22985 
  22986 #ifdef COBJMACROS
  22987 #ifndef WIDL_C_INLINE_WRAPPERS
  22988 /*** IUnknown methods ***/
  22989 #define IFileDialogControlEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  22990 #define IFileDialogControlEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
  22991 #define IFileDialogControlEvents_Release(This) (This)->lpVtbl->Release(This)
  22992 /*** IFileDialogControlEvents methods ***/
  22993 #define IFileDialogControlEvents_OnItemSelected(This,pfdc,dwIDCtl,dwIDItem) (This)->lpVtbl->OnItemSelected(This,pfdc,dwIDCtl,dwIDItem)
  22994 #define IFileDialogControlEvents_OnButtonClicked(This,pfdc,dwIDCtl) (This)->lpVtbl->OnButtonClicked(This,pfdc,dwIDCtl)
  22995 #define IFileDialogControlEvents_OnCheckButtonToggled(This,pfdc,dwIDCtl,bChecked) (This)->lpVtbl->OnCheckButtonToggled(This,pfdc,dwIDCtl,bChecked)
  22996 #define IFileDialogControlEvents_OnControlActivating(This,pfdc,dwIDCtl) (This)->lpVtbl->OnControlActivating(This,pfdc,dwIDCtl)
  22997 #else
  22998 /*** IUnknown methods ***/
  22999 static inline HRESULT IFileDialogControlEvents_QueryInterface(IFileDialogControlEvents* This,REFIID riid,void **ppvObject) {
  23000     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  23001 }
  23002 static inline ULONG IFileDialogControlEvents_AddRef(IFileDialogControlEvents* This) {
  23003     return This->lpVtbl->AddRef(This);
  23004 }
  23005 static inline ULONG IFileDialogControlEvents_Release(IFileDialogControlEvents* This) {
  23006     return This->lpVtbl->Release(This);
  23007 }
  23008 /*** IFileDialogControlEvents methods ***/
  23009 static inline HRESULT IFileDialogControlEvents_OnItemSelected(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl,DWORD dwIDItem) {
  23010     return This->lpVtbl->OnItemSelected(This,pfdc,dwIDCtl,dwIDItem);
  23011 }
  23012 static inline HRESULT IFileDialogControlEvents_OnButtonClicked(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl) {
  23013     return This->lpVtbl->OnButtonClicked(This,pfdc,dwIDCtl);
  23014 }
  23015 static inline HRESULT IFileDialogControlEvents_OnCheckButtonToggled(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl,WINBOOL bChecked) {
  23016     return This->lpVtbl->OnCheckButtonToggled(This,pfdc,dwIDCtl,bChecked);
  23017 }
  23018 static inline HRESULT IFileDialogControlEvents_OnControlActivating(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl) {
  23019     return This->lpVtbl->OnControlActivating(This,pfdc,dwIDCtl);
  23020 }
  23021 #endif
  23022 #endif
  23023 
  23024 #endif
  23025 
  23026 
  23027 #endif  /* __IFileDialogControlEvents_INTERFACE_DEFINED__ */
  23028 
  23029 
  23030 /*****************************************************************************
  23031  * IFileDialog2 interface
  23032  */
  23033 #ifndef __IFileDialog2_INTERFACE_DEFINED__
  23034 #define __IFileDialog2_INTERFACE_DEFINED__
  23035 
  23036 DEFINE_GUID(IID_IFileDialog2, 0x61744fc7, 0x85b5, 0x4791, 0xa9,0xb0, 0x27,0x22,0x76,0x30,0x9b,0x13);
  23037 #if defined(__cplusplus) && !defined(CINTERFACE)
  23038 MIDL_INTERFACE("61744fc7-85b5-4791-a9b0-272276309b13")
  23039 IFileDialog2 : public IFileDialog
  23040 {
  23041     virtual HRESULT STDMETHODCALLTYPE SetCancelButtonLabel(
  23042         LPCWSTR pszLabel) = 0;
  23043 
  23044     virtual HRESULT STDMETHODCALLTYPE SetNavigationRoot(
  23045         IShellItem *psi) = 0;
  23046 
  23047 };
  23048 #ifdef __CRT_UUID_DECL
  23049 __CRT_UUID_DECL(IFileDialog2, 0x61744fc7, 0x85b5, 0x4791, 0xa9,0xb0, 0x27,0x22,0x76,0x30,0x9b,0x13)
  23050 #endif
  23051 #else
  23052 typedef struct IFileDialog2Vtbl {
  23053     BEGIN_INTERFACE
  23054 
  23055     /*** IUnknown methods ***/
  23056     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  23057         IFileDialog2 *This,
  23058         REFIID riid,
  23059         void **ppvObject);
  23060 
  23061     ULONG (STDMETHODCALLTYPE *AddRef)(
  23062         IFileDialog2 *This);
  23063 
  23064     ULONG (STDMETHODCALLTYPE *Release)(
  23065         IFileDialog2 *This);
  23066 
  23067     /*** IModalWindow methods ***/
  23068     HRESULT (STDMETHODCALLTYPE *Show)(
  23069         IFileDialog2 *This,
  23070         HWND hwndOwner);
  23071 
  23072     /*** IFileDialog methods ***/
  23073     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
  23074         IFileDialog2 *This,
  23075         UINT cFileTypes,
  23076         const COMDLG_FILTERSPEC *rgFilterSpec);
  23077 
  23078     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
  23079         IFileDialog2 *This,
  23080         UINT iFileType);
  23081 
  23082     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
  23083         IFileDialog2 *This,
  23084         UINT *piFileType);
  23085 
  23086     HRESULT (STDMETHODCALLTYPE *Advise)(
  23087         IFileDialog2 *This,
  23088         IFileDialogEvents *pfde,
  23089         DWORD *pdwCookie);
  23090 
  23091     HRESULT (STDMETHODCALLTYPE *Unadvise)(
  23092         IFileDialog2 *This,
  23093         DWORD dwCookie);
  23094 
  23095     HRESULT (STDMETHODCALLTYPE *SetOptions)(
  23096         IFileDialog2 *This,
  23097         FILEOPENDIALOGOPTIONS fos);
  23098 
  23099     HRESULT (STDMETHODCALLTYPE *GetOptions)(
  23100         IFileDialog2 *This,
  23101         FILEOPENDIALOGOPTIONS *pfos);
  23102 
  23103     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
  23104         IFileDialog2 *This,
  23105         IShellItem *psi);
  23106 
  23107     HRESULT (STDMETHODCALLTYPE *SetFolder)(
  23108         IFileDialog2 *This,
  23109         IShellItem *psi);
  23110 
  23111     HRESULT (STDMETHODCALLTYPE *GetFolder)(
  23112         IFileDialog2 *This,
  23113         IShellItem **ppsi);
  23114 
  23115     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
  23116         IFileDialog2 *This,
  23117         IShellItem **ppsi);
  23118 
  23119     HRESULT (STDMETHODCALLTYPE *SetFileName)(
  23120         IFileDialog2 *This,
  23121         LPCWSTR pszName);
  23122 
  23123     HRESULT (STDMETHODCALLTYPE *GetFileName)(
  23124         IFileDialog2 *This,
  23125         LPWSTR *pszName);
  23126 
  23127     HRESULT (STDMETHODCALLTYPE *SetTitle)(
  23128         IFileDialog2 *This,
  23129         LPCWSTR pszTitle);
  23130 
  23131     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
  23132         IFileDialog2 *This,
  23133         LPCWSTR pszText);
  23134 
  23135     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
  23136         IFileDialog2 *This,
  23137         LPCWSTR pszLabel);
  23138 
  23139     HRESULT (STDMETHODCALLTYPE *GetResult)(
  23140         IFileDialog2 *This,
  23141         IShellItem **ppsi);
  23142 
  23143     HRESULT (STDMETHODCALLTYPE *AddPlace)(
  23144         IFileDialog2 *This,
  23145         IShellItem *psi,
  23146         FDAP fdap);
  23147 
  23148     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
  23149         IFileDialog2 *This,
  23150         LPCWSTR pszDefaultExtension);
  23151 
  23152     HRESULT (STDMETHODCALLTYPE *Close)(
  23153         IFileDialog2 *This,
  23154         HRESULT hr);
  23155 
  23156     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
  23157         IFileDialog2 *This,
  23158         REFGUID guid);
  23159 
  23160     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
  23161         IFileDialog2 *This);
  23162 
  23163     HRESULT (STDMETHODCALLTYPE *SetFilter)(
  23164         IFileDialog2 *This,
  23165         IShellItemFilter *pFilter);
  23166 
  23167     /*** IFileDialog2 methods ***/
  23168     HRESULT (STDMETHODCALLTYPE *SetCancelButtonLabel)(
  23169         IFileDialog2 *This,
  23170         LPCWSTR pszLabel);
  23171 
  23172     HRESULT (STDMETHODCALLTYPE *SetNavigationRoot)(
  23173         IFileDialog2 *This,
  23174         IShellItem *psi);
  23175 
  23176     END_INTERFACE
  23177 } IFileDialog2Vtbl;
  23178 
  23179 interface IFileDialog2 {
  23180     CONST_VTBL IFileDialog2Vtbl* lpVtbl;
  23181 };
  23182 
  23183 #ifdef COBJMACROS
  23184 #ifndef WIDL_C_INLINE_WRAPPERS
  23185 /*** IUnknown methods ***/
  23186 #define IFileDialog2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  23187 #define IFileDialog2_AddRef(This) (This)->lpVtbl->AddRef(This)
  23188 #define IFileDialog2_Release(This) (This)->lpVtbl->Release(This)
  23189 /*** IModalWindow methods ***/
  23190 #define IFileDialog2_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
  23191 /*** IFileDialog methods ***/
  23192 #define IFileDialog2_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
  23193 #define IFileDialog2_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
  23194 #define IFileDialog2_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
  23195 #define IFileDialog2_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
  23196 #define IFileDialog2_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
  23197 #define IFileDialog2_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
  23198 #define IFileDialog2_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
  23199 #define IFileDialog2_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
  23200 #define IFileDialog2_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
  23201 #define IFileDialog2_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
  23202 #define IFileDialog2_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
  23203 #define IFileDialog2_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
  23204 #define IFileDialog2_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
  23205 #define IFileDialog2_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
  23206 #define IFileDialog2_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
  23207 #define IFileDialog2_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
  23208 #define IFileDialog2_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
  23209 #define IFileDialog2_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
  23210 #define IFileDialog2_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
  23211 #define IFileDialog2_Close(This,hr) (This)->lpVtbl->Close(This,hr)
  23212 #define IFileDialog2_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
  23213 #define IFileDialog2_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
  23214 #define IFileDialog2_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
  23215 /*** IFileDialog2 methods ***/
  23216 #define IFileDialog2_SetCancelButtonLabel(This,pszLabel) (This)->lpVtbl->SetCancelButtonLabel(This,pszLabel)
  23217 #define IFileDialog2_SetNavigationRoot(This,psi) (This)->lpVtbl->SetNavigationRoot(This,psi)
  23218 #else
  23219 /*** IUnknown methods ***/
  23220 static inline HRESULT IFileDialog2_QueryInterface(IFileDialog2* This,REFIID riid,void **ppvObject) {
  23221     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  23222 }
  23223 static inline ULONG IFileDialog2_AddRef(IFileDialog2* This) {
  23224     return This->lpVtbl->AddRef(This);
  23225 }
  23226 static inline ULONG IFileDialog2_Release(IFileDialog2* This) {
  23227     return This->lpVtbl->Release(This);
  23228 }
  23229 /*** IModalWindow methods ***/
  23230 static inline HRESULT IFileDialog2_Show(IFileDialog2* This,HWND hwndOwner) {
  23231     return This->lpVtbl->Show(This,hwndOwner);
  23232 }
  23233 /*** IFileDialog methods ***/
  23234 static inline HRESULT IFileDialog2_SetFileTypes(IFileDialog2* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
  23235     return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
  23236 }
  23237 static inline HRESULT IFileDialog2_SetFileTypeIndex(IFileDialog2* This,UINT iFileType) {
  23238     return This->lpVtbl->SetFileTypeIndex(This,iFileType);
  23239 }
  23240 static inline HRESULT IFileDialog2_GetFileTypeIndex(IFileDialog2* This,UINT *piFileType) {
  23241     return This->lpVtbl->GetFileTypeIndex(This,piFileType);
  23242 }
  23243 static inline HRESULT IFileDialog2_Advise(IFileDialog2* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
  23244     return This->lpVtbl->Advise(This,pfde,pdwCookie);
  23245 }
  23246 static inline HRESULT IFileDialog2_Unadvise(IFileDialog2* This,DWORD dwCookie) {
  23247     return This->lpVtbl->Unadvise(This,dwCookie);
  23248 }
  23249 static inline HRESULT IFileDialog2_SetOptions(IFileDialog2* This,FILEOPENDIALOGOPTIONS fos) {
  23250     return This->lpVtbl->SetOptions(This,fos);
  23251 }
  23252 static inline HRESULT IFileDialog2_GetOptions(IFileDialog2* This,FILEOPENDIALOGOPTIONS *pfos) {
  23253     return This->lpVtbl->GetOptions(This,pfos);
  23254 }
  23255 static inline HRESULT IFileDialog2_SetDefaultFolder(IFileDialog2* This,IShellItem *psi) {
  23256     return This->lpVtbl->SetDefaultFolder(This,psi);
  23257 }
  23258 static inline HRESULT IFileDialog2_SetFolder(IFileDialog2* This,IShellItem *psi) {
  23259     return This->lpVtbl->SetFolder(This,psi);
  23260 }
  23261 static inline HRESULT IFileDialog2_GetFolder(IFileDialog2* This,IShellItem **ppsi) {
  23262     return This->lpVtbl->GetFolder(This,ppsi);
  23263 }
  23264 static inline HRESULT IFileDialog2_GetCurrentSelection(IFileDialog2* This,IShellItem **ppsi) {
  23265     return This->lpVtbl->GetCurrentSelection(This,ppsi);
  23266 }
  23267 static inline HRESULT IFileDialog2_SetFileName(IFileDialog2* This,LPCWSTR pszName) {
  23268     return This->lpVtbl->SetFileName(This,pszName);
  23269 }
  23270 static inline HRESULT IFileDialog2_GetFileName(IFileDialog2* This,LPWSTR *pszName) {
  23271     return This->lpVtbl->GetFileName(This,pszName);
  23272 }
  23273 static inline HRESULT IFileDialog2_SetTitle(IFileDialog2* This,LPCWSTR pszTitle) {
  23274     return This->lpVtbl->SetTitle(This,pszTitle);
  23275 }
  23276 static inline HRESULT IFileDialog2_SetOkButtonLabel(IFileDialog2* This,LPCWSTR pszText) {
  23277     return This->lpVtbl->SetOkButtonLabel(This,pszText);
  23278 }
  23279 static inline HRESULT IFileDialog2_SetFileNameLabel(IFileDialog2* This,LPCWSTR pszLabel) {
  23280     return This->lpVtbl->SetFileNameLabel(This,pszLabel);
  23281 }
  23282 static inline HRESULT IFileDialog2_GetResult(IFileDialog2* This,IShellItem **ppsi) {
  23283     return This->lpVtbl->GetResult(This,ppsi);
  23284 }
  23285 static inline HRESULT IFileDialog2_AddPlace(IFileDialog2* This,IShellItem *psi,FDAP fdap) {
  23286     return This->lpVtbl->AddPlace(This,psi,fdap);
  23287 }
  23288 static inline HRESULT IFileDialog2_SetDefaultExtension(IFileDialog2* This,LPCWSTR pszDefaultExtension) {
  23289     return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
  23290 }
  23291 static inline HRESULT IFileDialog2_Close(IFileDialog2* This,HRESULT hr) {
  23292     return This->lpVtbl->Close(This,hr);
  23293 }
  23294 static inline HRESULT IFileDialog2_SetClientGuid(IFileDialog2* This,REFGUID guid) {
  23295     return This->lpVtbl->SetClientGuid(This,guid);
  23296 }
  23297 static inline HRESULT IFileDialog2_ClearClientData(IFileDialog2* This) {
  23298     return This->lpVtbl->ClearClientData(This);
  23299 }
  23300 static inline HRESULT IFileDialog2_SetFilter(IFileDialog2* This,IShellItemFilter *pFilter) {
  23301     return This->lpVtbl->SetFilter(This,pFilter);
  23302 }
  23303 /*** IFileDialog2 methods ***/
  23304 static inline HRESULT IFileDialog2_SetCancelButtonLabel(IFileDialog2* This,LPCWSTR pszLabel) {
  23305     return This->lpVtbl->SetCancelButtonLabel(This,pszLabel);
  23306 }
  23307 static inline HRESULT IFileDialog2_SetNavigationRoot(IFileDialog2* This,IShellItem *psi) {
  23308     return This->lpVtbl->SetNavigationRoot(This,psi);
  23309 }
  23310 #endif
  23311 #endif
  23312 
  23313 #endif
  23314 
  23315 
  23316 #endif  /* __IFileDialog2_INTERFACE_DEFINED__ */
  23317 
  23318 
  23319 typedef enum ASSOCIATIONLEVEL {
  23320     AL_MACHINE = 0,
  23321     AL_EFFECTIVE = 1,
  23322     AL_USER = 2
  23323 } ASSOCIATIONLEVEL;
  23324 
  23325 typedef enum ASSOCIATIONTYPE {
  23326     AT_FILEEXTENSION = 0,
  23327     AT_URLPROTOCOL = 1,
  23328     AT_STARTMENUCLIENT = 2,
  23329     AT_MIMETYPE = 3
  23330 } ASSOCIATIONTYPE;
  23331 
  23332 /*****************************************************************************
  23333  * IApplicationAssociationRegistration interface
  23334  */
  23335 #ifndef __IApplicationAssociationRegistration_INTERFACE_DEFINED__
  23336 #define __IApplicationAssociationRegistration_INTERFACE_DEFINED__
  23337 
  23338 DEFINE_GUID(IID_IApplicationAssociationRegistration, 0x4e530b0a, 0xe611, 0x4c77, 0xa3,0xac, 0x90,0x31,0xd0,0x22,0x28,0x1b);
  23339 #if defined(__cplusplus) && !defined(CINTERFACE)
  23340 MIDL_INTERFACE("4e530b0a-e611-4c77-a3ac-9031d022281b")
  23341 IApplicationAssociationRegistration : public IUnknown
  23342 {
  23343     virtual HRESULT STDMETHODCALLTYPE QueryCurrentDefault(
  23344         LPCWSTR pszQuery,
  23345         ASSOCIATIONTYPE atQueryType,
  23346         ASSOCIATIONLEVEL alQueryLevel,
  23347         LPWSTR *ppszAssociation) = 0;
  23348 
  23349     virtual HRESULT STDMETHODCALLTYPE QueryAppIsDefault(
  23350         LPCWSTR pszQuery,
  23351         ASSOCIATIONTYPE atQueryType,
  23352         ASSOCIATIONLEVEL alQueryLevel,
  23353         LPCWSTR pszAppRegistryName,
  23354         WINBOOL *pfDefault) = 0;
  23355 
  23356     virtual HRESULT STDMETHODCALLTYPE QueryAppIsDefaultAll(
  23357         ASSOCIATIONLEVEL alQueryLevel,
  23358         LPCWSTR pszAppRegistryName,
  23359         WINBOOL *pfDefault) = 0;
  23360 
  23361     virtual HRESULT STDMETHODCALLTYPE SetAppAsDefault(
  23362         LPCWSTR pszAppRegistryName,
  23363         LPCWSTR pszSet,
  23364         ASSOCIATIONTYPE atSetType) = 0;
  23365 
  23366     virtual HRESULT STDMETHODCALLTYPE SetAppAsDefaultAll(
  23367         LPCWSTR pszAppRegistryName) = 0;
  23368 
  23369     virtual HRESULT STDMETHODCALLTYPE ClearUserAssociations(
  23370         ) = 0;
  23371 
  23372 };
  23373 #ifdef __CRT_UUID_DECL
  23374 __CRT_UUID_DECL(IApplicationAssociationRegistration, 0x4e530b0a, 0xe611, 0x4c77, 0xa3,0xac, 0x90,0x31,0xd0,0x22,0x28,0x1b)
  23375 #endif
  23376 #else
  23377 typedef struct IApplicationAssociationRegistrationVtbl {
  23378     BEGIN_INTERFACE
  23379 
  23380     /*** IUnknown methods ***/
  23381     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  23382         IApplicationAssociationRegistration *This,
  23383         REFIID riid,
  23384         void **ppvObject);
  23385 
  23386     ULONG (STDMETHODCALLTYPE *AddRef)(
  23387         IApplicationAssociationRegistration *This);
  23388 
  23389     ULONG (STDMETHODCALLTYPE *Release)(
  23390         IApplicationAssociationRegistration *This);
  23391 
  23392     /*** IApplicationAssociationRegistration methods ***/
  23393     HRESULT (STDMETHODCALLTYPE *QueryCurrentDefault)(
  23394         IApplicationAssociationRegistration *This,
  23395         LPCWSTR pszQuery,
  23396         ASSOCIATIONTYPE atQueryType,
  23397         ASSOCIATIONLEVEL alQueryLevel,
  23398         LPWSTR *ppszAssociation);
  23399 
  23400     HRESULT (STDMETHODCALLTYPE *QueryAppIsDefault)(
  23401         IApplicationAssociationRegistration *This,
  23402         LPCWSTR pszQuery,
  23403         ASSOCIATIONTYPE atQueryType,
  23404         ASSOCIATIONLEVEL alQueryLevel,
  23405         LPCWSTR pszAppRegistryName,
  23406         WINBOOL *pfDefault);
  23407 
  23408     HRESULT (STDMETHODCALLTYPE *QueryAppIsDefaultAll)(
  23409         IApplicationAssociationRegistration *This,
  23410         ASSOCIATIONLEVEL alQueryLevel,
  23411         LPCWSTR pszAppRegistryName,
  23412         WINBOOL *pfDefault);
  23413 
  23414     HRESULT (STDMETHODCALLTYPE *SetAppAsDefault)(
  23415         IApplicationAssociationRegistration *This,
  23416         LPCWSTR pszAppRegistryName,
  23417         LPCWSTR pszSet,
  23418         ASSOCIATIONTYPE atSetType);
  23419 
  23420     HRESULT (STDMETHODCALLTYPE *SetAppAsDefaultAll)(
  23421         IApplicationAssociationRegistration *This,
  23422         LPCWSTR pszAppRegistryName);
  23423 
  23424     HRESULT (STDMETHODCALLTYPE *ClearUserAssociations)(
  23425         IApplicationAssociationRegistration *This);
  23426 
  23427     END_INTERFACE
  23428 } IApplicationAssociationRegistrationVtbl;
  23429 
  23430 interface IApplicationAssociationRegistration {
  23431     CONST_VTBL IApplicationAssociationRegistrationVtbl* lpVtbl;
  23432 };
  23433 
  23434 #ifdef COBJMACROS
  23435 #ifndef WIDL_C_INLINE_WRAPPERS
  23436 /*** IUnknown methods ***/
  23437 #define IApplicationAssociationRegistration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  23438 #define IApplicationAssociationRegistration_AddRef(This) (This)->lpVtbl->AddRef(This)
  23439 #define IApplicationAssociationRegistration_Release(This) (This)->lpVtbl->Release(This)
  23440 /*** IApplicationAssociationRegistration methods ***/
  23441 #define IApplicationAssociationRegistration_QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation) (This)->lpVtbl->QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation)
  23442 #define IApplicationAssociationRegistration_QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault) (This)->lpVtbl->QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault)
  23443 #define IApplicationAssociationRegistration_QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault) (This)->lpVtbl->QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault)
  23444 #define IApplicationAssociationRegistration_SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType) (This)->lpVtbl->SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType)
  23445 #define IApplicationAssociationRegistration_SetAppAsDefaultAll(This,pszAppRegistryName) (This)->lpVtbl->SetAppAsDefaultAll(This,pszAppRegistryName)
  23446 #define IApplicationAssociationRegistration_ClearUserAssociations(This) (This)->lpVtbl->ClearUserAssociations(This)
  23447 #else
  23448 /*** IUnknown methods ***/
  23449 static inline HRESULT IApplicationAssociationRegistration_QueryInterface(IApplicationAssociationRegistration* This,REFIID riid,void **ppvObject) {
  23450     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  23451 }
  23452 static inline ULONG IApplicationAssociationRegistration_AddRef(IApplicationAssociationRegistration* This) {
  23453     return This->lpVtbl->AddRef(This);
  23454 }
  23455 static inline ULONG IApplicationAssociationRegistration_Release(IApplicationAssociationRegistration* This) {
  23456     return This->lpVtbl->Release(This);
  23457 }
  23458 /*** IApplicationAssociationRegistration methods ***/
  23459 static inline HRESULT IApplicationAssociationRegistration_QueryCurrentDefault(IApplicationAssociationRegistration* This,LPCWSTR pszQuery,ASSOCIATIONTYPE atQueryType,ASSOCIATIONLEVEL alQueryLevel,LPWSTR *ppszAssociation) {
  23460     return This->lpVtbl->QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation);
  23461 }
  23462 static inline HRESULT IApplicationAssociationRegistration_QueryAppIsDefault(IApplicationAssociationRegistration* This,LPCWSTR pszQuery,ASSOCIATIONTYPE atQueryType,ASSOCIATIONLEVEL alQueryLevel,LPCWSTR pszAppRegistryName,WINBOOL *pfDefault) {
  23463     return This->lpVtbl->QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault);
  23464 }
  23465 static inline HRESULT IApplicationAssociationRegistration_QueryAppIsDefaultAll(IApplicationAssociationRegistration* This,ASSOCIATIONLEVEL alQueryLevel,LPCWSTR pszAppRegistryName,WINBOOL *pfDefault) {
  23466     return This->lpVtbl->QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault);
  23467 }
  23468 static inline HRESULT IApplicationAssociationRegistration_SetAppAsDefault(IApplicationAssociationRegistration* This,LPCWSTR pszAppRegistryName,LPCWSTR pszSet,ASSOCIATIONTYPE atSetType) {
  23469     return This->lpVtbl->SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType);
  23470 }
  23471 static inline HRESULT IApplicationAssociationRegistration_SetAppAsDefaultAll(IApplicationAssociationRegistration* This,LPCWSTR pszAppRegistryName) {
  23472     return This->lpVtbl->SetAppAsDefaultAll(This,pszAppRegistryName);
  23473 }
  23474 static inline HRESULT IApplicationAssociationRegistration_ClearUserAssociations(IApplicationAssociationRegistration* This) {
  23475     return This->lpVtbl->ClearUserAssociations(This);
  23476 }
  23477 #endif
  23478 #endif
  23479 
  23480 #endif
  23481 
  23482 
  23483 #endif  /* __IApplicationAssociationRegistration_INTERFACE_DEFINED__ */
  23484 
  23485 
  23486 SHSTDAPI SHCreateAssociationRegistration(REFIID riid, void **ppv);
  23487 
  23488 /*****************************************************************************
  23489  * IApplicationAssociationRegistrationUI interface
  23490  */
  23491 #ifndef __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__
  23492 #define __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__
  23493 
  23494 DEFINE_GUID(IID_IApplicationAssociationRegistrationUI, 0x1f76a169, 0xf994, 0x40ac, 0x8f,0xc8, 0x09,0x59,0xe8,0x87,0x47,0x10);
  23495 #if defined(__cplusplus) && !defined(CINTERFACE)
  23496 MIDL_INTERFACE("1f76a169-f994-40ac-8fc8-0959e8874710")
  23497 IApplicationAssociationRegistrationUI : public IUnknown
  23498 {
  23499     virtual HRESULT STDMETHODCALLTYPE LaunchAdvancedAssociationUI(
  23500         LPCWSTR pszAppRegistryName) = 0;
  23501 
  23502 };
  23503 #ifdef __CRT_UUID_DECL
  23504 __CRT_UUID_DECL(IApplicationAssociationRegistrationUI, 0x1f76a169, 0xf994, 0x40ac, 0x8f,0xc8, 0x09,0x59,0xe8,0x87,0x47,0x10)
  23505 #endif
  23506 #else
  23507 typedef struct IApplicationAssociationRegistrationUIVtbl {
  23508     BEGIN_INTERFACE
  23509 
  23510     /*** IUnknown methods ***/
  23511     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  23512         IApplicationAssociationRegistrationUI *This,
  23513         REFIID riid,
  23514         void **ppvObject);
  23515 
  23516     ULONG (STDMETHODCALLTYPE *AddRef)(
  23517         IApplicationAssociationRegistrationUI *This);
  23518 
  23519     ULONG (STDMETHODCALLTYPE *Release)(
  23520         IApplicationAssociationRegistrationUI *This);
  23521 
  23522     /*** IApplicationAssociationRegistrationUI methods ***/
  23523     HRESULT (STDMETHODCALLTYPE *LaunchAdvancedAssociationUI)(
  23524         IApplicationAssociationRegistrationUI *This,
  23525         LPCWSTR pszAppRegistryName);
  23526 
  23527     END_INTERFACE
  23528 } IApplicationAssociationRegistrationUIVtbl;
  23529 
  23530 interface IApplicationAssociationRegistrationUI {
  23531     CONST_VTBL IApplicationAssociationRegistrationUIVtbl* lpVtbl;
  23532 };
  23533 
  23534 #ifdef COBJMACROS
  23535 #ifndef WIDL_C_INLINE_WRAPPERS
  23536 /*** IUnknown methods ***/
  23537 #define IApplicationAssociationRegistrationUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  23538 #define IApplicationAssociationRegistrationUI_AddRef(This) (This)->lpVtbl->AddRef(This)
  23539 #define IApplicationAssociationRegistrationUI_Release(This) (This)->lpVtbl->Release(This)
  23540 /*** IApplicationAssociationRegistrationUI methods ***/
  23541 #define IApplicationAssociationRegistrationUI_LaunchAdvancedAssociationUI(This,pszAppRegistryName) (This)->lpVtbl->LaunchAdvancedAssociationUI(This,pszAppRegistryName)
  23542 #else
  23543 /*** IUnknown methods ***/
  23544 static inline HRESULT IApplicationAssociationRegistrationUI_QueryInterface(IApplicationAssociationRegistrationUI* This,REFIID riid,void **ppvObject) {
  23545     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  23546 }
  23547 static inline ULONG IApplicationAssociationRegistrationUI_AddRef(IApplicationAssociationRegistrationUI* This) {
  23548     return This->lpVtbl->AddRef(This);
  23549 }
  23550 static inline ULONG IApplicationAssociationRegistrationUI_Release(IApplicationAssociationRegistrationUI* This) {
  23551     return This->lpVtbl->Release(This);
  23552 }
  23553 /*** IApplicationAssociationRegistrationUI methods ***/
  23554 static inline HRESULT IApplicationAssociationRegistrationUI_LaunchAdvancedAssociationUI(IApplicationAssociationRegistrationUI* This,LPCWSTR pszAppRegistryName) {
  23555     return This->lpVtbl->LaunchAdvancedAssociationUI(This,pszAppRegistryName);
  23556 }
  23557 #endif
  23558 #endif
  23559 
  23560 #endif
  23561 
  23562 
  23563 #endif  /* __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__ */
  23564 
  23565 #endif
  23566 
  23567 #include <pshpack1.h>
  23568 typedef struct DELEGATEITEMID {
  23569     WORD cbSize;
  23570     WORD wOuter;
  23571     WORD cbInner;
  23572     BYTE rgb[1];
  23573 } DELEGATEITEMID;
  23574 #include <poppack.h>
  23575 
  23576 typedef const UNALIGNED DELEGATEITEMID *PCDELEGATEITEMID;
  23577 typedef UNALIGNED DELEGATEITEMID *PDELEGATEITEMID;
  23578 
  23579 /*****************************************************************************
  23580  * IDelegateFolder interface
  23581  */
  23582 #ifndef __IDelegateFolder_INTERFACE_DEFINED__
  23583 #define __IDelegateFolder_INTERFACE_DEFINED__
  23584 
  23585 DEFINE_GUID(IID_IDelegateFolder, 0xadd8ba80, 0x002b, 0x11d0, 0x8f,0x0f, 0x00,0xc0,0x4f,0xd7,0xd0,0x62);
  23586 #if defined(__cplusplus) && !defined(CINTERFACE)
  23587 MIDL_INTERFACE("add8ba80-002b-11d0-8f0f-00c04fd7d062")
  23588 IDelegateFolder : public IUnknown
  23589 {
  23590     virtual HRESULT STDMETHODCALLTYPE SetItemAlloc(
  23591         IMalloc *pmalloc) = 0;
  23592 
  23593 };
  23594 #ifdef __CRT_UUID_DECL
  23595 __CRT_UUID_DECL(IDelegateFolder, 0xadd8ba80, 0x002b, 0x11d0, 0x8f,0x0f, 0x00,0xc0,0x4f,0xd7,0xd0,0x62)
  23596 #endif
  23597 #else
  23598 typedef struct IDelegateFolderVtbl {
  23599     BEGIN_INTERFACE
  23600 
  23601     /*** IUnknown methods ***/
  23602     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  23603         IDelegateFolder *This,
  23604         REFIID riid,
  23605         void **ppvObject);
  23606 
  23607     ULONG (STDMETHODCALLTYPE *AddRef)(
  23608         IDelegateFolder *This);
  23609 
  23610     ULONG (STDMETHODCALLTYPE *Release)(
  23611         IDelegateFolder *This);
  23612 
  23613     /*** IDelegateFolder methods ***/
  23614     HRESULT (STDMETHODCALLTYPE *SetItemAlloc)(
  23615         IDelegateFolder *This,
  23616         IMalloc *pmalloc);
  23617 
  23618     END_INTERFACE
  23619 } IDelegateFolderVtbl;
  23620 
  23621 interface IDelegateFolder {
  23622     CONST_VTBL IDelegateFolderVtbl* lpVtbl;
  23623 };
  23624 
  23625 #ifdef COBJMACROS
  23626 #ifndef WIDL_C_INLINE_WRAPPERS
  23627 /*** IUnknown methods ***/
  23628 #define IDelegateFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  23629 #define IDelegateFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
  23630 #define IDelegateFolder_Release(This) (This)->lpVtbl->Release(This)
  23631 /*** IDelegateFolder methods ***/
  23632 #define IDelegateFolder_SetItemAlloc(This,pmalloc) (This)->lpVtbl->SetItemAlloc(This,pmalloc)
  23633 #else
  23634 /*** IUnknown methods ***/
  23635 static inline HRESULT IDelegateFolder_QueryInterface(IDelegateFolder* This,REFIID riid,void **ppvObject) {
  23636     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  23637 }
  23638 static inline ULONG IDelegateFolder_AddRef(IDelegateFolder* This) {
  23639     return This->lpVtbl->AddRef(This);
  23640 }
  23641 static inline ULONG IDelegateFolder_Release(IDelegateFolder* This) {
  23642     return This->lpVtbl->Release(This);
  23643 }
  23644 /*** IDelegateFolder methods ***/
  23645 static inline HRESULT IDelegateFolder_SetItemAlloc(IDelegateFolder* This,IMalloc *pmalloc) {
  23646     return This->lpVtbl->SetItemAlloc(This,pmalloc);
  23647 }
  23648 #endif
  23649 #endif
  23650 
  23651 #endif
  23652 
  23653 
  23654 #endif  /* __IDelegateFolder_INTERFACE_DEFINED__ */
  23655 
  23656 
  23657 #if _WIN32_IE >= _WIN32_IE_IE60
  23658 /*****************************************************************************
  23659  * IBrowserFrameOptions interface
  23660  */
  23661 #ifndef __IBrowserFrameOptions_INTERFACE_DEFINED__
  23662 #define __IBrowserFrameOptions_INTERFACE_DEFINED__
  23663 
  23664 typedef IBrowserFrameOptions *LPBROWSERFRAMEOPTIONS;
  23665 
  23666 enum _BROWSERFRAMEOPTIONS {
  23667     BFO_NONE = 0x0,
  23668     BFO_BROWSER_PERSIST_SETTINGS = 0x1,
  23669     BFO_RENAME_FOLDER_OPTIONS_TOINTERNET = 0x2,
  23670     BFO_BOTH_OPTIONS = 0x4,
  23671     BIF_PREFER_INTERNET_SHORTCUT = 0x8,
  23672     BFO_BROWSE_NO_IN_NEW_PROCESS = 0x10,
  23673     BFO_ENABLE_HYPERLINK_TRACKING = 0x20,
  23674     BFO_USE_IE_OFFLINE_SUPPORT = 0x40,
  23675     BFO_SUBSTITUE_INTERNET_START_PAGE = 0x80,
  23676     BFO_USE_IE_LOGOBANDING = 0x100,
  23677     BFO_ADD_IE_TOCAPTIONBAR = 0x200,
  23678     BFO_USE_DIALUP_REF = 0x400,
  23679     BFO_USE_IE_TOOLBAR = 0x800,
  23680     BFO_NO_PARENT_FOLDER_SUPPORT = 0x1000,
  23681     BFO_NO_REOPEN_NEXT_RESTART = 0x2000,
  23682     BFO_GO_HOME_PAGE = 0x4000,
  23683     BFO_PREFER_IEPROCESS = 0x8000,
  23684     BFO_SHOW_NAVIGATION_CANCELLED = 0x10000,
  23685     BFO_USE_IE_STATUSBAR = 0x20000,
  23686     BFO_QUERY_ALL = (int)0xffffffff
  23687 };
  23688 
  23689 typedef DWORD BROWSERFRAMEOPTIONS;
  23690 
  23691 DEFINE_GUID(IID_IBrowserFrameOptions, 0x10df43c8, 0x1dbe, 0x11d3, 0x8b,0x34, 0x00,0x60,0x97,0xdf,0x5b,0xd4);
  23692 #if defined(__cplusplus) && !defined(CINTERFACE)
  23693 MIDL_INTERFACE("10df43c8-1dbe-11d3-8b34-006097df5bd4")
  23694 IBrowserFrameOptions : public IUnknown
  23695 {
  23696     virtual HRESULT STDMETHODCALLTYPE GetFrameOptions(
  23697         BROWSERFRAMEOPTIONS dwMask,
  23698         BROWSERFRAMEOPTIONS *pdwOptions) = 0;
  23699 
  23700 };
  23701 #ifdef __CRT_UUID_DECL
  23702 __CRT_UUID_DECL(IBrowserFrameOptions, 0x10df43c8, 0x1dbe, 0x11d3, 0x8b,0x34, 0x00,0x60,0x97,0xdf,0x5b,0xd4)
  23703 #endif
  23704 #else
  23705 typedef struct IBrowserFrameOptionsVtbl {
  23706     BEGIN_INTERFACE
  23707 
  23708     /*** IUnknown methods ***/
  23709     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  23710         IBrowserFrameOptions *This,
  23711         REFIID riid,
  23712         void **ppvObject);
  23713 
  23714     ULONG (STDMETHODCALLTYPE *AddRef)(
  23715         IBrowserFrameOptions *This);
  23716 
  23717     ULONG (STDMETHODCALLTYPE *Release)(
  23718         IBrowserFrameOptions *This);
  23719 
  23720     /*** IBrowserFrameOptions methods ***/
  23721     HRESULT (STDMETHODCALLTYPE *GetFrameOptions)(
  23722         IBrowserFrameOptions *This,
  23723         BROWSERFRAMEOPTIONS dwMask,
  23724         BROWSERFRAMEOPTIONS *pdwOptions);
  23725 
  23726     END_INTERFACE
  23727 } IBrowserFrameOptionsVtbl;
  23728 
  23729 interface IBrowserFrameOptions {
  23730     CONST_VTBL IBrowserFrameOptionsVtbl* lpVtbl;
  23731 };
  23732 
  23733 #ifdef COBJMACROS
  23734 #ifndef WIDL_C_INLINE_WRAPPERS
  23735 /*** IUnknown methods ***/
  23736 #define IBrowserFrameOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  23737 #define IBrowserFrameOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
  23738 #define IBrowserFrameOptions_Release(This) (This)->lpVtbl->Release(This)
  23739 /*** IBrowserFrameOptions methods ***/
  23740 #define IBrowserFrameOptions_GetFrameOptions(This,dwMask,pdwOptions) (This)->lpVtbl->GetFrameOptions(This,dwMask,pdwOptions)
  23741 #else
  23742 /*** IUnknown methods ***/
  23743 static inline HRESULT IBrowserFrameOptions_QueryInterface(IBrowserFrameOptions* This,REFIID riid,void **ppvObject) {
  23744     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  23745 }
  23746 static inline ULONG IBrowserFrameOptions_AddRef(IBrowserFrameOptions* This) {
  23747     return This->lpVtbl->AddRef(This);
  23748 }
  23749 static inline ULONG IBrowserFrameOptions_Release(IBrowserFrameOptions* This) {
  23750     return This->lpVtbl->Release(This);
  23751 }
  23752 /*** IBrowserFrameOptions methods ***/
  23753 static inline HRESULT IBrowserFrameOptions_GetFrameOptions(IBrowserFrameOptions* This,BROWSERFRAMEOPTIONS dwMask,BROWSERFRAMEOPTIONS *pdwOptions) {
  23754     return This->lpVtbl->GetFrameOptions(This,dwMask,pdwOptions);
  23755 }
  23756 #endif
  23757 #endif
  23758 
  23759 #endif
  23760 
  23761 
  23762 #endif  /* __IBrowserFrameOptions_INTERFACE_DEFINED__ */
  23763 
  23764 #endif
  23765 
  23766 #if _WIN32_IE >= _WIN32_IE_IE60SP2
  23767 typedef enum NWMF {
  23768     NWMF_UNLOADING = 0x1,
  23769     NWMF_USERINITED = 0x2,
  23770     NWMF_FIRST = 0x4,
  23771     NWMF_OVERRIDEKEY = 0x8,
  23772     NWMF_SHOWHELP = 0x10,
  23773     NWMF_HTMLDIALOG = 0x20,
  23774     NWMF_FROMDIALOGCHILD = 0x40,
  23775     NWMF_USERREQUESTED = 0x80,
  23776     NWMF_USERALLOWED = 0x100,
  23777     NWMF_FORCEWINDOW = 0x10000,
  23778     NWMF_FORCETAB = 0x20000,
  23779     NWMF_SUGGESTWINDOW = 0x40000,
  23780     NWMF_SUGGESTTAB = 0x80000,
  23781     NWMF_INACTIVETAB = 0x100000
  23782 } NWMF;
  23783 
  23784 DEFINE_ENUM_FLAG_OPERATORS(NWMF)
  23785 
  23786 #define SID_SNewWindowManager IID_INewWindowManager
  23787 
  23788 /*****************************************************************************
  23789  * INewWindowManager interface
  23790  */
  23791 #ifndef __INewWindowManager_INTERFACE_DEFINED__
  23792 #define __INewWindowManager_INTERFACE_DEFINED__
  23793 
  23794 DEFINE_GUID(IID_INewWindowManager, 0xd2bc4c84, 0x3f72, 0x4a52, 0xa6,0x04, 0x7b,0xcb,0xf3,0x98,0x2c,0xbb);
  23795 #if defined(__cplusplus) && !defined(CINTERFACE)
  23796 MIDL_INTERFACE("d2bc4c84-3f72-4a52-a604-7bcbf3982cbb")
  23797 INewWindowManager : public IUnknown
  23798 {
  23799     virtual HRESULT STDMETHODCALLTYPE EvaluateNewWindow(
  23800         LPCWSTR pszUrl,
  23801         LPCWSTR pszName,
  23802         LPCWSTR pszUrlContext,
  23803         LPCWSTR pszFeatures,
  23804         WINBOOL fReplace,
  23805         DWORD dwFlags,
  23806         DWORD dwUserActionTime) = 0;
  23807 
  23808 };
  23809 #ifdef __CRT_UUID_DECL
  23810 __CRT_UUID_DECL(INewWindowManager, 0xd2bc4c84, 0x3f72, 0x4a52, 0xa6,0x04, 0x7b,0xcb,0xf3,0x98,0x2c,0xbb)
  23811 #endif
  23812 #else
  23813 typedef struct INewWindowManagerVtbl {
  23814     BEGIN_INTERFACE
  23815 
  23816     /*** IUnknown methods ***/
  23817     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  23818         INewWindowManager *This,
  23819         REFIID riid,
  23820         void **ppvObject);
  23821 
  23822     ULONG (STDMETHODCALLTYPE *AddRef)(
  23823         INewWindowManager *This);
  23824 
  23825     ULONG (STDMETHODCALLTYPE *Release)(
  23826         INewWindowManager *This);
  23827 
  23828     /*** INewWindowManager methods ***/
  23829     HRESULT (STDMETHODCALLTYPE *EvaluateNewWindow)(
  23830         INewWindowManager *This,
  23831         LPCWSTR pszUrl,
  23832         LPCWSTR pszName,
  23833         LPCWSTR pszUrlContext,
  23834         LPCWSTR pszFeatures,
  23835         WINBOOL fReplace,
  23836         DWORD dwFlags,
  23837         DWORD dwUserActionTime);
  23838 
  23839     END_INTERFACE
  23840 } INewWindowManagerVtbl;
  23841 
  23842 interface INewWindowManager {
  23843     CONST_VTBL INewWindowManagerVtbl* lpVtbl;
  23844 };
  23845 
  23846 #ifdef COBJMACROS
  23847 #ifndef WIDL_C_INLINE_WRAPPERS
  23848 /*** IUnknown methods ***/
  23849 #define INewWindowManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  23850 #define INewWindowManager_AddRef(This) (This)->lpVtbl->AddRef(This)
  23851 #define INewWindowManager_Release(This) (This)->lpVtbl->Release(This)
  23852 /*** INewWindowManager methods ***/
  23853 #define INewWindowManager_EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime) (This)->lpVtbl->EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime)
  23854 #else
  23855 /*** IUnknown methods ***/
  23856 static inline HRESULT INewWindowManager_QueryInterface(INewWindowManager* This,REFIID riid,void **ppvObject) {
  23857     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  23858 }
  23859 static inline ULONG INewWindowManager_AddRef(INewWindowManager* This) {
  23860     return This->lpVtbl->AddRef(This);
  23861 }
  23862 static inline ULONG INewWindowManager_Release(INewWindowManager* This) {
  23863     return This->lpVtbl->Release(This);
  23864 }
  23865 /*** INewWindowManager methods ***/
  23866 static inline HRESULT INewWindowManager_EvaluateNewWindow(INewWindowManager* This,LPCWSTR pszUrl,LPCWSTR pszName,LPCWSTR pszUrlContext,LPCWSTR pszFeatures,WINBOOL fReplace,DWORD dwFlags,DWORD dwUserActionTime) {
  23867     return This->lpVtbl->EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime);
  23868 }
  23869 #endif
  23870 #endif
  23871 
  23872 #endif
  23873 
  23874 
  23875 #endif  /* __INewWindowManager_INTERFACE_DEFINED__ */
  23876 
  23877 
  23878 /*****************************************************************************
  23879  * IAttachmentExecute interface
  23880  */
  23881 #ifndef __IAttachmentExecute_INTERFACE_DEFINED__
  23882 #define __IAttachmentExecute_INTERFACE_DEFINED__
  23883 
  23884 typedef enum ATTACHMENT_PROMPT {
  23885     ATTACHMENT_PROMPT_NONE = 0x0,
  23886     ATTACHMENT_PROMPT_SAVE = 0x1,
  23887     ATTACHMENT_PROMPT_EXEC = 0x2,
  23888     ATTACHMENT_PROMPT_EXEC_OR_SAVE = 0x3
  23889 } ATTACHMENT_PROMPT;
  23890 
  23891 typedef enum ATTACHMENT_ACTION {
  23892     ATTACHMENT_ACTION_CANCEL = 0x0,
  23893     ATTACHMENT_ACTION_SAVE = 0x1,
  23894     ATTACHMENT_ACTION_EXEC = 0x2
  23895 } ATTACHMENT_ACTION;
  23896 
  23897 DEFINE_GUID(IID_IAttachmentExecute, 0x73db1241, 0x1e85, 0x4581, 0x8e,0x4f, 0xa8,0x1e,0x1d,0x0f,0x8c,0x57);
  23898 #if defined(__cplusplus) && !defined(CINTERFACE)
  23899 MIDL_INTERFACE("73db1241-1e85-4581-8e4f-a81e1d0f8c57")
  23900 IAttachmentExecute : public IUnknown
  23901 {
  23902     virtual HRESULT STDMETHODCALLTYPE SetClientTitle(
  23903         LPCWSTR pszTitle) = 0;
  23904 
  23905     virtual HRESULT STDMETHODCALLTYPE SetClientGuid(
  23906         REFGUID guid) = 0;
  23907 
  23908     virtual HRESULT STDMETHODCALLTYPE SetLocalPath(
  23909         LPCWSTR pszLocalPath) = 0;
  23910 
  23911     virtual HRESULT STDMETHODCALLTYPE SetFileName(
  23912         LPCWSTR pszFileName) = 0;
  23913 
  23914     virtual HRESULT STDMETHODCALLTYPE SetSource(
  23915         LPCWSTR pszSource) = 0;
  23916 
  23917     virtual HRESULT STDMETHODCALLTYPE SetReferrer(
  23918         LPCWSTR pszReferrer) = 0;
  23919 
  23920     virtual HRESULT STDMETHODCALLTYPE CheckPolicy(
  23921         ) = 0;
  23922 
  23923     virtual HRESULT STDMETHODCALLTYPE Prompt(
  23924         HWND hwnd,
  23925         ATTACHMENT_PROMPT prompt,
  23926         ATTACHMENT_ACTION *paction) = 0;
  23927 
  23928     virtual HRESULT STDMETHODCALLTYPE Save(
  23929         ) = 0;
  23930 
  23931     virtual HRESULT STDMETHODCALLTYPE Execute(
  23932         HWND hwnd,
  23933         LPCWSTR pszVerb,
  23934         HANDLE *phProcess) = 0;
  23935 
  23936     virtual HRESULT STDMETHODCALLTYPE SaveWithUI(
  23937         HWND hwnd) = 0;
  23938 
  23939     virtual HRESULT STDMETHODCALLTYPE ClearClientState(
  23940         ) = 0;
  23941 
  23942 };
  23943 #ifdef __CRT_UUID_DECL
  23944 __CRT_UUID_DECL(IAttachmentExecute, 0x73db1241, 0x1e85, 0x4581, 0x8e,0x4f, 0xa8,0x1e,0x1d,0x0f,0x8c,0x57)
  23945 #endif
  23946 #else
  23947 typedef struct IAttachmentExecuteVtbl {
  23948     BEGIN_INTERFACE
  23949 
  23950     /*** IUnknown methods ***/
  23951     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  23952         IAttachmentExecute *This,
  23953         REFIID riid,
  23954         void **ppvObject);
  23955 
  23956     ULONG (STDMETHODCALLTYPE *AddRef)(
  23957         IAttachmentExecute *This);
  23958 
  23959     ULONG (STDMETHODCALLTYPE *Release)(
  23960         IAttachmentExecute *This);
  23961 
  23962     /*** IAttachmentExecute methods ***/
  23963     HRESULT (STDMETHODCALLTYPE *SetClientTitle)(
  23964         IAttachmentExecute *This,
  23965         LPCWSTR pszTitle);
  23966 
  23967     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
  23968         IAttachmentExecute *This,
  23969         REFGUID guid);
  23970 
  23971     HRESULT (STDMETHODCALLTYPE *SetLocalPath)(
  23972         IAttachmentExecute *This,
  23973         LPCWSTR pszLocalPath);
  23974 
  23975     HRESULT (STDMETHODCALLTYPE *SetFileName)(
  23976         IAttachmentExecute *This,
  23977         LPCWSTR pszFileName);
  23978 
  23979     HRESULT (STDMETHODCALLTYPE *SetSource)(
  23980         IAttachmentExecute *This,
  23981         LPCWSTR pszSource);
  23982 
  23983     HRESULT (STDMETHODCALLTYPE *SetReferrer)(
  23984         IAttachmentExecute *This,
  23985         LPCWSTR pszReferrer);
  23986 
  23987     HRESULT (STDMETHODCALLTYPE *CheckPolicy)(
  23988         IAttachmentExecute *This);
  23989 
  23990     HRESULT (STDMETHODCALLTYPE *Prompt)(
  23991         IAttachmentExecute *This,
  23992         HWND hwnd,
  23993         ATTACHMENT_PROMPT prompt,
  23994         ATTACHMENT_ACTION *paction);
  23995 
  23996     HRESULT (STDMETHODCALLTYPE *Save)(
  23997         IAttachmentExecute *This);
  23998 
  23999     HRESULT (STDMETHODCALLTYPE *Execute)(
  24000         IAttachmentExecute *This,
  24001         HWND hwnd,
  24002         LPCWSTR pszVerb,
  24003         HANDLE *phProcess);
  24004 
  24005     HRESULT (STDMETHODCALLTYPE *SaveWithUI)(
  24006         IAttachmentExecute *This,
  24007         HWND hwnd);
  24008 
  24009     HRESULT (STDMETHODCALLTYPE *ClearClientState)(
  24010         IAttachmentExecute *This);
  24011 
  24012     END_INTERFACE
  24013 } IAttachmentExecuteVtbl;
  24014 
  24015 interface IAttachmentExecute {
  24016     CONST_VTBL IAttachmentExecuteVtbl* lpVtbl;
  24017 };
  24018 
  24019 #ifdef COBJMACROS
  24020 #ifndef WIDL_C_INLINE_WRAPPERS
  24021 /*** IUnknown methods ***/
  24022 #define IAttachmentExecute_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  24023 #define IAttachmentExecute_AddRef(This) (This)->lpVtbl->AddRef(This)
  24024 #define IAttachmentExecute_Release(This) (This)->lpVtbl->Release(This)
  24025 /*** IAttachmentExecute methods ***/
  24026 #define IAttachmentExecute_SetClientTitle(This,pszTitle) (This)->lpVtbl->SetClientTitle(This,pszTitle)
  24027 #define IAttachmentExecute_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
  24028 #define IAttachmentExecute_SetLocalPath(This,pszLocalPath) (This)->lpVtbl->SetLocalPath(This,pszLocalPath)
  24029 #define IAttachmentExecute_SetFileName(This,pszFileName) (This)->lpVtbl->SetFileName(This,pszFileName)
  24030 #define IAttachmentExecute_SetSource(This,pszSource) (This)->lpVtbl->SetSource(This,pszSource)
  24031 #define IAttachmentExecute_SetReferrer(This,pszReferrer) (This)->lpVtbl->SetReferrer(This,pszReferrer)
  24032 #define IAttachmentExecute_CheckPolicy(This) (This)->lpVtbl->CheckPolicy(This)
  24033 #define IAttachmentExecute_Prompt(This,hwnd,prompt,paction) (This)->lpVtbl->Prompt(This,hwnd,prompt,paction)
  24034 #define IAttachmentExecute_Save(This) (This)->lpVtbl->Save(This)
  24035 #define IAttachmentExecute_Execute(This,hwnd,pszVerb,phProcess) (This)->lpVtbl->Execute(This,hwnd,pszVerb,phProcess)
  24036 #define IAttachmentExecute_SaveWithUI(This,hwnd) (This)->lpVtbl->SaveWithUI(This,hwnd)
  24037 #define IAttachmentExecute_ClearClientState(This) (This)->lpVtbl->ClearClientState(This)
  24038 #else
  24039 /*** IUnknown methods ***/
  24040 static inline HRESULT IAttachmentExecute_QueryInterface(IAttachmentExecute* This,REFIID riid,void **ppvObject) {
  24041     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  24042 }
  24043 static inline ULONG IAttachmentExecute_AddRef(IAttachmentExecute* This) {
  24044     return This->lpVtbl->AddRef(This);
  24045 }
  24046 static inline ULONG IAttachmentExecute_Release(IAttachmentExecute* This) {
  24047     return This->lpVtbl->Release(This);
  24048 }
  24049 /*** IAttachmentExecute methods ***/
  24050 static inline HRESULT IAttachmentExecute_SetClientTitle(IAttachmentExecute* This,LPCWSTR pszTitle) {
  24051     return This->lpVtbl->SetClientTitle(This,pszTitle);
  24052 }
  24053 static inline HRESULT IAttachmentExecute_SetClientGuid(IAttachmentExecute* This,REFGUID guid) {
  24054     return This->lpVtbl->SetClientGuid(This,guid);
  24055 }
  24056 static inline HRESULT IAttachmentExecute_SetLocalPath(IAttachmentExecute* This,LPCWSTR pszLocalPath) {
  24057     return This->lpVtbl->SetLocalPath(This,pszLocalPath);
  24058 }
  24059 static inline HRESULT IAttachmentExecute_SetFileName(IAttachmentExecute* This,LPCWSTR pszFileName) {
  24060     return This->lpVtbl->SetFileName(This,pszFileName);
  24061 }
  24062 static inline HRESULT IAttachmentExecute_SetSource(IAttachmentExecute* This,LPCWSTR pszSource) {
  24063     return This->lpVtbl->SetSource(This,pszSource);
  24064 }
  24065 static inline HRESULT IAttachmentExecute_SetReferrer(IAttachmentExecute* This,LPCWSTR pszReferrer) {
  24066     return This->lpVtbl->SetReferrer(This,pszReferrer);
  24067 }
  24068 static inline HRESULT IAttachmentExecute_CheckPolicy(IAttachmentExecute* This) {
  24069     return This->lpVtbl->CheckPolicy(This);
  24070 }
  24071 static inline HRESULT IAttachmentExecute_Prompt(IAttachmentExecute* This,HWND hwnd,ATTACHMENT_PROMPT prompt,ATTACHMENT_ACTION *paction) {
  24072     return This->lpVtbl->Prompt(This,hwnd,prompt,paction);
  24073 }
  24074 static inline HRESULT IAttachmentExecute_Save(IAttachmentExecute* This) {
  24075     return This->lpVtbl->Save(This);
  24076 }
  24077 static inline HRESULT IAttachmentExecute_Execute(IAttachmentExecute* This,HWND hwnd,LPCWSTR pszVerb,HANDLE *phProcess) {
  24078     return This->lpVtbl->Execute(This,hwnd,pszVerb,phProcess);
  24079 }
  24080 static inline HRESULT IAttachmentExecute_SaveWithUI(IAttachmentExecute* This,HWND hwnd) {
  24081     return This->lpVtbl->SaveWithUI(This,hwnd);
  24082 }
  24083 static inline HRESULT IAttachmentExecute_ClearClientState(IAttachmentExecute* This) {
  24084     return This->lpVtbl->ClearClientState(This);
  24085 }
  24086 #endif
  24087 #endif
  24088 
  24089 #endif
  24090 
  24091 
  24092 #endif  /* __IAttachmentExecute_INTERFACE_DEFINED__ */
  24093 
  24094 #endif
  24095 
  24096 #if _WIN32_IE >= _WIN32_IE_IE60
  24097 
  24098 #include <pshpack8.h>
  24099 typedef struct tagSMDATA {
  24100     DWORD dwMask;
  24101     DWORD dwFlags;
  24102     HMENU hmenu;
  24103     HWND hwnd;
  24104     UINT uId;
  24105     UINT uIdParent;
  24106     UINT uIdAncestor;
  24107     IUnknown *punk;
  24108     PIDLIST_ABSOLUTE pidlFolder;
  24109     PUITEMID_CHILD pidlItem;
  24110     IShellFolder *psf;
  24111     void *pvUserData;
  24112 } SMDATA;
  24113 typedef struct tagSMDATA *LPSMDATA;
  24114 
  24115 #define SMDM_SHELLFOLDER 0x00000001
  24116 #define SMDM_HMENU 0x00000002
  24117 #define SMDM_TOOLBAR 0x00000004
  24118 
  24119 typedef struct tagSMINFO {
  24120     DWORD dwMask;
  24121     DWORD dwType;
  24122     DWORD dwFlags;
  24123     int iIcon;
  24124 } SMINFO;
  24125 typedef struct tagSMINFO *PSMINFO;
  24126 
  24127 typedef struct SHCSCHANGENOTIFYSTRUCT {
  24128     LONG lEvent;
  24129     PCIDLIST_ABSOLUTE pidl1;
  24130     PCIDLIST_ABSOLUTE pidl2;
  24131 } SMCSHCHANGENOTIFYSTRUCT;
  24132 typedef struct SHCSCHANGENOTIFYSTRUCT *PSMCSHCHANGENOTIFYSTRUCT;
  24133 #include <poppack.h>
  24134 
  24135 enum tagSMINFOMASK {
  24136     SMIM_TYPE = 0x1,
  24137     SMIM_FLAGS = 0x2,
  24138     SMIM_ICON = 0x4
  24139 };
  24140 
  24141 enum tagSMINFOTYPE {
  24142     SMIT_SEPARATOR = 0x1,
  24143     SMIT_STRING = 0x2
  24144 };
  24145 
  24146 enum tagSMINFOFLAGS {
  24147     SMIF_ICON = 0x1,
  24148     SMIF_ACCELERATOR = 0x2,
  24149     SMIF_DROPTARGET = 0x4,
  24150     SMIF_SUBMENU = 0x8,
  24151     SMIF_CHECKED = 0x20,
  24152     SMIF_DROPCASCADE = 0x40,
  24153     SMIF_HIDDEN = 0x80,
  24154     SMIF_DISABLED = 0x100,
  24155     SMIF_TRACKPOPUP = 0x200,
  24156     SMIF_DEMOTED = 0x400,
  24157     SMIF_ALTSTATE = 0x800,
  24158     SMIF_DRAGNDROP = 0x1000,
  24159     SMIF_NEW = 0x2000
  24160 };
  24161 
  24162 #define SMC_INITMENU 0x00000001
  24163 #define SMC_CREATE 0x00000002
  24164 #define SMC_EXITMENU 0x00000003
  24165 #define SMC_GETINFO 0x00000005
  24166 #define SMC_GETSFINFO 0x00000006
  24167 #define SMC_GETOBJECT 0x00000007
  24168 #define SMC_GETSFOBJECT 0x00000008
  24169 #define SMC_SFEXEC 0x00000009
  24170 #define SMC_SFSELECTITEM 0x0000000A
  24171 #define SMC_REFRESH 0x00000010
  24172 #define SMC_DEMOTE 0x00000011
  24173 #define SMC_PROMOTE 0x00000012
  24174 #define SMC_DEFAULTICON 0x00000016
  24175 #define SMC_NEWITEM 0x00000017
  24176 #define SMC_CHEVRONEXPAND 0x00000019
  24177 #define SMC_DISPLAYCHEVRONTIP 0x0000002A
  24178 #define SMC_SETSFOBJECT 0x0000002D
  24179 #define SMC_SHCHANGENOTIFY 0x0000002E
  24180 #define SMC_CHEVRONGETTIP 0x0000002F
  24181 #define SMC_SFDDRESTRICTED 0x00000030
  24182 #if _WIN32_IE >= _WIN32_IE_IE70
  24183 #define SMC_SFEXEC_MIDDLE 0x00000031
  24184 #define SMC_GETAUTOEXPANDSTATE 0x00000041
  24185 #define SMC_AUTOEXPANDCHANGE 0x00000042
  24186 #define SMC_GETCONTEXTMENUMODIFIER 0x00000043
  24187 #define SMC_GETBKCONTEXTMENU 0x00000044
  24188 #define SMC_OPEN 0x00000045
  24189 
  24190 #define SMAE_EXPANDED 0x00000001
  24191 #define SMAE_CONTRACTED 0x00000002
  24192 
  24193 #define SMAE_USER 0x00000004
  24194 
  24195 #define SMAE_VALID 0x00000007
  24196 #endif
  24197 
  24198 /*****************************************************************************
  24199  * IShellMenuCallback interface
  24200  */
  24201 #ifndef __IShellMenuCallback_INTERFACE_DEFINED__
  24202 #define __IShellMenuCallback_INTERFACE_DEFINED__
  24203 
  24204 DEFINE_GUID(IID_IShellMenuCallback, 0x4ca300a1, 0x9b8d, 0x11d1, 0x8b,0x22, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
  24205 #if defined(__cplusplus) && !defined(CINTERFACE)
  24206 MIDL_INTERFACE("4ca300a1-9b8d-11d1-8b22-00c04fd918d0")
  24207 IShellMenuCallback : public IUnknown
  24208 {
  24209     virtual HRESULT STDMETHODCALLTYPE CallbackSM(
  24210         LPSMDATA psmd,
  24211         UINT uMsg,
  24212         WPARAM wParam,
  24213         LPARAM lParam) = 0;
  24214 
  24215 };
  24216 #ifdef __CRT_UUID_DECL
  24217 __CRT_UUID_DECL(IShellMenuCallback, 0x4ca300a1, 0x9b8d, 0x11d1, 0x8b,0x22, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
  24218 #endif
  24219 #else
  24220 typedef struct IShellMenuCallbackVtbl {
  24221     BEGIN_INTERFACE
  24222 
  24223     /*** IUnknown methods ***/
  24224     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  24225         IShellMenuCallback *This,
  24226         REFIID riid,
  24227         void **ppvObject);
  24228 
  24229     ULONG (STDMETHODCALLTYPE *AddRef)(
  24230         IShellMenuCallback *This);
  24231 
  24232     ULONG (STDMETHODCALLTYPE *Release)(
  24233         IShellMenuCallback *This);
  24234 
  24235     /*** IShellMenuCallback methods ***/
  24236     HRESULT (STDMETHODCALLTYPE *CallbackSM)(
  24237         IShellMenuCallback *This,
  24238         LPSMDATA psmd,
  24239         UINT uMsg,
  24240         WPARAM wParam,
  24241         LPARAM lParam);
  24242 
  24243     END_INTERFACE
  24244 } IShellMenuCallbackVtbl;
  24245 
  24246 interface IShellMenuCallback {
  24247     CONST_VTBL IShellMenuCallbackVtbl* lpVtbl;
  24248 };
  24249 
  24250 #ifdef COBJMACROS
  24251 #ifndef WIDL_C_INLINE_WRAPPERS
  24252 /*** IUnknown methods ***/
  24253 #define IShellMenuCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  24254 #define IShellMenuCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
  24255 #define IShellMenuCallback_Release(This) (This)->lpVtbl->Release(This)
  24256 /*** IShellMenuCallback methods ***/
  24257 #define IShellMenuCallback_CallbackSM(This,psmd,uMsg,wParam,lParam) (This)->lpVtbl->CallbackSM(This,psmd,uMsg,wParam,lParam)
  24258 #else
  24259 /*** IUnknown methods ***/
  24260 static inline HRESULT IShellMenuCallback_QueryInterface(IShellMenuCallback* This,REFIID riid,void **ppvObject) {
  24261     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  24262 }
  24263 static inline ULONG IShellMenuCallback_AddRef(IShellMenuCallback* This) {
  24264     return This->lpVtbl->AddRef(This);
  24265 }
  24266 static inline ULONG IShellMenuCallback_Release(IShellMenuCallback* This) {
  24267     return This->lpVtbl->Release(This);
  24268 }
  24269 /*** IShellMenuCallback methods ***/
  24270 static inline HRESULT IShellMenuCallback_CallbackSM(IShellMenuCallback* This,LPSMDATA psmd,UINT uMsg,WPARAM wParam,LPARAM lParam) {
  24271     return This->lpVtbl->CallbackSM(This,psmd,uMsg,wParam,lParam);
  24272 }
  24273 #endif
  24274 #endif
  24275 
  24276 #endif
  24277 
  24278 
  24279 #endif  /* __IShellMenuCallback_INTERFACE_DEFINED__ */
  24280 
  24281 
  24282 #define SMINIT_DEFAULT 0x00000000
  24283 #define SMINIT_RESTRICT_DRAGDROP 0x00000002
  24284 #define SMINIT_TOPLEVEL 0x00000004
  24285 #define SMINIT_CACHED 0x00000010
  24286 #if _WIN32_IE >= _WIN32_IE_IE70
  24287 #define SMINIT_AUTOEXPAND 0x00000100
  24288 #define SMINIT_AUTOTOOLTIP 0x00000200
  24289 #define SMINIT_DROPONCONTAINER 0x00000400
  24290 #endif
  24291 
  24292 #define SMINIT_VERTICAL 0x10000000
  24293 #define SMINIT_HORIZONTAL 0x20000000
  24294 
  24295 #define ANCESTORDEFAULT (UINT)-1
  24296 
  24297 #define SMSET_TOP 0x10000000
  24298 #define SMSET_BOTTOM 0x20000000
  24299 #define SMSET_DONTOWN 0x00000001
  24300 
  24301 #define SMINV_REFRESH 0x00000001
  24302 #define SMINV_ID 0x00000008
  24303 
  24304 /*****************************************************************************
  24305  * IShellMenu interface
  24306  */
  24307 #ifndef __IShellMenu_INTERFACE_DEFINED__
  24308 #define __IShellMenu_INTERFACE_DEFINED__
  24309 
  24310 DEFINE_GUID(IID_IShellMenu, 0xee1f7637, 0xe138, 0x11d1, 0x83,0x79, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
  24311 #if defined(__cplusplus) && !defined(CINTERFACE)
  24312 MIDL_INTERFACE("ee1f7637-e138-11d1-8379-00c04fd918d0")
  24313 IShellMenu : public IUnknown
  24314 {
  24315     virtual HRESULT STDMETHODCALLTYPE Initialize(
  24316         IShellMenuCallback *psmc,
  24317         UINT uId,
  24318         UINT uIdAncestor,
  24319         DWORD dwFlags) = 0;
  24320 
  24321     virtual HRESULT STDMETHODCALLTYPE GetMenuInfo(
  24322         IShellMenuCallback **ppsmc,
  24323         UINT *puId,
  24324         UINT *puIdAncestor,
  24325         DWORD *pdwFlags) = 0;
  24326 
  24327     virtual HRESULT STDMETHODCALLTYPE SetShellFolder(
  24328         IShellFolder *psf,
  24329         PCIDLIST_ABSOLUTE pidlFolder,
  24330         HKEY hKey,
  24331         DWORD dwFlags) = 0;
  24332 
  24333     virtual HRESULT STDMETHODCALLTYPE GetShellFolder(
  24334         DWORD *pdwFlags,
  24335         PIDLIST_ABSOLUTE *ppidl,
  24336         REFIID riid,
  24337         void **ppv) = 0;
  24338 
  24339     virtual HRESULT STDMETHODCALLTYPE SetMenu(
  24340         HMENU hmenu,
  24341         HWND hwnd,
  24342         DWORD dwFlags) = 0;
  24343 
  24344     virtual HRESULT STDMETHODCALLTYPE GetMenu(
  24345         HMENU *phmenu,
  24346         HWND *phwnd,
  24347         DWORD *pdwFlags) = 0;
  24348 
  24349     virtual HRESULT STDMETHODCALLTYPE InvalidateItem(
  24350         LPSMDATA psmd,
  24351         DWORD dwFlags) = 0;
  24352 
  24353     virtual HRESULT STDMETHODCALLTYPE GetState(
  24354         LPSMDATA psmd) = 0;
  24355 
  24356     virtual HRESULT STDMETHODCALLTYPE SetMenuToolbar(
  24357         IUnknown *punk,
  24358         DWORD dwFlags) = 0;
  24359 
  24360 };
  24361 #ifdef __CRT_UUID_DECL
  24362 __CRT_UUID_DECL(IShellMenu, 0xee1f7637, 0xe138, 0x11d1, 0x83,0x79, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
  24363 #endif
  24364 #else
  24365 typedef struct IShellMenuVtbl {
  24366     BEGIN_INTERFACE
  24367 
  24368     /*** IUnknown methods ***/
  24369     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  24370         IShellMenu *This,
  24371         REFIID riid,
  24372         void **ppvObject);
  24373 
  24374     ULONG (STDMETHODCALLTYPE *AddRef)(
  24375         IShellMenu *This);
  24376 
  24377     ULONG (STDMETHODCALLTYPE *Release)(
  24378         IShellMenu *This);
  24379 
  24380     /*** IShellMenu methods ***/
  24381     HRESULT (STDMETHODCALLTYPE *Initialize)(
  24382         IShellMenu *This,
  24383         IShellMenuCallback *psmc,
  24384         UINT uId,
  24385         UINT uIdAncestor,
  24386         DWORD dwFlags);
  24387 
  24388     HRESULT (STDMETHODCALLTYPE *GetMenuInfo)(
  24389         IShellMenu *This,
  24390         IShellMenuCallback **ppsmc,
  24391         UINT *puId,
  24392         UINT *puIdAncestor,
  24393         DWORD *pdwFlags);
  24394 
  24395     HRESULT (STDMETHODCALLTYPE *SetShellFolder)(
  24396         IShellMenu *This,
  24397         IShellFolder *psf,
  24398         PCIDLIST_ABSOLUTE pidlFolder,
  24399         HKEY hKey,
  24400         DWORD dwFlags);
  24401 
  24402     HRESULT (STDMETHODCALLTYPE *GetShellFolder)(
  24403         IShellMenu *This,
  24404         DWORD *pdwFlags,
  24405         PIDLIST_ABSOLUTE *ppidl,
  24406         REFIID riid,
  24407         void **ppv);
  24408 
  24409     HRESULT (STDMETHODCALLTYPE *SetMenu)(
  24410         IShellMenu *This,
  24411         HMENU hmenu,
  24412         HWND hwnd,
  24413         DWORD dwFlags);
  24414 
  24415     HRESULT (STDMETHODCALLTYPE *GetMenu)(
  24416         IShellMenu *This,
  24417         HMENU *phmenu,
  24418         HWND *phwnd,
  24419         DWORD *pdwFlags);
  24420 
  24421     HRESULT (STDMETHODCALLTYPE *InvalidateItem)(
  24422         IShellMenu *This,
  24423         LPSMDATA psmd,
  24424         DWORD dwFlags);
  24425 
  24426     HRESULT (STDMETHODCALLTYPE *GetState)(
  24427         IShellMenu *This,
  24428         LPSMDATA psmd);
  24429 
  24430     HRESULT (STDMETHODCALLTYPE *SetMenuToolbar)(
  24431         IShellMenu *This,
  24432         IUnknown *punk,
  24433         DWORD dwFlags);
  24434 
  24435     END_INTERFACE
  24436 } IShellMenuVtbl;
  24437 
  24438 interface IShellMenu {
  24439     CONST_VTBL IShellMenuVtbl* lpVtbl;
  24440 };
  24441 
  24442 #ifdef COBJMACROS
  24443 #ifndef WIDL_C_INLINE_WRAPPERS
  24444 /*** IUnknown methods ***/
  24445 #define IShellMenu_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  24446 #define IShellMenu_AddRef(This) (This)->lpVtbl->AddRef(This)
  24447 #define IShellMenu_Release(This) (This)->lpVtbl->Release(This)
  24448 /*** IShellMenu methods ***/
  24449 #define IShellMenu_Initialize(This,psmc,uId,uIdAncestor,dwFlags) (This)->lpVtbl->Initialize(This,psmc,uId,uIdAncestor,dwFlags)
  24450 #define IShellMenu_GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags) (This)->lpVtbl->GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags)
  24451 #define IShellMenu_SetShellFolder(This,psf,pidlFolder,hKey,dwFlags) (This)->lpVtbl->SetShellFolder(This,psf,pidlFolder,hKey,dwFlags)
  24452 #define IShellMenu_GetShellFolder(This,pdwFlags,ppidl,riid,ppv) (This)->lpVtbl->GetShellFolder(This,pdwFlags,ppidl,riid,ppv)
  24453 #define IShellMenu_SetMenu(This,hmenu,hwnd,dwFlags) (This)->lpVtbl->SetMenu(This,hmenu,hwnd,dwFlags)
  24454 #define IShellMenu_GetMenu(This,phmenu,phwnd,pdwFlags) (This)->lpVtbl->GetMenu(This,phmenu,phwnd,pdwFlags)
  24455 #define IShellMenu_InvalidateItem(This,psmd,dwFlags) (This)->lpVtbl->InvalidateItem(This,psmd,dwFlags)
  24456 #define IShellMenu_GetState(This,psmd) (This)->lpVtbl->GetState(This,psmd)
  24457 #define IShellMenu_SetMenuToolbar(This,punk,dwFlags) (This)->lpVtbl->SetMenuToolbar(This,punk,dwFlags)
  24458 #else
  24459 /*** IUnknown methods ***/
  24460 static inline HRESULT IShellMenu_QueryInterface(IShellMenu* This,REFIID riid,void **ppvObject) {
  24461     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  24462 }
  24463 static inline ULONG IShellMenu_AddRef(IShellMenu* This) {
  24464     return This->lpVtbl->AddRef(This);
  24465 }
  24466 static inline ULONG IShellMenu_Release(IShellMenu* This) {
  24467     return This->lpVtbl->Release(This);
  24468 }
  24469 /*** IShellMenu methods ***/
  24470 static inline HRESULT IShellMenu_Initialize(IShellMenu* This,IShellMenuCallback *psmc,UINT uId,UINT uIdAncestor,DWORD dwFlags) {
  24471     return This->lpVtbl->Initialize(This,psmc,uId,uIdAncestor,dwFlags);
  24472 }
  24473 static inline HRESULT IShellMenu_GetMenuInfo(IShellMenu* This,IShellMenuCallback **ppsmc,UINT *puId,UINT *puIdAncestor,DWORD *pdwFlags) {
  24474     return This->lpVtbl->GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags);
  24475 }
  24476 static inline HRESULT IShellMenu_SetShellFolder(IShellMenu* This,IShellFolder *psf,PCIDLIST_ABSOLUTE pidlFolder,HKEY hKey,DWORD dwFlags) {
  24477     return This->lpVtbl->SetShellFolder(This,psf,pidlFolder,hKey,dwFlags);
  24478 }
  24479 static inline HRESULT IShellMenu_GetShellFolder(IShellMenu* This,DWORD *pdwFlags,PIDLIST_ABSOLUTE *ppidl,REFIID riid,void **ppv) {
  24480     return This->lpVtbl->GetShellFolder(This,pdwFlags,ppidl,riid,ppv);
  24481 }
  24482 static inline HRESULT IShellMenu_SetMenu(IShellMenu* This,HMENU hmenu,HWND hwnd,DWORD dwFlags) {
  24483     return This->lpVtbl->SetMenu(This,hmenu,hwnd,dwFlags);
  24484 }
  24485 static inline HRESULT IShellMenu_GetMenu(IShellMenu* This,HMENU *phmenu,HWND *phwnd,DWORD *pdwFlags) {
  24486     return This->lpVtbl->GetMenu(This,phmenu,phwnd,pdwFlags);
  24487 }
  24488 static inline HRESULT IShellMenu_InvalidateItem(IShellMenu* This,LPSMDATA psmd,DWORD dwFlags) {
  24489     return This->lpVtbl->InvalidateItem(This,psmd,dwFlags);
  24490 }
  24491 static inline HRESULT IShellMenu_GetState(IShellMenu* This,LPSMDATA psmd) {
  24492     return This->lpVtbl->GetState(This,psmd);
  24493 }
  24494 static inline HRESULT IShellMenu_SetMenuToolbar(IShellMenu* This,IUnknown *punk,DWORD dwFlags) {
  24495     return This->lpVtbl->SetMenuToolbar(This,punk,dwFlags);
  24496 }
  24497 #endif
  24498 #endif
  24499 
  24500 #endif
  24501 
  24502 
  24503 #endif  /* __IShellMenu_INTERFACE_DEFINED__ */
  24504 
  24505 #endif
  24506 
  24507 /*****************************************************************************
  24508  * IShellRunDll interface
  24509  */
  24510 #ifndef __IShellRunDll_INTERFACE_DEFINED__
  24511 #define __IShellRunDll_INTERFACE_DEFINED__
  24512 
  24513 DEFINE_GUID(IID_IShellRunDll, 0xfce4bde0, 0x4b68, 0x4b80, 0x8e,0x9c, 0x74,0x26,0x31,0x5a,0x73,0x88);
  24514 #if defined(__cplusplus) && !defined(CINTERFACE)
  24515 MIDL_INTERFACE("fce4bde0-4b68-4b80-8e9c-7426315a7388")
  24516 IShellRunDll : public IUnknown
  24517 {
  24518     virtual HRESULT STDMETHODCALLTYPE Run(
  24519         LPCWSTR pszArgs) = 0;
  24520 
  24521 };
  24522 #ifdef __CRT_UUID_DECL
  24523 __CRT_UUID_DECL(IShellRunDll, 0xfce4bde0, 0x4b68, 0x4b80, 0x8e,0x9c, 0x74,0x26,0x31,0x5a,0x73,0x88)
  24524 #endif
  24525 #else
  24526 typedef struct IShellRunDllVtbl {
  24527     BEGIN_INTERFACE
  24528 
  24529     /*** IUnknown methods ***/
  24530     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  24531         IShellRunDll *This,
  24532         REFIID riid,
  24533         void **ppvObject);
  24534 
  24535     ULONG (STDMETHODCALLTYPE *AddRef)(
  24536         IShellRunDll *This);
  24537 
  24538     ULONG (STDMETHODCALLTYPE *Release)(
  24539         IShellRunDll *This);
  24540 
  24541     /*** IShellRunDll methods ***/
  24542     HRESULT (STDMETHODCALLTYPE *Run)(
  24543         IShellRunDll *This,
  24544         LPCWSTR pszArgs);
  24545 
  24546     END_INTERFACE
  24547 } IShellRunDllVtbl;
  24548 
  24549 interface IShellRunDll {
  24550     CONST_VTBL IShellRunDllVtbl* lpVtbl;
  24551 };
  24552 
  24553 #ifdef COBJMACROS
  24554 #ifndef WIDL_C_INLINE_WRAPPERS
  24555 /*** IUnknown methods ***/
  24556 #define IShellRunDll_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  24557 #define IShellRunDll_AddRef(This) (This)->lpVtbl->AddRef(This)
  24558 #define IShellRunDll_Release(This) (This)->lpVtbl->Release(This)
  24559 /*** IShellRunDll methods ***/
  24560 #define IShellRunDll_Run(This,pszArgs) (This)->lpVtbl->Run(This,pszArgs)
  24561 #else
  24562 /*** IUnknown methods ***/
  24563 static inline HRESULT IShellRunDll_QueryInterface(IShellRunDll* This,REFIID riid,void **ppvObject) {
  24564     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  24565 }
  24566 static inline ULONG IShellRunDll_AddRef(IShellRunDll* This) {
  24567     return This->lpVtbl->AddRef(This);
  24568 }
  24569 static inline ULONG IShellRunDll_Release(IShellRunDll* This) {
  24570     return This->lpVtbl->Release(This);
  24571 }
  24572 /*** IShellRunDll methods ***/
  24573 static inline HRESULT IShellRunDll_Run(IShellRunDll* This,LPCWSTR pszArgs) {
  24574     return This->lpVtbl->Run(This,pszArgs);
  24575 }
  24576 #endif
  24577 #endif
  24578 
  24579 #endif
  24580 
  24581 
  24582 #endif  /* __IShellRunDll_INTERFACE_DEFINED__ */
  24583 
  24584 
  24585 #if NTDDI_VERSION >= NTDDI_VISTA
  24586 typedef enum KF_CATEGORY {
  24587     KF_CATEGORY_VIRTUAL = 1,
  24588     KF_CATEGORY_FIXED = 2,
  24589     KF_CATEGORY_COMMON = 3,
  24590     KF_CATEGORY_PERUSER = 4
  24591 } KF_CATEGORY;
  24592 
  24593 enum _KF_DEFINITION_FLAGS {
  24594     KFDF_LOCAL_REDIRECT_ONLY = 0x2,
  24595     KFDF_ROAMABLE = 0x4,
  24596     KFDF_PRECREATE = 0x8,
  24597     KFDF_STREAM = 0x10,
  24598     KFDF_PUBLISHEXPANDEDPATH = 0x20
  24599 };
  24600 
  24601 typedef DWORD KF_DEFINITION_FLAGS;
  24602 
  24603 enum _KF_REDIRECT_FLAGS {
  24604     KF_REDIRECT_USER_EXCLUSIVE = 0x1,
  24605     KF_REDIRECT_COPY_SOURCE_DACL = 0x2,
  24606     KF_REDIRECT_OWNER_USER = 0x4,
  24607     KF_REDIRECT_SET_OWNER_EXPLICIT = 0x8,
  24608     KF_REDIRECT_CHECK_ONLY = 0x10,
  24609     KF_REDIRECT_WITH_UI = 0x20,
  24610     KF_REDIRECT_UNPIN = 0x40,
  24611     KF_REDIRECT_PIN = 0x80,
  24612     KF_REDIRECT_COPY_CONTENTS = 0x200,
  24613     KF_REDIRECT_DEL_SOURCE_CONTENTS = 0x400,
  24614     KF_REDIRECT_EXCLUDE_ALL_KNOWN_SUBFOLDERS = 0x800
  24615 };
  24616 
  24617 typedef DWORD KF_REDIRECT_FLAGS;
  24618 
  24619 enum _KF_REDIRECTION_CAPABILITIES {
  24620     KF_REDIRECTION_CAPABILITIES_ALLOW_ALL = 0xff,
  24621     KF_REDIRECTION_CAPABILITIES_REDIRECTABLE = 0x1,
  24622     KF_REDIRECTION_CAPABILITIES_DENY_ALL = 0xfff00,
  24623     KF_REDIRECTION_CAPABILITIES_DENY_POLICY_REDIRECTED = 0x100,
  24624     KF_REDIRECTION_CAPABILITIES_DENY_POLICY = 0x200,
  24625     KF_REDIRECTION_CAPABILITIES_DENY_PERMISSIONS = 0x400
  24626 };
  24627 
  24628 typedef DWORD KF_REDIRECTION_CAPABILITIES;
  24629 
  24630 typedef struct KNOWNFOLDER_DEFINITION {
  24631     KF_CATEGORY category;
  24632     LPWSTR pszName;
  24633     LPWSTR pszDescription;
  24634     KNOWNFOLDERID fidParent;
  24635     LPWSTR pszRelativePath;
  24636     LPWSTR pszParsingName;
  24637     LPWSTR pszTooltip;
  24638     LPWSTR pszLocalizedName;
  24639     LPWSTR pszIcon;
  24640     LPWSTR pszSecurity;
  24641     DWORD dwAttributes;
  24642     KF_DEFINITION_FLAGS kfdFlags;
  24643     FOLDERTYPEID ftidType;
  24644 } KNOWNFOLDER_DEFINITION;
  24645 
  24646 /*****************************************************************************
  24647  * IKnownFolder interface
  24648  */
  24649 #ifndef __IKnownFolder_INTERFACE_DEFINED__
  24650 #define __IKnownFolder_INTERFACE_DEFINED__
  24651 
  24652 DEFINE_GUID(IID_IKnownFolder, 0x3aa7af7e, 0x9b36, 0x420c, 0xa8,0xe3, 0xf7,0x7d,0x46,0x74,0xa4,0x88);
  24653 #if defined(__cplusplus) && !defined(CINTERFACE)
  24654 MIDL_INTERFACE("3aa7af7e-9b36-420c-a8e3-f77d4674a488")
  24655 IKnownFolder : public IUnknown
  24656 {
  24657     virtual HRESULT STDMETHODCALLTYPE GetId(
  24658         KNOWNFOLDERID *pkfid) = 0;
  24659 
  24660     virtual HRESULT STDMETHODCALLTYPE GetCategory(
  24661         KF_CATEGORY *pCategory) = 0;
  24662 
  24663     virtual HRESULT STDMETHODCALLTYPE GetShellItem(
  24664         DWORD dwFlags,
  24665         REFIID riid,
  24666         void **ppv) = 0;
  24667 
  24668     virtual HRESULT STDMETHODCALLTYPE GetPath(
  24669         DWORD dwFlags,
  24670         LPWSTR *ppszPath) = 0;
  24671 
  24672     virtual HRESULT STDMETHODCALLTYPE SetPath(
  24673         DWORD dwFlags,
  24674         LPCWSTR pszPath) = 0;
  24675 
  24676     virtual HRESULT STDMETHODCALLTYPE GetIDList(
  24677         DWORD dwFlags,
  24678         PIDLIST_ABSOLUTE *ppidl) = 0;
  24679 
  24680     virtual HRESULT STDMETHODCALLTYPE GetFolderType(
  24681         FOLDERTYPEID *pftid) = 0;
  24682 
  24683     virtual HRESULT STDMETHODCALLTYPE GetRedirectionCapabilities(
  24684         KF_REDIRECTION_CAPABILITIES *pCapabilities) = 0;
  24685 
  24686     virtual HRESULT STDMETHODCALLTYPE GetFolderDefinition(
  24687         KNOWNFOLDER_DEFINITION *pKFD) = 0;
  24688 
  24689 };
  24690 #ifdef __CRT_UUID_DECL
  24691 __CRT_UUID_DECL(IKnownFolder, 0x3aa7af7e, 0x9b36, 0x420c, 0xa8,0xe3, 0xf7,0x7d,0x46,0x74,0xa4,0x88)
  24692 #endif
  24693 #else
  24694 typedef struct IKnownFolderVtbl {
  24695     BEGIN_INTERFACE
  24696 
  24697     /*** IUnknown methods ***/
  24698     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  24699         IKnownFolder *This,
  24700         REFIID riid,
  24701         void **ppvObject);
  24702 
  24703     ULONG (STDMETHODCALLTYPE *AddRef)(
  24704         IKnownFolder *This);
  24705 
  24706     ULONG (STDMETHODCALLTYPE *Release)(
  24707         IKnownFolder *This);
  24708 
  24709     /*** IKnownFolder methods ***/
  24710     HRESULT (STDMETHODCALLTYPE *GetId)(
  24711         IKnownFolder *This,
  24712         KNOWNFOLDERID *pkfid);
  24713 
  24714     HRESULT (STDMETHODCALLTYPE *GetCategory)(
  24715         IKnownFolder *This,
  24716         KF_CATEGORY *pCategory);
  24717 
  24718     HRESULT (STDMETHODCALLTYPE *GetShellItem)(
  24719         IKnownFolder *This,
  24720         DWORD dwFlags,
  24721         REFIID riid,
  24722         void **ppv);
  24723 
  24724     HRESULT (STDMETHODCALLTYPE *GetPath)(
  24725         IKnownFolder *This,
  24726         DWORD dwFlags,
  24727         LPWSTR *ppszPath);
  24728 
  24729     HRESULT (STDMETHODCALLTYPE *SetPath)(
  24730         IKnownFolder *This,
  24731         DWORD dwFlags,
  24732         LPCWSTR pszPath);
  24733 
  24734     HRESULT (STDMETHODCALLTYPE *GetIDList)(
  24735         IKnownFolder *This,
  24736         DWORD dwFlags,
  24737         PIDLIST_ABSOLUTE *ppidl);
  24738 
  24739     HRESULT (STDMETHODCALLTYPE *GetFolderType)(
  24740         IKnownFolder *This,
  24741         FOLDERTYPEID *pftid);
  24742 
  24743     HRESULT (STDMETHODCALLTYPE *GetRedirectionCapabilities)(
  24744         IKnownFolder *This,
  24745         KF_REDIRECTION_CAPABILITIES *pCapabilities);
  24746 
  24747     HRESULT (STDMETHODCALLTYPE *GetFolderDefinition)(
  24748         IKnownFolder *This,
  24749         KNOWNFOLDER_DEFINITION *pKFD);
  24750 
  24751     END_INTERFACE
  24752 } IKnownFolderVtbl;
  24753 
  24754 interface IKnownFolder {
  24755     CONST_VTBL IKnownFolderVtbl* lpVtbl;
  24756 };
  24757 
  24758 #ifdef COBJMACROS
  24759 #ifndef WIDL_C_INLINE_WRAPPERS
  24760 /*** IUnknown methods ***/
  24761 #define IKnownFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  24762 #define IKnownFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
  24763 #define IKnownFolder_Release(This) (This)->lpVtbl->Release(This)
  24764 /*** IKnownFolder methods ***/
  24765 #define IKnownFolder_GetId(This,pkfid) (This)->lpVtbl->GetId(This,pkfid)
  24766 #define IKnownFolder_GetCategory(This,pCategory) (This)->lpVtbl->GetCategory(This,pCategory)
  24767 #define IKnownFolder_GetShellItem(This,dwFlags,riid,ppv) (This)->lpVtbl->GetShellItem(This,dwFlags,riid,ppv)
  24768 #define IKnownFolder_GetPath(This,dwFlags,ppszPath) (This)->lpVtbl->GetPath(This,dwFlags,ppszPath)
  24769 #define IKnownFolder_SetPath(This,dwFlags,pszPath) (This)->lpVtbl->SetPath(This,dwFlags,pszPath)
  24770 #define IKnownFolder_GetIDList(This,dwFlags,ppidl) (This)->lpVtbl->GetIDList(This,dwFlags,ppidl)
  24771 #define IKnownFolder_GetFolderType(This,pftid) (This)->lpVtbl->GetFolderType(This,pftid)
  24772 #define IKnownFolder_GetRedirectionCapabilities(This,pCapabilities) (This)->lpVtbl->GetRedirectionCapabilities(This,pCapabilities)
  24773 #define IKnownFolder_GetFolderDefinition(This,pKFD) (This)->lpVtbl->GetFolderDefinition(This,pKFD)
  24774 #else
  24775 /*** IUnknown methods ***/
  24776 static inline HRESULT IKnownFolder_QueryInterface(IKnownFolder* This,REFIID riid,void **ppvObject) {
  24777     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  24778 }
  24779 static inline ULONG IKnownFolder_AddRef(IKnownFolder* This) {
  24780     return This->lpVtbl->AddRef(This);
  24781 }
  24782 static inline ULONG IKnownFolder_Release(IKnownFolder* This) {
  24783     return This->lpVtbl->Release(This);
  24784 }
  24785 /*** IKnownFolder methods ***/
  24786 static inline HRESULT IKnownFolder_GetId(IKnownFolder* This,KNOWNFOLDERID *pkfid) {
  24787     return This->lpVtbl->GetId(This,pkfid);
  24788 }
  24789 static inline HRESULT IKnownFolder_GetCategory(IKnownFolder* This,KF_CATEGORY *pCategory) {
  24790     return This->lpVtbl->GetCategory(This,pCategory);
  24791 }
  24792 static inline HRESULT IKnownFolder_GetShellItem(IKnownFolder* This,DWORD dwFlags,REFIID riid,void **ppv) {
  24793     return This->lpVtbl->GetShellItem(This,dwFlags,riid,ppv);
  24794 }
  24795 static inline HRESULT IKnownFolder_GetPath(IKnownFolder* This,DWORD dwFlags,LPWSTR *ppszPath) {
  24796     return This->lpVtbl->GetPath(This,dwFlags,ppszPath);
  24797 }
  24798 static inline HRESULT IKnownFolder_SetPath(IKnownFolder* This,DWORD dwFlags,LPCWSTR pszPath) {
  24799     return This->lpVtbl->SetPath(This,dwFlags,pszPath);
  24800 }
  24801 static inline HRESULT IKnownFolder_GetIDList(IKnownFolder* This,DWORD dwFlags,PIDLIST_ABSOLUTE *ppidl) {
  24802     return This->lpVtbl->GetIDList(This,dwFlags,ppidl);
  24803 }
  24804 static inline HRESULT IKnownFolder_GetFolderType(IKnownFolder* This,FOLDERTYPEID *pftid) {
  24805     return This->lpVtbl->GetFolderType(This,pftid);
  24806 }
  24807 static inline HRESULT IKnownFolder_GetRedirectionCapabilities(IKnownFolder* This,KF_REDIRECTION_CAPABILITIES *pCapabilities) {
  24808     return This->lpVtbl->GetRedirectionCapabilities(This,pCapabilities);
  24809 }
  24810 static inline HRESULT IKnownFolder_GetFolderDefinition(IKnownFolder* This,KNOWNFOLDER_DEFINITION *pKFD) {
  24811     return This->lpVtbl->GetFolderDefinition(This,pKFD);
  24812 }
  24813 #endif
  24814 #endif
  24815 
  24816 #endif
  24817 
  24818 
  24819 #endif  /* __IKnownFolder_INTERFACE_DEFINED__ */
  24820 
  24821 
  24822 /*****************************************************************************
  24823  * IKnownFolderManager interface
  24824  */
  24825 #ifndef __IKnownFolderManager_INTERFACE_DEFINED__
  24826 #define __IKnownFolderManager_INTERFACE_DEFINED__
  24827 
  24828 typedef enum FFFP_MODE {
  24829     FFFP_EXACTMATCH = 0,
  24830     FFFP_NEARESTPARENTMATCH = 1
  24831 } FFFP_MODE;
  24832 
  24833 DEFINE_GUID(IID_IKnownFolderManager, 0x8be2d872, 0x86aa, 0x4d47, 0xb7,0x76, 0x32,0xcc,0xa4,0x0c,0x70,0x18);
  24834 #if defined(__cplusplus) && !defined(CINTERFACE)
  24835 MIDL_INTERFACE("8be2d872-86aa-4d47-b776-32cca40c7018")
  24836 IKnownFolderManager : public IUnknown
  24837 {
  24838     virtual HRESULT STDMETHODCALLTYPE FolderIdFromCsidl(
  24839         int nCsidl,
  24840         KNOWNFOLDERID *pfid) = 0;
  24841 
  24842     virtual HRESULT STDMETHODCALLTYPE FolderIdToCsidl(
  24843         REFKNOWNFOLDERID rfid,
  24844         int *pnCsidl) = 0;
  24845 
  24846     virtual HRESULT STDMETHODCALLTYPE GetFolderIds(
  24847         KNOWNFOLDERID **ppKFId,
  24848         UINT *pCount) = 0;
  24849 
  24850     virtual HRESULT STDMETHODCALLTYPE GetFolder(
  24851         REFKNOWNFOLDERID rfid,
  24852         IKnownFolder **ppkf) = 0;
  24853 
  24854     virtual HRESULT STDMETHODCALLTYPE GetFolderByName(
  24855         LPCWSTR pszCanonicalName,
  24856         IKnownFolder **ppkf) = 0;
  24857 
  24858     virtual HRESULT STDMETHODCALLTYPE RegisterFolder(
  24859         REFKNOWNFOLDERID rfid,
  24860         const KNOWNFOLDER_DEFINITION *pKFD) = 0;
  24861 
  24862     virtual HRESULT STDMETHODCALLTYPE UnregisterFolder(
  24863         REFKNOWNFOLDERID rfid) = 0;
  24864 
  24865     virtual HRESULT STDMETHODCALLTYPE FindFolderFromPath(
  24866         LPCWSTR pszPath,
  24867         FFFP_MODE mode,
  24868         IKnownFolder **ppkf) = 0;
  24869 
  24870     virtual HRESULT STDMETHODCALLTYPE FindFolderFromIDList(
  24871         PCIDLIST_ABSOLUTE pidl,
  24872         IKnownFolder **ppkf) = 0;
  24873 
  24874     virtual HRESULT STDMETHODCALLTYPE Redirect(
  24875         REFKNOWNFOLDERID rfid,
  24876         HWND hwnd,
  24877         KF_REDIRECT_FLAGS flags,
  24878         LPCWSTR pszTargetPath,
  24879         UINT cFolders,
  24880         const KNOWNFOLDERID *pExclusion,
  24881         LPWSTR *ppszError) = 0;
  24882 
  24883 };
  24884 #ifdef __CRT_UUID_DECL
  24885 __CRT_UUID_DECL(IKnownFolderManager, 0x8be2d872, 0x86aa, 0x4d47, 0xb7,0x76, 0x32,0xcc,0xa4,0x0c,0x70,0x18)
  24886 #endif
  24887 #else
  24888 typedef struct IKnownFolderManagerVtbl {
  24889     BEGIN_INTERFACE
  24890 
  24891     /*** IUnknown methods ***/
  24892     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  24893         IKnownFolderManager *This,
  24894         REFIID riid,
  24895         void **ppvObject);
  24896 
  24897     ULONG (STDMETHODCALLTYPE *AddRef)(
  24898         IKnownFolderManager *This);
  24899 
  24900     ULONG (STDMETHODCALLTYPE *Release)(
  24901         IKnownFolderManager *This);
  24902 
  24903     /*** IKnownFolderManager methods ***/
  24904     HRESULT (STDMETHODCALLTYPE *FolderIdFromCsidl)(
  24905         IKnownFolderManager *This,
  24906         int nCsidl,
  24907         KNOWNFOLDERID *pfid);
  24908 
  24909     HRESULT (STDMETHODCALLTYPE *FolderIdToCsidl)(
  24910         IKnownFolderManager *This,
  24911         REFKNOWNFOLDERID rfid,
  24912         int *pnCsidl);
  24913 
  24914     HRESULT (STDMETHODCALLTYPE *GetFolderIds)(
  24915         IKnownFolderManager *This,
  24916         KNOWNFOLDERID **ppKFId,
  24917         UINT *pCount);
  24918 
  24919     HRESULT (STDMETHODCALLTYPE *GetFolder)(
  24920         IKnownFolderManager *This,
  24921         REFKNOWNFOLDERID rfid,
  24922         IKnownFolder **ppkf);
  24923 
  24924     HRESULT (STDMETHODCALLTYPE *GetFolderByName)(
  24925         IKnownFolderManager *This,
  24926         LPCWSTR pszCanonicalName,
  24927         IKnownFolder **ppkf);
  24928 
  24929     HRESULT (STDMETHODCALLTYPE *RegisterFolder)(
  24930         IKnownFolderManager *This,
  24931         REFKNOWNFOLDERID rfid,
  24932         const KNOWNFOLDER_DEFINITION *pKFD);
  24933 
  24934     HRESULT (STDMETHODCALLTYPE *UnregisterFolder)(
  24935         IKnownFolderManager *This,
  24936         REFKNOWNFOLDERID rfid);
  24937 
  24938     HRESULT (STDMETHODCALLTYPE *FindFolderFromPath)(
  24939         IKnownFolderManager *This,
  24940         LPCWSTR pszPath,
  24941         FFFP_MODE mode,
  24942         IKnownFolder **ppkf);
  24943 
  24944     HRESULT (STDMETHODCALLTYPE *FindFolderFromIDList)(
  24945         IKnownFolderManager *This,
  24946         PCIDLIST_ABSOLUTE pidl,
  24947         IKnownFolder **ppkf);
  24948 
  24949     HRESULT (STDMETHODCALLTYPE *Redirect)(
  24950         IKnownFolderManager *This,
  24951         REFKNOWNFOLDERID rfid,
  24952         HWND hwnd,
  24953         KF_REDIRECT_FLAGS flags,
  24954         LPCWSTR pszTargetPath,
  24955         UINT cFolders,
  24956         const KNOWNFOLDERID *pExclusion,
  24957         LPWSTR *ppszError);
  24958 
  24959     END_INTERFACE
  24960 } IKnownFolderManagerVtbl;
  24961 
  24962 interface IKnownFolderManager {
  24963     CONST_VTBL IKnownFolderManagerVtbl* lpVtbl;
  24964 };
  24965 
  24966 #ifdef COBJMACROS
  24967 #ifndef WIDL_C_INLINE_WRAPPERS
  24968 /*** IUnknown methods ***/
  24969 #define IKnownFolderManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  24970 #define IKnownFolderManager_AddRef(This) (This)->lpVtbl->AddRef(This)
  24971 #define IKnownFolderManager_Release(This) (This)->lpVtbl->Release(This)
  24972 /*** IKnownFolderManager methods ***/
  24973 #define IKnownFolderManager_FolderIdFromCsidl(This,nCsidl,pfid) (This)->lpVtbl->FolderIdFromCsidl(This,nCsidl,pfid)
  24974 #define IKnownFolderManager_FolderIdToCsidl(This,rfid,pnCsidl) (This)->lpVtbl->FolderIdToCsidl(This,rfid,pnCsidl)
  24975 #define IKnownFolderManager_GetFolderIds(This,ppKFId,pCount) (This)->lpVtbl->GetFolderIds(This,ppKFId,pCount)
  24976 #define IKnownFolderManager_GetFolder(This,rfid,ppkf) (This)->lpVtbl->GetFolder(This,rfid,ppkf)
  24977 #define IKnownFolderManager_GetFolderByName(This,pszCanonicalName,ppkf) (This)->lpVtbl->GetFolderByName(This,pszCanonicalName,ppkf)
  24978 #define IKnownFolderManager_RegisterFolder(This,rfid,pKFD) (This)->lpVtbl->RegisterFolder(This,rfid,pKFD)
  24979 #define IKnownFolderManager_UnregisterFolder(This,rfid) (This)->lpVtbl->UnregisterFolder(This,rfid)
  24980 #define IKnownFolderManager_FindFolderFromPath(This,pszPath,mode,ppkf) (This)->lpVtbl->FindFolderFromPath(This,pszPath,mode,ppkf)
  24981 #define IKnownFolderManager_FindFolderFromIDList(This,pidl,ppkf) (This)->lpVtbl->FindFolderFromIDList(This,pidl,ppkf)
  24982 #define IKnownFolderManager_Redirect(This,rfid,hwnd,flags,pszTargetPath,cFolders,pExclusion,ppszError) (This)->lpVtbl->Redirect(This,rfid,hwnd,flags,pszTargetPath,cFolders,pExclusion,ppszError)
  24983 #else
  24984 /*** IUnknown methods ***/
  24985 static inline HRESULT IKnownFolderManager_QueryInterface(IKnownFolderManager* This,REFIID riid,void **ppvObject) {
  24986     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  24987 }
  24988 static inline ULONG IKnownFolderManager_AddRef(IKnownFolderManager* This) {
  24989     return This->lpVtbl->AddRef(This);
  24990 }
  24991 static inline ULONG IKnownFolderManager_Release(IKnownFolderManager* This) {
  24992     return This->lpVtbl->Release(This);
  24993 }
  24994 /*** IKnownFolderManager methods ***/
  24995 static inline HRESULT IKnownFolderManager_FolderIdFromCsidl(IKnownFolderManager* This,int nCsidl,KNOWNFOLDERID *pfid) {
  24996     return This->lpVtbl->FolderIdFromCsidl(This,nCsidl,pfid);
  24997 }
  24998 static inline HRESULT IKnownFolderManager_FolderIdToCsidl(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,int *pnCsidl) {
  24999     return This->lpVtbl->FolderIdToCsidl(This,rfid,pnCsidl);
  25000 }
  25001 static inline HRESULT IKnownFolderManager_GetFolderIds(IKnownFolderManager* This,KNOWNFOLDERID **ppKFId,UINT *pCount) {
  25002     return This->lpVtbl->GetFolderIds(This,ppKFId,pCount);
  25003 }
  25004 static inline HRESULT IKnownFolderManager_GetFolder(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,IKnownFolder **ppkf) {
  25005     return This->lpVtbl->GetFolder(This,rfid,ppkf);
  25006 }
  25007 static inline HRESULT IKnownFolderManager_GetFolderByName(IKnownFolderManager* This,LPCWSTR pszCanonicalName,IKnownFolder **ppkf) {
  25008     return This->lpVtbl->GetFolderByName(This,pszCanonicalName,ppkf);
  25009 }
  25010 static inline HRESULT IKnownFolderManager_RegisterFolder(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,const KNOWNFOLDER_DEFINITION *pKFD) {
  25011     return This->lpVtbl->RegisterFolder(This,rfid,pKFD);
  25012 }
  25013 static inline HRESULT IKnownFolderManager_UnregisterFolder(IKnownFolderManager* This,REFKNOWNFOLDERID rfid) {
  25014     return This->lpVtbl->UnregisterFolder(This,rfid);
  25015 }
  25016 static inline HRESULT IKnownFolderManager_FindFolderFromPath(IKnownFolderManager* This,LPCWSTR pszPath,FFFP_MODE mode,IKnownFolder **ppkf) {
  25017     return This->lpVtbl->FindFolderFromPath(This,pszPath,mode,ppkf);
  25018 }
  25019 static inline HRESULT IKnownFolderManager_FindFolderFromIDList(IKnownFolderManager* This,PCIDLIST_ABSOLUTE pidl,IKnownFolder **ppkf) {
  25020     return This->lpVtbl->FindFolderFromIDList(This,pidl,ppkf);
  25021 }
  25022 static inline HRESULT IKnownFolderManager_Redirect(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,HWND hwnd,KF_REDIRECT_FLAGS flags,LPCWSTR pszTargetPath,UINT cFolders,const KNOWNFOLDERID *pExclusion,LPWSTR *ppszError) {
  25023     return This->lpVtbl->Redirect(This,rfid,hwnd,flags,pszTargetPath,cFolders,pExclusion,ppszError);
  25024 }
  25025 #endif
  25026 #endif
  25027 
  25028 #endif
  25029 
  25030 HRESULT STDMETHODCALLTYPE IKnownFolderManager_RemoteRedirect_Proxy(
  25031     IKnownFolderManager* This,
  25032     REFKNOWNFOLDERID rfid,
  25033     HWND hwnd,
  25034     KF_REDIRECT_FLAGS flags,
  25035     LPCWSTR pszTargetPath,
  25036     UINT cFolders,
  25037     const GUID *pExclusion,
  25038     LPWSTR *ppszError);
  25039 void __RPC_STUB IKnownFolderManager_RemoteRedirect_Stub(
  25040     IRpcStubBuffer* This,
  25041     IRpcChannelBuffer* pRpcChannelBuffer,
  25042     PRPC_MESSAGE pRpcMessage,
  25043     DWORD* pdwStubPhase);
  25044 HRESULT CALLBACK IKnownFolderManager_Redirect_Proxy(
  25045     IKnownFolderManager* This,
  25046     REFKNOWNFOLDERID rfid,
  25047     HWND hwnd,
  25048     KF_REDIRECT_FLAGS flags,
  25049     LPCWSTR pszTargetPath,
  25050     UINT cFolders,
  25051     const KNOWNFOLDERID *pExclusion,
  25052     LPWSTR *ppszError);
  25053 HRESULT __RPC_STUB IKnownFolderManager_Redirect_Stub(
  25054     IKnownFolderManager* This,
  25055     REFKNOWNFOLDERID rfid,
  25056     HWND hwnd,
  25057     KF_REDIRECT_FLAGS flags,
  25058     LPCWSTR pszTargetPath,
  25059     UINT cFolders,
  25060     const GUID *pExclusion,
  25061     LPWSTR *ppszError);
  25062 
  25063 #endif  /* __IKnownFolderManager_INTERFACE_DEFINED__ */
  25064 
  25065 
  25066   __forceinline void FreeKnownFolderDefinitionFields(KNOWNFOLDER_DEFINITION *pKFD) {
  25067     CoTaskMemFree(pKFD->pszName);
  25068     CoTaskMemFree(pKFD->pszDescription);
  25069     CoTaskMemFree(pKFD->pszRelativePath);
  25070     CoTaskMemFree(pKFD->pszParsingName);
  25071     CoTaskMemFree(pKFD->pszTooltip);
  25072     CoTaskMemFree(pKFD->pszLocalizedName);
  25073     CoTaskMemFree(pKFD->pszIcon);
  25074     CoTaskMemFree(pKFD->pszSecurity);
  25075   }
  25076 
  25077 typedef enum SHARE_ROLE {
  25078     SHARE_ROLE_INVALID = -1,
  25079     SHARE_ROLE_READER = 0,
  25080     SHARE_ROLE_CONTRIBUTOR = 1,
  25081     SHARE_ROLE_CO_OWNER = 2,
  25082     SHARE_ROLE_OWNER = 3,
  25083     SHARE_ROLE_CUSTOM = 4,
  25084     SHARE_ROLE_MIXED = 5
  25085 } SHARE_ROLE;
  25086 
  25087 typedef enum DEF_SHARE_ID {
  25088     DEFSHAREID_USERS = 1,
  25089     DEFSHAREID_PUBLIC = 2
  25090 } DEF_SHARE_ID;
  25091 
  25092 /*****************************************************************************
  25093  * ISharingConfigurationManager interface
  25094  */
  25095 #ifndef __ISharingConfigurationManager_INTERFACE_DEFINED__
  25096 #define __ISharingConfigurationManager_INTERFACE_DEFINED__
  25097 
  25098 DEFINE_GUID(IID_ISharingConfigurationManager, 0xb4cd448a, 0x9c86, 0x4466, 0x92,0x01, 0x2e,0x62,0x10,0x5b,0x87,0xae);
  25099 #if defined(__cplusplus) && !defined(CINTERFACE)
  25100 MIDL_INTERFACE("b4cd448a-9c86-4466-9201-2e62105b87ae")
  25101 ISharingConfigurationManager : public IUnknown
  25102 {
  25103     virtual HRESULT STDMETHODCALLTYPE CreateShare(
  25104         DEF_SHARE_ID dsid,
  25105         SHARE_ROLE role) = 0;
  25106 
  25107     virtual HRESULT STDMETHODCALLTYPE DeleteShare(
  25108         DEF_SHARE_ID dsid) = 0;
  25109 
  25110     virtual HRESULT STDMETHODCALLTYPE ShareExists(
  25111         DEF_SHARE_ID dsid) = 0;
  25112 
  25113     virtual HRESULT STDMETHODCALLTYPE GetSharePermissions(
  25114         DEF_SHARE_ID dsid,
  25115         SHARE_ROLE *pRole) = 0;
  25116 
  25117     virtual HRESULT STDMETHODCALLTYPE SharePrinters(
  25118         ) = 0;
  25119 
  25120     virtual HRESULT STDMETHODCALLTYPE StopSharingPrinters(
  25121         ) = 0;
  25122 
  25123     virtual HRESULT STDMETHODCALLTYPE ArePrintersShared(
  25124         ) = 0;
  25125 
  25126 };
  25127 #ifdef __CRT_UUID_DECL
  25128 __CRT_UUID_DECL(ISharingConfigurationManager, 0xb4cd448a, 0x9c86, 0x4466, 0x92,0x01, 0x2e,0x62,0x10,0x5b,0x87,0xae)
  25129 #endif
  25130 #else
  25131 typedef struct ISharingConfigurationManagerVtbl {
  25132     BEGIN_INTERFACE
  25133 
  25134     /*** IUnknown methods ***/
  25135     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  25136         ISharingConfigurationManager *This,
  25137         REFIID riid,
  25138         void **ppvObject);
  25139 
  25140     ULONG (STDMETHODCALLTYPE *AddRef)(
  25141         ISharingConfigurationManager *This);
  25142 
  25143     ULONG (STDMETHODCALLTYPE *Release)(
  25144         ISharingConfigurationManager *This);
  25145 
  25146     /*** ISharingConfigurationManager methods ***/
  25147     HRESULT (STDMETHODCALLTYPE *CreateShare)(
  25148         ISharingConfigurationManager *This,
  25149         DEF_SHARE_ID dsid,
  25150         SHARE_ROLE role);
  25151 
  25152     HRESULT (STDMETHODCALLTYPE *DeleteShare)(
  25153         ISharingConfigurationManager *This,
  25154         DEF_SHARE_ID dsid);
  25155 
  25156     HRESULT (STDMETHODCALLTYPE *ShareExists)(
  25157         ISharingConfigurationManager *This,
  25158         DEF_SHARE_ID dsid);
  25159 
  25160     HRESULT (STDMETHODCALLTYPE *GetSharePermissions)(
  25161         ISharingConfigurationManager *This,
  25162         DEF_SHARE_ID dsid,
  25163         SHARE_ROLE *pRole);
  25164 
  25165     HRESULT (STDMETHODCALLTYPE *SharePrinters)(
  25166         ISharingConfigurationManager *This);
  25167 
  25168     HRESULT (STDMETHODCALLTYPE *StopSharingPrinters)(
  25169         ISharingConfigurationManager *This);
  25170 
  25171     HRESULT (STDMETHODCALLTYPE *ArePrintersShared)(
  25172         ISharingConfigurationManager *This);
  25173 
  25174     END_INTERFACE
  25175 } ISharingConfigurationManagerVtbl;
  25176 
  25177 interface ISharingConfigurationManager {
  25178     CONST_VTBL ISharingConfigurationManagerVtbl* lpVtbl;
  25179 };
  25180 
  25181 #ifdef COBJMACROS
  25182 #ifndef WIDL_C_INLINE_WRAPPERS
  25183 /*** IUnknown methods ***/
  25184 #define ISharingConfigurationManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  25185 #define ISharingConfigurationManager_AddRef(This) (This)->lpVtbl->AddRef(This)
  25186 #define ISharingConfigurationManager_Release(This) (This)->lpVtbl->Release(This)
  25187 /*** ISharingConfigurationManager methods ***/
  25188 #define ISharingConfigurationManager_CreateShare(This,dsid,role) (This)->lpVtbl->CreateShare(This,dsid,role)
  25189 #define ISharingConfigurationManager_DeleteShare(This,dsid) (This)->lpVtbl->DeleteShare(This,dsid)
  25190 #define ISharingConfigurationManager_ShareExists(This,dsid) (This)->lpVtbl->ShareExists(This,dsid)
  25191 #define ISharingConfigurationManager_GetSharePermissions(This,dsid,pRole) (This)->lpVtbl->GetSharePermissions(This,dsid,pRole)
  25192 #define ISharingConfigurationManager_SharePrinters(This) (This)->lpVtbl->SharePrinters(This)
  25193 #define ISharingConfigurationManager_StopSharingPrinters(This) (This)->lpVtbl->StopSharingPrinters(This)
  25194 #define ISharingConfigurationManager_ArePrintersShared(This) (This)->lpVtbl->ArePrintersShared(This)
  25195 #else
  25196 /*** IUnknown methods ***/
  25197 static inline HRESULT ISharingConfigurationManager_QueryInterface(ISharingConfigurationManager* This,REFIID riid,void **ppvObject) {
  25198     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  25199 }
  25200 static inline ULONG ISharingConfigurationManager_AddRef(ISharingConfigurationManager* This) {
  25201     return This->lpVtbl->AddRef(This);
  25202 }
  25203 static inline ULONG ISharingConfigurationManager_Release(ISharingConfigurationManager* This) {
  25204     return This->lpVtbl->Release(This);
  25205 }
  25206 /*** ISharingConfigurationManager methods ***/
  25207 static inline HRESULT ISharingConfigurationManager_CreateShare(ISharingConfigurationManager* This,DEF_SHARE_ID dsid,SHARE_ROLE role) {
  25208     return This->lpVtbl->CreateShare(This,dsid,role);
  25209 }
  25210 static inline HRESULT ISharingConfigurationManager_DeleteShare(ISharingConfigurationManager* This,DEF_SHARE_ID dsid) {
  25211     return This->lpVtbl->DeleteShare(This,dsid);
  25212 }
  25213 static inline HRESULT ISharingConfigurationManager_ShareExists(ISharingConfigurationManager* This,DEF_SHARE_ID dsid) {
  25214     return This->lpVtbl->ShareExists(This,dsid);
  25215 }
  25216 static inline HRESULT ISharingConfigurationManager_GetSharePermissions(ISharingConfigurationManager* This,DEF_SHARE_ID dsid,SHARE_ROLE *pRole) {
  25217     return This->lpVtbl->GetSharePermissions(This,dsid,pRole);
  25218 }
  25219 static inline HRESULT ISharingConfigurationManager_SharePrinters(ISharingConfigurationManager* This) {
  25220     return This->lpVtbl->SharePrinters(This);
  25221 }
  25222 static inline HRESULT ISharingConfigurationManager_StopSharingPrinters(ISharingConfigurationManager* This) {
  25223     return This->lpVtbl->StopSharingPrinters(This);
  25224 }
  25225 static inline HRESULT ISharingConfigurationManager_ArePrintersShared(ISharingConfigurationManager* This) {
  25226     return This->lpVtbl->ArePrintersShared(This);
  25227 }
  25228 #endif
  25229 #endif
  25230 
  25231 #endif
  25232 
  25233 
  25234 #endif  /* __ISharingConfigurationManager_INTERFACE_DEFINED__ */
  25235 
  25236 #endif
  25237 
  25238 /*****************************************************************************
  25239  * IPreviousVersionsInfo interface
  25240  */
  25241 #ifndef __IPreviousVersionsInfo_INTERFACE_DEFINED__
  25242 #define __IPreviousVersionsInfo_INTERFACE_DEFINED__
  25243 
  25244 DEFINE_GUID(IID_IPreviousVersionsInfo, 0x76e54780, 0xad74, 0x48e3, 0xa6,0x95, 0x3b,0xa9,0xa0,0xaf,0xf1,0x0d);
  25245 #if defined(__cplusplus) && !defined(CINTERFACE)
  25246 MIDL_INTERFACE("76e54780-ad74-48e3-a695-3ba9a0aff10d")
  25247 IPreviousVersionsInfo : public IUnknown
  25248 {
  25249     virtual HRESULT STDMETHODCALLTYPE AreSnapshotsAvailable(
  25250         LPCWSTR pszPath,
  25251         WINBOOL fOkToBeSlow,
  25252         WINBOOL *pfAvailable) = 0;
  25253 
  25254 };
  25255 #ifdef __CRT_UUID_DECL
  25256 __CRT_UUID_DECL(IPreviousVersionsInfo, 0x76e54780, 0xad74, 0x48e3, 0xa6,0x95, 0x3b,0xa9,0xa0,0xaf,0xf1,0x0d)
  25257 #endif
  25258 #else
  25259 typedef struct IPreviousVersionsInfoVtbl {
  25260     BEGIN_INTERFACE
  25261 
  25262     /*** IUnknown methods ***/
  25263     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  25264         IPreviousVersionsInfo *This,
  25265         REFIID riid,
  25266         void **ppvObject);
  25267 
  25268     ULONG (STDMETHODCALLTYPE *AddRef)(
  25269         IPreviousVersionsInfo *This);
  25270 
  25271     ULONG (STDMETHODCALLTYPE *Release)(
  25272         IPreviousVersionsInfo *This);
  25273 
  25274     /*** IPreviousVersionsInfo methods ***/
  25275     HRESULT (STDMETHODCALLTYPE *AreSnapshotsAvailable)(
  25276         IPreviousVersionsInfo *This,
  25277         LPCWSTR pszPath,
  25278         WINBOOL fOkToBeSlow,
  25279         WINBOOL *pfAvailable);
  25280 
  25281     END_INTERFACE
  25282 } IPreviousVersionsInfoVtbl;
  25283 
  25284 interface IPreviousVersionsInfo {
  25285     CONST_VTBL IPreviousVersionsInfoVtbl* lpVtbl;
  25286 };
  25287 
  25288 #ifdef COBJMACROS
  25289 #ifndef WIDL_C_INLINE_WRAPPERS
  25290 /*** IUnknown methods ***/
  25291 #define IPreviousVersionsInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  25292 #define IPreviousVersionsInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  25293 #define IPreviousVersionsInfo_Release(This) (This)->lpVtbl->Release(This)
  25294 /*** IPreviousVersionsInfo methods ***/
  25295 #define IPreviousVersionsInfo_AreSnapshotsAvailable(This,pszPath,fOkToBeSlow,pfAvailable) (This)->lpVtbl->AreSnapshotsAvailable(This,pszPath,fOkToBeSlow,pfAvailable)
  25296 #else
  25297 /*** IUnknown methods ***/
  25298 static inline HRESULT IPreviousVersionsInfo_QueryInterface(IPreviousVersionsInfo* This,REFIID riid,void **ppvObject) {
  25299     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  25300 }
  25301 static inline ULONG IPreviousVersionsInfo_AddRef(IPreviousVersionsInfo* This) {
  25302     return This->lpVtbl->AddRef(This);
  25303 }
  25304 static inline ULONG IPreviousVersionsInfo_Release(IPreviousVersionsInfo* This) {
  25305     return This->lpVtbl->Release(This);
  25306 }
  25307 /*** IPreviousVersionsInfo methods ***/
  25308 static inline HRESULT IPreviousVersionsInfo_AreSnapshotsAvailable(IPreviousVersionsInfo* This,LPCWSTR pszPath,WINBOOL fOkToBeSlow,WINBOOL *pfAvailable) {
  25309     return This->lpVtbl->AreSnapshotsAvailable(This,pszPath,fOkToBeSlow,pfAvailable);
  25310 }
  25311 #endif
  25312 #endif
  25313 
  25314 #endif
  25315 
  25316 
  25317 #endif  /* __IPreviousVersionsInfo_INTERFACE_DEFINED__ */
  25318 
  25319 
  25320 #if NTDDI_VERSION >= NTDDI_VISTA
  25321 /*****************************************************************************
  25322  * IRelatedItem interface
  25323  */
  25324 #ifndef __IRelatedItem_INTERFACE_DEFINED__
  25325 #define __IRelatedItem_INTERFACE_DEFINED__
  25326 
  25327 DEFINE_GUID(IID_IRelatedItem, 0xa73ce67a, 0x8ab1, 0x44f1, 0x8d,0x43, 0xd2,0xfc,0xbf,0x6b,0x1c,0xd0);
  25328 #if defined(__cplusplus) && !defined(CINTERFACE)
  25329 MIDL_INTERFACE("a73ce67a-8ab1-44f1-8d43-d2fcbf6b1cd0")
  25330 IRelatedItem : public IUnknown
  25331 {
  25332     virtual HRESULT STDMETHODCALLTYPE GetItemIDList(
  25333         PIDLIST_ABSOLUTE *ppidl) = 0;
  25334 
  25335     virtual HRESULT STDMETHODCALLTYPE GetItem(
  25336         IShellItem **ppsi) = 0;
  25337 
  25338 };
  25339 #ifdef __CRT_UUID_DECL
  25340 __CRT_UUID_DECL(IRelatedItem, 0xa73ce67a, 0x8ab1, 0x44f1, 0x8d,0x43, 0xd2,0xfc,0xbf,0x6b,0x1c,0xd0)
  25341 #endif
  25342 #else
  25343 typedef struct IRelatedItemVtbl {
  25344     BEGIN_INTERFACE
  25345 
  25346     /*** IUnknown methods ***/
  25347     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  25348         IRelatedItem *This,
  25349         REFIID riid,
  25350         void **ppvObject);
  25351 
  25352     ULONG (STDMETHODCALLTYPE *AddRef)(
  25353         IRelatedItem *This);
  25354 
  25355     ULONG (STDMETHODCALLTYPE *Release)(
  25356         IRelatedItem *This);
  25357 
  25358     /*** IRelatedItem methods ***/
  25359     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
  25360         IRelatedItem *This,
  25361         PIDLIST_ABSOLUTE *ppidl);
  25362 
  25363     HRESULT (STDMETHODCALLTYPE *GetItem)(
  25364         IRelatedItem *This,
  25365         IShellItem **ppsi);
  25366 
  25367     END_INTERFACE
  25368 } IRelatedItemVtbl;
  25369 
  25370 interface IRelatedItem {
  25371     CONST_VTBL IRelatedItemVtbl* lpVtbl;
  25372 };
  25373 
  25374 #ifdef COBJMACROS
  25375 #ifndef WIDL_C_INLINE_WRAPPERS
  25376 /*** IUnknown methods ***/
  25377 #define IRelatedItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  25378 #define IRelatedItem_AddRef(This) (This)->lpVtbl->AddRef(This)
  25379 #define IRelatedItem_Release(This) (This)->lpVtbl->Release(This)
  25380 /*** IRelatedItem methods ***/
  25381 #define IRelatedItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
  25382 #define IRelatedItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
  25383 #else
  25384 /*** IUnknown methods ***/
  25385 static inline HRESULT IRelatedItem_QueryInterface(IRelatedItem* This,REFIID riid,void **ppvObject) {
  25386     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  25387 }
  25388 static inline ULONG IRelatedItem_AddRef(IRelatedItem* This) {
  25389     return This->lpVtbl->AddRef(This);
  25390 }
  25391 static inline ULONG IRelatedItem_Release(IRelatedItem* This) {
  25392     return This->lpVtbl->Release(This);
  25393 }
  25394 /*** IRelatedItem methods ***/
  25395 static inline HRESULT IRelatedItem_GetItemIDList(IRelatedItem* This,PIDLIST_ABSOLUTE *ppidl) {
  25396     return This->lpVtbl->GetItemIDList(This,ppidl);
  25397 }
  25398 static inline HRESULT IRelatedItem_GetItem(IRelatedItem* This,IShellItem **ppsi) {
  25399     return This->lpVtbl->GetItem(This,ppsi);
  25400 }
  25401 #endif
  25402 #endif
  25403 
  25404 #endif
  25405 
  25406 
  25407 #endif  /* __IRelatedItem_INTERFACE_DEFINED__ */
  25408 
  25409 
  25410 /*****************************************************************************
  25411  * IIdentityName interface
  25412  */
  25413 #ifndef __IIdentityName_INTERFACE_DEFINED__
  25414 #define __IIdentityName_INTERFACE_DEFINED__
  25415 
  25416 DEFINE_GUID(IID_IIdentityName, 0x7d903fca, 0xd6f9, 0x4810, 0x83,0x32, 0x94,0x6c,0x01,0x77,0xe2,0x47);
  25417 #if defined(__cplusplus) && !defined(CINTERFACE)
  25418 MIDL_INTERFACE("7d903fca-d6f9-4810-8332-946c0177e247")
  25419 IIdentityName : public IRelatedItem
  25420 {
  25421 };
  25422 #ifdef __CRT_UUID_DECL
  25423 __CRT_UUID_DECL(IIdentityName, 0x7d903fca, 0xd6f9, 0x4810, 0x83,0x32, 0x94,0x6c,0x01,0x77,0xe2,0x47)
  25424 #endif
  25425 #else
  25426 typedef struct IIdentityNameVtbl {
  25427     BEGIN_INTERFACE
  25428 
  25429     /*** IUnknown methods ***/
  25430     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  25431         IIdentityName *This,
  25432         REFIID riid,
  25433         void **ppvObject);
  25434 
  25435     ULONG (STDMETHODCALLTYPE *AddRef)(
  25436         IIdentityName *This);
  25437 
  25438     ULONG (STDMETHODCALLTYPE *Release)(
  25439         IIdentityName *This);
  25440 
  25441     /*** IRelatedItem methods ***/
  25442     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
  25443         IIdentityName *This,
  25444         PIDLIST_ABSOLUTE *ppidl);
  25445 
  25446     HRESULT (STDMETHODCALLTYPE *GetItem)(
  25447         IIdentityName *This,
  25448         IShellItem **ppsi);
  25449 
  25450     END_INTERFACE
  25451 } IIdentityNameVtbl;
  25452 
  25453 interface IIdentityName {
  25454     CONST_VTBL IIdentityNameVtbl* lpVtbl;
  25455 };
  25456 
  25457 #ifdef COBJMACROS
  25458 #ifndef WIDL_C_INLINE_WRAPPERS
  25459 /*** IUnknown methods ***/
  25460 #define IIdentityName_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  25461 #define IIdentityName_AddRef(This) (This)->lpVtbl->AddRef(This)
  25462 #define IIdentityName_Release(This) (This)->lpVtbl->Release(This)
  25463 /*** IRelatedItem methods ***/
  25464 #define IIdentityName_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
  25465 #define IIdentityName_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
  25466 #else
  25467 /*** IUnknown methods ***/
  25468 static inline HRESULT IIdentityName_QueryInterface(IIdentityName* This,REFIID riid,void **ppvObject) {
  25469     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  25470 }
  25471 static inline ULONG IIdentityName_AddRef(IIdentityName* This) {
  25472     return This->lpVtbl->AddRef(This);
  25473 }
  25474 static inline ULONG IIdentityName_Release(IIdentityName* This) {
  25475     return This->lpVtbl->Release(This);
  25476 }
  25477 /*** IRelatedItem methods ***/
  25478 static inline HRESULT IIdentityName_GetItemIDList(IIdentityName* This,PIDLIST_ABSOLUTE *ppidl) {
  25479     return This->lpVtbl->GetItemIDList(This,ppidl);
  25480 }
  25481 static inline HRESULT IIdentityName_GetItem(IIdentityName* This,IShellItem **ppsi) {
  25482     return This->lpVtbl->GetItem(This,ppsi);
  25483 }
  25484 #endif
  25485 #endif
  25486 
  25487 #endif
  25488 
  25489 
  25490 #endif  /* __IIdentityName_INTERFACE_DEFINED__ */
  25491 
  25492 
  25493 /*****************************************************************************
  25494  * IDelegateItem interface
  25495  */
  25496 #ifndef __IDelegateItem_INTERFACE_DEFINED__
  25497 #define __IDelegateItem_INTERFACE_DEFINED__
  25498 
  25499 DEFINE_GUID(IID_IDelegateItem, 0x3c5a1c94, 0xc951, 0x4cb7, 0xbb,0x6d, 0x3b,0x93,0xf3,0x0c,0xce,0x93);
  25500 #if defined(__cplusplus) && !defined(CINTERFACE)
  25501 MIDL_INTERFACE("3c5a1c94-c951-4cb7-bb6d-3b93f30cce93")
  25502 IDelegateItem : public IRelatedItem
  25503 {
  25504 };
  25505 #ifdef __CRT_UUID_DECL
  25506 __CRT_UUID_DECL(IDelegateItem, 0x3c5a1c94, 0xc951, 0x4cb7, 0xbb,0x6d, 0x3b,0x93,0xf3,0x0c,0xce,0x93)
  25507 #endif
  25508 #else
  25509 typedef struct IDelegateItemVtbl {
  25510     BEGIN_INTERFACE
  25511 
  25512     /*** IUnknown methods ***/
  25513     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  25514         IDelegateItem *This,
  25515         REFIID riid,
  25516         void **ppvObject);
  25517 
  25518     ULONG (STDMETHODCALLTYPE *AddRef)(
  25519         IDelegateItem *This);
  25520 
  25521     ULONG (STDMETHODCALLTYPE *Release)(
  25522         IDelegateItem *This);
  25523 
  25524     /*** IRelatedItem methods ***/
  25525     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
  25526         IDelegateItem *This,
  25527         PIDLIST_ABSOLUTE *ppidl);
  25528 
  25529     HRESULT (STDMETHODCALLTYPE *GetItem)(
  25530         IDelegateItem *This,
  25531         IShellItem **ppsi);
  25532 
  25533     END_INTERFACE
  25534 } IDelegateItemVtbl;
  25535 
  25536 interface IDelegateItem {
  25537     CONST_VTBL IDelegateItemVtbl* lpVtbl;
  25538 };
  25539 
  25540 #ifdef COBJMACROS
  25541 #ifndef WIDL_C_INLINE_WRAPPERS
  25542 /*** IUnknown methods ***/
  25543 #define IDelegateItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  25544 #define IDelegateItem_AddRef(This) (This)->lpVtbl->AddRef(This)
  25545 #define IDelegateItem_Release(This) (This)->lpVtbl->Release(This)
  25546 /*** IRelatedItem methods ***/
  25547 #define IDelegateItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
  25548 #define IDelegateItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
  25549 #else
  25550 /*** IUnknown methods ***/
  25551 static inline HRESULT IDelegateItem_QueryInterface(IDelegateItem* This,REFIID riid,void **ppvObject) {
  25552     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  25553 }
  25554 static inline ULONG IDelegateItem_AddRef(IDelegateItem* This) {
  25555     return This->lpVtbl->AddRef(This);
  25556 }
  25557 static inline ULONG IDelegateItem_Release(IDelegateItem* This) {
  25558     return This->lpVtbl->Release(This);
  25559 }
  25560 /*** IRelatedItem methods ***/
  25561 static inline HRESULT IDelegateItem_GetItemIDList(IDelegateItem* This,PIDLIST_ABSOLUTE *ppidl) {
  25562     return This->lpVtbl->GetItemIDList(This,ppidl);
  25563 }
  25564 static inline HRESULT IDelegateItem_GetItem(IDelegateItem* This,IShellItem **ppsi) {
  25565     return This->lpVtbl->GetItem(This,ppsi);
  25566 }
  25567 #endif
  25568 #endif
  25569 
  25570 #endif
  25571 
  25572 
  25573 #endif  /* __IDelegateItem_INTERFACE_DEFINED__ */
  25574 
  25575 
  25576 /*****************************************************************************
  25577  * ICurrentItem interface
  25578  */
  25579 #ifndef __ICurrentItem_INTERFACE_DEFINED__
  25580 #define __ICurrentItem_INTERFACE_DEFINED__
  25581 
  25582 DEFINE_GUID(IID_ICurrentItem, 0x240a7174, 0xd653, 0x4a1d, 0xa6,0xd3, 0xd4,0x94,0x3c,0xfb,0xfe,0x3d);
  25583 #if defined(__cplusplus) && !defined(CINTERFACE)
  25584 MIDL_INTERFACE("240a7174-d653-4a1d-a6d3-d4943cfbfe3d")
  25585 ICurrentItem : public IRelatedItem
  25586 {
  25587 };
  25588 #ifdef __CRT_UUID_DECL
  25589 __CRT_UUID_DECL(ICurrentItem, 0x240a7174, 0xd653, 0x4a1d, 0xa6,0xd3, 0xd4,0x94,0x3c,0xfb,0xfe,0x3d)
  25590 #endif
  25591 #else
  25592 typedef struct ICurrentItemVtbl {
  25593     BEGIN_INTERFACE
  25594 
  25595     /*** IUnknown methods ***/
  25596     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  25597         ICurrentItem *This,
  25598         REFIID riid,
  25599         void **ppvObject);
  25600 
  25601     ULONG (STDMETHODCALLTYPE *AddRef)(
  25602         ICurrentItem *This);
  25603 
  25604     ULONG (STDMETHODCALLTYPE *Release)(
  25605         ICurrentItem *This);
  25606 
  25607     /*** IRelatedItem methods ***/
  25608     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
  25609         ICurrentItem *This,
  25610         PIDLIST_ABSOLUTE *ppidl);
  25611 
  25612     HRESULT (STDMETHODCALLTYPE *GetItem)(
  25613         ICurrentItem *This,
  25614         IShellItem **ppsi);
  25615 
  25616     END_INTERFACE
  25617 } ICurrentItemVtbl;
  25618 
  25619 interface ICurrentItem {
  25620     CONST_VTBL ICurrentItemVtbl* lpVtbl;
  25621 };
  25622 
  25623 #ifdef COBJMACROS
  25624 #ifndef WIDL_C_INLINE_WRAPPERS
  25625 /*** IUnknown methods ***/
  25626 #define ICurrentItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  25627 #define ICurrentItem_AddRef(This) (This)->lpVtbl->AddRef(This)
  25628 #define ICurrentItem_Release(This) (This)->lpVtbl->Release(This)
  25629 /*** IRelatedItem methods ***/
  25630 #define ICurrentItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
  25631 #define ICurrentItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
  25632 #else
  25633 /*** IUnknown methods ***/
  25634 static inline HRESULT ICurrentItem_QueryInterface(ICurrentItem* This,REFIID riid,void **ppvObject) {
  25635     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  25636 }
  25637 static inline ULONG ICurrentItem_AddRef(ICurrentItem* This) {
  25638     return This->lpVtbl->AddRef(This);
  25639 }
  25640 static inline ULONG ICurrentItem_Release(ICurrentItem* This) {
  25641     return This->lpVtbl->Release(This);
  25642 }
  25643 /*** IRelatedItem methods ***/
  25644 static inline HRESULT ICurrentItem_GetItemIDList(ICurrentItem* This,PIDLIST_ABSOLUTE *ppidl) {
  25645     return This->lpVtbl->GetItemIDList(This,ppidl);
  25646 }
  25647 static inline HRESULT ICurrentItem_GetItem(ICurrentItem* This,IShellItem **ppsi) {
  25648     return This->lpVtbl->GetItem(This,ppsi);
  25649 }
  25650 #endif
  25651 #endif
  25652 
  25653 #endif
  25654 
  25655 
  25656 #endif  /* __ICurrentItem_INTERFACE_DEFINED__ */
  25657 
  25658 
  25659 /*****************************************************************************
  25660  * ITransferMediumItem interface
  25661  */
  25662 #ifndef __ITransferMediumItem_INTERFACE_DEFINED__
  25663 #define __ITransferMediumItem_INTERFACE_DEFINED__
  25664 
  25665 DEFINE_GUID(IID_ITransferMediumItem, 0x77f295d5, 0x2d6f, 0x4e19, 0xb8,0xae, 0x32,0x2f,0x3e,0x72,0x1a,0xb5);
  25666 #if defined(__cplusplus) && !defined(CINTERFACE)
  25667 MIDL_INTERFACE("77f295d5-2d6f-4e19-b8ae-322f3e721ab5")
  25668 ITransferMediumItem : public IRelatedItem
  25669 {
  25670 };
  25671 #ifdef __CRT_UUID_DECL
  25672 __CRT_UUID_DECL(ITransferMediumItem, 0x77f295d5, 0x2d6f, 0x4e19, 0xb8,0xae, 0x32,0x2f,0x3e,0x72,0x1a,0xb5)
  25673 #endif
  25674 #else
  25675 typedef struct ITransferMediumItemVtbl {
  25676     BEGIN_INTERFACE
  25677 
  25678     /*** IUnknown methods ***/
  25679     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  25680         ITransferMediumItem *This,
  25681         REFIID riid,
  25682         void **ppvObject);
  25683 
  25684     ULONG (STDMETHODCALLTYPE *AddRef)(
  25685         ITransferMediumItem *This);
  25686 
  25687     ULONG (STDMETHODCALLTYPE *Release)(
  25688         ITransferMediumItem *This);
  25689 
  25690     /*** IRelatedItem methods ***/
  25691     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
  25692         ITransferMediumItem *This,
  25693         PIDLIST_ABSOLUTE *ppidl);
  25694 
  25695     HRESULT (STDMETHODCALLTYPE *GetItem)(
  25696         ITransferMediumItem *This,
  25697         IShellItem **ppsi);
  25698 
  25699     END_INTERFACE
  25700 } ITransferMediumItemVtbl;
  25701 
  25702 interface ITransferMediumItem {
  25703     CONST_VTBL ITransferMediumItemVtbl* lpVtbl;
  25704 };
  25705 
  25706 #ifdef COBJMACROS
  25707 #ifndef WIDL_C_INLINE_WRAPPERS
  25708 /*** IUnknown methods ***/
  25709 #define ITransferMediumItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  25710 #define ITransferMediumItem_AddRef(This) (This)->lpVtbl->AddRef(This)
  25711 #define ITransferMediumItem_Release(This) (This)->lpVtbl->Release(This)
  25712 /*** IRelatedItem methods ***/
  25713 #define ITransferMediumItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
  25714 #define ITransferMediumItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
  25715 #else
  25716 /*** IUnknown methods ***/
  25717 static inline HRESULT ITransferMediumItem_QueryInterface(ITransferMediumItem* This,REFIID riid,void **ppvObject) {
  25718     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  25719 }
  25720 static inline ULONG ITransferMediumItem_AddRef(ITransferMediumItem* This) {
  25721     return This->lpVtbl->AddRef(This);
  25722 }
  25723 static inline ULONG ITransferMediumItem_Release(ITransferMediumItem* This) {
  25724     return This->lpVtbl->Release(This);
  25725 }
  25726 /*** IRelatedItem methods ***/
  25727 static inline HRESULT ITransferMediumItem_GetItemIDList(ITransferMediumItem* This,PIDLIST_ABSOLUTE *ppidl) {
  25728     return This->lpVtbl->GetItemIDList(This,ppidl);
  25729 }
  25730 static inline HRESULT ITransferMediumItem_GetItem(ITransferMediumItem* This,IShellItem **ppsi) {
  25731     return This->lpVtbl->GetItem(This,ppsi);
  25732 }
  25733 #endif
  25734 #endif
  25735 
  25736 #endif
  25737 
  25738 
  25739 #endif  /* __ITransferMediumItem_INTERFACE_DEFINED__ */
  25740 
  25741 
  25742 /*****************************************************************************
  25743  * IUseToBrowseItem interface
  25744  */
  25745 #ifndef __IUseToBrowseItem_INTERFACE_DEFINED__
  25746 #define __IUseToBrowseItem_INTERFACE_DEFINED__
  25747 
  25748 DEFINE_GUID(IID_IUseToBrowseItem, 0x05edda5c, 0x98a3, 0x4717, 0x8a,0xdb, 0xc5,0xe7,0xda,0x99,0x1e,0xb1);
  25749 #if defined(__cplusplus) && !defined(CINTERFACE)
  25750 MIDL_INTERFACE("05edda5c-98a3-4717-8adb-c5e7da991eb1")
  25751 IUseToBrowseItem : public IRelatedItem
  25752 {
  25753 };
  25754 #ifdef __CRT_UUID_DECL
  25755 __CRT_UUID_DECL(IUseToBrowseItem, 0x05edda5c, 0x98a3, 0x4717, 0x8a,0xdb, 0xc5,0xe7,0xda,0x99,0x1e,0xb1)
  25756 #endif
  25757 #else
  25758 typedef struct IUseToBrowseItemVtbl {
  25759     BEGIN_INTERFACE
  25760 
  25761     /*** IUnknown methods ***/
  25762     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  25763         IUseToBrowseItem *This,
  25764         REFIID riid,
  25765         void **ppvObject);
  25766 
  25767     ULONG (STDMETHODCALLTYPE *AddRef)(
  25768         IUseToBrowseItem *This);
  25769 
  25770     ULONG (STDMETHODCALLTYPE *Release)(
  25771         IUseToBrowseItem *This);
  25772 
  25773     /*** IRelatedItem methods ***/
  25774     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
  25775         IUseToBrowseItem *This,
  25776         PIDLIST_ABSOLUTE *ppidl);
  25777 
  25778     HRESULT (STDMETHODCALLTYPE *GetItem)(
  25779         IUseToBrowseItem *This,
  25780         IShellItem **ppsi);
  25781 
  25782     END_INTERFACE
  25783 } IUseToBrowseItemVtbl;
  25784 
  25785 interface IUseToBrowseItem {
  25786     CONST_VTBL IUseToBrowseItemVtbl* lpVtbl;
  25787 };
  25788 
  25789 #ifdef COBJMACROS
  25790 #ifndef WIDL_C_INLINE_WRAPPERS
  25791 /*** IUnknown methods ***/
  25792 #define IUseToBrowseItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  25793 #define IUseToBrowseItem_AddRef(This) (This)->lpVtbl->AddRef(This)
  25794 #define IUseToBrowseItem_Release(This) (This)->lpVtbl->Release(This)
  25795 /*** IRelatedItem methods ***/
  25796 #define IUseToBrowseItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
  25797 #define IUseToBrowseItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
  25798 #else
  25799 /*** IUnknown methods ***/
  25800 static inline HRESULT IUseToBrowseItem_QueryInterface(IUseToBrowseItem* This,REFIID riid,void **ppvObject) {
  25801     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  25802 }
  25803 static inline ULONG IUseToBrowseItem_AddRef(IUseToBrowseItem* This) {
  25804     return This->lpVtbl->AddRef(This);
  25805 }
  25806 static inline ULONG IUseToBrowseItem_Release(IUseToBrowseItem* This) {
  25807     return This->lpVtbl->Release(This);
  25808 }
  25809 /*** IRelatedItem methods ***/
  25810 static inline HRESULT IUseToBrowseItem_GetItemIDList(IUseToBrowseItem* This,PIDLIST_ABSOLUTE *ppidl) {
  25811     return This->lpVtbl->GetItemIDList(This,ppidl);
  25812 }
  25813 static inline HRESULT IUseToBrowseItem_GetItem(IUseToBrowseItem* This,IShellItem **ppsi) {
  25814     return This->lpVtbl->GetItem(This,ppsi);
  25815 }
  25816 #endif
  25817 #endif
  25818 
  25819 #endif
  25820 
  25821 
  25822 #endif  /* __IUseToBrowseItem_INTERFACE_DEFINED__ */
  25823 
  25824 
  25825 /*****************************************************************************
  25826  * IDisplayItem interface
  25827  */
  25828 #ifndef __IDisplayItem_INTERFACE_DEFINED__
  25829 #define __IDisplayItem_INTERFACE_DEFINED__
  25830 
  25831 DEFINE_GUID(IID_IDisplayItem, 0xc6fd5997, 0x9f6b, 0x4888, 0x87,0x03, 0x94,0xe8,0x0e,0x8c,0xde,0x3f);
  25832 #if defined(__cplusplus) && !defined(CINTERFACE)
  25833 MIDL_INTERFACE("c6fd5997-9f6b-4888-8703-94e80e8cde3f")
  25834 IDisplayItem : public IRelatedItem
  25835 {
  25836 };
  25837 #ifdef __CRT_UUID_DECL
  25838 __CRT_UUID_DECL(IDisplayItem, 0xc6fd5997, 0x9f6b, 0x4888, 0x87,0x03, 0x94,0xe8,0x0e,0x8c,0xde,0x3f)
  25839 #endif
  25840 #else
  25841 typedef struct IDisplayItemVtbl {
  25842     BEGIN_INTERFACE
  25843 
  25844     /*** IUnknown methods ***/
  25845     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  25846         IDisplayItem *This,
  25847         REFIID riid,
  25848         void **ppvObject);
  25849 
  25850     ULONG (STDMETHODCALLTYPE *AddRef)(
  25851         IDisplayItem *This);
  25852 
  25853     ULONG (STDMETHODCALLTYPE *Release)(
  25854         IDisplayItem *This);
  25855 
  25856     /*** IRelatedItem methods ***/
  25857     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
  25858         IDisplayItem *This,
  25859         PIDLIST_ABSOLUTE *ppidl);
  25860 
  25861     HRESULT (STDMETHODCALLTYPE *GetItem)(
  25862         IDisplayItem *This,
  25863         IShellItem **ppsi);
  25864 
  25865     END_INTERFACE
  25866 } IDisplayItemVtbl;
  25867 
  25868 interface IDisplayItem {
  25869     CONST_VTBL IDisplayItemVtbl* lpVtbl;
  25870 };
  25871 
  25872 #ifdef COBJMACROS
  25873 #ifndef WIDL_C_INLINE_WRAPPERS
  25874 /*** IUnknown methods ***/
  25875 #define IDisplayItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  25876 #define IDisplayItem_AddRef(This) (This)->lpVtbl->AddRef(This)
  25877 #define IDisplayItem_Release(This) (This)->lpVtbl->Release(This)
  25878 /*** IRelatedItem methods ***/
  25879 #define IDisplayItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
  25880 #define IDisplayItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
  25881 #else
  25882 /*** IUnknown methods ***/
  25883 static inline HRESULT IDisplayItem_QueryInterface(IDisplayItem* This,REFIID riid,void **ppvObject) {
  25884     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  25885 }
  25886 static inline ULONG IDisplayItem_AddRef(IDisplayItem* This) {
  25887     return This->lpVtbl->AddRef(This);
  25888 }
  25889 static inline ULONG IDisplayItem_Release(IDisplayItem* This) {
  25890     return This->lpVtbl->Release(This);
  25891 }
  25892 /*** IRelatedItem methods ***/
  25893 static inline HRESULT IDisplayItem_GetItemIDList(IDisplayItem* This,PIDLIST_ABSOLUTE *ppidl) {
  25894     return This->lpVtbl->GetItemIDList(This,ppidl);
  25895 }
  25896 static inline HRESULT IDisplayItem_GetItem(IDisplayItem* This,IShellItem **ppsi) {
  25897     return This->lpVtbl->GetItem(This,ppsi);
  25898 }
  25899 #endif
  25900 #endif
  25901 
  25902 #endif
  25903 
  25904 
  25905 #endif  /* __IDisplayItem_INTERFACE_DEFINED__ */
  25906 
  25907 
  25908 /*****************************************************************************
  25909  * IViewStateIdentityItem interface
  25910  */
  25911 #ifndef __IViewStateIdentityItem_INTERFACE_DEFINED__
  25912 #define __IViewStateIdentityItem_INTERFACE_DEFINED__
  25913 
  25914 DEFINE_GUID(IID_IViewStateIdentityItem, 0x9d264146, 0xa94f, 0x4195, 0x9f,0x9f, 0x3b,0xb1,0x2c,0xe0,0xc9,0x55);
  25915 #if defined(__cplusplus) && !defined(CINTERFACE)
  25916 MIDL_INTERFACE("9d264146-a94f-4195-9f9f-3bb12ce0c955")
  25917 IViewStateIdentityItem : public IRelatedItem
  25918 {
  25919 };
  25920 #ifdef __CRT_UUID_DECL
  25921 __CRT_UUID_DECL(IViewStateIdentityItem, 0x9d264146, 0xa94f, 0x4195, 0x9f,0x9f, 0x3b,0xb1,0x2c,0xe0,0xc9,0x55)
  25922 #endif
  25923 #else
  25924 typedef struct IViewStateIdentityItemVtbl {
  25925     BEGIN_INTERFACE
  25926 
  25927     /*** IUnknown methods ***/
  25928     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  25929         IViewStateIdentityItem *This,
  25930         REFIID riid,
  25931         void **ppvObject);
  25932 
  25933     ULONG (STDMETHODCALLTYPE *AddRef)(
  25934         IViewStateIdentityItem *This);
  25935 
  25936     ULONG (STDMETHODCALLTYPE *Release)(
  25937         IViewStateIdentityItem *This);
  25938 
  25939     /*** IRelatedItem methods ***/
  25940     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
  25941         IViewStateIdentityItem *This,
  25942         PIDLIST_ABSOLUTE *ppidl);
  25943 
  25944     HRESULT (STDMETHODCALLTYPE *GetItem)(
  25945         IViewStateIdentityItem *This,
  25946         IShellItem **ppsi);
  25947 
  25948     END_INTERFACE
  25949 } IViewStateIdentityItemVtbl;
  25950 
  25951 interface IViewStateIdentityItem {
  25952     CONST_VTBL IViewStateIdentityItemVtbl* lpVtbl;
  25953 };
  25954 
  25955 #ifdef COBJMACROS
  25956 #ifndef WIDL_C_INLINE_WRAPPERS
  25957 /*** IUnknown methods ***/
  25958 #define IViewStateIdentityItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  25959 #define IViewStateIdentityItem_AddRef(This) (This)->lpVtbl->AddRef(This)
  25960 #define IViewStateIdentityItem_Release(This) (This)->lpVtbl->Release(This)
  25961 /*** IRelatedItem methods ***/
  25962 #define IViewStateIdentityItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
  25963 #define IViewStateIdentityItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
  25964 #else
  25965 /*** IUnknown methods ***/
  25966 static inline HRESULT IViewStateIdentityItem_QueryInterface(IViewStateIdentityItem* This,REFIID riid,void **ppvObject) {
  25967     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  25968 }
  25969 static inline ULONG IViewStateIdentityItem_AddRef(IViewStateIdentityItem* This) {
  25970     return This->lpVtbl->AddRef(This);
  25971 }
  25972 static inline ULONG IViewStateIdentityItem_Release(IViewStateIdentityItem* This) {
  25973     return This->lpVtbl->Release(This);
  25974 }
  25975 /*** IRelatedItem methods ***/
  25976 static inline HRESULT IViewStateIdentityItem_GetItemIDList(IViewStateIdentityItem* This,PIDLIST_ABSOLUTE *ppidl) {
  25977     return This->lpVtbl->GetItemIDList(This,ppidl);
  25978 }
  25979 static inline HRESULT IViewStateIdentityItem_GetItem(IViewStateIdentityItem* This,IShellItem **ppsi) {
  25980     return This->lpVtbl->GetItem(This,ppsi);
  25981 }
  25982 #endif
  25983 #endif
  25984 
  25985 #endif
  25986 
  25987 
  25988 #endif  /* __IViewStateIdentityItem_INTERFACE_DEFINED__ */
  25989 
  25990 
  25991 /*****************************************************************************
  25992  * IPreviewItem interface
  25993  */
  25994 #ifndef __IPreviewItem_INTERFACE_DEFINED__
  25995 #define __IPreviewItem_INTERFACE_DEFINED__
  25996 
  25997 DEFINE_GUID(IID_IPreviewItem, 0x36149969, 0x0a8f, 0x49c8, 0x8b,0x00, 0x4a,0xec,0xb2,0x02,0x22,0xfb);
  25998 #if defined(__cplusplus) && !defined(CINTERFACE)
  25999 MIDL_INTERFACE("36149969-0a8f-49c8-8b00-4aecb20222fb")
  26000 IPreviewItem : public IRelatedItem
  26001 {
  26002 };
  26003 #ifdef __CRT_UUID_DECL
  26004 __CRT_UUID_DECL(IPreviewItem, 0x36149969, 0x0a8f, 0x49c8, 0x8b,0x00, 0x4a,0xec,0xb2,0x02,0x22,0xfb)
  26005 #endif
  26006 #else
  26007 typedef struct IPreviewItemVtbl {
  26008     BEGIN_INTERFACE
  26009 
  26010     /*** IUnknown methods ***/
  26011     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  26012         IPreviewItem *This,
  26013         REFIID riid,
  26014         void **ppvObject);
  26015 
  26016     ULONG (STDMETHODCALLTYPE *AddRef)(
  26017         IPreviewItem *This);
  26018 
  26019     ULONG (STDMETHODCALLTYPE *Release)(
  26020         IPreviewItem *This);
  26021 
  26022     /*** IRelatedItem methods ***/
  26023     HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
  26024         IPreviewItem *This,
  26025         PIDLIST_ABSOLUTE *ppidl);
  26026 
  26027     HRESULT (STDMETHODCALLTYPE *GetItem)(
  26028         IPreviewItem *This,
  26029         IShellItem **ppsi);
  26030 
  26031     END_INTERFACE
  26032 } IPreviewItemVtbl;
  26033 
  26034 interface IPreviewItem {
  26035     CONST_VTBL IPreviewItemVtbl* lpVtbl;
  26036 };
  26037 
  26038 #ifdef COBJMACROS
  26039 #ifndef WIDL_C_INLINE_WRAPPERS
  26040 /*** IUnknown methods ***/
  26041 #define IPreviewItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  26042 #define IPreviewItem_AddRef(This) (This)->lpVtbl->AddRef(This)
  26043 #define IPreviewItem_Release(This) (This)->lpVtbl->Release(This)
  26044 /*** IRelatedItem methods ***/
  26045 #define IPreviewItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
  26046 #define IPreviewItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
  26047 #else
  26048 /*** IUnknown methods ***/
  26049 static inline HRESULT IPreviewItem_QueryInterface(IPreviewItem* This,REFIID riid,void **ppvObject) {
  26050     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  26051 }
  26052 static inline ULONG IPreviewItem_AddRef(IPreviewItem* This) {
  26053     return This->lpVtbl->AddRef(This);
  26054 }
  26055 static inline ULONG IPreviewItem_Release(IPreviewItem* This) {
  26056     return This->lpVtbl->Release(This);
  26057 }
  26058 /*** IRelatedItem methods ***/
  26059 static inline HRESULT IPreviewItem_GetItemIDList(IPreviewItem* This,PIDLIST_ABSOLUTE *ppidl) {
  26060     return This->lpVtbl->GetItemIDList(This,ppidl);
  26061 }
  26062 static inline HRESULT IPreviewItem_GetItem(IPreviewItem* This,IShellItem **ppsi) {
  26063     return This->lpVtbl->GetItem(This,ppsi);
  26064 }
  26065 #endif
  26066 #endif
  26067 
  26068 #endif
  26069 
  26070 
  26071 #endif  /* __IPreviewItem_INTERFACE_DEFINED__ */
  26072 
  26073 #endif
  26074 
  26075 /*****************************************************************************
  26076  * IDestinationStreamFactory interface
  26077  */
  26078 #ifndef __IDestinationStreamFactory_INTERFACE_DEFINED__
  26079 #define __IDestinationStreamFactory_INTERFACE_DEFINED__
  26080 
  26081 DEFINE_GUID(IID_IDestinationStreamFactory, 0x8a87781b, 0x39a7, 0x4a1f, 0xaa,0xb3, 0xa3,0x9b,0x9c,0x34,0xa7,0xd9);
  26082 #if defined(__cplusplus) && !defined(CINTERFACE)
  26083 MIDL_INTERFACE("8a87781b-39a7-4a1f-aab3-a39b9c34a7d9")
  26084 IDestinationStreamFactory : public IUnknown
  26085 {
  26086     virtual HRESULT STDMETHODCALLTYPE GetDestinationStream(
  26087         IStream **ppstm) = 0;
  26088 
  26089 };
  26090 #ifdef __CRT_UUID_DECL
  26091 __CRT_UUID_DECL(IDestinationStreamFactory, 0x8a87781b, 0x39a7, 0x4a1f, 0xaa,0xb3, 0xa3,0x9b,0x9c,0x34,0xa7,0xd9)
  26092 #endif
  26093 #else
  26094 typedef struct IDestinationStreamFactoryVtbl {
  26095     BEGIN_INTERFACE
  26096 
  26097     /*** IUnknown methods ***/
  26098     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  26099         IDestinationStreamFactory *This,
  26100         REFIID riid,
  26101         void **ppvObject);
  26102 
  26103     ULONG (STDMETHODCALLTYPE *AddRef)(
  26104         IDestinationStreamFactory *This);
  26105 
  26106     ULONG (STDMETHODCALLTYPE *Release)(
  26107         IDestinationStreamFactory *This);
  26108 
  26109     /*** IDestinationStreamFactory methods ***/
  26110     HRESULT (STDMETHODCALLTYPE *GetDestinationStream)(
  26111         IDestinationStreamFactory *This,
  26112         IStream **ppstm);
  26113 
  26114     END_INTERFACE
  26115 } IDestinationStreamFactoryVtbl;
  26116 
  26117 interface IDestinationStreamFactory {
  26118     CONST_VTBL IDestinationStreamFactoryVtbl* lpVtbl;
  26119 };
  26120 
  26121 #ifdef COBJMACROS
  26122 #ifndef WIDL_C_INLINE_WRAPPERS
  26123 /*** IUnknown methods ***/
  26124 #define IDestinationStreamFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  26125 #define IDestinationStreamFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
  26126 #define IDestinationStreamFactory_Release(This) (This)->lpVtbl->Release(This)
  26127 /*** IDestinationStreamFactory methods ***/
  26128 #define IDestinationStreamFactory_GetDestinationStream(This,ppstm) (This)->lpVtbl->GetDestinationStream(This,ppstm)
  26129 #else
  26130 /*** IUnknown methods ***/
  26131 static inline HRESULT IDestinationStreamFactory_QueryInterface(IDestinationStreamFactory* This,REFIID riid,void **ppvObject) {
  26132     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  26133 }
  26134 static inline ULONG IDestinationStreamFactory_AddRef(IDestinationStreamFactory* This) {
  26135     return This->lpVtbl->AddRef(This);
  26136 }
  26137 static inline ULONG IDestinationStreamFactory_Release(IDestinationStreamFactory* This) {
  26138     return This->lpVtbl->Release(This);
  26139 }
  26140 /*** IDestinationStreamFactory methods ***/
  26141 static inline HRESULT IDestinationStreamFactory_GetDestinationStream(IDestinationStreamFactory* This,IStream **ppstm) {
  26142     return This->lpVtbl->GetDestinationStream(This,ppstm);
  26143 }
  26144 #endif
  26145 #endif
  26146 
  26147 #endif
  26148 
  26149 
  26150 #endif  /* __IDestinationStreamFactory_INTERFACE_DEFINED__ */
  26151 
  26152 
  26153 enum _NMCII_FLAGS {
  26154     NMCII_NONE = 0x0,
  26155     NMCII_ITEMS = 0x1,
  26156     NMCII_FOLDERS = 0x2
  26157 };
  26158 
  26159 typedef int NMCII_FLAGS;
  26160 
  26161 enum _NMCSAEI_FLAGS {
  26162     NMCSAEI_SELECT = 0x0,
  26163     NMCSAEI_EDIT = 0x1
  26164 };
  26165 
  26166 typedef int NMCSAEI_FLAGS;
  26167 
  26168 /*****************************************************************************
  26169  * INewMenuClient interface
  26170  */
  26171 #ifndef __INewMenuClient_INTERFACE_DEFINED__
  26172 #define __INewMenuClient_INTERFACE_DEFINED__
  26173 
  26174 DEFINE_GUID(IID_INewMenuClient, 0xdcb07fdc, 0x3bb5, 0x451c, 0x90,0xbe, 0x96,0x66,0x44,0xfe,0xd7,0xb0);
  26175 #if defined(__cplusplus) && !defined(CINTERFACE)
  26176 MIDL_INTERFACE("dcb07fdc-3bb5-451c-90be-966644fed7b0")
  26177 INewMenuClient : public IUnknown
  26178 {
  26179     virtual HRESULT STDMETHODCALLTYPE IncludeItems(
  26180         NMCII_FLAGS *pflags) = 0;
  26181 
  26182     virtual HRESULT STDMETHODCALLTYPE SelectAndEditItem(
  26183         PCIDLIST_ABSOLUTE pidlItem,
  26184         NMCSAEI_FLAGS flags) = 0;
  26185 
  26186 };
  26187 #ifdef __CRT_UUID_DECL
  26188 __CRT_UUID_DECL(INewMenuClient, 0xdcb07fdc, 0x3bb5, 0x451c, 0x90,0xbe, 0x96,0x66,0x44,0xfe,0xd7,0xb0)
  26189 #endif
  26190 #else
  26191 typedef struct INewMenuClientVtbl {
  26192     BEGIN_INTERFACE
  26193 
  26194     /*** IUnknown methods ***/
  26195     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  26196         INewMenuClient *This,
  26197         REFIID riid,
  26198         void **ppvObject);
  26199 
  26200     ULONG (STDMETHODCALLTYPE *AddRef)(
  26201         INewMenuClient *This);
  26202 
  26203     ULONG (STDMETHODCALLTYPE *Release)(
  26204         INewMenuClient *This);
  26205 
  26206     /*** INewMenuClient methods ***/
  26207     HRESULT (STDMETHODCALLTYPE *IncludeItems)(
  26208         INewMenuClient *This,
  26209         NMCII_FLAGS *pflags);
  26210 
  26211     HRESULT (STDMETHODCALLTYPE *SelectAndEditItem)(
  26212         INewMenuClient *This,
  26213         PCIDLIST_ABSOLUTE pidlItem,
  26214         NMCSAEI_FLAGS flags);
  26215 
  26216     END_INTERFACE
  26217 } INewMenuClientVtbl;
  26218 
  26219 interface INewMenuClient {
  26220     CONST_VTBL INewMenuClientVtbl* lpVtbl;
  26221 };
  26222 
  26223 #ifdef COBJMACROS
  26224 #ifndef WIDL_C_INLINE_WRAPPERS
  26225 /*** IUnknown methods ***/
  26226 #define INewMenuClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  26227 #define INewMenuClient_AddRef(This) (This)->lpVtbl->AddRef(This)
  26228 #define INewMenuClient_Release(This) (This)->lpVtbl->Release(This)
  26229 /*** INewMenuClient methods ***/
  26230 #define INewMenuClient_IncludeItems(This,pflags) (This)->lpVtbl->IncludeItems(This,pflags)
  26231 #define INewMenuClient_SelectAndEditItem(This,pidlItem,flags) (This)->lpVtbl->SelectAndEditItem(This,pidlItem,flags)
  26232 #else
  26233 /*** IUnknown methods ***/
  26234 static inline HRESULT INewMenuClient_QueryInterface(INewMenuClient* This,REFIID riid,void **ppvObject) {
  26235     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  26236 }
  26237 static inline ULONG INewMenuClient_AddRef(INewMenuClient* This) {
  26238     return This->lpVtbl->AddRef(This);
  26239 }
  26240 static inline ULONG INewMenuClient_Release(INewMenuClient* This) {
  26241     return This->lpVtbl->Release(This);
  26242 }
  26243 /*** INewMenuClient methods ***/
  26244 static inline HRESULT INewMenuClient_IncludeItems(INewMenuClient* This,NMCII_FLAGS *pflags) {
  26245     return This->lpVtbl->IncludeItems(This,pflags);
  26246 }
  26247 static inline HRESULT INewMenuClient_SelectAndEditItem(INewMenuClient* This,PCIDLIST_ABSOLUTE pidlItem,NMCSAEI_FLAGS flags) {
  26248     return This->lpVtbl->SelectAndEditItem(This,pidlItem,flags);
  26249 }
  26250 #endif
  26251 #endif
  26252 
  26253 #endif
  26254 
  26255 
  26256 #endif  /* __INewMenuClient_INTERFACE_DEFINED__ */
  26257 
  26258 
  26259 #define SID_SNewMenuClient   IID_INewMenuClient
  26260 
  26261 DEFINE_GUID(SID_SCommandBarState, 0xB99EAA5C, 0x3850, 0x4400, 0xBC, 0x33, 0x2C, 0xE5, 0x34, 0x04, 0x8B, 0xF8);
  26262 
  26263 #if _WIN32_IE >= _WIN32_IE_IE70
  26264 /*****************************************************************************
  26265  * IInitializeWithBindCtx interface
  26266  */
  26267 #ifndef __IInitializeWithBindCtx_INTERFACE_DEFINED__
  26268 #define __IInitializeWithBindCtx_INTERFACE_DEFINED__
  26269 
  26270 DEFINE_GUID(IID_IInitializeWithBindCtx, 0x71c0d2bc, 0x726d, 0x45cc, 0xa6,0xc0, 0x2e,0x31,0xc1,0xdb,0x21,0x59);
  26271 #if defined(__cplusplus) && !defined(CINTERFACE)
  26272 MIDL_INTERFACE("71c0d2bc-726d-45cc-a6c0-2e31c1db2159")
  26273 IInitializeWithBindCtx : public IUnknown
  26274 {
  26275     virtual HRESULT STDMETHODCALLTYPE Initialize(
  26276         IBindCtx *pbc) = 0;
  26277 
  26278 };
  26279 #ifdef __CRT_UUID_DECL
  26280 __CRT_UUID_DECL(IInitializeWithBindCtx, 0x71c0d2bc, 0x726d, 0x45cc, 0xa6,0xc0, 0x2e,0x31,0xc1,0xdb,0x21,0x59)
  26281 #endif
  26282 #else
  26283 typedef struct IInitializeWithBindCtxVtbl {
  26284     BEGIN_INTERFACE
  26285 
  26286     /*** IUnknown methods ***/
  26287     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  26288         IInitializeWithBindCtx *This,
  26289         REFIID riid,
  26290         void **ppvObject);
  26291 
  26292     ULONG (STDMETHODCALLTYPE *AddRef)(
  26293         IInitializeWithBindCtx *This);
  26294 
  26295     ULONG (STDMETHODCALLTYPE *Release)(
  26296         IInitializeWithBindCtx *This);
  26297 
  26298     /*** IInitializeWithBindCtx methods ***/
  26299     HRESULT (STDMETHODCALLTYPE *Initialize)(
  26300         IInitializeWithBindCtx *This,
  26301         IBindCtx *pbc);
  26302 
  26303     END_INTERFACE
  26304 } IInitializeWithBindCtxVtbl;
  26305 
  26306 interface IInitializeWithBindCtx {
  26307     CONST_VTBL IInitializeWithBindCtxVtbl* lpVtbl;
  26308 };
  26309 
  26310 #ifdef COBJMACROS
  26311 #ifndef WIDL_C_INLINE_WRAPPERS
  26312 /*** IUnknown methods ***/
  26313 #define IInitializeWithBindCtx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  26314 #define IInitializeWithBindCtx_AddRef(This) (This)->lpVtbl->AddRef(This)
  26315 #define IInitializeWithBindCtx_Release(This) (This)->lpVtbl->Release(This)
  26316 /*** IInitializeWithBindCtx methods ***/
  26317 #define IInitializeWithBindCtx_Initialize(This,pbc) (This)->lpVtbl->Initialize(This,pbc)
  26318 #else
  26319 /*** IUnknown methods ***/
  26320 static inline HRESULT IInitializeWithBindCtx_QueryInterface(IInitializeWithBindCtx* This,REFIID riid,void **ppvObject) {
  26321     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  26322 }
  26323 static inline ULONG IInitializeWithBindCtx_AddRef(IInitializeWithBindCtx* This) {
  26324     return This->lpVtbl->AddRef(This);
  26325 }
  26326 static inline ULONG IInitializeWithBindCtx_Release(IInitializeWithBindCtx* This) {
  26327     return This->lpVtbl->Release(This);
  26328 }
  26329 /*** IInitializeWithBindCtx methods ***/
  26330 static inline HRESULT IInitializeWithBindCtx_Initialize(IInitializeWithBindCtx* This,IBindCtx *pbc) {
  26331     return This->lpVtbl->Initialize(This,pbc);
  26332 }
  26333 #endif
  26334 #endif
  26335 
  26336 #endif
  26337 
  26338 
  26339 #endif  /* __IInitializeWithBindCtx_INTERFACE_DEFINED__ */
  26340 
  26341 
  26342 /*****************************************************************************
  26343  * IShellItemFilter interface
  26344  */
  26345 #ifndef __IShellItemFilter_INTERFACE_DEFINED__
  26346 #define __IShellItemFilter_INTERFACE_DEFINED__
  26347 
  26348 DEFINE_GUID(IID_IShellItemFilter, 0x2659b475, 0xeeb8, 0x48b7, 0x8f,0x07, 0xb3,0x78,0x81,0x0f,0x48,0xcf);
  26349 #if defined(__cplusplus) && !defined(CINTERFACE)
  26350 MIDL_INTERFACE("2659b475-eeb8-48b7-8f07-b378810f48cf")
  26351 IShellItemFilter : public IUnknown
  26352 {
  26353     virtual HRESULT STDMETHODCALLTYPE IncludeItem(
  26354         IShellItem *psi) = 0;
  26355 
  26356     virtual HRESULT STDMETHODCALLTYPE GetEnumFlagsForItem(
  26357         IShellItem *psi,
  26358         SHCONTF *pgrfFlags) = 0;
  26359 
  26360 };
  26361 #ifdef __CRT_UUID_DECL
  26362 __CRT_UUID_DECL(IShellItemFilter, 0x2659b475, 0xeeb8, 0x48b7, 0x8f,0x07, 0xb3,0x78,0x81,0x0f,0x48,0xcf)
  26363 #endif
  26364 #else
  26365 typedef struct IShellItemFilterVtbl {
  26366     BEGIN_INTERFACE
  26367 
  26368     /*** IUnknown methods ***/
  26369     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  26370         IShellItemFilter *This,
  26371         REFIID riid,
  26372         void **ppvObject);
  26373 
  26374     ULONG (STDMETHODCALLTYPE *AddRef)(
  26375         IShellItemFilter *This);
  26376 
  26377     ULONG (STDMETHODCALLTYPE *Release)(
  26378         IShellItemFilter *This);
  26379 
  26380     /*** IShellItemFilter methods ***/
  26381     HRESULT (STDMETHODCALLTYPE *IncludeItem)(
  26382         IShellItemFilter *This,
  26383         IShellItem *psi);
  26384 
  26385     HRESULT (STDMETHODCALLTYPE *GetEnumFlagsForItem)(
  26386         IShellItemFilter *This,
  26387         IShellItem *psi,
  26388         SHCONTF *pgrfFlags);
  26389 
  26390     END_INTERFACE
  26391 } IShellItemFilterVtbl;
  26392 
  26393 interface IShellItemFilter {
  26394     CONST_VTBL IShellItemFilterVtbl* lpVtbl;
  26395 };
  26396 
  26397 #ifdef COBJMACROS
  26398 #ifndef WIDL_C_INLINE_WRAPPERS
  26399 /*** IUnknown methods ***/
  26400 #define IShellItemFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  26401 #define IShellItemFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
  26402 #define IShellItemFilter_Release(This) (This)->lpVtbl->Release(This)
  26403 /*** IShellItemFilter methods ***/
  26404 #define IShellItemFilter_IncludeItem(This,psi) (This)->lpVtbl->IncludeItem(This,psi)
  26405 #define IShellItemFilter_GetEnumFlagsForItem(This,psi,pgrfFlags) (This)->lpVtbl->GetEnumFlagsForItem(This,psi,pgrfFlags)
  26406 #else
  26407 /*** IUnknown methods ***/
  26408 static inline HRESULT IShellItemFilter_QueryInterface(IShellItemFilter* This,REFIID riid,void **ppvObject) {
  26409     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  26410 }
  26411 static inline ULONG IShellItemFilter_AddRef(IShellItemFilter* This) {
  26412     return This->lpVtbl->AddRef(This);
  26413 }
  26414 static inline ULONG IShellItemFilter_Release(IShellItemFilter* This) {
  26415     return This->lpVtbl->Release(This);
  26416 }
  26417 /*** IShellItemFilter methods ***/
  26418 static inline HRESULT IShellItemFilter_IncludeItem(IShellItemFilter* This,IShellItem *psi) {
  26419     return This->lpVtbl->IncludeItem(This,psi);
  26420 }
  26421 static inline HRESULT IShellItemFilter_GetEnumFlagsForItem(IShellItemFilter* This,IShellItem *psi,SHCONTF *pgrfFlags) {
  26422     return This->lpVtbl->GetEnumFlagsForItem(This,psi,pgrfFlags);
  26423 }
  26424 #endif
  26425 #endif
  26426 
  26427 #endif
  26428 
  26429 
  26430 #endif  /* __IShellItemFilter_INTERFACE_DEFINED__ */
  26431 
  26432 #endif
  26433 
  26434 /*****************************************************************************
  26435  * INameSpaceTreeControl interface
  26436  */
  26437 #ifndef __INameSpaceTreeControl_INTERFACE_DEFINED__
  26438 #define __INameSpaceTreeControl_INTERFACE_DEFINED__
  26439 
  26440 enum _NSTCSTYLE {
  26441     NSTCS_HASEXPANDOS = 0x1,
  26442     NSTCS_HASLINES = 0x2,
  26443     NSTCS_SINGLECLICKEXPAND = 0x4,
  26444     NSTCS_FULLROWSELECT = 0x8,
  26445     NSTCS_SPRINGEXPAND = 0x10,
  26446     NSTCS_HORIZONTALSCROLL = 0x20,
  26447     NSTCS_ROOTHASEXPANDO = 0x40,
  26448     NSTCS_SHOWSELECTIONALWAYS = 0x80,
  26449     NSTCS_NOINFOTIP = 0x200,
  26450     NSTCS_EVENHEIGHT = 0x400,
  26451     NSTCS_NOREPLACEOPEN = 0x800,
  26452     NSTCS_DISABLEDRAGDROP = 0x1000,
  26453     NSTCS_NOORDERSTREAM = 0x2000,
  26454     NSTCS_RICHTOOLTIP = 0x4000,
  26455     NSTCS_BORDER = 0x8000,
  26456     NSTCS_NOEDITLABELS = 0x10000,
  26457     NSTCS_TABSTOP = 0x20000,
  26458     NSTCS_FAVORITESMODE = 0x80000,
  26459     NSTCS_AUTOHSCROLL = 0x100000,
  26460     NSTCS_FADEINOUTEXPANDOS = 0x200000,
  26461     NSTCS_EMPTYTEXT = 0x400000,
  26462     NSTCS_CHECKBOXES = 0x800000,
  26463     NSTCS_PARTIALCHECKBOXES = 0x1000000,
  26464     NSTCS_EXCLUSIONCHECKBOXES = 0x2000000,
  26465     NSTCS_DIMMEDCHECKBOXES = 0x4000000,
  26466     NSTCS_NOINDENTCHECKS = 0x8000000,
  26467     NSTCS_ALLOWJUNCTIONS = 0x10000000,
  26468     NSTCS_SHOWTABSBUTTON = 0x20000000,
  26469     NSTCS_SHOWDELETEBUTTON = 0x40000000,
  26470     NSTCS_SHOWREFRESHBUTTON = (int)0x80000000
  26471 };
  26472 
  26473 typedef DWORD NSTCSTYLE;
  26474 
  26475 enum _NSTCROOTSTYLE {
  26476     NSTCRS_VISIBLE = 0x0,
  26477     NSTCRS_HIDDEN = 0x1,
  26478     NSTCRS_EXPANDED = 0x2
  26479 };
  26480 
  26481 typedef DWORD NSTCROOTSTYLE;
  26482 
  26483 enum _NSTCITEMSTATE {
  26484     NSTCIS_NONE = 0x0,
  26485     NSTCIS_SELECTED = 0x1,
  26486     NSTCIS_EXPANDED = 0x2,
  26487     NSTCIS_BOLD = 0x4,
  26488     NSTCIS_DISABLED = 0x8,
  26489     NSTCIS_SELECTEDNOEXPAND = 0x10
  26490 };
  26491 
  26492 typedef DWORD NSTCITEMSTATE;
  26493 
  26494 typedef enum NSTCGNI {
  26495     NSTCGNI_NEXT = 0,
  26496     NSTCGNI_NEXTVISIBLE = 1,
  26497     NSTCGNI_PREV = 2,
  26498     NSTCGNI_PREVVISIBLE = 3,
  26499     NSTCGNI_PARENT = 4,
  26500     NSTCGNI_CHILD = 5,
  26501     NSTCGNI_FIRSTVISIBLE = 6,
  26502     NSTCGNI_LASTVISIBLE = 7
  26503 } NSTCGNI;
  26504 
  26505 DEFINE_GUID(IID_INameSpaceTreeControl, 0x028212a3, 0xb627, 0x47e9, 0x88,0x56, 0xc1,0x42,0x65,0x55,0x4e,0x4f);
  26506 #if defined(__cplusplus) && !defined(CINTERFACE)
  26507 MIDL_INTERFACE("028212a3-b627-47e9-8856-c14265554e4f")
  26508 INameSpaceTreeControl : public IUnknown
  26509 {
  26510     virtual HRESULT STDMETHODCALLTYPE Initialize(
  26511         HWND hwndParent,
  26512         RECT *prc,
  26513         NSTCSTYLE nsctsFlags) = 0;
  26514 
  26515     virtual HRESULT STDMETHODCALLTYPE TreeAdvise(
  26516         IUnknown *punk,
  26517         DWORD *pdwCookie) = 0;
  26518 
  26519     virtual HRESULT STDMETHODCALLTYPE TreeUnadvise(
  26520         DWORD dwCookie) = 0;
  26521 
  26522     virtual HRESULT STDMETHODCALLTYPE AppendRoot(
  26523         IShellItem *psiRoot,
  26524         SHCONTF grfEnumFlags,
  26525         NSTCROOTSTYLE grfRootStyle,
  26526         IShellItemFilter *pif) = 0;
  26527 
  26528     virtual HRESULT STDMETHODCALLTYPE InsertRoot(
  26529         int iIndex,
  26530         IShellItem *psiRoot,
  26531         SHCONTF grfEnumFlags,
  26532         NSTCROOTSTYLE grfRootStyle,
  26533         IShellItemFilter *pif) = 0;
  26534 
  26535     virtual HRESULT STDMETHODCALLTYPE RemoveRoot(
  26536         IShellItem *psiRoot) = 0;
  26537 
  26538     virtual HRESULT STDMETHODCALLTYPE RemoveAllRoots(
  26539         ) = 0;
  26540 
  26541     virtual HRESULT STDMETHODCALLTYPE GetRootItems(
  26542         IShellItemArray **ppsiaRootItems) = 0;
  26543 
  26544     virtual HRESULT STDMETHODCALLTYPE SetItemState(
  26545         IShellItem *psi,
  26546         NSTCITEMSTATE nstcisMask,
  26547         NSTCITEMSTATE nstcisFlags) = 0;
  26548 
  26549     virtual HRESULT STDMETHODCALLTYPE GetItemState(
  26550         IShellItem *psi,
  26551         NSTCITEMSTATE nstcisMask,
  26552         NSTCITEMSTATE *pnstcisFlags) = 0;
  26553 
  26554     virtual HRESULT STDMETHODCALLTYPE GetSelectedItems(
  26555         IShellItemArray **psiaItems) = 0;
  26556 
  26557     virtual HRESULT STDMETHODCALLTYPE GetItemCustomState(
  26558         IShellItem *psi,
  26559         int *piStateNumber) = 0;
  26560 
  26561     virtual HRESULT STDMETHODCALLTYPE SetItemCustomState(
  26562         IShellItem *psi,
  26563         int iStateNumber) = 0;
  26564 
  26565     virtual HRESULT STDMETHODCALLTYPE EnsureItemVisible(
  26566         IShellItem *psi) = 0;
  26567 
  26568     virtual HRESULT STDMETHODCALLTYPE SetTheme(
  26569         LPCWSTR pszTheme) = 0;
  26570 
  26571     virtual HRESULT STDMETHODCALLTYPE GetNextItem(
  26572         IShellItem *psi,
  26573         NSTCGNI nstcgi,
  26574         IShellItem **ppsiNext) = 0;
  26575 
  26576     virtual HRESULT STDMETHODCALLTYPE HitTest(
  26577         POINT *ppt,
  26578         IShellItem **ppsiOut) = 0;
  26579 
  26580     virtual HRESULT STDMETHODCALLTYPE GetItemRect(
  26581         IShellItem *psi,
  26582         RECT *prect) = 0;
  26583 
  26584     virtual HRESULT STDMETHODCALLTYPE CollapseAll(
  26585         ) = 0;
  26586 
  26587 };
  26588 #ifdef __CRT_UUID_DECL
  26589 __CRT_UUID_DECL(INameSpaceTreeControl, 0x028212a3, 0xb627, 0x47e9, 0x88,0x56, 0xc1,0x42,0x65,0x55,0x4e,0x4f)
  26590 #endif
  26591 #else
  26592 typedef struct INameSpaceTreeControlVtbl {
  26593     BEGIN_INTERFACE
  26594 
  26595     /*** IUnknown methods ***/
  26596     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  26597         INameSpaceTreeControl *This,
  26598         REFIID riid,
  26599         void **ppvObject);
  26600 
  26601     ULONG (STDMETHODCALLTYPE *AddRef)(
  26602         INameSpaceTreeControl *This);
  26603 
  26604     ULONG (STDMETHODCALLTYPE *Release)(
  26605         INameSpaceTreeControl *This);
  26606 
  26607     /*** INameSpaceTreeControl methods ***/
  26608     HRESULT (STDMETHODCALLTYPE *Initialize)(
  26609         INameSpaceTreeControl *This,
  26610         HWND hwndParent,
  26611         RECT *prc,
  26612         NSTCSTYLE nsctsFlags);
  26613 
  26614     HRESULT (STDMETHODCALLTYPE *TreeAdvise)(
  26615         INameSpaceTreeControl *This,
  26616         IUnknown *punk,
  26617         DWORD *pdwCookie);
  26618 
  26619     HRESULT (STDMETHODCALLTYPE *TreeUnadvise)(
  26620         INameSpaceTreeControl *This,
  26621         DWORD dwCookie);
  26622 
  26623     HRESULT (STDMETHODCALLTYPE *AppendRoot)(
  26624         INameSpaceTreeControl *This,
  26625         IShellItem *psiRoot,
  26626         SHCONTF grfEnumFlags,
  26627         NSTCROOTSTYLE grfRootStyle,
  26628         IShellItemFilter *pif);
  26629 
  26630     HRESULT (STDMETHODCALLTYPE *InsertRoot)(
  26631         INameSpaceTreeControl *This,
  26632         int iIndex,
  26633         IShellItem *psiRoot,
  26634         SHCONTF grfEnumFlags,
  26635         NSTCROOTSTYLE grfRootStyle,
  26636         IShellItemFilter *pif);
  26637 
  26638     HRESULT (STDMETHODCALLTYPE *RemoveRoot)(
  26639         INameSpaceTreeControl *This,
  26640         IShellItem *psiRoot);
  26641 
  26642     HRESULT (STDMETHODCALLTYPE *RemoveAllRoots)(
  26643         INameSpaceTreeControl *This);
  26644 
  26645     HRESULT (STDMETHODCALLTYPE *GetRootItems)(
  26646         INameSpaceTreeControl *This,
  26647         IShellItemArray **ppsiaRootItems);
  26648 
  26649     HRESULT (STDMETHODCALLTYPE *SetItemState)(
  26650         INameSpaceTreeControl *This,
  26651         IShellItem *psi,
  26652         NSTCITEMSTATE nstcisMask,
  26653         NSTCITEMSTATE nstcisFlags);
  26654 
  26655     HRESULT (STDMETHODCALLTYPE *GetItemState)(
  26656         INameSpaceTreeControl *This,
  26657         IShellItem *psi,
  26658         NSTCITEMSTATE nstcisMask,
  26659         NSTCITEMSTATE *pnstcisFlags);
  26660 
  26661     HRESULT (STDMETHODCALLTYPE *GetSelectedItems)(
  26662         INameSpaceTreeControl *This,
  26663         IShellItemArray **psiaItems);
  26664 
  26665     HRESULT (STDMETHODCALLTYPE *GetItemCustomState)(
  26666         INameSpaceTreeControl *This,
  26667         IShellItem *psi,
  26668         int *piStateNumber);
  26669 
  26670     HRESULT (STDMETHODCALLTYPE *SetItemCustomState)(
  26671         INameSpaceTreeControl *This,
  26672         IShellItem *psi,
  26673         int iStateNumber);
  26674 
  26675     HRESULT (STDMETHODCALLTYPE *EnsureItemVisible)(
  26676         INameSpaceTreeControl *This,
  26677         IShellItem *psi);
  26678 
  26679     HRESULT (STDMETHODCALLTYPE *SetTheme)(
  26680         INameSpaceTreeControl *This,
  26681         LPCWSTR pszTheme);
  26682 
  26683     HRESULT (STDMETHODCALLTYPE *GetNextItem)(
  26684         INameSpaceTreeControl *This,
  26685         IShellItem *psi,
  26686         NSTCGNI nstcgi,
  26687         IShellItem **ppsiNext);
  26688 
  26689     HRESULT (STDMETHODCALLTYPE *HitTest)(
  26690         INameSpaceTreeControl *This,
  26691         POINT *ppt,
  26692         IShellItem **ppsiOut);
  26693 
  26694     HRESULT (STDMETHODCALLTYPE *GetItemRect)(
  26695         INameSpaceTreeControl *This,
  26696         IShellItem *psi,
  26697         RECT *prect);
  26698 
  26699     HRESULT (STDMETHODCALLTYPE *CollapseAll)(
  26700         INameSpaceTreeControl *This);
  26701 
  26702     END_INTERFACE
  26703 } INameSpaceTreeControlVtbl;
  26704 
  26705 interface INameSpaceTreeControl {
  26706     CONST_VTBL INameSpaceTreeControlVtbl* lpVtbl;
  26707 };
  26708 
  26709 #ifdef COBJMACROS
  26710 #ifndef WIDL_C_INLINE_WRAPPERS
  26711 /*** IUnknown methods ***/
  26712 #define INameSpaceTreeControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  26713 #define INameSpaceTreeControl_AddRef(This) (This)->lpVtbl->AddRef(This)
  26714 #define INameSpaceTreeControl_Release(This) (This)->lpVtbl->Release(This)
  26715 /*** INameSpaceTreeControl methods ***/
  26716 #define INameSpaceTreeControl_Initialize(This,hwndParent,prc,nsctsFlags) (This)->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags)
  26717 #define INameSpaceTreeControl_TreeAdvise(This,punk,pdwCookie) (This)->lpVtbl->TreeAdvise(This,punk,pdwCookie)
  26718 #define INameSpaceTreeControl_TreeUnadvise(This,dwCookie) (This)->lpVtbl->TreeUnadvise(This,dwCookie)
  26719 #define INameSpaceTreeControl_AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif)
  26720 #define INameSpaceTreeControl_InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif)
  26721 #define INameSpaceTreeControl_RemoveRoot(This,psiRoot) (This)->lpVtbl->RemoveRoot(This,psiRoot)
  26722 #define INameSpaceTreeControl_RemoveAllRoots(This) (This)->lpVtbl->RemoveAllRoots(This)
  26723 #define INameSpaceTreeControl_GetRootItems(This,ppsiaRootItems) (This)->lpVtbl->GetRootItems(This,ppsiaRootItems)
  26724 #define INameSpaceTreeControl_SetItemState(This,psi,nstcisMask,nstcisFlags) (This)->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags)
  26725 #define INameSpaceTreeControl_GetItemState(This,psi,nstcisMask,pnstcisFlags) (This)->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags)
  26726 #define INameSpaceTreeControl_GetSelectedItems(This,psiaItems) (This)->lpVtbl->GetSelectedItems(This,psiaItems)
  26727 #define INameSpaceTreeControl_GetItemCustomState(This,psi,piStateNumber) (This)->lpVtbl->GetItemCustomState(This,psi,piStateNumber)
  26728 #define INameSpaceTreeControl_SetItemCustomState(This,psi,iStateNumber) (This)->lpVtbl->SetItemCustomState(This,psi,iStateNumber)
  26729 #define INameSpaceTreeControl_EnsureItemVisible(This,psi) (This)->lpVtbl->EnsureItemVisible(This,psi)
  26730 #define INameSpaceTreeControl_SetTheme(This,pszTheme) (This)->lpVtbl->SetTheme(This,pszTheme)
  26731 #define INameSpaceTreeControl_GetNextItem(This,psi,nstcgi,ppsiNext) (This)->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext)
  26732 #define INameSpaceTreeControl_HitTest(This,ppt,ppsiOut) (This)->lpVtbl->HitTest(This,ppt,ppsiOut)
  26733 #define INameSpaceTreeControl_GetItemRect(This,psi,prect) (This)->lpVtbl->GetItemRect(This,psi,prect)
  26734 #define INameSpaceTreeControl_CollapseAll(This) (This)->lpVtbl->CollapseAll(This)
  26735 #else
  26736 /*** IUnknown methods ***/
  26737 static inline HRESULT INameSpaceTreeControl_QueryInterface(INameSpaceTreeControl* This,REFIID riid,void **ppvObject) {
  26738     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  26739 }
  26740 static inline ULONG INameSpaceTreeControl_AddRef(INameSpaceTreeControl* This) {
  26741     return This->lpVtbl->AddRef(This);
  26742 }
  26743 static inline ULONG INameSpaceTreeControl_Release(INameSpaceTreeControl* This) {
  26744     return This->lpVtbl->Release(This);
  26745 }
  26746 /*** INameSpaceTreeControl methods ***/
  26747 static inline HRESULT INameSpaceTreeControl_Initialize(INameSpaceTreeControl* This,HWND hwndParent,RECT *prc,NSTCSTYLE nsctsFlags) {
  26748     return This->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags);
  26749 }
  26750 static inline HRESULT INameSpaceTreeControl_TreeAdvise(INameSpaceTreeControl* This,IUnknown *punk,DWORD *pdwCookie) {
  26751     return This->lpVtbl->TreeAdvise(This,punk,pdwCookie);
  26752 }
  26753 static inline HRESULT INameSpaceTreeControl_TreeUnadvise(INameSpaceTreeControl* This,DWORD dwCookie) {
  26754     return This->lpVtbl->TreeUnadvise(This,dwCookie);
  26755 }
  26756 static inline HRESULT INameSpaceTreeControl_AppendRoot(INameSpaceTreeControl* This,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
  26757     return This->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif);
  26758 }
  26759 static inline HRESULT INameSpaceTreeControl_InsertRoot(INameSpaceTreeControl* This,int iIndex,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
  26760     return This->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif);
  26761 }
  26762 static inline HRESULT INameSpaceTreeControl_RemoveRoot(INameSpaceTreeControl* This,IShellItem *psiRoot) {
  26763     return This->lpVtbl->RemoveRoot(This,psiRoot);
  26764 }
  26765 static inline HRESULT INameSpaceTreeControl_RemoveAllRoots(INameSpaceTreeControl* This) {
  26766     return This->lpVtbl->RemoveAllRoots(This);
  26767 }
  26768 static inline HRESULT INameSpaceTreeControl_GetRootItems(INameSpaceTreeControl* This,IShellItemArray **ppsiaRootItems) {
  26769     return This->lpVtbl->GetRootItems(This,ppsiaRootItems);
  26770 }
  26771 static inline HRESULT INameSpaceTreeControl_SetItemState(INameSpaceTreeControl* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisFlags) {
  26772     return This->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags);
  26773 }
  26774 static inline HRESULT INameSpaceTreeControl_GetItemState(INameSpaceTreeControl* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE *pnstcisFlags) {
  26775     return This->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags);
  26776 }
  26777 static inline HRESULT INameSpaceTreeControl_GetSelectedItems(INameSpaceTreeControl* This,IShellItemArray **psiaItems) {
  26778     return This->lpVtbl->GetSelectedItems(This,psiaItems);
  26779 }
  26780 static inline HRESULT INameSpaceTreeControl_GetItemCustomState(INameSpaceTreeControl* This,IShellItem *psi,int *piStateNumber) {
  26781     return This->lpVtbl->GetItemCustomState(This,psi,piStateNumber);
  26782 }
  26783 static inline HRESULT INameSpaceTreeControl_SetItemCustomState(INameSpaceTreeControl* This,IShellItem *psi,int iStateNumber) {
  26784     return This->lpVtbl->SetItemCustomState(This,psi,iStateNumber);
  26785 }
  26786 static inline HRESULT INameSpaceTreeControl_EnsureItemVisible(INameSpaceTreeControl* This,IShellItem *psi) {
  26787     return This->lpVtbl->EnsureItemVisible(This,psi);
  26788 }
  26789 static inline HRESULT INameSpaceTreeControl_SetTheme(INameSpaceTreeControl* This,LPCWSTR pszTheme) {
  26790     return This->lpVtbl->SetTheme(This,pszTheme);
  26791 }
  26792 static inline HRESULT INameSpaceTreeControl_GetNextItem(INameSpaceTreeControl* This,IShellItem *psi,NSTCGNI nstcgi,IShellItem **ppsiNext) {
  26793     return This->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext);
  26794 }
  26795 static inline HRESULT INameSpaceTreeControl_HitTest(INameSpaceTreeControl* This,POINT *ppt,IShellItem **ppsiOut) {
  26796     return This->lpVtbl->HitTest(This,ppt,ppsiOut);
  26797 }
  26798 static inline HRESULT INameSpaceTreeControl_GetItemRect(INameSpaceTreeControl* This,IShellItem *psi,RECT *prect) {
  26799     return This->lpVtbl->GetItemRect(This,psi,prect);
  26800 }
  26801 static inline HRESULT INameSpaceTreeControl_CollapseAll(INameSpaceTreeControl* This) {
  26802     return This->lpVtbl->CollapseAll(This);
  26803 }
  26804 #endif
  26805 #endif
  26806 
  26807 #endif
  26808 
  26809 
  26810 #endif  /* __INameSpaceTreeControl_INTERFACE_DEFINED__ */
  26811 
  26812 
  26813 /*****************************************************************************
  26814  * INameSpaceTreeControl2 interface
  26815  */
  26816 #ifndef __INameSpaceTreeControl2_INTERFACE_DEFINED__
  26817 #define __INameSpaceTreeControl2_INTERFACE_DEFINED__
  26818 
  26819 typedef enum NSTCSTYLE2 {
  26820     NSTCS2_DEFAULT = 0x0,
  26821     NSTCS2_INTERRUPTNOTIFICATIONS = 0x1,
  26822     NSTCS2_SHOWNULLSPACEMENU = 0x2,
  26823     NSTCS2_DISPLAYPADDING = 0x4,
  26824     NSTCS2_DISPLAYPINNEDONLY = 0x8,
  26825     NTSCS2_NOSINGLETONAUTOEXPAND = 0x10,
  26826     NTSCS2_NEVERINSERTNONENUMERATED = 0x20
  26827 } NSTCSTYLE2;
  26828 
  26829 DEFINE_ENUM_FLAG_OPERATORS(NSTCSTYLE2)
  26830 
  26831 DEFINE_GUID(IID_INameSpaceTreeControl2, 0x7cc7aed8, 0x290e, 0x49bc, 0x89,0x45, 0xc1,0x40,0x1c,0xc9,0x30,0x6c);
  26832 #if defined(__cplusplus) && !defined(CINTERFACE)
  26833 MIDL_INTERFACE("7cc7aed8-290e-49bc-8945-c1401cc9306c")
  26834 INameSpaceTreeControl2 : public INameSpaceTreeControl
  26835 {
  26836     virtual HRESULT STDMETHODCALLTYPE SetControlStyle(
  26837         NSTCSTYLE nstcsMask,
  26838         NSTCSTYLE nstcsStyle) = 0;
  26839 
  26840     virtual HRESULT STDMETHODCALLTYPE GetControlStyle(
  26841         NSTCSTYLE nstcsMask,
  26842         NSTCSTYLE *pnstcsStyle) = 0;
  26843 
  26844     virtual HRESULT STDMETHODCALLTYPE SetControlStyle2(
  26845         NSTCSTYLE2 nstcsMask,
  26846         NSTCSTYLE2 nstcsStyle) = 0;
  26847 
  26848     virtual HRESULT STDMETHODCALLTYPE GetControlStyle2(
  26849         NSTCSTYLE2 nstcsMask,
  26850         NSTCSTYLE2 *pnstcsStyle) = 0;
  26851 
  26852 };
  26853 #ifdef __CRT_UUID_DECL
  26854 __CRT_UUID_DECL(INameSpaceTreeControl2, 0x7cc7aed8, 0x290e, 0x49bc, 0x89,0x45, 0xc1,0x40,0x1c,0xc9,0x30,0x6c)
  26855 #endif
  26856 #else
  26857 typedef struct INameSpaceTreeControl2Vtbl {
  26858     BEGIN_INTERFACE
  26859 
  26860     /*** IUnknown methods ***/
  26861     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  26862         INameSpaceTreeControl2 *This,
  26863         REFIID riid,
  26864         void **ppvObject);
  26865 
  26866     ULONG (STDMETHODCALLTYPE *AddRef)(
  26867         INameSpaceTreeControl2 *This);
  26868 
  26869     ULONG (STDMETHODCALLTYPE *Release)(
  26870         INameSpaceTreeControl2 *This);
  26871 
  26872     /*** INameSpaceTreeControl methods ***/
  26873     HRESULT (STDMETHODCALLTYPE *Initialize)(
  26874         INameSpaceTreeControl2 *This,
  26875         HWND hwndParent,
  26876         RECT *prc,
  26877         NSTCSTYLE nsctsFlags);
  26878 
  26879     HRESULT (STDMETHODCALLTYPE *TreeAdvise)(
  26880         INameSpaceTreeControl2 *This,
  26881         IUnknown *punk,
  26882         DWORD *pdwCookie);
  26883 
  26884     HRESULT (STDMETHODCALLTYPE *TreeUnadvise)(
  26885         INameSpaceTreeControl2 *This,
  26886         DWORD dwCookie);
  26887 
  26888     HRESULT (STDMETHODCALLTYPE *AppendRoot)(
  26889         INameSpaceTreeControl2 *This,
  26890         IShellItem *psiRoot,
  26891         SHCONTF grfEnumFlags,
  26892         NSTCROOTSTYLE grfRootStyle,
  26893         IShellItemFilter *pif);
  26894 
  26895     HRESULT (STDMETHODCALLTYPE *InsertRoot)(
  26896         INameSpaceTreeControl2 *This,
  26897         int iIndex,
  26898         IShellItem *psiRoot,
  26899         SHCONTF grfEnumFlags,
  26900         NSTCROOTSTYLE grfRootStyle,
  26901         IShellItemFilter *pif);
  26902 
  26903     HRESULT (STDMETHODCALLTYPE *RemoveRoot)(
  26904         INameSpaceTreeControl2 *This,
  26905         IShellItem *psiRoot);
  26906 
  26907     HRESULT (STDMETHODCALLTYPE *RemoveAllRoots)(
  26908         INameSpaceTreeControl2 *This);
  26909 
  26910     HRESULT (STDMETHODCALLTYPE *GetRootItems)(
  26911         INameSpaceTreeControl2 *This,
  26912         IShellItemArray **ppsiaRootItems);
  26913 
  26914     HRESULT (STDMETHODCALLTYPE *SetItemState)(
  26915         INameSpaceTreeControl2 *This,
  26916         IShellItem *psi,
  26917         NSTCITEMSTATE nstcisMask,
  26918         NSTCITEMSTATE nstcisFlags);
  26919 
  26920     HRESULT (STDMETHODCALLTYPE *GetItemState)(
  26921         INameSpaceTreeControl2 *This,
  26922         IShellItem *psi,
  26923         NSTCITEMSTATE nstcisMask,
  26924         NSTCITEMSTATE *pnstcisFlags);
  26925 
  26926     HRESULT (STDMETHODCALLTYPE *GetSelectedItems)(
  26927         INameSpaceTreeControl2 *This,
  26928         IShellItemArray **psiaItems);
  26929 
  26930     HRESULT (STDMETHODCALLTYPE *GetItemCustomState)(
  26931         INameSpaceTreeControl2 *This,
  26932         IShellItem *psi,
  26933         int *piStateNumber);
  26934 
  26935     HRESULT (STDMETHODCALLTYPE *SetItemCustomState)(
  26936         INameSpaceTreeControl2 *This,
  26937         IShellItem *psi,
  26938         int iStateNumber);
  26939 
  26940     HRESULT (STDMETHODCALLTYPE *EnsureItemVisible)(
  26941         INameSpaceTreeControl2 *This,
  26942         IShellItem *psi);
  26943 
  26944     HRESULT (STDMETHODCALLTYPE *SetTheme)(
  26945         INameSpaceTreeControl2 *This,
  26946         LPCWSTR pszTheme);
  26947 
  26948     HRESULT (STDMETHODCALLTYPE *GetNextItem)(
  26949         INameSpaceTreeControl2 *This,
  26950         IShellItem *psi,
  26951         NSTCGNI nstcgi,
  26952         IShellItem **ppsiNext);
  26953 
  26954     HRESULT (STDMETHODCALLTYPE *HitTest)(
  26955         INameSpaceTreeControl2 *This,
  26956         POINT *ppt,
  26957         IShellItem **ppsiOut);
  26958 
  26959     HRESULT (STDMETHODCALLTYPE *GetItemRect)(
  26960         INameSpaceTreeControl2 *This,
  26961         IShellItem *psi,
  26962         RECT *prect);
  26963 
  26964     HRESULT (STDMETHODCALLTYPE *CollapseAll)(
  26965         INameSpaceTreeControl2 *This);
  26966 
  26967     /*** INameSpaceTreeControl2 methods ***/
  26968     HRESULT (STDMETHODCALLTYPE *SetControlStyle)(
  26969         INameSpaceTreeControl2 *This,
  26970         NSTCSTYLE nstcsMask,
  26971         NSTCSTYLE nstcsStyle);
  26972 
  26973     HRESULT (STDMETHODCALLTYPE *GetControlStyle)(
  26974         INameSpaceTreeControl2 *This,
  26975         NSTCSTYLE nstcsMask,
  26976         NSTCSTYLE *pnstcsStyle);
  26977 
  26978     HRESULT (STDMETHODCALLTYPE *SetControlStyle2)(
  26979         INameSpaceTreeControl2 *This,
  26980         NSTCSTYLE2 nstcsMask,
  26981         NSTCSTYLE2 nstcsStyle);
  26982 
  26983     HRESULT (STDMETHODCALLTYPE *GetControlStyle2)(
  26984         INameSpaceTreeControl2 *This,
  26985         NSTCSTYLE2 nstcsMask,
  26986         NSTCSTYLE2 *pnstcsStyle);
  26987 
  26988     END_INTERFACE
  26989 } INameSpaceTreeControl2Vtbl;
  26990 
  26991 interface INameSpaceTreeControl2 {
  26992     CONST_VTBL INameSpaceTreeControl2Vtbl* lpVtbl;
  26993 };
  26994 
  26995 #ifdef COBJMACROS
  26996 #ifndef WIDL_C_INLINE_WRAPPERS
  26997 /*** IUnknown methods ***/
  26998 #define INameSpaceTreeControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  26999 #define INameSpaceTreeControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
  27000 #define INameSpaceTreeControl2_Release(This) (This)->lpVtbl->Release(This)
  27001 /*** INameSpaceTreeControl methods ***/
  27002 #define INameSpaceTreeControl2_Initialize(This,hwndParent,prc,nsctsFlags) (This)->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags)
  27003 #define INameSpaceTreeControl2_TreeAdvise(This,punk,pdwCookie) (This)->lpVtbl->TreeAdvise(This,punk,pdwCookie)
  27004 #define INameSpaceTreeControl2_TreeUnadvise(This,dwCookie) (This)->lpVtbl->TreeUnadvise(This,dwCookie)
  27005 #define INameSpaceTreeControl2_AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif)
  27006 #define INameSpaceTreeControl2_InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif)
  27007 #define INameSpaceTreeControl2_RemoveRoot(This,psiRoot) (This)->lpVtbl->RemoveRoot(This,psiRoot)
  27008 #define INameSpaceTreeControl2_RemoveAllRoots(This) (This)->lpVtbl->RemoveAllRoots(This)
  27009 #define INameSpaceTreeControl2_GetRootItems(This,ppsiaRootItems) (This)->lpVtbl->GetRootItems(This,ppsiaRootItems)
  27010 #define INameSpaceTreeControl2_SetItemState(This,psi,nstcisMask,nstcisFlags) (This)->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags)
  27011 #define INameSpaceTreeControl2_GetItemState(This,psi,nstcisMask,pnstcisFlags) (This)->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags)
  27012 #define INameSpaceTreeControl2_GetSelectedItems(This,psiaItems) (This)->lpVtbl->GetSelectedItems(This,psiaItems)
  27013 #define INameSpaceTreeControl2_GetItemCustomState(This,psi,piStateNumber) (This)->lpVtbl->GetItemCustomState(This,psi,piStateNumber)
  27014 #define INameSpaceTreeControl2_SetItemCustomState(This,psi,iStateNumber) (This)->lpVtbl->SetItemCustomState(This,psi,iStateNumber)
  27015 #define INameSpaceTreeControl2_EnsureItemVisible(This,psi) (This)->lpVtbl->EnsureItemVisible(This,psi)
  27016 #define INameSpaceTreeControl2_SetTheme(This,pszTheme) (This)->lpVtbl->SetTheme(This,pszTheme)
  27017 #define INameSpaceTreeControl2_GetNextItem(This,psi,nstcgi,ppsiNext) (This)->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext)
  27018 #define INameSpaceTreeControl2_HitTest(This,ppt,ppsiOut) (This)->lpVtbl->HitTest(This,ppt,ppsiOut)
  27019 #define INameSpaceTreeControl2_GetItemRect(This,psi,prect) (This)->lpVtbl->GetItemRect(This,psi,prect)
  27020 #define INameSpaceTreeControl2_CollapseAll(This) (This)->lpVtbl->CollapseAll(This)
  27021 /*** INameSpaceTreeControl2 methods ***/
  27022 #define INameSpaceTreeControl2_SetControlStyle(This,nstcsMask,nstcsStyle) (This)->lpVtbl->SetControlStyle(This,nstcsMask,nstcsStyle)
  27023 #define INameSpaceTreeControl2_GetControlStyle(This,nstcsMask,pnstcsStyle) (This)->lpVtbl->GetControlStyle(This,nstcsMask,pnstcsStyle)
  27024 #define INameSpaceTreeControl2_SetControlStyle2(This,nstcsMask,nstcsStyle) (This)->lpVtbl->SetControlStyle2(This,nstcsMask,nstcsStyle)
  27025 #define INameSpaceTreeControl2_GetControlStyle2(This,nstcsMask,pnstcsStyle) (This)->lpVtbl->GetControlStyle2(This,nstcsMask,pnstcsStyle)
  27026 #else
  27027 /*** IUnknown methods ***/
  27028 static inline HRESULT INameSpaceTreeControl2_QueryInterface(INameSpaceTreeControl2* This,REFIID riid,void **ppvObject) {
  27029     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  27030 }
  27031 static inline ULONG INameSpaceTreeControl2_AddRef(INameSpaceTreeControl2* This) {
  27032     return This->lpVtbl->AddRef(This);
  27033 }
  27034 static inline ULONG INameSpaceTreeControl2_Release(INameSpaceTreeControl2* This) {
  27035     return This->lpVtbl->Release(This);
  27036 }
  27037 /*** INameSpaceTreeControl methods ***/
  27038 static inline HRESULT INameSpaceTreeControl2_Initialize(INameSpaceTreeControl2* This,HWND hwndParent,RECT *prc,NSTCSTYLE nsctsFlags) {
  27039     return This->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags);
  27040 }
  27041 static inline HRESULT INameSpaceTreeControl2_TreeAdvise(INameSpaceTreeControl2* This,IUnknown *punk,DWORD *pdwCookie) {
  27042     return This->lpVtbl->TreeAdvise(This,punk,pdwCookie);
  27043 }
  27044 static inline HRESULT INameSpaceTreeControl2_TreeUnadvise(INameSpaceTreeControl2* This,DWORD dwCookie) {
  27045     return This->lpVtbl->TreeUnadvise(This,dwCookie);
  27046 }
  27047 static inline HRESULT INameSpaceTreeControl2_AppendRoot(INameSpaceTreeControl2* This,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
  27048     return This->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif);
  27049 }
  27050 static inline HRESULT INameSpaceTreeControl2_InsertRoot(INameSpaceTreeControl2* This,int iIndex,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
  27051     return This->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif);
  27052 }
  27053 static inline HRESULT INameSpaceTreeControl2_RemoveRoot(INameSpaceTreeControl2* This,IShellItem *psiRoot) {
  27054     return This->lpVtbl->RemoveRoot(This,psiRoot);
  27055 }
  27056 static inline HRESULT INameSpaceTreeControl2_RemoveAllRoots(INameSpaceTreeControl2* This) {
  27057     return This->lpVtbl->RemoveAllRoots(This);
  27058 }
  27059 static inline HRESULT INameSpaceTreeControl2_GetRootItems(INameSpaceTreeControl2* This,IShellItemArray **ppsiaRootItems) {
  27060     return This->lpVtbl->GetRootItems(This,ppsiaRootItems);
  27061 }
  27062 static inline HRESULT INameSpaceTreeControl2_SetItemState(INameSpaceTreeControl2* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisFlags) {
  27063     return This->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags);
  27064 }
  27065 static inline HRESULT INameSpaceTreeControl2_GetItemState(INameSpaceTreeControl2* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE *pnstcisFlags) {
  27066     return This->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags);
  27067 }
  27068 static inline HRESULT INameSpaceTreeControl2_GetSelectedItems(INameSpaceTreeControl2* This,IShellItemArray **psiaItems) {
  27069     return This->lpVtbl->GetSelectedItems(This,psiaItems);
  27070 }
  27071 static inline HRESULT INameSpaceTreeControl2_GetItemCustomState(INameSpaceTreeControl2* This,IShellItem *psi,int *piStateNumber) {
  27072     return This->lpVtbl->GetItemCustomState(This,psi,piStateNumber);
  27073 }
  27074 static inline HRESULT INameSpaceTreeControl2_SetItemCustomState(INameSpaceTreeControl2* This,IShellItem *psi,int iStateNumber) {
  27075     return This->lpVtbl->SetItemCustomState(This,psi,iStateNumber);
  27076 }
  27077 static inline HRESULT INameSpaceTreeControl2_EnsureItemVisible(INameSpaceTreeControl2* This,IShellItem *psi) {
  27078     return This->lpVtbl->EnsureItemVisible(This,psi);
  27079 }
  27080 static inline HRESULT INameSpaceTreeControl2_SetTheme(INameSpaceTreeControl2* This,LPCWSTR pszTheme) {
  27081     return This->lpVtbl->SetTheme(This,pszTheme);
  27082 }
  27083 static inline HRESULT INameSpaceTreeControl2_GetNextItem(INameSpaceTreeControl2* This,IShellItem *psi,NSTCGNI nstcgi,IShellItem **ppsiNext) {
  27084     return This->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext);
  27085 }
  27086 static inline HRESULT INameSpaceTreeControl2_HitTest(INameSpaceTreeControl2* This,POINT *ppt,IShellItem **ppsiOut) {
  27087     return This->lpVtbl->HitTest(This,ppt,ppsiOut);
  27088 }
  27089 static inline HRESULT INameSpaceTreeControl2_GetItemRect(INameSpaceTreeControl2* This,IShellItem *psi,RECT *prect) {
  27090     return This->lpVtbl->GetItemRect(This,psi,prect);
  27091 }
  27092 static inline HRESULT INameSpaceTreeControl2_CollapseAll(INameSpaceTreeControl2* This) {
  27093     return This->lpVtbl->CollapseAll(This);
  27094 }
  27095 /*** INameSpaceTreeControl2 methods ***/
  27096 static inline HRESULT INameSpaceTreeControl2_SetControlStyle(INameSpaceTreeControl2* This,NSTCSTYLE nstcsMask,NSTCSTYLE nstcsStyle) {
  27097     return This->lpVtbl->SetControlStyle(This,nstcsMask,nstcsStyle);
  27098 }
  27099 static inline HRESULT INameSpaceTreeControl2_GetControlStyle(INameSpaceTreeControl2* This,NSTCSTYLE nstcsMask,NSTCSTYLE *pnstcsStyle) {
  27100     return This->lpVtbl->GetControlStyle(This,nstcsMask,pnstcsStyle);
  27101 }
  27102 static inline HRESULT INameSpaceTreeControl2_SetControlStyle2(INameSpaceTreeControl2* This,NSTCSTYLE2 nstcsMask,NSTCSTYLE2 nstcsStyle) {
  27103     return This->lpVtbl->SetControlStyle2(This,nstcsMask,nstcsStyle);
  27104 }
  27105 static inline HRESULT INameSpaceTreeControl2_GetControlStyle2(INameSpaceTreeControl2* This,NSTCSTYLE2 nstcsMask,NSTCSTYLE2 *pnstcsStyle) {
  27106     return This->lpVtbl->GetControlStyle2(This,nstcsMask,pnstcsStyle);
  27107 }
  27108 #endif
  27109 #endif
  27110 
  27111 #endif
  27112 
  27113 
  27114 #endif  /* __INameSpaceTreeControl2_INTERFACE_DEFINED__ */
  27115 
  27116 
  27117 #define NSTCS2_ALLMASK (NSTCS2_INTERRUPTNOTIFICATIONS | NSTCS2_SHOWNULLSPACEMENU | NSTCS2_DISPLAYPADDING)
  27118 #define SID_SNavigationPane IID_INameSpaceTreeControl
  27119 
  27120 #define ISLBUTTON(x) (NSTCECT_LBUTTON == ((x) & NSTCECT_BUTTON))
  27121 #define ISMBUTTON(x) (NSTCECT_MBUTTON == ((x) & NSTCECT_BUTTON))
  27122 #define ISRBUTTON(x) (NSTCECT_RBUTTON == ((x) & NSTCECT_BUTTON))
  27123 #define ISDBLCLICK(x) (NSTCECT_DBLCLICK == ((x) & NSTCECT_DBLCLICK))
  27124 
  27125 /*****************************************************************************
  27126  * INameSpaceTreeControlEvents interface
  27127  */
  27128 #ifndef __INameSpaceTreeControlEvents_INTERFACE_DEFINED__
  27129 #define __INameSpaceTreeControlEvents_INTERFACE_DEFINED__
  27130 
  27131 enum _NSTCEHITTEST {
  27132     NSTCEHT_NOWHERE = 0x1,
  27133     NSTCEHT_ONITEMICON = 0x2,
  27134     NSTCEHT_ONITEMLABEL = 0x4,
  27135     NSTCEHT_ONITEMINDENT = 0x8,
  27136     NSTCEHT_ONITEMBUTTON = 0x10,
  27137     NSTCEHT_ONITEMRIGHT = 0x20,
  27138     NSTCEHT_ONITEMSTATEICON = 0x40,
  27139     NSTCEHT_ONITEM = 0x46,
  27140     NSTCEHT_ONITEMTABBUTTON = 0x1000
  27141 };
  27142 
  27143 typedef DWORD NSTCEHITTEST;
  27144 
  27145 enum _NSTCECLICKTYPE {
  27146     NSTCECT_LBUTTON = 0x1,
  27147     NSTCECT_MBUTTON = 0x2,
  27148     NSTCECT_RBUTTON = 0x3,
  27149     NSTCECT_BUTTON = 0x3,
  27150     NSTCECT_DBLCLICK = 0x4
  27151 };
  27152 
  27153 typedef DWORD NSTCECLICKTYPE;
  27154 
  27155 DEFINE_GUID(IID_INameSpaceTreeControlEvents, 0x93d77985, 0xb3d8, 0x4484, 0x83,0x18, 0x67,0x2c,0xdd,0xa0,0x02,0xce);
  27156 #if defined(__cplusplus) && !defined(CINTERFACE)
  27157 MIDL_INTERFACE("93d77985-b3d8-4484-8318-672cdda002ce")
  27158 INameSpaceTreeControlEvents : public IUnknown
  27159 {
  27160     virtual HRESULT STDMETHODCALLTYPE OnItemClick(
  27161         IShellItem *psi,
  27162         NSTCEHITTEST nstceHitTest,
  27163         NSTCECLICKTYPE nstceClickType) = 0;
  27164 
  27165     virtual HRESULT STDMETHODCALLTYPE OnPropertyItemCommit(
  27166         IShellItem *psi) = 0;
  27167 
  27168     virtual HRESULT STDMETHODCALLTYPE OnItemStateChanging(
  27169         IShellItem *psi,
  27170         NSTCITEMSTATE nstcisMask,
  27171         NSTCITEMSTATE nstcisState) = 0;
  27172 
  27173     virtual HRESULT STDMETHODCALLTYPE OnItemStateChanged(
  27174         IShellItem *psi,
  27175         NSTCITEMSTATE nstcisMask,
  27176         NSTCITEMSTATE nstcisState) = 0;
  27177 
  27178     virtual HRESULT STDMETHODCALLTYPE OnSelectionChanged(
  27179         IShellItemArray *psiaSelection) = 0;
  27180 
  27181     virtual HRESULT STDMETHODCALLTYPE OnKeyboardInput(
  27182         UINT uMsg,
  27183         WPARAM wParam,
  27184         LPARAM lParam) = 0;
  27185 
  27186     virtual HRESULT STDMETHODCALLTYPE OnBeforeExpand(
  27187         IShellItem *psi) = 0;
  27188 
  27189     virtual HRESULT STDMETHODCALLTYPE OnAfterExpand(
  27190         IShellItem *psi) = 0;
  27191 
  27192     virtual HRESULT STDMETHODCALLTYPE OnBeginLabelEdit(
  27193         IShellItem *psi) = 0;
  27194 
  27195     virtual HRESULT STDMETHODCALLTYPE OnEndLabelEdit(
  27196         IShellItem *psi) = 0;
  27197 
  27198     virtual HRESULT STDMETHODCALLTYPE OnGetToolTip(
  27199         IShellItem *psi,
  27200         LPWSTR pszTip,
  27201         int cchTip) = 0;
  27202 
  27203     virtual HRESULT STDMETHODCALLTYPE OnBeforeItemDelete(
  27204         IShellItem *psi) = 0;
  27205 
  27206     virtual HRESULT STDMETHODCALLTYPE OnItemAdded(
  27207         IShellItem *psi,
  27208         WINBOOL fIsRoot) = 0;
  27209 
  27210     virtual HRESULT STDMETHODCALLTYPE OnItemDeleted(
  27211         IShellItem *psi,
  27212         WINBOOL fIsRoot) = 0;
  27213 
  27214     virtual HRESULT STDMETHODCALLTYPE OnBeforeContextMenu(
  27215         IShellItem *psi,
  27216         REFIID riid,
  27217         void **ppv) = 0;
  27218 
  27219     virtual HRESULT STDMETHODCALLTYPE OnAfterContextMenu(
  27220         IShellItem *psi,
  27221         IContextMenu *pcmIn,
  27222         REFIID riid,
  27223         void **ppv) = 0;
  27224 
  27225     virtual HRESULT STDMETHODCALLTYPE OnBeforeStateImageChange(
  27226         IShellItem *psi) = 0;
  27227 
  27228     virtual HRESULT STDMETHODCALLTYPE OnGetDefaultIconIndex(
  27229         IShellItem *psi,
  27230         int *piDefaultIcon,
  27231         int *piOpenIcon) = 0;
  27232 
  27233 };
  27234 #ifdef __CRT_UUID_DECL
  27235 __CRT_UUID_DECL(INameSpaceTreeControlEvents, 0x93d77985, 0xb3d8, 0x4484, 0x83,0x18, 0x67,0x2c,0xdd,0xa0,0x02,0xce)
  27236 #endif
  27237 #else
  27238 typedef struct INameSpaceTreeControlEventsVtbl {
  27239     BEGIN_INTERFACE
  27240 
  27241     /*** IUnknown methods ***/
  27242     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  27243         INameSpaceTreeControlEvents *This,
  27244         REFIID riid,
  27245         void **ppvObject);
  27246 
  27247     ULONG (STDMETHODCALLTYPE *AddRef)(
  27248         INameSpaceTreeControlEvents *This);
  27249 
  27250     ULONG (STDMETHODCALLTYPE *Release)(
  27251         INameSpaceTreeControlEvents *This);
  27252 
  27253     /*** INameSpaceTreeControlEvents methods ***/
  27254     HRESULT (STDMETHODCALLTYPE *OnItemClick)(
  27255         INameSpaceTreeControlEvents *This,
  27256         IShellItem *psi,
  27257         NSTCEHITTEST nstceHitTest,
  27258         NSTCECLICKTYPE nstceClickType);
  27259 
  27260     HRESULT (STDMETHODCALLTYPE *OnPropertyItemCommit)(
  27261         INameSpaceTreeControlEvents *This,
  27262         IShellItem *psi);
  27263 
  27264     HRESULT (STDMETHODCALLTYPE *OnItemStateChanging)(
  27265         INameSpaceTreeControlEvents *This,
  27266         IShellItem *psi,
  27267         NSTCITEMSTATE nstcisMask,
  27268         NSTCITEMSTATE nstcisState);
  27269 
  27270     HRESULT (STDMETHODCALLTYPE *OnItemStateChanged)(
  27271         INameSpaceTreeControlEvents *This,
  27272         IShellItem *psi,
  27273         NSTCITEMSTATE nstcisMask,
  27274         NSTCITEMSTATE nstcisState);
  27275 
  27276     HRESULT (STDMETHODCALLTYPE *OnSelectionChanged)(
  27277         INameSpaceTreeControlEvents *This,
  27278         IShellItemArray *psiaSelection);
  27279 
  27280     HRESULT (STDMETHODCALLTYPE *OnKeyboardInput)(
  27281         INameSpaceTreeControlEvents *This,
  27282         UINT uMsg,
  27283         WPARAM wParam,
  27284         LPARAM lParam);
  27285 
  27286     HRESULT (STDMETHODCALLTYPE *OnBeforeExpand)(
  27287         INameSpaceTreeControlEvents *This,
  27288         IShellItem *psi);
  27289 
  27290     HRESULT (STDMETHODCALLTYPE *OnAfterExpand)(
  27291         INameSpaceTreeControlEvents *This,
  27292         IShellItem *psi);
  27293 
  27294     HRESULT (STDMETHODCALLTYPE *OnBeginLabelEdit)(
  27295         INameSpaceTreeControlEvents *This,
  27296         IShellItem *psi);
  27297 
  27298     HRESULT (STDMETHODCALLTYPE *OnEndLabelEdit)(
  27299         INameSpaceTreeControlEvents *This,
  27300         IShellItem *psi);
  27301 
  27302     HRESULT (STDMETHODCALLTYPE *OnGetToolTip)(
  27303         INameSpaceTreeControlEvents *This,
  27304         IShellItem *psi,
  27305         LPWSTR pszTip,
  27306         int cchTip);
  27307 
  27308     HRESULT (STDMETHODCALLTYPE *OnBeforeItemDelete)(
  27309         INameSpaceTreeControlEvents *This,
  27310         IShellItem *psi);
  27311 
  27312     HRESULT (STDMETHODCALLTYPE *OnItemAdded)(
  27313         INameSpaceTreeControlEvents *This,
  27314         IShellItem *psi,
  27315         WINBOOL fIsRoot);
  27316 
  27317     HRESULT (STDMETHODCALLTYPE *OnItemDeleted)(
  27318         INameSpaceTreeControlEvents *This,
  27319         IShellItem *psi,
  27320         WINBOOL fIsRoot);
  27321 
  27322     HRESULT (STDMETHODCALLTYPE *OnBeforeContextMenu)(
  27323         INameSpaceTreeControlEvents *This,
  27324         IShellItem *psi,
  27325         REFIID riid,
  27326         void **ppv);
  27327 
  27328     HRESULT (STDMETHODCALLTYPE *OnAfterContextMenu)(
  27329         INameSpaceTreeControlEvents *This,
  27330         IShellItem *psi,
  27331         IContextMenu *pcmIn,
  27332         REFIID riid,
  27333         void **ppv);
  27334 
  27335     HRESULT (STDMETHODCALLTYPE *OnBeforeStateImageChange)(
  27336         INameSpaceTreeControlEvents *This,
  27337         IShellItem *psi);
  27338 
  27339     HRESULT (STDMETHODCALLTYPE *OnGetDefaultIconIndex)(
  27340         INameSpaceTreeControlEvents *This,
  27341         IShellItem *psi,
  27342         int *piDefaultIcon,
  27343         int *piOpenIcon);
  27344 
  27345     END_INTERFACE
  27346 } INameSpaceTreeControlEventsVtbl;
  27347 
  27348 interface INameSpaceTreeControlEvents {
  27349     CONST_VTBL INameSpaceTreeControlEventsVtbl* lpVtbl;
  27350 };
  27351 
  27352 #ifdef COBJMACROS
  27353 #ifndef WIDL_C_INLINE_WRAPPERS
  27354 /*** IUnknown methods ***/
  27355 #define INameSpaceTreeControlEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  27356 #define INameSpaceTreeControlEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
  27357 #define INameSpaceTreeControlEvents_Release(This) (This)->lpVtbl->Release(This)
  27358 /*** INameSpaceTreeControlEvents methods ***/
  27359 #define INameSpaceTreeControlEvents_OnItemClick(This,psi,nstceHitTest,nstceClickType) (This)->lpVtbl->OnItemClick(This,psi,nstceHitTest,nstceClickType)
  27360 #define INameSpaceTreeControlEvents_OnPropertyItemCommit(This,psi) (This)->lpVtbl->OnPropertyItemCommit(This,psi)
  27361 #define INameSpaceTreeControlEvents_OnItemStateChanging(This,psi,nstcisMask,nstcisState) (This)->lpVtbl->OnItemStateChanging(This,psi,nstcisMask,nstcisState)
  27362 #define INameSpaceTreeControlEvents_OnItemStateChanged(This,psi,nstcisMask,nstcisState) (This)->lpVtbl->OnItemStateChanged(This,psi,nstcisMask,nstcisState)
  27363 #define INameSpaceTreeControlEvents_OnSelectionChanged(This,psiaSelection) (This)->lpVtbl->OnSelectionChanged(This,psiaSelection)
  27364 #define INameSpaceTreeControlEvents_OnKeyboardInput(This,uMsg,wParam,lParam) (This)->lpVtbl->OnKeyboardInput(This,uMsg,wParam,lParam)
  27365 #define INameSpaceTreeControlEvents_OnBeforeExpand(This,psi) (This)->lpVtbl->OnBeforeExpand(This,psi)
  27366 #define INameSpaceTreeControlEvents_OnAfterExpand(This,psi) (This)->lpVtbl->OnAfterExpand(This,psi)
  27367 #define INameSpaceTreeControlEvents_OnBeginLabelEdit(This,psi) (This)->lpVtbl->OnBeginLabelEdit(This,psi)
  27368 #define INameSpaceTreeControlEvents_OnEndLabelEdit(This,psi) (This)->lpVtbl->OnEndLabelEdit(This,psi)
  27369 #define INameSpaceTreeControlEvents_OnGetToolTip(This,psi,pszTip,cchTip) (This)->lpVtbl->OnGetToolTip(This,psi,pszTip,cchTip)
  27370 #define INameSpaceTreeControlEvents_OnBeforeItemDelete(This,psi) (This)->lpVtbl->OnBeforeItemDelete(This,psi)
  27371 #define INameSpaceTreeControlEvents_OnItemAdded(This,psi,fIsRoot) (This)->lpVtbl->OnItemAdded(This,psi,fIsRoot)
  27372 #define INameSpaceTreeControlEvents_OnItemDeleted(This,psi,fIsRoot) (This)->lpVtbl->OnItemDeleted(This,psi,fIsRoot)
  27373 #define INameSpaceTreeControlEvents_OnBeforeContextMenu(This,psi,riid,ppv) (This)->lpVtbl->OnBeforeContextMenu(This,psi,riid,ppv)
  27374 #define INameSpaceTreeControlEvents_OnAfterContextMenu(This,psi,pcmIn,riid,ppv) (This)->lpVtbl->OnAfterContextMenu(This,psi,pcmIn,riid,ppv)
  27375 #define INameSpaceTreeControlEvents_OnBeforeStateImageChange(This,psi) (This)->lpVtbl->OnBeforeStateImageChange(This,psi)
  27376 #define INameSpaceTreeControlEvents_OnGetDefaultIconIndex(This,psi,piDefaultIcon,piOpenIcon) (This)->lpVtbl->OnGetDefaultIconIndex(This,psi,piDefaultIcon,piOpenIcon)
  27377 #else
  27378 /*** IUnknown methods ***/
  27379 static inline HRESULT INameSpaceTreeControlEvents_QueryInterface(INameSpaceTreeControlEvents* This,REFIID riid,void **ppvObject) {
  27380     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  27381 }
  27382 static inline ULONG INameSpaceTreeControlEvents_AddRef(INameSpaceTreeControlEvents* This) {
  27383     return This->lpVtbl->AddRef(This);
  27384 }
  27385 static inline ULONG INameSpaceTreeControlEvents_Release(INameSpaceTreeControlEvents* This) {
  27386     return This->lpVtbl->Release(This);
  27387 }
  27388 /*** INameSpaceTreeControlEvents methods ***/
  27389 static inline HRESULT INameSpaceTreeControlEvents_OnItemClick(INameSpaceTreeControlEvents* This,IShellItem *psi,NSTCEHITTEST nstceHitTest,NSTCECLICKTYPE nstceClickType) {
  27390     return This->lpVtbl->OnItemClick(This,psi,nstceHitTest,nstceClickType);
  27391 }
  27392 static inline HRESULT INameSpaceTreeControlEvents_OnPropertyItemCommit(INameSpaceTreeControlEvents* This,IShellItem *psi) {
  27393     return This->lpVtbl->OnPropertyItemCommit(This,psi);
  27394 }
  27395 static inline HRESULT INameSpaceTreeControlEvents_OnItemStateChanging(INameSpaceTreeControlEvents* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisState) {
  27396     return This->lpVtbl->OnItemStateChanging(This,psi,nstcisMask,nstcisState);
  27397 }
  27398 static inline HRESULT INameSpaceTreeControlEvents_OnItemStateChanged(INameSpaceTreeControlEvents* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisState) {
  27399     return This->lpVtbl->OnItemStateChanged(This,psi,nstcisMask,nstcisState);
  27400 }
  27401 static inline HRESULT INameSpaceTreeControlEvents_OnSelectionChanged(INameSpaceTreeControlEvents* This,IShellItemArray *psiaSelection) {
  27402     return This->lpVtbl->OnSelectionChanged(This,psiaSelection);
  27403 }
  27404 static inline HRESULT INameSpaceTreeControlEvents_OnKeyboardInput(INameSpaceTreeControlEvents* This,UINT uMsg,WPARAM wParam,LPARAM lParam) {
  27405     return This->lpVtbl->OnKeyboardInput(This,uMsg,wParam,lParam);
  27406 }
  27407 static inline HRESULT INameSpaceTreeControlEvents_OnBeforeExpand(INameSpaceTreeControlEvents* This,IShellItem *psi) {
  27408     return This->lpVtbl->OnBeforeExpand(This,psi);
  27409 }
  27410 static inline HRESULT INameSpaceTreeControlEvents_OnAfterExpand(INameSpaceTreeControlEvents* This,IShellItem *psi) {
  27411     return This->lpVtbl->OnAfterExpand(This,psi);
  27412 }
  27413 static inline HRESULT INameSpaceTreeControlEvents_OnBeginLabelEdit(INameSpaceTreeControlEvents* This,IShellItem *psi) {
  27414     return This->lpVtbl->OnBeginLabelEdit(This,psi);
  27415 }
  27416 static inline HRESULT INameSpaceTreeControlEvents_OnEndLabelEdit(INameSpaceTreeControlEvents* This,IShellItem *psi) {
  27417     return This->lpVtbl->OnEndLabelEdit(This,psi);
  27418 }
  27419 static inline HRESULT INameSpaceTreeControlEvents_OnGetToolTip(INameSpaceTreeControlEvents* This,IShellItem *psi,LPWSTR pszTip,int cchTip) {
  27420     return This->lpVtbl->OnGetToolTip(This,psi,pszTip,cchTip);
  27421 }
  27422 static inline HRESULT INameSpaceTreeControlEvents_OnBeforeItemDelete(INameSpaceTreeControlEvents* This,IShellItem *psi) {
  27423     return This->lpVtbl->OnBeforeItemDelete(This,psi);
  27424 }
  27425 static inline HRESULT INameSpaceTreeControlEvents_OnItemAdded(INameSpaceTreeControlEvents* This,IShellItem *psi,WINBOOL fIsRoot) {
  27426     return This->lpVtbl->OnItemAdded(This,psi,fIsRoot);
  27427 }
  27428 static inline HRESULT INameSpaceTreeControlEvents_OnItemDeleted(INameSpaceTreeControlEvents* This,IShellItem *psi,WINBOOL fIsRoot) {
  27429     return This->lpVtbl->OnItemDeleted(This,psi,fIsRoot);
  27430 }
  27431 static inline HRESULT INameSpaceTreeControlEvents_OnBeforeContextMenu(INameSpaceTreeControlEvents* This,IShellItem *psi,REFIID riid,void **ppv) {
  27432     return This->lpVtbl->OnBeforeContextMenu(This,psi,riid,ppv);
  27433 }
  27434 static inline HRESULT INameSpaceTreeControlEvents_OnAfterContextMenu(INameSpaceTreeControlEvents* This,IShellItem *psi,IContextMenu *pcmIn,REFIID riid,void **ppv) {
  27435     return This->lpVtbl->OnAfterContextMenu(This,psi,pcmIn,riid,ppv);
  27436 }
  27437 static inline HRESULT INameSpaceTreeControlEvents_OnBeforeStateImageChange(INameSpaceTreeControlEvents* This,IShellItem *psi) {
  27438     return This->lpVtbl->OnBeforeStateImageChange(This,psi);
  27439 }
  27440 static inline HRESULT INameSpaceTreeControlEvents_OnGetDefaultIconIndex(INameSpaceTreeControlEvents* This,IShellItem *psi,int *piDefaultIcon,int *piOpenIcon) {
  27441     return This->lpVtbl->OnGetDefaultIconIndex(This,psi,piDefaultIcon,piOpenIcon);
  27442 }
  27443 #endif
  27444 #endif
  27445 
  27446 #endif
  27447 
  27448 
  27449 #endif  /* __INameSpaceTreeControlEvents_INTERFACE_DEFINED__ */
  27450 
  27451 
  27452 #define NSTCDHPOS_ONTOP  -1
  27453 
  27454 /*****************************************************************************
  27455  * INameSpaceTreeControlDropHandler interface
  27456  */
  27457 #ifndef __INameSpaceTreeControlDropHandler_INTERFACE_DEFINED__
  27458 #define __INameSpaceTreeControlDropHandler_INTERFACE_DEFINED__
  27459 
  27460 DEFINE_GUID(IID_INameSpaceTreeControlDropHandler, 0xf9c665d6, 0xc2f2, 0x4c19, 0xbf,0x33, 0x83,0x22,0xd7,0x35,0x2f,0x51);
  27461 #if defined(__cplusplus) && !defined(CINTERFACE)
  27462 MIDL_INTERFACE("f9c665d6-c2f2-4c19-bf33-8322d7352f51")
  27463 INameSpaceTreeControlDropHandler : public IUnknown
  27464 {
  27465     virtual HRESULT STDMETHODCALLTYPE OnDragEnter(
  27466         IShellItem *psiOver,
  27467         IShellItemArray *psiaData,
  27468         WINBOOL fOutsideSource,
  27469         DWORD grfKeyState,
  27470         DWORD *pdwEffect) = 0;
  27471 
  27472     virtual HRESULT STDMETHODCALLTYPE OnDragOver(
  27473         IShellItem *psiOver,
  27474         IShellItemArray *psiaData,
  27475         DWORD grfKeyState,
  27476         DWORD *pdwEffect) = 0;
  27477 
  27478     virtual HRESULT STDMETHODCALLTYPE OnDragPosition(
  27479         IShellItem *psiOver,
  27480         IShellItemArray *psiaData,
  27481         int iNewPosition,
  27482         int iOldPosition) = 0;
  27483 
  27484     virtual HRESULT STDMETHODCALLTYPE OnDrop(
  27485         IShellItem *psiOver,
  27486         IShellItemArray *psiaData,
  27487         int iPosition,
  27488         DWORD grfKeyState,
  27489         DWORD *pdwEffect) = 0;
  27490 
  27491     virtual HRESULT STDMETHODCALLTYPE OnDropPosition(
  27492         IShellItem *psiOver,
  27493         IShellItemArray *psiaData,
  27494         int iNewPosition,
  27495         int iOldPosition) = 0;
  27496 
  27497     virtual HRESULT STDMETHODCALLTYPE OnDragLeave(
  27498         IShellItem *psiOver) = 0;
  27499 
  27500 };
  27501 #ifdef __CRT_UUID_DECL
  27502 __CRT_UUID_DECL(INameSpaceTreeControlDropHandler, 0xf9c665d6, 0xc2f2, 0x4c19, 0xbf,0x33, 0x83,0x22,0xd7,0x35,0x2f,0x51)
  27503 #endif
  27504 #else
  27505 typedef struct INameSpaceTreeControlDropHandlerVtbl {
  27506     BEGIN_INTERFACE
  27507 
  27508     /*** IUnknown methods ***/
  27509     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  27510         INameSpaceTreeControlDropHandler *This,
  27511         REFIID riid,
  27512         void **ppvObject);
  27513 
  27514     ULONG (STDMETHODCALLTYPE *AddRef)(
  27515         INameSpaceTreeControlDropHandler *This);
  27516 
  27517     ULONG (STDMETHODCALLTYPE *Release)(
  27518         INameSpaceTreeControlDropHandler *This);
  27519 
  27520     /*** INameSpaceTreeControlDropHandler methods ***/
  27521     HRESULT (STDMETHODCALLTYPE *OnDragEnter)(
  27522         INameSpaceTreeControlDropHandler *This,
  27523         IShellItem *psiOver,
  27524         IShellItemArray *psiaData,
  27525         WINBOOL fOutsideSource,
  27526         DWORD grfKeyState,
  27527         DWORD *pdwEffect);
  27528 
  27529     HRESULT (STDMETHODCALLTYPE *OnDragOver)(
  27530         INameSpaceTreeControlDropHandler *This,
  27531         IShellItem *psiOver,
  27532         IShellItemArray *psiaData,
  27533         DWORD grfKeyState,
  27534         DWORD *pdwEffect);
  27535 
  27536     HRESULT (STDMETHODCALLTYPE *OnDragPosition)(
  27537         INameSpaceTreeControlDropHandler *This,
  27538         IShellItem *psiOver,
  27539         IShellItemArray *psiaData,
  27540         int iNewPosition,
  27541         int iOldPosition);
  27542 
  27543     HRESULT (STDMETHODCALLTYPE *OnDrop)(
  27544         INameSpaceTreeControlDropHandler *This,
  27545         IShellItem *psiOver,
  27546         IShellItemArray *psiaData,
  27547         int iPosition,
  27548         DWORD grfKeyState,
  27549         DWORD *pdwEffect);
  27550 
  27551     HRESULT (STDMETHODCALLTYPE *OnDropPosition)(
  27552         INameSpaceTreeControlDropHandler *This,
  27553         IShellItem *psiOver,
  27554         IShellItemArray *psiaData,
  27555         int iNewPosition,
  27556         int iOldPosition);
  27557 
  27558     HRESULT (STDMETHODCALLTYPE *OnDragLeave)(
  27559         INameSpaceTreeControlDropHandler *This,
  27560         IShellItem *psiOver);
  27561 
  27562     END_INTERFACE
  27563 } INameSpaceTreeControlDropHandlerVtbl;
  27564 
  27565 interface INameSpaceTreeControlDropHandler {
  27566     CONST_VTBL INameSpaceTreeControlDropHandlerVtbl* lpVtbl;
  27567 };
  27568 
  27569 #ifdef COBJMACROS
  27570 #ifndef WIDL_C_INLINE_WRAPPERS
  27571 /*** IUnknown methods ***/
  27572 #define INameSpaceTreeControlDropHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  27573 #define INameSpaceTreeControlDropHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
  27574 #define INameSpaceTreeControlDropHandler_Release(This) (This)->lpVtbl->Release(This)
  27575 /*** INameSpaceTreeControlDropHandler methods ***/
  27576 #define INameSpaceTreeControlDropHandler_OnDragEnter(This,psiOver,psiaData,fOutsideSource,grfKeyState,pdwEffect) (This)->lpVtbl->OnDragEnter(This,psiOver,psiaData,fOutsideSource,grfKeyState,pdwEffect)
  27577 #define INameSpaceTreeControlDropHandler_OnDragOver(This,psiOver,psiaData,grfKeyState,pdwEffect) (This)->lpVtbl->OnDragOver(This,psiOver,psiaData,grfKeyState,pdwEffect)
  27578 #define INameSpaceTreeControlDropHandler_OnDragPosition(This,psiOver,psiaData,iNewPosition,iOldPosition) (This)->lpVtbl->OnDragPosition(This,psiOver,psiaData,iNewPosition,iOldPosition)
  27579 #define INameSpaceTreeControlDropHandler_OnDrop(This,psiOver,psiaData,iPosition,grfKeyState,pdwEffect) (This)->lpVtbl->OnDrop(This,psiOver,psiaData,iPosition,grfKeyState,pdwEffect)
  27580 #define INameSpaceTreeControlDropHandler_OnDropPosition(This,psiOver,psiaData,iNewPosition,iOldPosition) (This)->lpVtbl->OnDropPosition(This,psiOver,psiaData,iNewPosition,iOldPosition)
  27581 #define INameSpaceTreeControlDropHandler_OnDragLeave(This,psiOver) (This)->lpVtbl->OnDragLeave(This,psiOver)
  27582 #else
  27583 /*** IUnknown methods ***/
  27584 static inline HRESULT INameSpaceTreeControlDropHandler_QueryInterface(INameSpaceTreeControlDropHandler* This,REFIID riid,void **ppvObject) {
  27585     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  27586 }
  27587 static inline ULONG INameSpaceTreeControlDropHandler_AddRef(INameSpaceTreeControlDropHandler* This) {
  27588     return This->lpVtbl->AddRef(This);
  27589 }
  27590 static inline ULONG INameSpaceTreeControlDropHandler_Release(INameSpaceTreeControlDropHandler* This) {
  27591     return This->lpVtbl->Release(This);
  27592 }
  27593 /*** INameSpaceTreeControlDropHandler methods ***/
  27594 static inline HRESULT INameSpaceTreeControlDropHandler_OnDragEnter(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,WINBOOL fOutsideSource,DWORD grfKeyState,DWORD *pdwEffect) {
  27595     return This->lpVtbl->OnDragEnter(This,psiOver,psiaData,fOutsideSource,grfKeyState,pdwEffect);
  27596 }
  27597 static inline HRESULT INameSpaceTreeControlDropHandler_OnDragOver(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,DWORD grfKeyState,DWORD *pdwEffect) {
  27598     return This->lpVtbl->OnDragOver(This,psiOver,psiaData,grfKeyState,pdwEffect);
  27599 }
  27600 static inline HRESULT INameSpaceTreeControlDropHandler_OnDragPosition(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,int iNewPosition,int iOldPosition) {
  27601     return This->lpVtbl->OnDragPosition(This,psiOver,psiaData,iNewPosition,iOldPosition);
  27602 }
  27603 static inline HRESULT INameSpaceTreeControlDropHandler_OnDrop(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,int iPosition,DWORD grfKeyState,DWORD *pdwEffect) {
  27604     return This->lpVtbl->OnDrop(This,psiOver,psiaData,iPosition,grfKeyState,pdwEffect);
  27605 }
  27606 static inline HRESULT INameSpaceTreeControlDropHandler_OnDropPosition(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,int iNewPosition,int iOldPosition) {
  27607     return This->lpVtbl->OnDropPosition(This,psiOver,psiaData,iNewPosition,iOldPosition);
  27608 }
  27609 static inline HRESULT INameSpaceTreeControlDropHandler_OnDragLeave(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver) {
  27610     return This->lpVtbl->OnDragLeave(This,psiOver);
  27611 }
  27612 #endif
  27613 #endif
  27614 
  27615 #endif
  27616 
  27617 
  27618 #endif  /* __INameSpaceTreeControlDropHandler_INTERFACE_DEFINED__ */
  27619 
  27620 
  27621 /*****************************************************************************
  27622  * INameSpaceTreeAccessible interface
  27623  */
  27624 #ifndef __INameSpaceTreeAccessible_INTERFACE_DEFINED__
  27625 #define __INameSpaceTreeAccessible_INTERFACE_DEFINED__
  27626 
  27627 DEFINE_GUID(IID_INameSpaceTreeAccessible, 0x71f312de, 0x43ed, 0x4190, 0x84,0x77, 0xe9,0x53,0x6b,0x82,0x35,0x0b);
  27628 #if defined(__cplusplus) && !defined(CINTERFACE)
  27629 MIDL_INTERFACE("71f312de-43ed-4190-8477-e9536b82350b")
  27630 INameSpaceTreeAccessible : public IUnknown
  27631 {
  27632     virtual HRESULT STDMETHODCALLTYPE OnGetDefaultAccessibilityAction(
  27633         IShellItem *psi,
  27634         BSTR *pbstrDefaultAction) = 0;
  27635 
  27636     virtual HRESULT STDMETHODCALLTYPE OnDoDefaultAccessibilityAction(
  27637         IShellItem *psi) = 0;
  27638 
  27639     virtual HRESULT STDMETHODCALLTYPE OnGetAccessibilityRole(
  27640         IShellItem *psi,
  27641         VARIANT *pvarRole) = 0;
  27642 
  27643 };
  27644 #ifdef __CRT_UUID_DECL
  27645 __CRT_UUID_DECL(INameSpaceTreeAccessible, 0x71f312de, 0x43ed, 0x4190, 0x84,0x77, 0xe9,0x53,0x6b,0x82,0x35,0x0b)
  27646 #endif
  27647 #else
  27648 typedef struct INameSpaceTreeAccessibleVtbl {
  27649     BEGIN_INTERFACE
  27650 
  27651     /*** IUnknown methods ***/
  27652     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  27653         INameSpaceTreeAccessible *This,
  27654         REFIID riid,
  27655         void **ppvObject);
  27656 
  27657     ULONG (STDMETHODCALLTYPE *AddRef)(
  27658         INameSpaceTreeAccessible *This);
  27659 
  27660     ULONG (STDMETHODCALLTYPE *Release)(
  27661         INameSpaceTreeAccessible *This);
  27662 
  27663     /*** INameSpaceTreeAccessible methods ***/
  27664     HRESULT (STDMETHODCALLTYPE *OnGetDefaultAccessibilityAction)(
  27665         INameSpaceTreeAccessible *This,
  27666         IShellItem *psi,
  27667         BSTR *pbstrDefaultAction);
  27668 
  27669     HRESULT (STDMETHODCALLTYPE *OnDoDefaultAccessibilityAction)(
  27670         INameSpaceTreeAccessible *This,
  27671         IShellItem *psi);
  27672 
  27673     HRESULT (STDMETHODCALLTYPE *OnGetAccessibilityRole)(
  27674         INameSpaceTreeAccessible *This,
  27675         IShellItem *psi,
  27676         VARIANT *pvarRole);
  27677 
  27678     END_INTERFACE
  27679 } INameSpaceTreeAccessibleVtbl;
  27680 
  27681 interface INameSpaceTreeAccessible {
  27682     CONST_VTBL INameSpaceTreeAccessibleVtbl* lpVtbl;
  27683 };
  27684 
  27685 #ifdef COBJMACROS
  27686 #ifndef WIDL_C_INLINE_WRAPPERS
  27687 /*** IUnknown methods ***/
  27688 #define INameSpaceTreeAccessible_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  27689 #define INameSpaceTreeAccessible_AddRef(This) (This)->lpVtbl->AddRef(This)
  27690 #define INameSpaceTreeAccessible_Release(This) (This)->lpVtbl->Release(This)
  27691 /*** INameSpaceTreeAccessible methods ***/
  27692 #define INameSpaceTreeAccessible_OnGetDefaultAccessibilityAction(This,psi,pbstrDefaultAction) (This)->lpVtbl->OnGetDefaultAccessibilityAction(This,psi,pbstrDefaultAction)
  27693 #define INameSpaceTreeAccessible_OnDoDefaultAccessibilityAction(This,psi) (This)->lpVtbl->OnDoDefaultAccessibilityAction(This,psi)
  27694 #define INameSpaceTreeAccessible_OnGetAccessibilityRole(This,psi,pvarRole) (This)->lpVtbl->OnGetAccessibilityRole(This,psi,pvarRole)
  27695 #else
  27696 /*** IUnknown methods ***/
  27697 static inline HRESULT INameSpaceTreeAccessible_QueryInterface(INameSpaceTreeAccessible* This,REFIID riid,void **ppvObject) {
  27698     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  27699 }
  27700 static inline ULONG INameSpaceTreeAccessible_AddRef(INameSpaceTreeAccessible* This) {
  27701     return This->lpVtbl->AddRef(This);
  27702 }
  27703 static inline ULONG INameSpaceTreeAccessible_Release(INameSpaceTreeAccessible* This) {
  27704     return This->lpVtbl->Release(This);
  27705 }
  27706 /*** INameSpaceTreeAccessible methods ***/
  27707 static inline HRESULT INameSpaceTreeAccessible_OnGetDefaultAccessibilityAction(INameSpaceTreeAccessible* This,IShellItem *psi,BSTR *pbstrDefaultAction) {
  27708     return This->lpVtbl->OnGetDefaultAccessibilityAction(This,psi,pbstrDefaultAction);
  27709 }
  27710 static inline HRESULT INameSpaceTreeAccessible_OnDoDefaultAccessibilityAction(INameSpaceTreeAccessible* This,IShellItem *psi) {
  27711     return This->lpVtbl->OnDoDefaultAccessibilityAction(This,psi);
  27712 }
  27713 static inline HRESULT INameSpaceTreeAccessible_OnGetAccessibilityRole(INameSpaceTreeAccessible* This,IShellItem *psi,VARIANT *pvarRole) {
  27714     return This->lpVtbl->OnGetAccessibilityRole(This,psi,pvarRole);
  27715 }
  27716 #endif
  27717 #endif
  27718 
  27719 #endif
  27720 
  27721 
  27722 #endif  /* __INameSpaceTreeAccessible_INTERFACE_DEFINED__ */
  27723 
  27724 
  27725 /*****************************************************************************
  27726  * INameSpaceTreeControlCustomDraw interface
  27727  */
  27728 #ifndef __INameSpaceTreeControlCustomDraw_INTERFACE_DEFINED__
  27729 #define __INameSpaceTreeControlCustomDraw_INTERFACE_DEFINED__
  27730 
  27731 typedef struct NSTCCUSTOMDRAW {
  27732     IShellItem *psi;
  27733     UINT uItemState;
  27734     NSTCITEMSTATE nstcis;
  27735     LPCWSTR pszText;
  27736     int iImage;
  27737     HIMAGELIST himl;
  27738     int iLevel;
  27739     int iIndent;
  27740 } NSTCCUSTOMDRAW;
  27741 
  27742 DEFINE_GUID(IID_INameSpaceTreeControlCustomDraw, 0x2d3ba758, 0x33ee, 0x42d5, 0xbb,0x7b, 0x5f,0x34,0x31,0xd8,0x6c,0x78);
  27743 #if defined(__cplusplus) && !defined(CINTERFACE)
  27744 MIDL_INTERFACE("2d3ba758-33ee-42d5-bb7b-5f3431d86c78")
  27745 INameSpaceTreeControlCustomDraw : public IUnknown
  27746 {
  27747     virtual HRESULT STDMETHODCALLTYPE PrePaint(
  27748         HDC hdc,
  27749         RECT *prc,
  27750         LRESULT *plres) = 0;
  27751 
  27752     virtual HRESULT STDMETHODCALLTYPE PostPaint(
  27753         HDC hdc,
  27754         RECT *prc) = 0;
  27755 
  27756     virtual HRESULT STDMETHODCALLTYPE ItemPrePaint(
  27757         HDC hdc,
  27758         RECT *prc,
  27759         NSTCCUSTOMDRAW *pnstccdItem,
  27760         COLORREF *pclrText,
  27761         COLORREF *pclrTextBk,
  27762         LRESULT *plres) = 0;
  27763 
  27764     virtual HRESULT STDMETHODCALLTYPE ItemPostPaint(
  27765         HDC hdc,
  27766         RECT *prc,
  27767         NSTCCUSTOMDRAW *pnstccdItem) = 0;
  27768 
  27769 };
  27770 #ifdef __CRT_UUID_DECL
  27771 __CRT_UUID_DECL(INameSpaceTreeControlCustomDraw, 0x2d3ba758, 0x33ee, 0x42d5, 0xbb,0x7b, 0x5f,0x34,0x31,0xd8,0x6c,0x78)
  27772 #endif
  27773 #else
  27774 typedef struct INameSpaceTreeControlCustomDrawVtbl {
  27775     BEGIN_INTERFACE
  27776 
  27777     /*** IUnknown methods ***/
  27778     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  27779         INameSpaceTreeControlCustomDraw *This,
  27780         REFIID riid,
  27781         void **ppvObject);
  27782 
  27783     ULONG (STDMETHODCALLTYPE *AddRef)(
  27784         INameSpaceTreeControlCustomDraw *This);
  27785 
  27786     ULONG (STDMETHODCALLTYPE *Release)(
  27787         INameSpaceTreeControlCustomDraw *This);
  27788 
  27789     /*** INameSpaceTreeControlCustomDraw methods ***/
  27790     HRESULT (STDMETHODCALLTYPE *PrePaint)(
  27791         INameSpaceTreeControlCustomDraw *This,
  27792         HDC hdc,
  27793         RECT *prc,
  27794         LRESULT *plres);
  27795 
  27796     HRESULT (STDMETHODCALLTYPE *PostPaint)(
  27797         INameSpaceTreeControlCustomDraw *This,
  27798         HDC hdc,
  27799         RECT *prc);
  27800 
  27801     HRESULT (STDMETHODCALLTYPE *ItemPrePaint)(
  27802         INameSpaceTreeControlCustomDraw *This,
  27803         HDC hdc,
  27804         RECT *prc,
  27805         NSTCCUSTOMDRAW *pnstccdItem,
  27806         COLORREF *pclrText,
  27807         COLORREF *pclrTextBk,
  27808         LRESULT *plres);
  27809 
  27810     HRESULT (STDMETHODCALLTYPE *ItemPostPaint)(
  27811         INameSpaceTreeControlCustomDraw *This,
  27812         HDC hdc,
  27813         RECT *prc,
  27814         NSTCCUSTOMDRAW *pnstccdItem);
  27815 
  27816     END_INTERFACE
  27817 } INameSpaceTreeControlCustomDrawVtbl;
  27818 
  27819 interface INameSpaceTreeControlCustomDraw {
  27820     CONST_VTBL INameSpaceTreeControlCustomDrawVtbl* lpVtbl;
  27821 };
  27822 
  27823 #ifdef COBJMACROS
  27824 #ifndef WIDL_C_INLINE_WRAPPERS
  27825 /*** IUnknown methods ***/
  27826 #define INameSpaceTreeControlCustomDraw_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  27827 #define INameSpaceTreeControlCustomDraw_AddRef(This) (This)->lpVtbl->AddRef(This)
  27828 #define INameSpaceTreeControlCustomDraw_Release(This) (This)->lpVtbl->Release(This)
  27829 /*** INameSpaceTreeControlCustomDraw methods ***/
  27830 #define INameSpaceTreeControlCustomDraw_PrePaint(This,hdc,prc,plres) (This)->lpVtbl->PrePaint(This,hdc,prc,plres)
  27831 #define INameSpaceTreeControlCustomDraw_PostPaint(This,hdc,prc) (This)->lpVtbl->PostPaint(This,hdc,prc)
  27832 #define INameSpaceTreeControlCustomDraw_ItemPrePaint(This,hdc,prc,pnstccdItem,pclrText,pclrTextBk,plres) (This)->lpVtbl->ItemPrePaint(This,hdc,prc,pnstccdItem,pclrText,pclrTextBk,plres)
  27833 #define INameSpaceTreeControlCustomDraw_ItemPostPaint(This,hdc,prc,pnstccdItem) (This)->lpVtbl->ItemPostPaint(This,hdc,prc,pnstccdItem)
  27834 #else
  27835 /*** IUnknown methods ***/
  27836 static inline HRESULT INameSpaceTreeControlCustomDraw_QueryInterface(INameSpaceTreeControlCustomDraw* This,REFIID riid,void **ppvObject) {
  27837     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  27838 }
  27839 static inline ULONG INameSpaceTreeControlCustomDraw_AddRef(INameSpaceTreeControlCustomDraw* This) {
  27840     return This->lpVtbl->AddRef(This);
  27841 }
  27842 static inline ULONG INameSpaceTreeControlCustomDraw_Release(INameSpaceTreeControlCustomDraw* This) {
  27843     return This->lpVtbl->Release(This);
  27844 }
  27845 /*** INameSpaceTreeControlCustomDraw methods ***/
  27846 static inline HRESULT INameSpaceTreeControlCustomDraw_PrePaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc,LRESULT *plres) {
  27847     return This->lpVtbl->PrePaint(This,hdc,prc,plres);
  27848 }
  27849 static inline HRESULT INameSpaceTreeControlCustomDraw_PostPaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc) {
  27850     return This->lpVtbl->PostPaint(This,hdc,prc);
  27851 }
  27852 static inline HRESULT INameSpaceTreeControlCustomDraw_ItemPrePaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc,NSTCCUSTOMDRAW *pnstccdItem,COLORREF *pclrText,COLORREF *pclrTextBk,LRESULT *plres) {
  27853     return This->lpVtbl->ItemPrePaint(This,hdc,prc,pnstccdItem,pclrText,pclrTextBk,plres);
  27854 }
  27855 static inline HRESULT INameSpaceTreeControlCustomDraw_ItemPostPaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc,NSTCCUSTOMDRAW *pnstccdItem) {
  27856     return This->lpVtbl->ItemPostPaint(This,hdc,prc,pnstccdItem);
  27857 }
  27858 #endif
  27859 #endif
  27860 
  27861 #endif
  27862 
  27863 
  27864 #endif  /* __INameSpaceTreeControlCustomDraw_INTERFACE_DEFINED__ */
  27865 
  27866 
  27867 #if NTDDI_VERSION >= NTDDI_VISTA
  27868 /*****************************************************************************
  27869  * INameSpaceTreeControlFolderCapabilities interface
  27870  */
  27871 #ifndef __INameSpaceTreeControlFolderCapabilities_INTERFACE_DEFINED__
  27872 #define __INameSpaceTreeControlFolderCapabilities_INTERFACE_DEFINED__
  27873 
  27874 typedef enum NSTCFOLDERCAPABILITIES {
  27875     NSTCFC_NONE = 0x0,
  27876     NSTCFC_PINNEDITEMFILTERING = 0x1,
  27877     NSTCFC_DELAY_REGISTER_NOTIFY = 0x2
  27878 } NSTCFOLDERCAPABILITIES;
  27879 
  27880 DEFINE_ENUM_FLAG_OPERATORS(NSTCFOLDERCAPABILITIES)
  27881 
  27882 DEFINE_GUID(IID_INameSpaceTreeControlFolderCapabilities, 0xe9701183, 0xe6b3, 0x4ff2, 0x85,0x68, 0x81,0x36,0x15,0xfe,0xc7,0xbe);
  27883 #if defined(__cplusplus) && !defined(CINTERFACE)
  27884 MIDL_INTERFACE("e9701183-e6b3-4ff2-8568-813615fec7be")
  27885 INameSpaceTreeControlFolderCapabilities : public IUnknown
  27886 {
  27887     virtual HRESULT STDMETHODCALLTYPE GetFolderCapabilities(
  27888         NSTCFOLDERCAPABILITIES nfcMask,
  27889         NSTCFOLDERCAPABILITIES *pnfcValue) = 0;
  27890 
  27891 };
  27892 #ifdef __CRT_UUID_DECL
  27893 __CRT_UUID_DECL(INameSpaceTreeControlFolderCapabilities, 0xe9701183, 0xe6b3, 0x4ff2, 0x85,0x68, 0x81,0x36,0x15,0xfe,0xc7,0xbe)
  27894 #endif
  27895 #else
  27896 typedef struct INameSpaceTreeControlFolderCapabilitiesVtbl {
  27897     BEGIN_INTERFACE
  27898 
  27899     /*** IUnknown methods ***/
  27900     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  27901         INameSpaceTreeControlFolderCapabilities *This,
  27902         REFIID riid,
  27903         void **ppvObject);
  27904 
  27905     ULONG (STDMETHODCALLTYPE *AddRef)(
  27906         INameSpaceTreeControlFolderCapabilities *This);
  27907 
  27908     ULONG (STDMETHODCALLTYPE *Release)(
  27909         INameSpaceTreeControlFolderCapabilities *This);
  27910 
  27911     /*** INameSpaceTreeControlFolderCapabilities methods ***/
  27912     HRESULT (STDMETHODCALLTYPE *GetFolderCapabilities)(
  27913         INameSpaceTreeControlFolderCapabilities *This,
  27914         NSTCFOLDERCAPABILITIES nfcMask,
  27915         NSTCFOLDERCAPABILITIES *pnfcValue);
  27916 
  27917     END_INTERFACE
  27918 } INameSpaceTreeControlFolderCapabilitiesVtbl;
  27919 
  27920 interface INameSpaceTreeControlFolderCapabilities {
  27921     CONST_VTBL INameSpaceTreeControlFolderCapabilitiesVtbl* lpVtbl;
  27922 };
  27923 
  27924 #ifdef COBJMACROS
  27925 #ifndef WIDL_C_INLINE_WRAPPERS
  27926 /*** IUnknown methods ***/
  27927 #define INameSpaceTreeControlFolderCapabilities_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  27928 #define INameSpaceTreeControlFolderCapabilities_AddRef(This) (This)->lpVtbl->AddRef(This)
  27929 #define INameSpaceTreeControlFolderCapabilities_Release(This) (This)->lpVtbl->Release(This)
  27930 /*** INameSpaceTreeControlFolderCapabilities methods ***/
  27931 #define INameSpaceTreeControlFolderCapabilities_GetFolderCapabilities(This,nfcMask,pnfcValue) (This)->lpVtbl->GetFolderCapabilities(This,nfcMask,pnfcValue)
  27932 #else
  27933 /*** IUnknown methods ***/
  27934 static inline HRESULT INameSpaceTreeControlFolderCapabilities_QueryInterface(INameSpaceTreeControlFolderCapabilities* This,REFIID riid,void **ppvObject) {
  27935     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  27936 }
  27937 static inline ULONG INameSpaceTreeControlFolderCapabilities_AddRef(INameSpaceTreeControlFolderCapabilities* This) {
  27938     return This->lpVtbl->AddRef(This);
  27939 }
  27940 static inline ULONG INameSpaceTreeControlFolderCapabilities_Release(INameSpaceTreeControlFolderCapabilities* This) {
  27941     return This->lpVtbl->Release(This);
  27942 }
  27943 /*** INameSpaceTreeControlFolderCapabilities methods ***/
  27944 static inline HRESULT INameSpaceTreeControlFolderCapabilities_GetFolderCapabilities(INameSpaceTreeControlFolderCapabilities* This,NSTCFOLDERCAPABILITIES nfcMask,NSTCFOLDERCAPABILITIES *pnfcValue) {
  27945     return This->lpVtbl->GetFolderCapabilities(This,nfcMask,pnfcValue);
  27946 }
  27947 #endif
  27948 #endif
  27949 
  27950 #endif
  27951 
  27952 
  27953 #endif  /* __INameSpaceTreeControlFolderCapabilities_INTERFACE_DEFINED__ */
  27954 
  27955 #endif
  27956 
  27957 #define E_PREVIEWHANDLER_DRM_FAIL _HRESULT_TYPEDEF_(0x86420001L)
  27958 #define E_PREVIEWHANDLER_NOAUTH   _HRESULT_TYPEDEF_(0x86420002L)
  27959 #define E_PREVIEWHANDLER_NOTFOUND _HRESULT_TYPEDEF_(0x86420003L)
  27960 #define E_PREVIEWHANDLER_CORRUPT  _HRESULT_TYPEDEF_(0x86420004L)
  27961 
  27962 /*****************************************************************************
  27963  * IPreviewHandler interface
  27964  */
  27965 #ifndef __IPreviewHandler_INTERFACE_DEFINED__
  27966 #define __IPreviewHandler_INTERFACE_DEFINED__
  27967 
  27968 DEFINE_GUID(IID_IPreviewHandler, 0x8895b1c6, 0xb41f, 0x4c1c, 0xa5,0x62, 0x0d,0x56,0x42,0x50,0x83,0x6f);
  27969 #if defined(__cplusplus) && !defined(CINTERFACE)
  27970 MIDL_INTERFACE("8895b1c6-b41f-4c1c-a562-0d564250836f")
  27971 IPreviewHandler : public IUnknown
  27972 {
  27973     virtual HRESULT STDMETHODCALLTYPE SetWindow(
  27974         HWND hwnd,
  27975         const RECT *prc) = 0;
  27976 
  27977     virtual HRESULT STDMETHODCALLTYPE SetRect(
  27978         const RECT *prc) = 0;
  27979 
  27980     virtual HRESULT STDMETHODCALLTYPE DoPreview(
  27981         ) = 0;
  27982 
  27983     virtual HRESULT STDMETHODCALLTYPE Unload(
  27984         ) = 0;
  27985 
  27986     virtual HRESULT STDMETHODCALLTYPE SetFocus(
  27987         ) = 0;
  27988 
  27989     virtual HRESULT STDMETHODCALLTYPE QueryFocus(
  27990         HWND *phwnd) = 0;
  27991 
  27992     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
  27993         MSG *pmsg) = 0;
  27994 
  27995 };
  27996 #ifdef __CRT_UUID_DECL
  27997 __CRT_UUID_DECL(IPreviewHandler, 0x8895b1c6, 0xb41f, 0x4c1c, 0xa5,0x62, 0x0d,0x56,0x42,0x50,0x83,0x6f)
  27998 #endif
  27999 #else
  28000 typedef struct IPreviewHandlerVtbl {
  28001     BEGIN_INTERFACE
  28002 
  28003     /*** IUnknown methods ***/
  28004     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  28005         IPreviewHandler *This,
  28006         REFIID riid,
  28007         void **ppvObject);
  28008 
  28009     ULONG (STDMETHODCALLTYPE *AddRef)(
  28010         IPreviewHandler *This);
  28011 
  28012     ULONG (STDMETHODCALLTYPE *Release)(
  28013         IPreviewHandler *This);
  28014 
  28015     /*** IPreviewHandler methods ***/
  28016     HRESULT (STDMETHODCALLTYPE *SetWindow)(
  28017         IPreviewHandler *This,
  28018         HWND hwnd,
  28019         const RECT *prc);
  28020 
  28021     HRESULT (STDMETHODCALLTYPE *SetRect)(
  28022         IPreviewHandler *This,
  28023         const RECT *prc);
  28024 
  28025     HRESULT (STDMETHODCALLTYPE *DoPreview)(
  28026         IPreviewHandler *This);
  28027 
  28028     HRESULT (STDMETHODCALLTYPE *Unload)(
  28029         IPreviewHandler *This);
  28030 
  28031     HRESULT (STDMETHODCALLTYPE *SetFocus)(
  28032         IPreviewHandler *This);
  28033 
  28034     HRESULT (STDMETHODCALLTYPE *QueryFocus)(
  28035         IPreviewHandler *This,
  28036         HWND *phwnd);
  28037 
  28038     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
  28039         IPreviewHandler *This,
  28040         MSG *pmsg);
  28041 
  28042     END_INTERFACE
  28043 } IPreviewHandlerVtbl;
  28044 
  28045 interface IPreviewHandler {
  28046     CONST_VTBL IPreviewHandlerVtbl* lpVtbl;
  28047 };
  28048 
  28049 #ifdef COBJMACROS
  28050 #ifndef WIDL_C_INLINE_WRAPPERS
  28051 /*** IUnknown methods ***/
  28052 #define IPreviewHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  28053 #define IPreviewHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
  28054 #define IPreviewHandler_Release(This) (This)->lpVtbl->Release(This)
  28055 /*** IPreviewHandler methods ***/
  28056 #define IPreviewHandler_SetWindow(This,hwnd,prc) (This)->lpVtbl->SetWindow(This,hwnd,prc)
  28057 #define IPreviewHandler_SetRect(This,prc) (This)->lpVtbl->SetRect(This,prc)
  28058 #define IPreviewHandler_DoPreview(This) (This)->lpVtbl->DoPreview(This)
  28059 #define IPreviewHandler_Unload(This) (This)->lpVtbl->Unload(This)
  28060 #define IPreviewHandler_SetFocus(This) (This)->lpVtbl->SetFocus(This)
  28061 #define IPreviewHandler_QueryFocus(This,phwnd) (This)->lpVtbl->QueryFocus(This,phwnd)
  28062 #define IPreviewHandler_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
  28063 #else
  28064 /*** IUnknown methods ***/
  28065 static inline HRESULT IPreviewHandler_QueryInterface(IPreviewHandler* This,REFIID riid,void **ppvObject) {
  28066     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  28067 }
  28068 static inline ULONG IPreviewHandler_AddRef(IPreviewHandler* This) {
  28069     return This->lpVtbl->AddRef(This);
  28070 }
  28071 static inline ULONG IPreviewHandler_Release(IPreviewHandler* This) {
  28072     return This->lpVtbl->Release(This);
  28073 }
  28074 /*** IPreviewHandler methods ***/
  28075 static inline HRESULT IPreviewHandler_SetWindow(IPreviewHandler* This,HWND hwnd,const RECT *prc) {
  28076     return This->lpVtbl->SetWindow(This,hwnd,prc);
  28077 }
  28078 static inline HRESULT IPreviewHandler_SetRect(IPreviewHandler* This,const RECT *prc) {
  28079     return This->lpVtbl->SetRect(This,prc);
  28080 }
  28081 static inline HRESULT IPreviewHandler_DoPreview(IPreviewHandler* This) {
  28082     return This->lpVtbl->DoPreview(This);
  28083 }
  28084 static inline HRESULT IPreviewHandler_Unload(IPreviewHandler* This) {
  28085     return This->lpVtbl->Unload(This);
  28086 }
  28087 static inline HRESULT IPreviewHandler_SetFocus(IPreviewHandler* This) {
  28088     return This->lpVtbl->SetFocus(This);
  28089 }
  28090 static inline HRESULT IPreviewHandler_QueryFocus(IPreviewHandler* This,HWND *phwnd) {
  28091     return This->lpVtbl->QueryFocus(This,phwnd);
  28092 }
  28093 static inline HRESULT IPreviewHandler_TranslateAccelerator(IPreviewHandler* This,MSG *pmsg) {
  28094     return This->lpVtbl->TranslateAccelerator(This,pmsg);
  28095 }
  28096 #endif
  28097 #endif
  28098 
  28099 #endif
  28100 
  28101 
  28102 #endif  /* __IPreviewHandler_INTERFACE_DEFINED__ */
  28103 
  28104 
  28105 /*****************************************************************************
  28106  * IPreviewHandlerFrame interface
  28107  */
  28108 #ifndef __IPreviewHandlerFrame_INTERFACE_DEFINED__
  28109 #define __IPreviewHandlerFrame_INTERFACE_DEFINED__
  28110 
  28111 typedef struct PREVIEWHANDLERFRAMEINFO {
  28112     HACCEL haccel;
  28113     UINT cAccelEntries;
  28114 } PREVIEWHANDLERFRAMEINFO;
  28115 
  28116 DEFINE_GUID(IID_IPreviewHandlerFrame, 0xfec87aaf, 0x35f9, 0x447a, 0xad,0xb7, 0x20,0x23,0x44,0x91,0x40,0x1a);
  28117 #if defined(__cplusplus) && !defined(CINTERFACE)
  28118 MIDL_INTERFACE("fec87aaf-35f9-447a-adb7-20234491401a")
  28119 IPreviewHandlerFrame : public IUnknown
  28120 {
  28121     virtual HRESULT STDMETHODCALLTYPE GetWindowContext(
  28122         PREVIEWHANDLERFRAMEINFO *pinfo) = 0;
  28123 
  28124     virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
  28125         MSG *pmsg) = 0;
  28126 
  28127 };
  28128 #ifdef __CRT_UUID_DECL
  28129 __CRT_UUID_DECL(IPreviewHandlerFrame, 0xfec87aaf, 0x35f9, 0x447a, 0xad,0xb7, 0x20,0x23,0x44,0x91,0x40,0x1a)
  28130 #endif
  28131 #else
  28132 typedef struct IPreviewHandlerFrameVtbl {
  28133     BEGIN_INTERFACE
  28134 
  28135     /*** IUnknown methods ***/
  28136     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  28137         IPreviewHandlerFrame *This,
  28138         REFIID riid,
  28139         void **ppvObject);
  28140 
  28141     ULONG (STDMETHODCALLTYPE *AddRef)(
  28142         IPreviewHandlerFrame *This);
  28143 
  28144     ULONG (STDMETHODCALLTYPE *Release)(
  28145         IPreviewHandlerFrame *This);
  28146 
  28147     /*** IPreviewHandlerFrame methods ***/
  28148     HRESULT (STDMETHODCALLTYPE *GetWindowContext)(
  28149         IPreviewHandlerFrame *This,
  28150         PREVIEWHANDLERFRAMEINFO *pinfo);
  28151 
  28152     HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
  28153         IPreviewHandlerFrame *This,
  28154         MSG *pmsg);
  28155 
  28156     END_INTERFACE
  28157 } IPreviewHandlerFrameVtbl;
  28158 
  28159 interface IPreviewHandlerFrame {
  28160     CONST_VTBL IPreviewHandlerFrameVtbl* lpVtbl;
  28161 };
  28162 
  28163 #ifdef COBJMACROS
  28164 #ifndef WIDL_C_INLINE_WRAPPERS
  28165 /*** IUnknown methods ***/
  28166 #define IPreviewHandlerFrame_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  28167 #define IPreviewHandlerFrame_AddRef(This) (This)->lpVtbl->AddRef(This)
  28168 #define IPreviewHandlerFrame_Release(This) (This)->lpVtbl->Release(This)
  28169 /*** IPreviewHandlerFrame methods ***/
  28170 #define IPreviewHandlerFrame_GetWindowContext(This,pinfo) (This)->lpVtbl->GetWindowContext(This,pinfo)
  28171 #define IPreviewHandlerFrame_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
  28172 #else
  28173 /*** IUnknown methods ***/
  28174 static inline HRESULT IPreviewHandlerFrame_QueryInterface(IPreviewHandlerFrame* This,REFIID riid,void **ppvObject) {
  28175     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  28176 }
  28177 static inline ULONG IPreviewHandlerFrame_AddRef(IPreviewHandlerFrame* This) {
  28178     return This->lpVtbl->AddRef(This);
  28179 }
  28180 static inline ULONG IPreviewHandlerFrame_Release(IPreviewHandlerFrame* This) {
  28181     return This->lpVtbl->Release(This);
  28182 }
  28183 /*** IPreviewHandlerFrame methods ***/
  28184 static inline HRESULT IPreviewHandlerFrame_GetWindowContext(IPreviewHandlerFrame* This,PREVIEWHANDLERFRAMEINFO *pinfo) {
  28185     return This->lpVtbl->GetWindowContext(This,pinfo);
  28186 }
  28187 static inline HRESULT IPreviewHandlerFrame_TranslateAccelerator(IPreviewHandlerFrame* This,MSG *pmsg) {
  28188     return This->lpVtbl->TranslateAccelerator(This,pmsg);
  28189 }
  28190 #endif
  28191 #endif
  28192 
  28193 #endif
  28194 
  28195 
  28196 #endif  /* __IPreviewHandlerFrame_INTERFACE_DEFINED__ */
  28197 
  28198 
  28199 #if NTDDI_VERSION >= NTDDI_VISTA
  28200 /*****************************************************************************
  28201  * ITrayDeskBand interface
  28202  */
  28203 #ifndef __ITrayDeskBand_INTERFACE_DEFINED__
  28204 #define __ITrayDeskBand_INTERFACE_DEFINED__
  28205 
  28206 DEFINE_GUID(IID_ITrayDeskBand, 0x6d67e846, 0x5b9c, 0x4db8, 0x9c,0xbc, 0xdd,0xe1,0x2f,0x42,0x54,0xf1);
  28207 #if defined(__cplusplus) && !defined(CINTERFACE)
  28208 MIDL_INTERFACE("6d67e846-5b9c-4db8-9cbc-dde12f4254f1")
  28209 ITrayDeskBand : public IUnknown
  28210 {
  28211     virtual HRESULT STDMETHODCALLTYPE ShowDeskBand(
  28212         REFCLSID clsid) = 0;
  28213 
  28214     virtual HRESULT STDMETHODCALLTYPE HideDeskBand(
  28215         REFCLSID clsid) = 0;
  28216 
  28217     virtual HRESULT STDMETHODCALLTYPE IsDeskBandShown(
  28218         REFCLSID clsid) = 0;
  28219 
  28220     virtual HRESULT STDMETHODCALLTYPE DeskBandRegistrationChanged(
  28221         ) = 0;
  28222 
  28223 };
  28224 #ifdef __CRT_UUID_DECL
  28225 __CRT_UUID_DECL(ITrayDeskBand, 0x6d67e846, 0x5b9c, 0x4db8, 0x9c,0xbc, 0xdd,0xe1,0x2f,0x42,0x54,0xf1)
  28226 #endif
  28227 #else
  28228 typedef struct ITrayDeskBandVtbl {
  28229     BEGIN_INTERFACE
  28230 
  28231     /*** IUnknown methods ***/
  28232     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  28233         ITrayDeskBand *This,
  28234         REFIID riid,
  28235         void **ppvObject);
  28236 
  28237     ULONG (STDMETHODCALLTYPE *AddRef)(
  28238         ITrayDeskBand *This);
  28239 
  28240     ULONG (STDMETHODCALLTYPE *Release)(
  28241         ITrayDeskBand *This);
  28242 
  28243     /*** ITrayDeskBand methods ***/
  28244     HRESULT (STDMETHODCALLTYPE *ShowDeskBand)(
  28245         ITrayDeskBand *This,
  28246         REFCLSID clsid);
  28247 
  28248     HRESULT (STDMETHODCALLTYPE *HideDeskBand)(
  28249         ITrayDeskBand *This,
  28250         REFCLSID clsid);
  28251 
  28252     HRESULT (STDMETHODCALLTYPE *IsDeskBandShown)(
  28253         ITrayDeskBand *This,
  28254         REFCLSID clsid);
  28255 
  28256     HRESULT (STDMETHODCALLTYPE *DeskBandRegistrationChanged)(
  28257         ITrayDeskBand *This);
  28258 
  28259     END_INTERFACE
  28260 } ITrayDeskBandVtbl;
  28261 
  28262 interface ITrayDeskBand {
  28263     CONST_VTBL ITrayDeskBandVtbl* lpVtbl;
  28264 };
  28265 
  28266 #ifdef COBJMACROS
  28267 #ifndef WIDL_C_INLINE_WRAPPERS
  28268 /*** IUnknown methods ***/
  28269 #define ITrayDeskBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  28270 #define ITrayDeskBand_AddRef(This) (This)->lpVtbl->AddRef(This)
  28271 #define ITrayDeskBand_Release(This) (This)->lpVtbl->Release(This)
  28272 /*** ITrayDeskBand methods ***/
  28273 #define ITrayDeskBand_ShowDeskBand(This,clsid) (This)->lpVtbl->ShowDeskBand(This,clsid)
  28274 #define ITrayDeskBand_HideDeskBand(This,clsid) (This)->lpVtbl->HideDeskBand(This,clsid)
  28275 #define ITrayDeskBand_IsDeskBandShown(This,clsid) (This)->lpVtbl->IsDeskBandShown(This,clsid)
  28276 #define ITrayDeskBand_DeskBandRegistrationChanged(This) (This)->lpVtbl->DeskBandRegistrationChanged(This)
  28277 #else
  28278 /*** IUnknown methods ***/
  28279 static inline HRESULT ITrayDeskBand_QueryInterface(ITrayDeskBand* This,REFIID riid,void **ppvObject) {
  28280     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  28281 }
  28282 static inline ULONG ITrayDeskBand_AddRef(ITrayDeskBand* This) {
  28283     return This->lpVtbl->AddRef(This);
  28284 }
  28285 static inline ULONG ITrayDeskBand_Release(ITrayDeskBand* This) {
  28286     return This->lpVtbl->Release(This);
  28287 }
  28288 /*** ITrayDeskBand methods ***/
  28289 static inline HRESULT ITrayDeskBand_ShowDeskBand(ITrayDeskBand* This,REFCLSID clsid) {
  28290     return This->lpVtbl->ShowDeskBand(This,clsid);
  28291 }
  28292 static inline HRESULT ITrayDeskBand_HideDeskBand(ITrayDeskBand* This,REFCLSID clsid) {
  28293     return This->lpVtbl->HideDeskBand(This,clsid);
  28294 }
  28295 static inline HRESULT ITrayDeskBand_IsDeskBandShown(ITrayDeskBand* This,REFCLSID clsid) {
  28296     return This->lpVtbl->IsDeskBandShown(This,clsid);
  28297 }
  28298 static inline HRESULT ITrayDeskBand_DeskBandRegistrationChanged(ITrayDeskBand* This) {
  28299     return This->lpVtbl->DeskBandRegistrationChanged(This);
  28300 }
  28301 #endif
  28302 #endif
  28303 
  28304 #endif
  28305 
  28306 
  28307 #endif  /* __ITrayDeskBand_INTERFACE_DEFINED__ */
  28308 
  28309 
  28310 /*****************************************************************************
  28311  * IBandHost interface
  28312  */
  28313 #ifndef __IBandHost_INTERFACE_DEFINED__
  28314 #define __IBandHost_INTERFACE_DEFINED__
  28315 
  28316 DEFINE_GUID(IID_IBandHost, 0xb9075c7c, 0xd48e, 0x403f, 0xab,0x99, 0xd6,0xc7,0x7a,0x10,0x84,0xac);
  28317 #if defined(__cplusplus) && !defined(CINTERFACE)
  28318 MIDL_INTERFACE("b9075c7c-d48e-403f-ab99-d6c77a1084ac")
  28319 IBandHost : public IUnknown
  28320 {
  28321     virtual HRESULT STDMETHODCALLTYPE CreateBand(
  28322         REFCLSID rclsidBand,
  28323         WINBOOL fAvailable,
  28324         WINBOOL fVisible,
  28325         REFIID riid,
  28326         void **ppv) = 0;
  28327 
  28328     virtual HRESULT STDMETHODCALLTYPE SetBandAvailability(
  28329         REFCLSID rclsidBand,
  28330         WINBOOL fAvailable) = 0;
  28331 
  28332     virtual HRESULT STDMETHODCALLTYPE DestroyBand(
  28333         REFCLSID rclsidBand) = 0;
  28334 
  28335 };
  28336 #ifdef __CRT_UUID_DECL
  28337 __CRT_UUID_DECL(IBandHost, 0xb9075c7c, 0xd48e, 0x403f, 0xab,0x99, 0xd6,0xc7,0x7a,0x10,0x84,0xac)
  28338 #endif
  28339 #else
  28340 typedef struct IBandHostVtbl {
  28341     BEGIN_INTERFACE
  28342 
  28343     /*** IUnknown methods ***/
  28344     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  28345         IBandHost *This,
  28346         REFIID riid,
  28347         void **ppvObject);
  28348 
  28349     ULONG (STDMETHODCALLTYPE *AddRef)(
  28350         IBandHost *This);
  28351 
  28352     ULONG (STDMETHODCALLTYPE *Release)(
  28353         IBandHost *This);
  28354 
  28355     /*** IBandHost methods ***/
  28356     HRESULT (STDMETHODCALLTYPE *CreateBand)(
  28357         IBandHost *This,
  28358         REFCLSID rclsidBand,
  28359         WINBOOL fAvailable,
  28360         WINBOOL fVisible,
  28361         REFIID riid,
  28362         void **ppv);
  28363 
  28364     HRESULT (STDMETHODCALLTYPE *SetBandAvailability)(
  28365         IBandHost *This,
  28366         REFCLSID rclsidBand,
  28367         WINBOOL fAvailable);
  28368 
  28369     HRESULT (STDMETHODCALLTYPE *DestroyBand)(
  28370         IBandHost *This,
  28371         REFCLSID rclsidBand);
  28372 
  28373     END_INTERFACE
  28374 } IBandHostVtbl;
  28375 
  28376 interface IBandHost {
  28377     CONST_VTBL IBandHostVtbl* lpVtbl;
  28378 };
  28379 
  28380 #ifdef COBJMACROS
  28381 #ifndef WIDL_C_INLINE_WRAPPERS
  28382 /*** IUnknown methods ***/
  28383 #define IBandHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  28384 #define IBandHost_AddRef(This) (This)->lpVtbl->AddRef(This)
  28385 #define IBandHost_Release(This) (This)->lpVtbl->Release(This)
  28386 /*** IBandHost methods ***/
  28387 #define IBandHost_CreateBand(This,rclsidBand,fAvailable,fVisible,riid,ppv) (This)->lpVtbl->CreateBand(This,rclsidBand,fAvailable,fVisible,riid,ppv)
  28388 #define IBandHost_SetBandAvailability(This,rclsidBand,fAvailable) (This)->lpVtbl->SetBandAvailability(This,rclsidBand,fAvailable)
  28389 #define IBandHost_DestroyBand(This,rclsidBand) (This)->lpVtbl->DestroyBand(This,rclsidBand)
  28390 #else
  28391 /*** IUnknown methods ***/
  28392 static inline HRESULT IBandHost_QueryInterface(IBandHost* This,REFIID riid,void **ppvObject) {
  28393     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  28394 }
  28395 static inline ULONG IBandHost_AddRef(IBandHost* This) {
  28396     return This->lpVtbl->AddRef(This);
  28397 }
  28398 static inline ULONG IBandHost_Release(IBandHost* This) {
  28399     return This->lpVtbl->Release(This);
  28400 }
  28401 /*** IBandHost methods ***/
  28402 static inline HRESULT IBandHost_CreateBand(IBandHost* This,REFCLSID rclsidBand,WINBOOL fAvailable,WINBOOL fVisible,REFIID riid,void **ppv) {
  28403     return This->lpVtbl->CreateBand(This,rclsidBand,fAvailable,fVisible,riid,ppv);
  28404 }
  28405 static inline HRESULT IBandHost_SetBandAvailability(IBandHost* This,REFCLSID rclsidBand,WINBOOL fAvailable) {
  28406     return This->lpVtbl->SetBandAvailability(This,rclsidBand,fAvailable);
  28407 }
  28408 static inline HRESULT IBandHost_DestroyBand(IBandHost* This,REFCLSID rclsidBand) {
  28409     return This->lpVtbl->DestroyBand(This,rclsidBand);
  28410 }
  28411 #endif
  28412 #endif
  28413 
  28414 #endif
  28415 
  28416 
  28417 #endif  /* __IBandHost_INTERFACE_DEFINED__ */
  28418 
  28419 
  28420 #define SID_SBandHost IID_IBandHost
  28421 
  28422 typedef GUID EXPLORERPANE;
  28423 
  28424 #if 0
  28425 typedef EXPLORERPANE *REFEXPLORERPANE;
  28426 #endif
  28427 
  28428 #ifdef __cplusplus
  28429 #define REFEXPLORERPANE const EXPLORERPANE &
  28430 #else
  28431 #define REFEXPLORERPANE const EXPLORERPANE * __MIDL_CONST
  28432 #endif
  28433 
  28434 /*****************************************************************************
  28435  * IExplorerPaneVisibility interface
  28436  */
  28437 #ifndef __IExplorerPaneVisibility_INTERFACE_DEFINED__
  28438 #define __IExplorerPaneVisibility_INTERFACE_DEFINED__
  28439 
  28440 enum _EXPLORERPANESTATE {
  28441     EPS_DONTCARE = 0x0,
  28442     EPS_DEFAULT_ON = 0x1,
  28443     EPS_DEFAULT_OFF = 0x2,
  28444     EPS_STATEMASK = 0xffff,
  28445     EPS_INITIALSTATE = 0x10000,
  28446     EPS_FORCE = 0x20000
  28447 };
  28448 
  28449 typedef DWORD EXPLORERPANESTATE;
  28450 
  28451 DEFINE_GUID(IID_IExplorerPaneVisibility, 0xe07010ec, 0xbc17, 0x44c0, 0x97,0xb0, 0x46,0xc7,0xc9,0x5b,0x9e,0xdc);
  28452 #if defined(__cplusplus) && !defined(CINTERFACE)
  28453 MIDL_INTERFACE("e07010ec-bc17-44c0-97b0-46c7c95b9edc")
  28454 IExplorerPaneVisibility : public IUnknown
  28455 {
  28456     virtual HRESULT STDMETHODCALLTYPE GetPaneState(
  28457         REFEXPLORERPANE ep,
  28458         EXPLORERPANESTATE *peps) = 0;
  28459 
  28460 };
  28461 #ifdef __CRT_UUID_DECL
  28462 __CRT_UUID_DECL(IExplorerPaneVisibility, 0xe07010ec, 0xbc17, 0x44c0, 0x97,0xb0, 0x46,0xc7,0xc9,0x5b,0x9e,0xdc)
  28463 #endif
  28464 #else
  28465 typedef struct IExplorerPaneVisibilityVtbl {
  28466     BEGIN_INTERFACE
  28467 
  28468     /*** IUnknown methods ***/
  28469     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  28470         IExplorerPaneVisibility *This,
  28471         REFIID riid,
  28472         void **ppvObject);
  28473 
  28474     ULONG (STDMETHODCALLTYPE *AddRef)(
  28475         IExplorerPaneVisibility *This);
  28476 
  28477     ULONG (STDMETHODCALLTYPE *Release)(
  28478         IExplorerPaneVisibility *This);
  28479 
  28480     /*** IExplorerPaneVisibility methods ***/
  28481     HRESULT (STDMETHODCALLTYPE *GetPaneState)(
  28482         IExplorerPaneVisibility *This,
  28483         REFEXPLORERPANE ep,
  28484         EXPLORERPANESTATE *peps);
  28485 
  28486     END_INTERFACE
  28487 } IExplorerPaneVisibilityVtbl;
  28488 
  28489 interface IExplorerPaneVisibility {
  28490     CONST_VTBL IExplorerPaneVisibilityVtbl* lpVtbl;
  28491 };
  28492 
  28493 #ifdef COBJMACROS
  28494 #ifndef WIDL_C_INLINE_WRAPPERS
  28495 /*** IUnknown methods ***/
  28496 #define IExplorerPaneVisibility_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  28497 #define IExplorerPaneVisibility_AddRef(This) (This)->lpVtbl->AddRef(This)
  28498 #define IExplorerPaneVisibility_Release(This) (This)->lpVtbl->Release(This)
  28499 /*** IExplorerPaneVisibility methods ***/
  28500 #define IExplorerPaneVisibility_GetPaneState(This,ep,peps) (This)->lpVtbl->GetPaneState(This,ep,peps)
  28501 #else
  28502 /*** IUnknown methods ***/
  28503 static inline HRESULT IExplorerPaneVisibility_QueryInterface(IExplorerPaneVisibility* This,REFIID riid,void **ppvObject) {
  28504     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  28505 }
  28506 static inline ULONG IExplorerPaneVisibility_AddRef(IExplorerPaneVisibility* This) {
  28507     return This->lpVtbl->AddRef(This);
  28508 }
  28509 static inline ULONG IExplorerPaneVisibility_Release(IExplorerPaneVisibility* This) {
  28510     return This->lpVtbl->Release(This);
  28511 }
  28512 /*** IExplorerPaneVisibility methods ***/
  28513 static inline HRESULT IExplorerPaneVisibility_GetPaneState(IExplorerPaneVisibility* This,REFEXPLORERPANE ep,EXPLORERPANESTATE *peps) {
  28514     return This->lpVtbl->GetPaneState(This,ep,peps);
  28515 }
  28516 #endif
  28517 #endif
  28518 
  28519 #endif
  28520 
  28521 
  28522 #endif  /* __IExplorerPaneVisibility_INTERFACE_DEFINED__ */
  28523 
  28524 
  28525 #define SID_ExplorerPaneVisibility IID_IExplorerPaneVisibility
  28526 
  28527 /*****************************************************************************
  28528  * IContextMenuCB interface
  28529  */
  28530 #ifndef __IContextMenuCB_INTERFACE_DEFINED__
  28531 #define __IContextMenuCB_INTERFACE_DEFINED__
  28532 
  28533 DEFINE_GUID(IID_IContextMenuCB, 0x3409e930, 0x5a39, 0x11d1, 0x83,0xfa, 0x00,0xa0,0xc9,0x0d,0xc8,0x49);
  28534 #if defined(__cplusplus) && !defined(CINTERFACE)
  28535 MIDL_INTERFACE("3409e930-5a39-11d1-83fa-00a0c90dc849")
  28536 IContextMenuCB : public IUnknown
  28537 {
  28538     virtual HRESULT STDMETHODCALLTYPE CallBack(
  28539         IShellFolder *psf,
  28540         HWND hwndOwner,
  28541         IDataObject *pdtobj,
  28542         UINT uMsg,
  28543         WPARAM wParam,
  28544         LPARAM lParam) = 0;
  28545 
  28546 };
  28547 #ifdef __CRT_UUID_DECL
  28548 __CRT_UUID_DECL(IContextMenuCB, 0x3409e930, 0x5a39, 0x11d1, 0x83,0xfa, 0x00,0xa0,0xc9,0x0d,0xc8,0x49)
  28549 #endif
  28550 #else
  28551 typedef struct IContextMenuCBVtbl {
  28552     BEGIN_INTERFACE
  28553 
  28554     /*** IUnknown methods ***/
  28555     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  28556         IContextMenuCB *This,
  28557         REFIID riid,
  28558         void **ppvObject);
  28559 
  28560     ULONG (STDMETHODCALLTYPE *AddRef)(
  28561         IContextMenuCB *This);
  28562 
  28563     ULONG (STDMETHODCALLTYPE *Release)(
  28564         IContextMenuCB *This);
  28565 
  28566     /*** IContextMenuCB methods ***/
  28567     HRESULT (STDMETHODCALLTYPE *CallBack)(
  28568         IContextMenuCB *This,
  28569         IShellFolder *psf,
  28570         HWND hwndOwner,
  28571         IDataObject *pdtobj,
  28572         UINT uMsg,
  28573         WPARAM wParam,
  28574         LPARAM lParam);
  28575 
  28576     END_INTERFACE
  28577 } IContextMenuCBVtbl;
  28578 
  28579 interface IContextMenuCB {
  28580     CONST_VTBL IContextMenuCBVtbl* lpVtbl;
  28581 };
  28582 
  28583 #ifdef COBJMACROS
  28584 #ifndef WIDL_C_INLINE_WRAPPERS
  28585 /*** IUnknown methods ***/
  28586 #define IContextMenuCB_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  28587 #define IContextMenuCB_AddRef(This) (This)->lpVtbl->AddRef(This)
  28588 #define IContextMenuCB_Release(This) (This)->lpVtbl->Release(This)
  28589 /*** IContextMenuCB methods ***/
  28590 #define IContextMenuCB_CallBack(This,psf,hwndOwner,pdtobj,uMsg,wParam,lParam) (This)->lpVtbl->CallBack(This,psf,hwndOwner,pdtobj,uMsg,wParam,lParam)
  28591 #else
  28592 /*** IUnknown methods ***/
  28593 static inline HRESULT IContextMenuCB_QueryInterface(IContextMenuCB* This,REFIID riid,void **ppvObject) {
  28594     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  28595 }
  28596 static inline ULONG IContextMenuCB_AddRef(IContextMenuCB* This) {
  28597     return This->lpVtbl->AddRef(This);
  28598 }
  28599 static inline ULONG IContextMenuCB_Release(IContextMenuCB* This) {
  28600     return This->lpVtbl->Release(This);
  28601 }
  28602 /*** IContextMenuCB methods ***/
  28603 static inline HRESULT IContextMenuCB_CallBack(IContextMenuCB* This,IShellFolder *psf,HWND hwndOwner,IDataObject *pdtobj,UINT uMsg,WPARAM wParam,LPARAM lParam) {
  28604     return This->lpVtbl->CallBack(This,psf,hwndOwner,pdtobj,uMsg,wParam,lParam);
  28605 }
  28606 #endif
  28607 #endif
  28608 
  28609 #endif
  28610 
  28611 
  28612 #endif  /* __IContextMenuCB_INTERFACE_DEFINED__ */
  28613 
  28614 #endif
  28615 
  28616 /*****************************************************************************
  28617  * IDefaultExtractIconInit interface
  28618  */
  28619 #ifndef __IDefaultExtractIconInit_INTERFACE_DEFINED__
  28620 #define __IDefaultExtractIconInit_INTERFACE_DEFINED__
  28621 
  28622 DEFINE_GUID(IID_IDefaultExtractIconInit, 0x41ded17d, 0xd6b3, 0x4261, 0x99,0x7d, 0x88,0xc6,0x0e,0x4b,0x1d,0x58);
  28623 #if defined(__cplusplus) && !defined(CINTERFACE)
  28624 MIDL_INTERFACE("41ded17d-d6b3-4261-997d-88c60e4b1d58")
  28625 IDefaultExtractIconInit : public IUnknown
  28626 {
  28627     virtual HRESULT STDMETHODCALLTYPE SetFlags(
  28628         UINT uFlags) = 0;
  28629 
  28630     virtual HRESULT STDMETHODCALLTYPE SetKey(
  28631         HKEY hkey) = 0;
  28632 
  28633     virtual HRESULT STDMETHODCALLTYPE SetNormalIcon(
  28634         LPCWSTR pszFile,
  28635         int iIcon) = 0;
  28636 
  28637     virtual HRESULT STDMETHODCALLTYPE SetOpenIcon(
  28638         LPCWSTR pszFile,
  28639         int iIcon) = 0;
  28640 
  28641     virtual HRESULT STDMETHODCALLTYPE SetShortcutIcon(
  28642         LPCWSTR pszFile,
  28643         int iIcon) = 0;
  28644 
  28645     virtual HRESULT STDMETHODCALLTYPE SetDefaultIcon(
  28646         LPCWSTR pszFile,
  28647         int iIcon) = 0;
  28648 
  28649 };
  28650 #ifdef __CRT_UUID_DECL
  28651 __CRT_UUID_DECL(IDefaultExtractIconInit, 0x41ded17d, 0xd6b3, 0x4261, 0x99,0x7d, 0x88,0xc6,0x0e,0x4b,0x1d,0x58)
  28652 #endif
  28653 #else
  28654 typedef struct IDefaultExtractIconInitVtbl {
  28655     BEGIN_INTERFACE
  28656 
  28657     /*** IUnknown methods ***/
  28658     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  28659         IDefaultExtractIconInit *This,
  28660         REFIID riid,
  28661         void **ppvObject);
  28662 
  28663     ULONG (STDMETHODCALLTYPE *AddRef)(
  28664         IDefaultExtractIconInit *This);
  28665 
  28666     ULONG (STDMETHODCALLTYPE *Release)(
  28667         IDefaultExtractIconInit *This);
  28668 
  28669     /*** IDefaultExtractIconInit methods ***/
  28670     HRESULT (STDMETHODCALLTYPE *SetFlags)(
  28671         IDefaultExtractIconInit *This,
  28672         UINT uFlags);
  28673 
  28674     HRESULT (STDMETHODCALLTYPE *SetKey)(
  28675         IDefaultExtractIconInit *This,
  28676         HKEY hkey);
  28677 
  28678     HRESULT (STDMETHODCALLTYPE *SetNormalIcon)(
  28679         IDefaultExtractIconInit *This,
  28680         LPCWSTR pszFile,
  28681         int iIcon);
  28682 
  28683     HRESULT (STDMETHODCALLTYPE *SetOpenIcon)(
  28684         IDefaultExtractIconInit *This,
  28685         LPCWSTR pszFile,
  28686         int iIcon);
  28687 
  28688     HRESULT (STDMETHODCALLTYPE *SetShortcutIcon)(
  28689         IDefaultExtractIconInit *This,
  28690         LPCWSTR pszFile,
  28691         int iIcon);
  28692 
  28693     HRESULT (STDMETHODCALLTYPE *SetDefaultIcon)(
  28694         IDefaultExtractIconInit *This,
  28695         LPCWSTR pszFile,
  28696         int iIcon);
  28697 
  28698     END_INTERFACE
  28699 } IDefaultExtractIconInitVtbl;
  28700 
  28701 interface IDefaultExtractIconInit {
  28702     CONST_VTBL IDefaultExtractIconInitVtbl* lpVtbl;
  28703 };
  28704 
  28705 #ifdef COBJMACROS
  28706 #ifndef WIDL_C_INLINE_WRAPPERS
  28707 /*** IUnknown methods ***/
  28708 #define IDefaultExtractIconInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  28709 #define IDefaultExtractIconInit_AddRef(This) (This)->lpVtbl->AddRef(This)
  28710 #define IDefaultExtractIconInit_Release(This) (This)->lpVtbl->Release(This)
  28711 /*** IDefaultExtractIconInit methods ***/
  28712 #define IDefaultExtractIconInit_SetFlags(This,uFlags) (This)->lpVtbl->SetFlags(This,uFlags)
  28713 #define IDefaultExtractIconInit_SetKey(This,hkey) (This)->lpVtbl->SetKey(This,hkey)
  28714 #define IDefaultExtractIconInit_SetNormalIcon(This,pszFile,iIcon) (This)->lpVtbl->SetNormalIcon(This,pszFile,iIcon)
  28715 #define IDefaultExtractIconInit_SetOpenIcon(This,pszFile,iIcon) (This)->lpVtbl->SetOpenIcon(This,pszFile,iIcon)
  28716 #define IDefaultExtractIconInit_SetShortcutIcon(This,pszFile,iIcon) (This)->lpVtbl->SetShortcutIcon(This,pszFile,iIcon)
  28717 #define IDefaultExtractIconInit_SetDefaultIcon(This,pszFile,iIcon) (This)->lpVtbl->SetDefaultIcon(This,pszFile,iIcon)
  28718 #else
  28719 /*** IUnknown methods ***/
  28720 static inline HRESULT IDefaultExtractIconInit_QueryInterface(IDefaultExtractIconInit* This,REFIID riid,void **ppvObject) {
  28721     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  28722 }
  28723 static inline ULONG IDefaultExtractIconInit_AddRef(IDefaultExtractIconInit* This) {
  28724     return This->lpVtbl->AddRef(This);
  28725 }
  28726 static inline ULONG IDefaultExtractIconInit_Release(IDefaultExtractIconInit* This) {
  28727     return This->lpVtbl->Release(This);
  28728 }
  28729 /*** IDefaultExtractIconInit methods ***/
  28730 static inline HRESULT IDefaultExtractIconInit_SetFlags(IDefaultExtractIconInit* This,UINT uFlags) {
  28731     return This->lpVtbl->SetFlags(This,uFlags);
  28732 }
  28733 static inline HRESULT IDefaultExtractIconInit_SetKey(IDefaultExtractIconInit* This,HKEY hkey) {
  28734     return This->lpVtbl->SetKey(This,hkey);
  28735 }
  28736 static inline HRESULT IDefaultExtractIconInit_SetNormalIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
  28737     return This->lpVtbl->SetNormalIcon(This,pszFile,iIcon);
  28738 }
  28739 static inline HRESULT IDefaultExtractIconInit_SetOpenIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
  28740     return This->lpVtbl->SetOpenIcon(This,pszFile,iIcon);
  28741 }
  28742 static inline HRESULT IDefaultExtractIconInit_SetShortcutIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
  28743     return This->lpVtbl->SetShortcutIcon(This,pszFile,iIcon);
  28744 }
  28745 static inline HRESULT IDefaultExtractIconInit_SetDefaultIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
  28746     return This->lpVtbl->SetDefaultIcon(This,pszFile,iIcon);
  28747 }
  28748 #endif
  28749 #endif
  28750 
  28751 #endif
  28752 
  28753 
  28754 #endif  /* __IDefaultExtractIconInit_INTERFACE_DEFINED__ */
  28755 
  28756 
  28757 STDAPI SHCreateDefaultExtractIcon(REFIID riid, void **ppv);
  28758 
  28759 #ifndef __IEnumExplorerCommand_FWD_DEFINED__
  28760 #define __IEnumExplorerCommand_FWD_DEFINED__
  28761 typedef interface IEnumExplorerCommand IEnumExplorerCommand;
  28762 #ifdef __cplusplus
  28763 interface IEnumExplorerCommand;
  28764 #endif /* __cplusplus */
  28765 #endif
  28766 
  28767 
  28768 /*****************************************************************************
  28769  * IExplorerCommand interface
  28770  */
  28771 #ifndef __IExplorerCommand_INTERFACE_DEFINED__
  28772 #define __IExplorerCommand_INTERFACE_DEFINED__
  28773 
  28774 enum _EXPCMDSTATE {
  28775     ECS_ENABLED = 0x0,
  28776     ECS_DISABLED = 0x1,
  28777     ECS_HIDDEN = 0x2,
  28778     ECS_CHECKBOX = 0x4,
  28779     ECS_CHECKED = 0x8,
  28780     ECS_RADIOCHECK = 0x10
  28781 };
  28782 
  28783 typedef DWORD EXPCMDSTATE;
  28784 
  28785 enum _EXPCMDFLAGS {
  28786     ECF_DEFAULT = 0x0,
  28787     ECF_HASSUBCOMMANDS = 0x1,
  28788     ECF_HASSPLITBUTTON = 0x2,
  28789     ECF_HIDELABEL = 0x4,
  28790     ECF_ISSEPARATOR = 0x8,
  28791     ECF_HASLUASHIELD = 0x10,
  28792     ECF_SEPARATORBEFORE = 0x20,
  28793     ECF_SEPARATORAFTER = 0x40,
  28794     ECF_ISDROPDOWN = 0x80,
  28795     ECF_TOGGLEABLE = 0x100,
  28796     ECF_AUTOMENUICONS = 0x200
  28797 };
  28798 
  28799 typedef DWORD EXPCMDFLAGS;
  28800 
  28801 DEFINE_GUID(IID_IExplorerCommand, 0xa08ce4d0, 0xfa25, 0x44ab, 0xb5,0x7c, 0xc7,0xb1,0xc3,0x23,0xe0,0xb9);
  28802 #if defined(__cplusplus) && !defined(CINTERFACE)
  28803 MIDL_INTERFACE("a08ce4d0-fa25-44ab-b57c-c7b1c323e0b9")
  28804 IExplorerCommand : public IUnknown
  28805 {
  28806     virtual HRESULT STDMETHODCALLTYPE GetTitle(
  28807         IShellItemArray *psiItemArray,
  28808         LPWSTR *ppszName) = 0;
  28809 
  28810     virtual HRESULT STDMETHODCALLTYPE GetIcon(
  28811         IShellItemArray *psiItemArray,
  28812         LPWSTR *ppszIcon) = 0;
  28813 
  28814     virtual HRESULT STDMETHODCALLTYPE GetToolTip(
  28815         IShellItemArray *psiItemArray,
  28816         LPWSTR *ppszInfotip) = 0;
  28817 
  28818     virtual HRESULT STDMETHODCALLTYPE GetCanonicalName(
  28819         GUID *pguidCommandName) = 0;
  28820 
  28821     virtual HRESULT STDMETHODCALLTYPE GetState(
  28822         IShellItemArray *psiItemArray,
  28823         WINBOOL fOkToBeSlow,
  28824         EXPCMDSTATE *pCmdState) = 0;
  28825 
  28826     virtual HRESULT STDMETHODCALLTYPE Invoke(
  28827         IShellItemArray *psiItemArray,
  28828         IBindCtx *pbc) = 0;
  28829 
  28830     virtual HRESULT STDMETHODCALLTYPE GetFlags(
  28831         EXPCMDFLAGS *pFlags) = 0;
  28832 
  28833     virtual HRESULT STDMETHODCALLTYPE EnumSubCommands(
  28834         IEnumExplorerCommand **ppEnum) = 0;
  28835 
  28836 };
  28837 #ifdef __CRT_UUID_DECL
  28838 __CRT_UUID_DECL(IExplorerCommand, 0xa08ce4d0, 0xfa25, 0x44ab, 0xb5,0x7c, 0xc7,0xb1,0xc3,0x23,0xe0,0xb9)
  28839 #endif
  28840 #else
  28841 typedef struct IExplorerCommandVtbl {
  28842     BEGIN_INTERFACE
  28843 
  28844     /*** IUnknown methods ***/
  28845     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  28846         IExplorerCommand *This,
  28847         REFIID riid,
  28848         void **ppvObject);
  28849 
  28850     ULONG (STDMETHODCALLTYPE *AddRef)(
  28851         IExplorerCommand *This);
  28852 
  28853     ULONG (STDMETHODCALLTYPE *Release)(
  28854         IExplorerCommand *This);
  28855 
  28856     /*** IExplorerCommand methods ***/
  28857     HRESULT (STDMETHODCALLTYPE *GetTitle)(
  28858         IExplorerCommand *This,
  28859         IShellItemArray *psiItemArray,
  28860         LPWSTR *ppszName);
  28861 
  28862     HRESULT (STDMETHODCALLTYPE *GetIcon)(
  28863         IExplorerCommand *This,
  28864         IShellItemArray *psiItemArray,
  28865         LPWSTR *ppszIcon);
  28866 
  28867     HRESULT (STDMETHODCALLTYPE *GetToolTip)(
  28868         IExplorerCommand *This,
  28869         IShellItemArray *psiItemArray,
  28870         LPWSTR *ppszInfotip);
  28871 
  28872     HRESULT (STDMETHODCALLTYPE *GetCanonicalName)(
  28873         IExplorerCommand *This,
  28874         GUID *pguidCommandName);
  28875 
  28876     HRESULT (STDMETHODCALLTYPE *GetState)(
  28877         IExplorerCommand *This,
  28878         IShellItemArray *psiItemArray,
  28879         WINBOOL fOkToBeSlow,
  28880         EXPCMDSTATE *pCmdState);
  28881 
  28882     HRESULT (STDMETHODCALLTYPE *Invoke)(
  28883         IExplorerCommand *This,
  28884         IShellItemArray *psiItemArray,
  28885         IBindCtx *pbc);
  28886 
  28887     HRESULT (STDMETHODCALLTYPE *GetFlags)(
  28888         IExplorerCommand *This,
  28889         EXPCMDFLAGS *pFlags);
  28890 
  28891     HRESULT (STDMETHODCALLTYPE *EnumSubCommands)(
  28892         IExplorerCommand *This,
  28893         IEnumExplorerCommand **ppEnum);
  28894 
  28895     END_INTERFACE
  28896 } IExplorerCommandVtbl;
  28897 
  28898 interface IExplorerCommand {
  28899     CONST_VTBL IExplorerCommandVtbl* lpVtbl;
  28900 };
  28901 
  28902 #ifdef COBJMACROS
  28903 #ifndef WIDL_C_INLINE_WRAPPERS
  28904 /*** IUnknown methods ***/
  28905 #define IExplorerCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  28906 #define IExplorerCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
  28907 #define IExplorerCommand_Release(This) (This)->lpVtbl->Release(This)
  28908 /*** IExplorerCommand methods ***/
  28909 #define IExplorerCommand_GetTitle(This,psiItemArray,ppszName) (This)->lpVtbl->GetTitle(This,psiItemArray,ppszName)
  28910 #define IExplorerCommand_GetIcon(This,psiItemArray,ppszIcon) (This)->lpVtbl->GetIcon(This,psiItemArray,ppszIcon)
  28911 #define IExplorerCommand_GetToolTip(This,psiItemArray,ppszInfotip) (This)->lpVtbl->GetToolTip(This,psiItemArray,ppszInfotip)
  28912 #define IExplorerCommand_GetCanonicalName(This,pguidCommandName) (This)->lpVtbl->GetCanonicalName(This,pguidCommandName)
  28913 #define IExplorerCommand_GetState(This,psiItemArray,fOkToBeSlow,pCmdState) (This)->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState)
  28914 #define IExplorerCommand_Invoke(This,psiItemArray,pbc) (This)->lpVtbl->Invoke(This,psiItemArray,pbc)
  28915 #define IExplorerCommand_GetFlags(This,pFlags) (This)->lpVtbl->GetFlags(This,pFlags)
  28916 #define IExplorerCommand_EnumSubCommands(This,ppEnum) (This)->lpVtbl->EnumSubCommands(This,ppEnum)
  28917 #else
  28918 /*** IUnknown methods ***/
  28919 static inline HRESULT IExplorerCommand_QueryInterface(IExplorerCommand* This,REFIID riid,void **ppvObject) {
  28920     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  28921 }
  28922 static inline ULONG IExplorerCommand_AddRef(IExplorerCommand* This) {
  28923     return This->lpVtbl->AddRef(This);
  28924 }
  28925 static inline ULONG IExplorerCommand_Release(IExplorerCommand* This) {
  28926     return This->lpVtbl->Release(This);
  28927 }
  28928 /*** IExplorerCommand methods ***/
  28929 static inline HRESULT IExplorerCommand_GetTitle(IExplorerCommand* This,IShellItemArray *psiItemArray,LPWSTR *ppszName) {
  28930     return This->lpVtbl->GetTitle(This,psiItemArray,ppszName);
  28931 }
  28932 static inline HRESULT IExplorerCommand_GetIcon(IExplorerCommand* This,IShellItemArray *psiItemArray,LPWSTR *ppszIcon) {
  28933     return This->lpVtbl->GetIcon(This,psiItemArray,ppszIcon);
  28934 }
  28935 static inline HRESULT IExplorerCommand_GetToolTip(IExplorerCommand* This,IShellItemArray *psiItemArray,LPWSTR *ppszInfotip) {
  28936     return This->lpVtbl->GetToolTip(This,psiItemArray,ppszInfotip);
  28937 }
  28938 static inline HRESULT IExplorerCommand_GetCanonicalName(IExplorerCommand* This,GUID *pguidCommandName) {
  28939     return This->lpVtbl->GetCanonicalName(This,pguidCommandName);
  28940 }
  28941 static inline HRESULT IExplorerCommand_GetState(IExplorerCommand* This,IShellItemArray *psiItemArray,WINBOOL fOkToBeSlow,EXPCMDSTATE *pCmdState) {
  28942     return This->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState);
  28943 }
  28944 static inline HRESULT IExplorerCommand_Invoke(IExplorerCommand* This,IShellItemArray *psiItemArray,IBindCtx *pbc) {
  28945     return This->lpVtbl->Invoke(This,psiItemArray,pbc);
  28946 }
  28947 static inline HRESULT IExplorerCommand_GetFlags(IExplorerCommand* This,EXPCMDFLAGS *pFlags) {
  28948     return This->lpVtbl->GetFlags(This,pFlags);
  28949 }
  28950 static inline HRESULT IExplorerCommand_EnumSubCommands(IExplorerCommand* This,IEnumExplorerCommand **ppEnum) {
  28951     return This->lpVtbl->EnumSubCommands(This,ppEnum);
  28952 }
  28953 #endif
  28954 #endif
  28955 
  28956 #endif
  28957 
  28958 
  28959 #endif  /* __IExplorerCommand_INTERFACE_DEFINED__ */
  28960 
  28961 
  28962 /*****************************************************************************
  28963  * IExplorerCommandState interface
  28964  */
  28965 #ifndef __IExplorerCommandState_INTERFACE_DEFINED__
  28966 #define __IExplorerCommandState_INTERFACE_DEFINED__
  28967 
  28968 DEFINE_GUID(IID_IExplorerCommandState, 0xbddacb60, 0x7657, 0x47ae, 0x84,0x45, 0xd2,0x3e,0x1a,0xcf,0x82,0xae);
  28969 #if defined(__cplusplus) && !defined(CINTERFACE)
  28970 MIDL_INTERFACE("bddacb60-7657-47ae-8445-d23e1acf82ae")
  28971 IExplorerCommandState : public IUnknown
  28972 {
  28973     virtual HRESULT STDMETHODCALLTYPE GetState(
  28974         IShellItemArray *psiItemArray,
  28975         WINBOOL fOkToBeSlow,
  28976         EXPCMDSTATE *pCmdState) = 0;
  28977 
  28978 };
  28979 #ifdef __CRT_UUID_DECL
  28980 __CRT_UUID_DECL(IExplorerCommandState, 0xbddacb60, 0x7657, 0x47ae, 0x84,0x45, 0xd2,0x3e,0x1a,0xcf,0x82,0xae)
  28981 #endif
  28982 #else
  28983 typedef struct IExplorerCommandStateVtbl {
  28984     BEGIN_INTERFACE
  28985 
  28986     /*** IUnknown methods ***/
  28987     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  28988         IExplorerCommandState *This,
  28989         REFIID riid,
  28990         void **ppvObject);
  28991 
  28992     ULONG (STDMETHODCALLTYPE *AddRef)(
  28993         IExplorerCommandState *This);
  28994 
  28995     ULONG (STDMETHODCALLTYPE *Release)(
  28996         IExplorerCommandState *This);
  28997 
  28998     /*** IExplorerCommandState methods ***/
  28999     HRESULT (STDMETHODCALLTYPE *GetState)(
  29000         IExplorerCommandState *This,
  29001         IShellItemArray *psiItemArray,
  29002         WINBOOL fOkToBeSlow,
  29003         EXPCMDSTATE *pCmdState);
  29004 
  29005     END_INTERFACE
  29006 } IExplorerCommandStateVtbl;
  29007 
  29008 interface IExplorerCommandState {
  29009     CONST_VTBL IExplorerCommandStateVtbl* lpVtbl;
  29010 };
  29011 
  29012 #ifdef COBJMACROS
  29013 #ifndef WIDL_C_INLINE_WRAPPERS
  29014 /*** IUnknown methods ***/
  29015 #define IExplorerCommandState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  29016 #define IExplorerCommandState_AddRef(This) (This)->lpVtbl->AddRef(This)
  29017 #define IExplorerCommandState_Release(This) (This)->lpVtbl->Release(This)
  29018 /*** IExplorerCommandState methods ***/
  29019 #define IExplorerCommandState_GetState(This,psiItemArray,fOkToBeSlow,pCmdState) (This)->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState)
  29020 #else
  29021 /*** IUnknown methods ***/
  29022 static inline HRESULT IExplorerCommandState_QueryInterface(IExplorerCommandState* This,REFIID riid,void **ppvObject) {
  29023     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  29024 }
  29025 static inline ULONG IExplorerCommandState_AddRef(IExplorerCommandState* This) {
  29026     return This->lpVtbl->AddRef(This);
  29027 }
  29028 static inline ULONG IExplorerCommandState_Release(IExplorerCommandState* This) {
  29029     return This->lpVtbl->Release(This);
  29030 }
  29031 /*** IExplorerCommandState methods ***/
  29032 static inline HRESULT IExplorerCommandState_GetState(IExplorerCommandState* This,IShellItemArray *psiItemArray,WINBOOL fOkToBeSlow,EXPCMDSTATE *pCmdState) {
  29033     return This->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState);
  29034 }
  29035 #endif
  29036 #endif
  29037 
  29038 #endif
  29039 
  29040 
  29041 #endif  /* __IExplorerCommandState_INTERFACE_DEFINED__ */
  29042 
  29043 
  29044 /*****************************************************************************
  29045  * IInitializeCommand interface
  29046  */
  29047 #ifndef __IInitializeCommand_INTERFACE_DEFINED__
  29048 #define __IInitializeCommand_INTERFACE_DEFINED__
  29049 
  29050 DEFINE_GUID(IID_IInitializeCommand, 0x85075acf, 0x231f, 0x40ea, 0x96,0x10, 0xd2,0x6b,0x7b,0x58,0xf6,0x38);
  29051 #if defined(__cplusplus) && !defined(CINTERFACE)
  29052 MIDL_INTERFACE("85075acf-231f-40ea-9610-d26b7b58f638")
  29053 IInitializeCommand : public IUnknown
  29054 {
  29055     virtual HRESULT STDMETHODCALLTYPE Initialize(
  29056         LPCWSTR pszCommandName,
  29057         IPropertyBag *ppb) = 0;
  29058 
  29059 };
  29060 #ifdef __CRT_UUID_DECL
  29061 __CRT_UUID_DECL(IInitializeCommand, 0x85075acf, 0x231f, 0x40ea, 0x96,0x10, 0xd2,0x6b,0x7b,0x58,0xf6,0x38)
  29062 #endif
  29063 #else
  29064 typedef struct IInitializeCommandVtbl {
  29065     BEGIN_INTERFACE
  29066 
  29067     /*** IUnknown methods ***/
  29068     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  29069         IInitializeCommand *This,
  29070         REFIID riid,
  29071         void **ppvObject);
  29072 
  29073     ULONG (STDMETHODCALLTYPE *AddRef)(
  29074         IInitializeCommand *This);
  29075 
  29076     ULONG (STDMETHODCALLTYPE *Release)(
  29077         IInitializeCommand *This);
  29078 
  29079     /*** IInitializeCommand methods ***/
  29080     HRESULT (STDMETHODCALLTYPE *Initialize)(
  29081         IInitializeCommand *This,
  29082         LPCWSTR pszCommandName,
  29083         IPropertyBag *ppb);
  29084 
  29085     END_INTERFACE
  29086 } IInitializeCommandVtbl;
  29087 
  29088 interface IInitializeCommand {
  29089     CONST_VTBL IInitializeCommandVtbl* lpVtbl;
  29090 };
  29091 
  29092 #ifdef COBJMACROS
  29093 #ifndef WIDL_C_INLINE_WRAPPERS
  29094 /*** IUnknown methods ***/
  29095 #define IInitializeCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  29096 #define IInitializeCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
  29097 #define IInitializeCommand_Release(This) (This)->lpVtbl->Release(This)
  29098 /*** IInitializeCommand methods ***/
  29099 #define IInitializeCommand_Initialize(This,pszCommandName,ppb) (This)->lpVtbl->Initialize(This,pszCommandName,ppb)
  29100 #else
  29101 /*** IUnknown methods ***/
  29102 static inline HRESULT IInitializeCommand_QueryInterface(IInitializeCommand* This,REFIID riid,void **ppvObject) {
  29103     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  29104 }
  29105 static inline ULONG IInitializeCommand_AddRef(IInitializeCommand* This) {
  29106     return This->lpVtbl->AddRef(This);
  29107 }
  29108 static inline ULONG IInitializeCommand_Release(IInitializeCommand* This) {
  29109     return This->lpVtbl->Release(This);
  29110 }
  29111 /*** IInitializeCommand methods ***/
  29112 static inline HRESULT IInitializeCommand_Initialize(IInitializeCommand* This,LPCWSTR pszCommandName,IPropertyBag *ppb) {
  29113     return This->lpVtbl->Initialize(This,pszCommandName,ppb);
  29114 }
  29115 #endif
  29116 #endif
  29117 
  29118 #endif
  29119 
  29120 
  29121 #endif  /* __IInitializeCommand_INTERFACE_DEFINED__ */
  29122 
  29123 
  29124 /*****************************************************************************
  29125  * IEnumExplorerCommand interface
  29126  */
  29127 #ifndef __IEnumExplorerCommand_INTERFACE_DEFINED__
  29128 #define __IEnumExplorerCommand_INTERFACE_DEFINED__
  29129 
  29130 DEFINE_GUID(IID_IEnumExplorerCommand, 0xa88826f8, 0x186f, 0x4987, 0xaa,0xde, 0xea,0x0c,0xef,0x8f,0xbf,0xe8);
  29131 #if defined(__cplusplus) && !defined(CINTERFACE)
  29132 MIDL_INTERFACE("a88826f8-186f-4987-aade-ea0cef8fbfe8")
  29133 IEnumExplorerCommand : public IUnknown
  29134 {
  29135     virtual HRESULT STDMETHODCALLTYPE Next(
  29136         ULONG celt,
  29137         IExplorerCommand **pUICommand,
  29138         ULONG *pceltFetched) = 0;
  29139 
  29140     virtual HRESULT STDMETHODCALLTYPE Skip(
  29141         ULONG celt) = 0;
  29142 
  29143     virtual HRESULT STDMETHODCALLTYPE Reset(
  29144         ) = 0;
  29145 
  29146     virtual HRESULT STDMETHODCALLTYPE Clone(
  29147         IEnumExplorerCommand **ppenum) = 0;
  29148 
  29149 };
  29150 #ifdef __CRT_UUID_DECL
  29151 __CRT_UUID_DECL(IEnumExplorerCommand, 0xa88826f8, 0x186f, 0x4987, 0xaa,0xde, 0xea,0x0c,0xef,0x8f,0xbf,0xe8)
  29152 #endif
  29153 #else
  29154 typedef struct IEnumExplorerCommandVtbl {
  29155     BEGIN_INTERFACE
  29156 
  29157     /*** IUnknown methods ***/
  29158     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  29159         IEnumExplorerCommand *This,
  29160         REFIID riid,
  29161         void **ppvObject);
  29162 
  29163     ULONG (STDMETHODCALLTYPE *AddRef)(
  29164         IEnumExplorerCommand *This);
  29165 
  29166     ULONG (STDMETHODCALLTYPE *Release)(
  29167         IEnumExplorerCommand *This);
  29168 
  29169     /*** IEnumExplorerCommand methods ***/
  29170     HRESULT (STDMETHODCALLTYPE *Next)(
  29171         IEnumExplorerCommand *This,
  29172         ULONG celt,
  29173         IExplorerCommand **pUICommand,
  29174         ULONG *pceltFetched);
  29175 
  29176     HRESULT (STDMETHODCALLTYPE *Skip)(
  29177         IEnumExplorerCommand *This,
  29178         ULONG celt);
  29179 
  29180     HRESULT (STDMETHODCALLTYPE *Reset)(
  29181         IEnumExplorerCommand *This);
  29182 
  29183     HRESULT (STDMETHODCALLTYPE *Clone)(
  29184         IEnumExplorerCommand *This,
  29185         IEnumExplorerCommand **ppenum);
  29186 
  29187     END_INTERFACE
  29188 } IEnumExplorerCommandVtbl;
  29189 
  29190 interface IEnumExplorerCommand {
  29191     CONST_VTBL IEnumExplorerCommandVtbl* lpVtbl;
  29192 };
  29193 
  29194 #ifdef COBJMACROS
  29195 #ifndef WIDL_C_INLINE_WRAPPERS
  29196 /*** IUnknown methods ***/
  29197 #define IEnumExplorerCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  29198 #define IEnumExplorerCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
  29199 #define IEnumExplorerCommand_Release(This) (This)->lpVtbl->Release(This)
  29200 /*** IEnumExplorerCommand methods ***/
  29201 #define IEnumExplorerCommand_Next(This,celt,pUICommand,pceltFetched) (This)->lpVtbl->Next(This,celt,pUICommand,pceltFetched)
  29202 #define IEnumExplorerCommand_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
  29203 #define IEnumExplorerCommand_Reset(This) (This)->lpVtbl->Reset(This)
  29204 #define IEnumExplorerCommand_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
  29205 #else
  29206 /*** IUnknown methods ***/
  29207 static inline HRESULT IEnumExplorerCommand_QueryInterface(IEnumExplorerCommand* This,REFIID riid,void **ppvObject) {
  29208     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  29209 }
  29210 static inline ULONG IEnumExplorerCommand_AddRef(IEnumExplorerCommand* This) {
  29211     return This->lpVtbl->AddRef(This);
  29212 }
  29213 static inline ULONG IEnumExplorerCommand_Release(IEnumExplorerCommand* This) {
  29214     return This->lpVtbl->Release(This);
  29215 }
  29216 /*** IEnumExplorerCommand methods ***/
  29217 static inline HRESULT IEnumExplorerCommand_Next(IEnumExplorerCommand* This,ULONG celt,IExplorerCommand **pUICommand,ULONG *pceltFetched) {
  29218     return This->lpVtbl->Next(This,celt,pUICommand,pceltFetched);
  29219 }
  29220 static inline HRESULT IEnumExplorerCommand_Skip(IEnumExplorerCommand* This,ULONG celt) {
  29221     return This->lpVtbl->Skip(This,celt);
  29222 }
  29223 static inline HRESULT IEnumExplorerCommand_Reset(IEnumExplorerCommand* This) {
  29224     return This->lpVtbl->Reset(This);
  29225 }
  29226 static inline HRESULT IEnumExplorerCommand_Clone(IEnumExplorerCommand* This,IEnumExplorerCommand **ppenum) {
  29227     return This->lpVtbl->Clone(This,ppenum);
  29228 }
  29229 #endif
  29230 #endif
  29231 
  29232 #endif
  29233 
  29234 HRESULT STDMETHODCALLTYPE IEnumExplorerCommand_RemoteNext_Proxy(
  29235     IEnumExplorerCommand* This,
  29236     ULONG celt,
  29237     IExplorerCommand **pUICommand,
  29238     ULONG *pceltFetched);
  29239 void __RPC_STUB IEnumExplorerCommand_RemoteNext_Stub(
  29240     IRpcStubBuffer* This,
  29241     IRpcChannelBuffer* pRpcChannelBuffer,
  29242     PRPC_MESSAGE pRpcMessage,
  29243     DWORD* pdwStubPhase);
  29244 HRESULT CALLBACK IEnumExplorerCommand_Next_Proxy(
  29245     IEnumExplorerCommand* This,
  29246     ULONG celt,
  29247     IExplorerCommand **pUICommand,
  29248     ULONG *pceltFetched);
  29249 HRESULT __RPC_STUB IEnumExplorerCommand_Next_Stub(
  29250     IEnumExplorerCommand* This,
  29251     ULONG celt,
  29252     IExplorerCommand **pUICommand,
  29253     ULONG *pceltFetched);
  29254 
  29255 #endif  /* __IEnumExplorerCommand_INTERFACE_DEFINED__ */
  29256 
  29257 
  29258 /*****************************************************************************
  29259  * IExplorerCommandProvider interface
  29260  */
  29261 #ifndef __IExplorerCommandProvider_INTERFACE_DEFINED__
  29262 #define __IExplorerCommandProvider_INTERFACE_DEFINED__
  29263 
  29264 DEFINE_GUID(IID_IExplorerCommandProvider, 0x64961751, 0x0835, 0x43c0, 0x8f,0xfe, 0xd5,0x76,0x86,0x53,0x0e,0x64);
  29265 #if defined(__cplusplus) && !defined(CINTERFACE)
  29266 MIDL_INTERFACE("64961751-0835-43c0-8ffe-d57686530e64")
  29267 IExplorerCommandProvider : public IUnknown
  29268 {
  29269     virtual HRESULT STDMETHODCALLTYPE GetCommands(
  29270         IUnknown *punkSite,
  29271         REFIID riid,
  29272         void **ppv) = 0;
  29273 
  29274     virtual HRESULT STDMETHODCALLTYPE GetCommand(
  29275         REFGUID rguidCommandId,
  29276         REFIID riid,
  29277         void **ppv) = 0;
  29278 
  29279 };
  29280 #ifdef __CRT_UUID_DECL
  29281 __CRT_UUID_DECL(IExplorerCommandProvider, 0x64961751, 0x0835, 0x43c0, 0x8f,0xfe, 0xd5,0x76,0x86,0x53,0x0e,0x64)
  29282 #endif
  29283 #else
  29284 typedef struct IExplorerCommandProviderVtbl {
  29285     BEGIN_INTERFACE
  29286 
  29287     /*** IUnknown methods ***/
  29288     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  29289         IExplorerCommandProvider *This,
  29290         REFIID riid,
  29291         void **ppvObject);
  29292 
  29293     ULONG (STDMETHODCALLTYPE *AddRef)(
  29294         IExplorerCommandProvider *This);
  29295 
  29296     ULONG (STDMETHODCALLTYPE *Release)(
  29297         IExplorerCommandProvider *This);
  29298 
  29299     /*** IExplorerCommandProvider methods ***/
  29300     HRESULT (STDMETHODCALLTYPE *GetCommands)(
  29301         IExplorerCommandProvider *This,
  29302         IUnknown *punkSite,
  29303         REFIID riid,
  29304         void **ppv);
  29305 
  29306     HRESULT (STDMETHODCALLTYPE *GetCommand)(
  29307         IExplorerCommandProvider *This,
  29308         REFGUID rguidCommandId,
  29309         REFIID riid,
  29310         void **ppv);
  29311 
  29312     END_INTERFACE
  29313 } IExplorerCommandProviderVtbl;
  29314 
  29315 interface IExplorerCommandProvider {
  29316     CONST_VTBL IExplorerCommandProviderVtbl* lpVtbl;
  29317 };
  29318 
  29319 #ifdef COBJMACROS
  29320 #ifndef WIDL_C_INLINE_WRAPPERS
  29321 /*** IUnknown methods ***/
  29322 #define IExplorerCommandProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  29323 #define IExplorerCommandProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
  29324 #define IExplorerCommandProvider_Release(This) (This)->lpVtbl->Release(This)
  29325 /*** IExplorerCommandProvider methods ***/
  29326 #define IExplorerCommandProvider_GetCommands(This,punkSite,riid,ppv) (This)->lpVtbl->GetCommands(This,punkSite,riid,ppv)
  29327 #define IExplorerCommandProvider_GetCommand(This,rguidCommandId,riid,ppv) (This)->lpVtbl->GetCommand(This,rguidCommandId,riid,ppv)
  29328 #else
  29329 /*** IUnknown methods ***/
  29330 static inline HRESULT IExplorerCommandProvider_QueryInterface(IExplorerCommandProvider* This,REFIID riid,void **ppvObject) {
  29331     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  29332 }
  29333 static inline ULONG IExplorerCommandProvider_AddRef(IExplorerCommandProvider* This) {
  29334     return This->lpVtbl->AddRef(This);
  29335 }
  29336 static inline ULONG IExplorerCommandProvider_Release(IExplorerCommandProvider* This) {
  29337     return This->lpVtbl->Release(This);
  29338 }
  29339 /*** IExplorerCommandProvider methods ***/
  29340 static inline HRESULT IExplorerCommandProvider_GetCommands(IExplorerCommandProvider* This,IUnknown *punkSite,REFIID riid,void **ppv) {
  29341     return This->lpVtbl->GetCommands(This,punkSite,riid,ppv);
  29342 }
  29343 static inline HRESULT IExplorerCommandProvider_GetCommand(IExplorerCommandProvider* This,REFGUID rguidCommandId,REFIID riid,void **ppv) {
  29344     return This->lpVtbl->GetCommand(This,rguidCommandId,riid,ppv);
  29345 }
  29346 #endif
  29347 #endif
  29348 
  29349 #endif
  29350 
  29351 
  29352 #endif  /* __IExplorerCommandProvider_INTERFACE_DEFINED__ */
  29353 
  29354 
  29355 typedef HANDLE HTHEME;
  29356 
  29357 /*****************************************************************************
  29358  * IInitializeNetworkFolder interface
  29359  */
  29360 #ifndef __IInitializeNetworkFolder_INTERFACE_DEFINED__
  29361 #define __IInitializeNetworkFolder_INTERFACE_DEFINED__
  29362 
  29363 DEFINE_GUID(IID_IInitializeNetworkFolder, 0x6e0f9881, 0x42a8, 0x4f2a, 0x97,0xf8, 0x8a,0xf4,0xe0,0x26,0xd9,0x2d);
  29364 #if defined(__cplusplus) && !defined(CINTERFACE)
  29365 MIDL_INTERFACE("6e0f9881-42a8-4f2a-97f8-8af4e026d92d")
  29366 IInitializeNetworkFolder : public IUnknown
  29367 {
  29368     virtual HRESULT STDMETHODCALLTYPE Initialize(
  29369         PCIDLIST_ABSOLUTE pidl,
  29370         PCIDLIST_ABSOLUTE pidlTarget,
  29371         UINT uDisplayType,
  29372         LPCWSTR pszResName,
  29373         LPCWSTR pszProvider) = 0;
  29374 
  29375 };
  29376 #ifdef __CRT_UUID_DECL
  29377 __CRT_UUID_DECL(IInitializeNetworkFolder, 0x6e0f9881, 0x42a8, 0x4f2a, 0x97,0xf8, 0x8a,0xf4,0xe0,0x26,0xd9,0x2d)
  29378 #endif
  29379 #else
  29380 typedef struct IInitializeNetworkFolderVtbl {
  29381     BEGIN_INTERFACE
  29382 
  29383     /*** IUnknown methods ***/
  29384     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  29385         IInitializeNetworkFolder *This,
  29386         REFIID riid,
  29387         void **ppvObject);
  29388 
  29389     ULONG (STDMETHODCALLTYPE *AddRef)(
  29390         IInitializeNetworkFolder *This);
  29391 
  29392     ULONG (STDMETHODCALLTYPE *Release)(
  29393         IInitializeNetworkFolder *This);
  29394 
  29395     /*** IInitializeNetworkFolder methods ***/
  29396     HRESULT (STDMETHODCALLTYPE *Initialize)(
  29397         IInitializeNetworkFolder *This,
  29398         PCIDLIST_ABSOLUTE pidl,
  29399         PCIDLIST_ABSOLUTE pidlTarget,
  29400         UINT uDisplayType,
  29401         LPCWSTR pszResName,
  29402         LPCWSTR pszProvider);
  29403 
  29404     END_INTERFACE
  29405 } IInitializeNetworkFolderVtbl;
  29406 
  29407 interface IInitializeNetworkFolder {
  29408     CONST_VTBL IInitializeNetworkFolderVtbl* lpVtbl;
  29409 };
  29410 
  29411 #ifdef COBJMACROS
  29412 #ifndef WIDL_C_INLINE_WRAPPERS
  29413 /*** IUnknown methods ***/
  29414 #define IInitializeNetworkFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  29415 #define IInitializeNetworkFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
  29416 #define IInitializeNetworkFolder_Release(This) (This)->lpVtbl->Release(This)
  29417 /*** IInitializeNetworkFolder methods ***/
  29418 #define IInitializeNetworkFolder_Initialize(This,pidl,pidlTarget,uDisplayType,pszResName,pszProvider) (This)->lpVtbl->Initialize(This,pidl,pidlTarget,uDisplayType,pszResName,pszProvider)
  29419 #else
  29420 /*** IUnknown methods ***/
  29421 static inline HRESULT IInitializeNetworkFolder_QueryInterface(IInitializeNetworkFolder* This,REFIID riid,void **ppvObject) {
  29422     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  29423 }
  29424 static inline ULONG IInitializeNetworkFolder_AddRef(IInitializeNetworkFolder* This) {
  29425     return This->lpVtbl->AddRef(This);
  29426 }
  29427 static inline ULONG IInitializeNetworkFolder_Release(IInitializeNetworkFolder* This) {
  29428     return This->lpVtbl->Release(This);
  29429 }
  29430 /*** IInitializeNetworkFolder methods ***/
  29431 static inline HRESULT IInitializeNetworkFolder_Initialize(IInitializeNetworkFolder* This,PCIDLIST_ABSOLUTE pidl,PCIDLIST_ABSOLUTE pidlTarget,UINT uDisplayType,LPCWSTR pszResName,LPCWSTR pszProvider) {
  29432     return This->lpVtbl->Initialize(This,pidl,pidlTarget,uDisplayType,pszResName,pszProvider);
  29433 }
  29434 #endif
  29435 #endif
  29436 
  29437 #endif
  29438 
  29439 
  29440 #endif  /* __IInitializeNetworkFolder_INTERFACE_DEFINED__ */
  29441 
  29442 
  29443 typedef enum CPVIEW {
  29444     CPVIEW_CLASSIC = 0,
  29445     CPVIEW_ALLITEMS = CPVIEW_CLASSIC,
  29446     CPVIEW_CATEGORY = 1,
  29447     CPVIEW_HOME = CPVIEW_CATEGORY
  29448 } CPVIEW;
  29449 
  29450 /*****************************************************************************
  29451  * IOpenControlPanel interface
  29452  */
  29453 #ifndef __IOpenControlPanel_INTERFACE_DEFINED__
  29454 #define __IOpenControlPanel_INTERFACE_DEFINED__
  29455 
  29456 DEFINE_GUID(IID_IOpenControlPanel, 0xd11ad862, 0x66de, 0x4df4, 0xbf,0x6c, 0x1f,0x56,0x21,0x99,0x6a,0xf1);
  29457 #if defined(__cplusplus) && !defined(CINTERFACE)
  29458 MIDL_INTERFACE("d11ad862-66de-4df4-bf6c-1f5621996af1")
  29459 IOpenControlPanel : public IUnknown
  29460 {
  29461     virtual HRESULT STDMETHODCALLTYPE Open(
  29462         LPCWSTR pszName,
  29463         LPCWSTR pszPage,
  29464         IUnknown *punkSite) = 0;
  29465 
  29466     virtual HRESULT STDMETHODCALLTYPE GetPath(
  29467         LPCWSTR pszName,
  29468         LPWSTR pszPath,
  29469         UINT cchPath) = 0;
  29470 
  29471     virtual HRESULT STDMETHODCALLTYPE GetCurrentView(
  29472         CPVIEW *pView) = 0;
  29473 
  29474 };
  29475 #ifdef __CRT_UUID_DECL
  29476 __CRT_UUID_DECL(IOpenControlPanel, 0xd11ad862, 0x66de, 0x4df4, 0xbf,0x6c, 0x1f,0x56,0x21,0x99,0x6a,0xf1)
  29477 #endif
  29478 #else
  29479 typedef struct IOpenControlPanelVtbl {
  29480     BEGIN_INTERFACE
  29481 
  29482     /*** IUnknown methods ***/
  29483     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  29484         IOpenControlPanel *This,
  29485         REFIID riid,
  29486         void **ppvObject);
  29487 
  29488     ULONG (STDMETHODCALLTYPE *AddRef)(
  29489         IOpenControlPanel *This);
  29490 
  29491     ULONG (STDMETHODCALLTYPE *Release)(
  29492         IOpenControlPanel *This);
  29493 
  29494     /*** IOpenControlPanel methods ***/
  29495     HRESULT (STDMETHODCALLTYPE *Open)(
  29496         IOpenControlPanel *This,
  29497         LPCWSTR pszName,
  29498         LPCWSTR pszPage,
  29499         IUnknown *punkSite);
  29500 
  29501     HRESULT (STDMETHODCALLTYPE *GetPath)(
  29502         IOpenControlPanel *This,
  29503         LPCWSTR pszName,
  29504         LPWSTR pszPath,
  29505         UINT cchPath);
  29506 
  29507     HRESULT (STDMETHODCALLTYPE *GetCurrentView)(
  29508         IOpenControlPanel *This,
  29509         CPVIEW *pView);
  29510 
  29511     END_INTERFACE
  29512 } IOpenControlPanelVtbl;
  29513 
  29514 interface IOpenControlPanel {
  29515     CONST_VTBL IOpenControlPanelVtbl* lpVtbl;
  29516 };
  29517 
  29518 #ifdef COBJMACROS
  29519 #ifndef WIDL_C_INLINE_WRAPPERS
  29520 /*** IUnknown methods ***/
  29521 #define IOpenControlPanel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  29522 #define IOpenControlPanel_AddRef(This) (This)->lpVtbl->AddRef(This)
  29523 #define IOpenControlPanel_Release(This) (This)->lpVtbl->Release(This)
  29524 /*** IOpenControlPanel methods ***/
  29525 #define IOpenControlPanel_Open(This,pszName,pszPage,punkSite) (This)->lpVtbl->Open(This,pszName,pszPage,punkSite)
  29526 #define IOpenControlPanel_GetPath(This,pszName,pszPath,cchPath) (This)->lpVtbl->GetPath(This,pszName,pszPath,cchPath)
  29527 #define IOpenControlPanel_GetCurrentView(This,pView) (This)->lpVtbl->GetCurrentView(This,pView)
  29528 #else
  29529 /*** IUnknown methods ***/
  29530 static inline HRESULT IOpenControlPanel_QueryInterface(IOpenControlPanel* This,REFIID riid,void **ppvObject) {
  29531     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  29532 }
  29533 static inline ULONG IOpenControlPanel_AddRef(IOpenControlPanel* This) {
  29534     return This->lpVtbl->AddRef(This);
  29535 }
  29536 static inline ULONG IOpenControlPanel_Release(IOpenControlPanel* This) {
  29537     return This->lpVtbl->Release(This);
  29538 }
  29539 /*** IOpenControlPanel methods ***/
  29540 static inline HRESULT IOpenControlPanel_Open(IOpenControlPanel* This,LPCWSTR pszName,LPCWSTR pszPage,IUnknown *punkSite) {
  29541     return This->lpVtbl->Open(This,pszName,pszPage,punkSite);
  29542 }
  29543 static inline HRESULT IOpenControlPanel_GetPath(IOpenControlPanel* This,LPCWSTR pszName,LPWSTR pszPath,UINT cchPath) {
  29544     return This->lpVtbl->GetPath(This,pszName,pszPath,cchPath);
  29545 }
  29546 static inline HRESULT IOpenControlPanel_GetCurrentView(IOpenControlPanel* This,CPVIEW *pView) {
  29547     return This->lpVtbl->GetCurrentView(This,pView);
  29548 }
  29549 #endif
  29550 #endif
  29551 
  29552 #endif
  29553 
  29554 
  29555 #endif  /* __IOpenControlPanel_INTERFACE_DEFINED__ */
  29556 
  29557 
  29558 /*****************************************************************************
  29559  * IComputerInfoChangeNotify interface
  29560  */
  29561 #ifndef __IComputerInfoChangeNotify_INTERFACE_DEFINED__
  29562 #define __IComputerInfoChangeNotify_INTERFACE_DEFINED__
  29563 
  29564 DEFINE_GUID(IID_IComputerInfoChangeNotify, 0x0df60d92, 0x6818, 0x46d6, 0xb3,0x58, 0xd6,0x61,0x70,0xdd,0xe4,0x66);
  29565 #if defined(__cplusplus) && !defined(CINTERFACE)
  29566 MIDL_INTERFACE("0df60d92-6818-46d6-b358-d66170dde466")
  29567 IComputerInfoChangeNotify : public IUnknown
  29568 {
  29569     virtual HRESULT STDMETHODCALLTYPE ComputerInfoChanged(
  29570         ) = 0;
  29571 
  29572 };
  29573 #ifdef __CRT_UUID_DECL
  29574 __CRT_UUID_DECL(IComputerInfoChangeNotify, 0x0df60d92, 0x6818, 0x46d6, 0xb3,0x58, 0xd6,0x61,0x70,0xdd,0xe4,0x66)
  29575 #endif
  29576 #else
  29577 typedef struct IComputerInfoChangeNotifyVtbl {
  29578     BEGIN_INTERFACE
  29579 
  29580     /*** IUnknown methods ***/
  29581     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  29582         IComputerInfoChangeNotify *This,
  29583         REFIID riid,
  29584         void **ppvObject);
  29585 
  29586     ULONG (STDMETHODCALLTYPE *AddRef)(
  29587         IComputerInfoChangeNotify *This);
  29588 
  29589     ULONG (STDMETHODCALLTYPE *Release)(
  29590         IComputerInfoChangeNotify *This);
  29591 
  29592     /*** IComputerInfoChangeNotify methods ***/
  29593     HRESULT (STDMETHODCALLTYPE *ComputerInfoChanged)(
  29594         IComputerInfoChangeNotify *This);
  29595 
  29596     END_INTERFACE
  29597 } IComputerInfoChangeNotifyVtbl;
  29598 
  29599 interface IComputerInfoChangeNotify {
  29600     CONST_VTBL IComputerInfoChangeNotifyVtbl* lpVtbl;
  29601 };
  29602 
  29603 #ifdef COBJMACROS
  29604 #ifndef WIDL_C_INLINE_WRAPPERS
  29605 /*** IUnknown methods ***/
  29606 #define IComputerInfoChangeNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  29607 #define IComputerInfoChangeNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
  29608 #define IComputerInfoChangeNotify_Release(This) (This)->lpVtbl->Release(This)
  29609 /*** IComputerInfoChangeNotify methods ***/
  29610 #define IComputerInfoChangeNotify_ComputerInfoChanged(This) (This)->lpVtbl->ComputerInfoChanged(This)
  29611 #else
  29612 /*** IUnknown methods ***/
  29613 static inline HRESULT IComputerInfoChangeNotify_QueryInterface(IComputerInfoChangeNotify* This,REFIID riid,void **ppvObject) {
  29614     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  29615 }
  29616 static inline ULONG IComputerInfoChangeNotify_AddRef(IComputerInfoChangeNotify* This) {
  29617     return This->lpVtbl->AddRef(This);
  29618 }
  29619 static inline ULONG IComputerInfoChangeNotify_Release(IComputerInfoChangeNotify* This) {
  29620     return This->lpVtbl->Release(This);
  29621 }
  29622 /*** IComputerInfoChangeNotify methods ***/
  29623 static inline HRESULT IComputerInfoChangeNotify_ComputerInfoChanged(IComputerInfoChangeNotify* This) {
  29624     return This->lpVtbl->ComputerInfoChanged(This);
  29625 }
  29626 #endif
  29627 #endif
  29628 
  29629 #endif
  29630 
  29631 
  29632 #endif  /* __IComputerInfoChangeNotify_INTERFACE_DEFINED__ */
  29633 
  29634 
  29635 #define STR_FILE_SYS_BIND_DATA L"File System Bind Data"
  29636 
  29637 /*****************************************************************************
  29638  * IFileSystemBindData interface
  29639  */
  29640 #ifndef __IFileSystemBindData_INTERFACE_DEFINED__
  29641 #define __IFileSystemBindData_INTERFACE_DEFINED__
  29642 
  29643 DEFINE_GUID(IID_IFileSystemBindData, 0x01e18d10, 0x4d8b, 0x11d2, 0x85,0x5d, 0x00,0x60,0x08,0x05,0x93,0x67);
  29644 #if defined(__cplusplus) && !defined(CINTERFACE)
  29645 MIDL_INTERFACE("01e18d10-4d8b-11d2-855d-006008059367")
  29646 IFileSystemBindData : public IUnknown
  29647 {
  29648     virtual HRESULT STDMETHODCALLTYPE SetFindData(
  29649         const WIN32_FIND_DATAW *pfd) = 0;
  29650 
  29651     virtual HRESULT STDMETHODCALLTYPE GetFindData(
  29652         WIN32_FIND_DATAW *pfd) = 0;
  29653 
  29654 };
  29655 #ifdef __CRT_UUID_DECL
  29656 __CRT_UUID_DECL(IFileSystemBindData, 0x01e18d10, 0x4d8b, 0x11d2, 0x85,0x5d, 0x00,0x60,0x08,0x05,0x93,0x67)
  29657 #endif
  29658 #else
  29659 typedef struct IFileSystemBindDataVtbl {
  29660     BEGIN_INTERFACE
  29661 
  29662     /*** IUnknown methods ***/
  29663     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  29664         IFileSystemBindData *This,
  29665         REFIID riid,
  29666         void **ppvObject);
  29667 
  29668     ULONG (STDMETHODCALLTYPE *AddRef)(
  29669         IFileSystemBindData *This);
  29670 
  29671     ULONG (STDMETHODCALLTYPE *Release)(
  29672         IFileSystemBindData *This);
  29673 
  29674     /*** IFileSystemBindData methods ***/
  29675     HRESULT (STDMETHODCALLTYPE *SetFindData)(
  29676         IFileSystemBindData *This,
  29677         const WIN32_FIND_DATAW *pfd);
  29678 
  29679     HRESULT (STDMETHODCALLTYPE *GetFindData)(
  29680         IFileSystemBindData *This,
  29681         WIN32_FIND_DATAW *pfd);
  29682 
  29683     END_INTERFACE
  29684 } IFileSystemBindDataVtbl;
  29685 
  29686 interface IFileSystemBindData {
  29687     CONST_VTBL IFileSystemBindDataVtbl* lpVtbl;
  29688 };
  29689 
  29690 #ifdef COBJMACROS
  29691 #ifndef WIDL_C_INLINE_WRAPPERS
  29692 /*** IUnknown methods ***/
  29693 #define IFileSystemBindData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  29694 #define IFileSystemBindData_AddRef(This) (This)->lpVtbl->AddRef(This)
  29695 #define IFileSystemBindData_Release(This) (This)->lpVtbl->Release(This)
  29696 /*** IFileSystemBindData methods ***/
  29697 #define IFileSystemBindData_SetFindData(This,pfd) (This)->lpVtbl->SetFindData(This,pfd)
  29698 #define IFileSystemBindData_GetFindData(This,pfd) (This)->lpVtbl->GetFindData(This,pfd)
  29699 #else
  29700 /*** IUnknown methods ***/
  29701 static inline HRESULT IFileSystemBindData_QueryInterface(IFileSystemBindData* This,REFIID riid,void **ppvObject) {
  29702     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  29703 }
  29704 static inline ULONG IFileSystemBindData_AddRef(IFileSystemBindData* This) {
  29705     return This->lpVtbl->AddRef(This);
  29706 }
  29707 static inline ULONG IFileSystemBindData_Release(IFileSystemBindData* This) {
  29708     return This->lpVtbl->Release(This);
  29709 }
  29710 /*** IFileSystemBindData methods ***/
  29711 static inline HRESULT IFileSystemBindData_SetFindData(IFileSystemBindData* This,const WIN32_FIND_DATAW *pfd) {
  29712     return This->lpVtbl->SetFindData(This,pfd);
  29713 }
  29714 static inline HRESULT IFileSystemBindData_GetFindData(IFileSystemBindData* This,WIN32_FIND_DATAW *pfd) {
  29715     return This->lpVtbl->GetFindData(This,pfd);
  29716 }
  29717 #endif
  29718 #endif
  29719 
  29720 #endif
  29721 
  29722 
  29723 #endif  /* __IFileSystemBindData_INTERFACE_DEFINED__ */
  29724 
  29725 
  29726 /*****************************************************************************
  29727  * IFileSystemBindData2 interface
  29728  */
  29729 #ifndef __IFileSystemBindData2_INTERFACE_DEFINED__
  29730 #define __IFileSystemBindData2_INTERFACE_DEFINED__
  29731 
  29732 DEFINE_GUID(IID_IFileSystemBindData2, 0x3acf075f, 0x71db, 0x4afa, 0x81,0xf0, 0x3f,0xc4,0xfd,0xf2,0xa5,0xb8);
  29733 #if defined(__cplusplus) && !defined(CINTERFACE)
  29734 MIDL_INTERFACE("3acf075f-71db-4afa-81f0-3fc4fdf2a5b8")
  29735 IFileSystemBindData2 : public IFileSystemBindData
  29736 {
  29737     virtual HRESULT STDMETHODCALLTYPE SetFileID(
  29738         LARGE_INTEGER liFileID) = 0;
  29739 
  29740     virtual HRESULT STDMETHODCALLTYPE GetFileID(
  29741         LARGE_INTEGER *pliFileID) = 0;
  29742 
  29743     virtual HRESULT STDMETHODCALLTYPE SetJunctionCLSID(
  29744         REFCLSID clsid) = 0;
  29745 
  29746     virtual HRESULT STDMETHODCALLTYPE GetJunctionCLSID(
  29747         CLSID *pclsid) = 0;
  29748 
  29749 };
  29750 #ifdef __CRT_UUID_DECL
  29751 __CRT_UUID_DECL(IFileSystemBindData2, 0x3acf075f, 0x71db, 0x4afa, 0x81,0xf0, 0x3f,0xc4,0xfd,0xf2,0xa5,0xb8)
  29752 #endif
  29753 #else
  29754 typedef struct IFileSystemBindData2Vtbl {
  29755     BEGIN_INTERFACE
  29756 
  29757     /*** IUnknown methods ***/
  29758     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  29759         IFileSystemBindData2 *This,
  29760         REFIID riid,
  29761         void **ppvObject);
  29762 
  29763     ULONG (STDMETHODCALLTYPE *AddRef)(
  29764         IFileSystemBindData2 *This);
  29765 
  29766     ULONG (STDMETHODCALLTYPE *Release)(
  29767         IFileSystemBindData2 *This);
  29768 
  29769     /*** IFileSystemBindData methods ***/
  29770     HRESULT (STDMETHODCALLTYPE *SetFindData)(
  29771         IFileSystemBindData2 *This,
  29772         const WIN32_FIND_DATAW *pfd);
  29773 
  29774     HRESULT (STDMETHODCALLTYPE *GetFindData)(
  29775         IFileSystemBindData2 *This,
  29776         WIN32_FIND_DATAW *pfd);
  29777 
  29778     /*** IFileSystemBindData2 methods ***/
  29779     HRESULT (STDMETHODCALLTYPE *SetFileID)(
  29780         IFileSystemBindData2 *This,
  29781         LARGE_INTEGER liFileID);
  29782 
  29783     HRESULT (STDMETHODCALLTYPE *GetFileID)(
  29784         IFileSystemBindData2 *This,
  29785         LARGE_INTEGER *pliFileID);
  29786 
  29787     HRESULT (STDMETHODCALLTYPE *SetJunctionCLSID)(
  29788         IFileSystemBindData2 *This,
  29789         REFCLSID clsid);
  29790 
  29791     HRESULT (STDMETHODCALLTYPE *GetJunctionCLSID)(
  29792         IFileSystemBindData2 *This,
  29793         CLSID *pclsid);
  29794 
  29795     END_INTERFACE
  29796 } IFileSystemBindData2Vtbl;
  29797 
  29798 interface IFileSystemBindData2 {
  29799     CONST_VTBL IFileSystemBindData2Vtbl* lpVtbl;
  29800 };
  29801 
  29802 #ifdef COBJMACROS
  29803 #ifndef WIDL_C_INLINE_WRAPPERS
  29804 /*** IUnknown methods ***/
  29805 #define IFileSystemBindData2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  29806 #define IFileSystemBindData2_AddRef(This) (This)->lpVtbl->AddRef(This)
  29807 #define IFileSystemBindData2_Release(This) (This)->lpVtbl->Release(This)
  29808 /*** IFileSystemBindData methods ***/
  29809 #define IFileSystemBindData2_SetFindData(This,pfd) (This)->lpVtbl->SetFindData(This,pfd)
  29810 #define IFileSystemBindData2_GetFindData(This,pfd) (This)->lpVtbl->GetFindData(This,pfd)
  29811 /*** IFileSystemBindData2 methods ***/
  29812 #define IFileSystemBindData2_SetFileID(This,liFileID) (This)->lpVtbl->SetFileID(This,liFileID)
  29813 #define IFileSystemBindData2_GetFileID(This,pliFileID) (This)->lpVtbl->GetFileID(This,pliFileID)
  29814 #define IFileSystemBindData2_SetJunctionCLSID(This,clsid) (This)->lpVtbl->SetJunctionCLSID(This,clsid)
  29815 #define IFileSystemBindData2_GetJunctionCLSID(This,pclsid) (This)->lpVtbl->GetJunctionCLSID(This,pclsid)
  29816 #else
  29817 /*** IUnknown methods ***/
  29818 static inline HRESULT IFileSystemBindData2_QueryInterface(IFileSystemBindData2* This,REFIID riid,void **ppvObject) {
  29819     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  29820 }
  29821 static inline ULONG IFileSystemBindData2_AddRef(IFileSystemBindData2* This) {
  29822     return This->lpVtbl->AddRef(This);
  29823 }
  29824 static inline ULONG IFileSystemBindData2_Release(IFileSystemBindData2* This) {
  29825     return This->lpVtbl->Release(This);
  29826 }
  29827 /*** IFileSystemBindData methods ***/
  29828 static inline HRESULT IFileSystemBindData2_SetFindData(IFileSystemBindData2* This,const WIN32_FIND_DATAW *pfd) {
  29829     return This->lpVtbl->SetFindData(This,pfd);
  29830 }
  29831 static inline HRESULT IFileSystemBindData2_GetFindData(IFileSystemBindData2* This,WIN32_FIND_DATAW *pfd) {
  29832     return This->lpVtbl->GetFindData(This,pfd);
  29833 }
  29834 /*** IFileSystemBindData2 methods ***/
  29835 static inline HRESULT IFileSystemBindData2_SetFileID(IFileSystemBindData2* This,LARGE_INTEGER liFileID) {
  29836     return This->lpVtbl->SetFileID(This,liFileID);
  29837 }
  29838 static inline HRESULT IFileSystemBindData2_GetFileID(IFileSystemBindData2* This,LARGE_INTEGER *pliFileID) {
  29839     return This->lpVtbl->GetFileID(This,pliFileID);
  29840 }
  29841 static inline HRESULT IFileSystemBindData2_SetJunctionCLSID(IFileSystemBindData2* This,REFCLSID clsid) {
  29842     return This->lpVtbl->SetJunctionCLSID(This,clsid);
  29843 }
  29844 static inline HRESULT IFileSystemBindData2_GetJunctionCLSID(IFileSystemBindData2* This,CLSID *pclsid) {
  29845     return This->lpVtbl->GetJunctionCLSID(This,pclsid);
  29846 }
  29847 #endif
  29848 #endif
  29849 
  29850 #endif
  29851 
  29852 
  29853 #endif  /* __IFileSystemBindData2_INTERFACE_DEFINED__ */
  29854 
  29855 
  29856 #if NTDDI_VERSION >= NTDDI_WIN7
  29857 /*****************************************************************************
  29858  * ICustomDestinationList interface
  29859  */
  29860 #ifndef __ICustomDestinationList_INTERFACE_DEFINED__
  29861 #define __ICustomDestinationList_INTERFACE_DEFINED__
  29862 
  29863 typedef enum KNOWNDESTCATEGORY {
  29864     KDC_FREQUENT = 1,
  29865     KDC_RECENT = 2
  29866 } KNOWNDESTCATEGORY;
  29867 
  29868 DEFINE_GUID(IID_ICustomDestinationList, 0x6332debf, 0x87b5, 0x4670, 0x90,0xc0, 0x5e,0x57,0xb4,0x08,0xa4,0x9e);
  29869 #if defined(__cplusplus) && !defined(CINTERFACE)
  29870 MIDL_INTERFACE("6332debf-87b5-4670-90c0-5e57b408a49e")
  29871 ICustomDestinationList : public IUnknown
  29872 {
  29873     virtual HRESULT STDMETHODCALLTYPE SetAppID(
  29874         LPCWSTR pszAppID) = 0;
  29875 
  29876     virtual HRESULT STDMETHODCALLTYPE BeginList(
  29877         UINT *pcMinSlots,
  29878         REFIID riid,
  29879         void **ppv) = 0;
  29880 
  29881     virtual HRESULT STDMETHODCALLTYPE AppendCategory(
  29882         LPCWSTR pszCategory,
  29883         IObjectArray *poa) = 0;
  29884 
  29885     virtual HRESULT STDMETHODCALLTYPE AppendKnownCategory(
  29886         KNOWNDESTCATEGORY category) = 0;
  29887 
  29888     virtual HRESULT STDMETHODCALLTYPE AddUserTasks(
  29889         IObjectArray *poa) = 0;
  29890 
  29891     virtual HRESULT STDMETHODCALLTYPE CommitList(
  29892         ) = 0;
  29893 
  29894     virtual HRESULT STDMETHODCALLTYPE GetRemovedDestinations(
  29895         REFIID riid,
  29896         void **ppv) = 0;
  29897 
  29898     virtual HRESULT STDMETHODCALLTYPE DeleteList(
  29899         LPCWSTR pszAppID) = 0;
  29900 
  29901     virtual HRESULT STDMETHODCALLTYPE AbortList(
  29902         ) = 0;
  29903 
  29904 };
  29905 #ifdef __CRT_UUID_DECL
  29906 __CRT_UUID_DECL(ICustomDestinationList, 0x6332debf, 0x87b5, 0x4670, 0x90,0xc0, 0x5e,0x57,0xb4,0x08,0xa4,0x9e)
  29907 #endif
  29908 #else
  29909 typedef struct ICustomDestinationListVtbl {
  29910     BEGIN_INTERFACE
  29911 
  29912     /*** IUnknown methods ***/
  29913     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  29914         ICustomDestinationList *This,
  29915         REFIID riid,
  29916         void **ppvObject);
  29917 
  29918     ULONG (STDMETHODCALLTYPE *AddRef)(
  29919         ICustomDestinationList *This);
  29920 
  29921     ULONG (STDMETHODCALLTYPE *Release)(
  29922         ICustomDestinationList *This);
  29923 
  29924     /*** ICustomDestinationList methods ***/
  29925     HRESULT (STDMETHODCALLTYPE *SetAppID)(
  29926         ICustomDestinationList *This,
  29927         LPCWSTR pszAppID);
  29928 
  29929     HRESULT (STDMETHODCALLTYPE *BeginList)(
  29930         ICustomDestinationList *This,
  29931         UINT *pcMinSlots,
  29932         REFIID riid,
  29933         void **ppv);
  29934 
  29935     HRESULT (STDMETHODCALLTYPE *AppendCategory)(
  29936         ICustomDestinationList *This,
  29937         LPCWSTR pszCategory,
  29938         IObjectArray *poa);
  29939 
  29940     HRESULT (STDMETHODCALLTYPE *AppendKnownCategory)(
  29941         ICustomDestinationList *This,
  29942         KNOWNDESTCATEGORY category);
  29943 
  29944     HRESULT (STDMETHODCALLTYPE *AddUserTasks)(
  29945         ICustomDestinationList *This,
  29946         IObjectArray *poa);
  29947 
  29948     HRESULT (STDMETHODCALLTYPE *CommitList)(
  29949         ICustomDestinationList *This);
  29950 
  29951     HRESULT (STDMETHODCALLTYPE *GetRemovedDestinations)(
  29952         ICustomDestinationList *This,
  29953         REFIID riid,
  29954         void **ppv);
  29955 
  29956     HRESULT (STDMETHODCALLTYPE *DeleteList)(
  29957         ICustomDestinationList *This,
  29958         LPCWSTR pszAppID);
  29959 
  29960     HRESULT (STDMETHODCALLTYPE *AbortList)(
  29961         ICustomDestinationList *This);
  29962 
  29963     END_INTERFACE
  29964 } ICustomDestinationListVtbl;
  29965 
  29966 interface ICustomDestinationList {
  29967     CONST_VTBL ICustomDestinationListVtbl* lpVtbl;
  29968 };
  29969 
  29970 #ifdef COBJMACROS
  29971 #ifndef WIDL_C_INLINE_WRAPPERS
  29972 /*** IUnknown methods ***/
  29973 #define ICustomDestinationList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  29974 #define ICustomDestinationList_AddRef(This) (This)->lpVtbl->AddRef(This)
  29975 #define ICustomDestinationList_Release(This) (This)->lpVtbl->Release(This)
  29976 /*** ICustomDestinationList methods ***/
  29977 #define ICustomDestinationList_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
  29978 #define ICustomDestinationList_BeginList(This,pcMinSlots,riid,ppv) (This)->lpVtbl->BeginList(This,pcMinSlots,riid,ppv)
  29979 #define ICustomDestinationList_AppendCategory(This,pszCategory,poa) (This)->lpVtbl->AppendCategory(This,pszCategory,poa)
  29980 #define ICustomDestinationList_AppendKnownCategory(This,category) (This)->lpVtbl->AppendKnownCategory(This,category)
  29981 #define ICustomDestinationList_AddUserTasks(This,poa) (This)->lpVtbl->AddUserTasks(This,poa)
  29982 #define ICustomDestinationList_CommitList(This) (This)->lpVtbl->CommitList(This)
  29983 #define ICustomDestinationList_GetRemovedDestinations(This,riid,ppv) (This)->lpVtbl->GetRemovedDestinations(This,riid,ppv)
  29984 #define ICustomDestinationList_DeleteList(This,pszAppID) (This)->lpVtbl->DeleteList(This,pszAppID)
  29985 #define ICustomDestinationList_AbortList(This) (This)->lpVtbl->AbortList(This)
  29986 #else
  29987 /*** IUnknown methods ***/
  29988 static inline HRESULT ICustomDestinationList_QueryInterface(ICustomDestinationList* This,REFIID riid,void **ppvObject) {
  29989     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  29990 }
  29991 static inline ULONG ICustomDestinationList_AddRef(ICustomDestinationList* This) {
  29992     return This->lpVtbl->AddRef(This);
  29993 }
  29994 static inline ULONG ICustomDestinationList_Release(ICustomDestinationList* This) {
  29995     return This->lpVtbl->Release(This);
  29996 }
  29997 /*** ICustomDestinationList methods ***/
  29998 static inline HRESULT ICustomDestinationList_SetAppID(ICustomDestinationList* This,LPCWSTR pszAppID) {
  29999     return This->lpVtbl->SetAppID(This,pszAppID);
  30000 }
  30001 static inline HRESULT ICustomDestinationList_BeginList(ICustomDestinationList* This,UINT *pcMinSlots,REFIID riid,void **ppv) {
  30002     return This->lpVtbl->BeginList(This,pcMinSlots,riid,ppv);
  30003 }
  30004 static inline HRESULT ICustomDestinationList_AppendCategory(ICustomDestinationList* This,LPCWSTR pszCategory,IObjectArray *poa) {
  30005     return This->lpVtbl->AppendCategory(This,pszCategory,poa);
  30006 }
  30007 static inline HRESULT ICustomDestinationList_AppendKnownCategory(ICustomDestinationList* This,KNOWNDESTCATEGORY category) {
  30008     return This->lpVtbl->AppendKnownCategory(This,category);
  30009 }
  30010 static inline HRESULT ICustomDestinationList_AddUserTasks(ICustomDestinationList* This,IObjectArray *poa) {
  30011     return This->lpVtbl->AddUserTasks(This,poa);
  30012 }
  30013 static inline HRESULT ICustomDestinationList_CommitList(ICustomDestinationList* This) {
  30014     return This->lpVtbl->CommitList(This);
  30015 }
  30016 static inline HRESULT ICustomDestinationList_GetRemovedDestinations(ICustomDestinationList* This,REFIID riid,void **ppv) {
  30017     return This->lpVtbl->GetRemovedDestinations(This,riid,ppv);
  30018 }
  30019 static inline HRESULT ICustomDestinationList_DeleteList(ICustomDestinationList* This,LPCWSTR pszAppID) {
  30020     return This->lpVtbl->DeleteList(This,pszAppID);
  30021 }
  30022 static inline HRESULT ICustomDestinationList_AbortList(ICustomDestinationList* This) {
  30023     return This->lpVtbl->AbortList(This);
  30024 }
  30025 #endif
  30026 #endif
  30027 
  30028 #endif
  30029 
  30030 
  30031 #endif  /* __ICustomDestinationList_INTERFACE_DEFINED__ */
  30032 
  30033 
  30034 /*****************************************************************************
  30035  * IApplicationDestinations interface
  30036  */
  30037 #ifndef __IApplicationDestinations_INTERFACE_DEFINED__
  30038 #define __IApplicationDestinations_INTERFACE_DEFINED__
  30039 
  30040 DEFINE_GUID(IID_IApplicationDestinations, 0x12337d35, 0x94c6, 0x48a0, 0xbc,0xe7, 0x6a,0x9c,0x69,0xd4,0xd6,0x00);
  30041 #if defined(__cplusplus) && !defined(CINTERFACE)
  30042 MIDL_INTERFACE("12337d35-94c6-48a0-bce7-6a9c69d4d600")
  30043 IApplicationDestinations : public IUnknown
  30044 {
  30045     virtual HRESULT STDMETHODCALLTYPE SetAppID(
  30046         LPCWSTR pszAppID) = 0;
  30047 
  30048     virtual HRESULT STDMETHODCALLTYPE RemoveDestination(
  30049         IUnknown *punk) = 0;
  30050 
  30051     virtual HRESULT STDMETHODCALLTYPE RemoveAllDestinations(
  30052         ) = 0;
  30053 
  30054 };
  30055 #ifdef __CRT_UUID_DECL
  30056 __CRT_UUID_DECL(IApplicationDestinations, 0x12337d35, 0x94c6, 0x48a0, 0xbc,0xe7, 0x6a,0x9c,0x69,0xd4,0xd6,0x00)
  30057 #endif
  30058 #else
  30059 typedef struct IApplicationDestinationsVtbl {
  30060     BEGIN_INTERFACE
  30061 
  30062     /*** IUnknown methods ***/
  30063     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  30064         IApplicationDestinations *This,
  30065         REFIID riid,
  30066         void **ppvObject);
  30067 
  30068     ULONG (STDMETHODCALLTYPE *AddRef)(
  30069         IApplicationDestinations *This);
  30070 
  30071     ULONG (STDMETHODCALLTYPE *Release)(
  30072         IApplicationDestinations *This);
  30073 
  30074     /*** IApplicationDestinations methods ***/
  30075     HRESULT (STDMETHODCALLTYPE *SetAppID)(
  30076         IApplicationDestinations *This,
  30077         LPCWSTR pszAppID);
  30078 
  30079     HRESULT (STDMETHODCALLTYPE *RemoveDestination)(
  30080         IApplicationDestinations *This,
  30081         IUnknown *punk);
  30082 
  30083     HRESULT (STDMETHODCALLTYPE *RemoveAllDestinations)(
  30084         IApplicationDestinations *This);
  30085 
  30086     END_INTERFACE
  30087 } IApplicationDestinationsVtbl;
  30088 
  30089 interface IApplicationDestinations {
  30090     CONST_VTBL IApplicationDestinationsVtbl* lpVtbl;
  30091 };
  30092 
  30093 #ifdef COBJMACROS
  30094 #ifndef WIDL_C_INLINE_WRAPPERS
  30095 /*** IUnknown methods ***/
  30096 #define IApplicationDestinations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  30097 #define IApplicationDestinations_AddRef(This) (This)->lpVtbl->AddRef(This)
  30098 #define IApplicationDestinations_Release(This) (This)->lpVtbl->Release(This)
  30099 /*** IApplicationDestinations methods ***/
  30100 #define IApplicationDestinations_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
  30101 #define IApplicationDestinations_RemoveDestination(This,punk) (This)->lpVtbl->RemoveDestination(This,punk)
  30102 #define IApplicationDestinations_RemoveAllDestinations(This) (This)->lpVtbl->RemoveAllDestinations(This)
  30103 #else
  30104 /*** IUnknown methods ***/
  30105 static inline HRESULT IApplicationDestinations_QueryInterface(IApplicationDestinations* This,REFIID riid,void **ppvObject) {
  30106     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  30107 }
  30108 static inline ULONG IApplicationDestinations_AddRef(IApplicationDestinations* This) {
  30109     return This->lpVtbl->AddRef(This);
  30110 }
  30111 static inline ULONG IApplicationDestinations_Release(IApplicationDestinations* This) {
  30112     return This->lpVtbl->Release(This);
  30113 }
  30114 /*** IApplicationDestinations methods ***/
  30115 static inline HRESULT IApplicationDestinations_SetAppID(IApplicationDestinations* This,LPCWSTR pszAppID) {
  30116     return This->lpVtbl->SetAppID(This,pszAppID);
  30117 }
  30118 static inline HRESULT IApplicationDestinations_RemoveDestination(IApplicationDestinations* This,IUnknown *punk) {
  30119     return This->lpVtbl->RemoveDestination(This,punk);
  30120 }
  30121 static inline HRESULT IApplicationDestinations_RemoveAllDestinations(IApplicationDestinations* This) {
  30122     return This->lpVtbl->RemoveAllDestinations(This);
  30123 }
  30124 #endif
  30125 #endif
  30126 
  30127 #endif
  30128 
  30129 
  30130 #endif  /* __IApplicationDestinations_INTERFACE_DEFINED__ */
  30131 
  30132 
  30133 /*****************************************************************************
  30134  * IApplicationDocumentLists interface
  30135  */
  30136 #ifndef __IApplicationDocumentLists_INTERFACE_DEFINED__
  30137 #define __IApplicationDocumentLists_INTERFACE_DEFINED__
  30138 
  30139 typedef enum APPDOCLISTTYPE {
  30140     ADLT_RECENT = 0,
  30141     ADLT_FREQUENT = 1
  30142 } APPDOCLISTTYPE;
  30143 
  30144 DEFINE_GUID(IID_IApplicationDocumentLists, 0x3c594f9f, 0x9f30, 0x47a1, 0x97,0x9a, 0xc9,0xe8,0x3d,0x3d,0x0a,0x06);
  30145 #if defined(__cplusplus) && !defined(CINTERFACE)
  30146 MIDL_INTERFACE("3c594f9f-9f30-47a1-979a-c9e83d3d0a06")
  30147 IApplicationDocumentLists : public IUnknown
  30148 {
  30149     virtual HRESULT STDMETHODCALLTYPE SetAppID(
  30150         LPCWSTR pszAppID) = 0;
  30151 
  30152     virtual HRESULT STDMETHODCALLTYPE GetList(
  30153         APPDOCLISTTYPE listtype,
  30154         UINT cItemsDesired,
  30155         REFIID riid,
  30156         void **ppv) = 0;
  30157 
  30158 };
  30159 #ifdef __CRT_UUID_DECL
  30160 __CRT_UUID_DECL(IApplicationDocumentLists, 0x3c594f9f, 0x9f30, 0x47a1, 0x97,0x9a, 0xc9,0xe8,0x3d,0x3d,0x0a,0x06)
  30161 #endif
  30162 #else
  30163 typedef struct IApplicationDocumentListsVtbl {
  30164     BEGIN_INTERFACE
  30165 
  30166     /*** IUnknown methods ***/
  30167     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  30168         IApplicationDocumentLists *This,
  30169         REFIID riid,
  30170         void **ppvObject);
  30171 
  30172     ULONG (STDMETHODCALLTYPE *AddRef)(
  30173         IApplicationDocumentLists *This);
  30174 
  30175     ULONG (STDMETHODCALLTYPE *Release)(
  30176         IApplicationDocumentLists *This);
  30177 
  30178     /*** IApplicationDocumentLists methods ***/
  30179     HRESULT (STDMETHODCALLTYPE *SetAppID)(
  30180         IApplicationDocumentLists *This,
  30181         LPCWSTR pszAppID);
  30182 
  30183     HRESULT (STDMETHODCALLTYPE *GetList)(
  30184         IApplicationDocumentLists *This,
  30185         APPDOCLISTTYPE listtype,
  30186         UINT cItemsDesired,
  30187         REFIID riid,
  30188         void **ppv);
  30189 
  30190     END_INTERFACE
  30191 } IApplicationDocumentListsVtbl;
  30192 
  30193 interface IApplicationDocumentLists {
  30194     CONST_VTBL IApplicationDocumentListsVtbl* lpVtbl;
  30195 };
  30196 
  30197 #ifdef COBJMACROS
  30198 #ifndef WIDL_C_INLINE_WRAPPERS
  30199 /*** IUnknown methods ***/
  30200 #define IApplicationDocumentLists_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  30201 #define IApplicationDocumentLists_AddRef(This) (This)->lpVtbl->AddRef(This)
  30202 #define IApplicationDocumentLists_Release(This) (This)->lpVtbl->Release(This)
  30203 /*** IApplicationDocumentLists methods ***/
  30204 #define IApplicationDocumentLists_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
  30205 #define IApplicationDocumentLists_GetList(This,listtype,cItemsDesired,riid,ppv) (This)->lpVtbl->GetList(This,listtype,cItemsDesired,riid,ppv)
  30206 #else
  30207 /*** IUnknown methods ***/
  30208 static inline HRESULT IApplicationDocumentLists_QueryInterface(IApplicationDocumentLists* This,REFIID riid,void **ppvObject) {
  30209     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  30210 }
  30211 static inline ULONG IApplicationDocumentLists_AddRef(IApplicationDocumentLists* This) {
  30212     return This->lpVtbl->AddRef(This);
  30213 }
  30214 static inline ULONG IApplicationDocumentLists_Release(IApplicationDocumentLists* This) {
  30215     return This->lpVtbl->Release(This);
  30216 }
  30217 /*** IApplicationDocumentLists methods ***/
  30218 static inline HRESULT IApplicationDocumentLists_SetAppID(IApplicationDocumentLists* This,LPCWSTR pszAppID) {
  30219     return This->lpVtbl->SetAppID(This,pszAppID);
  30220 }
  30221 static inline HRESULT IApplicationDocumentLists_GetList(IApplicationDocumentLists* This,APPDOCLISTTYPE listtype,UINT cItemsDesired,REFIID riid,void **ppv) {
  30222     return This->lpVtbl->GetList(This,listtype,cItemsDesired,riid,ppv);
  30223 }
  30224 #endif
  30225 #endif
  30226 
  30227 #endif
  30228 
  30229 
  30230 #endif  /* __IApplicationDocumentLists_INTERFACE_DEFINED__ */
  30231 
  30232 
  30233 /*****************************************************************************
  30234  * IObjectWithAppUserModelID interface
  30235  */
  30236 #ifndef __IObjectWithAppUserModelID_INTERFACE_DEFINED__
  30237 #define __IObjectWithAppUserModelID_INTERFACE_DEFINED__
  30238 
  30239 DEFINE_GUID(IID_IObjectWithAppUserModelID, 0x36db0196, 0x9665, 0x46d1, 0x9b,0xa7, 0xd3,0x70,0x9e,0xec,0xf9,0xed);
  30240 #if defined(__cplusplus) && !defined(CINTERFACE)
  30241 MIDL_INTERFACE("36db0196-9665-46d1-9ba7-d3709eecf9ed")
  30242 IObjectWithAppUserModelID : public IUnknown
  30243 {
  30244     virtual HRESULT STDMETHODCALLTYPE SetAppID(
  30245         LPCWSTR pszAppID) = 0;
  30246 
  30247     virtual HRESULT STDMETHODCALLTYPE GetAppID(
  30248         LPWSTR *ppszAppID) = 0;
  30249 
  30250 };
  30251 #ifdef __CRT_UUID_DECL
  30252 __CRT_UUID_DECL(IObjectWithAppUserModelID, 0x36db0196, 0x9665, 0x46d1, 0x9b,0xa7, 0xd3,0x70,0x9e,0xec,0xf9,0xed)
  30253 #endif
  30254 #else
  30255 typedef struct IObjectWithAppUserModelIDVtbl {
  30256     BEGIN_INTERFACE
  30257 
  30258     /*** IUnknown methods ***/
  30259     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  30260         IObjectWithAppUserModelID *This,
  30261         REFIID riid,
  30262         void **ppvObject);
  30263 
  30264     ULONG (STDMETHODCALLTYPE *AddRef)(
  30265         IObjectWithAppUserModelID *This);
  30266 
  30267     ULONG (STDMETHODCALLTYPE *Release)(
  30268         IObjectWithAppUserModelID *This);
  30269 
  30270     /*** IObjectWithAppUserModelID methods ***/
  30271     HRESULT (STDMETHODCALLTYPE *SetAppID)(
  30272         IObjectWithAppUserModelID *This,
  30273         LPCWSTR pszAppID);
  30274 
  30275     HRESULT (STDMETHODCALLTYPE *GetAppID)(
  30276         IObjectWithAppUserModelID *This,
  30277         LPWSTR *ppszAppID);
  30278 
  30279     END_INTERFACE
  30280 } IObjectWithAppUserModelIDVtbl;
  30281 
  30282 interface IObjectWithAppUserModelID {
  30283     CONST_VTBL IObjectWithAppUserModelIDVtbl* lpVtbl;
  30284 };
  30285 
  30286 #ifdef COBJMACROS
  30287 #ifndef WIDL_C_INLINE_WRAPPERS
  30288 /*** IUnknown methods ***/
  30289 #define IObjectWithAppUserModelID_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  30290 #define IObjectWithAppUserModelID_AddRef(This) (This)->lpVtbl->AddRef(This)
  30291 #define IObjectWithAppUserModelID_Release(This) (This)->lpVtbl->Release(This)
  30292 /*** IObjectWithAppUserModelID methods ***/
  30293 #define IObjectWithAppUserModelID_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
  30294 #define IObjectWithAppUserModelID_GetAppID(This,ppszAppID) (This)->lpVtbl->GetAppID(This,ppszAppID)
  30295 #else
  30296 /*** IUnknown methods ***/
  30297 static inline HRESULT IObjectWithAppUserModelID_QueryInterface(IObjectWithAppUserModelID* This,REFIID riid,void **ppvObject) {
  30298     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  30299 }
  30300 static inline ULONG IObjectWithAppUserModelID_AddRef(IObjectWithAppUserModelID* This) {
  30301     return This->lpVtbl->AddRef(This);
  30302 }
  30303 static inline ULONG IObjectWithAppUserModelID_Release(IObjectWithAppUserModelID* This) {
  30304     return This->lpVtbl->Release(This);
  30305 }
  30306 /*** IObjectWithAppUserModelID methods ***/
  30307 static inline HRESULT IObjectWithAppUserModelID_SetAppID(IObjectWithAppUserModelID* This,LPCWSTR pszAppID) {
  30308     return This->lpVtbl->SetAppID(This,pszAppID);
  30309 }
  30310 static inline HRESULT IObjectWithAppUserModelID_GetAppID(IObjectWithAppUserModelID* This,LPWSTR *ppszAppID) {
  30311     return This->lpVtbl->GetAppID(This,ppszAppID);
  30312 }
  30313 #endif
  30314 #endif
  30315 
  30316 #endif
  30317 
  30318 
  30319 #endif  /* __IObjectWithAppUserModelID_INTERFACE_DEFINED__ */
  30320 
  30321 
  30322 /*****************************************************************************
  30323  * IObjectWithProgID interface
  30324  */
  30325 #ifndef __IObjectWithProgID_INTERFACE_DEFINED__
  30326 #define __IObjectWithProgID_INTERFACE_DEFINED__
  30327 
  30328 DEFINE_GUID(IID_IObjectWithProgID, 0x71e806fb, 0x8dee, 0x46fc, 0xbf,0x8c, 0x77,0x48,0xa8,0xa1,0xae,0x13);
  30329 #if defined(__cplusplus) && !defined(CINTERFACE)
  30330 MIDL_INTERFACE("71e806fb-8dee-46fc-bf8c-7748a8a1ae13")
  30331 IObjectWithProgID : public IUnknown
  30332 {
  30333     virtual HRESULT STDMETHODCALLTYPE SetProgID(
  30334         LPCWSTR pszProgID) = 0;
  30335 
  30336     virtual HRESULT STDMETHODCALLTYPE GetProgID(
  30337         LPWSTR *ppszProgID) = 0;
  30338 
  30339 };
  30340 #ifdef __CRT_UUID_DECL
  30341 __CRT_UUID_DECL(IObjectWithProgID, 0x71e806fb, 0x8dee, 0x46fc, 0xbf,0x8c, 0x77,0x48,0xa8,0xa1,0xae,0x13)
  30342 #endif
  30343 #else
  30344 typedef struct IObjectWithProgIDVtbl {
  30345     BEGIN_INTERFACE
  30346 
  30347     /*** IUnknown methods ***/
  30348     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  30349         IObjectWithProgID *This,
  30350         REFIID riid,
  30351         void **ppvObject);
  30352 
  30353     ULONG (STDMETHODCALLTYPE *AddRef)(
  30354         IObjectWithProgID *This);
  30355 
  30356     ULONG (STDMETHODCALLTYPE *Release)(
  30357         IObjectWithProgID *This);
  30358 
  30359     /*** IObjectWithProgID methods ***/
  30360     HRESULT (STDMETHODCALLTYPE *SetProgID)(
  30361         IObjectWithProgID *This,
  30362         LPCWSTR pszProgID);
  30363 
  30364     HRESULT (STDMETHODCALLTYPE *GetProgID)(
  30365         IObjectWithProgID *This,
  30366         LPWSTR *ppszProgID);
  30367 
  30368     END_INTERFACE
  30369 } IObjectWithProgIDVtbl;
  30370 
  30371 interface IObjectWithProgID {
  30372     CONST_VTBL IObjectWithProgIDVtbl* lpVtbl;
  30373 };
  30374 
  30375 #ifdef COBJMACROS
  30376 #ifndef WIDL_C_INLINE_WRAPPERS
  30377 /*** IUnknown methods ***/
  30378 #define IObjectWithProgID_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  30379 #define IObjectWithProgID_AddRef(This) (This)->lpVtbl->AddRef(This)
  30380 #define IObjectWithProgID_Release(This) (This)->lpVtbl->Release(This)
  30381 /*** IObjectWithProgID methods ***/
  30382 #define IObjectWithProgID_SetProgID(This,pszProgID) (This)->lpVtbl->SetProgID(This,pszProgID)
  30383 #define IObjectWithProgID_GetProgID(This,ppszProgID) (This)->lpVtbl->GetProgID(This,ppszProgID)
  30384 #else
  30385 /*** IUnknown methods ***/
  30386 static inline HRESULT IObjectWithProgID_QueryInterface(IObjectWithProgID* This,REFIID riid,void **ppvObject) {
  30387     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  30388 }
  30389 static inline ULONG IObjectWithProgID_AddRef(IObjectWithProgID* This) {
  30390     return This->lpVtbl->AddRef(This);
  30391 }
  30392 static inline ULONG IObjectWithProgID_Release(IObjectWithProgID* This) {
  30393     return This->lpVtbl->Release(This);
  30394 }
  30395 /*** IObjectWithProgID methods ***/
  30396 static inline HRESULT IObjectWithProgID_SetProgID(IObjectWithProgID* This,LPCWSTR pszProgID) {
  30397     return This->lpVtbl->SetProgID(This,pszProgID);
  30398 }
  30399 static inline HRESULT IObjectWithProgID_GetProgID(IObjectWithProgID* This,LPWSTR *ppszProgID) {
  30400     return This->lpVtbl->GetProgID(This,ppszProgID);
  30401 }
  30402 #endif
  30403 #endif
  30404 
  30405 #endif
  30406 
  30407 
  30408 #endif  /* __IObjectWithProgID_INTERFACE_DEFINED__ */
  30409 
  30410 
  30411 /*****************************************************************************
  30412  * IUpdateIDList interface
  30413  */
  30414 #ifndef __IUpdateIDList_INTERFACE_DEFINED__
  30415 #define __IUpdateIDList_INTERFACE_DEFINED__
  30416 
  30417 DEFINE_GUID(IID_IUpdateIDList, 0x6589b6d2, 0x5f8d, 0x4b9e, 0xb7,0xe0, 0x23,0xcd,0xd9,0x71,0x7d,0x8c);
  30418 #if defined(__cplusplus) && !defined(CINTERFACE)
  30419 MIDL_INTERFACE("6589b6d2-5f8d-4b9e-b7e0-23cdd9717d8c")
  30420 IUpdateIDList : public IUnknown
  30421 {
  30422     virtual HRESULT STDMETHODCALLTYPE Update(
  30423         IBindCtx *pbc,
  30424         PCUITEMID_CHILD pidlIn,
  30425         PITEMID_CHILD *ppidlOut) = 0;
  30426 
  30427 };
  30428 #ifdef __CRT_UUID_DECL
  30429 __CRT_UUID_DECL(IUpdateIDList, 0x6589b6d2, 0x5f8d, 0x4b9e, 0xb7,0xe0, 0x23,0xcd,0xd9,0x71,0x7d,0x8c)
  30430 #endif
  30431 #else
  30432 typedef struct IUpdateIDListVtbl {
  30433     BEGIN_INTERFACE
  30434 
  30435     /*** IUnknown methods ***/
  30436     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  30437         IUpdateIDList *This,
  30438         REFIID riid,
  30439         void **ppvObject);
  30440 
  30441     ULONG (STDMETHODCALLTYPE *AddRef)(
  30442         IUpdateIDList *This);
  30443 
  30444     ULONG (STDMETHODCALLTYPE *Release)(
  30445         IUpdateIDList *This);
  30446 
  30447     /*** IUpdateIDList methods ***/
  30448     HRESULT (STDMETHODCALLTYPE *Update)(
  30449         IUpdateIDList *This,
  30450         IBindCtx *pbc,
  30451         PCUITEMID_CHILD pidlIn,
  30452         PITEMID_CHILD *ppidlOut);
  30453 
  30454     END_INTERFACE
  30455 } IUpdateIDListVtbl;
  30456 
  30457 interface IUpdateIDList {
  30458     CONST_VTBL IUpdateIDListVtbl* lpVtbl;
  30459 };
  30460 
  30461 #ifdef COBJMACROS
  30462 #ifndef WIDL_C_INLINE_WRAPPERS
  30463 /*** IUnknown methods ***/
  30464 #define IUpdateIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  30465 #define IUpdateIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
  30466 #define IUpdateIDList_Release(This) (This)->lpVtbl->Release(This)
  30467 /*** IUpdateIDList methods ***/
  30468 #define IUpdateIDList_Update(This,pbc,pidlIn,ppidlOut) (This)->lpVtbl->Update(This,pbc,pidlIn,ppidlOut)
  30469 #else
  30470 /*** IUnknown methods ***/
  30471 static inline HRESULT IUpdateIDList_QueryInterface(IUpdateIDList* This,REFIID riid,void **ppvObject) {
  30472     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  30473 }
  30474 static inline ULONG IUpdateIDList_AddRef(IUpdateIDList* This) {
  30475     return This->lpVtbl->AddRef(This);
  30476 }
  30477 static inline ULONG IUpdateIDList_Release(IUpdateIDList* This) {
  30478     return This->lpVtbl->Release(This);
  30479 }
  30480 /*** IUpdateIDList methods ***/
  30481 static inline HRESULT IUpdateIDList_Update(IUpdateIDList* This,IBindCtx *pbc,PCUITEMID_CHILD pidlIn,PITEMID_CHILD *ppidlOut) {
  30482     return This->lpVtbl->Update(This,pbc,pidlIn,ppidlOut);
  30483 }
  30484 #endif
  30485 #endif
  30486 
  30487 #endif
  30488 
  30489 
  30490 #endif  /* __IUpdateIDList_INTERFACE_DEFINED__ */
  30491 
  30492 
  30493 SHSTDAPI SetCurrentProcessExplicitAppUserModelID(PCWSTR AppID);
  30494 SHSTDAPI GetCurrentProcessExplicitAppUserModelID(PWSTR *AppID);
  30495 #endif
  30496 
  30497 /*****************************************************************************
  30498  * IDesktopGadget interface
  30499  */
  30500 #ifndef __IDesktopGadget_INTERFACE_DEFINED__
  30501 #define __IDesktopGadget_INTERFACE_DEFINED__
  30502 
  30503 DEFINE_GUID(IID_IDesktopGadget, 0xc1646bc4, 0xf298, 0x4f91, 0xa2,0x04, 0xeb,0x2d,0xd1,0x70,0x9d,0x1a);
  30504 #if defined(__cplusplus) && !defined(CINTERFACE)
  30505 MIDL_INTERFACE("c1646bc4-f298-4f91-a204-eb2dd1709d1a")
  30506 IDesktopGadget : public IUnknown
  30507 {
  30508     virtual HRESULT STDMETHODCALLTYPE RunGadget(
  30509         LPCWSTR gadgetPath) = 0;
  30510 
  30511 };
  30512 #ifdef __CRT_UUID_DECL
  30513 __CRT_UUID_DECL(IDesktopGadget, 0xc1646bc4, 0xf298, 0x4f91, 0xa2,0x04, 0xeb,0x2d,0xd1,0x70,0x9d,0x1a)
  30514 #endif
  30515 #else
  30516 typedef struct IDesktopGadgetVtbl {
  30517     BEGIN_INTERFACE
  30518 
  30519     /*** IUnknown methods ***/
  30520     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  30521         IDesktopGadget *This,
  30522         REFIID riid,
  30523         void **ppvObject);
  30524 
  30525     ULONG (STDMETHODCALLTYPE *AddRef)(
  30526         IDesktopGadget *This);
  30527 
  30528     ULONG (STDMETHODCALLTYPE *Release)(
  30529         IDesktopGadget *This);
  30530 
  30531     /*** IDesktopGadget methods ***/
  30532     HRESULT (STDMETHODCALLTYPE *RunGadget)(
  30533         IDesktopGadget *This,
  30534         LPCWSTR gadgetPath);
  30535 
  30536     END_INTERFACE
  30537 } IDesktopGadgetVtbl;
  30538 
  30539 interface IDesktopGadget {
  30540     CONST_VTBL IDesktopGadgetVtbl* lpVtbl;
  30541 };
  30542 
  30543 #ifdef COBJMACROS
  30544 #ifndef WIDL_C_INLINE_WRAPPERS
  30545 /*** IUnknown methods ***/
  30546 #define IDesktopGadget_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  30547 #define IDesktopGadget_AddRef(This) (This)->lpVtbl->AddRef(This)
  30548 #define IDesktopGadget_Release(This) (This)->lpVtbl->Release(This)
  30549 /*** IDesktopGadget methods ***/
  30550 #define IDesktopGadget_RunGadget(This,gadgetPath) (This)->lpVtbl->RunGadget(This,gadgetPath)
  30551 #else
  30552 /*** IUnknown methods ***/
  30553 static inline HRESULT IDesktopGadget_QueryInterface(IDesktopGadget* This,REFIID riid,void **ppvObject) {
  30554     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  30555 }
  30556 static inline ULONG IDesktopGadget_AddRef(IDesktopGadget* This) {
  30557     return This->lpVtbl->AddRef(This);
  30558 }
  30559 static inline ULONG IDesktopGadget_Release(IDesktopGadget* This) {
  30560     return This->lpVtbl->Release(This);
  30561 }
  30562 /*** IDesktopGadget methods ***/
  30563 static inline HRESULT IDesktopGadget_RunGadget(IDesktopGadget* This,LPCWSTR gadgetPath) {
  30564     return This->lpVtbl->RunGadget(This,gadgetPath);
  30565 }
  30566 #endif
  30567 #endif
  30568 
  30569 #endif
  30570 
  30571 
  30572 #endif  /* __IDesktopGadget_INTERFACE_DEFINED__ */
  30573 
  30574 
  30575 #if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
  30576 /*****************************************************************************
  30577  * IVirtualDesktopManager interface
  30578  */
  30579 #ifndef __IVirtualDesktopManager_INTERFACE_DEFINED__
  30580 #define __IVirtualDesktopManager_INTERFACE_DEFINED__
  30581 
  30582 DEFINE_GUID(IID_IVirtualDesktopManager, 0xa5cd92ff, 0x29be, 0x454c, 0x8d,0x04, 0xd8,0x28,0x79,0xfb,0x3f,0x1b);
  30583 #if defined(__cplusplus) && !defined(CINTERFACE)
  30584 MIDL_INTERFACE("a5cd92ff-29be-454c-8d04-d82879fb3f1b")
  30585 IVirtualDesktopManager : public IUnknown
  30586 {
  30587     virtual HRESULT STDMETHODCALLTYPE IsWindowOnCurrentVirtualDesktop(
  30588         HWND topLevelWindow,
  30589         WINBOOL *onCurrentDesktop) = 0;
  30590 
  30591     virtual HRESULT STDMETHODCALLTYPE GetWindowDesktopId(
  30592         HWND topLevelWindow,
  30593         GUID *desktopId) = 0;
  30594 
  30595     virtual HRESULT STDMETHODCALLTYPE MoveWindowToDesktop(
  30596         HWND topLevelWindow,
  30597         REFGUID desktopId) = 0;
  30598 
  30599 };
  30600 #ifdef __CRT_UUID_DECL
  30601 __CRT_UUID_DECL(IVirtualDesktopManager, 0xa5cd92ff, 0x29be, 0x454c, 0x8d,0x04, 0xd8,0x28,0x79,0xfb,0x3f,0x1b)
  30602 #endif
  30603 #else
  30604 typedef struct IVirtualDesktopManagerVtbl {
  30605     BEGIN_INTERFACE
  30606 
  30607     /*** IUnknown methods ***/
  30608     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  30609         IVirtualDesktopManager *This,
  30610         REFIID riid,
  30611         void **ppvObject);
  30612 
  30613     ULONG (STDMETHODCALLTYPE *AddRef)(
  30614         IVirtualDesktopManager *This);
  30615 
  30616     ULONG (STDMETHODCALLTYPE *Release)(
  30617         IVirtualDesktopManager *This);
  30618 
  30619     /*** IVirtualDesktopManager methods ***/
  30620     HRESULT (STDMETHODCALLTYPE *IsWindowOnCurrentVirtualDesktop)(
  30621         IVirtualDesktopManager *This,
  30622         HWND topLevelWindow,
  30623         WINBOOL *onCurrentDesktop);
  30624 
  30625     HRESULT (STDMETHODCALLTYPE *GetWindowDesktopId)(
  30626         IVirtualDesktopManager *This,
  30627         HWND topLevelWindow,
  30628         GUID *desktopId);
  30629 
  30630     HRESULT (STDMETHODCALLTYPE *MoveWindowToDesktop)(
  30631         IVirtualDesktopManager *This,
  30632         HWND topLevelWindow,
  30633         REFGUID desktopId);
  30634 
  30635     END_INTERFACE
  30636 } IVirtualDesktopManagerVtbl;
  30637 
  30638 interface IVirtualDesktopManager {
  30639     CONST_VTBL IVirtualDesktopManagerVtbl* lpVtbl;
  30640 };
  30641 
  30642 #ifdef COBJMACROS
  30643 #ifndef WIDL_C_INLINE_WRAPPERS
  30644 /*** IUnknown methods ***/
  30645 #define IVirtualDesktopManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  30646 #define IVirtualDesktopManager_AddRef(This) (This)->lpVtbl->AddRef(This)
  30647 #define IVirtualDesktopManager_Release(This) (This)->lpVtbl->Release(This)
  30648 /*** IVirtualDesktopManager methods ***/
  30649 #define IVirtualDesktopManager_IsWindowOnCurrentVirtualDesktop(This,topLevelWindow,onCurrentDesktop) (This)->lpVtbl->IsWindowOnCurrentVirtualDesktop(This,topLevelWindow,onCurrentDesktop)
  30650 #define IVirtualDesktopManager_GetWindowDesktopId(This,topLevelWindow,desktopId) (This)->lpVtbl->GetWindowDesktopId(This,topLevelWindow,desktopId)
  30651 #define IVirtualDesktopManager_MoveWindowToDesktop(This,topLevelWindow,desktopId) (This)->lpVtbl->MoveWindowToDesktop(This,topLevelWindow,desktopId)
  30652 #else
  30653 /*** IUnknown methods ***/
  30654 static inline HRESULT IVirtualDesktopManager_QueryInterface(IVirtualDesktopManager* This,REFIID riid,void **ppvObject) {
  30655     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  30656 }
  30657 static inline ULONG IVirtualDesktopManager_AddRef(IVirtualDesktopManager* This) {
  30658     return This->lpVtbl->AddRef(This);
  30659 }
  30660 static inline ULONG IVirtualDesktopManager_Release(IVirtualDesktopManager* This) {
  30661     return This->lpVtbl->Release(This);
  30662 }
  30663 /*** IVirtualDesktopManager methods ***/
  30664 static inline HRESULT IVirtualDesktopManager_IsWindowOnCurrentVirtualDesktop(IVirtualDesktopManager* This,HWND topLevelWindow,WINBOOL *onCurrentDesktop) {
  30665     return This->lpVtbl->IsWindowOnCurrentVirtualDesktop(This,topLevelWindow,onCurrentDesktop);
  30666 }
  30667 static inline HRESULT IVirtualDesktopManager_GetWindowDesktopId(IVirtualDesktopManager* This,HWND topLevelWindow,GUID *desktopId) {
  30668     return This->lpVtbl->GetWindowDesktopId(This,topLevelWindow,desktopId);
  30669 }
  30670 static inline HRESULT IVirtualDesktopManager_MoveWindowToDesktop(IVirtualDesktopManager* This,HWND topLevelWindow,REFGUID desktopId) {
  30671     return This->lpVtbl->MoveWindowToDesktop(This,topLevelWindow,desktopId);
  30672 }
  30673 #endif
  30674 #endif
  30675 
  30676 #endif
  30677 
  30678 
  30679 #endif  /* __IVirtualDesktopManager_INTERFACE_DEFINED__ */
  30680 
  30681 #endif
  30682 
  30683 #if NTDDI_VERSION >= NTDDI_WIN8
  30684 /*****************************************************************************
  30685  * IDesktopWallpaper interface
  30686  */
  30687 #ifndef __IDesktopWallpaper_INTERFACE_DEFINED__
  30688 #define __IDesktopWallpaper_INTERFACE_DEFINED__
  30689 
  30690 typedef enum DESKTOP_SLIDESHOW_OPTIONS {
  30691     DSO_SHUFFLEIMAGES = 0x1
  30692 } DESKTOP_SLIDESHOW_OPTIONS;
  30693 
  30694 DEFINE_ENUM_FLAG_OPERATORS(DESKTOP_SLIDESHOW_OPTIONS);
  30695 
  30696 typedef enum DESKTOP_SLIDESHOW_STATE {
  30697     DSS_ENABLED = 0x1,
  30698     DSS_SLIDESHOW = 0x2,
  30699     DSS_DISABLED_BY_REMOTE_SESSION = 0x4
  30700 } DESKTOP_SLIDESHOW_STATE;
  30701 
  30702 DEFINE_ENUM_FLAG_OPERATORS(DESKTOP_SLIDESHOW_STATE);
  30703 
  30704 typedef enum DESKTOP_SLIDESHOW_DIRECTION {
  30705     DSD_FORWARD = 0,
  30706     DSD_BACKWARD = 1
  30707 } DESKTOP_SLIDESHOW_DIRECTION;
  30708 
  30709 typedef enum DESKTOP_WALLPAPER_POSITION {
  30710     DWPOS_CENTER = 0,
  30711     DWPOS_TILE = 1,
  30712     DWPOS_STRETCH = 2,
  30713     DWPOS_FIT = 3,
  30714     DWPOS_FILL = 4,
  30715     DWPOS_SPAN = 5
  30716 } DESKTOP_WALLPAPER_POSITION;
  30717 
  30718 DEFINE_GUID(IID_IDesktopWallpaper, 0xb92b56a9, 0x8b55, 0x4e14, 0x9a,0x89, 0x01,0x99,0xbb,0xb6,0xf9,0x3b);
  30719 #if defined(__cplusplus) && !defined(CINTERFACE)
  30720 MIDL_INTERFACE("b92b56a9-8b55-4e14-9a89-0199bbb6f93b")
  30721 IDesktopWallpaper : public IUnknown
  30722 {
  30723     virtual HRESULT STDMETHODCALLTYPE SetWallpaper(
  30724         LPCWSTR monitorID,
  30725         LPCWSTR wallpaper) = 0;
  30726 
  30727     virtual HRESULT STDMETHODCALLTYPE GetWallpaper(
  30728         LPCWSTR monitorID,
  30729         LPWSTR *wallpaper) = 0;
  30730 
  30731     virtual HRESULT STDMETHODCALLTYPE GetMonitorDevicePathAt(
  30732         UINT monitorIndex,
  30733         LPWSTR *monitorID) = 0;
  30734 
  30735     virtual HRESULT STDMETHODCALLTYPE GetMonitorDevicePathCount(
  30736         UINT *count) = 0;
  30737 
  30738     virtual HRESULT STDMETHODCALLTYPE GetMonitorRECT(
  30739         LPCWSTR monitorID,
  30740         RECT *displayRect) = 0;
  30741 
  30742     virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor(
  30743         COLORREF color) = 0;
  30744 
  30745     virtual HRESULT STDMETHODCALLTYPE GetBackgroundColor(
  30746         COLORREF *color) = 0;
  30747 
  30748     virtual HRESULT STDMETHODCALLTYPE SetPosition(
  30749         DESKTOP_WALLPAPER_POSITION position) = 0;
  30750 
  30751     virtual HRESULT STDMETHODCALLTYPE GetPosition(
  30752         DESKTOP_WALLPAPER_POSITION *position) = 0;
  30753 
  30754     virtual HRESULT STDMETHODCALLTYPE SetSlideshow(
  30755         IShellItemArray *items) = 0;
  30756 
  30757     virtual HRESULT STDMETHODCALLTYPE GetSlideshow(
  30758         IShellItemArray **items) = 0;
  30759 
  30760     virtual HRESULT STDMETHODCALLTYPE SetSlideshowOptions(
  30761         DESKTOP_SLIDESHOW_OPTIONS options,
  30762         UINT slideshowTick) = 0;
  30763 
  30764     virtual HRESULT STDMETHODCALLTYPE GetSlideshowOptions(
  30765         DESKTOP_SLIDESHOW_OPTIONS *options,
  30766         UINT *slideshowTick) = 0;
  30767 
  30768     virtual HRESULT STDMETHODCALLTYPE AdvanceSlideshow(
  30769         LPCWSTR monitorID,
  30770         DESKTOP_SLIDESHOW_DIRECTION direction) = 0;
  30771 
  30772     virtual HRESULT STDMETHODCALLTYPE GetStatus(
  30773         DESKTOP_SLIDESHOW_STATE *state) = 0;
  30774 
  30775     virtual HRESULT STDMETHODCALLTYPE Enable(
  30776         WINBOOL enable) = 0;
  30777 
  30778 };
  30779 #ifdef __CRT_UUID_DECL
  30780 __CRT_UUID_DECL(IDesktopWallpaper, 0xb92b56a9, 0x8b55, 0x4e14, 0x9a,0x89, 0x01,0x99,0xbb,0xb6,0xf9,0x3b)
  30781 #endif
  30782 #else
  30783 typedef struct IDesktopWallpaperVtbl {
  30784     BEGIN_INTERFACE
  30785 
  30786     /*** IUnknown methods ***/
  30787     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  30788         IDesktopWallpaper *This,
  30789         REFIID riid,
  30790         void **ppvObject);
  30791 
  30792     ULONG (STDMETHODCALLTYPE *AddRef)(
  30793         IDesktopWallpaper *This);
  30794 
  30795     ULONG (STDMETHODCALLTYPE *Release)(
  30796         IDesktopWallpaper *This);
  30797 
  30798     /*** IDesktopWallpaper methods ***/
  30799     HRESULT (STDMETHODCALLTYPE *SetWallpaper)(
  30800         IDesktopWallpaper *This,
  30801         LPCWSTR monitorID,
  30802         LPCWSTR wallpaper);
  30803 
  30804     HRESULT (STDMETHODCALLTYPE *GetWallpaper)(
  30805         IDesktopWallpaper *This,
  30806         LPCWSTR monitorID,
  30807         LPWSTR *wallpaper);
  30808 
  30809     HRESULT (STDMETHODCALLTYPE *GetMonitorDevicePathAt)(
  30810         IDesktopWallpaper *This,
  30811         UINT monitorIndex,
  30812         LPWSTR *monitorID);
  30813 
  30814     HRESULT (STDMETHODCALLTYPE *GetMonitorDevicePathCount)(
  30815         IDesktopWallpaper *This,
  30816         UINT *count);
  30817 
  30818     HRESULT (STDMETHODCALLTYPE *GetMonitorRECT)(
  30819         IDesktopWallpaper *This,
  30820         LPCWSTR monitorID,
  30821         RECT *displayRect);
  30822 
  30823     HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
  30824         IDesktopWallpaper *This,
  30825         COLORREF color);
  30826 
  30827     HRESULT (STDMETHODCALLTYPE *GetBackgroundColor)(
  30828         IDesktopWallpaper *This,
  30829         COLORREF *color);
  30830 
  30831     HRESULT (STDMETHODCALLTYPE *SetPosition)(
  30832         IDesktopWallpaper *This,
  30833         DESKTOP_WALLPAPER_POSITION position);
  30834 
  30835     HRESULT (STDMETHODCALLTYPE *GetPosition)(
  30836         IDesktopWallpaper *This,
  30837         DESKTOP_WALLPAPER_POSITION *position);
  30838 
  30839     HRESULT (STDMETHODCALLTYPE *SetSlideshow)(
  30840         IDesktopWallpaper *This,
  30841         IShellItemArray *items);
  30842 
  30843     HRESULT (STDMETHODCALLTYPE *GetSlideshow)(
  30844         IDesktopWallpaper *This,
  30845         IShellItemArray **items);
  30846 
  30847     HRESULT (STDMETHODCALLTYPE *SetSlideshowOptions)(
  30848         IDesktopWallpaper *This,
  30849         DESKTOP_SLIDESHOW_OPTIONS options,
  30850         UINT slideshowTick);
  30851 
  30852     HRESULT (STDMETHODCALLTYPE *GetSlideshowOptions)(
  30853         IDesktopWallpaper *This,
  30854         DESKTOP_SLIDESHOW_OPTIONS *options,
  30855         UINT *slideshowTick);
  30856 
  30857     HRESULT (STDMETHODCALLTYPE *AdvanceSlideshow)(
  30858         IDesktopWallpaper *This,
  30859         LPCWSTR monitorID,
  30860         DESKTOP_SLIDESHOW_DIRECTION direction);
  30861 
  30862     HRESULT (STDMETHODCALLTYPE *GetStatus)(
  30863         IDesktopWallpaper *This,
  30864         DESKTOP_SLIDESHOW_STATE *state);
  30865 
  30866     HRESULT (STDMETHODCALLTYPE *Enable)(
  30867         IDesktopWallpaper *This,
  30868         WINBOOL enable);
  30869 
  30870     END_INTERFACE
  30871 } IDesktopWallpaperVtbl;
  30872 
  30873 interface IDesktopWallpaper {
  30874     CONST_VTBL IDesktopWallpaperVtbl* lpVtbl;
  30875 };
  30876 
  30877 #ifdef COBJMACROS
  30878 #ifndef WIDL_C_INLINE_WRAPPERS
  30879 /*** IUnknown methods ***/
  30880 #define IDesktopWallpaper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  30881 #define IDesktopWallpaper_AddRef(This) (This)->lpVtbl->AddRef(This)
  30882 #define IDesktopWallpaper_Release(This) (This)->lpVtbl->Release(This)
  30883 /*** IDesktopWallpaper methods ***/
  30884 #define IDesktopWallpaper_SetWallpaper(This,monitorID,wallpaper) (This)->lpVtbl->SetWallpaper(This,monitorID,wallpaper)
  30885 #define IDesktopWallpaper_GetWallpaper(This,monitorID,wallpaper) (This)->lpVtbl->GetWallpaper(This,monitorID,wallpaper)
  30886 #define IDesktopWallpaper_GetMonitorDevicePathAt(This,monitorIndex,monitorID) (This)->lpVtbl->GetMonitorDevicePathAt(This,monitorIndex,monitorID)
  30887 #define IDesktopWallpaper_GetMonitorDevicePathCount(This,count) (This)->lpVtbl->GetMonitorDevicePathCount(This,count)
  30888 #define IDesktopWallpaper_GetMonitorRECT(This,monitorID,displayRect) (This)->lpVtbl->GetMonitorRECT(This,monitorID,displayRect)
  30889 #define IDesktopWallpaper_SetBackgroundColor(This,color) (This)->lpVtbl->SetBackgroundColor(This,color)
  30890 #define IDesktopWallpaper_GetBackgroundColor(This,color) (This)->lpVtbl->GetBackgroundColor(This,color)
  30891 #define IDesktopWallpaper_SetPosition(This,position) (This)->lpVtbl->SetPosition(This,position)
  30892 #define IDesktopWallpaper_GetPosition(This,position) (This)->lpVtbl->GetPosition(This,position)
  30893 #define IDesktopWallpaper_SetSlideshow(This,items) (This)->lpVtbl->SetSlideshow(This,items)
  30894 #define IDesktopWallpaper_GetSlideshow(This,items) (This)->lpVtbl->GetSlideshow(This,items)
  30895 #define IDesktopWallpaper_SetSlideshowOptions(This,options,slideshowTick) (This)->lpVtbl->SetSlideshowOptions(This,options,slideshowTick)
  30896 #define IDesktopWallpaper_GetSlideshowOptions(This,options,slideshowTick) (This)->lpVtbl->GetSlideshowOptions(This,options,slideshowTick)
  30897 #define IDesktopWallpaper_AdvanceSlideshow(This,monitorID,direction) (This)->lpVtbl->AdvanceSlideshow(This,monitorID,direction)
  30898 #define IDesktopWallpaper_GetStatus(This,state) (This)->lpVtbl->GetStatus(This,state)
  30899 #define IDesktopWallpaper_Enable(This,enable) (This)->lpVtbl->Enable(This,enable)
  30900 #else
  30901 /*** IUnknown methods ***/
  30902 static inline HRESULT IDesktopWallpaper_QueryInterface(IDesktopWallpaper* This,REFIID riid,void **ppvObject) {
  30903     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  30904 }
  30905 static inline ULONG IDesktopWallpaper_AddRef(IDesktopWallpaper* This) {
  30906     return This->lpVtbl->AddRef(This);
  30907 }
  30908 static inline ULONG IDesktopWallpaper_Release(IDesktopWallpaper* This) {
  30909     return This->lpVtbl->Release(This);
  30910 }
  30911 /*** IDesktopWallpaper methods ***/
  30912 static inline HRESULT IDesktopWallpaper_SetWallpaper(IDesktopWallpaper* This,LPCWSTR monitorID,LPCWSTR wallpaper) {
  30913     return This->lpVtbl->SetWallpaper(This,monitorID,wallpaper);
  30914 }
  30915 static inline HRESULT IDesktopWallpaper_GetWallpaper(IDesktopWallpaper* This,LPCWSTR monitorID,LPWSTR *wallpaper) {
  30916     return This->lpVtbl->GetWallpaper(This,monitorID,wallpaper);
  30917 }
  30918 static inline HRESULT IDesktopWallpaper_GetMonitorDevicePathAt(IDesktopWallpaper* This,UINT monitorIndex,LPWSTR *monitorID) {
  30919     return This->lpVtbl->GetMonitorDevicePathAt(This,monitorIndex,monitorID);
  30920 }
  30921 static inline HRESULT IDesktopWallpaper_GetMonitorDevicePathCount(IDesktopWallpaper* This,UINT *count) {
  30922     return This->lpVtbl->GetMonitorDevicePathCount(This,count);
  30923 }
  30924 static inline HRESULT IDesktopWallpaper_GetMonitorRECT(IDesktopWallpaper* This,LPCWSTR monitorID,RECT *displayRect) {
  30925     return This->lpVtbl->GetMonitorRECT(This,monitorID,displayRect);
  30926 }
  30927 static inline HRESULT IDesktopWallpaper_SetBackgroundColor(IDesktopWallpaper* This,COLORREF color) {
  30928     return This->lpVtbl->SetBackgroundColor(This,color);
  30929 }
  30930 static inline HRESULT IDesktopWallpaper_GetBackgroundColor(IDesktopWallpaper* This,COLORREF *color) {
  30931     return This->lpVtbl->GetBackgroundColor(This,color);
  30932 }
  30933 static inline HRESULT IDesktopWallpaper_SetPosition(IDesktopWallpaper* This,DESKTOP_WALLPAPER_POSITION position) {
  30934     return This->lpVtbl->SetPosition(This,position);
  30935 }
  30936 static inline HRESULT IDesktopWallpaper_GetPosition(IDesktopWallpaper* This,DESKTOP_WALLPAPER_POSITION *position) {
  30937     return This->lpVtbl->GetPosition(This,position);
  30938 }
  30939 static inline HRESULT IDesktopWallpaper_SetSlideshow(IDesktopWallpaper* This,IShellItemArray *items) {
  30940     return This->lpVtbl->SetSlideshow(This,items);
  30941 }
  30942 static inline HRESULT IDesktopWallpaper_GetSlideshow(IDesktopWallpaper* This,IShellItemArray **items) {
  30943     return This->lpVtbl->GetSlideshow(This,items);
  30944 }
  30945 static inline HRESULT IDesktopWallpaper_SetSlideshowOptions(IDesktopWallpaper* This,DESKTOP_SLIDESHOW_OPTIONS options,UINT slideshowTick) {
  30946     return This->lpVtbl->SetSlideshowOptions(This,options,slideshowTick);
  30947 }
  30948 static inline HRESULT IDesktopWallpaper_GetSlideshowOptions(IDesktopWallpaper* This,DESKTOP_SLIDESHOW_OPTIONS *options,UINT *slideshowTick) {
  30949     return This->lpVtbl->GetSlideshowOptions(This,options,slideshowTick);
  30950 }
  30951 static inline HRESULT IDesktopWallpaper_AdvanceSlideshow(IDesktopWallpaper* This,LPCWSTR monitorID,DESKTOP_SLIDESHOW_DIRECTION direction) {
  30952     return This->lpVtbl->AdvanceSlideshow(This,monitorID,direction);
  30953 }
  30954 static inline HRESULT IDesktopWallpaper_GetStatus(IDesktopWallpaper* This,DESKTOP_SLIDESHOW_STATE *state) {
  30955     return This->lpVtbl->GetStatus(This,state);
  30956 }
  30957 static inline HRESULT IDesktopWallpaper_Enable(IDesktopWallpaper* This,WINBOOL enable) {
  30958     return This->lpVtbl->Enable(This,enable);
  30959 }
  30960 #endif
  30961 #endif
  30962 
  30963 #endif
  30964 
  30965 
  30966 #endif  /* __IDesktopWallpaper_INTERFACE_DEFINED__ */
  30967 
  30968 #endif
  30969 
  30970 #define HOMEGROUP_SECURITY_GROUP_MULTI L"HUG"
  30971 #define HOMEGROUP_SECURITY_GROUP L"HomeUsers"
  30972 
  30973 /*****************************************************************************
  30974  * IHomeGroup interface
  30975  */
  30976 #ifndef __IHomeGroup_INTERFACE_DEFINED__
  30977 #define __IHomeGroup_INTERFACE_DEFINED__
  30978 
  30979 typedef enum HOMEGROUPSHARINGCHOICES {
  30980     HGSC_NONE = 0x0,
  30981     HGSC_MUSICLIBRARY = 0x1,
  30982     HGSC_PICTURESLIBRARY = 0x2,
  30983     HGSC_VIDEOSLIBRARY = 0x4,
  30984     HGSC_DOCUMENTSLIBRARY = 0x8,
  30985     HGSC_PRINTERS = 0x10
  30986 } HOMEGROUPSHARINGCHOICES;
  30987 
  30988 DEFINE_ENUM_FLAG_OPERATORS(HOMEGROUPSHARINGCHOICES)
  30989 
  30990 DEFINE_GUID(IID_IHomeGroup, 0x7a3bd1d9, 0x35a9, 0x4fb3, 0xa4,0x67, 0xf4,0x8c,0xac,0x35,0xe2,0xd0);
  30991 #if defined(__cplusplus) && !defined(CINTERFACE)
  30992 MIDL_INTERFACE("7a3bd1d9-35a9-4fb3-a467-f48cac35e2d0")
  30993 IHomeGroup : public IUnknown
  30994 {
  30995     virtual HRESULT STDMETHODCALLTYPE IsMember(
  30996         WINBOOL *member) = 0;
  30997 
  30998     virtual HRESULT STDMETHODCALLTYPE ShowSharingWizard(
  30999         HWND owner,
  31000         HOMEGROUPSHARINGCHOICES *sharingchoices) = 0;
  31001 
  31002 };
  31003 #ifdef __CRT_UUID_DECL
  31004 __CRT_UUID_DECL(IHomeGroup, 0x7a3bd1d9, 0x35a9, 0x4fb3, 0xa4,0x67, 0xf4,0x8c,0xac,0x35,0xe2,0xd0)
  31005 #endif
  31006 #else
  31007 typedef struct IHomeGroupVtbl {
  31008     BEGIN_INTERFACE
  31009 
  31010     /*** IUnknown methods ***/
  31011     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  31012         IHomeGroup *This,
  31013         REFIID riid,
  31014         void **ppvObject);
  31015 
  31016     ULONG (STDMETHODCALLTYPE *AddRef)(
  31017         IHomeGroup *This);
  31018 
  31019     ULONG (STDMETHODCALLTYPE *Release)(
  31020         IHomeGroup *This);
  31021 
  31022     /*** IHomeGroup methods ***/
  31023     HRESULT (STDMETHODCALLTYPE *IsMember)(
  31024         IHomeGroup *This,
  31025         WINBOOL *member);
  31026 
  31027     HRESULT (STDMETHODCALLTYPE *ShowSharingWizard)(
  31028         IHomeGroup *This,
  31029         HWND owner,
  31030         HOMEGROUPSHARINGCHOICES *sharingchoices);
  31031 
  31032     END_INTERFACE
  31033 } IHomeGroupVtbl;
  31034 
  31035 interface IHomeGroup {
  31036     CONST_VTBL IHomeGroupVtbl* lpVtbl;
  31037 };
  31038 
  31039 #ifdef COBJMACROS
  31040 #ifndef WIDL_C_INLINE_WRAPPERS
  31041 /*** IUnknown methods ***/
  31042 #define IHomeGroup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  31043 #define IHomeGroup_AddRef(This) (This)->lpVtbl->AddRef(This)
  31044 #define IHomeGroup_Release(This) (This)->lpVtbl->Release(This)
  31045 /*** IHomeGroup methods ***/
  31046 #define IHomeGroup_IsMember(This,member) (This)->lpVtbl->IsMember(This,member)
  31047 #define IHomeGroup_ShowSharingWizard(This,owner,sharingchoices) (This)->lpVtbl->ShowSharingWizard(This,owner,sharingchoices)
  31048 #else
  31049 /*** IUnknown methods ***/
  31050 static inline HRESULT IHomeGroup_QueryInterface(IHomeGroup* This,REFIID riid,void **ppvObject) {
  31051     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  31052 }
  31053 static inline ULONG IHomeGroup_AddRef(IHomeGroup* This) {
  31054     return This->lpVtbl->AddRef(This);
  31055 }
  31056 static inline ULONG IHomeGroup_Release(IHomeGroup* This) {
  31057     return This->lpVtbl->Release(This);
  31058 }
  31059 /*** IHomeGroup methods ***/
  31060 static inline HRESULT IHomeGroup_IsMember(IHomeGroup* This,WINBOOL *member) {
  31061     return This->lpVtbl->IsMember(This,member);
  31062 }
  31063 static inline HRESULT IHomeGroup_ShowSharingWizard(IHomeGroup* This,HWND owner,HOMEGROUPSHARINGCHOICES *sharingchoices) {
  31064     return This->lpVtbl->ShowSharingWizard(This,owner,sharingchoices);
  31065 }
  31066 #endif
  31067 #endif
  31068 
  31069 #endif
  31070 
  31071 
  31072 #endif  /* __IHomeGroup_INTERFACE_DEFINED__ */
  31073 
  31074 
  31075 /*****************************************************************************
  31076  * IInitializeWithPropertyStore interface
  31077  */
  31078 #ifndef __IInitializeWithPropertyStore_INTERFACE_DEFINED__
  31079 #define __IInitializeWithPropertyStore_INTERFACE_DEFINED__
  31080 
  31081 DEFINE_GUID(IID_IInitializeWithPropertyStore, 0xc3e12eb5, 0x7d8d, 0x44f8, 0xb6,0xdd, 0x0e,0x77,0xb3,0x4d,0x6d,0xe4);
  31082 #if defined(__cplusplus) && !defined(CINTERFACE)
  31083 MIDL_INTERFACE("c3e12eb5-7d8d-44f8-b6dd-0e77b34d6de4")
  31084 IInitializeWithPropertyStore : public IUnknown
  31085 {
  31086     virtual HRESULT STDMETHODCALLTYPE Initialize(
  31087         IPropertyStore *pps) = 0;
  31088 
  31089 };
  31090 #ifdef __CRT_UUID_DECL
  31091 __CRT_UUID_DECL(IInitializeWithPropertyStore, 0xc3e12eb5, 0x7d8d, 0x44f8, 0xb6,0xdd, 0x0e,0x77,0xb3,0x4d,0x6d,0xe4)
  31092 #endif
  31093 #else
  31094 typedef struct IInitializeWithPropertyStoreVtbl {
  31095     BEGIN_INTERFACE
  31096 
  31097     /*** IUnknown methods ***/
  31098     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  31099         IInitializeWithPropertyStore *This,
  31100         REFIID riid,
  31101         void **ppvObject);
  31102 
  31103     ULONG (STDMETHODCALLTYPE *AddRef)(
  31104         IInitializeWithPropertyStore *This);
  31105 
  31106     ULONG (STDMETHODCALLTYPE *Release)(
  31107         IInitializeWithPropertyStore *This);
  31108 
  31109     /*** IInitializeWithPropertyStore methods ***/
  31110     HRESULT (STDMETHODCALLTYPE *Initialize)(
  31111         IInitializeWithPropertyStore *This,
  31112         IPropertyStore *pps);
  31113 
  31114     END_INTERFACE
  31115 } IInitializeWithPropertyStoreVtbl;
  31116 
  31117 interface IInitializeWithPropertyStore {
  31118     CONST_VTBL IInitializeWithPropertyStoreVtbl* lpVtbl;
  31119 };
  31120 
  31121 #ifdef COBJMACROS
  31122 #ifndef WIDL_C_INLINE_WRAPPERS
  31123 /*** IUnknown methods ***/
  31124 #define IInitializeWithPropertyStore_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  31125 #define IInitializeWithPropertyStore_AddRef(This) (This)->lpVtbl->AddRef(This)
  31126 #define IInitializeWithPropertyStore_Release(This) (This)->lpVtbl->Release(This)
  31127 /*** IInitializeWithPropertyStore methods ***/
  31128 #define IInitializeWithPropertyStore_Initialize(This,pps) (This)->lpVtbl->Initialize(This,pps)
  31129 #else
  31130 /*** IUnknown methods ***/
  31131 static inline HRESULT IInitializeWithPropertyStore_QueryInterface(IInitializeWithPropertyStore* This,REFIID riid,void **ppvObject) {
  31132     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  31133 }
  31134 static inline ULONG IInitializeWithPropertyStore_AddRef(IInitializeWithPropertyStore* This) {
  31135     return This->lpVtbl->AddRef(This);
  31136 }
  31137 static inline ULONG IInitializeWithPropertyStore_Release(IInitializeWithPropertyStore* This) {
  31138     return This->lpVtbl->Release(This);
  31139 }
  31140 /*** IInitializeWithPropertyStore methods ***/
  31141 static inline HRESULT IInitializeWithPropertyStore_Initialize(IInitializeWithPropertyStore* This,IPropertyStore *pps) {
  31142     return This->lpVtbl->Initialize(This,pps);
  31143 }
  31144 #endif
  31145 #endif
  31146 
  31147 #endif
  31148 
  31149 
  31150 #endif  /* __IInitializeWithPropertyStore_INTERFACE_DEFINED__ */
  31151 
  31152 
  31153 /*****************************************************************************
  31154  * IOpenSearchSource interface
  31155  */
  31156 #ifndef __IOpenSearchSource_INTERFACE_DEFINED__
  31157 #define __IOpenSearchSource_INTERFACE_DEFINED__
  31158 
  31159 DEFINE_GUID(IID_IOpenSearchSource, 0xf0ee7333, 0xe6fc, 0x479b, 0x9f,0x25, 0xa8,0x60,0xc2,0x34,0xa3,0x8e);
  31160 #if defined(__cplusplus) && !defined(CINTERFACE)
  31161 MIDL_INTERFACE("f0ee7333-e6fc-479b-9f25-a860c234a38e")
  31162 IOpenSearchSource : public IUnknown
  31163 {
  31164     virtual HRESULT STDMETHODCALLTYPE GetResults(
  31165         HWND hwnd,
  31166         LPCWSTR pszQuery,
  31167         DWORD dwStartIndex,
  31168         DWORD dwCount,
  31169         REFIID riid,
  31170         void **ppv) = 0;
  31171 
  31172 };
  31173 #ifdef __CRT_UUID_DECL
  31174 __CRT_UUID_DECL(IOpenSearchSource, 0xf0ee7333, 0xe6fc, 0x479b, 0x9f,0x25, 0xa8,0x60,0xc2,0x34,0xa3,0x8e)
  31175 #endif
  31176 #else
  31177 typedef struct IOpenSearchSourceVtbl {
  31178     BEGIN_INTERFACE
  31179 
  31180     /*** IUnknown methods ***/
  31181     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  31182         IOpenSearchSource *This,
  31183         REFIID riid,
  31184         void **ppvObject);
  31185 
  31186     ULONG (STDMETHODCALLTYPE *AddRef)(
  31187         IOpenSearchSource *This);
  31188 
  31189     ULONG (STDMETHODCALLTYPE *Release)(
  31190         IOpenSearchSource *This);
  31191 
  31192     /*** IOpenSearchSource methods ***/
  31193     HRESULT (STDMETHODCALLTYPE *GetResults)(
  31194         IOpenSearchSource *This,
  31195         HWND hwnd,
  31196         LPCWSTR pszQuery,
  31197         DWORD dwStartIndex,
  31198         DWORD dwCount,
  31199         REFIID riid,
  31200         void **ppv);
  31201 
  31202     END_INTERFACE
  31203 } IOpenSearchSourceVtbl;
  31204 
  31205 interface IOpenSearchSource {
  31206     CONST_VTBL IOpenSearchSourceVtbl* lpVtbl;
  31207 };
  31208 
  31209 #ifdef COBJMACROS
  31210 #ifndef WIDL_C_INLINE_WRAPPERS
  31211 /*** IUnknown methods ***/
  31212 #define IOpenSearchSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  31213 #define IOpenSearchSource_AddRef(This) (This)->lpVtbl->AddRef(This)
  31214 #define IOpenSearchSource_Release(This) (This)->lpVtbl->Release(This)
  31215 /*** IOpenSearchSource methods ***/
  31216 #define IOpenSearchSource_GetResults(This,hwnd,pszQuery,dwStartIndex,dwCount,riid,ppv) (This)->lpVtbl->GetResults(This,hwnd,pszQuery,dwStartIndex,dwCount,riid,ppv)
  31217 #else
  31218 /*** IUnknown methods ***/
  31219 static inline HRESULT IOpenSearchSource_QueryInterface(IOpenSearchSource* This,REFIID riid,void **ppvObject) {
  31220     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  31221 }
  31222 static inline ULONG IOpenSearchSource_AddRef(IOpenSearchSource* This) {
  31223     return This->lpVtbl->AddRef(This);
  31224 }
  31225 static inline ULONG IOpenSearchSource_Release(IOpenSearchSource* This) {
  31226     return This->lpVtbl->Release(This);
  31227 }
  31228 /*** IOpenSearchSource methods ***/
  31229 static inline HRESULT IOpenSearchSource_GetResults(IOpenSearchSource* This,HWND hwnd,LPCWSTR pszQuery,DWORD dwStartIndex,DWORD dwCount,REFIID riid,void **ppv) {
  31230     return This->lpVtbl->GetResults(This,hwnd,pszQuery,dwStartIndex,dwCount,riid,ppv);
  31231 }
  31232 #endif
  31233 #endif
  31234 
  31235 #endif
  31236 
  31237 
  31238 #endif  /* __IOpenSearchSource_INTERFACE_DEFINED__ */
  31239 
  31240 
  31241 /*****************************************************************************
  31242  * IShellLibrary interface
  31243  */
  31244 #ifndef __IShellLibrary_INTERFACE_DEFINED__
  31245 #define __IShellLibrary_INTERFACE_DEFINED__
  31246 
  31247 typedef enum LIBRARYFOLDERFILTER {
  31248     LFF_FORCEFILESYSTEM = 1,
  31249     LFF_STORAGEITEMS = 2,
  31250     LFF_ALLITEMS = 3
  31251 } LIBRARYFOLDERFILTER;
  31252 
  31253 typedef enum LIBRARYOPTIONFLAGS {
  31254     LOF_DEFAULT = 0x0,
  31255     LOF_PINNEDTONAVPANE = 0x1,
  31256     LOF_MASK_ALL = 0x1
  31257 } LIBRARYOPTIONFLAGS;
  31258 
  31259 DEFINE_ENUM_FLAG_OPERATORS(LIBRARYOPTIONFLAGS)
  31260 
  31261 typedef enum DEFAULTSAVEFOLDERTYPE {
  31262     DSFT_DETECT = 1,
  31263     DSFT_PRIVATE = 2,
  31264     DSFT_PUBLIC = 3
  31265 } DEFAULTSAVEFOLDERTYPE;
  31266 
  31267 typedef enum LIBRARYSAVEFLAGS {
  31268     LSF_FAILIFTHERE = 0x0,
  31269     LSF_OVERRIDEEXISTING = 0x1,
  31270     LSF_MAKEUNIQUENAME = 0x2
  31271 } LIBRARYSAVEFLAGS;
  31272 
  31273 DEFINE_ENUM_FLAG_OPERATORS(LIBRARYSAVEFLAGS)
  31274 
  31275 DEFINE_GUID(IID_IShellLibrary, 0x11a66efa, 0x382e, 0x451a, 0x92,0x34, 0x1e,0x0e,0x12,0xef,0x30,0x85);
  31276 #if defined(__cplusplus) && !defined(CINTERFACE)
  31277 MIDL_INTERFACE("11a66efa-382e-451a-9234-1e0e12ef3085")
  31278 IShellLibrary : public IUnknown
  31279 {
  31280     virtual HRESULT STDMETHODCALLTYPE LoadLibraryFromItem(
  31281         IShellItem *psiLibrary,
  31282         DWORD grfMode) = 0;
  31283 
  31284     virtual HRESULT STDMETHODCALLTYPE LoadLibraryFromKnownFolder(
  31285         REFKNOWNFOLDERID kfidLibrary,
  31286         DWORD grfMode) = 0;
  31287 
  31288     virtual HRESULT STDMETHODCALLTYPE AddFolder(
  31289         IShellItem *psiLocation) = 0;
  31290 
  31291     virtual HRESULT STDMETHODCALLTYPE RemoveFolder(
  31292         IShellItem *psiLocation) = 0;
  31293 
  31294     virtual HRESULT STDMETHODCALLTYPE GetFolders(
  31295         LIBRARYFOLDERFILTER lff,
  31296         REFIID riid,
  31297         void **ppv) = 0;
  31298 
  31299     virtual HRESULT STDMETHODCALLTYPE ResolveFolder(
  31300         IShellItem *psiFolderToResolve,
  31301         DWORD dwTimeout,
  31302         REFIID riid,
  31303         void **ppv) = 0;
  31304 
  31305     virtual HRESULT STDMETHODCALLTYPE GetDefaultSaveFolder(
  31306         DEFAULTSAVEFOLDERTYPE dsft,
  31307         REFIID riid,
  31308         void **ppv) = 0;
  31309 
  31310     virtual HRESULT STDMETHODCALLTYPE SetDefaultSaveFolder(
  31311         DEFAULTSAVEFOLDERTYPE dsft,
  31312         IShellItem *psi) = 0;
  31313 
  31314     virtual HRESULT STDMETHODCALLTYPE GetOptions(
  31315         LIBRARYOPTIONFLAGS *plofOptions) = 0;
  31316 
  31317     virtual HRESULT STDMETHODCALLTYPE SetOptions(
  31318         LIBRARYOPTIONFLAGS lofMask,
  31319         LIBRARYOPTIONFLAGS lofOptions) = 0;
  31320 
  31321     virtual HRESULT STDMETHODCALLTYPE GetFolderType(
  31322         FOLDERTYPEID *pftid) = 0;
  31323 
  31324     virtual HRESULT STDMETHODCALLTYPE SetFolderType(
  31325         REFFOLDERTYPEID ftid) = 0;
  31326 
  31327     virtual HRESULT STDMETHODCALLTYPE GetIcon(
  31328         LPWSTR *ppszIcon) = 0;
  31329 
  31330     virtual HRESULT STDMETHODCALLTYPE SetIcon(
  31331         LPCWSTR pszIcon) = 0;
  31332 
  31333     virtual HRESULT STDMETHODCALLTYPE Commit(
  31334         ) = 0;
  31335 
  31336     virtual HRESULT STDMETHODCALLTYPE Save(
  31337         IShellItem *psiFolderToSaveIn,
  31338         LPCWSTR pszLibraryName,
  31339         LIBRARYSAVEFLAGS lsf,
  31340         IShellItem **ppsiSavedTo) = 0;
  31341 
  31342     virtual HRESULT STDMETHODCALLTYPE SaveInKnownFolder(
  31343         REFKNOWNFOLDERID kfidToSaveIn,
  31344         LPCWSTR pszLibraryName,
  31345         LIBRARYSAVEFLAGS lsf,
  31346         IShellItem **ppsiSavedTo) = 0;
  31347 
  31348 };
  31349 #ifdef __CRT_UUID_DECL
  31350 __CRT_UUID_DECL(IShellLibrary, 0x11a66efa, 0x382e, 0x451a, 0x92,0x34, 0x1e,0x0e,0x12,0xef,0x30,0x85)
  31351 #endif
  31352 #else
  31353 typedef struct IShellLibraryVtbl {
  31354     BEGIN_INTERFACE
  31355 
  31356     /*** IUnknown methods ***/
  31357     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  31358         IShellLibrary *This,
  31359         REFIID riid,
  31360         void **ppvObject);
  31361 
  31362     ULONG (STDMETHODCALLTYPE *AddRef)(
  31363         IShellLibrary *This);
  31364 
  31365     ULONG (STDMETHODCALLTYPE *Release)(
  31366         IShellLibrary *This);
  31367 
  31368     /*** IShellLibrary methods ***/
  31369     HRESULT (STDMETHODCALLTYPE *LoadLibraryFromItem)(
  31370         IShellLibrary *This,
  31371         IShellItem *psiLibrary,
  31372         DWORD grfMode);
  31373 
  31374     HRESULT (STDMETHODCALLTYPE *LoadLibraryFromKnownFolder)(
  31375         IShellLibrary *This,
  31376         REFKNOWNFOLDERID kfidLibrary,
  31377         DWORD grfMode);
  31378 
  31379     HRESULT (STDMETHODCALLTYPE *AddFolder)(
  31380         IShellLibrary *This,
  31381         IShellItem *psiLocation);
  31382 
  31383     HRESULT (STDMETHODCALLTYPE *RemoveFolder)(
  31384         IShellLibrary *This,
  31385         IShellItem *psiLocation);
  31386 
  31387     HRESULT (STDMETHODCALLTYPE *GetFolders)(
  31388         IShellLibrary *This,
  31389         LIBRARYFOLDERFILTER lff,
  31390         REFIID riid,
  31391         void **ppv);
  31392 
  31393     HRESULT (STDMETHODCALLTYPE *ResolveFolder)(
  31394         IShellLibrary *This,
  31395         IShellItem *psiFolderToResolve,
  31396         DWORD dwTimeout,
  31397         REFIID riid,
  31398         void **ppv);
  31399 
  31400     HRESULT (STDMETHODCALLTYPE *GetDefaultSaveFolder)(
  31401         IShellLibrary *This,
  31402         DEFAULTSAVEFOLDERTYPE dsft,
  31403         REFIID riid,
  31404         void **ppv);
  31405 
  31406     HRESULT (STDMETHODCALLTYPE *SetDefaultSaveFolder)(
  31407         IShellLibrary *This,
  31408         DEFAULTSAVEFOLDERTYPE dsft,
  31409         IShellItem *psi);
  31410 
  31411     HRESULT (STDMETHODCALLTYPE *GetOptions)(
  31412         IShellLibrary *This,
  31413         LIBRARYOPTIONFLAGS *plofOptions);
  31414 
  31415     HRESULT (STDMETHODCALLTYPE *SetOptions)(
  31416         IShellLibrary *This,
  31417         LIBRARYOPTIONFLAGS lofMask,
  31418         LIBRARYOPTIONFLAGS lofOptions);
  31419 
  31420     HRESULT (STDMETHODCALLTYPE *GetFolderType)(
  31421         IShellLibrary *This,
  31422         FOLDERTYPEID *pftid);
  31423 
  31424     HRESULT (STDMETHODCALLTYPE *SetFolderType)(
  31425         IShellLibrary *This,
  31426         REFFOLDERTYPEID ftid);
  31427 
  31428     HRESULT (STDMETHODCALLTYPE *GetIcon)(
  31429         IShellLibrary *This,
  31430         LPWSTR *ppszIcon);
  31431 
  31432     HRESULT (STDMETHODCALLTYPE *SetIcon)(
  31433         IShellLibrary *This,
  31434         LPCWSTR pszIcon);
  31435 
  31436     HRESULT (STDMETHODCALLTYPE *Commit)(
  31437         IShellLibrary *This);
  31438 
  31439     HRESULT (STDMETHODCALLTYPE *Save)(
  31440         IShellLibrary *This,
  31441         IShellItem *psiFolderToSaveIn,
  31442         LPCWSTR pszLibraryName,
  31443         LIBRARYSAVEFLAGS lsf,
  31444         IShellItem **ppsiSavedTo);
  31445 
  31446     HRESULT (STDMETHODCALLTYPE *SaveInKnownFolder)(
  31447         IShellLibrary *This,
  31448         REFKNOWNFOLDERID kfidToSaveIn,
  31449         LPCWSTR pszLibraryName,
  31450         LIBRARYSAVEFLAGS lsf,
  31451         IShellItem **ppsiSavedTo);
  31452 
  31453     END_INTERFACE
  31454 } IShellLibraryVtbl;
  31455 
  31456 interface IShellLibrary {
  31457     CONST_VTBL IShellLibraryVtbl* lpVtbl;
  31458 };
  31459 
  31460 #ifdef COBJMACROS
  31461 #ifndef WIDL_C_INLINE_WRAPPERS
  31462 /*** IUnknown methods ***/
  31463 #define IShellLibrary_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  31464 #define IShellLibrary_AddRef(This) (This)->lpVtbl->AddRef(This)
  31465 #define IShellLibrary_Release(This) (This)->lpVtbl->Release(This)
  31466 /*** IShellLibrary methods ***/
  31467 #define IShellLibrary_LoadLibraryFromItem(This,psiLibrary,grfMode) (This)->lpVtbl->LoadLibraryFromItem(This,psiLibrary,grfMode)
  31468 #define IShellLibrary_LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode) (This)->lpVtbl->LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode)
  31469 #define IShellLibrary_AddFolder(This,psiLocation) (This)->lpVtbl->AddFolder(This,psiLocation)
  31470 #define IShellLibrary_RemoveFolder(This,psiLocation) (This)->lpVtbl->RemoveFolder(This,psiLocation)
  31471 #define IShellLibrary_GetFolders(This,lff,riid,ppv) (This)->lpVtbl->GetFolders(This,lff,riid,ppv)
  31472 #define IShellLibrary_ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv) (This)->lpVtbl->ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv)
  31473 #define IShellLibrary_GetDefaultSaveFolder(This,dsft,riid,ppv) (This)->lpVtbl->GetDefaultSaveFolder(This,dsft,riid,ppv)
  31474 #define IShellLibrary_SetDefaultSaveFolder(This,dsft,psi) (This)->lpVtbl->SetDefaultSaveFolder(This,dsft,psi)
  31475 #define IShellLibrary_GetOptions(This,plofOptions) (This)->lpVtbl->GetOptions(This,plofOptions)
  31476 #define IShellLibrary_SetOptions(This,lofMask,lofOptions) (This)->lpVtbl->SetOptions(This,lofMask,lofOptions)
  31477 #define IShellLibrary_GetFolderType(This,pftid) (This)->lpVtbl->GetFolderType(This,pftid)
  31478 #define IShellLibrary_SetFolderType(This,ftid) (This)->lpVtbl->SetFolderType(This,ftid)
  31479 #define IShellLibrary_GetIcon(This,ppszIcon) (This)->lpVtbl->GetIcon(This,ppszIcon)
  31480 #define IShellLibrary_SetIcon(This,pszIcon) (This)->lpVtbl->SetIcon(This,pszIcon)
  31481 #define IShellLibrary_Commit(This) (This)->lpVtbl->Commit(This)
  31482 #define IShellLibrary_Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo) (This)->lpVtbl->Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo)
  31483 #define IShellLibrary_SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo) (This)->lpVtbl->SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo)
  31484 #else
  31485 /*** IUnknown methods ***/
  31486 static inline HRESULT IShellLibrary_QueryInterface(IShellLibrary* This,REFIID riid,void **ppvObject) {
  31487     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  31488 }
  31489 static inline ULONG IShellLibrary_AddRef(IShellLibrary* This) {
  31490     return This->lpVtbl->AddRef(This);
  31491 }
  31492 static inline ULONG IShellLibrary_Release(IShellLibrary* This) {
  31493     return This->lpVtbl->Release(This);
  31494 }
  31495 /*** IShellLibrary methods ***/
  31496 static inline HRESULT IShellLibrary_LoadLibraryFromItem(IShellLibrary* This,IShellItem *psiLibrary,DWORD grfMode) {
  31497     return This->lpVtbl->LoadLibraryFromItem(This,psiLibrary,grfMode);
  31498 }
  31499 static inline HRESULT IShellLibrary_LoadLibraryFromKnownFolder(IShellLibrary* This,REFKNOWNFOLDERID kfidLibrary,DWORD grfMode) {
  31500     return This->lpVtbl->LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode);
  31501 }
  31502 static inline HRESULT IShellLibrary_AddFolder(IShellLibrary* This,IShellItem *psiLocation) {
  31503     return This->lpVtbl->AddFolder(This,psiLocation);
  31504 }
  31505 static inline HRESULT IShellLibrary_RemoveFolder(IShellLibrary* This,IShellItem *psiLocation) {
  31506     return This->lpVtbl->RemoveFolder(This,psiLocation);
  31507 }
  31508 static inline HRESULT IShellLibrary_GetFolders(IShellLibrary* This,LIBRARYFOLDERFILTER lff,REFIID riid,void **ppv) {
  31509     return This->lpVtbl->GetFolders(This,lff,riid,ppv);
  31510 }
  31511 static inline HRESULT IShellLibrary_ResolveFolder(IShellLibrary* This,IShellItem *psiFolderToResolve,DWORD dwTimeout,REFIID riid,void **ppv) {
  31512     return This->lpVtbl->ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv);
  31513 }
  31514 static inline HRESULT IShellLibrary_GetDefaultSaveFolder(IShellLibrary* This,DEFAULTSAVEFOLDERTYPE dsft,REFIID riid,void **ppv) {
  31515     return This->lpVtbl->GetDefaultSaveFolder(This,dsft,riid,ppv);
  31516 }
  31517 static inline HRESULT IShellLibrary_SetDefaultSaveFolder(IShellLibrary* This,DEFAULTSAVEFOLDERTYPE dsft,IShellItem *psi) {
  31518     return This->lpVtbl->SetDefaultSaveFolder(This,dsft,psi);
  31519 }
  31520 static inline HRESULT IShellLibrary_GetOptions(IShellLibrary* This,LIBRARYOPTIONFLAGS *plofOptions) {
  31521     return This->lpVtbl->GetOptions(This,plofOptions);
  31522 }
  31523 static inline HRESULT IShellLibrary_SetOptions(IShellLibrary* This,LIBRARYOPTIONFLAGS lofMask,LIBRARYOPTIONFLAGS lofOptions) {
  31524     return This->lpVtbl->SetOptions(This,lofMask,lofOptions);
  31525 }
  31526 static inline HRESULT IShellLibrary_GetFolderType(IShellLibrary* This,FOLDERTYPEID *pftid) {
  31527     return This->lpVtbl->GetFolderType(This,pftid);
  31528 }
  31529 static inline HRESULT IShellLibrary_SetFolderType(IShellLibrary* This,REFFOLDERTYPEID ftid) {
  31530     return This->lpVtbl->SetFolderType(This,ftid);
  31531 }
  31532 static inline HRESULT IShellLibrary_GetIcon(IShellLibrary* This,LPWSTR *ppszIcon) {
  31533     return This->lpVtbl->GetIcon(This,ppszIcon);
  31534 }
  31535 static inline HRESULT IShellLibrary_SetIcon(IShellLibrary* This,LPCWSTR pszIcon) {
  31536     return This->lpVtbl->SetIcon(This,pszIcon);
  31537 }
  31538 static inline HRESULT IShellLibrary_Commit(IShellLibrary* This) {
  31539     return This->lpVtbl->Commit(This);
  31540 }
  31541 static inline HRESULT IShellLibrary_Save(IShellLibrary* This,IShellItem *psiFolderToSaveIn,LPCWSTR pszLibraryName,LIBRARYSAVEFLAGS lsf,IShellItem **ppsiSavedTo) {
  31542     return This->lpVtbl->Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo);
  31543 }
  31544 static inline HRESULT IShellLibrary_SaveInKnownFolder(IShellLibrary* This,REFKNOWNFOLDERID kfidToSaveIn,LPCWSTR pszLibraryName,LIBRARYSAVEFLAGS lsf,IShellItem **ppsiSavedTo) {
  31545     return This->lpVtbl->SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo);
  31546 }
  31547 #endif
  31548 #endif
  31549 
  31550 #endif
  31551 
  31552 
  31553 #endif  /* __IShellLibrary_INTERFACE_DEFINED__ */
  31554 
  31555 
  31556 typedef enum PBM_EVENT {
  31557     PE_DUCKSESSION = 1,
  31558     PE_UNDUCKSESSION = 2
  31559 } PBM_EVENT;
  31560 
  31561 /*****************************************************************************
  31562  * IPlaybackManagerEvents interface
  31563  */
  31564 #ifndef __IPlaybackManagerEvents_INTERFACE_DEFINED__
  31565 #define __IPlaybackManagerEvents_INTERFACE_DEFINED__
  31566 
  31567 DEFINE_GUID(IID_IPlaybackManagerEvents, 0x385cfb7d, 0x4e0c, 0x4106, 0x91,0x2e, 0x8c,0xfb,0x4c,0x19,0x1f,0x45);
  31568 #if defined(__cplusplus) && !defined(CINTERFACE)
  31569 MIDL_INTERFACE("385cfb7d-4e0c-4106-912e-8cfb4c191f45")
  31570 IPlaybackManagerEvents : public IUnknown
  31571 {
  31572     virtual HRESULT STDMETHODCALLTYPE OnPlaybackManagerEvent(
  31573         DWORD dwSessionId,
  31574         PBM_EVENT mediaEvent) = 0;
  31575 
  31576 };
  31577 #ifdef __CRT_UUID_DECL
  31578 __CRT_UUID_DECL(IPlaybackManagerEvents, 0x385cfb7d, 0x4e0c, 0x4106, 0x91,0x2e, 0x8c,0xfb,0x4c,0x19,0x1f,0x45)
  31579 #endif
  31580 #else
  31581 typedef struct IPlaybackManagerEventsVtbl {
  31582     BEGIN_INTERFACE
  31583 
  31584     /*** IUnknown methods ***/
  31585     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  31586         IPlaybackManagerEvents *This,
  31587         REFIID riid,
  31588         void **ppvObject);
  31589 
  31590     ULONG (STDMETHODCALLTYPE *AddRef)(
  31591         IPlaybackManagerEvents *This);
  31592 
  31593     ULONG (STDMETHODCALLTYPE *Release)(
  31594         IPlaybackManagerEvents *This);
  31595 
  31596     /*** IPlaybackManagerEvents methods ***/
  31597     HRESULT (STDMETHODCALLTYPE *OnPlaybackManagerEvent)(
  31598         IPlaybackManagerEvents *This,
  31599         DWORD dwSessionId,
  31600         PBM_EVENT mediaEvent);
  31601 
  31602     END_INTERFACE
  31603 } IPlaybackManagerEventsVtbl;
  31604 
  31605 interface IPlaybackManagerEvents {
  31606     CONST_VTBL IPlaybackManagerEventsVtbl* lpVtbl;
  31607 };
  31608 
  31609 #ifdef COBJMACROS
  31610 #ifndef WIDL_C_INLINE_WRAPPERS
  31611 /*** IUnknown methods ***/
  31612 #define IPlaybackManagerEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  31613 #define IPlaybackManagerEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
  31614 #define IPlaybackManagerEvents_Release(This) (This)->lpVtbl->Release(This)
  31615 /*** IPlaybackManagerEvents methods ***/
  31616 #define IPlaybackManagerEvents_OnPlaybackManagerEvent(This,dwSessionId,mediaEvent) (This)->lpVtbl->OnPlaybackManagerEvent(This,dwSessionId,mediaEvent)
  31617 #else
  31618 /*** IUnknown methods ***/
  31619 static inline HRESULT IPlaybackManagerEvents_QueryInterface(IPlaybackManagerEvents* This,REFIID riid,void **ppvObject) {
  31620     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  31621 }
  31622 static inline ULONG IPlaybackManagerEvents_AddRef(IPlaybackManagerEvents* This) {
  31623     return This->lpVtbl->AddRef(This);
  31624 }
  31625 static inline ULONG IPlaybackManagerEvents_Release(IPlaybackManagerEvents* This) {
  31626     return This->lpVtbl->Release(This);
  31627 }
  31628 /*** IPlaybackManagerEvents methods ***/
  31629 static inline HRESULT IPlaybackManagerEvents_OnPlaybackManagerEvent(IPlaybackManagerEvents* This,DWORD dwSessionId,PBM_EVENT mediaEvent) {
  31630     return This->lpVtbl->OnPlaybackManagerEvent(This,dwSessionId,mediaEvent);
  31631 }
  31632 #endif
  31633 #endif
  31634 
  31635 #endif
  31636 
  31637 
  31638 #endif  /* __IPlaybackManagerEvents_INTERFACE_DEFINED__ */
  31639 
  31640 
  31641 typedef enum PBM_SESSION_TYPE {
  31642     ST_COMMUNICATION = 1,
  31643     ST_MEDIA = 2
  31644 } PBM_SESSION_TYPE;
  31645 
  31646 typedef enum PBM_PLAY_STATE {
  31647     PS_PLAYING = 1,
  31648     PS_PAUSED = 2,
  31649     PS_STOPPED = 3
  31650 } PBM_PLAY_STATE;
  31651 
  31652 typedef enum PBM_MUTE_STATE {
  31653     MS_MUTED = 1,
  31654     MS_UNMUTED = 2
  31655 } PBM_MUTE_STATE;
  31656 
  31657 /*****************************************************************************
  31658  * IPlaybackManager interface
  31659  */
  31660 #ifndef __IPlaybackManager_INTERFACE_DEFINED__
  31661 #define __IPlaybackManager_INTERFACE_DEFINED__
  31662 
  31663 DEFINE_GUID(IID_IPlaybackManager, 0x0f3c1b01, 0x8199, 0x4173, 0xba,0x78, 0x98,0x58,0x82,0x26,0x6f,0x7a);
  31664 #if defined(__cplusplus) && !defined(CINTERFACE)
  31665 MIDL_INTERFACE("0f3c1b01-8199-4173-ba78-985882266f7a")
  31666 IPlaybackManager : public IUnknown
  31667 {
  31668     virtual HRESULT STDMETHODCALLTYPE Advise(
  31669         PBM_SESSION_TYPE type,
  31670         IPlaybackManagerEvents *pEvents,
  31671         DWORD *pdwSessionId) = 0;
  31672 
  31673     virtual HRESULT STDMETHODCALLTYPE Unadvise(
  31674         DWORD dwSessionId) = 0;
  31675 
  31676     virtual HRESULT STDMETHODCALLTYPE ChangeSessionState(
  31677         DWORD dwSessionId,
  31678         PBM_PLAY_STATE state,
  31679         PBM_MUTE_STATE mute) = 0;
  31680 
  31681 };
  31682 #ifdef __CRT_UUID_DECL
  31683 __CRT_UUID_DECL(IPlaybackManager, 0x0f3c1b01, 0x8199, 0x4173, 0xba,0x78, 0x98,0x58,0x82,0x26,0x6f,0x7a)
  31684 #endif
  31685 #else
  31686 typedef struct IPlaybackManagerVtbl {
  31687     BEGIN_INTERFACE
  31688 
  31689     /*** IUnknown methods ***/
  31690     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  31691         IPlaybackManager *This,
  31692         REFIID riid,
  31693         void **ppvObject);
  31694 
  31695     ULONG (STDMETHODCALLTYPE *AddRef)(
  31696         IPlaybackManager *This);
  31697 
  31698     ULONG (STDMETHODCALLTYPE *Release)(
  31699         IPlaybackManager *This);
  31700 
  31701     /*** IPlaybackManager methods ***/
  31702     HRESULT (STDMETHODCALLTYPE *Advise)(
  31703         IPlaybackManager *This,
  31704         PBM_SESSION_TYPE type,
  31705         IPlaybackManagerEvents *pEvents,
  31706         DWORD *pdwSessionId);
  31707 
  31708     HRESULT (STDMETHODCALLTYPE *Unadvise)(
  31709         IPlaybackManager *This,
  31710         DWORD dwSessionId);
  31711 
  31712     HRESULT (STDMETHODCALLTYPE *ChangeSessionState)(
  31713         IPlaybackManager *This,
  31714         DWORD dwSessionId,
  31715         PBM_PLAY_STATE state,
  31716         PBM_MUTE_STATE mute);
  31717 
  31718     END_INTERFACE
  31719 } IPlaybackManagerVtbl;
  31720 
  31721 interface IPlaybackManager {
  31722     CONST_VTBL IPlaybackManagerVtbl* lpVtbl;
  31723 };
  31724 
  31725 #ifdef COBJMACROS
  31726 #ifndef WIDL_C_INLINE_WRAPPERS
  31727 /*** IUnknown methods ***/
  31728 #define IPlaybackManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  31729 #define IPlaybackManager_AddRef(This) (This)->lpVtbl->AddRef(This)
  31730 #define IPlaybackManager_Release(This) (This)->lpVtbl->Release(This)
  31731 /*** IPlaybackManager methods ***/
  31732 #define IPlaybackManager_Advise(This,type,pEvents,pdwSessionId) (This)->lpVtbl->Advise(This,type,pEvents,pdwSessionId)
  31733 #define IPlaybackManager_Unadvise(This,dwSessionId) (This)->lpVtbl->Unadvise(This,dwSessionId)
  31734 #define IPlaybackManager_ChangeSessionState(This,dwSessionId,state,mute) (This)->lpVtbl->ChangeSessionState(This,dwSessionId,state,mute)
  31735 #else
  31736 /*** IUnknown methods ***/
  31737 static inline HRESULT IPlaybackManager_QueryInterface(IPlaybackManager* This,REFIID riid,void **ppvObject) {
  31738     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  31739 }
  31740 static inline ULONG IPlaybackManager_AddRef(IPlaybackManager* This) {
  31741     return This->lpVtbl->AddRef(This);
  31742 }
  31743 static inline ULONG IPlaybackManager_Release(IPlaybackManager* This) {
  31744     return This->lpVtbl->Release(This);
  31745 }
  31746 /*** IPlaybackManager methods ***/
  31747 static inline HRESULT IPlaybackManager_Advise(IPlaybackManager* This,PBM_SESSION_TYPE type,IPlaybackManagerEvents *pEvents,DWORD *pdwSessionId) {
  31748     return This->lpVtbl->Advise(This,type,pEvents,pdwSessionId);
  31749 }
  31750 static inline HRESULT IPlaybackManager_Unadvise(IPlaybackManager* This,DWORD dwSessionId) {
  31751     return This->lpVtbl->Unadvise(This,dwSessionId);
  31752 }
  31753 static inline HRESULT IPlaybackManager_ChangeSessionState(IPlaybackManager* This,DWORD dwSessionId,PBM_PLAY_STATE state,PBM_MUTE_STATE mute) {
  31754     return This->lpVtbl->ChangeSessionState(This,dwSessionId,state,mute);
  31755 }
  31756 #endif
  31757 #endif
  31758 
  31759 #endif
  31760 
  31761 
  31762 #endif  /* __IPlaybackManager_INTERFACE_DEFINED__ */
  31763 
  31764 
  31765 typedef enum DEFAULT_FOLDER_MENU_RESTRICTIONS {
  31766     DFMR_DEFAULT = 0x0,
  31767     DFMR_NO_STATIC_VERBS = 0x8,
  31768     DFMR_STATIC_VERBS_ONLY = 0x10,
  31769     DFMR_NO_RESOURCE_VERBS = 0x20,
  31770     DFMR_OPTIN_HANDLERS_ONLY = 0x40,
  31771     DFMR_RESOURCE_AND_FOLDER_VERBS_ONLY = 0x80,
  31772     DFMR_USE_SPECIFIED_HANDLERS = 0x100,
  31773     DFMR_USE_SPECIFIED_VERBS = 0x200,
  31774     DFMR_NO_ASYNC_VERBS = 0x400
  31775 } DEFAULT_FOLDER_MENU_RESTRICTIONS;
  31776 
  31777 DEFINE_ENUM_FLAG_OPERATORS(DEFAULT_FOLDER_MENU_RESTRICTIONS)
  31778 
  31779 /*****************************************************************************
  31780  * IDefaultFolderMenuInitialize interface
  31781  */
  31782 #ifndef __IDefaultFolderMenuInitialize_INTERFACE_DEFINED__
  31783 #define __IDefaultFolderMenuInitialize_INTERFACE_DEFINED__
  31784 
  31785 DEFINE_GUID(IID_IDefaultFolderMenuInitialize, 0x7690aa79, 0xf8fc, 0x4615, 0xa3,0x27, 0x36,0xf7,0xd1,0x8f,0x5d,0x91);
  31786 #if defined(__cplusplus) && !defined(CINTERFACE)
  31787 MIDL_INTERFACE("7690aa79-f8fc-4615-a327-36f7d18f5d91")
  31788 IDefaultFolderMenuInitialize : public IUnknown
  31789 {
  31790     virtual HRESULT STDMETHODCALLTYPE Initialize(
  31791         HWND hwnd,
  31792         IContextMenuCB *pcmcb,
  31793         PCIDLIST_ABSOLUTE pidlFolder,
  31794         IShellFolder *psf,
  31795         UINT cidl,
  31796         PCUITEMID_CHILD_ARRAY apidl,
  31797         IUnknown *punkAssociation,
  31798         UINT cKeys,
  31799         const HKEY *aKeys) = 0;
  31800 
  31801     virtual HRESULT STDMETHODCALLTYPE SetMenuRestrictions(
  31802         DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues) = 0;
  31803 
  31804     virtual HRESULT STDMETHODCALLTYPE GetMenuRestrictions(
  31805         DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,
  31806         DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues) = 0;
  31807 
  31808     virtual HRESULT STDMETHODCALLTYPE SetHandlerClsid(
  31809         REFCLSID rclsid) = 0;
  31810 
  31811 };
  31812 #ifdef __CRT_UUID_DECL
  31813 __CRT_UUID_DECL(IDefaultFolderMenuInitialize, 0x7690aa79, 0xf8fc, 0x4615, 0xa3,0x27, 0x36,0xf7,0xd1,0x8f,0x5d,0x91)
  31814 #endif
  31815 #else
  31816 typedef struct IDefaultFolderMenuInitializeVtbl {
  31817     BEGIN_INTERFACE
  31818 
  31819     /*** IUnknown methods ***/
  31820     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  31821         IDefaultFolderMenuInitialize *This,
  31822         REFIID riid,
  31823         void **ppvObject);
  31824 
  31825     ULONG (STDMETHODCALLTYPE *AddRef)(
  31826         IDefaultFolderMenuInitialize *This);
  31827 
  31828     ULONG (STDMETHODCALLTYPE *Release)(
  31829         IDefaultFolderMenuInitialize *This);
  31830 
  31831     /*** IDefaultFolderMenuInitialize methods ***/
  31832     HRESULT (STDMETHODCALLTYPE *Initialize)(
  31833         IDefaultFolderMenuInitialize *This,
  31834         HWND hwnd,
  31835         IContextMenuCB *pcmcb,
  31836         PCIDLIST_ABSOLUTE pidlFolder,
  31837         IShellFolder *psf,
  31838         UINT cidl,
  31839         PCUITEMID_CHILD_ARRAY apidl,
  31840         IUnknown *punkAssociation,
  31841         UINT cKeys,
  31842         const HKEY *aKeys);
  31843 
  31844     HRESULT (STDMETHODCALLTYPE *SetMenuRestrictions)(
  31845         IDefaultFolderMenuInitialize *This,
  31846         DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues);
  31847 
  31848     HRESULT (STDMETHODCALLTYPE *GetMenuRestrictions)(
  31849         IDefaultFolderMenuInitialize *This,
  31850         DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,
  31851         DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues);
  31852 
  31853     HRESULT (STDMETHODCALLTYPE *SetHandlerClsid)(
  31854         IDefaultFolderMenuInitialize *This,
  31855         REFCLSID rclsid);
  31856 
  31857     END_INTERFACE
  31858 } IDefaultFolderMenuInitializeVtbl;
  31859 
  31860 interface IDefaultFolderMenuInitialize {
  31861     CONST_VTBL IDefaultFolderMenuInitializeVtbl* lpVtbl;
  31862 };
  31863 
  31864 #ifdef COBJMACROS
  31865 #ifndef WIDL_C_INLINE_WRAPPERS
  31866 /*** IUnknown methods ***/
  31867 #define IDefaultFolderMenuInitialize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  31868 #define IDefaultFolderMenuInitialize_AddRef(This) (This)->lpVtbl->AddRef(This)
  31869 #define IDefaultFolderMenuInitialize_Release(This) (This)->lpVtbl->Release(This)
  31870 /*** IDefaultFolderMenuInitialize methods ***/
  31871 #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)
  31872 #define IDefaultFolderMenuInitialize_SetMenuRestrictions(This,dfmrValues) (This)->lpVtbl->SetMenuRestrictions(This,dfmrValues)
  31873 #define IDefaultFolderMenuInitialize_GetMenuRestrictions(This,dfmrMask,pdfmrValues) (This)->lpVtbl->GetMenuRestrictions(This,dfmrMask,pdfmrValues)
  31874 #define IDefaultFolderMenuInitialize_SetHandlerClsid(This,rclsid) (This)->lpVtbl->SetHandlerClsid(This,rclsid)
  31875 #else
  31876 /*** IUnknown methods ***/
  31877 static inline HRESULT IDefaultFolderMenuInitialize_QueryInterface(IDefaultFolderMenuInitialize* This,REFIID riid,void **ppvObject) {
  31878     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  31879 }
  31880 static inline ULONG IDefaultFolderMenuInitialize_AddRef(IDefaultFolderMenuInitialize* This) {
  31881     return This->lpVtbl->AddRef(This);
  31882 }
  31883 static inline ULONG IDefaultFolderMenuInitialize_Release(IDefaultFolderMenuInitialize* This) {
  31884     return This->lpVtbl->Release(This);
  31885 }
  31886 /*** IDefaultFolderMenuInitialize methods ***/
  31887 static inline 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) {
  31888     return This->lpVtbl->Initialize(This,hwnd,pcmcb,pidlFolder,psf,cidl,apidl,punkAssociation,cKeys,aKeys);
  31889 }
  31890 static inline HRESULT IDefaultFolderMenuInitialize_SetMenuRestrictions(IDefaultFolderMenuInitialize* This,DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues) {
  31891     return This->lpVtbl->SetMenuRestrictions(This,dfmrValues);
  31892 }
  31893 static inline HRESULT IDefaultFolderMenuInitialize_GetMenuRestrictions(IDefaultFolderMenuInitialize* This,DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues) {
  31894     return This->lpVtbl->GetMenuRestrictions(This,dfmrMask,pdfmrValues);
  31895 }
  31896 static inline HRESULT IDefaultFolderMenuInitialize_SetHandlerClsid(IDefaultFolderMenuInitialize* This,REFCLSID rclsid) {
  31897     return This->lpVtbl->SetHandlerClsid(This,rclsid);
  31898 }
  31899 #endif
  31900 #endif
  31901 
  31902 #endif
  31903 
  31904 
  31905 #endif  /* __IDefaultFolderMenuInitialize_INTERFACE_DEFINED__ */
  31906 
  31907 
  31908 #if NTDDI_VERSION >= NTDDI_WIN8
  31909 typedef enum ACTIVATEOPTIONS {
  31910     AO_NONE = 0x0,
  31911     AO_DESIGNMODE = 0x1,
  31912     AO_NOERRORUI = 0x2,
  31913     AO_NOSPLASHSCREEN = 0x4
  31914 } ACTIVATEOPTIONS;
  31915 
  31916 DEFINE_ENUM_FLAG_OPERATORS(ACTIVATEOPTIONS)
  31917 
  31918 /*****************************************************************************
  31919  * IApplicationActivationManager interface
  31920  */
  31921 #ifndef __IApplicationActivationManager_INTERFACE_DEFINED__
  31922 #define __IApplicationActivationManager_INTERFACE_DEFINED__
  31923 
  31924 DEFINE_GUID(IID_IApplicationActivationManager, 0x2e941141, 0x7f97, 0x4756, 0xba,0x1d, 0x9d,0xec,0xde,0x89,0x4a,0x3d);
  31925 #if defined(__cplusplus) && !defined(CINTERFACE)
  31926 MIDL_INTERFACE("2e941141-7f97-4756-ba1d-9decde894a3d")
  31927 IApplicationActivationManager : public IUnknown
  31928 {
  31929     virtual HRESULT STDMETHODCALLTYPE ActivateApplication(
  31930         LPCWSTR appUserModelId,
  31931         LPCWSTR arguments,
  31932         ACTIVATEOPTIONS options,
  31933         DWORD *processId) = 0;
  31934 
  31935     virtual HRESULT STDMETHODCALLTYPE ActivateForFile(
  31936         LPCWSTR appUserModelId,
  31937         IShellItemArray *itemArray,
  31938         LPCWSTR verb,
  31939         DWORD *processId) = 0;
  31940 
  31941     virtual HRESULT STDMETHODCALLTYPE ActivateForProtocol(
  31942         LPCWSTR appUserModelId,
  31943         IShellItemArray *itemArray,
  31944         DWORD *processId) = 0;
  31945 
  31946 };
  31947 #ifdef __CRT_UUID_DECL
  31948 __CRT_UUID_DECL(IApplicationActivationManager, 0x2e941141, 0x7f97, 0x4756, 0xba,0x1d, 0x9d,0xec,0xde,0x89,0x4a,0x3d)
  31949 #endif
  31950 #else
  31951 typedef struct IApplicationActivationManagerVtbl {
  31952     BEGIN_INTERFACE
  31953 
  31954     /*** IUnknown methods ***/
  31955     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  31956         IApplicationActivationManager *This,
  31957         REFIID riid,
  31958         void **ppvObject);
  31959 
  31960     ULONG (STDMETHODCALLTYPE *AddRef)(
  31961         IApplicationActivationManager *This);
  31962 
  31963     ULONG (STDMETHODCALLTYPE *Release)(
  31964         IApplicationActivationManager *This);
  31965 
  31966     /*** IApplicationActivationManager methods ***/
  31967     HRESULT (STDMETHODCALLTYPE *ActivateApplication)(
  31968         IApplicationActivationManager *This,
  31969         LPCWSTR appUserModelId,
  31970         LPCWSTR arguments,
  31971         ACTIVATEOPTIONS options,
  31972         DWORD *processId);
  31973 
  31974     HRESULT (STDMETHODCALLTYPE *ActivateForFile)(
  31975         IApplicationActivationManager *This,
  31976         LPCWSTR appUserModelId,
  31977         IShellItemArray *itemArray,
  31978         LPCWSTR verb,
  31979         DWORD *processId);
  31980 
  31981     HRESULT (STDMETHODCALLTYPE *ActivateForProtocol)(
  31982         IApplicationActivationManager *This,
  31983         LPCWSTR appUserModelId,
  31984         IShellItemArray *itemArray,
  31985         DWORD *processId);
  31986 
  31987     END_INTERFACE
  31988 } IApplicationActivationManagerVtbl;
  31989 
  31990 interface IApplicationActivationManager {
  31991     CONST_VTBL IApplicationActivationManagerVtbl* lpVtbl;
  31992 };
  31993 
  31994 #ifdef COBJMACROS
  31995 #ifndef WIDL_C_INLINE_WRAPPERS
  31996 /*** IUnknown methods ***/
  31997 #define IApplicationActivationManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  31998 #define IApplicationActivationManager_AddRef(This) (This)->lpVtbl->AddRef(This)
  31999 #define IApplicationActivationManager_Release(This) (This)->lpVtbl->Release(This)
  32000 /*** IApplicationActivationManager methods ***/
  32001 #define IApplicationActivationManager_ActivateApplication(This,appUserModelId,arguments,options,processId) (This)->lpVtbl->ActivateApplication(This,appUserModelId,arguments,options,processId)
  32002 #define IApplicationActivationManager_ActivateForFile(This,appUserModelId,itemArray,verb,processId) (This)->lpVtbl->ActivateForFile(This,appUserModelId,itemArray,verb,processId)
  32003 #define IApplicationActivationManager_ActivateForProtocol(This,appUserModelId,itemArray,processId) (This)->lpVtbl->ActivateForProtocol(This,appUserModelId,itemArray,processId)
  32004 #else
  32005 /*** IUnknown methods ***/
  32006 static inline HRESULT IApplicationActivationManager_QueryInterface(IApplicationActivationManager* This,REFIID riid,void **ppvObject) {
  32007     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  32008 }
  32009 static inline ULONG IApplicationActivationManager_AddRef(IApplicationActivationManager* This) {
  32010     return This->lpVtbl->AddRef(This);
  32011 }
  32012 static inline ULONG IApplicationActivationManager_Release(IApplicationActivationManager* This) {
  32013     return This->lpVtbl->Release(This);
  32014 }
  32015 /*** IApplicationActivationManager methods ***/
  32016 static inline HRESULT IApplicationActivationManager_ActivateApplication(IApplicationActivationManager* This,LPCWSTR appUserModelId,LPCWSTR arguments,ACTIVATEOPTIONS options,DWORD *processId) {
  32017     return This->lpVtbl->ActivateApplication(This,appUserModelId,arguments,options,processId);
  32018 }
  32019 static inline HRESULT IApplicationActivationManager_ActivateForFile(IApplicationActivationManager* This,LPCWSTR appUserModelId,IShellItemArray *itemArray,LPCWSTR verb,DWORD *processId) {
  32020     return This->lpVtbl->ActivateForFile(This,appUserModelId,itemArray,verb,processId);
  32021 }
  32022 static inline HRESULT IApplicationActivationManager_ActivateForProtocol(IApplicationActivationManager* This,LPCWSTR appUserModelId,IShellItemArray *itemArray,DWORD *processId) {
  32023     return This->lpVtbl->ActivateForProtocol(This,appUserModelId,itemArray,processId);
  32024 }
  32025 #endif
  32026 #endif
  32027 
  32028 #endif
  32029 
  32030 
  32031 #endif  /* __IApplicationActivationManager_INTERFACE_DEFINED__ */
  32032 
  32033 #endif
  32034 
  32035 #ifndef __ShellObjects_LIBRARY_DEFINED__
  32036 #define __ShellObjects_LIBRARY_DEFINED__
  32037 
  32038 DEFINE_GUID(LIBID_ShellObjects, 0x50a7e9b1, 0x70ef, 0x11d1, 0xb7,0x5a, 0x00,0xa0,0xc9,0x05,0x64,0xfe);
  32039 
  32040 /*****************************************************************************
  32041  * DesktopWallpaper coclass
  32042  */
  32043 
  32044 DEFINE_GUID(CLSID_DesktopWallpaper, 0xc2cf3110, 0x460e, 0x4fc1, 0xb9,0xd0, 0x8a,0x1c,0x0c,0x9c,0xc4,0xbd);
  32045 
  32046 #ifdef __cplusplus
  32047 class DECLSPEC_UUID("c2cf3110-460e-4fc1-b9d0-8a1c0c9cc4bd") DesktopWallpaper;
  32048 #ifdef __CRT_UUID_DECL
  32049 __CRT_UUID_DECL(DesktopWallpaper, 0xc2cf3110, 0x460e, 0x4fc1, 0xb9,0xd0, 0x8a,0x1c,0x0c,0x9c,0xc4,0xbd)
  32050 #endif
  32051 #endif
  32052 
  32053 /*****************************************************************************
  32054  * ShellDesktop coclass
  32055  */
  32056 
  32057 DEFINE_GUID(CLSID_ShellDesktop, 0x00021400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  32058 
  32059 #ifdef __cplusplus
  32060 class DECLSPEC_UUID("00021400-0000-0000-c000-000000000046") ShellDesktop;
  32061 #ifdef __CRT_UUID_DECL
  32062 __CRT_UUID_DECL(ShellDesktop, 0x00021400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  32063 #endif
  32064 #endif
  32065 
  32066 /*****************************************************************************
  32067  * ShellFSFolder coclass
  32068  */
  32069 
  32070 DEFINE_GUID(CLSID_ShellFSFolder, 0xf3364ba0, 0x65b9, 0x11ce, 0xa9,0xba, 0x00,0xaa,0x00,0x4a,0xe8,0x37);
  32071 
  32072 #ifdef __cplusplus
  32073 class DECLSPEC_UUID("f3364ba0-65b9-11ce-a9ba-00aa004ae837") ShellFSFolder;
  32074 #ifdef __CRT_UUID_DECL
  32075 __CRT_UUID_DECL(ShellFSFolder, 0xf3364ba0, 0x65b9, 0x11ce, 0xa9,0xba, 0x00,0xaa,0x00,0x4a,0xe8,0x37)
  32076 #endif
  32077 #endif
  32078 
  32079 /*****************************************************************************
  32080  * NetworkPlaces coclass
  32081  */
  32082 
  32083 DEFINE_GUID(CLSID_NetworkPlaces, 0x208d2c60, 0x3aea, 0x1069, 0xa2,0xd7, 0x08,0x00,0x2b,0x30,0x30,0x9d);
  32084 
  32085 #ifdef __cplusplus
  32086 class DECLSPEC_UUID("208d2c60-3aea-1069-a2d7-08002b30309d") NetworkPlaces;
  32087 #ifdef __CRT_UUID_DECL
  32088 __CRT_UUID_DECL(NetworkPlaces, 0x208d2c60, 0x3aea, 0x1069, 0xa2,0xd7, 0x08,0x00,0x2b,0x30,0x30,0x9d)
  32089 #endif
  32090 #endif
  32091 
  32092 /*****************************************************************************
  32093  * ShellLink coclass
  32094  */
  32095 
  32096 DEFINE_GUID(CLSID_ShellLink, 0x00021401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
  32097 
  32098 #ifdef __cplusplus
  32099 class DECLSPEC_UUID("00021401-0000-0000-c000-000000000046") ShellLink;
  32100 #ifdef __CRT_UUID_DECL
  32101 __CRT_UUID_DECL(ShellLink, 0x00021401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
  32102 #endif
  32103 #endif
  32104 
  32105 /*****************************************************************************
  32106  * QueryCancelAutoPlay coclass
  32107  */
  32108 
  32109 DEFINE_GUID(CLSID_QueryCancelAutoPlay, 0x331f1768, 0x05a9, 0x4ddd, 0xb8,0x6e, 0xda,0xe3,0x4d,0xdc,0x99,0x8a);
  32110 
  32111 #ifdef __cplusplus
  32112 class DECLSPEC_UUID("331f1768-05a9-4ddd-b86e-dae34ddc998a") QueryCancelAutoPlay;
  32113 #ifdef __CRT_UUID_DECL
  32114 __CRT_UUID_DECL(QueryCancelAutoPlay, 0x331f1768, 0x05a9, 0x4ddd, 0xb8,0x6e, 0xda,0xe3,0x4d,0xdc,0x99,0x8a)
  32115 #endif
  32116 #endif
  32117 
  32118 /*****************************************************************************
  32119  * DriveSizeCategorizer coclass
  32120  */
  32121 
  32122 DEFINE_GUID(CLSID_DriveSizeCategorizer, 0x94357b53, 0xca29, 0x4b78, 0x83,0xae, 0xe8,0xfe,0x74,0x09,0x13,0x4f);
  32123 
  32124 #ifdef __cplusplus
  32125 class DECLSPEC_UUID("94357b53-ca29-4b78-83ae-e8fe7409134f") DriveSizeCategorizer;
  32126 #ifdef __CRT_UUID_DECL
  32127 __CRT_UUID_DECL(DriveSizeCategorizer, 0x94357b53, 0xca29, 0x4b78, 0x83,0xae, 0xe8,0xfe,0x74,0x09,0x13,0x4f)
  32128 #endif
  32129 #endif
  32130 
  32131 /*****************************************************************************
  32132  * DriveTypeCategorizer coclass
  32133  */
  32134 
  32135 DEFINE_GUID(CLSID_DriveTypeCategorizer, 0xb0a8f3cf, 0x4333, 0x4bab, 0x88,0x73, 0x1c,0xcb,0x1c,0xad,0xa4,0x8b);
  32136 
  32137 #ifdef __cplusplus
  32138 class DECLSPEC_UUID("b0a8f3cf-4333-4bab-8873-1ccb1cada48b") DriveTypeCategorizer;
  32139 #ifdef __CRT_UUID_DECL
  32140 __CRT_UUID_DECL(DriveTypeCategorizer, 0xb0a8f3cf, 0x4333, 0x4bab, 0x88,0x73, 0x1c,0xcb,0x1c,0xad,0xa4,0x8b)
  32141 #endif
  32142 #endif
  32143 
  32144 /*****************************************************************************
  32145  * FreeSpaceCategorizer coclass
  32146  */
  32147 
  32148 DEFINE_GUID(CLSID_FreeSpaceCategorizer, 0xb5607793, 0x24ac, 0x44c7, 0x82,0xe2, 0x83,0x17,0x26,0xaa,0x6c,0xb7);
  32149 
  32150 #ifdef __cplusplus
  32151 class DECLSPEC_UUID("b5607793-24ac-44c7-82e2-831726aa6cb7") FreeSpaceCategorizer;
  32152 #ifdef __CRT_UUID_DECL
  32153 __CRT_UUID_DECL(FreeSpaceCategorizer, 0xb5607793, 0x24ac, 0x44c7, 0x82,0xe2, 0x83,0x17,0x26,0xaa,0x6c,0xb7)
  32154 #endif
  32155 #endif
  32156 
  32157 /*****************************************************************************
  32158  * TimeCategorizer coclass
  32159  */
  32160 
  32161 DEFINE_GUID(CLSID_TimeCategorizer, 0x3bb4118f, 0xddfd, 0x4d30, 0xa3,0x48, 0x9f,0xb5,0xd6,0xbf,0x1a,0xfe);
  32162 
  32163 #ifdef __cplusplus
  32164 class DECLSPEC_UUID("3bb4118f-ddfd-4d30-a348-9fb5d6bf1afe") TimeCategorizer;
  32165 #ifdef __CRT_UUID_DECL
  32166 __CRT_UUID_DECL(TimeCategorizer, 0x3bb4118f, 0xddfd, 0x4d30, 0xa3,0x48, 0x9f,0xb5,0xd6,0xbf,0x1a,0xfe)
  32167 #endif
  32168 #endif
  32169 
  32170 /*****************************************************************************
  32171  * SizeCategorizer coclass
  32172  */
  32173 
  32174 DEFINE_GUID(CLSID_SizeCategorizer, 0x55d7b852, 0xf6d1, 0x42f2, 0xaa,0x75, 0x87,0x28,0xa1,0xb2,0xd2,0x64);
  32175 
  32176 #ifdef __cplusplus
  32177 class DECLSPEC_UUID("55d7b852-f6d1-42f2-aa75-8728a1b2d264") SizeCategorizer;
  32178 #ifdef __CRT_UUID_DECL
  32179 __CRT_UUID_DECL(SizeCategorizer, 0x55d7b852, 0xf6d1, 0x42f2, 0xaa,0x75, 0x87,0x28,0xa1,0xb2,0xd2,0x64)
  32180 #endif
  32181 #endif
  32182 
  32183 /*****************************************************************************
  32184  * AlphabeticalCategorizer coclass
  32185  */
  32186 
  32187 DEFINE_GUID(CLSID_AlphabeticalCategorizer, 0x3c2654c6, 0x7372, 0x4f6b, 0xb3,0x10, 0x55,0xd6,0x12,0x8f,0x49,0xd2);
  32188 
  32189 #ifdef __cplusplus
  32190 class DECLSPEC_UUID("3c2654c6-7372-4f6b-b310-55d6128f49d2") AlphabeticalCategorizer;
  32191 #ifdef __CRT_UUID_DECL
  32192 __CRT_UUID_DECL(AlphabeticalCategorizer, 0x3c2654c6, 0x7372, 0x4f6b, 0xb3,0x10, 0x55,0xd6,0x12,0x8f,0x49,0xd2)
  32193 #endif
  32194 #endif
  32195 
  32196 /*****************************************************************************
  32197  * MergedCategorizer coclass
  32198  */
  32199 
  32200 DEFINE_GUID(CLSID_MergedCategorizer, 0x8e827c11, 0x33e7, 0x4bc1, 0xb2,0x42, 0x8c,0xd9,0xa1,0xc2,0xb3,0x04);
  32201 
  32202 #ifdef __cplusplus
  32203 class DECLSPEC_UUID("8e827c11-33e7-4bc1-b242-8cd9a1c2b304") MergedCategorizer;
  32204 #ifdef __CRT_UUID_DECL
  32205 __CRT_UUID_DECL(MergedCategorizer, 0x8e827c11, 0x33e7, 0x4bc1, 0xb2,0x42, 0x8c,0xd9,0xa1,0xc2,0xb3,0x04)
  32206 #endif
  32207 #endif
  32208 
  32209 /*****************************************************************************
  32210  * ImageProperties coclass
  32211  */
  32212 
  32213 DEFINE_GUID(CLSID_ImageProperties, 0x7ab770c7, 0x0e23, 0x4d7a, 0x8a,0xa2, 0x19,0xbf,0xad,0x47,0x98,0x29);
  32214 
  32215 #ifdef __cplusplus
  32216 class DECLSPEC_UUID("7ab770c7-0e23-4d7a-8aa2-19bfad479829") ImageProperties;
  32217 #ifdef __CRT_UUID_DECL
  32218 __CRT_UUID_DECL(ImageProperties, 0x7ab770c7, 0x0e23, 0x4d7a, 0x8a,0xa2, 0x19,0xbf,0xad,0x47,0x98,0x29)
  32219 #endif
  32220 #endif
  32221 
  32222 /*****************************************************************************
  32223  * PropertiesUI coclass
  32224  */
  32225 
  32226 DEFINE_GUID(CLSID_PropertiesUI, 0xd912f8cf, 0x0396, 0x4915, 0x88,0x4e, 0xfb,0x42,0x5d,0x32,0x94,0x3b);
  32227 
  32228 #ifdef __cplusplus
  32229 class DECLSPEC_UUID("d912f8cf-0396-4915-884e-fb425d32943b") PropertiesUI;
  32230 #ifdef __CRT_UUID_DECL
  32231 __CRT_UUID_DECL(PropertiesUI, 0xd912f8cf, 0x0396, 0x4915, 0x88,0x4e, 0xfb,0x42,0x5d,0x32,0x94,0x3b)
  32232 #endif
  32233 #endif
  32234 
  32235 /*****************************************************************************
  32236  * UserNotification coclass
  32237  */
  32238 
  32239 DEFINE_GUID(CLSID_UserNotification, 0x0010890e, 0x8789, 0x413c, 0xad,0xbc, 0x48,0xf5,0xb5,0x11,0xb3,0xaf);
  32240 
  32241 #ifdef __cplusplus
  32242 class DECLSPEC_UUID("0010890e-8789-413c-adbc-48f5b511b3af") UserNotification;
  32243 #ifdef __CRT_UUID_DECL
  32244 __CRT_UUID_DECL(UserNotification, 0x0010890e, 0x8789, 0x413c, 0xad,0xbc, 0x48,0xf5,0xb5,0x11,0xb3,0xaf)
  32245 #endif
  32246 #endif
  32247 
  32248 /*****************************************************************************
  32249  * CDBurn coclass
  32250  */
  32251 
  32252 DEFINE_GUID(CLSID_CDBurn, 0xfbeb8a05, 0xbeee, 0x4442, 0x80,0x4e, 0x40,0x9d,0x6c,0x45,0x15,0xe9);
  32253 
  32254 #ifdef __cplusplus
  32255 class DECLSPEC_UUID("fbeb8a05-beee-4442-804e-409d6c4515e9") CDBurn;
  32256 #ifdef __CRT_UUID_DECL
  32257 __CRT_UUID_DECL(CDBurn, 0xfbeb8a05, 0xbeee, 0x4442, 0x80,0x4e, 0x40,0x9d,0x6c,0x45,0x15,0xe9)
  32258 #endif
  32259 #endif
  32260 
  32261 /*****************************************************************************
  32262  * TaskbarList coclass
  32263  */
  32264 
  32265 DEFINE_GUID(CLSID_TaskbarList, 0x56fdf344, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90);
  32266 
  32267 #ifdef __cplusplus
  32268 class DECLSPEC_UUID("56fdf344-fd6d-11d0-958a-006097c9a090") TaskbarList;
  32269 #ifdef __CRT_UUID_DECL
  32270 __CRT_UUID_DECL(TaskbarList, 0x56fdf344, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90)
  32271 #endif
  32272 #endif
  32273 
  32274 /*****************************************************************************
  32275  * StartMenuPin coclass
  32276  */
  32277 
  32278 DEFINE_GUID(CLSID_StartMenuPin, 0xa2a9545d, 0xa0c2, 0x42b4, 0x97,0x08, 0xa0,0xb2,0xba,0xdd,0x77,0xc8);
  32279 
  32280 #ifdef __cplusplus
  32281 class DECLSPEC_UUID("a2a9545d-a0c2-42b4-9708-a0b2badd77c8") StartMenuPin;
  32282 #ifdef __CRT_UUID_DECL
  32283 __CRT_UUID_DECL(StartMenuPin, 0xa2a9545d, 0xa0c2, 0x42b4, 0x97,0x08, 0xa0,0xb2,0xba,0xdd,0x77,0xc8)
  32284 #endif
  32285 #endif
  32286 
  32287 /*****************************************************************************
  32288  * WebWizardHost coclass
  32289  */
  32290 
  32291 DEFINE_GUID(CLSID_WebWizardHost, 0xc827f149, 0x55c1, 0x4d28, 0x93,0x5e, 0x57,0xe4,0x7c,0xae,0xd9,0x73);
  32292 
  32293 #ifdef __cplusplus
  32294 class DECLSPEC_UUID("c827f149-55c1-4d28-935e-57e47caed973") WebWizardHost;
  32295 #ifdef __CRT_UUID_DECL
  32296 __CRT_UUID_DECL(WebWizardHost, 0xc827f149, 0x55c1, 0x4d28, 0x93,0x5e, 0x57,0xe4,0x7c,0xae,0xd9,0x73)
  32297 #endif
  32298 #endif
  32299 
  32300 /*****************************************************************************
  32301  * PublishDropTarget coclass
  32302  */
  32303 
  32304 DEFINE_GUID(CLSID_PublishDropTarget, 0xcc6eeffb, 0x43f6, 0x46c5, 0x96,0x19, 0x51,0xd5,0x71,0x96,0x7f,0x7d);
  32305 
  32306 #ifdef __cplusplus
  32307 class DECLSPEC_UUID("cc6eeffb-43f6-46c5-9619-51d571967f7d") PublishDropTarget;
  32308 #ifdef __CRT_UUID_DECL
  32309 __CRT_UUID_DECL(PublishDropTarget, 0xcc6eeffb, 0x43f6, 0x46c5, 0x96,0x19, 0x51,0xd5,0x71,0x96,0x7f,0x7d)
  32310 #endif
  32311 #endif
  32312 
  32313 /*****************************************************************************
  32314  * PublishingWizard coclass
  32315  */
  32316 
  32317 DEFINE_GUID(CLSID_PublishingWizard, 0x6b33163c, 0x76a5, 0x4b6c, 0xbf,0x21, 0x45,0xde,0x9c,0xd5,0x03,0xa1);
  32318 
  32319 #ifdef __cplusplus
  32320 class DECLSPEC_UUID("6b33163c-76a5-4b6c-bf21-45de9cd503a1") PublishingWizard;
  32321 #ifdef __CRT_UUID_DECL
  32322 __CRT_UUID_DECL(PublishingWizard, 0x6b33163c, 0x76a5, 0x4b6c, 0xbf,0x21, 0x45,0xde,0x9c,0xd5,0x03,0xa1)
  32323 #endif
  32324 #endif
  32325 
  32326 #define SID_PublishingWizard CLSID_PublishingWizard
  32327 /*****************************************************************************
  32328  * InternetPrintOrdering coclass
  32329  */
  32330 
  32331 DEFINE_GUID(CLSID_InternetPrintOrdering, 0xadd36aa8, 0x751a, 0x4579, 0xa2,0x66, 0xd6,0x6f,0x52,0x02,0xcc,0xbb);
  32332 
  32333 #ifdef __cplusplus
  32334 class DECLSPEC_UUID("add36aa8-751a-4579-a266-d66f5202ccbb") InternetPrintOrdering;
  32335 #ifdef __CRT_UUID_DECL
  32336 __CRT_UUID_DECL(InternetPrintOrdering, 0xadd36aa8, 0x751a, 0x4579, 0xa2,0x66, 0xd6,0x6f,0x52,0x02,0xcc,0xbb)
  32337 #endif
  32338 #endif
  32339 
  32340 /*****************************************************************************
  32341  * FolderViewHost coclass
  32342  */
  32343 
  32344 DEFINE_GUID(CLSID_FolderViewHost, 0x20b1cb23, 0x6968, 0x4eb9, 0xb7,0xd4, 0xa6,0x6d,0x00,0xd0,0x7c,0xee);
  32345 
  32346 #ifdef __cplusplus
  32347 class DECLSPEC_UUID("20b1cb23-6968-4eb9-b7d4-a66d00d07cee") FolderViewHost;
  32348 #ifdef __CRT_UUID_DECL
  32349 __CRT_UUID_DECL(FolderViewHost, 0x20b1cb23, 0x6968, 0x4eb9, 0xb7,0xd4, 0xa6,0x6d,0x00,0xd0,0x7c,0xee)
  32350 #endif
  32351 #endif
  32352 
  32353 /*****************************************************************************
  32354  * ExplorerBrowser coclass
  32355  */
  32356 
  32357 DEFINE_GUID(CLSID_ExplorerBrowser, 0x71f96385, 0xddd6, 0x48d3, 0xa0,0xc1, 0xae,0x06,0xe8,0xb0,0x55,0xfb);
  32358 
  32359 #ifdef __cplusplus
  32360 class DECLSPEC_UUID("71f96385-ddd6-48d3-a0c1-ae06e8b055fb") ExplorerBrowser;
  32361 #ifdef __CRT_UUID_DECL
  32362 __CRT_UUID_DECL(ExplorerBrowser, 0x71f96385, 0xddd6, 0x48d3, 0xa0,0xc1, 0xae,0x06,0xe8,0xb0,0x55,0xfb)
  32363 #endif
  32364 #endif
  32365 
  32366 /*****************************************************************************
  32367  * ImageRecompress coclass
  32368  */
  32369 
  32370 DEFINE_GUID(CLSID_ImageRecompress, 0x6e33091c, 0xd2f8, 0x4740, 0xb5,0x5e, 0x2e,0x11,0xd1,0x47,0x7a,0x2c);
  32371 
  32372 #ifdef __cplusplus
  32373 class DECLSPEC_UUID("6e33091c-d2f8-4740-b55e-2e11d1477a2c") ImageRecompress;
  32374 #ifdef __CRT_UUID_DECL
  32375 __CRT_UUID_DECL(ImageRecompress, 0x6e33091c, 0xd2f8, 0x4740, 0xb5,0x5e, 0x2e,0x11,0xd1,0x47,0x7a,0x2c)
  32376 #endif
  32377 #endif
  32378 
  32379 /*****************************************************************************
  32380  * TrayBandSiteService coclass
  32381  */
  32382 
  32383 DEFINE_GUID(CLSID_TrayBandSiteService, 0xf60ad0a0, 0xe5e1, 0x45cb, 0xb5,0x1a, 0xe1,0x5b,0x9f,0x8b,0x29,0x34);
  32384 
  32385 #ifdef __cplusplus
  32386 class DECLSPEC_UUID("f60ad0a0-e5e1-45cb-b51a-e15b9f8b2934") TrayBandSiteService;
  32387 #ifdef __CRT_UUID_DECL
  32388 __CRT_UUID_DECL(TrayBandSiteService, 0xf60ad0a0, 0xe5e1, 0x45cb, 0xb5,0x1a, 0xe1,0x5b,0x9f,0x8b,0x29,0x34)
  32389 #endif
  32390 #endif
  32391 
  32392 /*****************************************************************************
  32393  * TrayDeskBand coclass
  32394  */
  32395 
  32396 DEFINE_GUID(CLSID_TrayDeskBand, 0xe6442437, 0x6c68, 0x4f52, 0x94,0xdd, 0x2c,0xfe,0xd2,0x67,0xef,0xb9);
  32397 
  32398 #ifdef __cplusplus
  32399 class DECLSPEC_UUID("e6442437-6c68-4f52-94dd-2cfed267efb9") TrayDeskBand;
  32400 #ifdef __CRT_UUID_DECL
  32401 __CRT_UUID_DECL(TrayDeskBand, 0xe6442437, 0x6c68, 0x4f52, 0x94,0xdd, 0x2c,0xfe,0xd2,0x67,0xef,0xb9)
  32402 #endif
  32403 #endif
  32404 
  32405 /*****************************************************************************
  32406  * AttachmentServices coclass
  32407  */
  32408 
  32409 DEFINE_GUID(CLSID_AttachmentServices, 0x4125dd96, 0xe03a, 0x4103, 0x8f,0x70, 0xe0,0x59,0x7d,0x80,0x3b,0x9c);
  32410 
  32411 #ifdef __cplusplus
  32412 class DECLSPEC_UUID("4125dd96-e03a-4103-8f70-e0597d803b9c") AttachmentServices;
  32413 #ifdef __CRT_UUID_DECL
  32414 __CRT_UUID_DECL(AttachmentServices, 0x4125dd96, 0xe03a, 0x4103, 0x8f,0x70, 0xe0,0x59,0x7d,0x80,0x3b,0x9c)
  32415 #endif
  32416 #endif
  32417 
  32418 /*****************************************************************************
  32419  * DocPropShellExtension coclass
  32420  */
  32421 
  32422 DEFINE_GUID(CLSID_DocPropShellExtension, 0x883373c3, 0xbf89, 0x11d1, 0xbe,0x35, 0x08,0x00,0x36,0xb1,0x1a,0x03);
  32423 
  32424 #ifdef __cplusplus
  32425 class DECLSPEC_UUID("883373c3-bf89-11d1-be35-080036b11a03") DocPropShellExtension;
  32426 #ifdef __CRT_UUID_DECL
  32427 __CRT_UUID_DECL(DocPropShellExtension, 0x883373c3, 0xbf89, 0x11d1, 0xbe,0x35, 0x08,0x00,0x36,0xb1,0x1a,0x03)
  32428 #endif
  32429 #endif
  32430 
  32431 /*****************************************************************************
  32432  * ShellItem coclass
  32433  */
  32434 
  32435 DEFINE_GUID(CLSID_ShellItem, 0x9ac9fbe1, 0xe0a2, 0x4ad6, 0xb4,0xee, 0xe2,0x12,0x01,0x3e,0xa9,0x17);
  32436 
  32437 #ifdef __cplusplus
  32438 class DECLSPEC_UUID("9ac9fbe1-e0a2-4ad6-b4ee-e212013ea917") ShellItem;
  32439 #ifdef __CRT_UUID_DECL
  32440 __CRT_UUID_DECL(ShellItem, 0x9ac9fbe1, 0xe0a2, 0x4ad6, 0xb4,0xee, 0xe2,0x12,0x01,0x3e,0xa9,0x17)
  32441 #endif
  32442 #endif
  32443 
  32444 /*****************************************************************************
  32445  * NamespaceWalker coclass
  32446  */
  32447 
  32448 DEFINE_GUID(CLSID_NamespaceWalker, 0x72eb61e0, 0x8672, 0x4303, 0x91,0x75, 0xf2,0xe4,0xc6,0x8b,0x2e,0x7c);
  32449 
  32450 #ifdef __cplusplus
  32451 class DECLSPEC_UUID("72eb61e0-8672-4303-9175-f2e4c68b2e7c") NamespaceWalker;
  32452 #ifdef __CRT_UUID_DECL
  32453 __CRT_UUID_DECL(NamespaceWalker, 0x72eb61e0, 0x8672, 0x4303, 0x91,0x75, 0xf2,0xe4,0xc6,0x8b,0x2e,0x7c)
  32454 #endif
  32455 #endif
  32456 
  32457 /*****************************************************************************
  32458  * FileOperation coclass
  32459  */
  32460 
  32461 DEFINE_GUID(CLSID_FileOperation, 0x3ad05575, 0x8857, 0x4850, 0x92,0x77, 0x11,0xb8,0x5b,0xdb,0x8e,0x09);
  32462 
  32463 #ifdef __cplusplus
  32464 class DECLSPEC_UUID("3ad05575-8857-4850-9277-11b85bdb8e09") FileOperation;
  32465 #ifdef __CRT_UUID_DECL
  32466 __CRT_UUID_DECL(FileOperation, 0x3ad05575, 0x8857, 0x4850, 0x92,0x77, 0x11,0xb8,0x5b,0xdb,0x8e,0x09)
  32467 #endif
  32468 #endif
  32469 
  32470 /*****************************************************************************
  32471  * FileOpenDialog coclass
  32472  */
  32473 
  32474 DEFINE_GUID(CLSID_FileOpenDialog, 0xdc1c5a9c, 0xe88a, 0x4dde, 0xa5,0xa1, 0x60,0xf8,0x2a,0x20,0xae,0xf7);
  32475 
  32476 #ifdef __cplusplus
  32477 class DECLSPEC_UUID("dc1c5a9c-e88a-4dde-a5a1-60f82a20aef7") FileOpenDialog;
  32478 #ifdef __CRT_UUID_DECL
  32479 __CRT_UUID_DECL(FileOpenDialog, 0xdc1c5a9c, 0xe88a, 0x4dde, 0xa5,0xa1, 0x60,0xf8,0x2a,0x20,0xae,0xf7)
  32480 #endif
  32481 #endif
  32482 
  32483 /*****************************************************************************
  32484  * FileSaveDialog coclass
  32485  */
  32486 
  32487 DEFINE_GUID(CLSID_FileSaveDialog, 0xc0b4e2f3, 0xba21, 0x4773, 0x8d,0xba, 0x33,0x5e,0xc9,0x46,0xeb,0x8b);
  32488 
  32489 #ifdef __cplusplus
  32490 class DECLSPEC_UUID("c0b4e2f3-ba21-4773-8dba-335ec946eb8b") FileSaveDialog;
  32491 #ifdef __CRT_UUID_DECL
  32492 __CRT_UUID_DECL(FileSaveDialog, 0xc0b4e2f3, 0xba21, 0x4773, 0x8d,0xba, 0x33,0x5e,0xc9,0x46,0xeb,0x8b)
  32493 #endif
  32494 #endif
  32495 
  32496 /*****************************************************************************
  32497  * KnownFolderManager coclass
  32498  */
  32499 
  32500 DEFINE_GUID(CLSID_KnownFolderManager, 0x4df0c730, 0xdf9d, 0x4ae3, 0x91,0x53, 0xaa,0x6b,0x82,0xe9,0x79,0x5a);
  32501 
  32502 #ifdef __cplusplus
  32503 class DECLSPEC_UUID("4df0c730-df9d-4ae3-9153-aa6b82e9795a") KnownFolderManager;
  32504 #ifdef __CRT_UUID_DECL
  32505 __CRT_UUID_DECL(KnownFolderManager, 0x4df0c730, 0xdf9d, 0x4ae3, 0x91,0x53, 0xaa,0x6b,0x82,0xe9,0x79,0x5a)
  32506 #endif
  32507 #endif
  32508 
  32509 /*****************************************************************************
  32510  * FSCopyHandler coclass
  32511  */
  32512 
  32513 DEFINE_GUID(CLSID_FSCopyHandler, 0xd197380a, 0x0a79, 0x4dc8, 0xa0,0x33, 0xed,0x88,0x2c,0x2f,0xa1,0x4b);
  32514 
  32515 #ifdef __cplusplus
  32516 class DECLSPEC_UUID("d197380a-0a79-4dc8-a033-ed882c2fa14b") FSCopyHandler;
  32517 #ifdef __CRT_UUID_DECL
  32518 __CRT_UUID_DECL(FSCopyHandler, 0xd197380a, 0x0a79, 0x4dc8, 0xa0,0x33, 0xed,0x88,0x2c,0x2f,0xa1,0x4b)
  32519 #endif
  32520 #endif
  32521 
  32522 /*****************************************************************************
  32523  * SharingConfigurationManager coclass
  32524  */
  32525 
  32526 DEFINE_GUID(CLSID_SharingConfigurationManager, 0x49f371e1, 0x8c5c, 0x4d9c, 0x9a,0x3b, 0x54,0xa6,0x82,0x7f,0x51,0x3c);
  32527 
  32528 #ifdef __cplusplus
  32529 class DECLSPEC_UUID("49f371e1-8c5c-4d9c-9a3b-54a6827f513c") SharingConfigurationManager;
  32530 #ifdef __CRT_UUID_DECL
  32531 __CRT_UUID_DECL(SharingConfigurationManager, 0x49f371e1, 0x8c5c, 0x4d9c, 0x9a,0x3b, 0x54,0xa6,0x82,0x7f,0x51,0x3c)
  32532 #endif
  32533 #endif
  32534 
  32535 /*****************************************************************************
  32536  * PreviousVersions coclass
  32537  */
  32538 
  32539 DEFINE_GUID(CLSID_PreviousVersions, 0x596ab062, 0xb4d2, 0x4215, 0x9f,0x74, 0xe9,0x10,0x9b,0x0a,0x81,0x53);
  32540 
  32541 #ifdef __cplusplus
  32542 class DECLSPEC_UUID("596ab062-b4d2-4215-9f74-e9109b0a8153") PreviousVersions;
  32543 #ifdef __CRT_UUID_DECL
  32544 __CRT_UUID_DECL(PreviousVersions, 0x596ab062, 0xb4d2, 0x4215, 0x9f,0x74, 0xe9,0x10,0x9b,0x0a,0x81,0x53)
  32545 #endif
  32546 #endif
  32547 
  32548 /*****************************************************************************
  32549  * NetworkConnections coclass
  32550  */
  32551 
  32552 DEFINE_GUID(CLSID_NetworkConnections, 0x7007acc7, 0x3202, 0x11d1, 0xaa,0xd2, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
  32553 
  32554 #ifdef __cplusplus
  32555 class DECLSPEC_UUID("7007acc7-3202-11d1-aad2-00805fc1270e") NetworkConnections;
  32556 #ifdef __CRT_UUID_DECL
  32557 __CRT_UUID_DECL(NetworkConnections, 0x7007acc7, 0x3202, 0x11d1, 0xaa,0xd2, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
  32558 #endif
  32559 #endif
  32560 
  32561 /*****************************************************************************
  32562  * NamespaceTreeControl coclass
  32563  */
  32564 
  32565 DEFINE_GUID(CLSID_NamespaceTreeControl, 0xae054212, 0x3535, 0x4430, 0x83,0xed, 0xd5,0x01,0xaa,0x66,0x80,0xe6);
  32566 
  32567 #ifdef __cplusplus
  32568 class DECLSPEC_UUID("ae054212-3535-4430-83ed-d501aa6680e6") NamespaceTreeControl;
  32569 #ifdef __CRT_UUID_DECL
  32570 __CRT_UUID_DECL(NamespaceTreeControl, 0xae054212, 0x3535, 0x4430, 0x83,0xed, 0xd5,0x01,0xaa,0x66,0x80,0xe6)
  32571 #endif
  32572 #endif
  32573 
  32574 /*****************************************************************************
  32575  * IENamespaceTreeControl coclass
  32576  */
  32577 
  32578 DEFINE_GUID(CLSID_IENamespaceTreeControl, 0xace52d03, 0xe5cd, 0x4b20, 0x82,0xff, 0xe7,0x1b,0x11,0xbe,0xae,0x1d);
  32579 
  32580 #ifdef __cplusplus
  32581 class DECLSPEC_UUID("ace52d03-e5cd-4b20-82ff-e71b11beae1d") IENamespaceTreeControl;
  32582 #ifdef __CRT_UUID_DECL
  32583 __CRT_UUID_DECL(IENamespaceTreeControl, 0xace52d03, 0xe5cd, 0x4b20, 0x82,0xff, 0xe7,0x1b,0x11,0xbe,0xae,0x1d)
  32584 #endif
  32585 #endif
  32586 
  32587 /*****************************************************************************
  32588  * ScheduledTasks coclass
  32589  */
  32590 
  32591 DEFINE_GUID(CLSID_ScheduledTasks, 0xd6277990, 0x4c6a, 0x11cf, 0x8d,0x87, 0x00,0xaa,0x00,0x60,0xf5,0xbf);
  32592 
  32593 #ifdef __cplusplus
  32594 class DECLSPEC_UUID("d6277990-4c6a-11cf-8d87-00aa0060f5bf") ScheduledTasks;
  32595 #ifdef __CRT_UUID_DECL
  32596 __CRT_UUID_DECL(ScheduledTasks, 0xd6277990, 0x4c6a, 0x11cf, 0x8d,0x87, 0x00,0xaa,0x00,0x60,0xf5,0xbf)
  32597 #endif
  32598 #endif
  32599 
  32600 /*****************************************************************************
  32601  * ApplicationAssociationRegistration coclass
  32602  */
  32603 
  32604 DEFINE_GUID(CLSID_ApplicationAssociationRegistration, 0x591209c7, 0x767b, 0x42b2, 0x9f,0xba, 0x44,0xee,0x46,0x15,0xf2,0xc7);
  32605 
  32606 #ifdef __cplusplus
  32607 class DECLSPEC_UUID("591209c7-767b-42b2-9fba-44ee4615f2c7") ApplicationAssociationRegistration;
  32608 #ifdef __CRT_UUID_DECL
  32609 __CRT_UUID_DECL(ApplicationAssociationRegistration, 0x591209c7, 0x767b, 0x42b2, 0x9f,0xba, 0x44,0xee,0x46,0x15,0xf2,0xc7)
  32610 #endif
  32611 #endif
  32612 
  32613 /*****************************************************************************
  32614  * ApplicationAssociationRegistrationUI coclass
  32615  */
  32616 
  32617 DEFINE_GUID(CLSID_ApplicationAssociationRegistrationUI, 0x1968106d, 0xf3b5, 0x44cf, 0x89,0x0e, 0x11,0x6f,0xcb,0x9e,0xce,0xf1);
  32618 
  32619 #ifdef __cplusplus
  32620 class DECLSPEC_UUID("1968106d-f3b5-44cf-890e-116fcb9ecef1") ApplicationAssociationRegistrationUI;
  32621 #ifdef __CRT_UUID_DECL
  32622 __CRT_UUID_DECL(ApplicationAssociationRegistrationUI, 0x1968106d, 0xf3b5, 0x44cf, 0x89,0x0e, 0x11,0x6f,0xcb,0x9e,0xce,0xf1)
  32623 #endif
  32624 #endif
  32625 
  32626 /*****************************************************************************
  32627  * SearchFolderItemFactory coclass
  32628  */
  32629 
  32630 DEFINE_GUID(CLSID_SearchFolderItemFactory, 0x14010e02, 0xbbbd, 0x41f0, 0x88,0xe3, 0xed,0xa3,0x71,0x21,0x65,0x84);
  32631 
  32632 #ifdef __cplusplus
  32633 class DECLSPEC_UUID("14010e02-bbbd-41f0-88e3-eda371216584") SearchFolderItemFactory;
  32634 #ifdef __CRT_UUID_DECL
  32635 __CRT_UUID_DECL(SearchFolderItemFactory, 0x14010e02, 0xbbbd, 0x41f0, 0x88,0xe3, 0xed,0xa3,0x71,0x21,0x65,0x84)
  32636 #endif
  32637 #endif
  32638 
  32639 /*****************************************************************************
  32640  * OpenControlPanel coclass
  32641  */
  32642 
  32643 DEFINE_GUID(CLSID_OpenControlPanel, 0x06622d85, 0x6856, 0x4460, 0x8d,0xe1, 0xa8,0x19,0x21,0xb4,0x1c,0x4b);
  32644 
  32645 #ifdef __cplusplus
  32646 class DECLSPEC_UUID("06622d85-6856-4460-8de1-a81921b41c4b") OpenControlPanel;
  32647 #ifdef __CRT_UUID_DECL
  32648 __CRT_UUID_DECL(OpenControlPanel, 0x06622d85, 0x6856, 0x4460, 0x8d,0xe1, 0xa8,0x19,0x21,0xb4,0x1c,0x4b)
  32649 #endif
  32650 #endif
  32651 
  32652 /*****************************************************************************
  32653  * MailRecipient coclass
  32654  */
  32655 
  32656 DEFINE_GUID(CLSID_MailRecipient, 0x9e56be60, 0xc50f, 0x11cf, 0x9a,0x2c, 0x00,0xa0,0xc9,0x0a,0x90,0xce);
  32657 
  32658 #ifdef __cplusplus
  32659 class DECLSPEC_UUID("9e56be60-c50f-11cf-9a2c-00a0c90a90ce") MailRecipient;
  32660 #ifdef __CRT_UUID_DECL
  32661 __CRT_UUID_DECL(MailRecipient, 0x9e56be60, 0xc50f, 0x11cf, 0x9a,0x2c, 0x00,0xa0,0xc9,0x0a,0x90,0xce)
  32662 #endif
  32663 #endif
  32664 
  32665 /*****************************************************************************
  32666  * NetworkExplorerFolder coclass
  32667  */
  32668 
  32669 DEFINE_GUID(CLSID_NetworkExplorerFolder, 0xf02c1a0d, 0xbe21, 0x4350, 0x88,0xb0, 0x73,0x67,0xfc,0x96,0xef,0x3c);
  32670 
  32671 #ifdef __cplusplus
  32672 class DECLSPEC_UUID("f02c1a0d-be21-4350-88b0-7367fc96ef3c") NetworkExplorerFolder;
  32673 #ifdef __CRT_UUID_DECL
  32674 __CRT_UUID_DECL(NetworkExplorerFolder, 0xf02c1a0d, 0xbe21, 0x4350, 0x88,0xb0, 0x73,0x67,0xfc,0x96,0xef,0x3c)
  32675 #endif
  32676 #endif
  32677 
  32678 /*****************************************************************************
  32679  * DestinationList coclass
  32680  */
  32681 
  32682 DEFINE_GUID(CLSID_DestinationList, 0x77f10cf0, 0x3db5, 0x4966, 0xb5,0x20, 0xb7,0xc5,0x4f,0xd3,0x5e,0xd6);
  32683 
  32684 #ifdef __cplusplus
  32685 class DECLSPEC_UUID("77f10cf0-3db5-4966-b520-b7c54fd35ed6") DestinationList;
  32686 #ifdef __CRT_UUID_DECL
  32687 __CRT_UUID_DECL(DestinationList, 0x77f10cf0, 0x3db5, 0x4966, 0xb5,0x20, 0xb7,0xc5,0x4f,0xd3,0x5e,0xd6)
  32688 #endif
  32689 #endif
  32690 
  32691 /*****************************************************************************
  32692  * ApplicationDestinations coclass
  32693  */
  32694 
  32695 DEFINE_GUID(CLSID_ApplicationDestinations, 0x86c14003, 0x4d6b, 0x4ef3, 0xa7,0xb4, 0x05,0x06,0x66,0x3b,0x2e,0x68);
  32696 
  32697 #ifdef __cplusplus
  32698 class DECLSPEC_UUID("86c14003-4d6b-4ef3-a7b4-0506663b2e68") ApplicationDestinations;
  32699 #ifdef __CRT_UUID_DECL
  32700 __CRT_UUID_DECL(ApplicationDestinations, 0x86c14003, 0x4d6b, 0x4ef3, 0xa7,0xb4, 0x05,0x06,0x66,0x3b,0x2e,0x68)
  32701 #endif
  32702 #endif
  32703 
  32704 /*****************************************************************************
  32705  * ApplicationDocumentLists coclass
  32706  */
  32707 
  32708 DEFINE_GUID(CLSID_ApplicationDocumentLists, 0x86bec222, 0x30f2, 0x47e0, 0x9f,0x25, 0x60,0xd1,0x1c,0xd7,0x5c,0x28);
  32709 
  32710 #ifdef __cplusplus
  32711 class DECLSPEC_UUID("86bec222-30f2-47e0-9f25-60d11cd75c28") ApplicationDocumentLists;
  32712 #ifdef __CRT_UUID_DECL
  32713 __CRT_UUID_DECL(ApplicationDocumentLists, 0x86bec222, 0x30f2, 0x47e0, 0x9f,0x25, 0x60,0xd1,0x1c,0xd7,0x5c,0x28)
  32714 #endif
  32715 #endif
  32716 
  32717 /*****************************************************************************
  32718  * HomeGroup coclass
  32719  */
  32720 
  32721 DEFINE_GUID(CLSID_HomeGroup, 0xde77ba04, 0x3c92, 0x4d11, 0xa1,0xa5, 0x42,0x35,0x2a,0x53,0xe0,0xe3);
  32722 
  32723 #ifdef __cplusplus
  32724 class DECLSPEC_UUID("de77ba04-3c92-4d11-a1a5-42352a53e0e3") HomeGroup;
  32725 #ifdef __CRT_UUID_DECL
  32726 __CRT_UUID_DECL(HomeGroup, 0xde77ba04, 0x3c92, 0x4d11, 0xa1,0xa5, 0x42,0x35,0x2a,0x53,0xe0,0xe3)
  32727 #endif
  32728 #endif
  32729 
  32730 /*****************************************************************************
  32731  * ShellLibrary coclass
  32732  */
  32733 
  32734 DEFINE_GUID(CLSID_ShellLibrary, 0xd9b3211d, 0xe57f, 0x4426, 0xaa,0xef, 0x30,0xa8,0x06,0xad,0xd3,0x97);
  32735 
  32736 #ifdef __cplusplus
  32737 class DECLSPEC_UUID("d9b3211d-e57f-4426-aaef-30a806add397") ShellLibrary;
  32738 #ifdef __CRT_UUID_DECL
  32739 __CRT_UUID_DECL(ShellLibrary, 0xd9b3211d, 0xe57f, 0x4426, 0xaa,0xef, 0x30,0xa8,0x06,0xad,0xd3,0x97)
  32740 #endif
  32741 #endif
  32742 
  32743 /*****************************************************************************
  32744  * AppStartupLink coclass
  32745  */
  32746 
  32747 DEFINE_GUID(CLSID_AppStartupLink, 0x273eb5e7, 0x88b0, 0x4843, 0xbf,0xef, 0xe2,0xc8,0x1d,0x43,0xaa,0xe5);
  32748 
  32749 #ifdef __cplusplus
  32750 class DECLSPEC_UUID("273eb5e7-88b0-4843-bfef-e2c81d43aae5") AppStartupLink;
  32751 #ifdef __CRT_UUID_DECL
  32752 __CRT_UUID_DECL(AppStartupLink, 0x273eb5e7, 0x88b0, 0x4843, 0xbf,0xef, 0xe2,0xc8,0x1d,0x43,0xaa,0xe5)
  32753 #endif
  32754 #endif
  32755 
  32756 /*****************************************************************************
  32757  * EnumerableObjectCollection coclass
  32758  */
  32759 
  32760 DEFINE_GUID(CLSID_EnumerableObjectCollection, 0x2d3468c1, 0x36a7, 0x43b6, 0xac,0x24, 0xd3,0xf0,0x2f,0xd9,0x60,0x7a);
  32761 
  32762 #ifdef __cplusplus
  32763 class DECLSPEC_UUID("2d3468c1-36a7-43b6-ac24-d3f02fd9607a") EnumerableObjectCollection;
  32764 #ifdef __CRT_UUID_DECL
  32765 __CRT_UUID_DECL(EnumerableObjectCollection, 0x2d3468c1, 0x36a7, 0x43b6, 0xac,0x24, 0xd3,0xf0,0x2f,0xd9,0x60,0x7a)
  32766 #endif
  32767 #endif
  32768 
  32769 /*****************************************************************************
  32770  * DesktopGadget coclass
  32771  */
  32772 
  32773 DEFINE_GUID(CLSID_DesktopGadget, 0x924ccc1b, 0x6562, 0x4c85, 0x86,0x57, 0xd1,0x77,0x92,0x52,0x22,0xb6);
  32774 
  32775 #ifdef __cplusplus
  32776 class DECLSPEC_UUID("924ccc1b-6562-4c85-8657-d177925222b6") DesktopGadget;
  32777 #ifdef __CRT_UUID_DECL
  32778 __CRT_UUID_DECL(DesktopGadget, 0x924ccc1b, 0x6562, 0x4c85, 0x86,0x57, 0xd1,0x77,0x92,0x52,0x22,0xb6)
  32779 #endif
  32780 #endif
  32781 
  32782 /*****************************************************************************
  32783  * PlaybackManager coclass
  32784  */
  32785 
  32786 DEFINE_GUID(CLSID_PlaybackManager, 0x29dfa654, 0xa97f, 0x47f0, 0xbf,0x26, 0x9e,0x41,0xfb,0x94,0x88,0xd9);
  32787 
  32788 #ifdef __cplusplus
  32789 class DECLSPEC_UUID("29dfa654-a97f-47f0-bf26-9e41fb9488d9") PlaybackManager;
  32790 #ifdef __CRT_UUID_DECL
  32791 __CRT_UUID_DECL(PlaybackManager, 0x29dfa654, 0xa97f, 0x47f0, 0xbf,0x26, 0x9e,0x41,0xfb,0x94,0x88,0xd9)
  32792 #endif
  32793 #endif
  32794 
  32795 /*****************************************************************************
  32796  * AccessibilityDockingService coclass
  32797  */
  32798 
  32799 DEFINE_GUID(CLSID_AccessibilityDockingService, 0x29ce1d46, 0xb481, 0x4aa0, 0xa0,0x8a, 0xd3,0xeb,0xc8,0xac,0xa4,0x02);
  32800 
  32801 #ifdef __cplusplus
  32802 class DECLSPEC_UUID("29ce1d46-b481-4aa0-a08a-d3ebc8aca402") AccessibilityDockingService;
  32803 #ifdef __CRT_UUID_DECL
  32804 __CRT_UUID_DECL(AccessibilityDockingService, 0x29ce1d46, 0xb481, 0x4aa0, 0xa0,0x8a, 0xd3,0xeb,0xc8,0xac,0xa4,0x02)
  32805 #endif
  32806 #endif
  32807 
  32808 /*****************************************************************************
  32809  * FrameworkInputPane coclass
  32810  */
  32811 
  32812 DEFINE_GUID(CLSID_FrameworkInputPane, 0xd5120aa3, 0x46ba, 0x44c5, 0x82,0x2d, 0xca,0x80,0x92,0xc1,0xfc,0x72);
  32813 
  32814 #ifdef __cplusplus
  32815 class DECLSPEC_UUID("d5120aa3-46ba-44c5-822d-ca8092c1fc72") FrameworkInputPane;
  32816 #ifdef __CRT_UUID_DECL
  32817 __CRT_UUID_DECL(FrameworkInputPane, 0xd5120aa3, 0x46ba, 0x44c5, 0x82,0x2d, 0xca,0x80,0x92,0xc1,0xfc,0x72)
  32818 #endif
  32819 #endif
  32820 
  32821 /*****************************************************************************
  32822  * DefFolderMenu coclass
  32823  */
  32824 
  32825 DEFINE_GUID(CLSID_DefFolderMenu, 0xc63382be, 0x7933, 0x48d0, 0x9a,0xc8, 0x85,0xfb,0x46,0xbe,0x2f,0xdd);
  32826 
  32827 #ifdef __cplusplus
  32828 class DECLSPEC_UUID("c63382be-7933-48d0-9ac8-85fb46be2fdd") DefFolderMenu;
  32829 #ifdef __CRT_UUID_DECL
  32830 __CRT_UUID_DECL(DefFolderMenu, 0xc63382be, 0x7933, 0x48d0, 0x9a,0xc8, 0x85,0xfb,0x46,0xbe,0x2f,0xdd)
  32831 #endif
  32832 #endif
  32833 
  32834 /*****************************************************************************
  32835  * AppVisibility coclass
  32836  */
  32837 
  32838 DEFINE_GUID(CLSID_AppVisibility, 0x7e5fe3d9, 0x985f, 0x4908, 0x91,0xf9, 0xee,0x19,0xf9,0xfd,0x15,0x14);
  32839 
  32840 #ifdef __cplusplus
  32841 class DECLSPEC_UUID("7e5fe3d9-985f-4908-91f9-ee19f9fd1514") AppVisibility;
  32842 #ifdef __CRT_UUID_DECL
  32843 __CRT_UUID_DECL(AppVisibility, 0x7e5fe3d9, 0x985f, 0x4908, 0x91,0xf9, 0xee,0x19,0xf9,0xfd,0x15,0x14)
  32844 #endif
  32845 #endif
  32846 
  32847 /*****************************************************************************
  32848  * AppShellVerbHandler coclass
  32849  */
  32850 
  32851 DEFINE_GUID(CLSID_AppShellVerbHandler, 0x4ed3a719, 0xcea8, 0x4bd9, 0x91,0x0d, 0xe2,0x52,0xf9,0x97,0xaf,0xc2);
  32852 
  32853 #ifdef __cplusplus
  32854 class DECLSPEC_UUID("4ed3a719-cea8-4bd9-910d-e252f997afc2") AppShellVerbHandler;
  32855 #ifdef __CRT_UUID_DECL
  32856 __CRT_UUID_DECL(AppShellVerbHandler, 0x4ed3a719, 0xcea8, 0x4bd9, 0x91,0x0d, 0xe2,0x52,0xf9,0x97,0xaf,0xc2)
  32857 #endif
  32858 #endif
  32859 
  32860 /*****************************************************************************
  32861  * ExecuteUnknown coclass
  32862  */
  32863 
  32864 DEFINE_GUID(CLSID_ExecuteUnknown, 0xe44e9428, 0xbdbc, 0x4987, 0xa0,0x99, 0x40,0xdc,0x8f,0xd2,0x55,0xe7);
  32865 
  32866 #ifdef __cplusplus
  32867 class DECLSPEC_UUID("e44e9428-bdbc-4987-a099-40dc8fd255e7") ExecuteUnknown;
  32868 #ifdef __CRT_UUID_DECL
  32869 __CRT_UUID_DECL(ExecuteUnknown, 0xe44e9428, 0xbdbc, 0x4987, 0xa0,0x99, 0x40,0xdc,0x8f,0xd2,0x55,0xe7)
  32870 #endif
  32871 #endif
  32872 
  32873 /*****************************************************************************
  32874  * PackageDebugSettings coclass
  32875  */
  32876 
  32877 DEFINE_GUID(CLSID_PackageDebugSettings, 0xb1aec16f, 0x2383, 0x4852, 0xb0,0xe9, 0x8f,0x0b,0x1d,0xc6,0x6b,0x4d);
  32878 
  32879 #ifdef __cplusplus
  32880 class DECLSPEC_UUID("b1aec16f-2383-4852-b0e9-8f0b1dc66b4d") PackageDebugSettings;
  32881 #ifdef __CRT_UUID_DECL
  32882 __CRT_UUID_DECL(PackageDebugSettings, 0xb1aec16f, 0x2383, 0x4852, 0xb0,0xe9, 0x8f,0x0b,0x1d,0xc6,0x6b,0x4d)
  32883 #endif
  32884 #endif
  32885 
  32886 /*****************************************************************************
  32887  * ApplicationActivationManager coclass
  32888  */
  32889 
  32890 DEFINE_GUID(CLSID_ApplicationActivationManager, 0x45ba127d, 0x10a8, 0x46ea, 0x8a,0xb7, 0x56,0xea,0x90,0x78,0x94,0x3c);
  32891 
  32892 #ifdef __cplusplus
  32893 class DECLSPEC_UUID("45ba127d-10a8-46ea-8ab7-56ea9078943c") ApplicationActivationManager;
  32894 #ifdef __CRT_UUID_DECL
  32895 __CRT_UUID_DECL(ApplicationActivationManager, 0x45ba127d, 0x10a8, 0x46ea, 0x8a,0xb7, 0x56,0xea,0x90,0x78,0x94,0x3c)
  32896 #endif
  32897 #endif
  32898 
  32899 /*****************************************************************************
  32900  * ApplicationDesignModeSettings coclass
  32901  */
  32902 
  32903 DEFINE_GUID(CLSID_ApplicationDesignModeSettings, 0x958a6fb5, 0xdcb2, 0x4faf, 0xaa,0xfd, 0x7f,0xb0,0x54,0xad,0x1a,0x3b);
  32904 
  32905 #ifdef __cplusplus
  32906 class DECLSPEC_UUID("958a6fb5-dcb2-4faf-aafd-7fb054ad1a3b") ApplicationDesignModeSettings;
  32907 #ifdef __CRT_UUID_DECL
  32908 __CRT_UUID_DECL(ApplicationDesignModeSettings, 0x958a6fb5, 0xdcb2, 0x4faf, 0xaa,0xfd, 0x7f,0xb0,0x54,0xad,0x1a,0x3b)
  32909 #endif
  32910 #endif
  32911 
  32912 /*****************************************************************************
  32913  * ExecuteFolder coclass
  32914  */
  32915 
  32916 DEFINE_GUID(CLSID_ExecuteFolder, 0x11dbb47c, 0xa525, 0x400b, 0x9e,0x80, 0xa5,0x46,0x15,0xa0,0x90,0xc0);
  32917 
  32918 #ifdef __cplusplus
  32919 class DECLSPEC_UUID("11dbb47c-a525-400b-9e80-a54615a090c0") ExecuteFolder;
  32920 #ifdef __CRT_UUID_DECL
  32921 __CRT_UUID_DECL(ExecuteFolder, 0x11dbb47c, 0xa525, 0x400b, 0x9e,0x80, 0xa5,0x46,0x15,0xa0,0x90,0xc0)
  32922 #endif
  32923 #endif
  32924 
  32925 /*****************************************************************************
  32926  * VirtualDesktopManager coclass
  32927  */
  32928 
  32929 DEFINE_GUID(CLSID_VirtualDesktopManager, 0xaa509086, 0x5ca9, 0x4c25, 0x8f,0x95, 0x58,0x9d,0x3c,0x07,0xb4,0x8a);
  32930 
  32931 #ifdef __cplusplus
  32932 class DECLSPEC_UUID("aa509086-5ca9-4c25-8f95-589d3c07b48a") VirtualDesktopManager;
  32933 #ifdef __CRT_UUID_DECL
  32934 __CRT_UUID_DECL(VirtualDesktopManager, 0xaa509086, 0x5ca9, 0x4c25, 0x8f,0x95, 0x58,0x9d,0x3c,0x07,0xb4,0x8a)
  32935 #endif
  32936 #endif
  32937 
  32938 #endif /* __ShellObjects_LIBRARY_DEFINED__ */
  32939 
  32940 #if NTDDI_VERSION >= NTDDI_VISTA
  32941   SHSTDAPI SHGetTemporaryPropertyForItem(IShellItem *psi, REFPROPERTYKEY propkey, PROPVARIANT *ppropvar);
  32942   SHSTDAPI SHSetTemporaryPropertyForItem(IShellItem *psi, REFPROPERTYKEY propkey, REFPROPVARIANT propvar);
  32943 #endif
  32944 
  32945 #if NTDDI_VERSION >= NTDDI_WIN7
  32946 #if _WIN32_IE >= _WIN32_IE_IE70
  32947 typedef enum LIBRARYMANAGEDIALOGOPTIONS {
  32948     LMD_DEFAULT = 0x0,
  32949     LMD_ALLOWUNINDEXABLENETWORKLOCATIONS = 0x1
  32950 } LIBRARYMANAGEDIALOGOPTIONS;
  32951 
  32952 DEFINE_ENUM_FLAG_OPERATORS(LIBRARYMANAGEDIALOGOPTIONS)
  32953 
  32954   SHSTDAPI SHShowManageLibraryUI(IShellItem *psiLibrary, HWND hwndOwner, LPCWSTR pszTitle, LPCWSTR pszInstruction, LIBRARYMANAGEDIALOGOPTIONS lmdOptions);
  32955   SHSTDAPI SHResolveLibrary(IShellItem *psiLibrary);
  32956 #if defined(__cplusplus) && !defined(CINTERFACE)
  32957   __forceinline HRESULT SHCreateLibrary(REFIID riid, void **ppv) {
  32958     return CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, riid, ppv);
  32959   }
  32960 
  32961   __forceinline HRESULT SHLoadLibraryFromItem(IShellItem *psiLibrary, DWORD grfMode, REFIID riid, void **ppv) {
  32962     IShellLibrary *plib;
  32963     HRESULT hr;
  32964 
  32965     *ppv = NULL;
  32966     hr = CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&plib));
  32967     if (SUCCEEDED(hr)) {
  32968       hr = plib->LoadLibraryFromItem(psiLibrary, grfMode);
  32969       if (SUCCEEDED(hr))
  32970         hr = plib->QueryInterface(riid, ppv);
  32971       plib->Release();
  32972     }
  32973     return hr;
  32974   }
  32975 
  32976   __forceinline HRESULT SHLoadLibraryFromKnownFolder(REFKNOWNFOLDERID kfidLibrary, DWORD grfMode, REFIID riid, void **ppv) {
  32977     IShellLibrary *plib;
  32978     HRESULT hr;
  32979 
  32980     *ppv = NULL;
  32981     hr = CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&plib));
  32982     if (SUCCEEDED(hr)) {
  32983       hr = plib->LoadLibraryFromKnownFolder(kfidLibrary, grfMode);
  32984       if (SUCCEEDED(hr))
  32985         hr = plib->QueryInterface(riid, ppv);
  32986       plib->Release();
  32987     }
  32988     return hr;
  32989   }
  32990 
  32991   __forceinline HRESULT SHLoadLibraryFromParsingName(PCWSTR pszParsingName, DWORD grfMode, REFIID riid, void **ppv) {
  32992     IShellItem *psiLibrary;
  32993     HRESULT hr;
  32994 
  32995     *ppv = NULL;
  32996     hr = SHCreateItemFromParsingName(pszParsingName, NULL, IID_PPV_ARGS(&psiLibrary));
  32997     if (SUCCEEDED(hr)) {
  32998       hr = SHLoadLibraryFromItem(psiLibrary, grfMode, riid, ppv);
  32999       psiLibrary->Release();
  33000     }
  33001     return hr;
  33002   }
  33003 
  33004    __forceinline HRESULT SHAddFolderPathToLibrary(IShellLibrary *plib, PCWSTR pszFolderPath) {
  33005     IShellItem *psiFolder;
  33006     HRESULT hr = SHCreateItemFromParsingName(pszFolderPath, NULL, IID_PPV_ARGS(&psiFolder));
  33007 
  33008     if (SUCCEEDED(hr)) {
  33009       hr = plib->AddFolder(psiFolder);
  33010       psiFolder->Release();
  33011     }
  33012     return hr;
  33013   }
  33014 
  33015   __forceinline HRESULT SHRemoveFolderPathFromLibrary(IShellLibrary *plib, PCWSTR pszFolderPath) {
  33016     PIDLIST_ABSOLUTE pidlFolder = SHSimpleIDListFromPath(pszFolderPath);
  33017     HRESULT hr = pidlFolder ? S_OK : E_INVALIDARG;
  33018 
  33019     if (SUCCEEDED(hr)) {
  33020       IShellItem *psiFolder;
  33021 
  33022       hr = SHCreateItemFromIDList(pidlFolder, IID_PPV_ARGS(&psiFolder));
  33023       if (SUCCEEDED(hr)) {
  33024         hr = plib->RemoveFolder(psiFolder);
  33025         psiFolder->Release();
  33026       }
  33027       CoTaskMemFree(pidlFolder);
  33028     }
  33029     return hr;
  33030   }
  33031 
  33032   __forceinline HRESULT SHResolveFolderPathInLibrary(IShellLibrary *plib, PCWSTR pszFolderPath, DWORD dwTimeout, PWSTR *ppszResolvedPath) {
  33033     *ppszResolvedPath = NULL;
  33034     PIDLIST_ABSOLUTE pidlFolder = SHSimpleIDListFromPath(pszFolderPath);
  33035     HRESULT hr = pidlFolder ? S_OK : E_INVALIDARG;
  33036     if (SUCCEEDED(hr)) {
  33037       IShellItem *psiFolder;
  33038 
  33039       hr = SHCreateItemFromIDList(pidlFolder, IID_PPV_ARGS(&psiFolder));
  33040       if (SUCCEEDED(hr)) {
  33041         IShellItem *psiResolved;
  33042 
  33043         hr = plib->ResolveFolder(psiFolder, dwTimeout, IID_PPV_ARGS(&psiResolved));
  33044         if (SUCCEEDED(hr)) {
  33045           hr = psiResolved->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING, ppszResolvedPath);
  33046           psiResolved->Release();
  33047         }
  33048         psiFolder->Release();
  33049       }
  33050       CoTaskMemFree(pidlFolder);
  33051     }
  33052     return hr;
  33053   }
  33054 
  33055   __forceinline HRESULT SHSaveLibraryInFolderPath(IShellLibrary *plib, PCWSTR pszFolderPath, PCWSTR pszLibraryName, LIBRARYSAVEFLAGS lsf, PWSTR *ppszSavedToPath) {
  33056     IShellItem *psiFolder;
  33057     HRESULT hr;
  33058 
  33059     if (ppszSavedToPath)
  33060       *ppszSavedToPath = NULL;
  33061     hr = SHCreateItemFromParsingName(pszFolderPath, NULL, IID_PPV_ARGS(&psiFolder));
  33062     if (SUCCEEDED(hr)) {
  33063       IShellItem *psiSavedTo;
  33064 
  33065       hr = plib->Save(psiFolder, pszLibraryName, lsf, &psiSavedTo);
  33066       if (SUCCEEDED(hr)) {
  33067         if (ppszSavedToPath)
  33068           hr = psiSavedTo->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING, ppszSavedToPath);
  33069         psiSavedTo->Release();
  33070       }
  33071       psiFolder->Release();
  33072     }
  33073     return hr;
  33074   }
  33075 #endif
  33076 #endif
  33077 #endif
  33078 
  33079 #if NTDDI_VERSION >= NTDDI_VISTA
  33080 /*****************************************************************************
  33081  * IAssocHandlerInvoker interface
  33082  */
  33083 #ifndef __IAssocHandlerInvoker_INTERFACE_DEFINED__
  33084 #define __IAssocHandlerInvoker_INTERFACE_DEFINED__
  33085 
  33086 DEFINE_GUID(IID_IAssocHandlerInvoker, 0x92218cab, 0xecaa, 0x4335, 0x81,0x33, 0x80,0x7f,0xd2,0x34,0xc2,0xee);
  33087 #if defined(__cplusplus) && !defined(CINTERFACE)
  33088 MIDL_INTERFACE("92218cab-ecaa-4335-8133-807fd234c2ee")
  33089 IAssocHandlerInvoker : public IUnknown
  33090 {
  33091     virtual HRESULT STDMETHODCALLTYPE SupportsSelection(
  33092         ) = 0;
  33093 
  33094     virtual HRESULT STDMETHODCALLTYPE Invoke(
  33095         ) = 0;
  33096 
  33097 };
  33098 #ifdef __CRT_UUID_DECL
  33099 __CRT_UUID_DECL(IAssocHandlerInvoker, 0x92218cab, 0xecaa, 0x4335, 0x81,0x33, 0x80,0x7f,0xd2,0x34,0xc2,0xee)
  33100 #endif
  33101 #else
  33102 typedef struct IAssocHandlerInvokerVtbl {
  33103     BEGIN_INTERFACE
  33104 
  33105     /*** IUnknown methods ***/
  33106     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  33107         IAssocHandlerInvoker *This,
  33108         REFIID riid,
  33109         void **ppvObject);
  33110 
  33111     ULONG (STDMETHODCALLTYPE *AddRef)(
  33112         IAssocHandlerInvoker *This);
  33113 
  33114     ULONG (STDMETHODCALLTYPE *Release)(
  33115         IAssocHandlerInvoker *This);
  33116 
  33117     /*** IAssocHandlerInvoker methods ***/
  33118     HRESULT (STDMETHODCALLTYPE *SupportsSelection)(
  33119         IAssocHandlerInvoker *This);
  33120 
  33121     HRESULT (STDMETHODCALLTYPE *Invoke)(
  33122         IAssocHandlerInvoker *This);
  33123 
  33124     END_INTERFACE
  33125 } IAssocHandlerInvokerVtbl;
  33126 
  33127 interface IAssocHandlerInvoker {
  33128     CONST_VTBL IAssocHandlerInvokerVtbl* lpVtbl;
  33129 };
  33130 
  33131 #ifdef COBJMACROS
  33132 #ifndef WIDL_C_INLINE_WRAPPERS
  33133 /*** IUnknown methods ***/
  33134 #define IAssocHandlerInvoker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  33135 #define IAssocHandlerInvoker_AddRef(This) (This)->lpVtbl->AddRef(This)
  33136 #define IAssocHandlerInvoker_Release(This) (This)->lpVtbl->Release(This)
  33137 /*** IAssocHandlerInvoker methods ***/
  33138 #define IAssocHandlerInvoker_SupportsSelection(This) (This)->lpVtbl->SupportsSelection(This)
  33139 #define IAssocHandlerInvoker_Invoke(This) (This)->lpVtbl->Invoke(This)
  33140 #else
  33141 /*** IUnknown methods ***/
  33142 static inline HRESULT IAssocHandlerInvoker_QueryInterface(IAssocHandlerInvoker* This,REFIID riid,void **ppvObject) {
  33143     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  33144 }
  33145 static inline ULONG IAssocHandlerInvoker_AddRef(IAssocHandlerInvoker* This) {
  33146     return This->lpVtbl->AddRef(This);
  33147 }
  33148 static inline ULONG IAssocHandlerInvoker_Release(IAssocHandlerInvoker* This) {
  33149     return This->lpVtbl->Release(This);
  33150 }
  33151 /*** IAssocHandlerInvoker methods ***/
  33152 static inline HRESULT IAssocHandlerInvoker_SupportsSelection(IAssocHandlerInvoker* This) {
  33153     return This->lpVtbl->SupportsSelection(This);
  33154 }
  33155 static inline HRESULT IAssocHandlerInvoker_Invoke(IAssocHandlerInvoker* This) {
  33156     return This->lpVtbl->Invoke(This);
  33157 }
  33158 #endif
  33159 #endif
  33160 
  33161 #endif
  33162 
  33163 
  33164 #endif  /* __IAssocHandlerInvoker_INTERFACE_DEFINED__ */
  33165 
  33166 
  33167 /*****************************************************************************
  33168  * IAssocHandler interface
  33169  */
  33170 #ifndef __IAssocHandler_INTERFACE_DEFINED__
  33171 #define __IAssocHandler_INTERFACE_DEFINED__
  33172 
  33173 DEFINE_GUID(IID_IAssocHandler, 0xf04061ac, 0x1659, 0x4a3f, 0xa9,0x54, 0x77,0x5a,0xa5,0x7f,0xc0,0x83);
  33174 #if defined(__cplusplus) && !defined(CINTERFACE)
  33175 MIDL_INTERFACE("f04061ac-1659-4a3f-a954-775aa57fc083")
  33176 IAssocHandler : public IUnknown
  33177 {
  33178     virtual HRESULT STDMETHODCALLTYPE GetName(
  33179         LPWSTR *ppsz) = 0;
  33180 
  33181     virtual HRESULT STDMETHODCALLTYPE GetUIName(
  33182         LPWSTR *ppsz) = 0;
  33183 
  33184     virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
  33185         LPWSTR *ppszPath,
  33186         int *pIndex) = 0;
  33187 
  33188     virtual HRESULT STDMETHODCALLTYPE IsRecommended(
  33189         ) = 0;
  33190 
  33191     virtual HRESULT STDMETHODCALLTYPE MakeDefault(
  33192         LPCWSTR pszDescription) = 0;
  33193 
  33194     virtual HRESULT STDMETHODCALLTYPE Invoke(
  33195         IDataObject *pdo) = 0;
  33196 
  33197     virtual HRESULT STDMETHODCALLTYPE CreateInvoker(
  33198         IDataObject *pdo,
  33199         IAssocHandlerInvoker **ppInvoker) = 0;
  33200 
  33201 };
  33202 #ifdef __CRT_UUID_DECL
  33203 __CRT_UUID_DECL(IAssocHandler, 0xf04061ac, 0x1659, 0x4a3f, 0xa9,0x54, 0x77,0x5a,0xa5,0x7f,0xc0,0x83)
  33204 #endif
  33205 #else
  33206 typedef struct IAssocHandlerVtbl {
  33207     BEGIN_INTERFACE
  33208 
  33209     /*** IUnknown methods ***/
  33210     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  33211         IAssocHandler *This,
  33212         REFIID riid,
  33213         void **ppvObject);
  33214 
  33215     ULONG (STDMETHODCALLTYPE *AddRef)(
  33216         IAssocHandler *This);
  33217 
  33218     ULONG (STDMETHODCALLTYPE *Release)(
  33219         IAssocHandler *This);
  33220 
  33221     /*** IAssocHandler methods ***/
  33222     HRESULT (STDMETHODCALLTYPE *GetName)(
  33223         IAssocHandler *This,
  33224         LPWSTR *ppsz);
  33225 
  33226     HRESULT (STDMETHODCALLTYPE *GetUIName)(
  33227         IAssocHandler *This,
  33228         LPWSTR *ppsz);
  33229 
  33230     HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
  33231         IAssocHandler *This,
  33232         LPWSTR *ppszPath,
  33233         int *pIndex);
  33234 
  33235     HRESULT (STDMETHODCALLTYPE *IsRecommended)(
  33236         IAssocHandler *This);
  33237 
  33238     HRESULT (STDMETHODCALLTYPE *MakeDefault)(
  33239         IAssocHandler *This,
  33240         LPCWSTR pszDescription);
  33241 
  33242     HRESULT (STDMETHODCALLTYPE *Invoke)(
  33243         IAssocHandler *This,
  33244         IDataObject *pdo);
  33245 
  33246     HRESULT (STDMETHODCALLTYPE *CreateInvoker)(
  33247         IAssocHandler *This,
  33248         IDataObject *pdo,
  33249         IAssocHandlerInvoker **ppInvoker);
  33250 
  33251     END_INTERFACE
  33252 } IAssocHandlerVtbl;
  33253 
  33254 interface IAssocHandler {
  33255     CONST_VTBL IAssocHandlerVtbl* lpVtbl;
  33256 };
  33257 
  33258 #ifdef COBJMACROS
  33259 #ifndef WIDL_C_INLINE_WRAPPERS
  33260 /*** IUnknown methods ***/
  33261 #define IAssocHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  33262 #define IAssocHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
  33263 #define IAssocHandler_Release(This) (This)->lpVtbl->Release(This)
  33264 /*** IAssocHandler methods ***/
  33265 #define IAssocHandler_GetName(This,ppsz) (This)->lpVtbl->GetName(This,ppsz)
  33266 #define IAssocHandler_GetUIName(This,ppsz) (This)->lpVtbl->GetUIName(This,ppsz)
  33267 #define IAssocHandler_GetIconLocation(This,ppszPath,pIndex) (This)->lpVtbl->GetIconLocation(This,ppszPath,pIndex)
  33268 #define IAssocHandler_IsRecommended(This) (This)->lpVtbl->IsRecommended(This)
  33269 #define IAssocHandler_MakeDefault(This,pszDescription) (This)->lpVtbl->MakeDefault(This,pszDescription)
  33270 #define IAssocHandler_Invoke(This,pdo) (This)->lpVtbl->Invoke(This,pdo)
  33271 #define IAssocHandler_CreateInvoker(This,pdo,ppInvoker) (This)->lpVtbl->CreateInvoker(This,pdo,ppInvoker)
  33272 #else
  33273 /*** IUnknown methods ***/
  33274 static inline HRESULT IAssocHandler_QueryInterface(IAssocHandler* This,REFIID riid,void **ppvObject) {
  33275     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  33276 }
  33277 static inline ULONG IAssocHandler_AddRef(IAssocHandler* This) {
  33278     return This->lpVtbl->AddRef(This);
  33279 }
  33280 static inline ULONG IAssocHandler_Release(IAssocHandler* This) {
  33281     return This->lpVtbl->Release(This);
  33282 }
  33283 /*** IAssocHandler methods ***/
  33284 static inline HRESULT IAssocHandler_GetName(IAssocHandler* This,LPWSTR *ppsz) {
  33285     return This->lpVtbl->GetName(This,ppsz);
  33286 }
  33287 static inline HRESULT IAssocHandler_GetUIName(IAssocHandler* This,LPWSTR *ppsz) {
  33288     return This->lpVtbl->GetUIName(This,ppsz);
  33289 }
  33290 static inline HRESULT IAssocHandler_GetIconLocation(IAssocHandler* This,LPWSTR *ppszPath,int *pIndex) {
  33291     return This->lpVtbl->GetIconLocation(This,ppszPath,pIndex);
  33292 }
  33293 static inline HRESULT IAssocHandler_IsRecommended(IAssocHandler* This) {
  33294     return This->lpVtbl->IsRecommended(This);
  33295 }
  33296 static inline HRESULT IAssocHandler_MakeDefault(IAssocHandler* This,LPCWSTR pszDescription) {
  33297     return This->lpVtbl->MakeDefault(This,pszDescription);
  33298 }
  33299 static inline HRESULT IAssocHandler_Invoke(IAssocHandler* This,IDataObject *pdo) {
  33300     return This->lpVtbl->Invoke(This,pdo);
  33301 }
  33302 static inline HRESULT IAssocHandler_CreateInvoker(IAssocHandler* This,IDataObject *pdo,IAssocHandlerInvoker **ppInvoker) {
  33303     return This->lpVtbl->CreateInvoker(This,pdo,ppInvoker);
  33304 }
  33305 #endif
  33306 #endif
  33307 
  33308 #endif
  33309 
  33310 
  33311 #endif  /* __IAssocHandler_INTERFACE_DEFINED__ */
  33312 
  33313 
  33314 /*****************************************************************************
  33315  * IEnumAssocHandlers interface
  33316  */
  33317 #ifndef __IEnumAssocHandlers_INTERFACE_DEFINED__
  33318 #define __IEnumAssocHandlers_INTERFACE_DEFINED__
  33319 
  33320 DEFINE_GUID(IID_IEnumAssocHandlers, 0x973810ae, 0x9599, 0x4b88, 0x9e,0x4d, 0x6e,0xe9,0x8c,0x95,0x52,0xda);
  33321 #if defined(__cplusplus) && !defined(CINTERFACE)
  33322 MIDL_INTERFACE("973810ae-9599-4b88-9e4d-6ee98c9552da")
  33323 IEnumAssocHandlers : public IUnknown
  33324 {
  33325     virtual HRESULT STDMETHODCALLTYPE Next(
  33326         ULONG celt,
  33327         IAssocHandler **rgelt,
  33328         ULONG *pceltFetched) = 0;
  33329 
  33330 };
  33331 #ifdef __CRT_UUID_DECL
  33332 __CRT_UUID_DECL(IEnumAssocHandlers, 0x973810ae, 0x9599, 0x4b88, 0x9e,0x4d, 0x6e,0xe9,0x8c,0x95,0x52,0xda)
  33333 #endif
  33334 #else
  33335 typedef struct IEnumAssocHandlersVtbl {
  33336     BEGIN_INTERFACE
  33337 
  33338     /*** IUnknown methods ***/
  33339     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  33340         IEnumAssocHandlers *This,
  33341         REFIID riid,
  33342         void **ppvObject);
  33343 
  33344     ULONG (STDMETHODCALLTYPE *AddRef)(
  33345         IEnumAssocHandlers *This);
  33346 
  33347     ULONG (STDMETHODCALLTYPE *Release)(
  33348         IEnumAssocHandlers *This);
  33349 
  33350     /*** IEnumAssocHandlers methods ***/
  33351     HRESULT (STDMETHODCALLTYPE *Next)(
  33352         IEnumAssocHandlers *This,
  33353         ULONG celt,
  33354         IAssocHandler **rgelt,
  33355         ULONG *pceltFetched);
  33356 
  33357     END_INTERFACE
  33358 } IEnumAssocHandlersVtbl;
  33359 
  33360 interface IEnumAssocHandlers {
  33361     CONST_VTBL IEnumAssocHandlersVtbl* lpVtbl;
  33362 };
  33363 
  33364 #ifdef COBJMACROS
  33365 #ifndef WIDL_C_INLINE_WRAPPERS
  33366 /*** IUnknown methods ***/
  33367 #define IEnumAssocHandlers_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  33368 #define IEnumAssocHandlers_AddRef(This) (This)->lpVtbl->AddRef(This)
  33369 #define IEnumAssocHandlers_Release(This) (This)->lpVtbl->Release(This)
  33370 /*** IEnumAssocHandlers methods ***/
  33371 #define IEnumAssocHandlers_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
  33372 #else
  33373 /*** IUnknown methods ***/
  33374 static inline HRESULT IEnumAssocHandlers_QueryInterface(IEnumAssocHandlers* This,REFIID riid,void **ppvObject) {
  33375     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  33376 }
  33377 static inline ULONG IEnumAssocHandlers_AddRef(IEnumAssocHandlers* This) {
  33378     return This->lpVtbl->AddRef(This);
  33379 }
  33380 static inline ULONG IEnumAssocHandlers_Release(IEnumAssocHandlers* This) {
  33381     return This->lpVtbl->Release(This);
  33382 }
  33383 /*** IEnumAssocHandlers methods ***/
  33384 static inline HRESULT IEnumAssocHandlers_Next(IEnumAssocHandlers* This,ULONG celt,IAssocHandler **rgelt,ULONG *pceltFetched) {
  33385     return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
  33386 }
  33387 #endif
  33388 #endif
  33389 
  33390 #endif
  33391 
  33392 
  33393 #endif  /* __IEnumAssocHandlers_INTERFACE_DEFINED__ */
  33394 
  33395 
  33396 typedef enum ASSOC_FILTER {
  33397     ASSOC_FILTER_NONE = 0x0,
  33398     ASSOC_FILTER_RECOMMENDED = 0x1
  33399 } ASSOC_FILTER;
  33400 
  33401 DEFINE_ENUM_FLAG_OPERATORS(ASSOC_FILTER)
  33402 
  33403   SHSTDAPI SHAssocEnumHandlers(PCWSTR pszExtra, ASSOC_FILTER afFilter, IEnumAssocHandlers **ppEnumHandler);
  33404 #endif
  33405 
  33406 #if NTDDI_VERSION >= NTDDI_WIN7
  33407 SHSTDAPI SHAssocEnumHandlersForProtocolByApplication(PCWSTR protocol, REFIID riid, void **enumHandlers);
  33408 #endif
  33409 
  33410 #if NTDDI_VERSION >= NTDDI_WIN8
  33411 /*****************************************************************************
  33412  * IDataObjectProvider interface
  33413  */
  33414 #ifndef __IDataObjectProvider_INTERFACE_DEFINED__
  33415 #define __IDataObjectProvider_INTERFACE_DEFINED__
  33416 
  33417 DEFINE_GUID(IID_IDataObjectProvider, 0x3d25f6d6, 0x4b2a, 0x433c, 0x91,0x84, 0x7c,0x33,0xad,0x35,0xd0,0x01);
  33418 #if defined(__cplusplus) && !defined(CINTERFACE)
  33419 MIDL_INTERFACE("3d25f6d6-4b2a-433c-9184-7c33ad35d001")
  33420 IDataObjectProvider : public IUnknown
  33421 {
  33422     virtual HRESULT STDMETHODCALLTYPE GetDataObject(
  33423         IDataObject **dataObject) = 0;
  33424 
  33425     virtual HRESULT STDMETHODCALLTYPE SetDataObject(
  33426         IDataObject *dataObject) = 0;
  33427 
  33428 };
  33429 #ifdef __CRT_UUID_DECL
  33430 __CRT_UUID_DECL(IDataObjectProvider, 0x3d25f6d6, 0x4b2a, 0x433c, 0x91,0x84, 0x7c,0x33,0xad,0x35,0xd0,0x01)
  33431 #endif
  33432 #else
  33433 typedef struct IDataObjectProviderVtbl {
  33434     BEGIN_INTERFACE
  33435 
  33436     /*** IUnknown methods ***/
  33437     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  33438         IDataObjectProvider *This,
  33439         REFIID riid,
  33440         void **ppvObject);
  33441 
  33442     ULONG (STDMETHODCALLTYPE *AddRef)(
  33443         IDataObjectProvider *This);
  33444 
  33445     ULONG (STDMETHODCALLTYPE *Release)(
  33446         IDataObjectProvider *This);
  33447 
  33448     /*** IDataObjectProvider methods ***/
  33449     HRESULT (STDMETHODCALLTYPE *GetDataObject)(
  33450         IDataObjectProvider *This,
  33451         IDataObject **dataObject);
  33452 
  33453     HRESULT (STDMETHODCALLTYPE *SetDataObject)(
  33454         IDataObjectProvider *This,
  33455         IDataObject *dataObject);
  33456 
  33457     END_INTERFACE
  33458 } IDataObjectProviderVtbl;
  33459 
  33460 interface IDataObjectProvider {
  33461     CONST_VTBL IDataObjectProviderVtbl* lpVtbl;
  33462 };
  33463 
  33464 #ifdef COBJMACROS
  33465 #ifndef WIDL_C_INLINE_WRAPPERS
  33466 /*** IUnknown methods ***/
  33467 #define IDataObjectProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  33468 #define IDataObjectProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
  33469 #define IDataObjectProvider_Release(This) (This)->lpVtbl->Release(This)
  33470 /*** IDataObjectProvider methods ***/
  33471 #define IDataObjectProvider_GetDataObject(This,dataObject) (This)->lpVtbl->GetDataObject(This,dataObject)
  33472 #define IDataObjectProvider_SetDataObject(This,dataObject) (This)->lpVtbl->SetDataObject(This,dataObject)
  33473 #else
  33474 /*** IUnknown methods ***/
  33475 static inline HRESULT IDataObjectProvider_QueryInterface(IDataObjectProvider* This,REFIID riid,void **ppvObject) {
  33476     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  33477 }
  33478 static inline ULONG IDataObjectProvider_AddRef(IDataObjectProvider* This) {
  33479     return This->lpVtbl->AddRef(This);
  33480 }
  33481 static inline ULONG IDataObjectProvider_Release(IDataObjectProvider* This) {
  33482     return This->lpVtbl->Release(This);
  33483 }
  33484 /*** IDataObjectProvider methods ***/
  33485 static inline HRESULT IDataObjectProvider_GetDataObject(IDataObjectProvider* This,IDataObject **dataObject) {
  33486     return This->lpVtbl->GetDataObject(This,dataObject);
  33487 }
  33488 static inline HRESULT IDataObjectProvider_SetDataObject(IDataObjectProvider* This,IDataObject *dataObject) {
  33489     return This->lpVtbl->SetDataObject(This,dataObject);
  33490 }
  33491 #endif
  33492 #endif
  33493 
  33494 #endif
  33495 
  33496 
  33497 #endif  /* __IDataObjectProvider_INTERFACE_DEFINED__ */
  33498 
  33499 
  33500 /*****************************************************************************
  33501  * IDataTransferManagerInterop interface
  33502  */
  33503 #ifndef __IDataTransferManagerInterop_INTERFACE_DEFINED__
  33504 #define __IDataTransferManagerInterop_INTERFACE_DEFINED__
  33505 
  33506 DEFINE_GUID(IID_IDataTransferManagerInterop, 0x3a3dcd6c, 0x3eab, 0x43dc, 0xbc,0xde, 0x45,0x67,0x1c,0xe8,0x00,0xc8);
  33507 #if defined(__cplusplus) && !defined(CINTERFACE)
  33508 MIDL_INTERFACE("3a3dcd6c-3eab-43dc-bcde-45671ce800c8")
  33509 IDataTransferManagerInterop : public IUnknown
  33510 {
  33511     virtual HRESULT STDMETHODCALLTYPE GetForWindow(
  33512         HWND appWindow,
  33513         REFIID riid,
  33514         void **dataTransferManager) = 0;
  33515 
  33516     virtual HRESULT STDMETHODCALLTYPE ShowShareUIForWindow(
  33517         HWND appWindow) = 0;
  33518 
  33519 };
  33520 #ifdef __CRT_UUID_DECL
  33521 __CRT_UUID_DECL(IDataTransferManagerInterop, 0x3a3dcd6c, 0x3eab, 0x43dc, 0xbc,0xde, 0x45,0x67,0x1c,0xe8,0x00,0xc8)
  33522 #endif
  33523 #else
  33524 typedef struct IDataTransferManagerInteropVtbl {
  33525     BEGIN_INTERFACE
  33526 
  33527     /*** IUnknown methods ***/
  33528     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  33529         IDataTransferManagerInterop *This,
  33530         REFIID riid,
  33531         void **ppvObject);
  33532 
  33533     ULONG (STDMETHODCALLTYPE *AddRef)(
  33534         IDataTransferManagerInterop *This);
  33535 
  33536     ULONG (STDMETHODCALLTYPE *Release)(
  33537         IDataTransferManagerInterop *This);
  33538 
  33539     /*** IDataTransferManagerInterop methods ***/
  33540     HRESULT (STDMETHODCALLTYPE *GetForWindow)(
  33541         IDataTransferManagerInterop *This,
  33542         HWND appWindow,
  33543         REFIID riid,
  33544         void **dataTransferManager);
  33545 
  33546     HRESULT (STDMETHODCALLTYPE *ShowShareUIForWindow)(
  33547         IDataTransferManagerInterop *This,
  33548         HWND appWindow);
  33549 
  33550     END_INTERFACE
  33551 } IDataTransferManagerInteropVtbl;
  33552 
  33553 interface IDataTransferManagerInterop {
  33554     CONST_VTBL IDataTransferManagerInteropVtbl* lpVtbl;
  33555 };
  33556 
  33557 #ifdef COBJMACROS
  33558 #ifndef WIDL_C_INLINE_WRAPPERS
  33559 /*** IUnknown methods ***/
  33560 #define IDataTransferManagerInterop_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  33561 #define IDataTransferManagerInterop_AddRef(This) (This)->lpVtbl->AddRef(This)
  33562 #define IDataTransferManagerInterop_Release(This) (This)->lpVtbl->Release(This)
  33563 /*** IDataTransferManagerInterop methods ***/
  33564 #define IDataTransferManagerInterop_GetForWindow(This,appWindow,riid,dataTransferManager) (This)->lpVtbl->GetForWindow(This,appWindow,riid,dataTransferManager)
  33565 #define IDataTransferManagerInterop_ShowShareUIForWindow(This,appWindow) (This)->lpVtbl->ShowShareUIForWindow(This,appWindow)
  33566 #else
  33567 /*** IUnknown methods ***/
  33568 static inline HRESULT IDataTransferManagerInterop_QueryInterface(IDataTransferManagerInterop* This,REFIID riid,void **ppvObject) {
  33569     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  33570 }
  33571 static inline ULONG IDataTransferManagerInterop_AddRef(IDataTransferManagerInterop* This) {
  33572     return This->lpVtbl->AddRef(This);
  33573 }
  33574 static inline ULONG IDataTransferManagerInterop_Release(IDataTransferManagerInterop* This) {
  33575     return This->lpVtbl->Release(This);
  33576 }
  33577 /*** IDataTransferManagerInterop methods ***/
  33578 static inline HRESULT IDataTransferManagerInterop_GetForWindow(IDataTransferManagerInterop* This,HWND appWindow,REFIID riid,void **dataTransferManager) {
  33579     return This->lpVtbl->GetForWindow(This,appWindow,riid,dataTransferManager);
  33580 }
  33581 static inline HRESULT IDataTransferManagerInterop_ShowShareUIForWindow(IDataTransferManagerInterop* This,HWND appWindow) {
  33582     return This->lpVtbl->ShowShareUIForWindow(This,appWindow);
  33583 }
  33584 #endif
  33585 #endif
  33586 
  33587 #endif
  33588 
  33589 
  33590 #endif  /* __IDataTransferManagerInterop_INTERFACE_DEFINED__ */
  33591 
  33592 
  33593 /*****************************************************************************
  33594  * IFrameworkInputPaneHandler interface
  33595  */
  33596 #ifndef __IFrameworkInputPaneHandler_INTERFACE_DEFINED__
  33597 #define __IFrameworkInputPaneHandler_INTERFACE_DEFINED__
  33598 
  33599 DEFINE_GUID(IID_IFrameworkInputPaneHandler, 0x226c537b, 0x1e76, 0x4d9e, 0xa7,0x60, 0x33,0xdb,0x29,0x92,0x2f,0x18);
  33600 #if defined(__cplusplus) && !defined(CINTERFACE)
  33601 MIDL_INTERFACE("226c537b-1e76-4d9e-a760-33db29922f18")
  33602 IFrameworkInputPaneHandler : public IUnknown
  33603 {
  33604     virtual HRESULT STDMETHODCALLTYPE Showing(
  33605         RECT *prcInputPaneScreenLocation,
  33606         WINBOOL fEnsureFocusedElementInView) = 0;
  33607 
  33608     virtual HRESULT STDMETHODCALLTYPE Hiding(
  33609         WINBOOL fEnsureFocusedElementInView) = 0;
  33610 
  33611 };
  33612 #ifdef __CRT_UUID_DECL
  33613 __CRT_UUID_DECL(IFrameworkInputPaneHandler, 0x226c537b, 0x1e76, 0x4d9e, 0xa7,0x60, 0x33,0xdb,0x29,0x92,0x2f,0x18)
  33614 #endif
  33615 #else
  33616 typedef struct IFrameworkInputPaneHandlerVtbl {
  33617     BEGIN_INTERFACE
  33618 
  33619     /*** IUnknown methods ***/
  33620     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  33621         IFrameworkInputPaneHandler *This,
  33622         REFIID riid,
  33623         void **ppvObject);
  33624 
  33625     ULONG (STDMETHODCALLTYPE *AddRef)(
  33626         IFrameworkInputPaneHandler *This);
  33627 
  33628     ULONG (STDMETHODCALLTYPE *Release)(
  33629         IFrameworkInputPaneHandler *This);
  33630 
  33631     /*** IFrameworkInputPaneHandler methods ***/
  33632     HRESULT (STDMETHODCALLTYPE *Showing)(
  33633         IFrameworkInputPaneHandler *This,
  33634         RECT *prcInputPaneScreenLocation,
  33635         WINBOOL fEnsureFocusedElementInView);
  33636 
  33637     HRESULT (STDMETHODCALLTYPE *Hiding)(
  33638         IFrameworkInputPaneHandler *This,
  33639         WINBOOL fEnsureFocusedElementInView);
  33640 
  33641     END_INTERFACE
  33642 } IFrameworkInputPaneHandlerVtbl;
  33643 
  33644 interface IFrameworkInputPaneHandler {
  33645     CONST_VTBL IFrameworkInputPaneHandlerVtbl* lpVtbl;
  33646 };
  33647 
  33648 #ifdef COBJMACROS
  33649 #ifndef WIDL_C_INLINE_WRAPPERS
  33650 /*** IUnknown methods ***/
  33651 #define IFrameworkInputPaneHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  33652 #define IFrameworkInputPaneHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
  33653 #define IFrameworkInputPaneHandler_Release(This) (This)->lpVtbl->Release(This)
  33654 /*** IFrameworkInputPaneHandler methods ***/
  33655 #define IFrameworkInputPaneHandler_Showing(This,prcInputPaneScreenLocation,fEnsureFocusedElementInView) (This)->lpVtbl->Showing(This,prcInputPaneScreenLocation,fEnsureFocusedElementInView)
  33656 #define IFrameworkInputPaneHandler_Hiding(This,fEnsureFocusedElementInView) (This)->lpVtbl->Hiding(This,fEnsureFocusedElementInView)
  33657 #else
  33658 /*** IUnknown methods ***/
  33659 static inline HRESULT IFrameworkInputPaneHandler_QueryInterface(IFrameworkInputPaneHandler* This,REFIID riid,void **ppvObject) {
  33660     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  33661 }
  33662 static inline ULONG IFrameworkInputPaneHandler_AddRef(IFrameworkInputPaneHandler* This) {
  33663     return This->lpVtbl->AddRef(This);
  33664 }
  33665 static inline ULONG IFrameworkInputPaneHandler_Release(IFrameworkInputPaneHandler* This) {
  33666     return This->lpVtbl->Release(This);
  33667 }
  33668 /*** IFrameworkInputPaneHandler methods ***/
  33669 static inline HRESULT IFrameworkInputPaneHandler_Showing(IFrameworkInputPaneHandler* This,RECT *prcInputPaneScreenLocation,WINBOOL fEnsureFocusedElementInView) {
  33670     return This->lpVtbl->Showing(This,prcInputPaneScreenLocation,fEnsureFocusedElementInView);
  33671 }
  33672 static inline HRESULT IFrameworkInputPaneHandler_Hiding(IFrameworkInputPaneHandler* This,WINBOOL fEnsureFocusedElementInView) {
  33673     return This->lpVtbl->Hiding(This,fEnsureFocusedElementInView);
  33674 }
  33675 #endif
  33676 #endif
  33677 
  33678 #endif
  33679 
  33680 
  33681 #endif  /* __IFrameworkInputPaneHandler_INTERFACE_DEFINED__ */
  33682 
  33683 
  33684 /*****************************************************************************
  33685  * IFrameworkInputPane interface
  33686  */
  33687 #ifndef __IFrameworkInputPane_INTERFACE_DEFINED__
  33688 #define __IFrameworkInputPane_INTERFACE_DEFINED__
  33689 
  33690 DEFINE_GUID(IID_IFrameworkInputPane, 0x5752238b, 0x24f0, 0x495a, 0x82,0xf1, 0x2f,0xd5,0x93,0x05,0x67,0x96);
  33691 #if defined(__cplusplus) && !defined(CINTERFACE)
  33692 MIDL_INTERFACE("5752238b-24f0-495a-82f1-2fd593056796")
  33693 IFrameworkInputPane : public IUnknown
  33694 {
  33695     virtual HRESULT STDMETHODCALLTYPE Advise(
  33696         IUnknown *pWindow,
  33697         IFrameworkInputPaneHandler *pHandler,
  33698         DWORD *pdwCookie) = 0;
  33699 
  33700     virtual HRESULT STDMETHODCALLTYPE AdviseWithHWND(
  33701         HWND hwnd,
  33702         IFrameworkInputPaneHandler *pHandler,
  33703         DWORD *pdwCookie) = 0;
  33704 
  33705     virtual HRESULT STDMETHODCALLTYPE Unadvise(
  33706         DWORD dwCookie) = 0;
  33707 
  33708     virtual HRESULT STDMETHODCALLTYPE Location(
  33709         RECT *prcInputPaneScreenLocation) = 0;
  33710 
  33711 };
  33712 #ifdef __CRT_UUID_DECL
  33713 __CRT_UUID_DECL(IFrameworkInputPane, 0x5752238b, 0x24f0, 0x495a, 0x82,0xf1, 0x2f,0xd5,0x93,0x05,0x67,0x96)
  33714 #endif
  33715 #else
  33716 typedef struct IFrameworkInputPaneVtbl {
  33717     BEGIN_INTERFACE
  33718 
  33719     /*** IUnknown methods ***/
  33720     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  33721         IFrameworkInputPane *This,
  33722         REFIID riid,
  33723         void **ppvObject);
  33724 
  33725     ULONG (STDMETHODCALLTYPE *AddRef)(
  33726         IFrameworkInputPane *This);
  33727 
  33728     ULONG (STDMETHODCALLTYPE *Release)(
  33729         IFrameworkInputPane *This);
  33730 
  33731     /*** IFrameworkInputPane methods ***/
  33732     HRESULT (STDMETHODCALLTYPE *Advise)(
  33733         IFrameworkInputPane *This,
  33734         IUnknown *pWindow,
  33735         IFrameworkInputPaneHandler *pHandler,
  33736         DWORD *pdwCookie);
  33737 
  33738     HRESULT (STDMETHODCALLTYPE *AdviseWithHWND)(
  33739         IFrameworkInputPane *This,
  33740         HWND hwnd,
  33741         IFrameworkInputPaneHandler *pHandler,
  33742         DWORD *pdwCookie);
  33743 
  33744     HRESULT (STDMETHODCALLTYPE *Unadvise)(
  33745         IFrameworkInputPane *This,
  33746         DWORD dwCookie);
  33747 
  33748     HRESULT (STDMETHODCALLTYPE *Location)(
  33749         IFrameworkInputPane *This,
  33750         RECT *prcInputPaneScreenLocation);
  33751 
  33752     END_INTERFACE
  33753 } IFrameworkInputPaneVtbl;
  33754 
  33755 interface IFrameworkInputPane {
  33756     CONST_VTBL IFrameworkInputPaneVtbl* lpVtbl;
  33757 };
  33758 
  33759 #ifdef COBJMACROS
  33760 #ifndef WIDL_C_INLINE_WRAPPERS
  33761 /*** IUnknown methods ***/
  33762 #define IFrameworkInputPane_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  33763 #define IFrameworkInputPane_AddRef(This) (This)->lpVtbl->AddRef(This)
  33764 #define IFrameworkInputPane_Release(This) (This)->lpVtbl->Release(This)
  33765 /*** IFrameworkInputPane methods ***/
  33766 #define IFrameworkInputPane_Advise(This,pWindow,pHandler,pdwCookie) (This)->lpVtbl->Advise(This,pWindow,pHandler,pdwCookie)
  33767 #define IFrameworkInputPane_AdviseWithHWND(This,hwnd,pHandler,pdwCookie) (This)->lpVtbl->AdviseWithHWND(This,hwnd,pHandler,pdwCookie)
  33768 #define IFrameworkInputPane_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
  33769 #define IFrameworkInputPane_Location(This,prcInputPaneScreenLocation) (This)->lpVtbl->Location(This,prcInputPaneScreenLocation)
  33770 #else
  33771 /*** IUnknown methods ***/
  33772 static inline HRESULT IFrameworkInputPane_QueryInterface(IFrameworkInputPane* This,REFIID riid,void **ppvObject) {
  33773     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  33774 }
  33775 static inline ULONG IFrameworkInputPane_AddRef(IFrameworkInputPane* This) {
  33776     return This->lpVtbl->AddRef(This);
  33777 }
  33778 static inline ULONG IFrameworkInputPane_Release(IFrameworkInputPane* This) {
  33779     return This->lpVtbl->Release(This);
  33780 }
  33781 /*** IFrameworkInputPane methods ***/
  33782 static inline HRESULT IFrameworkInputPane_Advise(IFrameworkInputPane* This,IUnknown *pWindow,IFrameworkInputPaneHandler *pHandler,DWORD *pdwCookie) {
  33783     return This->lpVtbl->Advise(This,pWindow,pHandler,pdwCookie);
  33784 }
  33785 static inline HRESULT IFrameworkInputPane_AdviseWithHWND(IFrameworkInputPane* This,HWND hwnd,IFrameworkInputPaneHandler *pHandler,DWORD *pdwCookie) {
  33786     return This->lpVtbl->AdviseWithHWND(This,hwnd,pHandler,pdwCookie);
  33787 }
  33788 static inline HRESULT IFrameworkInputPane_Unadvise(IFrameworkInputPane* This,DWORD dwCookie) {
  33789     return This->lpVtbl->Unadvise(This,dwCookie);
  33790 }
  33791 static inline HRESULT IFrameworkInputPane_Location(IFrameworkInputPane* This,RECT *prcInputPaneScreenLocation) {
  33792     return This->lpVtbl->Location(This,prcInputPaneScreenLocation);
  33793 }
  33794 #endif
  33795 #endif
  33796 
  33797 #endif
  33798 
  33799 
  33800 #endif  /* __IFrameworkInputPane_INTERFACE_DEFINED__ */
  33801 
  33802 #if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
  33803 
  33804 #ifndef PROP_CONTRACT_DELEGATE
  33805 #define PROP_CONTRACT_DELEGATE L"ContractDelegate"
  33806 #endif
  33807 
  33808   __forceinline void SetContractDelegateWindow(HWND hwndSource, HWND hwndDelegate) {
  33809     if (hwndDelegate != NULL)
  33810       SetPropW (hwndSource, PROP_CONTRACT_DELEGATE, (HANDLE)hwndDelegate);
  33811     else
  33812       RemovePropW(hwndSource, PROP_CONTRACT_DELEGATE);
  33813   }
  33814 
  33815 #ifndef PROP_CONTRACT_DELEGATE
  33816 #define PROP_CONTRACT_DELEGATE L"ContractDelegate"
  33817 #endif
  33818 
  33819   __forceinline HWND GetContractDelegateWindow(HWND hwndSource) { return (HWND)GetPropW(hwndSource, PROP_CONTRACT_DELEGATE); }
  33820 #endif
  33821 #endif
  33822 
  33823 #if NTDDI_VERSION >= NTDDI_WIN8
  33824 /*****************************************************************************
  33825  * ISearchableApplication interface
  33826  */
  33827 #ifndef __ISearchableApplication_INTERFACE_DEFINED__
  33828 #define __ISearchableApplication_INTERFACE_DEFINED__
  33829 
  33830 DEFINE_GUID(IID_ISearchableApplication, 0x08922f8d, 0x243a, 0x49e3, 0xa4,0x95, 0xbd,0x4f,0x9c,0xf8,0xab,0x9e);
  33831 #if defined(__cplusplus) && !defined(CINTERFACE)
  33832 MIDL_INTERFACE("08922f8d-243a-49e3-a495-bd4f9cf8ab9e")
  33833 ISearchableApplication : public IUnknown
  33834 {
  33835     virtual HRESULT STDMETHODCALLTYPE GetSearchWindow(
  33836         HWND *hwnd) = 0;
  33837 
  33838 };
  33839 #ifdef __CRT_UUID_DECL
  33840 __CRT_UUID_DECL(ISearchableApplication, 0x08922f8d, 0x243a, 0x49e3, 0xa4,0x95, 0xbd,0x4f,0x9c,0xf8,0xab,0x9e)
  33841 #endif
  33842 #else
  33843 typedef struct ISearchableApplicationVtbl {
  33844     BEGIN_INTERFACE
  33845 
  33846     /*** IUnknown methods ***/
  33847     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  33848         ISearchableApplication *This,
  33849         REFIID riid,
  33850         void **ppvObject);
  33851 
  33852     ULONG (STDMETHODCALLTYPE *AddRef)(
  33853         ISearchableApplication *This);
  33854 
  33855     ULONG (STDMETHODCALLTYPE *Release)(
  33856         ISearchableApplication *This);
  33857 
  33858     /*** ISearchableApplication methods ***/
  33859     HRESULT (STDMETHODCALLTYPE *GetSearchWindow)(
  33860         ISearchableApplication *This,
  33861         HWND *hwnd);
  33862 
  33863     END_INTERFACE
  33864 } ISearchableApplicationVtbl;
  33865 
  33866 interface ISearchableApplication {
  33867     CONST_VTBL ISearchableApplicationVtbl* lpVtbl;
  33868 };
  33869 
  33870 #ifdef COBJMACROS
  33871 #ifndef WIDL_C_INLINE_WRAPPERS
  33872 /*** IUnknown methods ***/
  33873 #define ISearchableApplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  33874 #define ISearchableApplication_AddRef(This) (This)->lpVtbl->AddRef(This)
  33875 #define ISearchableApplication_Release(This) (This)->lpVtbl->Release(This)
  33876 /*** ISearchableApplication methods ***/
  33877 #define ISearchableApplication_GetSearchWindow(This,hwnd) (This)->lpVtbl->GetSearchWindow(This,hwnd)
  33878 #else
  33879 /*** IUnknown methods ***/
  33880 static inline HRESULT ISearchableApplication_QueryInterface(ISearchableApplication* This,REFIID riid,void **ppvObject) {
  33881     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  33882 }
  33883 static inline ULONG ISearchableApplication_AddRef(ISearchableApplication* This) {
  33884     return This->lpVtbl->AddRef(This);
  33885 }
  33886 static inline ULONG ISearchableApplication_Release(ISearchableApplication* This) {
  33887     return This->lpVtbl->Release(This);
  33888 }
  33889 /*** ISearchableApplication methods ***/
  33890 static inline HRESULT ISearchableApplication_GetSearchWindow(ISearchableApplication* This,HWND *hwnd) {
  33891     return This->lpVtbl->GetSearchWindow(This,hwnd);
  33892 }
  33893 #endif
  33894 #endif
  33895 
  33896 #endif
  33897 
  33898 
  33899 #endif  /* __ISearchableApplication_INTERFACE_DEFINED__ */
  33900 
  33901 
  33902 typedef enum UNDOCK_REASON {
  33903     UR_RESOLUTION_CHANGE = 0,
  33904     UR_MONITOR_DISCONNECT = 1
  33905 } UNDOCK_REASON;
  33906 
  33907 /*****************************************************************************
  33908  * IAccessibilityDockingServiceCallback interface
  33909  */
  33910 #ifndef __IAccessibilityDockingServiceCallback_INTERFACE_DEFINED__
  33911 #define __IAccessibilityDockingServiceCallback_INTERFACE_DEFINED__
  33912 
  33913 DEFINE_GUID(IID_IAccessibilityDockingServiceCallback, 0x157733fd, 0xa592, 0x42e5, 0xb5,0x94, 0x24,0x84,0x68,0xc5,0xa8,0x1b);
  33914 #if defined(__cplusplus) && !defined(CINTERFACE)
  33915 MIDL_INTERFACE("157733fd-a592-42e5-b594-248468c5a81b")
  33916 IAccessibilityDockingServiceCallback : public IUnknown
  33917 {
  33918     virtual HRESULT STDMETHODCALLTYPE Undocked(
  33919         UNDOCK_REASON undockReason) = 0;
  33920 
  33921 };
  33922 #ifdef __CRT_UUID_DECL
  33923 __CRT_UUID_DECL(IAccessibilityDockingServiceCallback, 0x157733fd, 0xa592, 0x42e5, 0xb5,0x94, 0x24,0x84,0x68,0xc5,0xa8,0x1b)
  33924 #endif
  33925 #else
  33926 typedef struct IAccessibilityDockingServiceCallbackVtbl {
  33927     BEGIN_INTERFACE
  33928 
  33929     /*** IUnknown methods ***/
  33930     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  33931         IAccessibilityDockingServiceCallback *This,
  33932         REFIID riid,
  33933         void **ppvObject);
  33934 
  33935     ULONG (STDMETHODCALLTYPE *AddRef)(
  33936         IAccessibilityDockingServiceCallback *This);
  33937 
  33938     ULONG (STDMETHODCALLTYPE *Release)(
  33939         IAccessibilityDockingServiceCallback *This);
  33940 
  33941     /*** IAccessibilityDockingServiceCallback methods ***/
  33942     HRESULT (STDMETHODCALLTYPE *Undocked)(
  33943         IAccessibilityDockingServiceCallback *This,
  33944         UNDOCK_REASON undockReason);
  33945 
  33946     END_INTERFACE
  33947 } IAccessibilityDockingServiceCallbackVtbl;
  33948 
  33949 interface IAccessibilityDockingServiceCallback {
  33950     CONST_VTBL IAccessibilityDockingServiceCallbackVtbl* lpVtbl;
  33951 };
  33952 
  33953 #ifdef COBJMACROS
  33954 #ifndef WIDL_C_INLINE_WRAPPERS
  33955 /*** IUnknown methods ***/
  33956 #define IAccessibilityDockingServiceCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  33957 #define IAccessibilityDockingServiceCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
  33958 #define IAccessibilityDockingServiceCallback_Release(This) (This)->lpVtbl->Release(This)
  33959 /*** IAccessibilityDockingServiceCallback methods ***/
  33960 #define IAccessibilityDockingServiceCallback_Undocked(This,undockReason) (This)->lpVtbl->Undocked(This,undockReason)
  33961 #else
  33962 /*** IUnknown methods ***/
  33963 static inline HRESULT IAccessibilityDockingServiceCallback_QueryInterface(IAccessibilityDockingServiceCallback* This,REFIID riid,void **ppvObject) {
  33964     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  33965 }
  33966 static inline ULONG IAccessibilityDockingServiceCallback_AddRef(IAccessibilityDockingServiceCallback* This) {
  33967     return This->lpVtbl->AddRef(This);
  33968 }
  33969 static inline ULONG IAccessibilityDockingServiceCallback_Release(IAccessibilityDockingServiceCallback* This) {
  33970     return This->lpVtbl->Release(This);
  33971 }
  33972 /*** IAccessibilityDockingServiceCallback methods ***/
  33973 static inline HRESULT IAccessibilityDockingServiceCallback_Undocked(IAccessibilityDockingServiceCallback* This,UNDOCK_REASON undockReason) {
  33974     return This->lpVtbl->Undocked(This,undockReason);
  33975 }
  33976 #endif
  33977 #endif
  33978 
  33979 #endif
  33980 
  33981 
  33982 #endif  /* __IAccessibilityDockingServiceCallback_INTERFACE_DEFINED__ */
  33983 
  33984 
  33985 /*****************************************************************************
  33986  * IAccessibilityDockingService interface
  33987  */
  33988 #ifndef __IAccessibilityDockingService_INTERFACE_DEFINED__
  33989 #define __IAccessibilityDockingService_INTERFACE_DEFINED__
  33990 
  33991 DEFINE_GUID(IID_IAccessibilityDockingService, 0x8849dc22, 0xcedf, 0x4c95, 0x99,0x8d, 0x05,0x14,0x19,0xdd,0x3f,0x76);
  33992 #if defined(__cplusplus) && !defined(CINTERFACE)
  33993 MIDL_INTERFACE("8849dc22-cedf-4c95-998d-051419dd3f76")
  33994 IAccessibilityDockingService : public IUnknown
  33995 {
  33996     virtual HRESULT STDMETHODCALLTYPE GetAvailableSize(
  33997         HMONITOR hMonitor,
  33998         UINT *pcxFixed,
  33999         UINT *pcyMax) = 0;
  34000 
  34001     virtual HRESULT STDMETHODCALLTYPE DockWindow(
  34002         HWND hwnd,
  34003         HMONITOR hMonitor,
  34004         UINT cyRequested,
  34005         IAccessibilityDockingServiceCallback *pCallback) = 0;
  34006 
  34007     virtual HRESULT STDMETHODCALLTYPE UndockWindow(
  34008         HWND hwnd) = 0;
  34009 
  34010 };
  34011 #ifdef __CRT_UUID_DECL
  34012 __CRT_UUID_DECL(IAccessibilityDockingService, 0x8849dc22, 0xcedf, 0x4c95, 0x99,0x8d, 0x05,0x14,0x19,0xdd,0x3f,0x76)
  34013 #endif
  34014 #else
  34015 typedef struct IAccessibilityDockingServiceVtbl {
  34016     BEGIN_INTERFACE
  34017 
  34018     /*** IUnknown methods ***/
  34019     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  34020         IAccessibilityDockingService *This,
  34021         REFIID riid,
  34022         void **ppvObject);
  34023 
  34024     ULONG (STDMETHODCALLTYPE *AddRef)(
  34025         IAccessibilityDockingService *This);
  34026 
  34027     ULONG (STDMETHODCALLTYPE *Release)(
  34028         IAccessibilityDockingService *This);
  34029 
  34030     /*** IAccessibilityDockingService methods ***/
  34031     HRESULT (STDMETHODCALLTYPE *GetAvailableSize)(
  34032         IAccessibilityDockingService *This,
  34033         HMONITOR hMonitor,
  34034         UINT *pcxFixed,
  34035         UINT *pcyMax);
  34036 
  34037     HRESULT (STDMETHODCALLTYPE *DockWindow)(
  34038         IAccessibilityDockingService *This,
  34039         HWND hwnd,
  34040         HMONITOR hMonitor,
  34041         UINT cyRequested,
  34042         IAccessibilityDockingServiceCallback *pCallback);
  34043 
  34044     HRESULT (STDMETHODCALLTYPE *UndockWindow)(
  34045         IAccessibilityDockingService *This,
  34046         HWND hwnd);
  34047 
  34048     END_INTERFACE
  34049 } IAccessibilityDockingServiceVtbl;
  34050 
  34051 interface IAccessibilityDockingService {
  34052     CONST_VTBL IAccessibilityDockingServiceVtbl* lpVtbl;
  34053 };
  34054 
  34055 #ifdef COBJMACROS
  34056 #ifndef WIDL_C_INLINE_WRAPPERS
  34057 /*** IUnknown methods ***/
  34058 #define IAccessibilityDockingService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  34059 #define IAccessibilityDockingService_AddRef(This) (This)->lpVtbl->AddRef(This)
  34060 #define IAccessibilityDockingService_Release(This) (This)->lpVtbl->Release(This)
  34061 /*** IAccessibilityDockingService methods ***/
  34062 #define IAccessibilityDockingService_GetAvailableSize(This,hMonitor,pcxFixed,pcyMax) (This)->lpVtbl->GetAvailableSize(This,hMonitor,pcxFixed,pcyMax)
  34063 #define IAccessibilityDockingService_DockWindow(This,hwnd,hMonitor,cyRequested,pCallback) (This)->lpVtbl->DockWindow(This,hwnd,hMonitor,cyRequested,pCallback)
  34064 #define IAccessibilityDockingService_UndockWindow(This,hwnd) (This)->lpVtbl->UndockWindow(This,hwnd)
  34065 #else
  34066 /*** IUnknown methods ***/
  34067 static inline HRESULT IAccessibilityDockingService_QueryInterface(IAccessibilityDockingService* This,REFIID riid,void **ppvObject) {
  34068     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  34069 }
  34070 static inline ULONG IAccessibilityDockingService_AddRef(IAccessibilityDockingService* This) {
  34071     return This->lpVtbl->AddRef(This);
  34072 }
  34073 static inline ULONG IAccessibilityDockingService_Release(IAccessibilityDockingService* This) {
  34074     return This->lpVtbl->Release(This);
  34075 }
  34076 /*** IAccessibilityDockingService methods ***/
  34077 static inline HRESULT IAccessibilityDockingService_GetAvailableSize(IAccessibilityDockingService* This,HMONITOR hMonitor,UINT *pcxFixed,UINT *pcyMax) {
  34078     return This->lpVtbl->GetAvailableSize(This,hMonitor,pcxFixed,pcyMax);
  34079 }
  34080 static inline HRESULT IAccessibilityDockingService_DockWindow(IAccessibilityDockingService* This,HWND hwnd,HMONITOR hMonitor,UINT cyRequested,IAccessibilityDockingServiceCallback *pCallback) {
  34081     return This->lpVtbl->DockWindow(This,hwnd,hMonitor,cyRequested,pCallback);
  34082 }
  34083 static inline HRESULT IAccessibilityDockingService_UndockWindow(IAccessibilityDockingService* This,HWND hwnd) {
  34084     return This->lpVtbl->UndockWindow(This,hwnd);
  34085 }
  34086 #endif
  34087 #endif
  34088 
  34089 #endif
  34090 
  34091 
  34092 #endif  /* __IAccessibilityDockingService_INTERFACE_DEFINED__ */
  34093 
  34094 
  34095 typedef enum MONITOR_APP_VISIBILITY {
  34096     MAV_UNKNOWN = 0,
  34097     MAV_NO_APP_VISIBLE = 1,
  34098     MAV_APP_VISIBLE = 2
  34099 } MONITOR_APP_VISIBILITY;
  34100 
  34101 /*****************************************************************************
  34102  * IAppVisibilityEvents interface
  34103  */
  34104 #ifndef __IAppVisibilityEvents_INTERFACE_DEFINED__
  34105 #define __IAppVisibilityEvents_INTERFACE_DEFINED__
  34106 
  34107 DEFINE_GUID(IID_IAppVisibilityEvents, 0x6584ce6b, 0x7d82, 0x49c2, 0x89,0xc9, 0xc6,0xbc,0x02,0xba,0x8c,0x38);
  34108 #if defined(__cplusplus) && !defined(CINTERFACE)
  34109 MIDL_INTERFACE("6584ce6b-7d82-49c2-89c9-c6bc02ba8c38")
  34110 IAppVisibilityEvents : public IUnknown
  34111 {
  34112     virtual HRESULT STDMETHODCALLTYPE AppVisibilityOnMonitorChanged(
  34113         HMONITOR hMonitor,
  34114         MONITOR_APP_VISIBILITY previousMode,
  34115         MONITOR_APP_VISIBILITY currentMode) = 0;
  34116 
  34117     virtual HRESULT STDMETHODCALLTYPE LauncherVisibilityChange(
  34118         WINBOOL currentVisibleState) = 0;
  34119 
  34120 };
  34121 #ifdef __CRT_UUID_DECL
  34122 __CRT_UUID_DECL(IAppVisibilityEvents, 0x6584ce6b, 0x7d82, 0x49c2, 0x89,0xc9, 0xc6,0xbc,0x02,0xba,0x8c,0x38)
  34123 #endif
  34124 #else
  34125 typedef struct IAppVisibilityEventsVtbl {
  34126     BEGIN_INTERFACE
  34127 
  34128     /*** IUnknown methods ***/
  34129     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  34130         IAppVisibilityEvents *This,
  34131         REFIID riid,
  34132         void **ppvObject);
  34133 
  34134     ULONG (STDMETHODCALLTYPE *AddRef)(
  34135         IAppVisibilityEvents *This);
  34136 
  34137     ULONG (STDMETHODCALLTYPE *Release)(
  34138         IAppVisibilityEvents *This);
  34139 
  34140     /*** IAppVisibilityEvents methods ***/
  34141     HRESULT (STDMETHODCALLTYPE *AppVisibilityOnMonitorChanged)(
  34142         IAppVisibilityEvents *This,
  34143         HMONITOR hMonitor,
  34144         MONITOR_APP_VISIBILITY previousMode,
  34145         MONITOR_APP_VISIBILITY currentMode);
  34146 
  34147     HRESULT (STDMETHODCALLTYPE *LauncherVisibilityChange)(
  34148         IAppVisibilityEvents *This,
  34149         WINBOOL currentVisibleState);
  34150 
  34151     END_INTERFACE
  34152 } IAppVisibilityEventsVtbl;
  34153 
  34154 interface IAppVisibilityEvents {
  34155     CONST_VTBL IAppVisibilityEventsVtbl* lpVtbl;
  34156 };
  34157 
  34158 #ifdef COBJMACROS
  34159 #ifndef WIDL_C_INLINE_WRAPPERS
  34160 /*** IUnknown methods ***/
  34161 #define IAppVisibilityEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  34162 #define IAppVisibilityEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
  34163 #define IAppVisibilityEvents_Release(This) (This)->lpVtbl->Release(This)
  34164 /*** IAppVisibilityEvents methods ***/
  34165 #define IAppVisibilityEvents_AppVisibilityOnMonitorChanged(This,hMonitor,previousMode,currentMode) (This)->lpVtbl->AppVisibilityOnMonitorChanged(This,hMonitor,previousMode,currentMode)
  34166 #define IAppVisibilityEvents_LauncherVisibilityChange(This,currentVisibleState) (This)->lpVtbl->LauncherVisibilityChange(This,currentVisibleState)
  34167 #else
  34168 /*** IUnknown methods ***/
  34169 static inline HRESULT IAppVisibilityEvents_QueryInterface(IAppVisibilityEvents* This,REFIID riid,void **ppvObject) {
  34170     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  34171 }
  34172 static inline ULONG IAppVisibilityEvents_AddRef(IAppVisibilityEvents* This) {
  34173     return This->lpVtbl->AddRef(This);
  34174 }
  34175 static inline ULONG IAppVisibilityEvents_Release(IAppVisibilityEvents* This) {
  34176     return This->lpVtbl->Release(This);
  34177 }
  34178 /*** IAppVisibilityEvents methods ***/
  34179 static inline HRESULT IAppVisibilityEvents_AppVisibilityOnMonitorChanged(IAppVisibilityEvents* This,HMONITOR hMonitor,MONITOR_APP_VISIBILITY previousMode,MONITOR_APP_VISIBILITY currentMode) {
  34180     return This->lpVtbl->AppVisibilityOnMonitorChanged(This,hMonitor,previousMode,currentMode);
  34181 }
  34182 static inline HRESULT IAppVisibilityEvents_LauncherVisibilityChange(IAppVisibilityEvents* This,WINBOOL currentVisibleState) {
  34183     return This->lpVtbl->LauncherVisibilityChange(This,currentVisibleState);
  34184 }
  34185 #endif
  34186 #endif
  34187 
  34188 #endif
  34189 
  34190 
  34191 #endif  /* __IAppVisibilityEvents_INTERFACE_DEFINED__ */
  34192 
  34193 
  34194 /*****************************************************************************
  34195  * IAppVisibility interface
  34196  */
  34197 #ifndef __IAppVisibility_INTERFACE_DEFINED__
  34198 #define __IAppVisibility_INTERFACE_DEFINED__
  34199 
  34200 DEFINE_GUID(IID_IAppVisibility, 0x2246ea2d, 0xcaea, 0x4444, 0xa3,0xc4, 0x6d,0xe8,0x27,0xe4,0x43,0x13);
  34201 #if defined(__cplusplus) && !defined(CINTERFACE)
  34202 MIDL_INTERFACE("2246ea2d-caea-4444-a3c4-6de827e44313")
  34203 IAppVisibility : public IUnknown
  34204 {
  34205     virtual HRESULT STDMETHODCALLTYPE GetAppVisibilityOnMonitor(
  34206         HMONITOR hMonitor,
  34207         MONITOR_APP_VISIBILITY *pMode) = 0;
  34208 
  34209     virtual HRESULT STDMETHODCALLTYPE IsLauncherVisible(
  34210         WINBOOL *pfVisible) = 0;
  34211 
  34212     virtual HRESULT STDMETHODCALLTYPE Advise(
  34213         IAppVisibilityEvents *pCallback,
  34214         DWORD *pdwCookie) = 0;
  34215 
  34216     virtual HRESULT STDMETHODCALLTYPE Unadvise(
  34217         DWORD dwCookie) = 0;
  34218 
  34219 };
  34220 #ifdef __CRT_UUID_DECL
  34221 __CRT_UUID_DECL(IAppVisibility, 0x2246ea2d, 0xcaea, 0x4444, 0xa3,0xc4, 0x6d,0xe8,0x27,0xe4,0x43,0x13)
  34222 #endif
  34223 #else
  34224 typedef struct IAppVisibilityVtbl {
  34225     BEGIN_INTERFACE
  34226 
  34227     /*** IUnknown methods ***/
  34228     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  34229         IAppVisibility *This,
  34230         REFIID riid,
  34231         void **ppvObject);
  34232 
  34233     ULONG (STDMETHODCALLTYPE *AddRef)(
  34234         IAppVisibility *This);
  34235 
  34236     ULONG (STDMETHODCALLTYPE *Release)(
  34237         IAppVisibility *This);
  34238 
  34239     /*** IAppVisibility methods ***/
  34240     HRESULT (STDMETHODCALLTYPE *GetAppVisibilityOnMonitor)(
  34241         IAppVisibility *This,
  34242         HMONITOR hMonitor,
  34243         MONITOR_APP_VISIBILITY *pMode);
  34244 
  34245     HRESULT (STDMETHODCALLTYPE *IsLauncherVisible)(
  34246         IAppVisibility *This,
  34247         WINBOOL *pfVisible);
  34248 
  34249     HRESULT (STDMETHODCALLTYPE *Advise)(
  34250         IAppVisibility *This,
  34251         IAppVisibilityEvents *pCallback,
  34252         DWORD *pdwCookie);
  34253 
  34254     HRESULT (STDMETHODCALLTYPE *Unadvise)(
  34255         IAppVisibility *This,
  34256         DWORD dwCookie);
  34257 
  34258     END_INTERFACE
  34259 } IAppVisibilityVtbl;
  34260 
  34261 interface IAppVisibility {
  34262     CONST_VTBL IAppVisibilityVtbl* lpVtbl;
  34263 };
  34264 
  34265 #ifdef COBJMACROS
  34266 #ifndef WIDL_C_INLINE_WRAPPERS
  34267 /*** IUnknown methods ***/
  34268 #define IAppVisibility_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  34269 #define IAppVisibility_AddRef(This) (This)->lpVtbl->AddRef(This)
  34270 #define IAppVisibility_Release(This) (This)->lpVtbl->Release(This)
  34271 /*** IAppVisibility methods ***/
  34272 #define IAppVisibility_GetAppVisibilityOnMonitor(This,hMonitor,pMode) (This)->lpVtbl->GetAppVisibilityOnMonitor(This,hMonitor,pMode)
  34273 #define IAppVisibility_IsLauncherVisible(This,pfVisible) (This)->lpVtbl->IsLauncherVisible(This,pfVisible)
  34274 #define IAppVisibility_Advise(This,pCallback,pdwCookie) (This)->lpVtbl->Advise(This,pCallback,pdwCookie)
  34275 #define IAppVisibility_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
  34276 #else
  34277 /*** IUnknown methods ***/
  34278 static inline HRESULT IAppVisibility_QueryInterface(IAppVisibility* This,REFIID riid,void **ppvObject) {
  34279     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  34280 }
  34281 static inline ULONG IAppVisibility_AddRef(IAppVisibility* This) {
  34282     return This->lpVtbl->AddRef(This);
  34283 }
  34284 static inline ULONG IAppVisibility_Release(IAppVisibility* This) {
  34285     return This->lpVtbl->Release(This);
  34286 }
  34287 /*** IAppVisibility methods ***/
  34288 static inline HRESULT IAppVisibility_GetAppVisibilityOnMonitor(IAppVisibility* This,HMONITOR hMonitor,MONITOR_APP_VISIBILITY *pMode) {
  34289     return This->lpVtbl->GetAppVisibilityOnMonitor(This,hMonitor,pMode);
  34290 }
  34291 static inline HRESULT IAppVisibility_IsLauncherVisible(IAppVisibility* This,WINBOOL *pfVisible) {
  34292     return This->lpVtbl->IsLauncherVisible(This,pfVisible);
  34293 }
  34294 static inline HRESULT IAppVisibility_Advise(IAppVisibility* This,IAppVisibilityEvents *pCallback,DWORD *pdwCookie) {
  34295     return This->lpVtbl->Advise(This,pCallback,pdwCookie);
  34296 }
  34297 static inline HRESULT IAppVisibility_Unadvise(IAppVisibility* This,DWORD dwCookie) {
  34298     return This->lpVtbl->Unadvise(This,dwCookie);
  34299 }
  34300 #endif
  34301 #endif
  34302 
  34303 #endif
  34304 
  34305 
  34306 #endif  /* __IAppVisibility_INTERFACE_DEFINED__ */
  34307 
  34308 
  34309 #if 0
  34310 typedef WCHAR *PZZWSTR;
  34311 #endif
  34312 
  34313 typedef enum PACKAGE_EXECUTION_STATE {
  34314     PES_UNKNOWN = 0,
  34315     PES_RUNNING = 1,
  34316     PES_SUSPENDING = 2,
  34317     PES_SUSPENDED = 3,
  34318     PES_TERMINATED = 4
  34319 } PACKAGE_EXECUTION_STATE;
  34320 
  34321 /*****************************************************************************
  34322  * IPackageExecutionStateChangeNotification interface
  34323  */
  34324 #ifndef __IPackageExecutionStateChangeNotification_INTERFACE_DEFINED__
  34325 #define __IPackageExecutionStateChangeNotification_INTERFACE_DEFINED__
  34326 
  34327 DEFINE_GUID(IID_IPackageExecutionStateChangeNotification, 0x1bb12a62, 0x2ad8, 0x432b, 0x8c,0xcf, 0x0c,0x2c,0x52,0xaf,0xcd,0x5b);
  34328 #if defined(__cplusplus) && !defined(CINTERFACE)
  34329 MIDL_INTERFACE("1bb12a62-2ad8-432b-8ccf-0c2c52afcd5b")
  34330 IPackageExecutionStateChangeNotification : public IUnknown
  34331 {
  34332     virtual HRESULT STDMETHODCALLTYPE OnStateChanged(
  34333         LPCWSTR pszPackageFullName,
  34334         PACKAGE_EXECUTION_STATE pesNewState) = 0;
  34335 
  34336 };
  34337 #ifdef __CRT_UUID_DECL
  34338 __CRT_UUID_DECL(IPackageExecutionStateChangeNotification, 0x1bb12a62, 0x2ad8, 0x432b, 0x8c,0xcf, 0x0c,0x2c,0x52,0xaf,0xcd,0x5b)
  34339 #endif
  34340 #else
  34341 typedef struct IPackageExecutionStateChangeNotificationVtbl {
  34342     BEGIN_INTERFACE
  34343 
  34344     /*** IUnknown methods ***/
  34345     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  34346         IPackageExecutionStateChangeNotification *This,
  34347         REFIID riid,
  34348         void **ppvObject);
  34349 
  34350     ULONG (STDMETHODCALLTYPE *AddRef)(
  34351         IPackageExecutionStateChangeNotification *This);
  34352 
  34353     ULONG (STDMETHODCALLTYPE *Release)(
  34354         IPackageExecutionStateChangeNotification *This);
  34355 
  34356     /*** IPackageExecutionStateChangeNotification methods ***/
  34357     HRESULT (STDMETHODCALLTYPE *OnStateChanged)(
  34358         IPackageExecutionStateChangeNotification *This,
  34359         LPCWSTR pszPackageFullName,
  34360         PACKAGE_EXECUTION_STATE pesNewState);
  34361 
  34362     END_INTERFACE
  34363 } IPackageExecutionStateChangeNotificationVtbl;
  34364 
  34365 interface IPackageExecutionStateChangeNotification {
  34366     CONST_VTBL IPackageExecutionStateChangeNotificationVtbl* lpVtbl;
  34367 };
  34368 
  34369 #ifdef COBJMACROS
  34370 #ifndef WIDL_C_INLINE_WRAPPERS
  34371 /*** IUnknown methods ***/
  34372 #define IPackageExecutionStateChangeNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  34373 #define IPackageExecutionStateChangeNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
  34374 #define IPackageExecutionStateChangeNotification_Release(This) (This)->lpVtbl->Release(This)
  34375 /*** IPackageExecutionStateChangeNotification methods ***/
  34376 #define IPackageExecutionStateChangeNotification_OnStateChanged(This,pszPackageFullName,pesNewState) (This)->lpVtbl->OnStateChanged(This,pszPackageFullName,pesNewState)
  34377 #else
  34378 /*** IUnknown methods ***/
  34379 static inline HRESULT IPackageExecutionStateChangeNotification_QueryInterface(IPackageExecutionStateChangeNotification* This,REFIID riid,void **ppvObject) {
  34380     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  34381 }
  34382 static inline ULONG IPackageExecutionStateChangeNotification_AddRef(IPackageExecutionStateChangeNotification* This) {
  34383     return This->lpVtbl->AddRef(This);
  34384 }
  34385 static inline ULONG IPackageExecutionStateChangeNotification_Release(IPackageExecutionStateChangeNotification* This) {
  34386     return This->lpVtbl->Release(This);
  34387 }
  34388 /*** IPackageExecutionStateChangeNotification methods ***/
  34389 static inline HRESULT IPackageExecutionStateChangeNotification_OnStateChanged(IPackageExecutionStateChangeNotification* This,LPCWSTR pszPackageFullName,PACKAGE_EXECUTION_STATE pesNewState) {
  34390     return This->lpVtbl->OnStateChanged(This,pszPackageFullName,pesNewState);
  34391 }
  34392 #endif
  34393 #endif
  34394 
  34395 #endif
  34396 
  34397 
  34398 #endif  /* __IPackageExecutionStateChangeNotification_INTERFACE_DEFINED__ */
  34399 
  34400 
  34401 /*****************************************************************************
  34402  * IPackageDebugSettings interface
  34403  */
  34404 #ifndef __IPackageDebugSettings_INTERFACE_DEFINED__
  34405 #define __IPackageDebugSettings_INTERFACE_DEFINED__
  34406 
  34407 DEFINE_GUID(IID_IPackageDebugSettings, 0xf27c3930, 0x8029, 0x4ad1, 0x94,0xe3, 0x3d,0xba,0x41,0x78,0x10,0xc1);
  34408 #if defined(__cplusplus) && !defined(CINTERFACE)
  34409 MIDL_INTERFACE("f27c3930-8029-4ad1-94e3-3dba417810c1")
  34410 IPackageDebugSettings : public IUnknown
  34411 {
  34412     virtual HRESULT STDMETHODCALLTYPE EnableDebugging(
  34413         LPCWSTR packageFullName,
  34414         LPCWSTR debuggerCommandLine,
  34415         PZZWSTR environment) = 0;
  34416 
  34417     virtual HRESULT STDMETHODCALLTYPE DisableDebugging(
  34418         LPCWSTR packageFullName) = 0;
  34419 
  34420     virtual HRESULT STDMETHODCALLTYPE Suspend(
  34421         LPCWSTR packageFullName) = 0;
  34422 
  34423     virtual HRESULT STDMETHODCALLTYPE Resume(
  34424         LPCWSTR packageFullName) = 0;
  34425 
  34426     virtual HRESULT STDMETHODCALLTYPE TerminateAllProcesses(
  34427         LPCWSTR packageFullName) = 0;
  34428 
  34429     virtual HRESULT STDMETHODCALLTYPE SetTargetSessionId(
  34430         ULONG sessionId) = 0;
  34431 
  34432     virtual HRESULT STDMETHODCALLTYPE EnumerateBackgroundTasks(
  34433         LPCWSTR packageFullName,
  34434         ULONG *taskCount,
  34435         LPCGUID *taskIds,
  34436         LPCWSTR **taskNames) = 0;
  34437 
  34438     virtual HRESULT STDMETHODCALLTYPE ActivateBackgroundTask(
  34439         LPCGUID taskId) = 0;
  34440 
  34441     virtual HRESULT STDMETHODCALLTYPE StartServicing(
  34442         LPCWSTR packageFullName) = 0;
  34443 
  34444     virtual HRESULT STDMETHODCALLTYPE StopServicing(
  34445         LPCWSTR packageFullName) = 0;
  34446 
  34447     virtual HRESULT STDMETHODCALLTYPE StartSessionRedirection(
  34448         LPCWSTR packageFullName,
  34449         ULONG sessionId) = 0;
  34450 
  34451     virtual HRESULT STDMETHODCALLTYPE StopSessionRedirection(
  34452         LPCWSTR packageFullName) = 0;
  34453 
  34454     virtual HRESULT STDMETHODCALLTYPE GetPackageExecutionState(
  34455         LPCWSTR packageFullName,
  34456         PACKAGE_EXECUTION_STATE *packageExecutionState) = 0;
  34457 
  34458     virtual HRESULT STDMETHODCALLTYPE RegisterForPackageStateChanges(
  34459         LPCWSTR packageFullName,
  34460         IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,
  34461         DWORD *pdwCookie) = 0;
  34462 
  34463     virtual HRESULT STDMETHODCALLTYPE UnregisterForPackageStateChanges(
  34464         DWORD dwCookie) = 0;
  34465 
  34466 };
  34467 #ifdef __CRT_UUID_DECL
  34468 __CRT_UUID_DECL(IPackageDebugSettings, 0xf27c3930, 0x8029, 0x4ad1, 0x94,0xe3, 0x3d,0xba,0x41,0x78,0x10,0xc1)
  34469 #endif
  34470 #else
  34471 typedef struct IPackageDebugSettingsVtbl {
  34472     BEGIN_INTERFACE
  34473 
  34474     /*** IUnknown methods ***/
  34475     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  34476         IPackageDebugSettings *This,
  34477         REFIID riid,
  34478         void **ppvObject);
  34479 
  34480     ULONG (STDMETHODCALLTYPE *AddRef)(
  34481         IPackageDebugSettings *This);
  34482 
  34483     ULONG (STDMETHODCALLTYPE *Release)(
  34484         IPackageDebugSettings *This);
  34485 
  34486     /*** IPackageDebugSettings methods ***/
  34487     HRESULT (STDMETHODCALLTYPE *EnableDebugging)(
  34488         IPackageDebugSettings *This,
  34489         LPCWSTR packageFullName,
  34490         LPCWSTR debuggerCommandLine,
  34491         PZZWSTR environment);
  34492 
  34493     HRESULT (STDMETHODCALLTYPE *DisableDebugging)(
  34494         IPackageDebugSettings *This,
  34495         LPCWSTR packageFullName);
  34496 
  34497     HRESULT (STDMETHODCALLTYPE *Suspend)(
  34498         IPackageDebugSettings *This,
  34499         LPCWSTR packageFullName);
  34500 
  34501     HRESULT (STDMETHODCALLTYPE *Resume)(
  34502         IPackageDebugSettings *This,
  34503         LPCWSTR packageFullName);
  34504 
  34505     HRESULT (STDMETHODCALLTYPE *TerminateAllProcesses)(
  34506         IPackageDebugSettings *This,
  34507         LPCWSTR packageFullName);
  34508 
  34509     HRESULT (STDMETHODCALLTYPE *SetTargetSessionId)(
  34510         IPackageDebugSettings *This,
  34511         ULONG sessionId);
  34512 
  34513     HRESULT (STDMETHODCALLTYPE *EnumerateBackgroundTasks)(
  34514         IPackageDebugSettings *This,
  34515         LPCWSTR packageFullName,
  34516         ULONG *taskCount,
  34517         LPCGUID *taskIds,
  34518         LPCWSTR **taskNames);
  34519 
  34520     HRESULT (STDMETHODCALLTYPE *ActivateBackgroundTask)(
  34521         IPackageDebugSettings *This,
  34522         LPCGUID taskId);
  34523 
  34524     HRESULT (STDMETHODCALLTYPE *StartServicing)(
  34525         IPackageDebugSettings *This,
  34526         LPCWSTR packageFullName);
  34527 
  34528     HRESULT (STDMETHODCALLTYPE *StopServicing)(
  34529         IPackageDebugSettings *This,
  34530         LPCWSTR packageFullName);
  34531 
  34532     HRESULT (STDMETHODCALLTYPE *StartSessionRedirection)(
  34533         IPackageDebugSettings *This,
  34534         LPCWSTR packageFullName,
  34535         ULONG sessionId);
  34536 
  34537     HRESULT (STDMETHODCALLTYPE *StopSessionRedirection)(
  34538         IPackageDebugSettings *This,
  34539         LPCWSTR packageFullName);
  34540 
  34541     HRESULT (STDMETHODCALLTYPE *GetPackageExecutionState)(
  34542         IPackageDebugSettings *This,
  34543         LPCWSTR packageFullName,
  34544         PACKAGE_EXECUTION_STATE *packageExecutionState);
  34545 
  34546     HRESULT (STDMETHODCALLTYPE *RegisterForPackageStateChanges)(
  34547         IPackageDebugSettings *This,
  34548         LPCWSTR packageFullName,
  34549         IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,
  34550         DWORD *pdwCookie);
  34551 
  34552     HRESULT (STDMETHODCALLTYPE *UnregisterForPackageStateChanges)(
  34553         IPackageDebugSettings *This,
  34554         DWORD dwCookie);
  34555 
  34556     END_INTERFACE
  34557 } IPackageDebugSettingsVtbl;
  34558 
  34559 interface IPackageDebugSettings {
  34560     CONST_VTBL IPackageDebugSettingsVtbl* lpVtbl;
  34561 };
  34562 
  34563 #ifdef COBJMACROS
  34564 #ifndef WIDL_C_INLINE_WRAPPERS
  34565 /*** IUnknown methods ***/
  34566 #define IPackageDebugSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  34567 #define IPackageDebugSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
  34568 #define IPackageDebugSettings_Release(This) (This)->lpVtbl->Release(This)
  34569 /*** IPackageDebugSettings methods ***/
  34570 #define IPackageDebugSettings_EnableDebugging(This,packageFullName,debuggerCommandLine,environment) (This)->lpVtbl->EnableDebugging(This,packageFullName,debuggerCommandLine,environment)
  34571 #define IPackageDebugSettings_DisableDebugging(This,packageFullName) (This)->lpVtbl->DisableDebugging(This,packageFullName)
  34572 #define IPackageDebugSettings_Suspend(This,packageFullName) (This)->lpVtbl->Suspend(This,packageFullName)
  34573 #define IPackageDebugSettings_Resume(This,packageFullName) (This)->lpVtbl->Resume(This,packageFullName)
  34574 #define IPackageDebugSettings_TerminateAllProcesses(This,packageFullName) (This)->lpVtbl->TerminateAllProcesses(This,packageFullName)
  34575 #define IPackageDebugSettings_SetTargetSessionId(This,sessionId) (This)->lpVtbl->SetTargetSessionId(This,sessionId)
  34576 #define IPackageDebugSettings_EnumerateBackgroundTasks(This,packageFullName,taskCount,taskIds,taskNames) (This)->lpVtbl->EnumerateBackgroundTasks(This,packageFullName,taskCount,taskIds,taskNames)
  34577 #define IPackageDebugSettings_ActivateBackgroundTask(This,taskId) (This)->lpVtbl->ActivateBackgroundTask(This,taskId)
  34578 #define IPackageDebugSettings_StartServicing(This,packageFullName) (This)->lpVtbl->StartServicing(This,packageFullName)
  34579 #define IPackageDebugSettings_StopServicing(This,packageFullName) (This)->lpVtbl->StopServicing(This,packageFullName)
  34580 #define IPackageDebugSettings_StartSessionRedirection(This,packageFullName,sessionId) (This)->lpVtbl->StartSessionRedirection(This,packageFullName,sessionId)
  34581 #define IPackageDebugSettings_StopSessionRedirection(This,packageFullName) (This)->lpVtbl->StopSessionRedirection(This,packageFullName)
  34582 #define IPackageDebugSettings_GetPackageExecutionState(This,packageFullName,packageExecutionState) (This)->lpVtbl->GetPackageExecutionState(This,packageFullName,packageExecutionState)
  34583 #define IPackageDebugSettings_RegisterForPackageStateChanges(This,packageFullName,pPackageExecutionStateChangeNotification,pdwCookie) (This)->lpVtbl->RegisterForPackageStateChanges(This,packageFullName,pPackageExecutionStateChangeNotification,pdwCookie)
  34584 #define IPackageDebugSettings_UnregisterForPackageStateChanges(This,dwCookie) (This)->lpVtbl->UnregisterForPackageStateChanges(This,dwCookie)
  34585 #else
  34586 /*** IUnknown methods ***/
  34587 static inline HRESULT IPackageDebugSettings_QueryInterface(IPackageDebugSettings* This,REFIID riid,void **ppvObject) {
  34588     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  34589 }
  34590 static inline ULONG IPackageDebugSettings_AddRef(IPackageDebugSettings* This) {
  34591     return This->lpVtbl->AddRef(This);
  34592 }
  34593 static inline ULONG IPackageDebugSettings_Release(IPackageDebugSettings* This) {
  34594     return This->lpVtbl->Release(This);
  34595 }
  34596 /*** IPackageDebugSettings methods ***/
  34597 static inline HRESULT IPackageDebugSettings_EnableDebugging(IPackageDebugSettings* This,LPCWSTR packageFullName,LPCWSTR debuggerCommandLine,PZZWSTR environment) {
  34598     return This->lpVtbl->EnableDebugging(This,packageFullName,debuggerCommandLine,environment);
  34599 }
  34600 static inline HRESULT IPackageDebugSettings_DisableDebugging(IPackageDebugSettings* This,LPCWSTR packageFullName) {
  34601     return This->lpVtbl->DisableDebugging(This,packageFullName);
  34602 }
  34603 static inline HRESULT IPackageDebugSettings_Suspend(IPackageDebugSettings* This,LPCWSTR packageFullName) {
  34604     return This->lpVtbl->Suspend(This,packageFullName);
  34605 }
  34606 static inline HRESULT IPackageDebugSettings_Resume(IPackageDebugSettings* This,LPCWSTR packageFullName) {
  34607     return This->lpVtbl->Resume(This,packageFullName);
  34608 }
  34609 static inline HRESULT IPackageDebugSettings_TerminateAllProcesses(IPackageDebugSettings* This,LPCWSTR packageFullName) {
  34610     return This->lpVtbl->TerminateAllProcesses(This,packageFullName);
  34611 }
  34612 static inline HRESULT IPackageDebugSettings_SetTargetSessionId(IPackageDebugSettings* This,ULONG sessionId) {
  34613     return This->lpVtbl->SetTargetSessionId(This,sessionId);
  34614 }
  34615 static inline HRESULT IPackageDebugSettings_EnumerateBackgroundTasks(IPackageDebugSettings* This,LPCWSTR packageFullName,ULONG *taskCount,LPCGUID *taskIds,LPCWSTR **taskNames) {
  34616     return This->lpVtbl->EnumerateBackgroundTasks(This,packageFullName,taskCount,taskIds,taskNames);
  34617 }
  34618 static inline HRESULT IPackageDebugSettings_ActivateBackgroundTask(IPackageDebugSettings* This,LPCGUID taskId) {
  34619     return This->lpVtbl->ActivateBackgroundTask(This,taskId);
  34620 }
  34621 static inline HRESULT IPackageDebugSettings_StartServicing(IPackageDebugSettings* This,LPCWSTR packageFullName) {
  34622     return This->lpVtbl->StartServicing(This,packageFullName);
  34623 }
  34624 static inline HRESULT IPackageDebugSettings_StopServicing(IPackageDebugSettings* This,LPCWSTR packageFullName) {
  34625     return This->lpVtbl->StopServicing(This,packageFullName);
  34626 }
  34627 static inline HRESULT IPackageDebugSettings_StartSessionRedirection(IPackageDebugSettings* This,LPCWSTR packageFullName,ULONG sessionId) {
  34628     return This->lpVtbl->StartSessionRedirection(This,packageFullName,sessionId);
  34629 }
  34630 static inline HRESULT IPackageDebugSettings_StopSessionRedirection(IPackageDebugSettings* This,LPCWSTR packageFullName) {
  34631     return This->lpVtbl->StopSessionRedirection(This,packageFullName);
  34632 }
  34633 static inline HRESULT IPackageDebugSettings_GetPackageExecutionState(IPackageDebugSettings* This,LPCWSTR packageFullName,PACKAGE_EXECUTION_STATE *packageExecutionState) {
  34634     return This->lpVtbl->GetPackageExecutionState(This,packageFullName,packageExecutionState);
  34635 }
  34636 static inline HRESULT IPackageDebugSettings_RegisterForPackageStateChanges(IPackageDebugSettings* This,LPCWSTR packageFullName,IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,DWORD *pdwCookie) {
  34637     return This->lpVtbl->RegisterForPackageStateChanges(This,packageFullName,pPackageExecutionStateChangeNotification,pdwCookie);
  34638 }
  34639 static inline HRESULT IPackageDebugSettings_UnregisterForPackageStateChanges(IPackageDebugSettings* This,DWORD dwCookie) {
  34640     return This->lpVtbl->UnregisterForPackageStateChanges(This,dwCookie);
  34641 }
  34642 #endif
  34643 #endif
  34644 
  34645 #endif
  34646 
  34647 
  34648 #endif  /* __IPackageDebugSettings_INTERFACE_DEFINED__ */
  34649 
  34650 
  34651 typedef enum AHE_TYPE {
  34652     AHE_DESKTOP = 0,
  34653     AHE_IMMERSIVE = 1
  34654 } AHE_TYPE;
  34655 
  34656 /*****************************************************************************
  34657  * IExecuteCommandApplicationHostEnvironment interface
  34658  */
  34659 #ifndef __IExecuteCommandApplicationHostEnvironment_INTERFACE_DEFINED__
  34660 #define __IExecuteCommandApplicationHostEnvironment_INTERFACE_DEFINED__
  34661 
  34662 DEFINE_GUID(IID_IExecuteCommandApplicationHostEnvironment, 0x18b21aa9, 0xe184, 0x4ff0, 0x9f,0x5e, 0xf8,0x82,0xd0,0x37,0x71,0xb3);
  34663 #if defined(__cplusplus) && !defined(CINTERFACE)
  34664 MIDL_INTERFACE("18b21aa9-e184-4ff0-9f5e-f882d03771b3")
  34665 IExecuteCommandApplicationHostEnvironment : public IUnknown
  34666 {
  34667     virtual HRESULT STDMETHODCALLTYPE GetValue(
  34668         AHE_TYPE *pahe) = 0;
  34669 
  34670 };
  34671 #ifdef __CRT_UUID_DECL
  34672 __CRT_UUID_DECL(IExecuteCommandApplicationHostEnvironment, 0x18b21aa9, 0xe184, 0x4ff0, 0x9f,0x5e, 0xf8,0x82,0xd0,0x37,0x71,0xb3)
  34673 #endif
  34674 #else
  34675 typedef struct IExecuteCommandApplicationHostEnvironmentVtbl {
  34676     BEGIN_INTERFACE
  34677 
  34678     /*** IUnknown methods ***/
  34679     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  34680         IExecuteCommandApplicationHostEnvironment *This,
  34681         REFIID riid,
  34682         void **ppvObject);
  34683 
  34684     ULONG (STDMETHODCALLTYPE *AddRef)(
  34685         IExecuteCommandApplicationHostEnvironment *This);
  34686 
  34687     ULONG (STDMETHODCALLTYPE *Release)(
  34688         IExecuteCommandApplicationHostEnvironment *This);
  34689 
  34690     /*** IExecuteCommandApplicationHostEnvironment methods ***/
  34691     HRESULT (STDMETHODCALLTYPE *GetValue)(
  34692         IExecuteCommandApplicationHostEnvironment *This,
  34693         AHE_TYPE *pahe);
  34694 
  34695     END_INTERFACE
  34696 } IExecuteCommandApplicationHostEnvironmentVtbl;
  34697 
  34698 interface IExecuteCommandApplicationHostEnvironment {
  34699     CONST_VTBL IExecuteCommandApplicationHostEnvironmentVtbl* lpVtbl;
  34700 };
  34701 
  34702 #ifdef COBJMACROS
  34703 #ifndef WIDL_C_INLINE_WRAPPERS
  34704 /*** IUnknown methods ***/
  34705 #define IExecuteCommandApplicationHostEnvironment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  34706 #define IExecuteCommandApplicationHostEnvironment_AddRef(This) (This)->lpVtbl->AddRef(This)
  34707 #define IExecuteCommandApplicationHostEnvironment_Release(This) (This)->lpVtbl->Release(This)
  34708 /*** IExecuteCommandApplicationHostEnvironment methods ***/
  34709 #define IExecuteCommandApplicationHostEnvironment_GetValue(This,pahe) (This)->lpVtbl->GetValue(This,pahe)
  34710 #else
  34711 /*** IUnknown methods ***/
  34712 static inline HRESULT IExecuteCommandApplicationHostEnvironment_QueryInterface(IExecuteCommandApplicationHostEnvironment* This,REFIID riid,void **ppvObject) {
  34713     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  34714 }
  34715 static inline ULONG IExecuteCommandApplicationHostEnvironment_AddRef(IExecuteCommandApplicationHostEnvironment* This) {
  34716     return This->lpVtbl->AddRef(This);
  34717 }
  34718 static inline ULONG IExecuteCommandApplicationHostEnvironment_Release(IExecuteCommandApplicationHostEnvironment* This) {
  34719     return This->lpVtbl->Release(This);
  34720 }
  34721 /*** IExecuteCommandApplicationHostEnvironment methods ***/
  34722 static inline HRESULT IExecuteCommandApplicationHostEnvironment_GetValue(IExecuteCommandApplicationHostEnvironment* This,AHE_TYPE *pahe) {
  34723     return This->lpVtbl->GetValue(This,pahe);
  34724 }
  34725 #endif
  34726 #endif
  34727 
  34728 #endif
  34729 
  34730 
  34731 #endif  /* __IExecuteCommandApplicationHostEnvironment_INTERFACE_DEFINED__ */
  34732 
  34733 
  34734 typedef enum EC_HOST_UI_MODE {
  34735     ECHUIM_DESKTOP = 0,
  34736     ECHUIM_IMMERSIVE = 1,
  34737     ECHUIM_SYSTEM_LAUNCHER = 2
  34738 } EC_HOST_UI_MODE;
  34739 
  34740 /*****************************************************************************
  34741  * IExecuteCommandHost interface
  34742  */
  34743 #ifndef __IExecuteCommandHost_INTERFACE_DEFINED__
  34744 #define __IExecuteCommandHost_INTERFACE_DEFINED__
  34745 
  34746 DEFINE_GUID(IID_IExecuteCommandHost, 0x4b6832a2, 0x5f04, 0x4c9d, 0xb8,0x9d, 0x72,0x7a,0x15,0xd1,0x03,0xe7);
  34747 #if defined(__cplusplus) && !defined(CINTERFACE)
  34748 MIDL_INTERFACE("4b6832a2-5f04-4c9d-b89d-727a15d103e7")
  34749 IExecuteCommandHost : public IUnknown
  34750 {
  34751     virtual HRESULT STDMETHODCALLTYPE GetUIMode(
  34752         EC_HOST_UI_MODE *pUIMode) = 0;
  34753 
  34754 };
  34755 #ifdef __CRT_UUID_DECL
  34756 __CRT_UUID_DECL(IExecuteCommandHost, 0x4b6832a2, 0x5f04, 0x4c9d, 0xb8,0x9d, 0x72,0x7a,0x15,0xd1,0x03,0xe7)
  34757 #endif
  34758 #else
  34759 typedef struct IExecuteCommandHostVtbl {
  34760     BEGIN_INTERFACE
  34761 
  34762     /*** IUnknown methods ***/
  34763     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  34764         IExecuteCommandHost *This,
  34765         REFIID riid,
  34766         void **ppvObject);
  34767 
  34768     ULONG (STDMETHODCALLTYPE *AddRef)(
  34769         IExecuteCommandHost *This);
  34770 
  34771     ULONG (STDMETHODCALLTYPE *Release)(
  34772         IExecuteCommandHost *This);
  34773 
  34774     /*** IExecuteCommandHost methods ***/
  34775     HRESULT (STDMETHODCALLTYPE *GetUIMode)(
  34776         IExecuteCommandHost *This,
  34777         EC_HOST_UI_MODE *pUIMode);
  34778 
  34779     END_INTERFACE
  34780 } IExecuteCommandHostVtbl;
  34781 
  34782 interface IExecuteCommandHost {
  34783     CONST_VTBL IExecuteCommandHostVtbl* lpVtbl;
  34784 };
  34785 
  34786 #ifdef COBJMACROS
  34787 #ifndef WIDL_C_INLINE_WRAPPERS
  34788 /*** IUnknown methods ***/
  34789 #define IExecuteCommandHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  34790 #define IExecuteCommandHost_AddRef(This) (This)->lpVtbl->AddRef(This)
  34791 #define IExecuteCommandHost_Release(This) (This)->lpVtbl->Release(This)
  34792 /*** IExecuteCommandHost methods ***/
  34793 #define IExecuteCommandHost_GetUIMode(This,pUIMode) (This)->lpVtbl->GetUIMode(This,pUIMode)
  34794 #else
  34795 /*** IUnknown methods ***/
  34796 static inline HRESULT IExecuteCommandHost_QueryInterface(IExecuteCommandHost* This,REFIID riid,void **ppvObject) {
  34797     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  34798 }
  34799 static inline ULONG IExecuteCommandHost_AddRef(IExecuteCommandHost* This) {
  34800     return This->lpVtbl->AddRef(This);
  34801 }
  34802 static inline ULONG IExecuteCommandHost_Release(IExecuteCommandHost* This) {
  34803     return This->lpVtbl->Release(This);
  34804 }
  34805 /*** IExecuteCommandHost methods ***/
  34806 static inline HRESULT IExecuteCommandHost_GetUIMode(IExecuteCommandHost* This,EC_HOST_UI_MODE *pUIMode) {
  34807     return This->lpVtbl->GetUIMode(This,pUIMode);
  34808 }
  34809 #endif
  34810 #endif
  34811 
  34812 #endif
  34813 
  34814 
  34815 #endif  /* __IExecuteCommandHost_INTERFACE_DEFINED__ */
  34816 
  34817 
  34818 #define SID_ExecuteCommandHost IID_IExecuteCommandHost
  34819 
  34820 typedef enum APPLICATION_VIEW_STATE {
  34821     AVS_FULLSCREEN_LANDSCAPE = 0,
  34822     AVS_FILLED = 1,
  34823     AVS_SNAPPED = 2,
  34824     AVS_FULLSCREEN_PORTRAIT = 3
  34825 } APPLICATION_VIEW_STATE;
  34826 
  34827 typedef enum EDGE_GESTURE_KIND {
  34828     EGK_TOUCH = 0,
  34829     EGK_KEYBOARD = 1,
  34830     EGK_MOUSE = 2
  34831 } EDGE_GESTURE_KIND;
  34832 
  34833 /*****************************************************************************
  34834  * IApplicationDesignModeSettings interface
  34835  */
  34836 #ifndef __IApplicationDesignModeSettings_INTERFACE_DEFINED__
  34837 #define __IApplicationDesignModeSettings_INTERFACE_DEFINED__
  34838 
  34839 DEFINE_GUID(IID_IApplicationDesignModeSettings, 0x2a3dee9a, 0xe31d, 0x46d6, 0x85,0x08, 0xbc,0xc5,0x97,0xdb,0x35,0x57);
  34840 #if defined(__cplusplus) && !defined(CINTERFACE)
  34841 MIDL_INTERFACE("2a3dee9a-e31d-46d6-8508-bcc597db3557")
  34842 IApplicationDesignModeSettings : public IUnknown
  34843 {
  34844     virtual HRESULT STDMETHODCALLTYPE SetNativeDisplaySize(
  34845         SIZE sizeNativeDisplay) = 0;
  34846 
  34847     virtual HRESULT STDMETHODCALLTYPE SetScaleFactor(
  34848         DEVICE_SCALE_FACTOR scaleFactor) = 0;
  34849 
  34850     virtual HRESULT STDMETHODCALLTYPE SetApplicationViewState(
  34851         APPLICATION_VIEW_STATE viewState) = 0;
  34852 
  34853     virtual HRESULT STDMETHODCALLTYPE ComputeApplicationSize(
  34854         SIZE *psizeApplication) = 0;
  34855 
  34856     virtual HRESULT STDMETHODCALLTYPE IsApplicationViewStateSupported(
  34857         APPLICATION_VIEW_STATE viewState,
  34858         SIZE sizeNativeDisplay,
  34859         DEVICE_SCALE_FACTOR scaleFactor,
  34860         WINBOOL *pfSupported) = 0;
  34861 
  34862     virtual HRESULT STDMETHODCALLTYPE TriggerEdgeGesture(
  34863         EDGE_GESTURE_KIND edgeGestureKind) = 0;
  34864 
  34865 };
  34866 #ifdef __CRT_UUID_DECL
  34867 __CRT_UUID_DECL(IApplicationDesignModeSettings, 0x2a3dee9a, 0xe31d, 0x46d6, 0x85,0x08, 0xbc,0xc5,0x97,0xdb,0x35,0x57)
  34868 #endif
  34869 #else
  34870 typedef struct IApplicationDesignModeSettingsVtbl {
  34871     BEGIN_INTERFACE
  34872 
  34873     /*** IUnknown methods ***/
  34874     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  34875         IApplicationDesignModeSettings *This,
  34876         REFIID riid,
  34877         void **ppvObject);
  34878 
  34879     ULONG (STDMETHODCALLTYPE *AddRef)(
  34880         IApplicationDesignModeSettings *This);
  34881 
  34882     ULONG (STDMETHODCALLTYPE *Release)(
  34883         IApplicationDesignModeSettings *This);
  34884 
  34885     /*** IApplicationDesignModeSettings methods ***/
  34886     HRESULT (STDMETHODCALLTYPE *SetNativeDisplaySize)(
  34887         IApplicationDesignModeSettings *This,
  34888         SIZE sizeNativeDisplay);
  34889 
  34890     HRESULT (STDMETHODCALLTYPE *SetScaleFactor)(
  34891         IApplicationDesignModeSettings *This,
  34892         DEVICE_SCALE_FACTOR scaleFactor);
  34893 
  34894     HRESULT (STDMETHODCALLTYPE *SetApplicationViewState)(
  34895         IApplicationDesignModeSettings *This,
  34896         APPLICATION_VIEW_STATE viewState);
  34897 
  34898     HRESULT (STDMETHODCALLTYPE *ComputeApplicationSize)(
  34899         IApplicationDesignModeSettings *This,
  34900         SIZE *psizeApplication);
  34901 
  34902     HRESULT (STDMETHODCALLTYPE *IsApplicationViewStateSupported)(
  34903         IApplicationDesignModeSettings *This,
  34904         APPLICATION_VIEW_STATE viewState,
  34905         SIZE sizeNativeDisplay,
  34906         DEVICE_SCALE_FACTOR scaleFactor,
  34907         WINBOOL *pfSupported);
  34908 
  34909     HRESULT (STDMETHODCALLTYPE *TriggerEdgeGesture)(
  34910         IApplicationDesignModeSettings *This,
  34911         EDGE_GESTURE_KIND edgeGestureKind);
  34912 
  34913     END_INTERFACE
  34914 } IApplicationDesignModeSettingsVtbl;
  34915 
  34916 interface IApplicationDesignModeSettings {
  34917     CONST_VTBL IApplicationDesignModeSettingsVtbl* lpVtbl;
  34918 };
  34919 
  34920 #ifdef COBJMACROS
  34921 #ifndef WIDL_C_INLINE_WRAPPERS
  34922 /*** IUnknown methods ***/
  34923 #define IApplicationDesignModeSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  34924 #define IApplicationDesignModeSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
  34925 #define IApplicationDesignModeSettings_Release(This) (This)->lpVtbl->Release(This)
  34926 /*** IApplicationDesignModeSettings methods ***/
  34927 #define IApplicationDesignModeSettings_SetNativeDisplaySize(This,sizeNativeDisplay) (This)->lpVtbl->SetNativeDisplaySize(This,sizeNativeDisplay)
  34928 #define IApplicationDesignModeSettings_SetScaleFactor(This,scaleFactor) (This)->lpVtbl->SetScaleFactor(This,scaleFactor)
  34929 #define IApplicationDesignModeSettings_SetApplicationViewState(This,viewState) (This)->lpVtbl->SetApplicationViewState(This,viewState)
  34930 #define IApplicationDesignModeSettings_ComputeApplicationSize(This,psizeApplication) (This)->lpVtbl->ComputeApplicationSize(This,psizeApplication)
  34931 #define IApplicationDesignModeSettings_IsApplicationViewStateSupported(This,viewState,sizeNativeDisplay,scaleFactor,pfSupported) (This)->lpVtbl->IsApplicationViewStateSupported(This,viewState,sizeNativeDisplay,scaleFactor,pfSupported)
  34932 #define IApplicationDesignModeSettings_TriggerEdgeGesture(This,edgeGestureKind) (This)->lpVtbl->TriggerEdgeGesture(This,edgeGestureKind)
  34933 #else
  34934 /*** IUnknown methods ***/
  34935 static inline HRESULT IApplicationDesignModeSettings_QueryInterface(IApplicationDesignModeSettings* This,REFIID riid,void **ppvObject) {
  34936     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  34937 }
  34938 static inline ULONG IApplicationDesignModeSettings_AddRef(IApplicationDesignModeSettings* This) {
  34939     return This->lpVtbl->AddRef(This);
  34940 }
  34941 static inline ULONG IApplicationDesignModeSettings_Release(IApplicationDesignModeSettings* This) {
  34942     return This->lpVtbl->Release(This);
  34943 }
  34944 /*** IApplicationDesignModeSettings methods ***/
  34945 static inline HRESULT IApplicationDesignModeSettings_SetNativeDisplaySize(IApplicationDesignModeSettings* This,SIZE sizeNativeDisplay) {
  34946     return This->lpVtbl->SetNativeDisplaySize(This,sizeNativeDisplay);
  34947 }
  34948 static inline HRESULT IApplicationDesignModeSettings_SetScaleFactor(IApplicationDesignModeSettings* This,DEVICE_SCALE_FACTOR scaleFactor) {
  34949     return This->lpVtbl->SetScaleFactor(This,scaleFactor);
  34950 }
  34951 static inline HRESULT IApplicationDesignModeSettings_SetApplicationViewState(IApplicationDesignModeSettings* This,APPLICATION_VIEW_STATE viewState) {
  34952     return This->lpVtbl->SetApplicationViewState(This,viewState);
  34953 }
  34954 static inline HRESULT IApplicationDesignModeSettings_ComputeApplicationSize(IApplicationDesignModeSettings* This,SIZE *psizeApplication) {
  34955     return This->lpVtbl->ComputeApplicationSize(This,psizeApplication);
  34956 }
  34957 static inline HRESULT IApplicationDesignModeSettings_IsApplicationViewStateSupported(IApplicationDesignModeSettings* This,APPLICATION_VIEW_STATE viewState,SIZE sizeNativeDisplay,DEVICE_SCALE_FACTOR scaleFactor,WINBOOL *pfSupported) {
  34958     return This->lpVtbl->IsApplicationViewStateSupported(This,viewState,sizeNativeDisplay,scaleFactor,pfSupported);
  34959 }
  34960 static inline HRESULT IApplicationDesignModeSettings_TriggerEdgeGesture(IApplicationDesignModeSettings* This,EDGE_GESTURE_KIND edgeGestureKind) {
  34961     return This->lpVtbl->TriggerEdgeGesture(This,edgeGestureKind);
  34962 }
  34963 #endif
  34964 #endif
  34965 
  34966 #endif
  34967 
  34968 
  34969 #endif  /* __IApplicationDesignModeSettings_INTERFACE_DEFINED__ */
  34970 
  34971 
  34972 /*****************************************************************************
  34973  * IInitializeWithWindow interface
  34974  */
  34975 #ifndef __IInitializeWithWindow_INTERFACE_DEFINED__
  34976 #define __IInitializeWithWindow_INTERFACE_DEFINED__
  34977 
  34978 DEFINE_GUID(IID_IInitializeWithWindow, 0x3e68d4bd, 0x7135, 0x4d10, 0x80,0x18, 0x9f,0xb6,0xd9,0xf3,0x3f,0xa1);
  34979 #if defined(__cplusplus) && !defined(CINTERFACE)
  34980 MIDL_INTERFACE("3e68d4bd-7135-4d10-8018-9fb6d9f33fa1")
  34981 IInitializeWithWindow : public IUnknown
  34982 {
  34983     virtual HRESULT STDMETHODCALLTYPE Initialize(
  34984         HWND hwnd) = 0;
  34985 
  34986 };
  34987 #ifdef __CRT_UUID_DECL
  34988 __CRT_UUID_DECL(IInitializeWithWindow, 0x3e68d4bd, 0x7135, 0x4d10, 0x80,0x18, 0x9f,0xb6,0xd9,0xf3,0x3f,0xa1)
  34989 #endif
  34990 #else
  34991 typedef struct IInitializeWithWindowVtbl {
  34992     BEGIN_INTERFACE
  34993 
  34994     /*** IUnknown methods ***/
  34995     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  34996         IInitializeWithWindow *This,
  34997         REFIID riid,
  34998         void **ppvObject);
  34999 
  35000     ULONG (STDMETHODCALLTYPE *AddRef)(
  35001         IInitializeWithWindow *This);
  35002 
  35003     ULONG (STDMETHODCALLTYPE *Release)(
  35004         IInitializeWithWindow *This);
  35005 
  35006     /*** IInitializeWithWindow methods ***/
  35007     HRESULT (STDMETHODCALLTYPE *Initialize)(
  35008         IInitializeWithWindow *This,
  35009         HWND hwnd);
  35010 
  35011     END_INTERFACE
  35012 } IInitializeWithWindowVtbl;
  35013 
  35014 interface IInitializeWithWindow {
  35015     CONST_VTBL IInitializeWithWindowVtbl* lpVtbl;
  35016 };
  35017 
  35018 #ifdef COBJMACROS
  35019 #ifndef WIDL_C_INLINE_WRAPPERS
  35020 /*** IUnknown methods ***/
  35021 #define IInitializeWithWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  35022 #define IInitializeWithWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
  35023 #define IInitializeWithWindow_Release(This) (This)->lpVtbl->Release(This)
  35024 /*** IInitializeWithWindow methods ***/
  35025 #define IInitializeWithWindow_Initialize(This,hwnd) (This)->lpVtbl->Initialize(This,hwnd)
  35026 #else
  35027 /*** IUnknown methods ***/
  35028 static inline HRESULT IInitializeWithWindow_QueryInterface(IInitializeWithWindow* This,REFIID riid,void **ppvObject) {
  35029     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  35030 }
  35031 static inline ULONG IInitializeWithWindow_AddRef(IInitializeWithWindow* This) {
  35032     return This->lpVtbl->AddRef(This);
  35033 }
  35034 static inline ULONG IInitializeWithWindow_Release(IInitializeWithWindow* This) {
  35035     return This->lpVtbl->Release(This);
  35036 }
  35037 /*** IInitializeWithWindow methods ***/
  35038 static inline HRESULT IInitializeWithWindow_Initialize(IInitializeWithWindow* This,HWND hwnd) {
  35039     return This->lpVtbl->Initialize(This,hwnd);
  35040 }
  35041 #endif
  35042 #endif
  35043 
  35044 #endif
  35045 
  35046 
  35047 #endif  /* __IInitializeWithWindow_INTERFACE_DEFINED__ */
  35048 
  35049 
  35050 /*****************************************************************************
  35051  * IHandlerInfo interface
  35052  */
  35053 #ifndef __IHandlerInfo_INTERFACE_DEFINED__
  35054 #define __IHandlerInfo_INTERFACE_DEFINED__
  35055 
  35056 DEFINE_GUID(IID_IHandlerInfo, 0x997706ef, 0xf880, 0x453b, 0x81,0x18, 0x39,0xe1,0xa2,0xd2,0x65,0x5a);
  35057 #if defined(__cplusplus) && !defined(CINTERFACE)
  35058 MIDL_INTERFACE("997706ef-f880-453b-8118-39e1a2d2655a")
  35059 IHandlerInfo : public IUnknown
  35060 {
  35061     virtual HRESULT STDMETHODCALLTYPE GetApplicationDisplayName(
  35062         LPWSTR *value) = 0;
  35063 
  35064     virtual HRESULT STDMETHODCALLTYPE GetApplicationPublisher(
  35065         LPWSTR *value) = 0;
  35066 
  35067     virtual HRESULT STDMETHODCALLTYPE GetApplicationIconReference(
  35068         LPWSTR *value) = 0;
  35069 
  35070 };
  35071 #ifdef __CRT_UUID_DECL
  35072 __CRT_UUID_DECL(IHandlerInfo, 0x997706ef, 0xf880, 0x453b, 0x81,0x18, 0x39,0xe1,0xa2,0xd2,0x65,0x5a)
  35073 #endif
  35074 #else
  35075 typedef struct IHandlerInfoVtbl {
  35076     BEGIN_INTERFACE
  35077 
  35078     /*** IUnknown methods ***/
  35079     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  35080         IHandlerInfo *This,
  35081         REFIID riid,
  35082         void **ppvObject);
  35083 
  35084     ULONG (STDMETHODCALLTYPE *AddRef)(
  35085         IHandlerInfo *This);
  35086 
  35087     ULONG (STDMETHODCALLTYPE *Release)(
  35088         IHandlerInfo *This);
  35089 
  35090     /*** IHandlerInfo methods ***/
  35091     HRESULT (STDMETHODCALLTYPE *GetApplicationDisplayName)(
  35092         IHandlerInfo *This,
  35093         LPWSTR *value);
  35094 
  35095     HRESULT (STDMETHODCALLTYPE *GetApplicationPublisher)(
  35096         IHandlerInfo *This,
  35097         LPWSTR *value);
  35098 
  35099     HRESULT (STDMETHODCALLTYPE *GetApplicationIconReference)(
  35100         IHandlerInfo *This,
  35101         LPWSTR *value);
  35102 
  35103     END_INTERFACE
  35104 } IHandlerInfoVtbl;
  35105 
  35106 interface IHandlerInfo {
  35107     CONST_VTBL IHandlerInfoVtbl* lpVtbl;
  35108 };
  35109 
  35110 #ifdef COBJMACROS
  35111 #ifndef WIDL_C_INLINE_WRAPPERS
  35112 /*** IUnknown methods ***/
  35113 #define IHandlerInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  35114 #define IHandlerInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
  35115 #define IHandlerInfo_Release(This) (This)->lpVtbl->Release(This)
  35116 /*** IHandlerInfo methods ***/
  35117 #define IHandlerInfo_GetApplicationDisplayName(This,value) (This)->lpVtbl->GetApplicationDisplayName(This,value)
  35118 #define IHandlerInfo_GetApplicationPublisher(This,value) (This)->lpVtbl->GetApplicationPublisher(This,value)
  35119 #define IHandlerInfo_GetApplicationIconReference(This,value) (This)->lpVtbl->GetApplicationIconReference(This,value)
  35120 #else
  35121 /*** IUnknown methods ***/
  35122 static inline HRESULT IHandlerInfo_QueryInterface(IHandlerInfo* This,REFIID riid,void **ppvObject) {
  35123     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  35124 }
  35125 static inline ULONG IHandlerInfo_AddRef(IHandlerInfo* This) {
  35126     return This->lpVtbl->AddRef(This);
  35127 }
  35128 static inline ULONG IHandlerInfo_Release(IHandlerInfo* This) {
  35129     return This->lpVtbl->Release(This);
  35130 }
  35131 /*** IHandlerInfo methods ***/
  35132 static inline HRESULT IHandlerInfo_GetApplicationDisplayName(IHandlerInfo* This,LPWSTR *value) {
  35133     return This->lpVtbl->GetApplicationDisplayName(This,value);
  35134 }
  35135 static inline HRESULT IHandlerInfo_GetApplicationPublisher(IHandlerInfo* This,LPWSTR *value) {
  35136     return This->lpVtbl->GetApplicationPublisher(This,value);
  35137 }
  35138 static inline HRESULT IHandlerInfo_GetApplicationIconReference(IHandlerInfo* This,LPWSTR *value) {
  35139     return This->lpVtbl->GetApplicationIconReference(This,value);
  35140 }
  35141 #endif
  35142 #endif
  35143 
  35144 #endif
  35145 
  35146 
  35147 #endif  /* __IHandlerInfo_INTERFACE_DEFINED__ */
  35148 
  35149 
  35150 /*****************************************************************************
  35151  * IHandlerActivationHost interface
  35152  */
  35153 #ifndef __IHandlerActivationHost_INTERFACE_DEFINED__
  35154 #define __IHandlerActivationHost_INTERFACE_DEFINED__
  35155 
  35156 DEFINE_GUID(IID_IHandlerActivationHost, 0x35094a87, 0x8bb1, 0x4237, 0x96,0xc6, 0xc4,0x17,0xee,0xbd,0xb0,0x78);
  35157 #if defined(__cplusplus) && !defined(CINTERFACE)
  35158 MIDL_INTERFACE("35094a87-8bb1-4237-96c6-c417eebdb078")
  35159 IHandlerActivationHost : public IUnknown
  35160 {
  35161     virtual HRESULT STDMETHODCALLTYPE BeforeCoCreateInstance(
  35162         REFCLSID clsidHandler,
  35163         IShellItemArray *itemsBeingActivated,
  35164         IHandlerInfo *handlerInfo) = 0;
  35165 
  35166     virtual HRESULT STDMETHODCALLTYPE BeforeCreateProcess(
  35167         LPCWSTR applicationPath,
  35168         LPCWSTR commandLine,
  35169         IHandlerInfo *handlerInfo) = 0;
  35170 
  35171 };
  35172 #ifdef __CRT_UUID_DECL
  35173 __CRT_UUID_DECL(IHandlerActivationHost, 0x35094a87, 0x8bb1, 0x4237, 0x96,0xc6, 0xc4,0x17,0xee,0xbd,0xb0,0x78)
  35174 #endif
  35175 #else
  35176 typedef struct IHandlerActivationHostVtbl {
  35177     BEGIN_INTERFACE
  35178 
  35179     /*** IUnknown methods ***/
  35180     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
  35181         IHandlerActivationHost *This,
  35182         REFIID riid,
  35183         void **ppvObject);
  35184 
  35185     ULONG (STDMETHODCALLTYPE *AddRef)(
  35186         IHandlerActivationHost *This);
  35187 
  35188     ULONG (STDMETHODCALLTYPE *Release)(
  35189         IHandlerActivationHost *This);
  35190 
  35191     /*** IHandlerActivationHost methods ***/
  35192     HRESULT (STDMETHODCALLTYPE *BeforeCoCreateInstance)(
  35193         IHandlerActivationHost *This,
  35194         REFCLSID clsidHandler,
  35195         IShellItemArray *itemsBeingActivated,
  35196         IHandlerInfo *handlerInfo);
  35197 
  35198     HRESULT (STDMETHODCALLTYPE *BeforeCreateProcess)(
  35199         IHandlerActivationHost *This,
  35200         LPCWSTR applicationPath,
  35201         LPCWSTR commandLine,
  35202         IHandlerInfo *handlerInfo);
  35203 
  35204     END_INTERFACE
  35205 } IHandlerActivationHostVtbl;
  35206 
  35207 interface IHandlerActivationHost {
  35208     CONST_VTBL IHandlerActivationHostVtbl* lpVtbl;
  35209 };
  35210 
  35211 #ifdef COBJMACROS
  35212 #ifndef WIDL_C_INLINE_WRAPPERS
  35213 /*** IUnknown methods ***/
  35214 #define IHandlerActivationHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
  35215 #define IHandlerActivationHost_AddRef(This) (This)->lpVtbl->AddRef(This)
  35216 #define IHandlerActivationHost_Release(This) (This)->lpVtbl->Release(This)
  35217 /*** IHandlerActivationHost methods ***/
  35218 #define IHandlerActivationHost_BeforeCoCreateInstance(This,clsidHandler,itemsBeingActivated,handlerInfo) (This)->lpVtbl->BeforeCoCreateInstance(This,clsidHandler,itemsBeingActivated,handlerInfo)
  35219 #define IHandlerActivationHost_BeforeCreateProcess(This,applicationPath,commandLine,handlerInfo) (This)->lpVtbl->BeforeCreateProcess(This,applicationPath,commandLine,handlerInfo)
  35220 #else
  35221 /*** IUnknown methods ***/
  35222 static inline HRESULT IHandlerActivationHost_QueryInterface(IHandlerActivationHost* This,REFIID riid,void **ppvObject) {
  35223     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
  35224 }
  35225 static inline ULONG IHandlerActivationHost_AddRef(IHandlerActivationHost* This) {
  35226     return This->lpVtbl->AddRef(This);
  35227 }
  35228 static inline ULONG IHandlerActivationHost_Release(IHandlerActivationHost* This) {
  35229     return This->lpVtbl->Release(This);
  35230 }
  35231 /*** IHandlerActivationHost methods ***/
  35232 static inline HRESULT IHandlerActivationHost_BeforeCoCreateInstance(IHandlerActivationHost* This,REFCLSID clsidHandler,IShellItemArray *itemsBeingActivated,IHandlerInfo *handlerInfo) {
  35233     return This->lpVtbl->BeforeCoCreateInstance(This,clsidHandler,itemsBeingActivated,handlerInfo);
  35234 }
  35235 static inline HRESULT IHandlerActivationHost_BeforeCreateProcess(IHandlerActivationHost* This,LPCWSTR applicationPath,LPCWSTR commandLine,IHandlerInfo *handlerInfo) {
  35236     return This->lpVtbl->BeforeCreateProcess(This,applicationPath,commandLine,handlerInfo);
  35237 }
  35238 #endif
  35239 #endif
  35240 
  35241 #endif
  35242 
  35243 
  35244 #endif  /* __IHandlerActivationHost_INTERFACE_DEFINED__ */
  35245 
  35246 
  35247 #define SID_SHandlerActivationHost IID_IHandlerActivationHost
  35248 
  35249 DEFINE_GUID(SID_ShellExecuteNamedPropertyStore, 0xeb84ada2, 0x00ff, 0x4992, 0x83, 0x24, 0xed, 0x5c, 0xe0, 0x61, 0xcb, 0x29);
  35250 #endif
  35251 
  35252 #endif
  35253 /* Begin additional prototypes for all interfaces */
  35254 
  35255 ULONG           __RPC_USER PCIDLIST_ABSOLUTE_UserSize     (ULONG *, ULONG, PCIDLIST_ABSOLUTE *);
  35256 unsigned char * __RPC_USER PCIDLIST_ABSOLUTE_UserMarshal  (ULONG *, unsigned char *, PCIDLIST_ABSOLUTE *);
  35257 unsigned char * __RPC_USER PCIDLIST_ABSOLUTE_UserUnmarshal(ULONG *, unsigned char *, PCIDLIST_ABSOLUTE *);
  35258 void            __RPC_USER PCIDLIST_ABSOLUTE_UserFree     (ULONG *, PCIDLIST_ABSOLUTE *);
  35259 ULONG           __RPC_USER PIDLIST_ABSOLUTE_UserSize     (ULONG *, ULONG, PIDLIST_ABSOLUTE *);
  35260 unsigned char * __RPC_USER PIDLIST_ABSOLUTE_UserMarshal  (ULONG *, unsigned char *, PIDLIST_ABSOLUTE *);
  35261 unsigned char * __RPC_USER PIDLIST_ABSOLUTE_UserUnmarshal(ULONG *, unsigned char *, PIDLIST_ABSOLUTE *);
  35262 void            __RPC_USER PIDLIST_ABSOLUTE_UserFree     (ULONG *, PIDLIST_ABSOLUTE *);
  35263 ULONG           __RPC_USER PITEMID_CHILD_UserSize     (ULONG *, ULONG, PITEMID_CHILD *);
  35264 unsigned char * __RPC_USER PITEMID_CHILD_UserMarshal  (ULONG *, unsigned char *, PITEMID_CHILD *);
  35265 unsigned char * __RPC_USER PITEMID_CHILD_UserUnmarshal(ULONG *, unsigned char *, PITEMID_CHILD *);
  35266 void            __RPC_USER PITEMID_CHILD_UserFree     (ULONG *, PITEMID_CHILD *);
  35267 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
  35268 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
  35269 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
  35270 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
  35271 ULONG           __RPC_USER PIDLIST_RELATIVE_UserSize     (ULONG *, ULONG, PIDLIST_RELATIVE *);
  35272 unsigned char * __RPC_USER PIDLIST_RELATIVE_UserMarshal  (ULONG *, unsigned char *, PIDLIST_RELATIVE *);
  35273 unsigned char * __RPC_USER PIDLIST_RELATIVE_UserUnmarshal(ULONG *, unsigned char *, PIDLIST_RELATIVE *);
  35274 void            __RPC_USER PIDLIST_RELATIVE_UserFree     (ULONG *, PIDLIST_RELATIVE *);
  35275 ULONG           __RPC_USER PCUIDLIST_RELATIVE_UserSize     (ULONG *, ULONG, PCUIDLIST_RELATIVE *);
  35276 unsigned char * __RPC_USER PCUIDLIST_RELATIVE_UserMarshal  (ULONG *, unsigned char *, PCUIDLIST_RELATIVE *);
  35277 unsigned char * __RPC_USER PCUIDLIST_RELATIVE_UserUnmarshal(ULONG *, unsigned char *, PCUIDLIST_RELATIVE *);
  35278 void            __RPC_USER PCUIDLIST_RELATIVE_UserFree     (ULONG *, PCUIDLIST_RELATIVE *);
  35279 ULONG           __RPC_USER PCUITEMID_CHILD_UserSize     (ULONG *, ULONG, PCUITEMID_CHILD *);
  35280 unsigned char * __RPC_USER PCUITEMID_CHILD_UserMarshal  (ULONG *, unsigned char *, PCUITEMID_CHILD *);
  35281 unsigned char * __RPC_USER PCUITEMID_CHILD_UserUnmarshal(ULONG *, unsigned char *, PCUITEMID_CHILD *);
  35282 void            __RPC_USER PCUITEMID_CHILD_UserFree     (ULONG *, PCUITEMID_CHILD *);
  35283 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
  35284 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
  35285 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
  35286 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
  35287 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
  35288 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
  35289 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
  35290 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
  35291 ULONG           __RPC_USER LPSAFEARRAY_UserSize     (ULONG *, ULONG, LPSAFEARRAY *);
  35292 unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal  (ULONG *, unsigned char *, LPSAFEARRAY *);
  35293 unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
  35294 void            __RPC_USER LPSAFEARRAY_UserFree     (ULONG *, LPSAFEARRAY *);
  35295 ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
  35296 unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *);
  35297 unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
  35298 void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *);
  35299 ULONG           __RPC_USER HMENU_UserSize     (ULONG *, ULONG, HMENU *);
  35300 unsigned char * __RPC_USER HMENU_UserMarshal  (ULONG *, unsigned char *, HMENU *);
  35301 unsigned char * __RPC_USER HMENU_UserUnmarshal(ULONG *, unsigned char *, HMENU *);
  35302 void            __RPC_USER HMENU_UserFree     (ULONG *, HMENU *);
  35303 ULONG           __RPC_USER HGLOBAL_UserSize     (ULONG *, ULONG, HGLOBAL *);
  35304 unsigned char * __RPC_USER HGLOBAL_UserMarshal  (ULONG *, unsigned char *, HGLOBAL *);
  35305 unsigned char * __RPC_USER HGLOBAL_UserUnmarshal(ULONG *, unsigned char *, HGLOBAL *);
  35306 void            __RPC_USER HGLOBAL_UserFree     (ULONG *, HGLOBAL *);
  35307 ULONG           __RPC_USER HICON_UserSize     (ULONG *, ULONG, HICON *);
  35308 unsigned char * __RPC_USER HICON_UserMarshal  (ULONG *, unsigned char *, HICON *);
  35309 unsigned char * __RPC_USER HICON_UserUnmarshal(ULONG *, unsigned char *, HICON *);
  35310 void            __RPC_USER HICON_UserFree     (ULONG *, HICON *);
  35311 ULONG           __RPC_USER HACCEL_UserSize     (ULONG *, ULONG, HACCEL *);
  35312 unsigned char * __RPC_USER HACCEL_UserMarshal  (ULONG *, unsigned char *, HACCEL *);
  35313 unsigned char * __RPC_USER HACCEL_UserUnmarshal(ULONG *, unsigned char *, HACCEL *);
  35314 void            __RPC_USER HACCEL_UserFree     (ULONG *, HACCEL *);
  35315 ULONG           __RPC_USER HMONITOR_UserSize     (ULONG *, ULONG, HMONITOR *);
  35316 unsigned char * __RPC_USER HMONITOR_UserMarshal  (ULONG *, unsigned char *, HMONITOR *);
  35317 unsigned char * __RPC_USER HMONITOR_UserUnmarshal(ULONG *, unsigned char *, HMONITOR *);
  35318 void            __RPC_USER HMONITOR_UserFree     (ULONG *, HMONITOR *);
  35319 
  35320 /* End additional prototypes */
  35321 
  35322 #ifdef __cplusplus
  35323 }
  35324 #endif
  35325 
  35326 #endif /* __shobjidl_h__ */