Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.5.29 from /tmp/build-mingw64-toolchain-joshualang/src/mingw-w64-svn-r5861/mingw-w64-headers/include/shobjidl.idl - Do not edit ***/
      2 
      3 #ifndef __REQUIRED_RPCNDR_H_VERSION__
      4 #define __REQUIRED_RPCNDR_H_VERSION__ 475
      5 #endif
      6 
      7 #include <rpc.h>
      8 #include <rpcndr.h>
      9 
     10 #ifndef COM_NO_WINDOWS_H
     11 #include <windows.h>
     12 #include <ole2.h>
     13 #endif
     14 
     15 #ifndef __shobjidl_h__
     16 #define __shobjidl_h__
     17 
     18 /* Forward declarations */
     19 
     20 #ifndef __IShellItem_FWD_DEFINED__
     21 #define __IShellItem_FWD_DEFINED__
     22 typedef interface IShellItem IShellItem;
     23 #endif
     24 
     25 #ifndef __IShellLibrary_FWD_DEFINED__
     26 #define __IShellLibrary_FWD_DEFINED__
     27 typedef interface IShellLibrary IShellLibrary;
     28 #endif
     29 
     30 #ifndef __ShellLibrary_FWD_DEFINED__
     31 #define __ShellLibrary_FWD_DEFINED__
     32 #ifdef __cplusplus
     33 typedef class ShellLibrary ShellLibrary;
     34 #else
     35 typedef struct ShellLibrary ShellLibrary;
     36 #endif /* defined __cplusplus */
     37 #endif /* defined __ShellLibrary_FWD_DEFINED__ */
     38 
     39 /* Headers for imported files */
     40 
     41 #include <objidl.h>
     42 #include <oaidl.h>
     43 #include <shtypes.h>
     44 #include <oleidl.h>
     45 
     46 #ifdef __cplusplus
     47 extern "C" {
     48 #endif
     49 
     50 #include <_mingw_unicode.h>
     51 #ifndef __IPersistFolder_FWD_DEFINED__
     52 #define __IPersistFolder_FWD_DEFINED__
     53 typedef struct IPersistFolder IPersistFolder;
     54 #endif
     55 
     56 #ifndef __IPersistFolder2_FWD_DEFINED__
     57 #define __IPersistFolder2_FWD_DEFINED__
     58 typedef struct IPersistFolder2 IPersistFolder2;
     59 #endif
     60 
     61 #ifndef __IPersistIDList_FWD_DEFINED__
     62 #define __IPersistIDList_FWD_DEFINED__
     63 typedef struct IPersistIDList IPersistIDList;
     64 #endif
     65 
     66 #ifndef __IEnumIDList_FWD_DEFINED__
     67 #define __IEnumIDList_FWD_DEFINED__
     68 typedef struct IEnumIDList IEnumIDList;
     69 #endif
     70 
     71 #ifndef __IShellFolder_FWD_DEFINED__
     72 #define __IShellFolder_FWD_DEFINED__
     73 typedef struct IShellFolder IShellFolder;
     74 #endif
     75 
     76 #ifndef __IEnumExtraSearch_FWD_DEFINED__
     77 #define __IEnumExtraSearch_FWD_DEFINED__
     78 typedef struct IEnumExtraSearch IEnumExtraSearch;
     79 #endif
     80 
     81 #ifndef __IShellFolder2_FWD_DEFINED__
     82 #define __IShellFolder2_FWD_DEFINED__
     83 typedef struct IShellFolder2 IShellFolder2;
     84 #endif
     85 
     86 #ifndef __IShellView_FWD_DEFINED__
     87 #define __IShellView_FWD_DEFINED__
     88 typedef struct IShellView IShellView;
     89 #endif
     90 
     91 #ifndef __IShellView2_FWD_DEFINED__
     92 #define __IShellView2_FWD_DEFINED__
     93 typedef struct IShellView2 IShellView2;
     94 #endif
     95 
     96 #ifndef __IFolderView_FWD_DEFINED__
     97 #define __IFolderView_FWD_DEFINED__
     98 typedef struct IFolderView IFolderView;
     99 #endif
    100 
    101 #ifndef __IFolderFilterSite_FWD_DEFINED__
    102 #define __IFolderFilterSite_FWD_DEFINED__
    103 typedef struct IFolderFilterSite IFolderFilterSite;
    104 #endif
    105 
    106 #ifndef __IFolderFilter_FWD_DEFINED__
    107 #define __IFolderFilter_FWD_DEFINED__
    108 typedef struct IFolderFilter IFolderFilter;
    109 #endif
    110 
    111 #ifndef __IShellBrowser_FWD_DEFINED__
    112 #define __IShellBrowser_FWD_DEFINED__
    113 typedef struct IShellBrowser IShellBrowser;
    114 #endif
    115 
    116 #ifndef __IProfferService_FWD_DEFINED__
    117 #define __IProfferService_FWD_DEFINED__
    118 typedef struct IProfferService IProfferService;
    119 #endif
    120 
    121 #ifndef __IPropertyUI_FWD_DEFINED__
    122 #define __IPropertyUI_FWD_DEFINED__
    123 typedef struct IPropertyUI IPropertyUI;
    124 #endif
    125 
    126 #ifndef __ICategoryProvider_FWD_DEFINED__
    127 #define __ICategoryProvider_FWD_DEFINED__
    128 typedef struct ICategoryProvider ICategoryProvider;
    129 #endif
    130 
    131 #ifndef __ICategorizer_FWD_DEFINED__
    132 #define __ICategorizer_FWD_DEFINED__
    133 typedef struct ICategorizer ICategorizer;
    134 #endif
    135 
    136 #ifndef __IShellLinkA_FWD_DEFINED__
    137 #define __IShellLinkA_FWD_DEFINED__
    138 typedef struct IShellLinkA IShellLinkA;
    139 #endif
    140 
    141 #ifndef __IShellLinkW_FWD_DEFINED__
    142 #define __IShellLinkW_FWD_DEFINED__
    143 typedef struct IShellLinkW IShellLinkW;
    144 #endif
    145 
    146 #ifndef __IActionProgressDialog_FWD_DEFINED__
    147 #define __IActionProgressDialog_FWD_DEFINED__
    148 typedef struct IActionProgressDialog IActionProgressDialog;
    149 #endif
    150 
    151 #ifndef __IHWEventHandler_FWD_DEFINED__
    152 #define __IHWEventHandler_FWD_DEFINED__
    153 typedef struct IHWEventHandler IHWEventHandler;
    154 #endif
    155 
    156 #ifndef __IQueryCancelAutoPlay_FWD_DEFINED__
    157 #define __IQueryCancelAutoPlay_FWD_DEFINED__
    158 typedef struct IQueryCancelAutoPlay IQueryCancelAutoPlay;
    159 #endif
    160 
    161 #ifndef __IActionProgress_FWD_DEFINED__
    162 #define __IActionProgress_FWD_DEFINED__
    163 typedef struct IActionProgress IActionProgress;
    164 #endif
    165 
    166 #ifndef __IShellExtInit_FWD_DEFINED__
    167 #define __IShellExtInit_FWD_DEFINED__
    168 typedef struct IShellExtInit IShellExtInit;
    169 #endif
    170 
    171 #ifndef __IShellPropSheetExt_FWD_DEFINED__
    172 #define __IShellPropSheetExt_FWD_DEFINED__
    173 typedef struct IShellPropSheetExt IShellPropSheetExt;
    174 #endif
    175 
    176 #ifndef __IRemoteComputer_FWD_DEFINED__
    177 #define __IRemoteComputer_FWD_DEFINED__
    178 typedef struct IRemoteComputer IRemoteComputer;
    179 #endif
    180 
    181 #ifndef __IQueryContinue_FWD_DEFINED__
    182 #define __IQueryContinue_FWD_DEFINED__
    183 typedef struct IQueryContinue IQueryContinue;
    184 #endif
    185 
    186 #ifndef __IUserNotification_FWD_DEFINED__
    187 #define __IUserNotification_FWD_DEFINED__
    188 typedef struct IUserNotification IUserNotification;
    189 #endif
    190 
    191 #ifndef __IItemNameLimits_FWD_DEFINED__
    192 #define __IItemNameLimits_FWD_DEFINED__
    193 typedef struct IItemNameLimits IItemNameLimits;
    194 #endif
    195 
    196 #ifndef __INetCrawler_FWD_DEFINED__
    197 #define __INetCrawler_FWD_DEFINED__
    198 typedef struct INetCrawler INetCrawler;
    199 #endif
    200 
    201 #ifndef __IExtractImage_FWD_DEFINED__
    202 #define __IExtractImage_FWD_DEFINED__
    203 typedef struct IExtractImage IExtractImage;
    204 #endif
    205 
    206 #ifndef __IExtractImage2_FWD_DEFINED__
    207 #define __IExtractImage2_FWD_DEFINED__
    208 typedef struct IExtractImage2 IExtractImage2;
    209 #endif
    210 
    211 #ifndef __IUserEventTimerCallback_FWD_DEFINED__
    212 #define __IUserEventTimerCallback_FWD_DEFINED__
    213 typedef struct IUserEventTimerCallback IUserEventTimerCallback;
    214 #endif
    215 
    216 #ifndef __IUserEventTimer_FWD_DEFINED__
    217 #define __IUserEventTimer_FWD_DEFINED__
    218 typedef struct IUserEventTimer IUserEventTimer;
    219 #endif
    220 
    221 #ifndef __IDockingWindow_FWD_DEFINED__
    222 #define __IDockingWindow_FWD_DEFINED__
    223 typedef struct IDockingWindow IDockingWindow;
    224 #endif
    225 
    226 #ifndef __IDeskBand_FWD_DEFINED__
    227 #define __IDeskBand_FWD_DEFINED__
    228 typedef struct IDeskBand IDeskBand;
    229 #endif
    230 
    231 #ifndef __ITaskbarList_FWD_DEFINED__
    232 #define __ITaskbarList_FWD_DEFINED__
    233 typedef struct ITaskbarList ITaskbarList;
    234 #endif
    235 
    236 #ifndef __ITaskbarList2_FWD_DEFINED__
    237 #define __ITaskbarList2_FWD_DEFINED__
    238 typedef struct ITaskbarList2 ITaskbarList2;
    239 #endif
    240 
    241 #ifndef __ITaskbarList3_FWD_DEFINED__
    242 #define __ITaskbarList3_FWD_DEFINED__
    243 typedef interface ITaskbarList3 ITaskbarList3;
    244 #endif
    245 
    246 #ifndef __ITaskbarList4_FWD_DEFINED__
    247 #define __ITaskbarList4_FWD_DEFINED__
    248 typedef interface ITaskbarList4 ITaskbarList4;
    249 #endif
    250 
    251 #ifndef __IApplicationAssociationRegistrationUI_FWD_DEFINED__
    252 #define __IApplicationAssociationRegistrationUI_FWD_DEFINED__
    253 typedef interface IApplicationAssociationRegistrationUI IApplicationAssociationRegistrationUI;
    254 #endif
    255 
    256 #ifndef __ICDBurn_FWD_DEFINED__
    257 #define __ICDBurn_FWD_DEFINED__
    258 typedef struct ICDBurn ICDBurn;
    259 #endif
    260 
    261 #ifndef __IWizardSite_FWD_DEFINED__
    262 #define __IWizardSite_FWD_DEFINED__
    263 typedef struct IWizardSite IWizardSite;
    264 #endif
    265 
    266 #ifndef __IWizardExtension_FWD_DEFINED__
    267 #define __IWizardExtension_FWD_DEFINED__
    268 typedef struct IWizardExtension IWizardExtension;
    269 #endif
    270 
    271 #ifndef __IWebWizardExtension_FWD_DEFINED__
    272 #define __IWebWizardExtension_FWD_DEFINED__
    273 typedef struct IWebWizardExtension IWebWizardExtension;
    274 #endif
    275 
    276 #ifndef __IPublishingWizard_FWD_DEFINED__
    277 #define __IPublishingWizard_FWD_DEFINED__
    278 typedef struct IPublishingWizard IPublishingWizard;
    279 #endif
    280 
    281 #ifndef __IFolderViewHost_FWD_DEFINED__
    282 #define __IFolderViewHost_FWD_DEFINED__
    283 typedef struct IFolderViewHost IFolderViewHost;
    284 #endif
    285 
    286 #ifndef __IAutoCompleteDropDown_FWD_DEFINED__
    287 #define __IAutoCompleteDropDown_FWD_DEFINED__
    288 typedef struct IAutoCompleteDropDown IAutoCompleteDropDown;
    289 #endif
    290 
    291 #ifndef __IModalWindow_FWD_DEFINED__
    292 #define __IModalWindow_FWD_DEFINED__
    293 typedef struct IModalWindow IModalWindow;
    294 #endif
    295 
    296 #ifndef __IPassportWizard_FWD_DEFINED__
    297 #define __IPassportWizard_FWD_DEFINED__
    298 typedef struct IPassportWizard IPassportWizard;
    299 #endif
    300 
    301 #ifndef __ICDBurnExt_FWD_DEFINED__
    302 #define __ICDBurnExt_FWD_DEFINED__
    303 typedef struct ICDBurnExt ICDBurnExt;
    304 #endif
    305 
    306 #ifndef __IDVGetEnum_FWD_DEFINED__
    307 #define __IDVGetEnum_FWD_DEFINED__
    308 typedef struct IDVGetEnum IDVGetEnum;
    309 #endif
    310 
    311 #ifndef __IInsertItem_FWD_DEFINED__
    312 #define __IInsertItem_FWD_DEFINED__
    313 typedef struct IInsertItem IInsertItem;
    314 #endif
    315 
    316 #ifndef __IDeskBar_FWD_DEFINED__
    317 #define __IDeskBar_FWD_DEFINED__
    318 typedef struct IDeskBar IDeskBar;
    319 #endif
    320 
    321 #ifndef __IMenuBand_FWD_DEFINED__
    322 #define __IMenuBand_FWD_DEFINED__
    323 typedef struct IMenuBand IMenuBand;
    324 #endif
    325 
    326 #ifndef __IFolderBandPriv_FWD_DEFINED__
    327 #define __IFolderBandPriv_FWD_DEFINED__
    328 typedef struct IFolderBandPriv IFolderBandPriv;
    329 #endif
    330 
    331 #ifndef __IBandSite_FWD_DEFINED__
    332 #define __IBandSite_FWD_DEFINED__
    333 typedef struct IBandSite IBandSite;
    334 #endif
    335 
    336 #ifndef __INamespaceWalkCB_FWD_DEFINED__
    337 #define __INamespaceWalkCB_FWD_DEFINED__
    338 typedef struct INamespaceWalkCB INamespaceWalkCB;
    339 #endif
    340 
    341 #ifndef __INamespaceWalk_FWD_DEFINED__
    342 #define __INamespaceWalk_FWD_DEFINED__
    343 typedef struct INamespaceWalk INamespaceWalk;
    344 #endif
    345 
    346 #ifndef __IRegTreeItem_FWD_DEFINED__
    347 #define __IRegTreeItem_FWD_DEFINED__
    348 typedef struct IRegTreeItem IRegTreeItem;
    349 #endif
    350 
    351 #ifndef __IMenuPopup_FWD_DEFINED__
    352 #define __IMenuPopup_FWD_DEFINED__
    353 typedef struct IMenuPopup IMenuPopup;
    354 #endif
    355 
    356 #ifndef __IShellItem2_FWD_DEFINED__
    357 #define __IShellItem2_FWD_DEFINED__
    358 typedef interface IShellItem2 IShellItem2;
    359 #endif
    360 
    361 #ifndef __IImageRecompress_FWD_DEFINED__
    362 #define __IImageRecompress_FWD_DEFINED__
    363 typedef struct IImageRecompress IImageRecompress;
    364 #endif
    365 
    366 #ifndef __IDefViewSafety_FWD_DEFINED__
    367 #define __IDefViewSafety_FWD_DEFINED__
    368 typedef struct IDefViewSafety IDefViewSafety;
    369 #endif
    370 
    371 #ifndef __IContextMenuSite_FWD_DEFINED__
    372 #define __IContextMenuSite_FWD_DEFINED__
    373 typedef struct IContextMenuSite IContextMenuSite;
    374 #endif
    375 
    376 #ifndef __IDelegateFolder_FWD_DEFINED__
    377 #define __IDelegateFolder_FWD_DEFINED__
    378 typedef struct IDelegateFolder IDelegateFolder;
    379 #endif
    380 
    381 #ifndef __IBrowserFrameOptions_FWD_DEFINED__
    382 #define __IBrowserFrameOptions_FWD_DEFINED__
    383 typedef struct IBrowserFrameOptions IBrowserFrameOptions;
    384 #endif
    385 
    386 #ifndef __INewWindowManager_FWD_DEFINED__
    387 #define __INewWindowManager_FWD_DEFINED__
    388 typedef struct INewWindowManager INewWindowManager;
    389 #endif
    390 
    391 #ifndef __IShellMenuCallback_FWD_DEFINED__
    392 #define __IShellMenuCallback_FWD_DEFINED__
    393 typedef struct IShellMenuCallback IShellMenuCallback;
    394 #endif
    395 
    396 #ifndef __IAttachmentExecute_FWD_DEFINED__
    397 #define __IAttachmentExecute_FWD_DEFINED__
    398 typedef struct IAttachmentExecute IAttachmentExecute;
    399 #endif
    400 
    401 #ifndef __IShellMenu_FWD_DEFINED__
    402 #define __IShellMenu_FWD_DEFINED__
    403 typedef struct IShellMenu IShellMenu;
    404 #endif
    405 
    406 #ifndef __IApplicationAssociationRegistration_FWD_DEFINED__
    407 #define __IApplicationAssociationRegistration_FWD_DEFINED__
    408 typedef interface IApplicationAssociationRegistration IApplicationAssociationRegistration;
    409 #endif
    410 
    411 #ifndef __ICustomDestinationList_FWD_DEFINED__
    412 #define __ICustomDestinationList_FWD_DEFINED__
    413 typedef interface ICustomDestinationList ICustomDestinationList;
    414 #endif
    415 
    416 #ifndef __QueryCancelAutoPlay_FWD_DEFINED__
    417 #define __QueryCancelAutoPlay_FWD_DEFINED__
    418 #ifdef __cplusplus
    419 typedef class QueryCancelAutoPlay QueryCancelAutoPlay;
    420 #else
    421 typedef struct QueryCancelAutoPlay QueryCancelAutoPlay;
    422 #endif
    423 #endif
    424 
    425 #ifndef __DriveSizeCategorizer_FWD_DEFINED__
    426 #define __DriveSizeCategorizer_FWD_DEFINED__
    427 #ifdef __cplusplus
    428 typedef class DriveSizeCategorizer DriveSizeCategorizer;
    429 #else
    430 typedef struct DriveSizeCategorizer DriveSizeCategorizer;
    431 #endif
    432 #endif
    433 
    434 #ifndef __DriveTypeCategorizer_FWD_DEFINED__
    435 #define __DriveTypeCategorizer_FWD_DEFINED__
    436 #ifdef __cplusplus
    437 typedef class DriveTypeCategorizer DriveTypeCategorizer;
    438 #else
    439 typedef struct DriveTypeCategorizer DriveTypeCategorizer;
    440 #endif
    441 #endif
    442 
    443 #ifndef __FreeSpaceCategorizer_FWD_DEFINED__
    444 #define __FreeSpaceCategorizer_FWD_DEFINED__
    445 #ifdef __cplusplus
    446 typedef class FreeSpaceCategorizer FreeSpaceCategorizer;
    447 #else
    448 typedef struct FreeSpaceCategorizer FreeSpaceCategorizer;
    449 #endif
    450 #endif
    451 
    452 #ifndef __TimeCategorizer_FWD_DEFINED__
    453 #define __TimeCategorizer_FWD_DEFINED__
    454 #ifdef __cplusplus
    455 typedef class TimeCategorizer TimeCategorizer;
    456 #else
    457 typedef struct TimeCategorizer TimeCategorizer;
    458 #endif
    459 #endif
    460 
    461 #ifndef __SizeCategorizer_FWD_DEFINED__
    462 #define __SizeCategorizer_FWD_DEFINED__
    463 #ifdef __cplusplus
    464 typedef class SizeCategorizer SizeCategorizer;
    465 #else
    466 typedef struct SizeCategorizer SizeCategorizer;
    467 #endif
    468 #endif
    469 
    470 #ifndef __AlphabeticalCategorizer_FWD_DEFINED__
    471 #define __AlphabeticalCategorizer_FWD_DEFINED__
    472 #ifdef __cplusplus
    473 typedef class AlphabeticalCategorizer AlphabeticalCategorizer;
    474 #else
    475 typedef struct AlphabeticalCategorizer AlphabeticalCategorizer;
    476 #endif
    477 #endif
    478 
    479 #ifndef __MergedCategorizer_FWD_DEFINED__
    480 #define __MergedCategorizer_FWD_DEFINED__
    481 #ifdef __cplusplus
    482 typedef class MergedCategorizer MergedCategorizer;
    483 #else
    484 typedef struct MergedCategorizer MergedCategorizer;
    485 #endif
    486 #endif
    487 
    488 #ifndef __ImageProperties_FWD_DEFINED__
    489 #define __ImageProperties_FWD_DEFINED__
    490 #ifdef __cplusplus
    491 typedef class ImageProperties ImageProperties;
    492 #else
    493 typedef struct ImageProperties ImageProperties;
    494 #endif
    495 #endif
    496 
    497 #ifndef __PropertiesUI_FWD_DEFINED__
    498 #define __PropertiesUI_FWD_DEFINED__
    499 #ifdef __cplusplus
    500 typedef class PropertiesUI PropertiesUI;
    501 #else
    502 typedef struct PropertiesUI PropertiesUI;
    503 #endif
    504 #endif
    505 
    506 #ifndef __UserNotification_FWD_DEFINED__
    507 #define __UserNotification_FWD_DEFINED__
    508 #ifdef __cplusplus
    509 typedef class UserNotification UserNotification;
    510 #else
    511 typedef struct UserNotification UserNotification;
    512 #endif
    513 #endif
    514 
    515 #ifndef __UserEventTimerCallback_FWD_DEFINED__
    516 #define __UserEventTimerCallback_FWD_DEFINED__
    517 #ifdef __cplusplus
    518 typedef class UserEventTimerCallback UserEventTimerCallback;
    519 #else
    520 typedef struct UserEventTimerCallback UserEventTimerCallback;
    521 #endif
    522 #endif
    523 
    524 #ifndef __UserEventTimer_FWD_DEFINED__
    525 #define __UserEventTimer_FWD_DEFINED__
    526 #ifdef __cplusplus
    527 typedef class UserEventTimer UserEventTimer;
    528 #else
    529 typedef struct UserEventTimer UserEventTimer;
    530 #endif
    531 #endif
    532 
    533 #ifndef __NetCrawler_FWD_DEFINED__
    534 #define __NetCrawler_FWD_DEFINED__
    535 #ifdef __cplusplus
    536 typedef class NetCrawler NetCrawler;
    537 #else
    538 typedef struct NetCrawler NetCrawler;
    539 #endif
    540 #endif
    541 
    542 #ifndef __CDBurn_FWD_DEFINED__
    543 #define __CDBurn_FWD_DEFINED__
    544 #ifdef __cplusplus
    545 typedef class CDBurn CDBurn;
    546 #else
    547 typedef struct CDBurn CDBurn;
    548 #endif
    549 #endif
    550 
    551 #ifndef __TaskbarList_FWD_DEFINED__
    552 #define __TaskbarList_FWD_DEFINED__
    553 #ifdef __cplusplus
    554 typedef class TaskbarList TaskbarList;
    555 #else
    556 typedef struct TaskbarList TaskbarList;
    557 #endif
    558 #endif
    559 
    560 #ifndef __WebWizardHost_FWD_DEFINED__
    561 #define __WebWizardHost_FWD_DEFINED__
    562 #ifdef __cplusplus
    563 typedef class WebWizardHost WebWizardHost;
    564 #else
    565 typedef struct WebWizardHost WebWizardHost;
    566 #endif
    567 #endif
    568 
    569 #ifndef __PublishDropTarget_FWD_DEFINED__
    570 #define __PublishDropTarget_FWD_DEFINED__
    571 #ifdef __cplusplus
    572 typedef class PublishDropTarget PublishDropTarget;
    573 #else
    574 typedef struct PublishDropTarget PublishDropTarget;
    575 #endif
    576 #endif
    577 
    578 #ifndef __PublishingWizard_FWD_DEFINED__
    579 #define __PublishingWizard_FWD_DEFINED__
    580 #ifdef __cplusplus
    581 typedef class PublishingWizard PublishingWizard;
    582 #else
    583 typedef struct PublishingWizard PublishingWizard;
    584 #endif
    585 #endif
    586 
    587 #ifndef __InternetPrintOrdering_FWD_DEFINED__
    588 #define __InternetPrintOrdering_FWD_DEFINED__
    589 #ifdef __cplusplus
    590 typedef class InternetPrintOrdering InternetPrintOrdering;
    591 #else
    592 typedef struct InternetPrintOrdering InternetPrintOrdering;
    593 #endif
    594 #endif
    595 
    596 #ifndef __FolderViewHost_FWD_DEFINED__
    597 #define __FolderViewHost_FWD_DEFINED__
    598 #ifdef __cplusplus
    599 typedef class FolderViewHost FolderViewHost;
    600 #else
    601 typedef struct FolderViewHost FolderViewHost;
    602 #endif
    603 #endif
    604 
    605 #ifndef __NamespaceWalker_FWD_DEFINED__
    606 #define __NamespaceWalker_FWD_DEFINED__
    607 #ifdef __cplusplus
    608 typedef class NamespaceWalker NamespaceWalker;
    609 #else
    610 typedef struct NamespaceWalker NamespaceWalker;
    611 #endif
    612 #endif
    613 
    614 #ifndef __ImageRecompress_FWD_DEFINED__
    615 #define __ImageRecompress_FWD_DEFINED__
    616 #ifdef __cplusplus
    617 typedef class ImageRecompress ImageRecompress;
    618 #else
    619 typedef struct ImageRecompress ImageRecompress;
    620 #endif
    621 #endif
    622 
    623 #ifndef __TrayBandSiteService_FWD_DEFINED__
    624 #define __TrayBandSiteService_FWD_DEFINED__
    625 #ifdef __cplusplus
    626 typedef class TrayBandSiteService TrayBandSiteService;
    627 #else
    628 typedef struct TrayBandSiteService TrayBandSiteService;
    629 #endif
    630 #endif
    631 
    632 #ifndef __PassportWizard_FWD_DEFINED__
    633 #define __PassportWizard_FWD_DEFINED__
    634 #ifdef __cplusplus
    635 typedef class PassportWizard PassportWizard;
    636 #else
    637 typedef struct PassportWizard PassportWizard;
    638 #endif
    639 #endif
    640 
    641 #ifndef __AttachmentServices_FWD_DEFINED__
    642 #define __AttachmentServices_FWD_DEFINED__
    643 #ifdef __cplusplus
    644 typedef class AttachmentServices AttachmentServices;
    645 #else
    646 typedef struct AttachmentServices AttachmentServices;
    647 #endif
    648 #endif
    649 
    650 #ifndef __IFileDialogEvents_FWD_DEFINED__
    651 #define __IFileDialogEvents_FWD_DEFINED__
    652 typedef interface IFileDialogEvents IFileDialogEvents;
    653 #endif
    654 
    655 #ifndef __IEnumShellItems_FWD_DEFINED__
    656 #define __IEnumShellItems_FWD_DEFINED__
    657 typedef interface IEnumShellItems IEnumShellItems;
    658 #endif
    659 
    660 #ifndef __IShellItemArray_FWD_DEFINED__
    661 #define __IShellItemArray_FWD_DEFINED__
    662 typedef interface IShellItemArray IShellItemArray;
    663 #endif
    664 
    665 #ifndef __IShellItemFilter_FWD_DEFINED__
    666 #define __IShellItemFilter_FWD_DEFINED__
    667 typedef interface IShellItemFilter IShellItemFilter;
    668 #endif
    669 
    670 #ifndef __IFileOperationProgressSink_FWD_DEFINED__
    671 #define __IFileOperationProgressSink_FWD_DEFINED__
    672 typedef interface IFileOperationProgressSink IFileOperationProgressSink;
    673 #endif
    674 
    675 #ifndef __IFileDialog_FWD_DEFINED__
    676 #define __IFileDialog_FWD_DEFINED__
    677 typedef interface IFileDialog IFileDialog;
    678 #endif
    679 
    680 #ifndef __IFileSaveDialog_FWD_DEFINED__
    681 #define __IFileSaveDialog_FWD_DEFINED__
    682 typedef interface IFileSaveDialog IFileSaveDialog;
    683 #endif
    684 
    685 #ifndef __IFileOpenDialog_FWD_DEFINED__
    686 #define __IFileOpenDialog_FWD_DEFINED__
    687 typedef interface IFileOpenDialog IFileOpenDialog;
    688 #endif
    689 
    690 #include "servprov.h"
    691 #include "comcat.h"
    692 #include "propidl.h"
    693 #include "prsht.h"
    694 #include "msxml.h"
    695 #include "propsys.h"
    696 #include "objectarray.h"
    697 
    698 #ifndef _WINRESRC_
    699 #ifndef _WIN32_IE
    700 #define _WIN32_IE 0x0501
    701 #endif
    702 #endif
    703 
    704   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0000_v0_0_c_ifspec;
    705   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0000_v0_0_s_ifspec;
    706 
    707 #ifndef __IPersistFolder_INTERFACE_DEFINED__
    708 #define __IPersistFolder_INTERFACE_DEFINED__
    709   EXTERN_C const IID IID_IPersistFolder;
    710 #if defined(__cplusplus) && !defined(CINTERFACE)
    711   struct IPersistFolder : public IPersist {
    712   public:
    713     virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidl) = 0;
    714   };
    715 #else
    716   typedef struct IPersistFolderVtbl {
    717     BEGIN_INTERFACE
    718       HRESULT (WINAPI *QueryInterface)(IPersistFolder *This,REFIID riid,void **ppvObject);
    719       ULONG (WINAPI *AddRef)(IPersistFolder *This);
    720       ULONG (WINAPI *Release)(IPersistFolder *This);
    721       HRESULT (WINAPI *GetClassID)(IPersistFolder *This,CLSID *pClassID);
    722       HRESULT (WINAPI *Initialize)(IPersistFolder *This,LPCITEMIDLIST pidl);
    723     END_INTERFACE
    724   } IPersistFolderVtbl;
    725   struct IPersistFolder {
    726     CONST_VTBL struct IPersistFolderVtbl *lpVtbl;
    727   };
    728 #ifdef COBJMACROS
    729 #define IPersistFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    730 #define IPersistFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
    731 #define IPersistFolder_Release(This) (This)->lpVtbl->Release(This)
    732 #define IPersistFolder_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
    733 #define IPersistFolder_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
    734 #endif
    735 #endif
    736   HRESULT WINAPI IPersistFolder_Initialize_Proxy(IPersistFolder *This,LPCITEMIDLIST pidl);
    737   void __RPC_STUB IPersistFolder_Initialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    738 #endif
    739   typedef IPersistFolder *LPPERSISTFOLDER;
    740 
    741   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0196_v0_0_c_ifspec;
    742   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0196_v0_0_s_ifspec;
    743 #ifndef __IPersistFolder2_INTERFACE_DEFINED__
    744 #define __IPersistFolder2_INTERFACE_DEFINED__
    745   EXTERN_C const IID IID_IPersistFolder2;
    746 #if defined(__cplusplus) && !defined(CINTERFACE)
    747   struct IPersistFolder2 : public IPersistFolder {
    748   public:
    749     virtual HRESULT WINAPI GetCurFolder(LPITEMIDLIST *ppidl) = 0;
    750   };
    751 #else
    752   typedef struct IPersistFolder2Vtbl {
    753     BEGIN_INTERFACE
    754       HRESULT (WINAPI *QueryInterface)(IPersistFolder2 *This,REFIID riid,void **ppvObject);
    755       ULONG (WINAPI *AddRef)(IPersistFolder2 *This);
    756       ULONG (WINAPI *Release)(IPersistFolder2 *This);
    757       HRESULT (WINAPI *GetClassID)(IPersistFolder2 *This,CLSID *pClassID);
    758       HRESULT (WINAPI *Initialize)(IPersistFolder2 *This,LPCITEMIDLIST pidl);
    759       HRESULT (WINAPI *GetCurFolder)(IPersistFolder2 *This,LPITEMIDLIST *ppidl);
    760     END_INTERFACE
    761   } IPersistFolder2Vtbl;
    762   struct IPersistFolder2 {
    763     CONST_VTBL struct IPersistFolder2Vtbl *lpVtbl;
    764   };
    765 #ifdef COBJMACROS
    766 #define IPersistFolder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    767 #define IPersistFolder2_AddRef(This) (This)->lpVtbl->AddRef(This)
    768 #define IPersistFolder2_Release(This) (This)->lpVtbl->Release(This)
    769 #define IPersistFolder2_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
    770 #define IPersistFolder2_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
    771 #define IPersistFolder2_GetCurFolder(This,ppidl) (This)->lpVtbl->GetCurFolder(This,ppidl)
    772 #endif
    773 #endif
    774   HRESULT WINAPI IPersistFolder2_GetCurFolder_Proxy(IPersistFolder2 *This,LPITEMIDLIST *ppidl);
    775   void __RPC_STUB IPersistFolder2_GetCurFolder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    776 #endif
    777   typedef IPersistFolder2 *LPPERSISTFOLDER2;
    778 
    779   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0197_v0_0_c_ifspec;
    780   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0197_v0_0_s_ifspec;
    781 
    782 #ifndef __IPersistIDList_INTERFACE_DEFINED__
    783 #define __IPersistIDList_INTERFACE_DEFINED__
    784   EXTERN_C const IID IID_IPersistIDList;
    785 #if defined(__cplusplus) && !defined(CINTERFACE)
    786   struct IPersistIDList : public IPersist {
    787   public:
    788     virtual HRESULT WINAPI SetIDList(LPCITEMIDLIST pidl) = 0;
    789     virtual HRESULT WINAPI GetIDList(LPITEMIDLIST *ppidl) = 0;
    790   };
    791 #else
    792   typedef struct IPersistIDListVtbl {
    793     BEGIN_INTERFACE
    794       HRESULT (WINAPI *QueryInterface)(IPersistIDList *This,REFIID riid,void **ppvObject);
    795       ULONG (WINAPI *AddRef)(IPersistIDList *This);
    796       ULONG (WINAPI *Release)(IPersistIDList *This);
    797       HRESULT (WINAPI *GetClassID)(IPersistIDList *This,CLSID *pClassID);
    798       HRESULT (WINAPI *SetIDList)(IPersistIDList *This,LPCITEMIDLIST pidl);
    799       HRESULT (WINAPI *GetIDList)(IPersistIDList *This,LPITEMIDLIST *ppidl);
    800     END_INTERFACE
    801   } IPersistIDListVtbl;
    802   struct IPersistIDList {
    803     CONST_VTBL struct IPersistIDListVtbl *lpVtbl;
    804   };
    805 #ifdef COBJMACROS
    806 #define IPersistIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    807 #define IPersistIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
    808 #define IPersistIDList_Release(This) (This)->lpVtbl->Release(This)
    809 #define IPersistIDList_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
    810 #define IPersistIDList_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
    811 #define IPersistIDList_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
    812 #endif
    813 #endif
    814   HRESULT WINAPI IPersistIDList_SetIDList_Proxy(IPersistIDList *This,LPCITEMIDLIST pidl);
    815   void __RPC_STUB IPersistIDList_SetIDList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    816   HRESULT WINAPI IPersistIDList_GetIDList_Proxy(IPersistIDList *This,LPITEMIDLIST *ppidl);
    817   void __RPC_STUB IPersistIDList_GetIDList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    818 #endif
    819 
    820 #ifndef __IEnumIDList_INTERFACE_DEFINED__
    821 #define __IEnumIDList_INTERFACE_DEFINED__
    822   EXTERN_C const IID IID_IEnumIDList;
    823 #if defined(__cplusplus) && !defined(CINTERFACE)
    824   struct IEnumIDList : public IUnknown {
    825   public:
    826     virtual HRESULT WINAPI Next(ULONG celt,LPITEMIDLIST *rgelt,ULONG *pceltFetched) = 0;
    827     virtual HRESULT WINAPI Skip(ULONG celt) = 0;
    828     virtual HRESULT WINAPI Reset(void) = 0;
    829     virtual HRESULT WINAPI Clone(IEnumIDList **ppenum) = 0;
    830   };
    831 #else
    832   typedef struct IEnumIDListVtbl {
    833     BEGIN_INTERFACE
    834       HRESULT (WINAPI *QueryInterface)(IEnumIDList *This,REFIID riid,void **ppvObject);
    835       ULONG (WINAPI *AddRef)(IEnumIDList *This);
    836       ULONG (WINAPI *Release)(IEnumIDList *This);
    837       HRESULT (WINAPI *Next)(IEnumIDList *This,ULONG celt,LPITEMIDLIST *rgelt,ULONG *pceltFetched);
    838       HRESULT (WINAPI *Skip)(IEnumIDList *This,ULONG celt);
    839       HRESULT (WINAPI *Reset)(IEnumIDList *This);
    840       HRESULT (WINAPI *Clone)(IEnumIDList *This,IEnumIDList **ppenum);
    841     END_INTERFACE
    842   } IEnumIDListVtbl;
    843   struct IEnumIDList {
    844     CONST_VTBL struct IEnumIDListVtbl *lpVtbl;
    845   };
    846 #ifdef COBJMACROS
    847 #define IEnumIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    848 #define IEnumIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
    849 #define IEnumIDList_Release(This) (This)->lpVtbl->Release(This)
    850 #define IEnumIDList_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
    851 #define IEnumIDList_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
    852 #define IEnumIDList_Reset(This) (This)->lpVtbl->Reset(This)
    853 #define IEnumIDList_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
    854 #endif
    855 #endif
    856   HRESULT WINAPI IEnumIDList_Next_Proxy(IEnumIDList *This,ULONG celt,LPITEMIDLIST *rgelt,ULONG *pceltFetched);
    857   void __RPC_STUB IEnumIDList_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    858   HRESULT WINAPI IEnumIDList_Skip_Proxy(IEnumIDList *This,ULONG celt);
    859   void __RPC_STUB IEnumIDList_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    860   HRESULT WINAPI IEnumIDList_Reset_Proxy(IEnumIDList *This);
    861   void __RPC_STUB IEnumIDList_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    862   HRESULT WINAPI IEnumIDList_Clone_Proxy(IEnumIDList *This,IEnumIDList **ppenum);
    863   void __RPC_STUB IEnumIDList_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    864 #endif
    865 
    866   typedef IEnumIDList *LPENUMIDLIST;
    867 
    868   enum _SHGDNF {
    869     SHGDN_NORMAL = 0x0000,SHGDN_INFOLDER = 0x0001,SHGDN_FOREDITING = 0x1000,SHGDN_FORADDRESSBAR = 0x4000,SHGDN_FORPARSING = 0x8000
    870   };
    871   typedef DWORD SHGDNF;
    872 
    873   enum _SHCONTF {
    874     SHCONTF_FOLDERS = 0x0020,SHCONTF_NONFOLDERS = 0x0040,SHCONTF_INCLUDEHIDDEN = 0x0080,SHCONTF_INIT_ON_FIRST_NEXT = 0x0100,
    875     SHCONTF_NETPRINTERSRCH = 0x0200,SHCONTF_SHAREABLE = 0x0400,SHCONTF_STORAGE = 0x0800
    876   };
    877   typedef DWORD SHCONTF;
    878 
    879 #define SHCIDS_ALLFIELDS 0x80000000L
    880 #define SHCIDS_CANONICALONLY 0x10000000L
    881 #define SHCIDS_BITMASK 0xFFFF0000L
    882 #define SHCIDS_COLUMNMASK 0x0000FFFFL
    883 #define SFGAO_CANCOPY DROPEFFECT_COPY
    884 #define SFGAO_CANMOVE DROPEFFECT_MOVE
    885 #define SFGAO_CANLINK DROPEFFECT_LINK
    886 #define SFGAO_STORAGE 0x00000008L
    887 #define SFGAO_CANRENAME 0x00000010L
    888 #define SFGAO_CANDELETE 0x00000020L
    889 #define SFGAO_HASPROPSHEET 0x00000040L
    890 #define SFGAO_DROPTARGET 0x00000100L
    891 #define SFGAO_CAPABILITYMASK 0x00000177L
    892 #define SFGAO_ENCRYPTED 0x00002000L
    893 #define SFGAO_ISSLOW 0x00004000L
    894 #define SFGAO_GHOSTED 0x00008000L
    895 #define SFGAO_LINK 0x00010000L
    896 #define SFGAO_SHARE 0x00020000L
    897 #define SFGAO_READONLY 0x00040000L
    898 #define SFGAO_HIDDEN 0x00080000L
    899 #define SFGAO_DISPLAYATTRMASK 0x000FC000L
    900 #define SFGAO_FILESYSANCESTOR 0x10000000L
    901 #define SFGAO_FOLDER 0x20000000L
    902 #define SFGAO_FILESYSTEM 0x40000000L
    903 #define SFGAO_HASSUBFOLDER 0x80000000L
    904 #define SFGAO_CONTENTSMASK 0x80000000L
    905 #define SFGAO_VALIDATE 0x01000000L
    906 #define SFGAO_REMOVABLE 0x02000000L
    907 #define SFGAO_COMPRESSED 0x04000000L
    908 #define SFGAO_BROWSABLE 0x08000000L
    909 #define SFGAO_NONENUMERATED 0x00100000L
    910 #define SFGAO_NEWCONTENT 0x00200000L
    911 #define SFGAO_CANMONIKER 0x00400000L
    912 #define SFGAO_HASSTORAGE 0x00400000L
    913 #define SFGAO_STREAM 0x00400000L
    914 #define SFGAO_STORAGEANCESTOR 0x00800000L
    915 #define SFGAO_STORAGECAPMASK 0x70C50008L
    916 typedef ULONG SFGAOF;
    917 #define STR_SKIP_BINDING_CLSID L"Skip Binding CLSID"
    918 #define STR_PARSE_PREFER_FOLDER_BROWSING L"Parse Prefer Folder Browsing"
    919 #define STR_DONT_PARSE_RELATIVE L"Don't Parse Relative"
    920 #define STR_PARSE_TRANSLATE_ALIASES L"Parse Translate Aliases"
    921 #define STR_PARSE_SHELL_PROTOCOL_TO_FILE_OBJECTS L"Parse Shell Protocol To File Objects"
    922 
    923   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0199_v0_0_c_ifspec;
    924   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0199_v0_0_s_ifspec;
    925 #ifndef __IShellFolder_INTERFACE_DEFINED__
    926 #define __IShellFolder_INTERFACE_DEFINED__
    927   EXTERN_C const IID IID_IShellFolder;
    928 #if defined(__cplusplus) && !defined(CINTERFACE)
    929   struct IShellFolder : public IUnknown {
    930   public:
    931     virtual HRESULT WINAPI ParseDisplayName(HWND hwnd,LPBC pbc,LPOLESTR pszDisplayName,ULONG *pchEaten,LPITEMIDLIST *ppidl,ULONG *pdwAttributes) = 0;
    932     virtual HRESULT WINAPI EnumObjects(HWND hwnd,SHCONTF grfFlags,IEnumIDList **ppenumIDList) = 0;
    933     virtual HRESULT WINAPI BindToObject(LPCITEMIDLIST pidl,LPBC pbc,REFIID riid,void **ppv) = 0;
    934     virtual HRESULT WINAPI BindToStorage(LPCITEMIDLIST pidl,LPBC pbc,REFIID riid,void **ppv) = 0;
    935     virtual HRESULT WINAPI CompareIDs(LPARAM lParam,LPCITEMIDLIST pidl1,LPCITEMIDLIST pidl2) = 0;
    936     virtual HRESULT WINAPI CreateViewObject(HWND hwndOwner,REFIID riid,void **ppv) = 0;
    937     virtual HRESULT WINAPI GetAttributesOf(UINT cidl,LPCITEMIDLIST *apidl,SFGAOF *rgfInOut) = 0;
    938     virtual HRESULT WINAPI GetUIObjectOf(HWND hwndOwner,UINT cidl,LPCITEMIDLIST *apidl,REFIID riid,UINT *rgfReserved,void **ppv) = 0;
    939     virtual HRESULT WINAPI GetDisplayNameOf(LPCITEMIDLIST pidl,SHGDNF uFlags,STRRET *pName) = 0;
    940     virtual HRESULT WINAPI SetNameOf(HWND hwnd,LPCITEMIDLIST pidl,LPCOLESTR pszName,SHGDNF uFlags,LPITEMIDLIST *ppidlOut) = 0;
    941   };
    942 #else
    943   typedef struct IShellFolderVtbl {
    944     BEGIN_INTERFACE
    945       HRESULT (WINAPI *QueryInterface)(IShellFolder *This,REFIID riid,void **ppvObject);
    946       ULONG (WINAPI *AddRef)(IShellFolder *This);
    947       ULONG (WINAPI *Release)(IShellFolder *This);
    948       HRESULT (WINAPI *ParseDisplayName)(IShellFolder *This,HWND hwnd,LPBC pbc,LPOLESTR pszDisplayName,ULONG *pchEaten,LPITEMIDLIST *ppidl,ULONG *pdwAttributes);
    949       HRESULT (WINAPI *EnumObjects)(IShellFolder *This,HWND hwnd,SHCONTF grfFlags,IEnumIDList **ppenumIDList);
    950       HRESULT (WINAPI *BindToObject)(IShellFolder *This,LPCITEMIDLIST pidl,LPBC pbc,REFIID riid,void **ppv);
    951       HRESULT (WINAPI *BindToStorage)(IShellFolder *This,LPCITEMIDLIST pidl,LPBC pbc,REFIID riid,void **ppv);
    952       HRESULT (WINAPI *CompareIDs)(IShellFolder *This,LPARAM lParam,LPCITEMIDLIST pidl1,LPCITEMIDLIST pidl2);
    953       HRESULT (WINAPI *CreateViewObject)(IShellFolder *This,HWND hwndOwner,REFIID riid,void **ppv);
    954       HRESULT (WINAPI *GetAttributesOf)(IShellFolder *This,UINT cidl,LPCITEMIDLIST *apidl,SFGAOF *rgfInOut);
    955       HRESULT (WINAPI *GetUIObjectOf)(IShellFolder *This,HWND hwndOwner,UINT cidl,LPCITEMIDLIST *apidl,REFIID riid,UINT *rgfReserved,void **ppv);
    956       HRESULT (WINAPI *GetDisplayNameOf)(IShellFolder *This,LPCITEMIDLIST pidl,SHGDNF uFlags,STRRET *pName);
    957       HRESULT (WINAPI *SetNameOf)(IShellFolder *This,HWND hwnd,LPCITEMIDLIST pidl,LPCOLESTR pszName,SHGDNF uFlags,LPITEMIDLIST *ppidlOut);
    958     END_INTERFACE
    959   } IShellFolderVtbl;
    960   struct IShellFolder {
    961     CONST_VTBL struct IShellFolderVtbl *lpVtbl;
    962   };
    963 #ifdef COBJMACROS
    964 #define IShellFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    965 #define IShellFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
    966 #define IShellFolder_Release(This) (This)->lpVtbl->Release(This)
    967 #define IShellFolder_ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes) (This)->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes)
    968 #define IShellFolder_EnumObjects(This,hwnd,grfFlags,ppenumIDList) (This)->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList)
    969 #define IShellFolder_BindToObject(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv)
    970 #define IShellFolder_BindToStorage(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv)
    971 #define IShellFolder_CompareIDs(This,lParam,pidl1,pidl2) (This)->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2)
    972 #define IShellFolder_CreateViewObject(This,hwndOwner,riid,ppv) (This)->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv)
    973 #define IShellFolder_GetAttributesOf(This,cidl,apidl,rgfInOut) (This)->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut)
    974 #define IShellFolder_GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv) (This)->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv)
    975 #define IShellFolder_GetDisplayNameOf(This,pidl,uFlags,pName) (This)->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName)
    976 #define IShellFolder_SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut) (This)->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut)
    977 #endif
    978 #endif
    979   HRESULT WINAPI IShellFolder_ParseDisplayName_Proxy(IShellFolder *This,HWND hwnd,LPBC pbc,LPOLESTR pszDisplayName,ULONG *pchEaten,LPITEMIDLIST *ppidl,ULONG *pdwAttributes);
    980   void __RPC_STUB IShellFolder_ParseDisplayName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    981   HRESULT WINAPI IShellFolder_EnumObjects_Proxy(IShellFolder *This,HWND hwnd,SHCONTF grfFlags,IEnumIDList **ppenumIDList);
    982   void __RPC_STUB IShellFolder_EnumObjects_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    983   HRESULT WINAPI IShellFolder_BindToObject_Proxy(IShellFolder *This,LPCITEMIDLIST pidl,LPBC pbc,REFIID riid,void **ppv);
    984   void __RPC_STUB IShellFolder_BindToObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    985   HRESULT WINAPI IShellFolder_BindToStorage_Proxy(IShellFolder *This,LPCITEMIDLIST pidl,LPBC pbc,REFIID riid,void **ppv);
    986   void __RPC_STUB IShellFolder_BindToStorage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    987   HRESULT WINAPI IShellFolder_CompareIDs_Proxy(IShellFolder *This,LPARAM lParam,LPCITEMIDLIST pidl1,LPCITEMIDLIST pidl2);
    988   void __RPC_STUB IShellFolder_CompareIDs_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    989   HRESULT WINAPI IShellFolder_CreateViewObject_Proxy(IShellFolder *This,HWND hwndOwner,REFIID riid,void **ppv);
    990   void __RPC_STUB IShellFolder_CreateViewObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    991   HRESULT WINAPI IShellFolder_GetAttributesOf_Proxy(IShellFolder *This,UINT cidl,LPCITEMIDLIST *apidl,SFGAOF *rgfInOut);
    992   void __RPC_STUB IShellFolder_GetAttributesOf_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    993   HRESULT WINAPI IShellFolder_GetUIObjectOf_Proxy(IShellFolder *This,HWND hwndOwner,UINT cidl,LPCITEMIDLIST *apidl,REFIID riid,UINT *rgfReserved,void **ppv);
    994   void __RPC_STUB IShellFolder_GetUIObjectOf_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    995   HRESULT WINAPI IShellFolder_GetDisplayNameOf_Proxy(IShellFolder *This,LPCITEMIDLIST pidl,SHGDNF uFlags,STRRET *pName);
    996   void __RPC_STUB IShellFolder_GetDisplayNameOf_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    997   HRESULT WINAPI IShellFolder_SetNameOf_Proxy(IShellFolder *This,HWND hwnd,LPCITEMIDLIST pidl,LPCOLESTR pszName,SHGDNF uFlags,LPITEMIDLIST *ppidlOut);
    998   void __RPC_STUB IShellFolder_SetNameOf_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
    999 #endif
   1000 
   1001   typedef IShellFolder *LPSHELLFOLDER;
   1002 
   1003 #if (_WIN32_IE >= 0x0500)
   1004   typedef struct tagEXTRASEARCH {
   1005     GUID guidSearch;
   1006     WCHAR wszFriendlyName[80];
   1007     WCHAR wszUrl[2084];
   1008   } EXTRASEARCH;
   1009   typedef struct tagEXTRASEARCH *LPEXTRASEARCH;
   1010   typedef struct IEnumExtraSearch *LPENUMEXTRASEARCH;
   1011 
   1012   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0200_v0_0_c_ifspec;
   1013   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0200_v0_0_s_ifspec;
   1014 
   1015 #ifndef __IEnumExtraSearch_INTERFACE_DEFINED__
   1016 #define __IEnumExtraSearch_INTERFACE_DEFINED__
   1017   EXTERN_C const IID IID_IEnumExtraSearch;
   1018 #if defined(__cplusplus) && !defined(CINTERFACE)
   1019   struct IEnumExtraSearch : public IUnknown {
   1020   public:
   1021     virtual HRESULT WINAPI Next(ULONG celt,EXTRASEARCH *rgelt,ULONG *pceltFetched) = 0;
   1022     virtual HRESULT WINAPI Skip(ULONG celt) = 0;
   1023     virtual HRESULT WINAPI Reset(void) = 0;
   1024     virtual HRESULT WINAPI Clone(IEnumExtraSearch **ppenum) = 0;
   1025   };
   1026 #else
   1027   typedef struct IEnumExtraSearchVtbl {
   1028     BEGIN_INTERFACE
   1029       HRESULT (WINAPI *QueryInterface)(IEnumExtraSearch *This,REFIID riid,void **ppvObject);
   1030       ULONG (WINAPI *AddRef)(IEnumExtraSearch *This);
   1031       ULONG (WINAPI *Release)(IEnumExtraSearch *This);
   1032       HRESULT (WINAPI *Next)(IEnumExtraSearch *This,ULONG celt,EXTRASEARCH *rgelt,ULONG *pceltFetched);
   1033       HRESULT (WINAPI *Skip)(IEnumExtraSearch *This,ULONG celt);
   1034       HRESULT (WINAPI *Reset)(IEnumExtraSearch *This);
   1035       HRESULT (WINAPI *Clone)(IEnumExtraSearch *This,IEnumExtraSearch **ppenum);
   1036     END_INTERFACE
   1037   } IEnumExtraSearchVtbl;
   1038   struct IEnumExtraSearch {
   1039     CONST_VTBL struct IEnumExtraSearchVtbl *lpVtbl;
   1040   };
   1041 #ifdef COBJMACROS
   1042 #define IEnumExtraSearch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1043 #define IEnumExtraSearch_AddRef(This) (This)->lpVtbl->AddRef(This)
   1044 #define IEnumExtraSearch_Release(This) (This)->lpVtbl->Release(This)
   1045 #define IEnumExtraSearch_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
   1046 #define IEnumExtraSearch_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
   1047 #define IEnumExtraSearch_Reset(This) (This)->lpVtbl->Reset(This)
   1048 #define IEnumExtraSearch_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
   1049 #endif
   1050 #endif
   1051   HRESULT WINAPI IEnumExtraSearch_Next_Proxy(IEnumExtraSearch *This,ULONG celt,EXTRASEARCH *rgelt,ULONG *pceltFetched);
   1052   void __RPC_STUB IEnumExtraSearch_Next_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1053   HRESULT WINAPI IEnumExtraSearch_Skip_Proxy(IEnumExtraSearch *This,ULONG celt);
   1054   void __RPC_STUB IEnumExtraSearch_Skip_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1055   HRESULT WINAPI IEnumExtraSearch_Reset_Proxy(IEnumExtraSearch *This);
   1056   void __RPC_STUB IEnumExtraSearch_Reset_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1057   HRESULT WINAPI IEnumExtraSearch_Clone_Proxy(IEnumExtraSearch *This,IEnumExtraSearch **ppenum);
   1058   void __RPC_STUB IEnumExtraSearch_Clone_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1059 #endif
   1060 
   1061   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0201_v0_0_c_ifspec;
   1062   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0201_v0_0_s_ifspec;
   1063 #ifndef __IShellFolder2_INTERFACE_DEFINED__
   1064 #define __IShellFolder2_INTERFACE_DEFINED__
   1065   EXTERN_C const IID IID_IShellFolder2;
   1066 #if defined(__cplusplus) && !defined(CINTERFACE)
   1067   struct IShellFolder2 : public IShellFolder {
   1068   public:
   1069     virtual HRESULT WINAPI GetDefaultSearchGUID(GUID *pguid) = 0;
   1070     virtual HRESULT WINAPI EnumSearches(IEnumExtraSearch **ppenum) = 0;
   1071     virtual HRESULT WINAPI GetDefaultColumn(DWORD dwRes,ULONG *pSort,ULONG *pDisplay) = 0;
   1072     virtual HRESULT WINAPI GetDefaultColumnState(UINT iColumn,SHCOLSTATEF *pcsFlags) = 0;
   1073     virtual HRESULT WINAPI GetDetailsEx(LPCITEMIDLIST pidl,const SHCOLUMNID *pscid,VARIANT *pv) = 0;
   1074     virtual HRESULT WINAPI GetDetailsOf(LPCITEMIDLIST pidl,UINT iColumn,SHELLDETAILS *psd) = 0;
   1075     virtual HRESULT WINAPI MapColumnToSCID(UINT iColumn,SHCOLUMNID *pscid) = 0;
   1076   };
   1077 #else
   1078   typedef struct IShellFolder2Vtbl {
   1079     BEGIN_INTERFACE
   1080       HRESULT (WINAPI *QueryInterface)(IShellFolder2 *This,REFIID riid,void **ppvObject);
   1081       ULONG (WINAPI *AddRef)(IShellFolder2 *This);
   1082       ULONG (WINAPI *Release)(IShellFolder2 *This);
   1083       HRESULT (WINAPI *ParseDisplayName)(IShellFolder2 *This,HWND hwnd,LPBC pbc,LPOLESTR pszDisplayName,ULONG *pchEaten,LPITEMIDLIST *ppidl,ULONG *pdwAttributes);
   1084       HRESULT (WINAPI *EnumObjects)(IShellFolder2 *This,HWND hwnd,SHCONTF grfFlags,IEnumIDList **ppenumIDList);
   1085       HRESULT (WINAPI *BindToObject)(IShellFolder2 *This,LPCITEMIDLIST pidl,LPBC pbc,REFIID riid,void **ppv);
   1086       HRESULT (WINAPI *BindToStorage)(IShellFolder2 *This,LPCITEMIDLIST pidl,LPBC pbc,REFIID riid,void **ppv);
   1087       HRESULT (WINAPI *CompareIDs)(IShellFolder2 *This,LPARAM lParam,LPCITEMIDLIST pidl1,LPCITEMIDLIST pidl2);
   1088       HRESULT (WINAPI *CreateViewObject)(IShellFolder2 *This,HWND hwndOwner,REFIID riid,void **ppv);
   1089       HRESULT (WINAPI *GetAttributesOf)(IShellFolder2 *This,UINT cidl,LPCITEMIDLIST *apidl,SFGAOF *rgfInOut);
   1090       HRESULT (WINAPI *GetUIObjectOf)(IShellFolder2 *This,HWND hwndOwner,UINT cidl,LPCITEMIDLIST *apidl,REFIID riid,UINT *rgfReserved,void **ppv);
   1091       HRESULT (WINAPI *GetDisplayNameOf)(IShellFolder2 *This,LPCITEMIDLIST pidl,SHGDNF uFlags,STRRET *pName);
   1092       HRESULT (WINAPI *SetNameOf)(IShellFolder2 *This,HWND hwnd,LPCITEMIDLIST pidl,LPCOLESTR pszName,SHGDNF uFlags,LPITEMIDLIST *ppidlOut);
   1093       HRESULT (WINAPI *GetDefaultSearchGUID)(IShellFolder2 *This,GUID *pguid);
   1094       HRESULT (WINAPI *EnumSearches)(IShellFolder2 *This,IEnumExtraSearch **ppenum);
   1095       HRESULT (WINAPI *GetDefaultColumn)(IShellFolder2 *This,DWORD dwRes,ULONG *pSort,ULONG *pDisplay);
   1096       HRESULT (WINAPI *GetDefaultColumnState)(IShellFolder2 *This,UINT iColumn,SHCOLSTATEF *pcsFlags);
   1097       HRESULT (WINAPI *GetDetailsEx)(IShellFolder2 *This,LPCITEMIDLIST pidl,const SHCOLUMNID *pscid,VARIANT *pv);
   1098       HRESULT (WINAPI *GetDetailsOf)(IShellFolder2 *This,LPCITEMIDLIST pidl,UINT iColumn,SHELLDETAILS *psd);
   1099       HRESULT (WINAPI *MapColumnToSCID)(IShellFolder2 *This,UINT iColumn,SHCOLUMNID *pscid);
   1100     END_INTERFACE
   1101   } IShellFolder2Vtbl;
   1102   struct IShellFolder2 {
   1103     CONST_VTBL struct IShellFolder2Vtbl *lpVtbl;
   1104   };
   1105 #ifdef COBJMACROS
   1106 #define IShellFolder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1107 #define IShellFolder2_AddRef(This) (This)->lpVtbl->AddRef(This)
   1108 #define IShellFolder2_Release(This) (This)->lpVtbl->Release(This)
   1109 #define IShellFolder2_ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes) (This)->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes)
   1110 #define IShellFolder2_EnumObjects(This,hwnd,grfFlags,ppenumIDList) (This)->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList)
   1111 #define IShellFolder2_BindToObject(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv)
   1112 #define IShellFolder2_BindToStorage(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv)
   1113 #define IShellFolder2_CompareIDs(This,lParam,pidl1,pidl2) (This)->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2)
   1114 #define IShellFolder2_CreateViewObject(This,hwndOwner,riid,ppv) (This)->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv)
   1115 #define IShellFolder2_GetAttributesOf(This,cidl,apidl,rgfInOut) (This)->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut)
   1116 #define IShellFolder2_GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv) (This)->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv)
   1117 #define IShellFolder2_GetDisplayNameOf(This,pidl,uFlags,pName) (This)->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName)
   1118 #define IShellFolder2_SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut) (This)->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut)
   1119 #define IShellFolder2_GetDefaultSearchGUID(This,pguid) (This)->lpVtbl->GetDefaultSearchGUID(This,pguid)
   1120 #define IShellFolder2_EnumSearches(This,ppenum) (This)->lpVtbl->EnumSearches(This,ppenum)
   1121 #define IShellFolder2_GetDefaultColumn(This,dwRes,pSort,pDisplay) (This)->lpVtbl->GetDefaultColumn(This,dwRes,pSort,pDisplay)
   1122 #define IShellFolder2_GetDefaultColumnState(This,iColumn,pcsFlags) (This)->lpVtbl->GetDefaultColumnState(This,iColumn,pcsFlags)
   1123 #define IShellFolder2_GetDetailsEx(This,pidl,pscid,pv) (This)->lpVtbl->GetDetailsEx(This,pidl,pscid,pv)
   1124 #define IShellFolder2_GetDetailsOf(This,pidl,iColumn,psd) (This)->lpVtbl->GetDetailsOf(This,pidl,iColumn,psd)
   1125 #define IShellFolder2_MapColumnToSCID(This,iColumn,pscid) (This)->lpVtbl->MapColumnToSCID(This,iColumn,pscid)
   1126 #endif
   1127 #endif
   1128   HRESULT WINAPI IShellFolder2_GetDefaultSearchGUID_Proxy(IShellFolder2 *This,GUID *pguid);
   1129   void __RPC_STUB IShellFolder2_GetDefaultSearchGUID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1130   HRESULT WINAPI IShellFolder2_EnumSearches_Proxy(IShellFolder2 *This,IEnumExtraSearch **ppenum);
   1131   void __RPC_STUB IShellFolder2_EnumSearches_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1132   HRESULT WINAPI IShellFolder2_GetDefaultColumn_Proxy(IShellFolder2 *This,DWORD dwRes,ULONG *pSort,ULONG *pDisplay);
   1133   void __RPC_STUB IShellFolder2_GetDefaultColumn_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1134   HRESULT WINAPI IShellFolder2_GetDefaultColumnState_Proxy(IShellFolder2 *This,UINT iColumn,SHCOLSTATEF *pcsFlags);
   1135   void __RPC_STUB IShellFolder2_GetDefaultColumnState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1136   HRESULT WINAPI IShellFolder2_GetDetailsEx_Proxy(IShellFolder2 *This,LPCITEMIDLIST pidl,const SHCOLUMNID *pscid,VARIANT *pv);
   1137   void __RPC_STUB IShellFolder2_GetDetailsEx_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1138   HRESULT WINAPI IShellFolder2_GetDetailsOf_Proxy(IShellFolder2 *This,LPCITEMIDLIST pidl,UINT iColumn,SHELLDETAILS *psd);
   1139   void __RPC_STUB IShellFolder2_GetDetailsOf_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1140   HRESULT WINAPI IShellFolder2_MapColumnToSCID_Proxy(IShellFolder2 *This,UINT iColumn,SHCOLUMNID *pscid);
   1141   void __RPC_STUB IShellFolder2_MapColumnToSCID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1142 #endif
   1143 #endif
   1144   typedef char *LPVIEWSETTINGS;
   1145 
   1146   typedef enum __MIDL___MIDL_itf_shobjidl_0202_0001 {
   1147     FWF_AUTOARRANGE = 0x1,FWF_ABBREVIATEDNAMES = 0x2,FWF_SNAPTOGRID = 0x4,FWF_OWNERDATA = 0x8,FWF_BESTFITWINDOW = 0x10,FWF_DESKTOP = 0x20,
   1148     FWF_SINGLESEL = 0x40,FWF_NOSUBFOLDERS = 0x80,FWF_TRANSPARENT = 0x100,FWF_NOCLIENTEDGE = 0x200,FWF_NOSCROLL = 0x400,FWF_ALIGNLEFT = 0x800,
   1149     FWF_NOICONS = 0x1000,FWF_SHOWSELALWAYS = 0x2000,FWF_NOVISIBLE = 0x4000,FWF_SINGLECLICKACTIVATE = 0x8000,FWF_NOWEBVIEW = 0x10000,
   1150     FWF_HIDEFILENAMES = 0x20000,FWF_CHECKSELECT = 0x40000
   1151   } FOLDERFLAGS;
   1152 
   1153   typedef enum __MIDL___MIDL_itf_shobjidl_0202_0002 {
   1154     FVM_FIRST = 1,FVM_ICON = 1,FVM_SMALLICON = 2,FVM_LIST = 3,FVM_DETAILS = 4,FVM_THUMBNAIL = 5,FVM_TILE = 6,FVM_THUMBSTRIP = 7,FVM_LAST = 7
   1155   } FOLDERVIEWMODE;
   1156 
   1157   typedef struct __MIDL___MIDL_itf_shobjidl_0202_0003 {
   1158     UINT ViewMode;
   1159     UINT fFlags;
   1160   } FOLDERSETTINGS;
   1161 
   1162   typedef FOLDERSETTINGS *LPFOLDERSETTINGS;
   1163   typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
   1164   typedef FOLDERSETTINGS *PFOLDERSETTINGS;
   1165 
   1166 #define SVSI_DESELECT 0x00000000
   1167 #define SVSI_SELECT 0x00000001
   1168 #define SVSI_EDIT 0x00000003
   1169 #define SVSI_DESELECTOTHERS 0x00000004
   1170 #define SVSI_ENSUREVISIBLE 0x00000008
   1171 #define SVSI_FOCUSED 0x00000010
   1172 #define SVSI_TRANSLATEPT 0x00000020
   1173 #define SVSI_SELECTIONMARK 0x00000040
   1174 #define SVSI_POSITIONITEM 0x00000080
   1175 #define SVSI_CHECK 0x00000100
   1176 #define SVSI_NOSTATECHANGE 0x80000000
   1177   typedef UINT SVSIF;
   1178 
   1179   typedef enum __MIDL___MIDL_itf_shobjidl_0202_0004 {
   1180     SVGIO_BACKGROUND = 0,SVGIO_SELECTION = 0x1,SVGIO_ALLVIEW = 0x2,SVGIO_CHECKED = 0x3,SVGIO_TYPE_MASK = 0xf,SVGIO_FLAG_VIEWORDER = 0x80000000
   1181   } SVGIO;
   1182 
   1183   typedef enum __MIDL___MIDL_itf_shobjidl_0202_0005 {
   1184     SVUIA_DEACTIVATE = 0,SVUIA_ACTIVATE_NOFOCUS = 1,SVUIA_ACTIVATE_FOCUS = 2,SVUIA_INPLACEACTIVATE = 3
   1185   } SVUIA_STATUS;
   1186 
   1187 #ifdef _FIX_ENABLEMODELESS_CONFLICT
   1188 #define EnableModeless EnableModelessSV
   1189 #endif
   1190 #ifdef _NEVER_
   1191   typedef LPARAM LPFNSVADDPROPSHEETPAGE;
   1192 #else
   1193 #include <prsht.h>
   1194   typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;
   1195 #endif
   1196 
   1197   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0202_v0_0_c_ifspec;
   1198   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0202_v0_0_s_ifspec;
   1199 #ifndef __IShellView_INTERFACE_DEFINED__
   1200 #define __IShellView_INTERFACE_DEFINED__
   1201   typedef IShellView *LPSHELLVIEW;
   1202 
   1203   EXTERN_C const IID IID_IShellView;
   1204 #if defined(__cplusplus) && !defined(CINTERFACE)
   1205   struct IShellView : public IOleWindow {
   1206   public:
   1207     virtual HRESULT WINAPI TranslateAccelerator(MSG *pmsg) = 0;
   1208     virtual HRESULT WINAPI EnableModeless(WINBOOL fEnable) = 0;
   1209     virtual HRESULT WINAPI UIActivate(UINT uState) = 0;
   1210     virtual HRESULT WINAPI Refresh(void) = 0;
   1211     virtual HRESULT WINAPI CreateViewWindow(IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd) = 0;
   1212     virtual HRESULT WINAPI DestroyViewWindow(void) = 0;
   1213     virtual HRESULT WINAPI GetCurrentInfo(LPFOLDERSETTINGS pfs) = 0;
   1214     virtual HRESULT WINAPI AddPropertySheetPages(DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam) = 0;
   1215     virtual HRESULT WINAPI SaveViewState(void) = 0;
   1216     virtual HRESULT WINAPI SelectItem(LPCITEMIDLIST pidlItem,SVSIF uFlags) = 0;
   1217     virtual HRESULT WINAPI GetItemObject(UINT uItem,REFIID riid,void **ppv) = 0;
   1218   };
   1219 #else
   1220   typedef struct IShellViewVtbl {
   1221     BEGIN_INTERFACE
   1222       HRESULT (WINAPI *QueryInterface)(IShellView *This,REFIID riid,void **ppvObject);
   1223       ULONG (WINAPI *AddRef)(IShellView *This);
   1224       ULONG (WINAPI *Release)(IShellView *This);
   1225       HRESULT (WINAPI *GetWindow)(IShellView *This,HWND *phwnd);
   1226       HRESULT (WINAPI *ContextSensitiveHelp)(IShellView *This,WINBOOL fEnterMode);
   1227       HRESULT (WINAPI *TranslateAccelerator)(IShellView *This,MSG *pmsg);
   1228       HRESULT (WINAPI *EnableModeless)(IShellView *This,WINBOOL fEnable);
   1229       HRESULT (WINAPI *UIActivate)(IShellView *This,UINT uState);
   1230       HRESULT (WINAPI *Refresh)(IShellView *This);
   1231       HRESULT (WINAPI *CreateViewWindow)(IShellView *This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd);
   1232       HRESULT (WINAPI *DestroyViewWindow)(IShellView *This);
   1233       HRESULT (WINAPI *GetCurrentInfo)(IShellView *This,LPFOLDERSETTINGS pfs);
   1234       HRESULT (WINAPI *AddPropertySheetPages)(IShellView *This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam);
   1235       HRESULT (WINAPI *SaveViewState)(IShellView *This);
   1236       HRESULT (WINAPI *SelectItem)(IShellView *This,LPCITEMIDLIST pidlItem,SVSIF uFlags);
   1237       HRESULT (WINAPI *GetItemObject)(IShellView *This,UINT uItem,REFIID riid,void **ppv);
   1238     END_INTERFACE
   1239   } IShellViewVtbl;
   1240   struct IShellView {
   1241     CONST_VTBL struct IShellViewVtbl *lpVtbl;
   1242   };
   1243 #ifdef COBJMACROS
   1244 #define IShellView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1245 #define IShellView_AddRef(This) (This)->lpVtbl->AddRef(This)
   1246 #define IShellView_Release(This) (This)->lpVtbl->Release(This)
   1247 #define IShellView_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   1248 #define IShellView_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   1249 #define IShellView_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
   1250 #define IShellView_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
   1251 #define IShellView_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
   1252 #define IShellView_Refresh(This) (This)->lpVtbl->Refresh(This)
   1253 #define IShellView_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
   1254 #define IShellView_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
   1255 #define IShellView_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
   1256 #define IShellView_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
   1257 #define IShellView_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
   1258 #define IShellView_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
   1259 #define IShellView_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
   1260 #endif
   1261 #endif
   1262   HRESULT WINAPI IShellView_TranslateAccelerator_Proxy(IShellView *This,MSG *pmsg);
   1263   void __RPC_STUB IShellView_TranslateAccelerator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1264   HRESULT WINAPI IShellView_EnableModeless_Proxy(IShellView *This,WINBOOL fEnable);
   1265   void __RPC_STUB IShellView_EnableModeless_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1266   HRESULT WINAPI IShellView_UIActivate_Proxy(IShellView *This,UINT uState);
   1267   void __RPC_STUB IShellView_UIActivate_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1268   HRESULT WINAPI IShellView_Refresh_Proxy(IShellView *This);
   1269   void __RPC_STUB IShellView_Refresh_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1270   HRESULT WINAPI IShellView_CreateViewWindow_Proxy(IShellView *This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd);
   1271   void __RPC_STUB IShellView_CreateViewWindow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1272   HRESULT WINAPI IShellView_DestroyViewWindow_Proxy(IShellView *This);
   1273   void __RPC_STUB IShellView_DestroyViewWindow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1274   HRESULT WINAPI IShellView_GetCurrentInfo_Proxy(IShellView *This,LPFOLDERSETTINGS pfs);
   1275   void __RPC_STUB IShellView_GetCurrentInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1276   HRESULT WINAPI IShellView_AddPropertySheetPages_Proxy(IShellView *This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam);
   1277   void __RPC_STUB IShellView_AddPropertySheetPages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1278   HRESULT WINAPI IShellView_SaveViewState_Proxy(IShellView *This);
   1279   void __RPC_STUB IShellView_SaveViewState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1280   HRESULT WINAPI IShellView_SelectItem_Proxy(IShellView *This,LPCITEMIDLIST pidlItem,SVSIF uFlags);
   1281   void __RPC_STUB IShellView_SelectItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1282   HRESULT WINAPI IShellView_GetItemObject_Proxy(IShellView *This,UINT uItem,REFIID riid,void **ppv);
   1283   void __RPC_STUB IShellView_GetItemObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1284 #endif
   1285 
   1286 #ifndef __IShellView2_INTERFACE_DEFINED__
   1287 #define __IShellView2_INTERFACE_DEFINED__
   1288   typedef GUID SHELLVIEWID;
   1289 
   1290 #define SV2GV_CURRENTVIEW ((UINT)-1)
   1291 #define SV2GV_DEFAULTVIEW ((UINT)-2)
   1292 #include <pshpack8.h>
   1293   typedef struct _SV2CVW2_PARAMS {
   1294     DWORD cbSize;
   1295     IShellView *psvPrev;
   1296     LPCFOLDERSETTINGS pfs;
   1297     IShellBrowser *psbOwner;
   1298     RECT *prcView;
   1299     const SHELLVIEWID *pvid;
   1300     HWND hwndView;
   1301   } SV2CVW2_PARAMS;
   1302 
   1303   typedef struct _SV2CVW2_PARAMS *LPSV2CVW2_PARAMS;
   1304 
   1305 #include <poppack.h>
   1306 
   1307   EXTERN_C const IID IID_IShellView2;
   1308 #if defined(__cplusplus) && !defined(CINTERFACE)
   1309   struct IShellView2 : public IShellView {
   1310   public:
   1311     virtual HRESULT WINAPI GetView(SHELLVIEWID *pvid,ULONG uView) = 0;
   1312     virtual HRESULT WINAPI CreateViewWindow2(LPSV2CVW2_PARAMS lpParams) = 0;
   1313     virtual HRESULT WINAPI HandleRename(LPCITEMIDLIST pidlNew) = 0;
   1314     virtual HRESULT WINAPI SelectAndPositionItem(LPCITEMIDLIST pidlItem,UINT uFlags,POINT *ppt) = 0;
   1315   };
   1316 #else
   1317   typedef struct IShellView2Vtbl {
   1318     BEGIN_INTERFACE
   1319       HRESULT (WINAPI *QueryInterface)(IShellView2 *This,REFIID riid,void **ppvObject);
   1320       ULONG (WINAPI *AddRef)(IShellView2 *This);
   1321       ULONG (WINAPI *Release)(IShellView2 *This);
   1322       HRESULT (WINAPI *GetWindow)(IShellView2 *This,HWND *phwnd);
   1323       HRESULT (WINAPI *ContextSensitiveHelp)(IShellView2 *This,WINBOOL fEnterMode);
   1324       HRESULT (WINAPI *TranslateAccelerator)(IShellView2 *This,MSG *pmsg);
   1325       HRESULT (WINAPI *EnableModeless)(IShellView2 *This,WINBOOL fEnable);
   1326       HRESULT (WINAPI *UIActivate)(IShellView2 *This,UINT uState);
   1327       HRESULT (WINAPI *Refresh)(IShellView2 *This);
   1328       HRESULT (WINAPI *CreateViewWindow)(IShellView2 *This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd);
   1329       HRESULT (WINAPI *DestroyViewWindow)(IShellView2 *This);
   1330       HRESULT (WINAPI *GetCurrentInfo)(IShellView2 *This,LPFOLDERSETTINGS pfs);
   1331       HRESULT (WINAPI *AddPropertySheetPages)(IShellView2 *This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam);
   1332       HRESULT (WINAPI *SaveViewState)(IShellView2 *This);
   1333       HRESULT (WINAPI *SelectItem)(IShellView2 *This,LPCITEMIDLIST pidlItem,SVSIF uFlags);
   1334       HRESULT (WINAPI *GetItemObject)(IShellView2 *This,UINT uItem,REFIID riid,void **ppv);
   1335       HRESULT (WINAPI *GetView)(IShellView2 *This,SHELLVIEWID *pvid,ULONG uView);
   1336       HRESULT (WINAPI *CreateViewWindow2)(IShellView2 *This,LPSV2CVW2_PARAMS lpParams);
   1337       HRESULT (WINAPI *HandleRename)(IShellView2 *This,LPCITEMIDLIST pidlNew);
   1338       HRESULT (WINAPI *SelectAndPositionItem)(IShellView2 *This,LPCITEMIDLIST pidlItem,UINT uFlags,POINT *ppt);
   1339     END_INTERFACE
   1340   } IShellView2Vtbl;
   1341   struct IShellView2 {
   1342     CONST_VTBL struct IShellView2Vtbl *lpVtbl;
   1343   };
   1344 #ifdef COBJMACROS
   1345 #define IShellView2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1346 #define IShellView2_AddRef(This) (This)->lpVtbl->AddRef(This)
   1347 #define IShellView2_Release(This) (This)->lpVtbl->Release(This)
   1348 #define IShellView2_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   1349 #define IShellView2_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   1350 #define IShellView2_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
   1351 #define IShellView2_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
   1352 #define IShellView2_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
   1353 #define IShellView2_Refresh(This) (This)->lpVtbl->Refresh(This)
   1354 #define IShellView2_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
   1355 #define IShellView2_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
   1356 #define IShellView2_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
   1357 #define IShellView2_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
   1358 #define IShellView2_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
   1359 #define IShellView2_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
   1360 #define IShellView2_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
   1361 #define IShellView2_GetView(This,pvid,uView) (This)->lpVtbl->GetView(This,pvid,uView)
   1362 #define IShellView2_CreateViewWindow2(This,lpParams) (This)->lpVtbl->CreateViewWindow2(This,lpParams)
   1363 #define IShellView2_HandleRename(This,pidlNew) (This)->lpVtbl->HandleRename(This,pidlNew)
   1364 #define IShellView2_SelectAndPositionItem(This,pidlItem,uFlags,ppt) (This)->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt)
   1365 #endif
   1366 #endif
   1367   HRESULT WINAPI IShellView2_GetView_Proxy(IShellView2 *This,SHELLVIEWID *pvid,ULONG uView);
   1368   void __RPC_STUB IShellView2_GetView_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1369   HRESULT WINAPI IShellView2_CreateViewWindow2_Proxy(IShellView2 *This,LPSV2CVW2_PARAMS lpParams);
   1370   void __RPC_STUB IShellView2_CreateViewWindow2_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1371   HRESULT WINAPI IShellView2_HandleRename_Proxy(IShellView2 *This,LPCITEMIDLIST pidlNew);
   1372   void __RPC_STUB IShellView2_HandleRename_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1373   HRESULT WINAPI IShellView2_SelectAndPositionItem_Proxy(IShellView2 *This,LPCITEMIDLIST pidlItem,UINT uFlags,POINT *ppt);
   1374   void __RPC_STUB IShellView2_SelectAndPositionItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1375 #endif
   1376 
   1377 #ifndef __IFolderView_INTERFACE_DEFINED__
   1378 #define __IFolderView_INTERFACE_DEFINED__
   1379   EXTERN_C const IID IID_IFolderView;
   1380 #if defined(__cplusplus) && !defined(CINTERFACE)
   1381   struct IFolderView : public IUnknown {
   1382   public:
   1383     virtual HRESULT WINAPI GetCurrentViewMode(UINT *pViewMode) = 0;
   1384     virtual HRESULT WINAPI SetCurrentViewMode(UINT ViewMode) = 0;
   1385     virtual HRESULT WINAPI GetFolder(REFIID riid,void **ppv) = 0;
   1386     virtual HRESULT WINAPI Item(int iItemIndex,LPITEMIDLIST *ppidl) = 0;
   1387     virtual HRESULT WINAPI ItemCount(UINT uFlags,int *pcItems) = 0;
   1388     virtual HRESULT WINAPI Items(UINT uFlags,REFIID riid,void **ppv) = 0;
   1389     virtual HRESULT WINAPI GetSelectionMarkedItem(int *piItem) = 0;
   1390     virtual HRESULT WINAPI GetFocusedItem(int *piItem) = 0;
   1391     virtual HRESULT WINAPI GetItemPosition(LPCITEMIDLIST pidl,POINT *ppt) = 0;
   1392     virtual HRESULT WINAPI GetSpacing(POINT *ppt) = 0;
   1393     virtual HRESULT WINAPI GetDefaultSpacing(POINT *ppt) = 0;
   1394     virtual HRESULT WINAPI GetAutoArrange(void) = 0;
   1395     virtual HRESULT WINAPI SelectItem(int iItem,DWORD dwFlags) = 0;
   1396     virtual HRESULT WINAPI SelectAndPositionItems(UINT cidl,LPCITEMIDLIST *apidl,POINT *apt,DWORD dwFlags) = 0;
   1397   };
   1398 #else
   1399   typedef struct IFolderViewVtbl {
   1400     BEGIN_INTERFACE
   1401       HRESULT (WINAPI *QueryInterface)(IFolderView *This,REFIID riid,void **ppvObject);
   1402       ULONG (WINAPI *AddRef)(IFolderView *This);
   1403       ULONG (WINAPI *Release)(IFolderView *This);
   1404       HRESULT (WINAPI *GetCurrentViewMode)(IFolderView *This,UINT *pViewMode);
   1405       HRESULT (WINAPI *SetCurrentViewMode)(IFolderView *This,UINT ViewMode);
   1406       HRESULT (WINAPI *GetFolder)(IFolderView *This,REFIID riid,void **ppv);
   1407       HRESULT (WINAPI *Item)(IFolderView *This,int iItemIndex,LPITEMIDLIST *ppidl);
   1408       HRESULT (WINAPI *ItemCount)(IFolderView *This,UINT uFlags,int *pcItems);
   1409       HRESULT (WINAPI *Items)(IFolderView *This,UINT uFlags,REFIID riid,void **ppv);
   1410       HRESULT (WINAPI *GetSelectionMarkedItem)(IFolderView *This,int *piItem);
   1411       HRESULT (WINAPI *GetFocusedItem)(IFolderView *This,int *piItem);
   1412       HRESULT (WINAPI *GetItemPosition)(IFolderView *This,LPCITEMIDLIST pidl,POINT *ppt);
   1413       HRESULT (WINAPI *GetSpacing)(IFolderView *This,POINT *ppt);
   1414       HRESULT (WINAPI *GetDefaultSpacing)(IFolderView *This,POINT *ppt);
   1415       HRESULT (WINAPI *GetAutoArrange)(IFolderView *This);
   1416       HRESULT (WINAPI *SelectItem)(IFolderView *This,int iItem,DWORD dwFlags);
   1417       HRESULT (WINAPI *SelectAndPositionItems)(IFolderView *This,UINT cidl,LPCITEMIDLIST *apidl,POINT *apt,DWORD dwFlags);
   1418     END_INTERFACE
   1419   } IFolderViewVtbl;
   1420   struct IFolderView {
   1421     CONST_VTBL struct IFolderViewVtbl *lpVtbl;
   1422   };
   1423 #ifdef COBJMACROS
   1424 #define IFolderView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1425 #define IFolderView_AddRef(This) (This)->lpVtbl->AddRef(This)
   1426 #define IFolderView_Release(This) (This)->lpVtbl->Release(This)
   1427 #define IFolderView_GetCurrentViewMode(This,pViewMode) (This)->lpVtbl->GetCurrentViewMode(This,pViewMode)
   1428 #define IFolderView_SetCurrentViewMode(This,ViewMode) (This)->lpVtbl->SetCurrentViewMode(This,ViewMode)
   1429 #define IFolderView_GetFolder(This,riid,ppv) (This)->lpVtbl->GetFolder(This,riid,ppv)
   1430 #define IFolderView_Item(This,iItemIndex,ppidl) (This)->lpVtbl->Item(This,iItemIndex,ppidl)
   1431 #define IFolderView_ItemCount(This,uFlags,pcItems) (This)->lpVtbl->ItemCount(This,uFlags,pcItems)
   1432 #define IFolderView_Items(This,uFlags,riid,ppv) (This)->lpVtbl->Items(This,uFlags,riid,ppv)
   1433 #define IFolderView_GetSelectionMarkedItem(This,piItem) (This)->lpVtbl->GetSelectionMarkedItem(This,piItem)
   1434 #define IFolderView_GetFocusedItem(This,piItem) (This)->lpVtbl->GetFocusedItem(This,piItem)
   1435 #define IFolderView_GetItemPosition(This,pidl,ppt) (This)->lpVtbl->GetItemPosition(This,pidl,ppt)
   1436 #define IFolderView_GetSpacing(This,ppt) (This)->lpVtbl->GetSpacing(This,ppt)
   1437 #define IFolderView_GetDefaultSpacing(This,ppt) (This)->lpVtbl->GetDefaultSpacing(This,ppt)
   1438 #define IFolderView_GetAutoArrange(This) (This)->lpVtbl->GetAutoArrange(This)
   1439 #define IFolderView_SelectItem(This,iItem,dwFlags) (This)->lpVtbl->SelectItem(This,iItem,dwFlags)
   1440 #define IFolderView_SelectAndPositionItems(This,cidl,apidl,apt,dwFlags) (This)->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags)
   1441 #endif
   1442 #endif
   1443   HRESULT WINAPI IFolderView_GetCurrentViewMode_Proxy(IFolderView *This,UINT *pViewMode);
   1444   void __RPC_STUB IFolderView_GetCurrentViewMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1445   HRESULT WINAPI IFolderView_SetCurrentViewMode_Proxy(IFolderView *This,UINT ViewMode);
   1446   void __RPC_STUB IFolderView_SetCurrentViewMode_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1447   HRESULT WINAPI IFolderView_GetFolder_Proxy(IFolderView *This,REFIID riid,void **ppv);
   1448   void __RPC_STUB IFolderView_GetFolder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1449   HRESULT WINAPI IFolderView_Item_Proxy(IFolderView *This,int iItemIndex,LPITEMIDLIST *ppidl);
   1450   void __RPC_STUB IFolderView_Item_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1451   HRESULT WINAPI IFolderView_ItemCount_Proxy(IFolderView *This,UINT uFlags,int *pcItems);
   1452   void __RPC_STUB IFolderView_ItemCount_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1453   HRESULT WINAPI IFolderView_Items_Proxy(IFolderView *This,UINT uFlags,REFIID riid,void **ppv);
   1454   void __RPC_STUB IFolderView_Items_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1455   HRESULT WINAPI IFolderView_GetSelectionMarkedItem_Proxy(IFolderView *This,int *piItem);
   1456   void __RPC_STUB IFolderView_GetSelectionMarkedItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1457   HRESULT WINAPI IFolderView_GetFocusedItem_Proxy(IFolderView *This,int *piItem);
   1458   void __RPC_STUB IFolderView_GetFocusedItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1459   HRESULT WINAPI IFolderView_GetItemPosition_Proxy(IFolderView *This,LPCITEMIDLIST pidl,POINT *ppt);
   1460   void __RPC_STUB IFolderView_GetItemPosition_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1461   HRESULT WINAPI IFolderView_GetSpacing_Proxy(IFolderView *This,POINT *ppt);
   1462   void __RPC_STUB IFolderView_GetSpacing_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1463   HRESULT WINAPI IFolderView_GetDefaultSpacing_Proxy(IFolderView *This,POINT *ppt);
   1464   void __RPC_STUB IFolderView_GetDefaultSpacing_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1465   HRESULT WINAPI IFolderView_GetAutoArrange_Proxy(IFolderView *This);
   1466   void __RPC_STUB IFolderView_GetAutoArrange_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1467   HRESULT WINAPI IFolderView_SelectItem_Proxy(IFolderView *This,int iItem,DWORD dwFlags);
   1468   void __RPC_STUB IFolderView_SelectItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1469   HRESULT WINAPI IFolderView_SelectAndPositionItems_Proxy(IFolderView *This,UINT cidl,LPCITEMIDLIST *apidl,POINT *apt,DWORD dwFlags);
   1470   void __RPC_STUB IFolderView_SelectAndPositionItems_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1471 #endif
   1472 
   1473 #define SID_SFolderView IID_IFolderView
   1474 #ifdef _FIX_ENABLEMODELESS_CONFLICT
   1475 #undef EnableModeless
   1476 #endif
   1477 
   1478   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0205_v0_0_c_ifspec;
   1479   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0205_v0_0_s_ifspec;
   1480 #ifndef __IFolderFilterSite_INTERFACE_DEFINED__
   1481 #define __IFolderFilterSite_INTERFACE_DEFINED__
   1482   EXTERN_C const IID IID_IFolderFilterSite;
   1483 #if defined(__cplusplus) && !defined(CINTERFACE)
   1484   struct IFolderFilterSite : public IUnknown {
   1485   public:
   1486     virtual HRESULT WINAPI SetFilter(IUnknown *punk) = 0;
   1487   };
   1488 #else
   1489   typedef struct IFolderFilterSiteVtbl {
   1490     BEGIN_INTERFACE
   1491       HRESULT (WINAPI *QueryInterface)(IFolderFilterSite *This,REFIID riid,void **ppvObject);
   1492       ULONG (WINAPI *AddRef)(IFolderFilterSite *This);
   1493       ULONG (WINAPI *Release)(IFolderFilterSite *This);
   1494       HRESULT (WINAPI *SetFilter)(IFolderFilterSite *This,IUnknown *punk);
   1495     END_INTERFACE
   1496   } IFolderFilterSiteVtbl;
   1497   struct IFolderFilterSite {
   1498     CONST_VTBL struct IFolderFilterSiteVtbl *lpVtbl;
   1499   };
   1500 #ifdef COBJMACROS
   1501 #define IFolderFilterSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1502 #define IFolderFilterSite_AddRef(This) (This)->lpVtbl->AddRef(This)
   1503 #define IFolderFilterSite_Release(This) (This)->lpVtbl->Release(This)
   1504 #define IFolderFilterSite_SetFilter(This,punk) (This)->lpVtbl->SetFilter(This,punk)
   1505 #endif
   1506 #endif
   1507   HRESULT WINAPI IFolderFilterSite_SetFilter_Proxy(IFolderFilterSite *This,IUnknown *punk);
   1508   void __RPC_STUB IFolderFilterSite_SetFilter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1509 #endif
   1510 
   1511 #ifndef __IFolderFilter_INTERFACE_DEFINED__
   1512 #define __IFolderFilter_INTERFACE_DEFINED__
   1513   EXTERN_C const IID IID_IFolderFilter;
   1514 #if defined(__cplusplus) && !defined(CINTERFACE)
   1515   struct IFolderFilter : public IUnknown {
   1516   public:
   1517     virtual HRESULT WINAPI ShouldShow(IShellFolder *psf,LPCITEMIDLIST pidlFolder,LPCITEMIDLIST pidlItem) = 0;
   1518     virtual HRESULT WINAPI GetEnumFlags(IShellFolder *psf,LPCITEMIDLIST pidlFolder,HWND *phwnd,DWORD *pgrfFlags) = 0;
   1519   };
   1520 #else
   1521   typedef struct IFolderFilterVtbl {
   1522     BEGIN_INTERFACE
   1523       HRESULT (WINAPI *QueryInterface)(IFolderFilter *This,REFIID riid,void **ppvObject);
   1524       ULONG (WINAPI *AddRef)(IFolderFilter *This);
   1525       ULONG (WINAPI *Release)(IFolderFilter *This);
   1526       HRESULT (WINAPI *ShouldShow)(IFolderFilter *This,IShellFolder *psf,LPCITEMIDLIST pidlFolder,LPCITEMIDLIST pidlItem);
   1527       HRESULT (WINAPI *GetEnumFlags)(IFolderFilter *This,IShellFolder *psf,LPCITEMIDLIST pidlFolder,HWND *phwnd,DWORD *pgrfFlags);
   1528     END_INTERFACE
   1529   } IFolderFilterVtbl;
   1530   struct IFolderFilter {
   1531     CONST_VTBL struct IFolderFilterVtbl *lpVtbl;
   1532   };
   1533 #ifdef COBJMACROS
   1534 #define IFolderFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1535 #define IFolderFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
   1536 #define IFolderFilter_Release(This) (This)->lpVtbl->Release(This)
   1537 #define IFolderFilter_ShouldShow(This,psf,pidlFolder,pidlItem) (This)->lpVtbl->ShouldShow(This,psf,pidlFolder,pidlItem)
   1538 #define IFolderFilter_GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags) (This)->lpVtbl->GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags)
   1539 #endif
   1540 #endif
   1541   HRESULT WINAPI IFolderFilter_ShouldShow_Proxy(IFolderFilter *This,IShellFolder *psf,LPCITEMIDLIST pidlFolder,LPCITEMIDLIST pidlItem);
   1542   void __RPC_STUB IFolderFilter_ShouldShow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1543   HRESULT WINAPI IFolderFilter_GetEnumFlags_Proxy(IFolderFilter *This,IShellFolder *psf,LPCITEMIDLIST pidlFolder,HWND *phwnd,DWORD *pgrfFlags);
   1544   void __RPC_STUB IFolderFilter_GetEnumFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1545 #endif
   1546 
   1547 #define SBSP_DEFBROWSER 0x0000
   1548 #define SBSP_SAMEBROWSER 0x0001
   1549 #define SBSP_NEWBROWSER 0x0002
   1550 #define SBSP_DEFMODE 0x0000
   1551 #define SBSP_OPENMODE 0x0010
   1552 #define SBSP_EXPLOREMODE 0x0020
   1553 #define SBSP_HELPMODE 0x0040
   1554 #define SBSP_NOTRANSFERHIST 0x0080
   1555 #define SBSP_ABSOLUTE 0x0000
   1556 #define SBSP_RELATIVE 0x1000
   1557 #define SBSP_PARENT 0x2000
   1558 #define SBSP_NAVIGATEBACK 0x4000
   1559 #define SBSP_NAVIGATEFORWARD 0x8000
   1560 #define SBSP_ALLOW_AUTONAVIGATE 0x10000
   1561 #define SBSP_CALLERUNTRUSTED 0x00800000
   1562 #define SBSP_TRUSTFIRSTDOWNLOAD 0x01000000
   1563 #define SBSP_UNTRUSTEDFORDOWNLOAD 0x02000000
   1564 #define SBSP_NOAUTOSELECT 0x04000000
   1565 #define SBSP_WRITENOHISTORY 0x08000000
   1566 #define SBSP_TRUSTEDFORACTIVEX 0x10000000
   1567 #define SBSP_REDIRECT 0x40000000
   1568 #define SBSP_INITIATEDBYHLINKFRAME 0x80000000
   1569 #define FCW_STATUS 0x0001
   1570 #define FCW_TOOLBAR 0x0002
   1571 #define FCW_TREE 0x0003
   1572 #define FCW_INTERNETBAR 0x0006
   1573 #define FCW_PROGRESS 0x0008
   1574 #define FCT_MERGE 0x0001
   1575 #define FCT_CONFIGABLE 0x0002
   1576 #define FCT_ADDTOEND 0x0004
   1577 #ifdef _NEVER_
   1578   typedef LPARAM LPTBBUTTONSB;
   1579 #else
   1580 #include <commctrl.h>
   1581   typedef LPTBBUTTON LPTBBUTTONSB;
   1582 #endif
   1583 
   1584   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0207_v0_0_c_ifspec;
   1585   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0207_v0_0_s_ifspec;
   1586 #ifndef __IShellBrowser_INTERFACE_DEFINED__
   1587 #define __IShellBrowser_INTERFACE_DEFINED__
   1588   EXTERN_C const IID IID_IShellBrowser;
   1589 #if defined(__cplusplus) && !defined(CINTERFACE)
   1590   struct IShellBrowser : public IOleWindow {
   1591   public:
   1592     virtual HRESULT WINAPI InsertMenusSB(HMENU hmenuShared,LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0;
   1593     virtual HRESULT WINAPI SetMenuSB(HMENU hmenuShared,HOLEMENU holemenuRes,HWND hwndActiveObject) = 0;
   1594     virtual HRESULT WINAPI RemoveMenusSB(HMENU hmenuShared) = 0;
   1595     virtual HRESULT WINAPI SetStatusTextSB(LPCOLESTR pszStatusText) = 0;
   1596     virtual HRESULT WINAPI EnableModelessSB(WINBOOL fEnable) = 0;
   1597     virtual HRESULT WINAPI TranslateAcceleratorSB(MSG *pmsg,WORD wID) = 0;
   1598     virtual HRESULT WINAPI BrowseObject(LPCITEMIDLIST pidl,UINT wFlags) = 0;
   1599     virtual HRESULT WINAPI GetViewStateStream(DWORD grfMode,IStream **ppStrm) = 0;
   1600     virtual HRESULT WINAPI GetControlWindow(UINT id,HWND *phwnd) = 0;
   1601     virtual HRESULT WINAPI SendControlMsg(UINT id,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *pret) = 0;
   1602     virtual HRESULT WINAPI QueryActiveShellView(IShellView **ppshv) = 0;
   1603     virtual HRESULT WINAPI OnViewWindowActive(IShellView *pshv) = 0;
   1604     virtual HRESULT WINAPI SetToolbarItems(LPTBBUTTONSB lpButtons,UINT nButtons,UINT uFlags) = 0;
   1605   };
   1606 #else
   1607   typedef struct IShellBrowserVtbl {
   1608     BEGIN_INTERFACE
   1609       HRESULT (WINAPI *QueryInterface)(IShellBrowser *This,REFIID riid,void **ppvObject);
   1610       ULONG (WINAPI *AddRef)(IShellBrowser *This);
   1611       ULONG (WINAPI *Release)(IShellBrowser *This);
   1612       HRESULT (WINAPI *GetWindow)(IShellBrowser *This,HWND *phwnd);
   1613       HRESULT (WINAPI *ContextSensitiveHelp)(IShellBrowser *This,WINBOOL fEnterMode);
   1614       HRESULT (WINAPI *InsertMenusSB)(IShellBrowser *This,HMENU hmenuShared,LPOLEMENUGROUPWIDTHS lpMenuWidths);
   1615       HRESULT (WINAPI *SetMenuSB)(IShellBrowser *This,HMENU hmenuShared,HOLEMENU holemenuRes,HWND hwndActiveObject);
   1616       HRESULT (WINAPI *RemoveMenusSB)(IShellBrowser *This,HMENU hmenuShared);
   1617       HRESULT (WINAPI *SetStatusTextSB)(IShellBrowser *This,LPCOLESTR pszStatusText);
   1618       HRESULT (WINAPI *EnableModelessSB)(IShellBrowser *This,WINBOOL fEnable);
   1619       HRESULT (WINAPI *TranslateAcceleratorSB)(IShellBrowser *This,MSG *pmsg,WORD wID);
   1620       HRESULT (WINAPI *BrowseObject)(IShellBrowser *This,LPCITEMIDLIST pidl,UINT wFlags);
   1621       HRESULT (WINAPI *GetViewStateStream)(IShellBrowser *This,DWORD grfMode,IStream **ppStrm);
   1622       HRESULT (WINAPI *GetControlWindow)(IShellBrowser *This,UINT id,HWND *phwnd);
   1623       HRESULT (WINAPI *SendControlMsg)(IShellBrowser *This,UINT id,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *pret);
   1624       HRESULT (WINAPI *QueryActiveShellView)(IShellBrowser *This,IShellView **ppshv);
   1625       HRESULT (WINAPI *OnViewWindowActive)(IShellBrowser *This,IShellView *pshv);
   1626       HRESULT (WINAPI *SetToolbarItems)(IShellBrowser *This,LPTBBUTTONSB lpButtons,UINT nButtons,UINT uFlags);
   1627     END_INTERFACE
   1628   } IShellBrowserVtbl;
   1629   struct IShellBrowser {
   1630     CONST_VTBL struct IShellBrowserVtbl *lpVtbl;
   1631   };
   1632 #ifdef COBJMACROS
   1633 #define IShellBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1634 #define IShellBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
   1635 #define IShellBrowser_Release(This) (This)->lpVtbl->Release(This)
   1636 #define IShellBrowser_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   1637 #define IShellBrowser_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   1638 #define IShellBrowser_InsertMenusSB(This,hmenuShared,lpMenuWidths) (This)->lpVtbl->InsertMenusSB(This,hmenuShared,lpMenuWidths)
   1639 #define IShellBrowser_SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject) (This)->lpVtbl->SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject)
   1640 #define IShellBrowser_RemoveMenusSB(This,hmenuShared) (This)->lpVtbl->RemoveMenusSB(This,hmenuShared)
   1641 #define IShellBrowser_SetStatusTextSB(This,pszStatusText) (This)->lpVtbl->SetStatusTextSB(This,pszStatusText)
   1642 #define IShellBrowser_EnableModelessSB(This,fEnable) (This)->lpVtbl->EnableModelessSB(This,fEnable)
   1643 #define IShellBrowser_TranslateAcceleratorSB(This,pmsg,wID) (This)->lpVtbl->TranslateAcceleratorSB(This,pmsg,wID)
   1644 #define IShellBrowser_BrowseObject(This,pidl,wFlags) (This)->lpVtbl->BrowseObject(This,pidl,wFlags)
   1645 #define IShellBrowser_GetViewStateStream(This,grfMode,ppStrm) (This)->lpVtbl->GetViewStateStream(This,grfMode,ppStrm)
   1646 #define IShellBrowser_GetControlWindow(This,id,phwnd) (This)->lpVtbl->GetControlWindow(This,id,phwnd)
   1647 #define IShellBrowser_SendControlMsg(This,id,uMsg,wParam,lParam,pret) (This)->lpVtbl->SendControlMsg(This,id,uMsg,wParam,lParam,pret)
   1648 #define IShellBrowser_QueryActiveShellView(This,ppshv) (This)->lpVtbl->QueryActiveShellView(This,ppshv)
   1649 #define IShellBrowser_OnViewWindowActive(This,pshv) (This)->lpVtbl->OnViewWindowActive(This,pshv)
   1650 #define IShellBrowser_SetToolbarItems(This,lpButtons,nButtons,uFlags) (This)->lpVtbl->SetToolbarItems(This,lpButtons,nButtons,uFlags)
   1651 #endif
   1652 #endif
   1653   HRESULT WINAPI IShellBrowser_InsertMenusSB_Proxy(IShellBrowser *This,HMENU hmenuShared,LPOLEMENUGROUPWIDTHS lpMenuWidths);
   1654   void __RPC_STUB IShellBrowser_InsertMenusSB_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1655   HRESULT WINAPI IShellBrowser_SetMenuSB_Proxy(IShellBrowser *This,HMENU hmenuShared,HOLEMENU holemenuRes,HWND hwndActiveObject);
   1656   void __RPC_STUB IShellBrowser_SetMenuSB_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1657   HRESULT WINAPI IShellBrowser_RemoveMenusSB_Proxy(IShellBrowser *This,HMENU hmenuShared);
   1658   void __RPC_STUB IShellBrowser_RemoveMenusSB_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1659   HRESULT WINAPI IShellBrowser_SetStatusTextSB_Proxy(IShellBrowser *This,LPCOLESTR pszStatusText);
   1660   void __RPC_STUB IShellBrowser_SetStatusTextSB_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1661   HRESULT WINAPI IShellBrowser_EnableModelessSB_Proxy(IShellBrowser *This,WINBOOL fEnable);
   1662   void __RPC_STUB IShellBrowser_EnableModelessSB_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1663   HRESULT WINAPI IShellBrowser_TranslateAcceleratorSB_Proxy(IShellBrowser *This,MSG *pmsg,WORD wID);
   1664   void __RPC_STUB IShellBrowser_TranslateAcceleratorSB_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1665   HRESULT WINAPI IShellBrowser_BrowseObject_Proxy(IShellBrowser *This,LPCITEMIDLIST pidl,UINT wFlags);
   1666   void __RPC_STUB IShellBrowser_BrowseObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1667   HRESULT WINAPI IShellBrowser_GetViewStateStream_Proxy(IShellBrowser *This,DWORD grfMode,IStream **ppStrm);
   1668   void __RPC_STUB IShellBrowser_GetViewStateStream_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1669   HRESULT WINAPI IShellBrowser_GetControlWindow_Proxy(IShellBrowser *This,UINT id,HWND *phwnd);
   1670   void __RPC_STUB IShellBrowser_GetControlWindow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1671   HRESULT WINAPI IShellBrowser_SendControlMsg_Proxy(IShellBrowser *This,UINT id,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *pret);
   1672   void __RPC_STUB IShellBrowser_SendControlMsg_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1673   HRESULT WINAPI IShellBrowser_QueryActiveShellView_Proxy(IShellBrowser *This,IShellView **ppshv);
   1674   void __RPC_STUB IShellBrowser_QueryActiveShellView_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1675   HRESULT WINAPI IShellBrowser_OnViewWindowActive_Proxy(IShellBrowser *This,IShellView *pshv);
   1676   void __RPC_STUB IShellBrowser_OnViewWindowActive_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1677   HRESULT WINAPI IShellBrowser_SetToolbarItems_Proxy(IShellBrowser *This,LPTBBUTTONSB lpButtons,UINT nButtons,UINT uFlags);
   1678   void __RPC_STUB IShellBrowser_SetToolbarItems_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1679 #endif
   1680 
   1681   typedef IShellBrowser *LPSHELLBROWSER;
   1682 
   1683   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0208_v0_0_c_ifspec;
   1684   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0208_v0_0_s_ifspec;
   1685 #ifndef __IProfferService_INTERFACE_DEFINED__
   1686 #define __IProfferService_INTERFACE_DEFINED__
   1687   EXTERN_C const IID IID_IProfferService;
   1688 #if defined(__cplusplus) && !defined(CINTERFACE)
   1689   struct IProfferService : public IUnknown {
   1690   public:
   1691     virtual HRESULT WINAPI ProfferService(REFGUID rguidService,IServiceProvider *psp,DWORD *pdwCookie) = 0;
   1692     virtual HRESULT WINAPI RevokeService(DWORD dwCookie) = 0;
   1693   };
   1694 #else
   1695   typedef struct IProfferServiceVtbl {
   1696     BEGIN_INTERFACE
   1697       HRESULT (WINAPI *QueryInterface)(IProfferService *This,REFIID riid,void **ppvObject);
   1698       ULONG (WINAPI *AddRef)(IProfferService *This);
   1699       ULONG (WINAPI *Release)(IProfferService *This);
   1700       HRESULT (WINAPI *ProfferService)(IProfferService *This,REFGUID rguidService,IServiceProvider *psp,DWORD *pdwCookie);
   1701       HRESULT (WINAPI *RevokeService)(IProfferService *This,DWORD dwCookie);
   1702     END_INTERFACE
   1703   } IProfferServiceVtbl;
   1704   struct IProfferService {
   1705     CONST_VTBL struct IProfferServiceVtbl *lpVtbl;
   1706   };
   1707 #ifdef COBJMACROS
   1708 #define IProfferService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1709 #define IProfferService_AddRef(This) (This)->lpVtbl->AddRef(This)
   1710 #define IProfferService_Release(This) (This)->lpVtbl->Release(This)
   1711 #define IProfferService_ProfferService(This,rguidService,psp,pdwCookie) (This)->lpVtbl->ProfferService(This,rguidService,psp,pdwCookie)
   1712 #define IProfferService_RevokeService(This,dwCookie) (This)->lpVtbl->RevokeService(This,dwCookie)
   1713 #endif
   1714 #endif
   1715   HRESULT WINAPI IProfferService_ProfferService_Proxy(IProfferService *This,REFGUID rguidService,IServiceProvider *psp,DWORD *pdwCookie);
   1716   void __RPC_STUB IProfferService_ProfferService_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1717   HRESULT WINAPI IProfferService_RevokeService_Proxy(IProfferService *This,DWORD dwCookie);
   1718   void __RPC_STUB IProfferService_RevokeService_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1719 #endif
   1720 
   1721 #define SID_SProfferService IID_IProfferService
   1722   typedef enum __MIDL___MIDL_itf_shobjidl_0209_0001 {
   1723     PUIFNF_DEFAULT = 0,PUIFNF_MNEMONIC = 0x1
   1724   } PROPERTYUI_NAME_FLAGS;
   1725 
   1726   typedef enum __MIDL___MIDL_itf_shobjidl_0209_0002 {
   1727     PUIF_DEFAULT = 0,PUIF_RIGHTALIGN = 0x1,PUIF_NOLABELININFOTIP = 0x2
   1728   } PROPERTYUI_FLAGS;
   1729 
   1730   typedef enum __MIDL___MIDL_itf_shobjidl_0209_0003 {
   1731     PUIFFDF_DEFAULT = 0,PUIFFDF_RIGHTTOLEFT = 0x1,PUIFFDF_SHORTFORMAT = 0x2,PUIFFDF_NOTIME = 0x4,PUIFFDF_FRIENDLYDATE = 0x8,PUIFFDF_NOUNITS = 0x10
   1732   } PROPERTYUI_FORMAT_FLAGS;
   1733 
   1734   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0209_v0_0_c_ifspec;
   1735   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0209_v0_0_s_ifspec;
   1736 #ifndef __IPropertyUI_INTERFACE_DEFINED__
   1737 #define __IPropertyUI_INTERFACE_DEFINED__
   1738   EXTERN_C const IID IID_IPropertyUI;
   1739 #if defined(__cplusplus) && !defined(CINTERFACE)
   1740   struct IPropertyUI : public IUnknown {
   1741   public:
   1742     virtual HRESULT WINAPI ParsePropertyName(LPCWSTR pszName,FMTID *pfmtid,PROPID *ppid,ULONG *pchEaten) = 0;
   1743     virtual HRESULT WINAPI GetCannonicalName(REFFMTID fmtid,PROPID pid,LPWSTR pwszText,DWORD cchText) = 0;
   1744     virtual HRESULT WINAPI GetDisplayName(REFFMTID fmtid,PROPID pid,PROPERTYUI_NAME_FLAGS flags,LPWSTR pwszText,DWORD cchText) = 0;
   1745     virtual HRESULT WINAPI GetPropertyDescription(REFFMTID fmtid,PROPID pid,LPWSTR pwszText,DWORD cchText) = 0;
   1746     virtual HRESULT WINAPI GetDefaultWidth(REFFMTID fmtid,PROPID pid,ULONG *pcxChars) = 0;
   1747     virtual HRESULT WINAPI GetFlags(REFFMTID fmtid,PROPID pid,PROPERTYUI_FLAGS *pFlags) = 0;
   1748     virtual HRESULT WINAPI FormatForDisplay(REFFMTID fmtid,PROPID pid,const PROPVARIANT *pvar,PROPERTYUI_FORMAT_FLAGS flags,LPWSTR pwszText,DWORD cchText) = 0;
   1749     virtual HRESULT WINAPI GetHelpInfo(REFFMTID fmtid,PROPID pid,LPWSTR pwszHelpFile,DWORD cch,UINT *puHelpID) = 0;
   1750   };
   1751 #else
   1752   typedef struct IPropertyUIVtbl {
   1753     BEGIN_INTERFACE
   1754       HRESULT (WINAPI *QueryInterface)(IPropertyUI *This,REFIID riid,void **ppvObject);
   1755       ULONG (WINAPI *AddRef)(IPropertyUI *This);
   1756       ULONG (WINAPI *Release)(IPropertyUI *This);
   1757       HRESULT (WINAPI *ParsePropertyName)(IPropertyUI *This,LPCWSTR pszName,FMTID *pfmtid,PROPID *ppid,ULONG *pchEaten);
   1758       HRESULT (WINAPI *GetCannonicalName)(IPropertyUI *This,REFFMTID fmtid,PROPID pid,LPWSTR pwszText,DWORD cchText);
   1759       HRESULT (WINAPI *GetDisplayName)(IPropertyUI *This,REFFMTID fmtid,PROPID pid,PROPERTYUI_NAME_FLAGS flags,LPWSTR pwszText,DWORD cchText);
   1760       HRESULT (WINAPI *GetPropertyDescription)(IPropertyUI *This,REFFMTID fmtid,PROPID pid,LPWSTR pwszText,DWORD cchText);
   1761       HRESULT (WINAPI *GetDefaultWidth)(IPropertyUI *This,REFFMTID fmtid,PROPID pid,ULONG *pcxChars);
   1762       HRESULT (WINAPI *GetFlags)(IPropertyUI *This,REFFMTID fmtid,PROPID pid,PROPERTYUI_FLAGS *pFlags);
   1763       HRESULT (WINAPI *FormatForDisplay)(IPropertyUI *This,REFFMTID fmtid,PROPID pid,const PROPVARIANT *pvar,PROPERTYUI_FORMAT_FLAGS flags,LPWSTR pwszText,DWORD cchText);
   1764       HRESULT (WINAPI *GetHelpInfo)(IPropertyUI *This,REFFMTID fmtid,PROPID pid,LPWSTR pwszHelpFile,DWORD cch,UINT *puHelpID);
   1765     END_INTERFACE
   1766   } IPropertyUIVtbl;
   1767   struct IPropertyUI {
   1768     CONST_VTBL struct IPropertyUIVtbl *lpVtbl;
   1769   };
   1770 #ifdef COBJMACROS
   1771 #define IPropertyUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1772 #define IPropertyUI_AddRef(This) (This)->lpVtbl->AddRef(This)
   1773 #define IPropertyUI_Release(This) (This)->lpVtbl->Release(This)
   1774 #define IPropertyUI_ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten) (This)->lpVtbl->ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten)
   1775 #define IPropertyUI_GetCannonicalName(This,fmtid,pid,pwszText,cchText) (This)->lpVtbl->GetCannonicalName(This,fmtid,pid,pwszText,cchText)
   1776 #define IPropertyUI_GetDisplayName(This,fmtid,pid,flags,pwszText,cchText) (This)->lpVtbl->GetDisplayName(This,fmtid,pid,flags,pwszText,cchText)
   1777 #define IPropertyUI_GetPropertyDescription(This,fmtid,pid,pwszText,cchText) (This)->lpVtbl->GetPropertyDescription(This,fmtid,pid,pwszText,cchText)
   1778 #define IPropertyUI_GetDefaultWidth(This,fmtid,pid,pcxChars) (This)->lpVtbl->GetDefaultWidth(This,fmtid,pid,pcxChars)
   1779 #define IPropertyUI_GetFlags(This,fmtid,pid,pFlags) (This)->lpVtbl->GetFlags(This,fmtid,pid,pFlags)
   1780 #define IPropertyUI_FormatForDisplay(This,fmtid,pid,pvar,flags,pwszText,cchText) (This)->lpVtbl->FormatForDisplay(This,fmtid,pid,pvar,flags,pwszText,cchText)
   1781 #define IPropertyUI_GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID) (This)->lpVtbl->GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID)
   1782 #endif
   1783 #endif
   1784   HRESULT WINAPI IPropertyUI_ParsePropertyName_Proxy(IPropertyUI *This,LPCWSTR pszName,FMTID *pfmtid,PROPID *ppid,ULONG *pchEaten);
   1785   void __RPC_STUB IPropertyUI_ParsePropertyName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1786   HRESULT WINAPI IPropertyUI_GetCannonicalName_Proxy(IPropertyUI *This,REFFMTID fmtid,PROPID pid,LPWSTR pwszText,DWORD cchText);
   1787   void __RPC_STUB IPropertyUI_GetCannonicalName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1788   HRESULT WINAPI IPropertyUI_GetDisplayName_Proxy(IPropertyUI *This,REFFMTID fmtid,PROPID pid,PROPERTYUI_NAME_FLAGS flags,LPWSTR pwszText,DWORD cchText);
   1789   void __RPC_STUB IPropertyUI_GetDisplayName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1790   HRESULT WINAPI IPropertyUI_GetPropertyDescription_Proxy(IPropertyUI *This,REFFMTID fmtid,PROPID pid,LPWSTR pwszText,DWORD cchText);
   1791   void __RPC_STUB IPropertyUI_GetPropertyDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1792   HRESULT WINAPI IPropertyUI_GetDefaultWidth_Proxy(IPropertyUI *This,REFFMTID fmtid,PROPID pid,ULONG *pcxChars);
   1793   void __RPC_STUB IPropertyUI_GetDefaultWidth_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1794   HRESULT WINAPI IPropertyUI_GetFlags_Proxy(IPropertyUI *This,REFFMTID fmtid,PROPID pid,PROPERTYUI_FLAGS *pFlags);
   1795   void __RPC_STUB IPropertyUI_GetFlags_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1796   HRESULT WINAPI IPropertyUI_FormatForDisplay_Proxy(IPropertyUI *This,REFFMTID fmtid,PROPID pid,const PROPVARIANT *pvar,PROPERTYUI_FORMAT_FLAGS flags,LPWSTR pwszText,DWORD cchText);
   1797   void __RPC_STUB IPropertyUI_FormatForDisplay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1798   HRESULT WINAPI IPropertyUI_GetHelpInfo_Proxy(IPropertyUI *This,REFFMTID fmtid,PROPID pid,LPWSTR pwszHelpFile,DWORD cch,UINT *puHelpID);
   1799   void __RPC_STUB IPropertyUI_GetHelpInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1800 #endif
   1801 
   1802 #if (0x501 >= 0x0500)
   1803   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0210_v0_0_c_ifspec;
   1804   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0210_v0_0_s_ifspec;
   1805 #ifndef __ICategoryProvider_INTERFACE_DEFINED__
   1806 #define __ICategoryProvider_INTERFACE_DEFINED__
   1807   EXTERN_C const IID IID_ICategoryProvider;
   1808 #if defined(__cplusplus) && !defined(CINTERFACE)
   1809   struct ICategoryProvider : public IUnknown {
   1810   public:
   1811     virtual HRESULT WINAPI CanCategorizeOnSCID(SHCOLUMNID *pscid) = 0;
   1812     virtual HRESULT WINAPI GetDefaultCategory(GUID *pguid,SHCOLUMNID *pscid) = 0;
   1813     virtual HRESULT WINAPI GetCategoryForSCID(SHCOLUMNID *pscid,GUID *pguid) = 0;
   1814     virtual HRESULT WINAPI EnumCategories(IEnumGUID **penum) = 0;
   1815     virtual HRESULT WINAPI GetCategoryName(GUID *pguid,LPWSTR pszName,UINT cch) = 0;
   1816     virtual HRESULT WINAPI CreateCategory(GUID *pguid,REFIID riid,void **ppv) = 0;
   1817   };
   1818 #else
   1819   typedef struct ICategoryProviderVtbl {
   1820     BEGIN_INTERFACE
   1821       HRESULT (WINAPI *QueryInterface)(ICategoryProvider *This,REFIID riid,void **ppvObject);
   1822       ULONG (WINAPI *AddRef)(ICategoryProvider *This);
   1823       ULONG (WINAPI *Release)(ICategoryProvider *This);
   1824       HRESULT (WINAPI *CanCategorizeOnSCID)(ICategoryProvider *This,SHCOLUMNID *pscid);
   1825       HRESULT (WINAPI *GetDefaultCategory)(ICategoryProvider *This,GUID *pguid,SHCOLUMNID *pscid);
   1826       HRESULT (WINAPI *GetCategoryForSCID)(ICategoryProvider *This,SHCOLUMNID *pscid,GUID *pguid);
   1827       HRESULT (WINAPI *EnumCategories)(ICategoryProvider *This,IEnumGUID **penum);
   1828       HRESULT (WINAPI *GetCategoryName)(ICategoryProvider *This,GUID *pguid,LPWSTR pszName,UINT cch);
   1829       HRESULT (WINAPI *CreateCategory)(ICategoryProvider *This,GUID *pguid,REFIID riid,void **ppv);
   1830     END_INTERFACE
   1831   } ICategoryProviderVtbl;
   1832   struct ICategoryProvider {
   1833     CONST_VTBL struct ICategoryProviderVtbl *lpVtbl;
   1834   };
   1835 #ifdef COBJMACROS
   1836 #define ICategoryProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1837 #define ICategoryProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
   1838 #define ICategoryProvider_Release(This) (This)->lpVtbl->Release(This)
   1839 #define ICategoryProvider_CanCategorizeOnSCID(This,pscid) (This)->lpVtbl->CanCategorizeOnSCID(This,pscid)
   1840 #define ICategoryProvider_GetDefaultCategory(This,pguid,pscid) (This)->lpVtbl->GetDefaultCategory(This,pguid,pscid)
   1841 #define ICategoryProvider_GetCategoryForSCID(This,pscid,pguid) (This)->lpVtbl->GetCategoryForSCID(This,pscid,pguid)
   1842 #define ICategoryProvider_EnumCategories(This,penum) (This)->lpVtbl->EnumCategories(This,penum)
   1843 #define ICategoryProvider_GetCategoryName(This,pguid,pszName,cch) (This)->lpVtbl->GetCategoryName(This,pguid,pszName,cch)
   1844 #define ICategoryProvider_CreateCategory(This,pguid,riid,ppv) (This)->lpVtbl->CreateCategory(This,pguid,riid,ppv)
   1845 #endif
   1846 #endif
   1847   HRESULT WINAPI ICategoryProvider_CanCategorizeOnSCID_Proxy(ICategoryProvider *This,SHCOLUMNID *pscid);
   1848   void __RPC_STUB ICategoryProvider_CanCategorizeOnSCID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1849   HRESULT WINAPI ICategoryProvider_GetDefaultCategory_Proxy(ICategoryProvider *This,GUID *pguid,SHCOLUMNID *pscid);
   1850   void __RPC_STUB ICategoryProvider_GetDefaultCategory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1851   HRESULT WINAPI ICategoryProvider_GetCategoryForSCID_Proxy(ICategoryProvider *This,SHCOLUMNID *pscid,GUID *pguid);
   1852   void __RPC_STUB ICategoryProvider_GetCategoryForSCID_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1853   HRESULT WINAPI ICategoryProvider_EnumCategories_Proxy(ICategoryProvider *This,IEnumGUID **penum);
   1854   void __RPC_STUB ICategoryProvider_EnumCategories_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1855   HRESULT WINAPI ICategoryProvider_GetCategoryName_Proxy(ICategoryProvider *This,GUID *pguid,LPWSTR pszName,UINT cch);
   1856   void __RPC_STUB ICategoryProvider_GetCategoryName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1857   HRESULT WINAPI ICategoryProvider_CreateCategory_Proxy(ICategoryProvider *This,GUID *pguid,REFIID riid,void **ppv);
   1858   void __RPC_STUB ICategoryProvider_CreateCategory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1859 #endif
   1860 
   1861   typedef enum __MIDL___MIDL_itf_shobjidl_0211_0001 {
   1862     CATINFO_NORMAL = 0,CATINFO_COLLAPSED = 0x1,CATINFO_HIDDEN = 0x2
   1863   } CATEGORYINFO_FLAGS;
   1864 
   1865   typedef enum __MIDL___MIDL_itf_shobjidl_0211_0002 {
   1866     CATSORT_DEFAULT = 0,CATSORT_NAME = 0x1
   1867   } CATSORT_FLAGS;
   1868 
   1869   typedef struct __MIDL___MIDL_itf_shobjidl_0211_0003 {
   1870     CATEGORYINFO_FLAGS cif;
   1871     WCHAR wszName[260];
   1872   } CATEGORY_INFO;
   1873 
   1874   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0211_v0_0_c_ifspec;
   1875   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0211_v0_0_s_ifspec;
   1876 #ifndef __ICategorizer_INTERFACE_DEFINED__
   1877 #define __ICategorizer_INTERFACE_DEFINED__
   1878   EXTERN_C const IID IID_ICategorizer;
   1879 #if defined(__cplusplus) && !defined(CINTERFACE)
   1880   struct ICategorizer : public IUnknown {
   1881   public:
   1882     virtual HRESULT WINAPI GetDescription(LPWSTR pszDesc,UINT cch) = 0;
   1883     virtual HRESULT WINAPI GetCategory(UINT cidl,LPCITEMIDLIST *apidl,DWORD *rgCategoryIds) = 0;
   1884     virtual HRESULT WINAPI GetCategoryInfo(DWORD dwCategoryId,CATEGORY_INFO *pci) = 0;
   1885     virtual HRESULT WINAPI CompareCategory(CATSORT_FLAGS csfFlags,DWORD dwCategoryId1,DWORD dwCategoryId2) = 0;
   1886   };
   1887 #else
   1888   typedef struct ICategorizerVtbl {
   1889     BEGIN_INTERFACE
   1890       HRESULT (WINAPI *QueryInterface)(ICategorizer *This,REFIID riid,void **ppvObject);
   1891       ULONG (WINAPI *AddRef)(ICategorizer *This);
   1892       ULONG (WINAPI *Release)(ICategorizer *This);
   1893       HRESULT (WINAPI *GetDescription)(ICategorizer *This,LPWSTR pszDesc,UINT cch);
   1894       HRESULT (WINAPI *GetCategory)(ICategorizer *This,UINT cidl,LPCITEMIDLIST *apidl,DWORD *rgCategoryIds);
   1895       HRESULT (WINAPI *GetCategoryInfo)(ICategorizer *This,DWORD dwCategoryId,CATEGORY_INFO *pci);
   1896       HRESULT (WINAPI *CompareCategory)(ICategorizer *This,CATSORT_FLAGS csfFlags,DWORD dwCategoryId1,DWORD dwCategoryId2);
   1897     END_INTERFACE
   1898   } ICategorizerVtbl;
   1899   struct ICategorizer {
   1900     CONST_VTBL struct ICategorizerVtbl *lpVtbl;
   1901   };
   1902 #ifdef COBJMACROS
   1903 #define ICategorizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1904 #define ICategorizer_AddRef(This) (This)->lpVtbl->AddRef(This)
   1905 #define ICategorizer_Release(This) (This)->lpVtbl->Release(This)
   1906 #define ICategorizer_GetDescription(This,pszDesc,cch) (This)->lpVtbl->GetDescription(This,pszDesc,cch)
   1907 #define ICategorizer_GetCategory(This,cidl,apidl,rgCategoryIds) (This)->lpVtbl->GetCategory(This,cidl,apidl,rgCategoryIds)
   1908 #define ICategorizer_GetCategoryInfo(This,dwCategoryId,pci) (This)->lpVtbl->GetCategoryInfo(This,dwCategoryId,pci)
   1909 #define ICategorizer_CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2) (This)->lpVtbl->CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2)
   1910 #endif
   1911 #endif
   1912   HRESULT WINAPI ICategorizer_GetDescription_Proxy(ICategorizer *This,LPWSTR pszDesc,UINT cch);
   1913   void __RPC_STUB ICategorizer_GetDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1914   HRESULT WINAPI ICategorizer_GetCategory_Proxy(ICategorizer *This,UINT cidl,LPCITEMIDLIST *apidl,DWORD *rgCategoryIds);
   1915   void __RPC_STUB ICategorizer_GetCategory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1916   HRESULT WINAPI ICategorizer_GetCategoryInfo_Proxy(ICategorizer *This,DWORD dwCategoryId,CATEGORY_INFO *pci);
   1917   void __RPC_STUB ICategorizer_GetCategoryInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1918   HRESULT WINAPI ICategorizer_CompareCategory_Proxy(ICategorizer *This,CATSORT_FLAGS csfFlags,DWORD dwCategoryId1,DWORD dwCategoryId2);
   1919   void __RPC_STUB ICategorizer_CompareCategory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   1920 #endif
   1921 #endif
   1922 
   1923 #define IShellLink __MINGW_NAME_AW(IShellLink)
   1924 
   1925   typedef enum __MIDL___MIDL_itf_shobjidl_0212_0001 {
   1926     SLR_NO_UI = 0x1,SLR_ANY_MATCH = 0x2,SLR_UPDATE = 0x4,SLR_NOUPDATE = 0x8,SLR_NOSEARCH = 0x10,SLR_NOTRACK = 0x20,SLR_NOLINKINFO = 0x40,
   1927     SLR_INVOKE_MSI = 0x80,SLR_NO_UI_WITH_MSG_PUMP = 0x101
   1928   } SLR_FLAGS;
   1929 
   1930   typedef enum __MIDL___MIDL_itf_shobjidl_0212_0002 {
   1931     SLGP_SHORTPATH = 0x1,SLGP_UNCPRIORITY = 0x2,SLGP_RAWPATH = 0x4
   1932   } SLGP_FLAGS;
   1933 
   1934   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0212_v0_0_c_ifspec;
   1935   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0212_v0_0_s_ifspec;
   1936 #ifndef __IShellLinkA_INTERFACE_DEFINED__
   1937 #define __IShellLinkA_INTERFACE_DEFINED__
   1938   EXTERN_C const IID IID_IShellLinkA;
   1939 #if defined(__cplusplus) && !defined(CINTERFACE)
   1940   struct IShellLinkA : public IUnknown {
   1941   public:
   1942     virtual HRESULT WINAPI GetPath(LPSTR pszFile,int cch,WIN32_FIND_DATAA *pfd,DWORD fFlags) = 0;
   1943     virtual HRESULT WINAPI GetIDList(LPITEMIDLIST *ppidl) = 0;
   1944     virtual HRESULT WINAPI SetIDList(LPCITEMIDLIST pidl) = 0;
   1945     virtual HRESULT WINAPI GetDescription(LPSTR pszName,int cch) = 0;
   1946     virtual HRESULT WINAPI SetDescription(LPCSTR pszName) = 0;
   1947     virtual HRESULT WINAPI GetWorkingDirectory(LPSTR pszDir,int cch) = 0;
   1948     virtual HRESULT WINAPI SetWorkingDirectory(LPCSTR pszDir) = 0;
   1949     virtual HRESULT WINAPI GetArguments(LPSTR pszArgs,int cch) = 0;
   1950     virtual HRESULT WINAPI SetArguments(LPCSTR pszArgs) = 0;
   1951     virtual HRESULT WINAPI GetHotkey(WORD *pwHotkey) = 0;
   1952     virtual HRESULT WINAPI SetHotkey(WORD wHotkey) = 0;
   1953     virtual HRESULT WINAPI GetShowCmd(int *piShowCmd) = 0;
   1954     virtual HRESULT WINAPI SetShowCmd(int iShowCmd) = 0;
   1955     virtual HRESULT WINAPI GetIconLocation(LPSTR pszIconPath,int cch,int *piIcon) = 0;
   1956     virtual HRESULT WINAPI SetIconLocation(LPCSTR pszIconPath,int iIcon) = 0;
   1957     virtual HRESULT WINAPI SetRelativePath(LPCSTR pszPathRel,DWORD dwReserved) = 0;
   1958     virtual HRESULT WINAPI Resolve(HWND hwnd,DWORD fFlags) = 0;
   1959     virtual HRESULT WINAPI SetPath(LPCSTR pszFile) = 0;
   1960   };
   1961 #else
   1962   typedef struct IShellLinkAVtbl {
   1963     BEGIN_INTERFACE
   1964       HRESULT (WINAPI *QueryInterface)(IShellLinkA *This,REFIID riid,void **ppvObject);
   1965       ULONG (WINAPI *AddRef)(IShellLinkA *This);
   1966       ULONG (WINAPI *Release)(IShellLinkA *This);
   1967       HRESULT (WINAPI *GetPath)(IShellLinkA *This,LPSTR pszFile,int cch,WIN32_FIND_DATAA *pfd,DWORD fFlags);
   1968       HRESULT (WINAPI *GetIDList)(IShellLinkA *This,LPITEMIDLIST *ppidl);
   1969       HRESULT (WINAPI *SetIDList)(IShellLinkA *This,LPCITEMIDLIST pidl);
   1970       HRESULT (WINAPI *GetDescription)(IShellLinkA *This,LPSTR pszName,int cch);
   1971       HRESULT (WINAPI *SetDescription)(IShellLinkA *This,LPCSTR pszName);
   1972       HRESULT (WINAPI *GetWorkingDirectory)(IShellLinkA *This,LPSTR pszDir,int cch);
   1973       HRESULT (WINAPI *SetWorkingDirectory)(IShellLinkA *This,LPCSTR pszDir);
   1974       HRESULT (WINAPI *GetArguments)(IShellLinkA *This,LPSTR pszArgs,int cch);
   1975       HRESULT (WINAPI *SetArguments)(IShellLinkA *This,LPCSTR pszArgs);
   1976       HRESULT (WINAPI *GetHotkey)(IShellLinkA *This,WORD *pwHotkey);
   1977       HRESULT (WINAPI *SetHotkey)(IShellLinkA *This,WORD wHotkey);
   1978       HRESULT (WINAPI *GetShowCmd)(IShellLinkA *This,int *piShowCmd);
   1979       HRESULT (WINAPI *SetShowCmd)(IShellLinkA *This,int iShowCmd);
   1980       HRESULT (WINAPI *GetIconLocation)(IShellLinkA *This,LPSTR pszIconPath,int cch,int *piIcon);
   1981       HRESULT (WINAPI *SetIconLocation)(IShellLinkA *This,LPCSTR pszIconPath,int iIcon);
   1982       HRESULT (WINAPI *SetRelativePath)(IShellLinkA *This,LPCSTR pszPathRel,DWORD dwReserved);
   1983       HRESULT (WINAPI *Resolve)(IShellLinkA *This,HWND hwnd,DWORD fFlags);
   1984       HRESULT (WINAPI *SetPath)(IShellLinkA *This,LPCSTR pszFile);
   1985     END_INTERFACE
   1986   } IShellLinkAVtbl;
   1987   struct IShellLinkA {
   1988     CONST_VTBL struct IShellLinkAVtbl *lpVtbl;
   1989   };
   1990 #ifdef COBJMACROS
   1991 #define IShellLinkA_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1992 #define IShellLinkA_AddRef(This) (This)->lpVtbl->AddRef(This)
   1993 #define IShellLinkA_Release(This) (This)->lpVtbl->Release(This)
   1994 #define IShellLinkA_GetPath(This,pszFile,cch,pfd,fFlags) (This)->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags)
   1995 #define IShellLinkA_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
   1996 #define IShellLinkA_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
   1997 #define IShellLinkA_GetDescription(This,pszName,cch) (This)->lpVtbl->GetDescription(This,pszName,cch)
   1998 #define IShellLinkA_SetDescription(This,pszName) (This)->lpVtbl->SetDescription(This,pszName)
   1999 #define IShellLinkA_GetWorkingDirectory(This,pszDir,cch) (This)->lpVtbl->GetWorkingDirectory(This,pszDir,cch)
   2000 #define IShellLinkA_SetWorkingDirectory(This,pszDir) (This)->lpVtbl->SetWorkingDirectory(This,pszDir)
   2001 #define IShellLinkA_GetArguments(This,pszArgs,cch) (This)->lpVtbl->GetArguments(This,pszArgs,cch)
   2002 #define IShellLinkA_SetArguments(This,pszArgs) (This)->lpVtbl->SetArguments(This,pszArgs)
   2003 #define IShellLinkA_GetHotkey(This,pwHotkey) (This)->lpVtbl->GetHotkey(This,pwHotkey)
   2004 #define IShellLinkA_SetHotkey(This,wHotkey) (This)->lpVtbl->SetHotkey(This,wHotkey)
   2005 #define IShellLinkA_GetShowCmd(This,piShowCmd) (This)->lpVtbl->GetShowCmd(This,piShowCmd)
   2006 #define IShellLinkA_SetShowCmd(This,iShowCmd) (This)->lpVtbl->SetShowCmd(This,iShowCmd)
   2007 #define IShellLinkA_GetIconLocation(This,pszIconPath,cch,piIcon) (This)->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon)
   2008 #define IShellLinkA_SetIconLocation(This,pszIconPath,iIcon) (This)->lpVtbl->SetIconLocation(This,pszIconPath,iIcon)
   2009 #define IShellLinkA_SetRelativePath(This,pszPathRel,dwReserved) (This)->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved)
   2010 #define IShellLinkA_Resolve(This,hwnd,fFlags) (This)->lpVtbl->Resolve(This,hwnd,fFlags)
   2011 #define IShellLinkA_SetPath(This,pszFile) (This)->lpVtbl->SetPath(This,pszFile)
   2012 #endif
   2013 #endif
   2014   HRESULT WINAPI IShellLinkA_GetPath_Proxy(IShellLinkA *This,LPSTR pszFile,int cch,WIN32_FIND_DATAA *pfd,DWORD fFlags);
   2015   void __RPC_STUB IShellLinkA_GetPath_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2016   HRESULT WINAPI IShellLinkA_GetIDList_Proxy(IShellLinkA *This,LPITEMIDLIST *ppidl);
   2017   void __RPC_STUB IShellLinkA_GetIDList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2018   HRESULT WINAPI IShellLinkA_SetIDList_Proxy(IShellLinkA *This,LPCITEMIDLIST pidl);
   2019   void __RPC_STUB IShellLinkA_SetIDList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2020   HRESULT WINAPI IShellLinkA_GetDescription_Proxy(IShellLinkA *This,LPSTR pszName,int cch);
   2021   void __RPC_STUB IShellLinkA_GetDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2022   HRESULT WINAPI IShellLinkA_SetDescription_Proxy(IShellLinkA *This,LPCSTR pszName);
   2023   void __RPC_STUB IShellLinkA_SetDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2024   HRESULT WINAPI IShellLinkA_GetWorkingDirectory_Proxy(IShellLinkA *This,LPSTR pszDir,int cch);
   2025   void __RPC_STUB IShellLinkA_GetWorkingDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2026   HRESULT WINAPI IShellLinkA_SetWorkingDirectory_Proxy(IShellLinkA *This,LPCSTR pszDir);
   2027   void __RPC_STUB IShellLinkA_SetWorkingDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2028   HRESULT WINAPI IShellLinkA_GetArguments_Proxy(IShellLinkA *This,LPSTR pszArgs,int cch);
   2029   void __RPC_STUB IShellLinkA_GetArguments_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2030   HRESULT WINAPI IShellLinkA_SetArguments_Proxy(IShellLinkA *This,LPCSTR pszArgs);
   2031   void __RPC_STUB IShellLinkA_SetArguments_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2032   HRESULT WINAPI IShellLinkA_GetHotkey_Proxy(IShellLinkA *This,WORD *pwHotkey);
   2033   void __RPC_STUB IShellLinkA_GetHotkey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2034   HRESULT WINAPI IShellLinkA_SetHotkey_Proxy(IShellLinkA *This,WORD wHotkey);
   2035   void __RPC_STUB IShellLinkA_SetHotkey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2036   HRESULT WINAPI IShellLinkA_GetShowCmd_Proxy(IShellLinkA *This,int *piShowCmd);
   2037   void __RPC_STUB IShellLinkA_GetShowCmd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2038   HRESULT WINAPI IShellLinkA_SetShowCmd_Proxy(IShellLinkA *This,int iShowCmd);
   2039   void __RPC_STUB IShellLinkA_SetShowCmd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2040   HRESULT WINAPI IShellLinkA_GetIconLocation_Proxy(IShellLinkA *This,LPSTR pszIconPath,int cch,int *piIcon);
   2041   void __RPC_STUB IShellLinkA_GetIconLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2042   HRESULT WINAPI IShellLinkA_SetIconLocation_Proxy(IShellLinkA *This,LPCSTR pszIconPath,int iIcon);
   2043   void __RPC_STUB IShellLinkA_SetIconLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2044   HRESULT WINAPI IShellLinkA_SetRelativePath_Proxy(IShellLinkA *This,LPCSTR pszPathRel,DWORD dwReserved);
   2045   void __RPC_STUB IShellLinkA_SetRelativePath_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2046   HRESULT WINAPI IShellLinkA_Resolve_Proxy(IShellLinkA *This,HWND hwnd,DWORD fFlags);
   2047   void __RPC_STUB IShellLinkA_Resolve_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2048   HRESULT WINAPI IShellLinkA_SetPath_Proxy(IShellLinkA *This,LPCSTR pszFile);
   2049   void __RPC_STUB IShellLinkA_SetPath_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2050 #endif
   2051 
   2052 #ifndef __IShellLinkW_INTERFACE_DEFINED__
   2053 #define __IShellLinkW_INTERFACE_DEFINED__
   2054   EXTERN_C const IID IID_IShellLinkW;
   2055 #if defined(__cplusplus) && !defined(CINTERFACE)
   2056   struct IShellLinkW : public IUnknown {
   2057   public:
   2058     virtual HRESULT WINAPI GetPath(LPWSTR pszFile,int cch,WIN32_FIND_DATAW *pfd,DWORD fFlags) = 0;
   2059     virtual HRESULT WINAPI GetIDList(LPITEMIDLIST *ppidl) = 0;
   2060     virtual HRESULT WINAPI SetIDList(LPCITEMIDLIST pidl) = 0;
   2061     virtual HRESULT WINAPI GetDescription(LPWSTR pszName,int cch) = 0;
   2062     virtual HRESULT WINAPI SetDescription(LPCWSTR pszName) = 0;
   2063     virtual HRESULT WINAPI GetWorkingDirectory(LPWSTR pszDir,int cch) = 0;
   2064     virtual HRESULT WINAPI SetWorkingDirectory(LPCWSTR pszDir) = 0;
   2065     virtual HRESULT WINAPI GetArguments(LPWSTR pszArgs,int cch) = 0;
   2066     virtual HRESULT WINAPI SetArguments(LPCWSTR pszArgs) = 0;
   2067     virtual HRESULT WINAPI GetHotkey(WORD *pwHotkey) = 0;
   2068     virtual HRESULT WINAPI SetHotkey(WORD wHotkey) = 0;
   2069     virtual HRESULT WINAPI GetShowCmd(int *piShowCmd) = 0;
   2070     virtual HRESULT WINAPI SetShowCmd(int iShowCmd) = 0;
   2071     virtual HRESULT WINAPI GetIconLocation(LPWSTR pszIconPath,int cch,int *piIcon) = 0;
   2072     virtual HRESULT WINAPI SetIconLocation(LPCWSTR pszIconPath,int iIcon) = 0;
   2073     virtual HRESULT WINAPI SetRelativePath(LPCWSTR pszPathRel,DWORD dwReserved) = 0;
   2074     virtual HRESULT WINAPI Resolve(HWND hwnd,DWORD fFlags) = 0;
   2075     virtual HRESULT WINAPI SetPath(LPCWSTR pszFile) = 0;
   2076   };
   2077 #else
   2078   typedef struct IShellLinkWVtbl {
   2079     BEGIN_INTERFACE
   2080       HRESULT (WINAPI *QueryInterface)(IShellLinkW *This,REFIID riid,void **ppvObject);
   2081       ULONG (WINAPI *AddRef)(IShellLinkW *This);
   2082       ULONG (WINAPI *Release)(IShellLinkW *This);
   2083       HRESULT (WINAPI *GetPath)(IShellLinkW *This,LPWSTR pszFile,int cch,WIN32_FIND_DATAW *pfd,DWORD fFlags);
   2084       HRESULT (WINAPI *GetIDList)(IShellLinkW *This,LPITEMIDLIST *ppidl);
   2085       HRESULT (WINAPI *SetIDList)(IShellLinkW *This,LPCITEMIDLIST pidl);
   2086       HRESULT (WINAPI *GetDescription)(IShellLinkW *This,LPWSTR pszName,int cch);
   2087       HRESULT (WINAPI *SetDescription)(IShellLinkW *This,LPCWSTR pszName);
   2088       HRESULT (WINAPI *GetWorkingDirectory)(IShellLinkW *This,LPWSTR pszDir,int cch);
   2089       HRESULT (WINAPI *SetWorkingDirectory)(IShellLinkW *This,LPCWSTR pszDir);
   2090       HRESULT (WINAPI *GetArguments)(IShellLinkW *This,LPWSTR pszArgs,int cch);
   2091       HRESULT (WINAPI *SetArguments)(IShellLinkW *This,LPCWSTR pszArgs);
   2092       HRESULT (WINAPI *GetHotkey)(IShellLinkW *This,WORD *pwHotkey);
   2093       HRESULT (WINAPI *SetHotkey)(IShellLinkW *This,WORD wHotkey);
   2094       HRESULT (WINAPI *GetShowCmd)(IShellLinkW *This,int *piShowCmd);
   2095       HRESULT (WINAPI *SetShowCmd)(IShellLinkW *This,int iShowCmd);
   2096       HRESULT (WINAPI *GetIconLocation)(IShellLinkW *This,LPWSTR pszIconPath,int cch,int *piIcon);
   2097       HRESULT (WINAPI *SetIconLocation)(IShellLinkW *This,LPCWSTR pszIconPath,int iIcon);
   2098       HRESULT (WINAPI *SetRelativePath)(IShellLinkW *This,LPCWSTR pszPathRel,DWORD dwReserved);
   2099       HRESULT (WINAPI *Resolve)(IShellLinkW *This,HWND hwnd,DWORD fFlags);
   2100       HRESULT (WINAPI *SetPath)(IShellLinkW *This,LPCWSTR pszFile);
   2101     END_INTERFACE
   2102   } IShellLinkWVtbl;
   2103   struct IShellLinkW {
   2104     CONST_VTBL struct IShellLinkWVtbl *lpVtbl;
   2105   };
   2106 #ifdef COBJMACROS
   2107 #define IShellLinkW_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2108 #define IShellLinkW_AddRef(This) (This)->lpVtbl->AddRef(This)
   2109 #define IShellLinkW_Release(This) (This)->lpVtbl->Release(This)
   2110 #define IShellLinkW_GetPath(This,pszFile,cch,pfd,fFlags) (This)->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags)
   2111 #define IShellLinkW_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
   2112 #define IShellLinkW_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
   2113 #define IShellLinkW_GetDescription(This,pszName,cch) (This)->lpVtbl->GetDescription(This,pszName,cch)
   2114 #define IShellLinkW_SetDescription(This,pszName) (This)->lpVtbl->SetDescription(This,pszName)
   2115 #define IShellLinkW_GetWorkingDirectory(This,pszDir,cch) (This)->lpVtbl->GetWorkingDirectory(This,pszDir,cch)
   2116 #define IShellLinkW_SetWorkingDirectory(This,pszDir) (This)->lpVtbl->SetWorkingDirectory(This,pszDir)
   2117 #define IShellLinkW_GetArguments(This,pszArgs,cch) (This)->lpVtbl->GetArguments(This,pszArgs,cch)
   2118 #define IShellLinkW_SetArguments(This,pszArgs) (This)->lpVtbl->SetArguments(This,pszArgs)
   2119 #define IShellLinkW_GetHotkey(This,pwHotkey) (This)->lpVtbl->GetHotkey(This,pwHotkey)
   2120 #define IShellLinkW_SetHotkey(This,wHotkey) (This)->lpVtbl->SetHotkey(This,wHotkey)
   2121 #define IShellLinkW_GetShowCmd(This,piShowCmd) (This)->lpVtbl->GetShowCmd(This,piShowCmd)
   2122 #define IShellLinkW_SetShowCmd(This,iShowCmd) (This)->lpVtbl->SetShowCmd(This,iShowCmd)
   2123 #define IShellLinkW_GetIconLocation(This,pszIconPath,cch,piIcon) (This)->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon)
   2124 #define IShellLinkW_SetIconLocation(This,pszIconPath,iIcon) (This)->lpVtbl->SetIconLocation(This,pszIconPath,iIcon)
   2125 #define IShellLinkW_SetRelativePath(This,pszPathRel,dwReserved) (This)->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved)
   2126 #define IShellLinkW_Resolve(This,hwnd,fFlags) (This)->lpVtbl->Resolve(This,hwnd,fFlags)
   2127 #define IShellLinkW_SetPath(This,pszFile) (This)->lpVtbl->SetPath(This,pszFile)
   2128 #endif
   2129 #endif
   2130   HRESULT WINAPI IShellLinkW_GetPath_Proxy(IShellLinkW *This,LPWSTR pszFile,int cch,WIN32_FIND_DATAW *pfd,DWORD fFlags);
   2131   void __RPC_STUB IShellLinkW_GetPath_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2132   HRESULT WINAPI IShellLinkW_GetIDList_Proxy(IShellLinkW *This,LPITEMIDLIST *ppidl);
   2133   void __RPC_STUB IShellLinkW_GetIDList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2134   HRESULT WINAPI IShellLinkW_SetIDList_Proxy(IShellLinkW *This,LPCITEMIDLIST pidl);
   2135   void __RPC_STUB IShellLinkW_SetIDList_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2136   HRESULT WINAPI IShellLinkW_GetDescription_Proxy(IShellLinkW *This,LPWSTR pszName,int cch);
   2137   void __RPC_STUB IShellLinkW_GetDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2138   HRESULT WINAPI IShellLinkW_SetDescription_Proxy(IShellLinkW *This,LPCWSTR pszName);
   2139   void __RPC_STUB IShellLinkW_SetDescription_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2140   HRESULT WINAPI IShellLinkW_GetWorkingDirectory_Proxy(IShellLinkW *This,LPWSTR pszDir,int cch);
   2141   void __RPC_STUB IShellLinkW_GetWorkingDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2142   HRESULT WINAPI IShellLinkW_SetWorkingDirectory_Proxy(IShellLinkW *This,LPCWSTR pszDir);
   2143   void __RPC_STUB IShellLinkW_SetWorkingDirectory_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2144   HRESULT WINAPI IShellLinkW_GetArguments_Proxy(IShellLinkW *This,LPWSTR pszArgs,int cch);
   2145   void __RPC_STUB IShellLinkW_GetArguments_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2146   HRESULT WINAPI IShellLinkW_SetArguments_Proxy(IShellLinkW *This,LPCWSTR pszArgs);
   2147   void __RPC_STUB IShellLinkW_SetArguments_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2148   HRESULT WINAPI IShellLinkW_GetHotkey_Proxy(IShellLinkW *This,WORD *pwHotkey);
   2149   void __RPC_STUB IShellLinkW_GetHotkey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2150   HRESULT WINAPI IShellLinkW_SetHotkey_Proxy(IShellLinkW *This,WORD wHotkey);
   2151   void __RPC_STUB IShellLinkW_SetHotkey_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2152   HRESULT WINAPI IShellLinkW_GetShowCmd_Proxy(IShellLinkW *This,int *piShowCmd);
   2153   void __RPC_STUB IShellLinkW_GetShowCmd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2154   HRESULT WINAPI IShellLinkW_SetShowCmd_Proxy(IShellLinkW *This,int iShowCmd);
   2155   void __RPC_STUB IShellLinkW_SetShowCmd_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2156   HRESULT WINAPI IShellLinkW_GetIconLocation_Proxy(IShellLinkW *This,LPWSTR pszIconPath,int cch,int *piIcon);
   2157   void __RPC_STUB IShellLinkW_GetIconLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2158   HRESULT WINAPI IShellLinkW_SetIconLocation_Proxy(IShellLinkW *This,LPCWSTR pszIconPath,int iIcon);
   2159   void __RPC_STUB IShellLinkW_SetIconLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2160   HRESULT WINAPI IShellLinkW_SetRelativePath_Proxy(IShellLinkW *This,LPCWSTR pszPathRel,DWORD dwReserved);
   2161   void __RPC_STUB IShellLinkW_SetRelativePath_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2162   HRESULT WINAPI IShellLinkW_Resolve_Proxy(IShellLinkW *This,HWND hwnd,DWORD fFlags);
   2163   void __RPC_STUB IShellLinkW_Resolve_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2164   HRESULT WINAPI IShellLinkW_SetPath_Proxy(IShellLinkW *This,LPCWSTR pszFile);
   2165   void __RPC_STUB IShellLinkW_SetPath_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2166 #endif
   2167 
   2168 #ifndef __IActionProgressDialog_INTERFACE_DEFINED__
   2169 #define __IActionProgressDialog_INTERFACE_DEFINED__
   2170   enum __MIDL_IActionProgressDialog_0001 {
   2171     SPINITF_NORMAL = 0,SPINITF_MODAL = 0x1,SPINITF_NOMINIMIZE = 0x8
   2172   };
   2173   typedef DWORD SPINITF;
   2174 
   2175   EXTERN_C const IID IID_IActionProgressDialog;
   2176 #if defined(__cplusplus) && !defined(CINTERFACE)
   2177   struct IActionProgressDialog : public IUnknown {
   2178   public:
   2179     virtual HRESULT WINAPI Initialize(SPINITF flags,LPCWSTR pszTitle,LPCWSTR pszCancel) = 0;
   2180     virtual HRESULT WINAPI Stop(void) = 0;
   2181   };
   2182 #else
   2183   typedef struct IActionProgressDialogVtbl {
   2184     BEGIN_INTERFACE
   2185       HRESULT (WINAPI *QueryInterface)(IActionProgressDialog *This,REFIID riid,void **ppvObject);
   2186       ULONG (WINAPI *AddRef)(IActionProgressDialog *This);
   2187       ULONG (WINAPI *Release)(IActionProgressDialog *This);
   2188       HRESULT (WINAPI *Initialize)(IActionProgressDialog *This,SPINITF flags,LPCWSTR pszTitle,LPCWSTR pszCancel);
   2189       HRESULT (WINAPI *Stop)(IActionProgressDialog *This);
   2190     END_INTERFACE
   2191   } IActionProgressDialogVtbl;
   2192   struct IActionProgressDialog {
   2193     CONST_VTBL struct IActionProgressDialogVtbl *lpVtbl;
   2194   };
   2195 #ifdef COBJMACROS
   2196 #define IActionProgressDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2197 #define IActionProgressDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
   2198 #define IActionProgressDialog_Release(This) (This)->lpVtbl->Release(This)
   2199 #define IActionProgressDialog_Initialize(This,flags,pszTitle,pszCancel) (This)->lpVtbl->Initialize(This,flags,pszTitle,pszCancel)
   2200 #define IActionProgressDialog_Stop(This) (This)->lpVtbl->Stop(This)
   2201 #endif
   2202 #endif
   2203   HRESULT WINAPI IActionProgressDialog_Initialize_Proxy(IActionProgressDialog *This,SPINITF flags,LPCWSTR pszTitle,LPCWSTR pszCancel);
   2204   void __RPC_STUB IActionProgressDialog_Initialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2205   HRESULT WINAPI IActionProgressDialog_Stop_Proxy(IActionProgressDialog *This);
   2206   void __RPC_STUB IActionProgressDialog_Stop_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2207 #endif
   2208 
   2209 #ifndef __IHWEventHandler_INTERFACE_DEFINED__
   2210 #define __IHWEventHandler_INTERFACE_DEFINED__
   2211   EXTERN_C const IID IID_IHWEventHandler;
   2212 #if defined(__cplusplus) && !defined(CINTERFACE)
   2213   struct IHWEventHandler : public IUnknown {
   2214   public:
   2215     virtual HRESULT WINAPI Initialize(LPCWSTR pszParams) = 0;
   2216     virtual HRESULT WINAPI HandleEvent(LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType) = 0;
   2217     virtual HRESULT WINAPI HandleEventWithContent(LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,LPCWSTR pszContentTypeHandler,IDataObject *pdataobject) = 0;
   2218   };
   2219 #else
   2220   typedef struct IHWEventHandlerVtbl {
   2221     BEGIN_INTERFACE
   2222       HRESULT (WINAPI *QueryInterface)(IHWEventHandler *This,REFIID riid,void **ppvObject);
   2223       ULONG (WINAPI *AddRef)(IHWEventHandler *This);
   2224       ULONG (WINAPI *Release)(IHWEventHandler *This);
   2225       HRESULT (WINAPI *Initialize)(IHWEventHandler *This,LPCWSTR pszParams);
   2226       HRESULT (WINAPI *HandleEvent)(IHWEventHandler *This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType);
   2227       HRESULT (WINAPI *HandleEventWithContent)(IHWEventHandler *This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,LPCWSTR pszContentTypeHandler,IDataObject *pdataobject);
   2228     END_INTERFACE
   2229   } IHWEventHandlerVtbl;
   2230   struct IHWEventHandler {
   2231     CONST_VTBL struct IHWEventHandlerVtbl *lpVtbl;
   2232   };
   2233 #ifdef COBJMACROS
   2234 #define IHWEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2235 #define IHWEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
   2236 #define IHWEventHandler_Release(This) (This)->lpVtbl->Release(This)
   2237 #define IHWEventHandler_Initialize(This,pszParams) (This)->lpVtbl->Initialize(This,pszParams)
   2238 #define IHWEventHandler_HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType) (This)->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType)
   2239 #define IHWEventHandler_HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject) (This)->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject)
   2240 #endif
   2241 #endif
   2242   HRESULT WINAPI IHWEventHandler_Initialize_Proxy(IHWEventHandler *This,LPCWSTR pszParams);
   2243   void __RPC_STUB IHWEventHandler_Initialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2244   HRESULT WINAPI IHWEventHandler_HandleEvent_Proxy(IHWEventHandler *This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType);
   2245   void __RPC_STUB IHWEventHandler_HandleEvent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2246   HRESULT WINAPI IHWEventHandler_HandleEventWithContent_Proxy(IHWEventHandler *This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,LPCWSTR pszContentTypeHandler,IDataObject *pdataobject);
   2247   void __RPC_STUB IHWEventHandler_HandleEventWithContent_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2248 #endif
   2249 
   2250 #define ARCONTENT_AUTORUNINF 0x00000002
   2251 #define ARCONTENT_AUDIOCD 0x00000004
   2252 #define ARCONTENT_DVDMOVIE 0x00000008
   2253 #define ARCONTENT_BLANKCD 0x00000010
   2254 #define ARCONTENT_BLANKDVD 0x00000020
   2255 #define ARCONTENT_UNKNOWNCONTENT 0x00000040
   2256 #define ARCONTENT_AUTOPLAYPIX 0x00000080
   2257 #define ARCONTENT_AUTOPLAYMUSIC 0x00000100
   2258 #define ARCONTENT_AUTOPLAYVIDEO 0x00000200
   2259 
   2260   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0216_v0_0_c_ifspec;
   2261   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0216_v0_0_s_ifspec;
   2262 #ifndef __IQueryCancelAutoPlay_INTERFACE_DEFINED__
   2263 #define __IQueryCancelAutoPlay_INTERFACE_DEFINED__
   2264   EXTERN_C const IID IID_IQueryCancelAutoPlay;
   2265 #if defined(__cplusplus) && !defined(CINTERFACE)
   2266   struct IQueryCancelAutoPlay : public IUnknown {
   2267   public:
   2268     virtual HRESULT WINAPI AllowAutoPlay(LPCWSTR pszPath,DWORD dwContentType,LPCWSTR pszLabel,DWORD dwSerialNumber) = 0;
   2269   };
   2270 #else
   2271   typedef struct IQueryCancelAutoPlayVtbl {
   2272     BEGIN_INTERFACE
   2273       HRESULT (WINAPI *QueryInterface)(IQueryCancelAutoPlay *This,REFIID riid,void **ppvObject);
   2274       ULONG (WINAPI *AddRef)(IQueryCancelAutoPlay *This);
   2275       ULONG (WINAPI *Release)(IQueryCancelAutoPlay *This);
   2276       HRESULT (WINAPI *AllowAutoPlay)(IQueryCancelAutoPlay *This,LPCWSTR pszPath,DWORD dwContentType,LPCWSTR pszLabel,DWORD dwSerialNumber);
   2277     END_INTERFACE
   2278   } IQueryCancelAutoPlayVtbl;
   2279   struct IQueryCancelAutoPlay {
   2280     CONST_VTBL struct IQueryCancelAutoPlayVtbl *lpVtbl;
   2281   };
   2282 #ifdef COBJMACROS
   2283 #define IQueryCancelAutoPlay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2284 #define IQueryCancelAutoPlay_AddRef(This) (This)->lpVtbl->AddRef(This)
   2285 #define IQueryCancelAutoPlay_Release(This) (This)->lpVtbl->Release(This)
   2286 #define IQueryCancelAutoPlay_AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber) (This)->lpVtbl->AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber)
   2287 #endif
   2288 #endif
   2289   HRESULT WINAPI IQueryCancelAutoPlay_AllowAutoPlay_Proxy(IQueryCancelAutoPlay *This,LPCWSTR pszPath,DWORD dwContentType,LPCWSTR pszLabel,DWORD dwSerialNumber);
   2290   void __RPC_STUB IQueryCancelAutoPlay_AllowAutoPlay_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2291 #endif
   2292 
   2293 #ifndef __IActionProgress_INTERFACE_DEFINED__
   2294 #define __IActionProgress_INTERFACE_DEFINED__
   2295   enum __MIDL_IActionProgress_0001 {
   2296     SPBEGINF_NORMAL = 0,SPBEGINF_AUTOTIME = 0x2,SPBEGINF_NOPROGRESSBAR = 0x10,SPBEGINF_MARQUEEPROGRESS = 0x20
   2297   };
   2298   typedef DWORD SPBEGINF;
   2299 
   2300   typedef enum _SPACTION {
   2301     SPACTION_NONE = 0,
   2302     SPACTION_MOVING,SPACTION_COPYING,SPACTION_RECYCLING,SPACTION_APPLYINGATTRIBS,
   2303     SPACTION_DOWNLOADING,SPACTION_SEARCHING_INTERNET,SPACTION_CALCULATING,
   2304     SPACTION_UPLOADING,SPACTION_SEARCHING_FILES
   2305   } SPACTION;
   2306   typedef enum _SPTEXT {
   2307     SPTEXT_ACTIONDESCRIPTION = 1,SPTEXT_ACTIONDETAIL = SPTEXT_ACTIONDESCRIPTION + 1
   2308   } SPTEXT;
   2309 
   2310   EXTERN_C const IID IID_IActionProgress;
   2311 #if defined(__cplusplus) && !defined(CINTERFACE)
   2312   struct IActionProgress : public IUnknown {
   2313   public:
   2314     virtual HRESULT WINAPI Begin(SPACTION action,SPBEGINF flags) = 0;
   2315     virtual HRESULT WINAPI UpdateProgress(ULONGLONG ulCompleted,ULONGLONG ulTotal) = 0;
   2316     virtual HRESULT WINAPI UpdateText(SPTEXT sptext,LPCWSTR pszText,WINBOOL fMayCompact) = 0;
   2317     virtual HRESULT WINAPI QueryCancel(WINBOOL *pfCancelled) = 0;
   2318     virtual HRESULT WINAPI ResetCancel(void) = 0;
   2319     virtual HRESULT WINAPI End(void) = 0;
   2320   };
   2321 #else
   2322   typedef struct IActionProgressVtbl {
   2323     BEGIN_INTERFACE
   2324       HRESULT (WINAPI *QueryInterface)(IActionProgress *This,REFIID riid,void **ppvObject);
   2325       ULONG (WINAPI *AddRef)(IActionProgress *This);
   2326       ULONG (WINAPI *Release)(IActionProgress *This);
   2327       HRESULT (WINAPI *Begin)(IActionProgress *This,SPACTION action,SPBEGINF flags);
   2328       HRESULT (WINAPI *UpdateProgress)(IActionProgress *This,ULONGLONG ulCompleted,ULONGLONG ulTotal);
   2329       HRESULT (WINAPI *UpdateText)(IActionProgress *This,SPTEXT sptext,LPCWSTR pszText,WINBOOL fMayCompact);
   2330       HRESULT (WINAPI *QueryCancel)(IActionProgress *This,WINBOOL *pfCancelled);
   2331       HRESULT (WINAPI *ResetCancel)(IActionProgress *This);
   2332       HRESULT (WINAPI *End)(IActionProgress *This);
   2333     END_INTERFACE
   2334   } IActionProgressVtbl;
   2335   struct IActionProgress {
   2336     CONST_VTBL struct IActionProgressVtbl *lpVtbl;
   2337   };
   2338 #ifdef COBJMACROS
   2339 #define IActionProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2340 #define IActionProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
   2341 #define IActionProgress_Release(This) (This)->lpVtbl->Release(This)
   2342 #define IActionProgress_Begin(This,action,flags) (This)->lpVtbl->Begin(This,action,flags)
   2343 #define IActionProgress_UpdateProgress(This,ulCompleted,ulTotal) (This)->lpVtbl->UpdateProgress(This,ulCompleted,ulTotal)
   2344 #define IActionProgress_UpdateText(This,sptext,pszText,fMayCompact) (This)->lpVtbl->UpdateText(This,sptext,pszText,fMayCompact)
   2345 #define IActionProgress_QueryCancel(This,pfCancelled) (This)->lpVtbl->QueryCancel(This,pfCancelled)
   2346 #define IActionProgress_ResetCancel(This) (This)->lpVtbl->ResetCancel(This)
   2347 #define IActionProgress_End(This) (This)->lpVtbl->End(This)
   2348 #endif
   2349 #endif
   2350   HRESULT WINAPI IActionProgress_Begin_Proxy(IActionProgress *This,SPACTION action,SPBEGINF flags);
   2351   void __RPC_STUB IActionProgress_Begin_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2352   HRESULT WINAPI IActionProgress_UpdateProgress_Proxy(IActionProgress *This,ULONGLONG ulCompleted,ULONGLONG ulTotal);
   2353   void __RPC_STUB IActionProgress_UpdateProgress_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2354   HRESULT WINAPI IActionProgress_UpdateText_Proxy(IActionProgress *This,SPTEXT sptext,LPCWSTR pszText,WINBOOL fMayCompact);
   2355   void __RPC_STUB IActionProgress_UpdateText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2356   HRESULT WINAPI IActionProgress_QueryCancel_Proxy(IActionProgress *This,WINBOOL *pfCancelled);
   2357   void __RPC_STUB IActionProgress_QueryCancel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2358   HRESULT WINAPI IActionProgress_ResetCancel_Proxy(IActionProgress *This);
   2359   void __RPC_STUB IActionProgress_ResetCancel_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2360   HRESULT WINAPI IActionProgress_End_Proxy(IActionProgress *This);
   2361   void __RPC_STUB IActionProgress_End_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2362 #endif
   2363 
   2364 #ifndef __IShellExtInit_INTERFACE_DEFINED__
   2365 #define __IShellExtInit_INTERFACE_DEFINED__
   2366   EXTERN_C const IID IID_IShellExtInit;
   2367 #if defined(__cplusplus) && !defined(CINTERFACE)
   2368   struct IShellExtInit : public IUnknown {
   2369   public:
   2370     virtual HRESULT WINAPI Initialize(LPCITEMIDLIST pidlFolder,IDataObject *pdtobj,HKEY hkeyProgID) = 0;
   2371   };
   2372 #else
   2373   typedef struct IShellExtInitVtbl {
   2374     BEGIN_INTERFACE
   2375       HRESULT (WINAPI *QueryInterface)(IShellExtInit *This,REFIID riid,void **ppvObject);
   2376       ULONG (WINAPI *AddRef)(IShellExtInit *This);
   2377       ULONG (WINAPI *Release)(IShellExtInit *This);
   2378       HRESULT (WINAPI *Initialize)(IShellExtInit *This,LPCITEMIDLIST pidlFolder,IDataObject *pdtobj,HKEY hkeyProgID);
   2379     END_INTERFACE
   2380   } IShellExtInitVtbl;
   2381   struct IShellExtInit {
   2382     CONST_VTBL struct IShellExtInitVtbl *lpVtbl;
   2383   };
   2384 #ifdef COBJMACROS
   2385 #define IShellExtInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2386 #define IShellExtInit_AddRef(This) (This)->lpVtbl->AddRef(This)
   2387 #define IShellExtInit_Release(This) (This)->lpVtbl->Release(This)
   2388 #define IShellExtInit_Initialize(This,pidlFolder,pdtobj,hkeyProgID) (This)->lpVtbl->Initialize(This,pidlFolder,pdtobj,hkeyProgID)
   2389 #endif
   2390 #endif
   2391   HRESULT WINAPI IShellExtInit_Initialize_Proxy(IShellExtInit *This,LPCITEMIDLIST pidlFolder,IDataObject *pdtobj,HKEY hkeyProgID);
   2392   void __RPC_STUB IShellExtInit_Initialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2393 #endif
   2394 
   2395   typedef IShellExtInit *LPSHELLEXTINIT;
   2396 
   2397   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0219_v0_0_c_ifspec;
   2398   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0219_v0_0_s_ifspec;
   2399 #ifndef __IShellPropSheetExt_INTERFACE_DEFINED__
   2400 #define __IShellPropSheetExt_INTERFACE_DEFINED__
   2401   enum __MIDL_IShellPropSheetExt_0001 {
   2402     EXPPS_FILETYPES = 0x1
   2403   };
   2404   typedef UINT EXPPS;
   2405 
   2406   EXTERN_C const IID IID_IShellPropSheetExt;
   2407 #if defined(__cplusplus) && !defined(CINTERFACE)
   2408   struct IShellPropSheetExt : public IUnknown {
   2409   public:
   2410     virtual HRESULT WINAPI AddPages(LPFNSVADDPROPSHEETPAGE pfnAddPage,LPARAM lParam) = 0;
   2411     virtual HRESULT WINAPI ReplacePage(EXPPS uPageID,LPFNSVADDPROPSHEETPAGE pfnReplaceWith,LPARAM lParam) = 0;
   2412   };
   2413 #else
   2414   typedef struct IShellPropSheetExtVtbl {
   2415     BEGIN_INTERFACE
   2416       HRESULT (WINAPI *QueryInterface)(IShellPropSheetExt *This,REFIID riid,void **ppvObject);
   2417       ULONG (WINAPI *AddRef)(IShellPropSheetExt *This);
   2418       ULONG (WINAPI *Release)(IShellPropSheetExt *This);
   2419       HRESULT (WINAPI *AddPages)(IShellPropSheetExt *This,LPFNSVADDPROPSHEETPAGE pfnAddPage,LPARAM lParam);
   2420       HRESULT (WINAPI *ReplacePage)(IShellPropSheetExt *This,EXPPS uPageID,LPFNSVADDPROPSHEETPAGE pfnReplaceWith,LPARAM lParam);
   2421     END_INTERFACE
   2422   } IShellPropSheetExtVtbl;
   2423   struct IShellPropSheetExt {
   2424     CONST_VTBL struct IShellPropSheetExtVtbl *lpVtbl;
   2425   };
   2426 #ifdef COBJMACROS
   2427 #define IShellPropSheetExt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2428 #define IShellPropSheetExt_AddRef(This) (This)->lpVtbl->AddRef(This)
   2429 #define IShellPropSheetExt_Release(This) (This)->lpVtbl->Release(This)
   2430 #define IShellPropSheetExt_AddPages(This,pfnAddPage,lParam) (This)->lpVtbl->AddPages(This,pfnAddPage,lParam)
   2431 #define IShellPropSheetExt_ReplacePage(This,uPageID,pfnReplaceWith,lParam) (This)->lpVtbl->ReplacePage(This,uPageID,pfnReplaceWith,lParam)
   2432 #endif
   2433 #endif
   2434   HRESULT WINAPI IShellPropSheetExt_AddPages_Proxy(IShellPropSheetExt *This,LPFNSVADDPROPSHEETPAGE pfnAddPage,LPARAM lParam);
   2435   void __RPC_STUB IShellPropSheetExt_AddPages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2436   HRESULT WINAPI IShellPropSheetExt_ReplacePage_Proxy(IShellPropSheetExt *This,EXPPS uPageID,LPFNSVADDPROPSHEETPAGE pfnReplaceWith,LPARAM lParam);
   2437   void __RPC_STUB IShellPropSheetExt_ReplacePage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2438 #endif
   2439 
   2440   typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;
   2441 
   2442   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0220_v0_0_c_ifspec;
   2443   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0220_v0_0_s_ifspec;
   2444 #ifndef __IRemoteComputer_INTERFACE_DEFINED__
   2445 #define __IRemoteComputer_INTERFACE_DEFINED__
   2446   EXTERN_C const IID IID_IRemoteComputer;
   2447 #if defined(__cplusplus) && !defined(CINTERFACE)
   2448   struct IRemoteComputer : public IUnknown {
   2449   public:
   2450     virtual HRESULT WINAPI Initialize(LPCWSTR pszMachine,WINBOOL bEnumerating) = 0;
   2451   };
   2452 #else
   2453   typedef struct IRemoteComputerVtbl {
   2454     BEGIN_INTERFACE
   2455       HRESULT (WINAPI *QueryInterface)(IRemoteComputer *This,REFIID riid,void **ppvObject);
   2456       ULONG (WINAPI *AddRef)(IRemoteComputer *This);
   2457       ULONG (WINAPI *Release)(IRemoteComputer *This);
   2458       HRESULT (WINAPI *Initialize)(IRemoteComputer *This,LPCWSTR pszMachine,WINBOOL bEnumerating);
   2459     END_INTERFACE
   2460   } IRemoteComputerVtbl;
   2461   struct IRemoteComputer {
   2462     CONST_VTBL struct IRemoteComputerVtbl *lpVtbl;
   2463   };
   2464 #ifdef COBJMACROS
   2465 #define IRemoteComputer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2466 #define IRemoteComputer_AddRef(This) (This)->lpVtbl->AddRef(This)
   2467 #define IRemoteComputer_Release(This) (This)->lpVtbl->Release(This)
   2468 #define IRemoteComputer_Initialize(This,pszMachine,bEnumerating) (This)->lpVtbl->Initialize(This,pszMachine,bEnumerating)
   2469 #endif
   2470 #endif
   2471   HRESULT WINAPI IRemoteComputer_Initialize_Proxy(IRemoteComputer *This,LPCWSTR pszMachine,WINBOOL bEnumerating);
   2472   void __RPC_STUB IRemoteComputer_Initialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2473 #endif
   2474 
   2475 #ifndef __IQueryContinue_INTERFACE_DEFINED__
   2476 #define __IQueryContinue_INTERFACE_DEFINED__
   2477   EXTERN_C const IID IID_IQueryContinue;
   2478 #if defined(__cplusplus) && !defined(CINTERFACE)
   2479   struct IQueryContinue : public IUnknown {
   2480   public:
   2481     virtual HRESULT WINAPI QueryContinue(void) = 0;
   2482   };
   2483 #else
   2484   typedef struct IQueryContinueVtbl {
   2485     BEGIN_INTERFACE
   2486       HRESULT (WINAPI *QueryInterface)(IQueryContinue *This,REFIID riid,void **ppvObject);
   2487       ULONG (WINAPI *AddRef)(IQueryContinue *This);
   2488       ULONG (WINAPI *Release)(IQueryContinue *This);
   2489       HRESULT (WINAPI *QueryContinue)(IQueryContinue *This);
   2490     END_INTERFACE
   2491   } IQueryContinueVtbl;
   2492   struct IQueryContinue {
   2493     CONST_VTBL struct IQueryContinueVtbl *lpVtbl;
   2494   };
   2495 #ifdef COBJMACROS
   2496 #define IQueryContinue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2497 #define IQueryContinue_AddRef(This) (This)->lpVtbl->AddRef(This)
   2498 #define IQueryContinue_Release(This) (This)->lpVtbl->Release(This)
   2499 #define IQueryContinue_QueryContinue(This) (This)->lpVtbl->QueryContinue(This)
   2500 #endif
   2501 #endif
   2502   HRESULT WINAPI IQueryContinue_QueryContinue_Proxy(IQueryContinue *This);
   2503   void __RPC_STUB IQueryContinue_QueryContinue_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2504 #endif
   2505 
   2506 #ifndef __IUserNotification_INTERFACE_DEFINED__
   2507 #define __IUserNotification_INTERFACE_DEFINED__
   2508   EXTERN_C const IID IID_IUserNotification;
   2509 #if defined(__cplusplus) && !defined(CINTERFACE)
   2510   struct IUserNotification : public IUnknown {
   2511   public:
   2512     virtual HRESULT WINAPI SetBalloonInfo(LPCWSTR pszTitle,LPCWSTR pszText,DWORD dwInfoFlags) = 0;
   2513     virtual HRESULT WINAPI SetBalloonRetry(DWORD dwShowTime,DWORD dwInterval,UINT cRetryCount) = 0;
   2514     virtual HRESULT WINAPI SetIconInfo(HICON hIcon,LPCWSTR pszToolTip) = 0;
   2515     virtual HRESULT WINAPI Show(IQueryContinue *pqc,DWORD dwContinuePollInterval) = 0;
   2516     virtual HRESULT WINAPI PlaySound(LPCWSTR pszSoundName) = 0;
   2517   };
   2518 #else
   2519   typedef struct IUserNotificationVtbl {
   2520     BEGIN_INTERFACE
   2521       HRESULT (WINAPI *QueryInterface)(IUserNotification *This,REFIID riid,void **ppvObject);
   2522       ULONG (WINAPI *AddRef)(IUserNotification *This);
   2523       ULONG (WINAPI *Release)(IUserNotification *This);
   2524       HRESULT (WINAPI *SetBalloonInfo)(IUserNotification *This,LPCWSTR pszTitle,LPCWSTR pszText,DWORD dwInfoFlags);
   2525       HRESULT (WINAPI *SetBalloonRetry)(IUserNotification *This,DWORD dwShowTime,DWORD dwInterval,UINT cRetryCount);
   2526       HRESULT (WINAPI *SetIconInfo)(IUserNotification *This,HICON hIcon,LPCWSTR pszToolTip);
   2527       HRESULT (WINAPI *Show)(IUserNotification *This,IQueryContinue *pqc,DWORD dwContinuePollInterval);
   2528       HRESULT (WINAPI *PlaySound)(IUserNotification *This,LPCWSTR pszSoundName);
   2529     END_INTERFACE
   2530   } IUserNotificationVtbl;
   2531   struct IUserNotification {
   2532     CONST_VTBL struct IUserNotificationVtbl *lpVtbl;
   2533   };
   2534 #ifdef COBJMACROS
   2535 #define IUserNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2536 #define IUserNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
   2537 #define IUserNotification_Release(This) (This)->lpVtbl->Release(This)
   2538 #define IUserNotification_SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags) (This)->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags)
   2539 #define IUserNotification_SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount) (This)->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount)
   2540 #define IUserNotification_SetIconInfo(This,hIcon,pszToolTip) (This)->lpVtbl->SetIconInfo(This,hIcon,pszToolTip)
   2541 #define IUserNotification_Show(This,pqc,dwContinuePollInterval) (This)->lpVtbl->Show(This,pqc,dwContinuePollInterval)
   2542 #define IUserNotification_PlaySound(This,pszSoundName) (This)->lpVtbl->PlaySound(This,pszSoundName)
   2543 #endif
   2544 #endif
   2545   HRESULT WINAPI IUserNotification_SetBalloonInfo_Proxy(IUserNotification *This,LPCWSTR pszTitle,LPCWSTR pszText,DWORD dwInfoFlags);
   2546   void __RPC_STUB IUserNotification_SetBalloonInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2547   HRESULT WINAPI IUserNotification_SetBalloonRetry_Proxy(IUserNotification *This,DWORD dwShowTime,DWORD dwInterval,UINT cRetryCount);
   2548   void __RPC_STUB IUserNotification_SetBalloonRetry_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2549   HRESULT WINAPI IUserNotification_SetIconInfo_Proxy(IUserNotification *This,HICON hIcon,LPCWSTR pszToolTip);
   2550   void __RPC_STUB IUserNotification_SetIconInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2551   HRESULT WINAPI IUserNotification_Show_Proxy(IUserNotification *This,IQueryContinue *pqc,DWORD dwContinuePollInterval);
   2552   void __RPC_STUB IUserNotification_Show_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2553   HRESULT WINAPI IUserNotification_PlaySound_Proxy(IUserNotification *This,LPCWSTR pszSoundName);
   2554   void __RPC_STUB IUserNotification_PlaySound_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2555 #endif
   2556 
   2557 #ifndef __IItemNameLimits_INTERFACE_DEFINED__
   2558 #define __IItemNameLimits_INTERFACE_DEFINED__
   2559   EXTERN_C const IID IID_IItemNameLimits;
   2560 #if defined(__cplusplus) && !defined(CINTERFACE)
   2561   struct IItemNameLimits : public IUnknown {
   2562   public:
   2563     virtual HRESULT WINAPI GetValidCharacters(LPWSTR *ppwszValidChars,LPWSTR *ppwszInvalidChars) = 0;
   2564     virtual HRESULT WINAPI GetMaxLength(LPCWSTR pszName,int *piMaxNameLen) = 0;
   2565   };
   2566 #else
   2567   typedef struct IItemNameLimitsVtbl {
   2568     BEGIN_INTERFACE
   2569       HRESULT (WINAPI *QueryInterface)(IItemNameLimits *This,REFIID riid,void **ppvObject);
   2570       ULONG (WINAPI *AddRef)(IItemNameLimits *This);
   2571       ULONG (WINAPI *Release)(IItemNameLimits *This);
   2572       HRESULT (WINAPI *GetValidCharacters)(IItemNameLimits *This,LPWSTR *ppwszValidChars,LPWSTR *ppwszInvalidChars);
   2573       HRESULT (WINAPI *GetMaxLength)(IItemNameLimits *This,LPCWSTR pszName,int *piMaxNameLen);
   2574     END_INTERFACE
   2575   } IItemNameLimitsVtbl;
   2576   struct IItemNameLimits {
   2577     CONST_VTBL struct IItemNameLimitsVtbl *lpVtbl;
   2578   };
   2579 #ifdef COBJMACROS
   2580 #define IItemNameLimits_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2581 #define IItemNameLimits_AddRef(This) (This)->lpVtbl->AddRef(This)
   2582 #define IItemNameLimits_Release(This) (This)->lpVtbl->Release(This)
   2583 #define IItemNameLimits_GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars) (This)->lpVtbl->GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars)
   2584 #define IItemNameLimits_GetMaxLength(This,pszName,piMaxNameLen) (This)->lpVtbl->GetMaxLength(This,pszName,piMaxNameLen)
   2585 #endif
   2586 #endif
   2587   HRESULT WINAPI IItemNameLimits_GetValidCharacters_Proxy(IItemNameLimits *This,LPWSTR *ppwszValidChars,LPWSTR *ppwszInvalidChars);
   2588   void __RPC_STUB IItemNameLimits_GetValidCharacters_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2589   HRESULT WINAPI IItemNameLimits_GetMaxLength_Proxy(IItemNameLimits *This,LPCWSTR pszName,int *piMaxNameLen);
   2590   void __RPC_STUB IItemNameLimits_GetMaxLength_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2591 #endif
   2592 
   2593 #define SNCF_REFRESHLIST 0x00000001
   2594 
   2595   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0224_v0_0_c_ifspec;
   2596   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0224_v0_0_s_ifspec;
   2597 #ifndef __INetCrawler_INTERFACE_DEFINED__
   2598 #define __INetCrawler_INTERFACE_DEFINED__
   2599   EXTERN_C const IID IID_INetCrawler;
   2600 #if defined(__cplusplus) && !defined(CINTERFACE)
   2601   struct INetCrawler : public IUnknown {
   2602   public:
   2603     virtual HRESULT WINAPI Update(DWORD dwFlags) = 0;
   2604   };
   2605 #else
   2606   typedef struct INetCrawlerVtbl {
   2607     BEGIN_INTERFACE
   2608       HRESULT (WINAPI *QueryInterface)(INetCrawler *This,REFIID riid,void **ppvObject);
   2609       ULONG (WINAPI *AddRef)(INetCrawler *This);
   2610       ULONG (WINAPI *Release)(INetCrawler *This);
   2611       HRESULT (WINAPI *Update)(INetCrawler *This,DWORD dwFlags);
   2612     END_INTERFACE
   2613   } INetCrawlerVtbl;
   2614   struct INetCrawler {
   2615     CONST_VTBL struct INetCrawlerVtbl *lpVtbl;
   2616   };
   2617 #ifdef COBJMACROS
   2618 #define INetCrawler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2619 #define INetCrawler_AddRef(This) (This)->lpVtbl->AddRef(This)
   2620 #define INetCrawler_Release(This) (This)->lpVtbl->Release(This)
   2621 #define INetCrawler_Update(This,dwFlags) (This)->lpVtbl->Update(This,dwFlags)
   2622 #endif
   2623 #endif
   2624   HRESULT WINAPI INetCrawler_Update_Proxy(INetCrawler *This,DWORD dwFlags);
   2625   void __RPC_STUB INetCrawler_Update_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2626 #endif
   2627 
   2628 #if (0x501 >= 0x0400)
   2629 #define IEI_PRIORITY_MAX ITSAT_MAX_PRIORITY
   2630 #define IEI_PRIORITY_MIN ITSAT_MIN_PRIORITY
   2631 #define IEIT_PRIORITY_NORMAL ITSAT_DEFAULT_PRIORITY
   2632 #define IEIFLAG_ASYNC 0x0001
   2633 #define IEIFLAG_CACHE 0x0002
   2634 #define IEIFLAG_ASPECT 0x0004
   2635 #define IEIFLAG_OFFLINE 0x0008
   2636 #define IEIFLAG_GLEAM 0x0010
   2637 #define IEIFLAG_SCREEN 0x0020
   2638 #define IEIFLAG_ORIGSIZE 0x0040
   2639 #define IEIFLAG_NOSTAMP 0x0080
   2640 #define IEIFLAG_NOBORDER 0x0100
   2641 #define IEIFLAG_QUALITY 0x0200
   2642 #define IEIFLAG_REFRESH 0x0400
   2643 
   2644   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0225_v0_0_c_ifspec;
   2645   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0225_v0_0_s_ifspec;
   2646 #ifndef __IExtractImage_INTERFACE_DEFINED__
   2647 #define __IExtractImage_INTERFACE_DEFINED__
   2648   EXTERN_C const IID IID_IExtractImage;
   2649 #if defined(__cplusplus) && !defined(CINTERFACE)
   2650   struct IExtractImage : public IUnknown {
   2651   public:
   2652     virtual HRESULT WINAPI GetLocation(LPWSTR pszPathBuffer,DWORD cch,DWORD *pdwPriority,const SIZE *prgSize,DWORD dwRecClrDepth,DWORD *pdwFlags) = 0;
   2653     virtual HRESULT WINAPI Extract(HBITMAP *phBmpThumbnail) = 0;
   2654   };
   2655 #else
   2656   typedef struct IExtractImageVtbl {
   2657     BEGIN_INTERFACE
   2658       HRESULT (WINAPI *QueryInterface)(IExtractImage *This,REFIID riid,void **ppvObject);
   2659       ULONG (WINAPI *AddRef)(IExtractImage *This);
   2660       ULONG (WINAPI *Release)(IExtractImage *This);
   2661       HRESULT (WINAPI *GetLocation)(IExtractImage *This,LPWSTR pszPathBuffer,DWORD cch,DWORD *pdwPriority,const SIZE *prgSize,DWORD dwRecClrDepth,DWORD *pdwFlags);
   2662       HRESULT (WINAPI *Extract)(IExtractImage *This,HBITMAP *phBmpThumbnail);
   2663     END_INTERFACE
   2664   } IExtractImageVtbl;
   2665   struct IExtractImage {
   2666     CONST_VTBL struct IExtractImageVtbl *lpVtbl;
   2667   };
   2668 #ifdef COBJMACROS
   2669 #define IExtractImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2670 #define IExtractImage_AddRef(This) (This)->lpVtbl->AddRef(This)
   2671 #define IExtractImage_Release(This) (This)->lpVtbl->Release(This)
   2672 #define IExtractImage_GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags) (This)->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags)
   2673 #define IExtractImage_Extract(This,phBmpThumbnail) (This)->lpVtbl->Extract(This,phBmpThumbnail)
   2674 #endif
   2675 #endif
   2676   HRESULT WINAPI IExtractImage_GetLocation_Proxy(IExtractImage *This,LPWSTR pszPathBuffer,DWORD cch,DWORD *pdwPriority,const SIZE *prgSize,DWORD dwRecClrDepth,DWORD *pdwFlags);
   2677   void __RPC_STUB IExtractImage_GetLocation_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2678   HRESULT WINAPI IExtractImage_Extract_Proxy(IExtractImage *This,HBITMAP *phBmpThumbnail);
   2679   void __RPC_STUB IExtractImage_Extract_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2680 #endif
   2681 
   2682   typedef IExtractImage *LPEXTRACTIMAGE;
   2683 #endif
   2684 #if (0x501 >= 0x0500)
   2685   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0226_v0_0_c_ifspec;
   2686   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0226_v0_0_s_ifspec;
   2687 #ifndef __IExtractImage2_INTERFACE_DEFINED__
   2688 #define __IExtractImage2_INTERFACE_DEFINED__
   2689   EXTERN_C const IID IID_IExtractImage2;
   2690 #if defined(__cplusplus) && !defined(CINTERFACE)
   2691   struct IExtractImage2 : public IExtractImage {
   2692   public:
   2693     virtual HRESULT WINAPI GetDateStamp(FILETIME *pDateStamp) = 0;
   2694   };
   2695 #else
   2696   typedef struct IExtractImage2Vtbl {
   2697     BEGIN_INTERFACE
   2698       HRESULT (WINAPI *QueryInterface)(IExtractImage2 *This,REFIID riid,void **ppvObject);
   2699       ULONG (WINAPI *AddRef)(IExtractImage2 *This);
   2700       ULONG (WINAPI *Release)(IExtractImage2 *This);
   2701       HRESULT (WINAPI *GetLocation)(IExtractImage2 *This,LPWSTR pszPathBuffer,DWORD cch,DWORD *pdwPriority,const SIZE *prgSize,DWORD dwRecClrDepth,DWORD *pdwFlags);
   2702       HRESULT (WINAPI *Extract)(IExtractImage2 *This,HBITMAP *phBmpThumbnail);
   2703       HRESULT (WINAPI *GetDateStamp)(IExtractImage2 *This,FILETIME *pDateStamp);
   2704     END_INTERFACE
   2705   } IExtractImage2Vtbl;
   2706   struct IExtractImage2 {
   2707     CONST_VTBL struct IExtractImage2Vtbl *lpVtbl;
   2708   };
   2709 #ifdef COBJMACROS
   2710 #define IExtractImage2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2711 #define IExtractImage2_AddRef(This) (This)->lpVtbl->AddRef(This)
   2712 #define IExtractImage2_Release(This) (This)->lpVtbl->Release(This)
   2713 #define IExtractImage2_GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags) (This)->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags)
   2714 #define IExtractImage2_Extract(This,phBmpThumbnail) (This)->lpVtbl->Extract(This,phBmpThumbnail)
   2715 #define IExtractImage2_GetDateStamp(This,pDateStamp) (This)->lpVtbl->GetDateStamp(This,pDateStamp)
   2716 #endif
   2717 #endif
   2718   HRESULT WINAPI IExtractImage2_GetDateStamp_Proxy(IExtractImage2 *This,FILETIME *pDateStamp);
   2719   void __RPC_STUB IExtractImage2_GetDateStamp_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2720 #endif
   2721 
   2722   typedef IExtractImage2 *LPEXTRACTIMAGE2;
   2723 #endif
   2724 
   2725   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0227_v0_0_c_ifspec;
   2726   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0227_v0_0_s_ifspec;
   2727 #ifndef __IUserEventTimerCallback_INTERFACE_DEFINED__
   2728 #define __IUserEventTimerCallback_INTERFACE_DEFINED__
   2729   EXTERN_C const IID IID_IUserEventTimerCallback;
   2730 #if defined(__cplusplus) && !defined(CINTERFACE)
   2731   struct IUserEventTimerCallback : public IUnknown {
   2732   public:
   2733     virtual HRESULT WINAPI UserEventTimerProc(ULONG uUserEventTimerID,UINT uTimerElapse) = 0;
   2734   };
   2735 #else
   2736   typedef struct IUserEventTimerCallbackVtbl {
   2737     BEGIN_INTERFACE
   2738       HRESULT (WINAPI *QueryInterface)(IUserEventTimerCallback *This,REFIID riid,void **ppvObject);
   2739       ULONG (WINAPI *AddRef)(IUserEventTimerCallback *This);
   2740       ULONG (WINAPI *Release)(IUserEventTimerCallback *This);
   2741       HRESULT (WINAPI *UserEventTimerProc)(IUserEventTimerCallback *This,ULONG uUserEventTimerID,UINT uTimerElapse);
   2742     END_INTERFACE
   2743   } IUserEventTimerCallbackVtbl;
   2744   struct IUserEventTimerCallback {
   2745     CONST_VTBL struct IUserEventTimerCallbackVtbl *lpVtbl;
   2746   };
   2747 #ifdef COBJMACROS
   2748 #define IUserEventTimerCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2749 #define IUserEventTimerCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
   2750 #define IUserEventTimerCallback_Release(This) (This)->lpVtbl->Release(This)
   2751 #define IUserEventTimerCallback_UserEventTimerProc(This,uUserEventTimerID,uTimerElapse) (This)->lpVtbl->UserEventTimerProc(This,uUserEventTimerID,uTimerElapse)
   2752 #endif
   2753 #endif
   2754   HRESULT WINAPI IUserEventTimerCallback_UserEventTimerProc_Proxy(IUserEventTimerCallback *This,ULONG uUserEventTimerID,UINT uTimerElapse);
   2755   void __RPC_STUB IUserEventTimerCallback_UserEventTimerProc_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2756 #endif
   2757 
   2758   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0228_v0_0_c_ifspec;
   2759   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0228_v0_0_s_ifspec;
   2760 #ifndef __IUserEventTimer_INTERFACE_DEFINED__
   2761 #define __IUserEventTimer_INTERFACE_DEFINED__
   2762   EXTERN_C const IID IID_IUserEventTimer;
   2763 #if defined(__cplusplus) && !defined(CINTERFACE)
   2764   struct IUserEventTimer : public IUnknown {
   2765   public:
   2766     virtual HRESULT WINAPI SetUserEventTimer(HWND hWnd,UINT uCallbackMessage,UINT uTimerElapse,IUserEventTimerCallback *pUserEventTimerCallback,ULONG *puUserEventTimerID) = 0;
   2767     virtual HRESULT WINAPI KillUserEventTimer(HWND hWnd,ULONG uUserEventTimerID) = 0;
   2768     virtual HRESULT WINAPI GetUserEventTimerElapsed(HWND hWnd,ULONG uUserEventTimerID,UINT *puTimerElapsed) = 0;
   2769     virtual HRESULT WINAPI InitTimerTickInterval(UINT uTimerTickIntervalMs) = 0;
   2770   };
   2771 #else
   2772   typedef struct IUserEventTimerVtbl {
   2773     BEGIN_INTERFACE
   2774       HRESULT (WINAPI *QueryInterface)(IUserEventTimer *This,REFIID riid,void **ppvObject);
   2775       ULONG (WINAPI *AddRef)(IUserEventTimer *This);
   2776       ULONG (WINAPI *Release)(IUserEventTimer *This);
   2777       HRESULT (WINAPI *SetUserEventTimer)(IUserEventTimer *This,HWND hWnd,UINT uCallbackMessage,UINT uTimerElapse,IUserEventTimerCallback *pUserEventTimerCallback,ULONG *puUserEventTimerID);
   2778       HRESULT (WINAPI *KillUserEventTimer)(IUserEventTimer *This,HWND hWnd,ULONG uUserEventTimerID);
   2779       HRESULT (WINAPI *GetUserEventTimerElapsed)(IUserEventTimer *This,HWND hWnd,ULONG uUserEventTimerID,UINT *puTimerElapsed);
   2780       HRESULT (WINAPI *InitTimerTickInterval)(IUserEventTimer *This,UINT uTimerTickIntervalMs);
   2781     END_INTERFACE
   2782   } IUserEventTimerVtbl;
   2783   struct IUserEventTimer {
   2784     CONST_VTBL struct IUserEventTimerVtbl *lpVtbl;
   2785   };
   2786 #ifdef COBJMACROS
   2787 #define IUserEventTimer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2788 #define IUserEventTimer_AddRef(This) (This)->lpVtbl->AddRef(This)
   2789 #define IUserEventTimer_Release(This) (This)->lpVtbl->Release(This)
   2790 #define IUserEventTimer_SetUserEventTimer(This,hWnd,uCallbackMessage,uTimerElapse,pUserEventTimerCallback,puUserEventTimerID) (This)->lpVtbl->SetUserEventTimer(This,hWnd,uCallbackMessage,uTimerElapse,pUserEventTimerCallback,puUserEventTimerID)
   2791 #define IUserEventTimer_KillUserEventTimer(This,hWnd,uUserEventTimerID) (This)->lpVtbl->KillUserEventTimer(This,hWnd,uUserEventTimerID)
   2792 #define IUserEventTimer_GetUserEventTimerElapsed(This,hWnd,uUserEventTimerID,puTimerElapsed) (This)->lpVtbl->GetUserEventTimerElapsed(This,hWnd,uUserEventTimerID,puTimerElapsed)
   2793 #define IUserEventTimer_InitTimerTickInterval(This,uTimerTickIntervalMs) (This)->lpVtbl->InitTimerTickInterval(This,uTimerTickIntervalMs)
   2794 #endif
   2795 #endif
   2796   HRESULT WINAPI IUserEventTimer_SetUserEventTimer_Proxy(IUserEventTimer *This,HWND hWnd,UINT uCallbackMessage,UINT uTimerElapse,IUserEventTimerCallback *pUserEventTimerCallback,ULONG *puUserEventTimerID);
   2797   void __RPC_STUB IUserEventTimer_SetUserEventTimer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2798   HRESULT WINAPI IUserEventTimer_KillUserEventTimer_Proxy(IUserEventTimer *This,HWND hWnd,ULONG uUserEventTimerID);
   2799   void __RPC_STUB IUserEventTimer_KillUserEventTimer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2800   HRESULT WINAPI IUserEventTimer_GetUserEventTimerElapsed_Proxy(IUserEventTimer *This,HWND hWnd,ULONG uUserEventTimerID,UINT *puTimerElapsed);
   2801   void __RPC_STUB IUserEventTimer_GetUserEventTimerElapsed_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2802   HRESULT WINAPI IUserEventTimer_InitTimerTickInterval_Proxy(IUserEventTimer *This,UINT uTimerTickIntervalMs);
   2803   void __RPC_STUB IUserEventTimer_InitTimerTickInterval_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2804 #endif
   2805 
   2806 #ifndef __IDockingWindow_INTERFACE_DEFINED__
   2807 #define __IDockingWindow_INTERFACE_DEFINED__
   2808   EXTERN_C const IID IID_IDockingWindow;
   2809 #if defined(__cplusplus) && !defined(CINTERFACE)
   2810   struct IDockingWindow : public IOleWindow {
   2811   public:
   2812     virtual HRESULT WINAPI ShowDW(WINBOOL fShow) = 0;
   2813     virtual HRESULT WINAPI CloseDW(DWORD dwReserved) = 0;
   2814     virtual HRESULT WINAPI ResizeBorderDW(LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved) = 0;
   2815   };
   2816 #else
   2817   typedef struct IDockingWindowVtbl {
   2818     BEGIN_INTERFACE
   2819       HRESULT (WINAPI *QueryInterface)(IDockingWindow *This,REFIID riid,void **ppvObject);
   2820       ULONG (WINAPI *AddRef)(IDockingWindow *This);
   2821       ULONG (WINAPI *Release)(IDockingWindow *This);
   2822       HRESULT (WINAPI *GetWindow)(IDockingWindow *This,HWND *phwnd);
   2823       HRESULT (WINAPI *ContextSensitiveHelp)(IDockingWindow *This,WINBOOL fEnterMode);
   2824       HRESULT (WINAPI *ShowDW)(IDockingWindow *This,WINBOOL fShow);
   2825       HRESULT (WINAPI *CloseDW)(IDockingWindow *This,DWORD dwReserved);
   2826       HRESULT (WINAPI *ResizeBorderDW)(IDockingWindow *This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved);
   2827     END_INTERFACE
   2828   } IDockingWindowVtbl;
   2829   struct IDockingWindow {
   2830     CONST_VTBL struct IDockingWindowVtbl *lpVtbl;
   2831   };
   2832 #ifdef COBJMACROS
   2833 #define IDockingWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2834 #define IDockingWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
   2835 #define IDockingWindow_Release(This) (This)->lpVtbl->Release(This)
   2836 #define IDockingWindow_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   2837 #define IDockingWindow_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   2838 #define IDockingWindow_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
   2839 #define IDockingWindow_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
   2840 #define IDockingWindow_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
   2841 #endif
   2842 #endif
   2843   HRESULT WINAPI IDockingWindow_ShowDW_Proxy(IDockingWindow *This,WINBOOL fShow);
   2844   void __RPC_STUB IDockingWindow_ShowDW_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2845   HRESULT WINAPI IDockingWindow_CloseDW_Proxy(IDockingWindow *This,DWORD dwReserved);
   2846   void __RPC_STUB IDockingWindow_CloseDW_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2847   HRESULT WINAPI IDockingWindow_ResizeBorderDW_Proxy(IDockingWindow *This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved);
   2848   void __RPC_STUB IDockingWindow_ResizeBorderDW_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2849 #endif
   2850 
   2851 #define DBIM_MINSIZE 0x0001
   2852 #define DBIM_MAXSIZE 0x0002
   2853 #define DBIM_INTEGRAL 0x0004
   2854 #define DBIM_ACTUAL 0x0008
   2855 #define DBIM_TITLE 0x0010
   2856 #define DBIM_MODEFLAGS 0x0020
   2857 #define DBIM_BKCOLOR 0x0040
   2858 
   2859 #include <pshpack8.h>
   2860 
   2861   typedef struct __MIDL___MIDL_itf_shobjidl_0230_0001 {
   2862     DWORD dwMask;
   2863     POINTL ptMinSize;
   2864     POINTL ptMaxSize;
   2865     POINTL ptIntegral;
   2866     POINTL ptActual;
   2867     WCHAR wszTitle[256];
   2868     DWORD dwModeFlags;
   2869     COLORREF crBkgnd;
   2870   } DESKBANDINFO;
   2871 
   2872 #include <poppack.h>
   2873 #define DBIMF_NORMAL 0x0000
   2874 #define DBIMF_FIXED 0x0001
   2875 #define DBIMF_FIXEDBMP 0x0004
   2876 #define DBIMF_VARIABLEHEIGHT 0x0008
   2877 #define DBIMF_UNDELETEABLE 0x0010
   2878 #define DBIMF_DEBOSSED 0x0020
   2879 #define DBIMF_BKCOLOR 0x0040
   2880 #define DBIMF_USECHEVRON 0x0080
   2881 #define DBIMF_BREAK 0x0100
   2882 #define DBIMF_ADDTOFRONT 0x0200
   2883 #define DBIMF_TOPALIGN 0x0400
   2884 #define DBIF_VIEWMODE_NORMAL 0x0000
   2885 #define DBIF_VIEWMODE_VERTICAL 0x0001
   2886 #define DBIF_VIEWMODE_FLOATING 0x0002
   2887 #define DBIF_VIEWMODE_TRANSPARENT 0x0004
   2888 
   2889   enum __MIDL___MIDL_itf_shobjidl_0230_0002 {
   2890     DBID_BANDINFOCHANGED = 0,DBID_SHOWONLY = 1,DBID_MAXIMIZEBAND = 2,DBID_PUSHCHEVRON = 3,DBID_DELAYINIT = 4,DBID_FINISHINIT = 5,
   2891     DBID_SETWINDOWTHEME = 6,DBID_PERMITAUTOHIDE = 7
   2892   };
   2893 #define DBPC_SELECTFIRST (DWORD)-1
   2894 #define DBPC_SELECTLAST (DWORD)-2
   2895 #define CGID_DeskBand IID_IDeskBand
   2896 
   2897   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0230_v0_0_c_ifspec;
   2898   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0230_v0_0_s_ifspec;
   2899 #ifndef __IDeskBand_INTERFACE_DEFINED__
   2900 #define __IDeskBand_INTERFACE_DEFINED__
   2901   EXTERN_C const IID IID_IDeskBand;
   2902 #if defined(__cplusplus) && !defined(CINTERFACE)
   2903   struct IDeskBand : public IDockingWindow {
   2904   public:
   2905     virtual HRESULT WINAPI GetBandInfo(DWORD dwBandID,DWORD dwViewMode,DESKBANDINFO *pdbi) = 0;
   2906   };
   2907 #else
   2908   typedef struct IDeskBandVtbl {
   2909     BEGIN_INTERFACE
   2910       HRESULT (WINAPI *QueryInterface)(IDeskBand *This,REFIID riid,void **ppvObject);
   2911       ULONG (WINAPI *AddRef)(IDeskBand *This);
   2912       ULONG (WINAPI *Release)(IDeskBand *This);
   2913       HRESULT (WINAPI *GetWindow)(IDeskBand *This,HWND *phwnd);
   2914       HRESULT (WINAPI *ContextSensitiveHelp)(IDeskBand *This,WINBOOL fEnterMode);
   2915       HRESULT (WINAPI *ShowDW)(IDeskBand *This,WINBOOL fShow);
   2916       HRESULT (WINAPI *CloseDW)(IDeskBand *This,DWORD dwReserved);
   2917       HRESULT (WINAPI *ResizeBorderDW)(IDeskBand *This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved);
   2918       HRESULT (WINAPI *GetBandInfo)(IDeskBand *This,DWORD dwBandID,DWORD dwViewMode,DESKBANDINFO *pdbi);
   2919     END_INTERFACE
   2920   } IDeskBandVtbl;
   2921   struct IDeskBand {
   2922     CONST_VTBL struct IDeskBandVtbl *lpVtbl;
   2923   };
   2924 #ifdef COBJMACROS
   2925 #define IDeskBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2926 #define IDeskBand_AddRef(This) (This)->lpVtbl->AddRef(This)
   2927 #define IDeskBand_Release(This) (This)->lpVtbl->Release(This)
   2928 #define IDeskBand_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   2929 #define IDeskBand_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   2930 #define IDeskBand_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
   2931 #define IDeskBand_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
   2932 #define IDeskBand_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
   2933 #define IDeskBand_GetBandInfo(This,dwBandID,dwViewMode,pdbi) (This)->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi)
   2934 #endif
   2935 #endif
   2936   HRESULT WINAPI IDeskBand_GetBandInfo_Proxy(IDeskBand *This,DWORD dwBandID,DWORD dwViewMode,DESKBANDINFO *pdbi);
   2937   void __RPC_STUB IDeskBand_GetBandInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2938 #endif
   2939 
   2940 #ifndef __ITaskbarList_INTERFACE_DEFINED__
   2941 #define __ITaskbarList_INTERFACE_DEFINED__
   2942   DEFINE_GUID(IID_ITaskbarList,0x56FDF342L,0xFD6D,0x11D0,0x95,0x8A,0x00,0x60,0x97,0xC9,0xA0,0x90);
   2943 #if defined(__cplusplus) && !defined(CINTERFACE)
   2944   struct ITaskbarList : public IUnknown {
   2945   public:
   2946     virtual HRESULT WINAPI HrInit(void) = 0;
   2947     virtual HRESULT WINAPI AddTab(HWND hwnd) = 0;
   2948     virtual HRESULT WINAPI DeleteTab(HWND hwnd) = 0;
   2949     virtual HRESULT WINAPI ActivateTab(HWND hwnd) = 0;
   2950     virtual HRESULT WINAPI SetActiveAlt(HWND hwnd) = 0;
   2951   };
   2952 #else
   2953   typedef struct ITaskbarListVtbl {
   2954     BEGIN_INTERFACE
   2955       HRESULT (WINAPI *QueryInterface)(ITaskbarList *This,REFIID riid,void **ppvObject);
   2956       ULONG (WINAPI *AddRef)(ITaskbarList *This);
   2957       ULONG (WINAPI *Release)(ITaskbarList *This);
   2958       HRESULT (WINAPI *HrInit)(ITaskbarList *This);
   2959       HRESULT (WINAPI *AddTab)(ITaskbarList *This,HWND hwnd);
   2960       HRESULT (WINAPI *DeleteTab)(ITaskbarList *This,HWND hwnd);
   2961       HRESULT (WINAPI *ActivateTab)(ITaskbarList *This,HWND hwnd);
   2962       HRESULT (WINAPI *SetActiveAlt)(ITaskbarList *This,HWND hwnd);
   2963     END_INTERFACE
   2964   } ITaskbarListVtbl;
   2965   struct ITaskbarList {
   2966     CONST_VTBL struct ITaskbarListVtbl *lpVtbl;
   2967   };
   2968 #ifdef COBJMACROS
   2969 #define ITaskbarList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2970 #define ITaskbarList_AddRef(This) (This)->lpVtbl->AddRef(This)
   2971 #define ITaskbarList_Release(This) (This)->lpVtbl->Release(This)
   2972 #define ITaskbarList_HrInit(This) (This)->lpVtbl->HrInit(This)
   2973 #define ITaskbarList_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
   2974 #define ITaskbarList_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
   2975 #define ITaskbarList_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
   2976 #define ITaskbarList_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
   2977 #endif
   2978 #endif
   2979   HRESULT WINAPI ITaskbarList_HrInit_Proxy(ITaskbarList *This);
   2980   void __RPC_STUB ITaskbarList_HrInit_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2981   HRESULT WINAPI ITaskbarList_AddTab_Proxy(ITaskbarList *This,HWND hwnd);
   2982   void __RPC_STUB ITaskbarList_AddTab_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2983   HRESULT WINAPI ITaskbarList_DeleteTab_Proxy(ITaskbarList *This,HWND hwnd);
   2984   void __RPC_STUB ITaskbarList_DeleteTab_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2985   HRESULT WINAPI ITaskbarList_ActivateTab_Proxy(ITaskbarList *This,HWND hwnd);
   2986   void __RPC_STUB ITaskbarList_ActivateTab_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2987   HRESULT WINAPI ITaskbarList_SetActiveAlt_Proxy(ITaskbarList *This,HWND hwnd);
   2988   void __RPC_STUB ITaskbarList_SetActiveAlt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   2989 #endif
   2990 
   2991 #ifndef __ITaskbarList2_INTERFACE_DEFINED__
   2992 #define __ITaskbarList2_INTERFACE_DEFINED__
   2993   DEFINE_GUID(IID_ITaskbarList2,0x602D4995L,0xB13A,0x429b,0xA6,0x6E,0x19,0x35,0xE4,0x4F,0x43,0x17);
   2994 #if defined(__cplusplus) && !defined(CINTERFACE)
   2995   struct ITaskbarList2 : public ITaskbarList {
   2996   public:
   2997     virtual HRESULT WINAPI MarkFullscreenWindow(HWND hwnd,WINBOOL fFullscreen) = 0;
   2998   };
   2999 #else
   3000   typedef struct ITaskbarList2Vtbl {
   3001     BEGIN_INTERFACE
   3002       HRESULT (WINAPI *QueryInterface)(ITaskbarList2 *This,REFIID riid,void **ppvObject);
   3003       ULONG (WINAPI *AddRef)(ITaskbarList2 *This);
   3004       ULONG (WINAPI *Release)(ITaskbarList2 *This);
   3005       HRESULT (WINAPI *HrInit)(ITaskbarList2 *This);
   3006       HRESULT (WINAPI *AddTab)(ITaskbarList2 *This,HWND hwnd);
   3007       HRESULT (WINAPI *DeleteTab)(ITaskbarList2 *This,HWND hwnd);
   3008       HRESULT (WINAPI *ActivateTab)(ITaskbarList2 *This,HWND hwnd);
   3009       HRESULT (WINAPI *SetActiveAlt)(ITaskbarList2 *This,HWND hwnd);
   3010       HRESULT (WINAPI *MarkFullscreenWindow)(ITaskbarList2 *This,HWND hwnd,WINBOOL fFullscreen);
   3011     END_INTERFACE
   3012   } ITaskbarList2Vtbl;
   3013   struct ITaskbarList2 {
   3014     CONST_VTBL struct ITaskbarList2Vtbl *lpVtbl;
   3015   };
   3016 #ifdef COBJMACROS
   3017 #define ITaskbarList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3018 #define ITaskbarList2_AddRef(This) (This)->lpVtbl->AddRef(This)
   3019 #define ITaskbarList2_Release(This) (This)->lpVtbl->Release(This)
   3020 #define ITaskbarList2_HrInit(This) (This)->lpVtbl->HrInit(This)
   3021 #define ITaskbarList2_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
   3022 #define ITaskbarList2_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
   3023 #define ITaskbarList2_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
   3024 #define ITaskbarList2_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
   3025 #define ITaskbarList2_MarkFullscreenWindow(This,hwnd,fFullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen)
   3026 #endif
   3027 #endif
   3028   HRESULT WINAPI ITaskbarList2_MarkFullscreenWindow_Proxy(ITaskbarList2 *This,HWND hwnd,WINBOOL fFullscreen);
   3029   void __RPC_STUB ITaskbarList2_MarkFullscreenWindow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3030 #endif
   3031 
   3032 #ifdef MIDL_PASS
   3033 typedef IUnknown *HIMAGELIST;
   3034 #endif
   3035 
   3036 typedef enum THUMBBUTTONFLAGS {
   3037     THBF_ENABLED = 0x0,
   3038     THBF_DISABLED = 0x1,
   3039     THBF_DISMISSONCLICK = 0x2,
   3040     THBF_NOBACKGROUND = 0x4,
   3041     THBF_HIDDEN = 0x8,
   3042     THBF_NONINTERACTIVE = 0x10
   3043 } THUMBBUTTONFLAGS;
   3044 DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS)
   3045 
   3046 typedef enum THUMBBUTTONMASK {
   3047     THB_BITMAP = 0x1,
   3048     THB_ICON = 0x2,
   3049     THB_TOOLTIP = 0x4,
   3050     THB_FLAGS = 0x8
   3051 } THUMBBUTTONMASK;
   3052 DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK)
   3053 
   3054 #include <pshpack8.h>
   3055 typedef struct THUMBBUTTON {
   3056     THUMBBUTTONMASK dwMask;
   3057     UINT iId;
   3058     UINT iBitmap;
   3059     HICON hIcon;
   3060     WCHAR szTip[260];
   3061     THUMBBUTTONFLAGS dwFlags;
   3062 } THUMBBUTTON;
   3063 typedef struct THUMBBUTTON *LPTHUMBBUTTON;
   3064 #include <poppack.h>
   3065 
   3066 #define THBN_CLICKED 0x1800
   3067 
   3068 /*****************************************************************************
   3069  * ITaskbarList3 interface
   3070  */
   3071 #ifndef __ITaskbarList3_INTERFACE_DEFINED__
   3072 #define __ITaskbarList3_INTERFACE_DEFINED__
   3073 
   3074 typedef enum TBPFLAG {
   3075     TBPF_NOPROGRESS = 0x0,
   3076     TBPF_INDETERMINATE = 0x1,
   3077     TBPF_NORMAL = 0x2,
   3078     TBPF_ERROR = 0x4,
   3079     TBPF_PAUSED = 0x8
   3080 } TBPFLAG;
   3081 DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG)
   3082 
   3083 DEFINE_GUID(IID_ITaskbarList3, 0xea1afb91, 0x9e28, 0x4b86, 0x90,0xe9, 0x9e,0x9f,0x8a,0x5e,0xef,0xaf);
   3084 #if defined(__cplusplus) && !defined(CINTERFACE)
   3085 interface ITaskbarList3 : public ITaskbarList2
   3086 {
   3087     virtual HRESULT STDMETHODCALLTYPE SetProgressValue(
   3088         HWND hwnd,
   3089         ULONGLONG ullCompleted,
   3090         ULONGLONG ullTotal) = 0;
   3091 
   3092     virtual HRESULT STDMETHODCALLTYPE SetProgressState(
   3093         HWND hwnd,
   3094         TBPFLAG tbpFlags) = 0;
   3095 
   3096     virtual HRESULT STDMETHODCALLTYPE RegisterTab(
   3097         HWND hwndTab,
   3098         HWND hwndMDI) = 0;
   3099 
   3100     virtual HRESULT STDMETHODCALLTYPE UnregisterTab(
   3101         HWND hwndTab) = 0;
   3102 
   3103     virtual HRESULT STDMETHODCALLTYPE SetTabOrder(
   3104         HWND hwndTab,
   3105         HWND hwndInsertBefore) = 0;
   3106 
   3107     virtual HRESULT STDMETHODCALLTYPE SetTabActive(
   3108         HWND hwndTab,
   3109         HWND hwndMDI,
   3110         DWORD dwReserved) = 0;
   3111 
   3112     virtual HRESULT STDMETHODCALLTYPE ThumbBarAddButtons(
   3113         HWND hwnd,
   3114         UINT cButtons,
   3115         LPTHUMBBUTTON pButton) = 0;
   3116 
   3117     virtual HRESULT STDMETHODCALLTYPE ThumbBarUpdateButtons(
   3118         HWND hwnd,
   3119         UINT cButtons,
   3120         LPTHUMBBUTTON pButton) = 0;
   3121 
   3122     virtual HRESULT STDMETHODCALLTYPE ThumbBarSetImageList(
   3123         HWND hwnd,
   3124         HIMAGELIST himl) = 0;
   3125 
   3126     virtual HRESULT STDMETHODCALLTYPE SetOverlayIcon(
   3127         HWND hwnd,
   3128         HICON hIcon,
   3129         LPCWSTR pszDescription) = 0;
   3130 
   3131     virtual HRESULT STDMETHODCALLTYPE SetThumbnailTooltip(
   3132         HWND hwnd,
   3133         LPCWSTR pszTip) = 0;
   3134 
   3135     virtual HRESULT STDMETHODCALLTYPE SetThumbnailClip(
   3136         HWND hwnd,
   3137         RECT *prcClip) = 0;
   3138 
   3139 };
   3140 #else
   3141 typedef struct ITaskbarList3Vtbl {
   3142     BEGIN_INTERFACE
   3143 
   3144     /*** IUnknown methods ***/
   3145     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3146         ITaskbarList3* This,
   3147         REFIID riid,
   3148         void **ppvObject);
   3149 
   3150     ULONG (STDMETHODCALLTYPE *AddRef)(
   3151         ITaskbarList3* This);
   3152 
   3153     ULONG (STDMETHODCALLTYPE *Release)(
   3154         ITaskbarList3* This);
   3155 
   3156     /*** ITaskbarList methods ***/
   3157     HRESULT (STDMETHODCALLTYPE *HrInit)(
   3158         ITaskbarList3* This);
   3159 
   3160     HRESULT (STDMETHODCALLTYPE *AddTab)(
   3161         ITaskbarList3* This,
   3162         HWND hwnd);
   3163 
   3164     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
   3165         ITaskbarList3* This,
   3166         HWND hwnd);
   3167 
   3168     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
   3169         ITaskbarList3* This,
   3170         HWND hwnd);
   3171 
   3172     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
   3173         ITaskbarList3* This,
   3174         HWND hwnd);
   3175 
   3176     /*** ITaskbarList2 methods ***/
   3177     HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
   3178         ITaskbarList3* This,
   3179         HWND hwnd,
   3180         BOOL fullscreen);
   3181 
   3182     /*** ITaskbarList3 methods ***/
   3183     HRESULT (STDMETHODCALLTYPE *SetProgressValue)(
   3184         ITaskbarList3* This,
   3185         HWND hwnd,
   3186         ULONGLONG ullCompleted,
   3187         ULONGLONG ullTotal);
   3188 
   3189     HRESULT (STDMETHODCALLTYPE *SetProgressState)(
   3190         ITaskbarList3* This,
   3191         HWND hwnd,
   3192         TBPFLAG tbpFlags);
   3193 
   3194     HRESULT (STDMETHODCALLTYPE *RegisterTab)(
   3195         ITaskbarList3* This,
   3196         HWND hwndTab,
   3197         HWND hwndMDI);
   3198 
   3199     HRESULT (STDMETHODCALLTYPE *UnregisterTab)(
   3200         ITaskbarList3* This,
   3201         HWND hwndTab);
   3202 
   3203     HRESULT (STDMETHODCALLTYPE *SetTabOrder)(
   3204         ITaskbarList3* This,
   3205         HWND hwndTab,
   3206         HWND hwndInsertBefore);
   3207 
   3208     HRESULT (STDMETHODCALLTYPE *SetTabActive)(
   3209         ITaskbarList3* This,
   3210         HWND hwndTab,
   3211         HWND hwndMDI,
   3212         DWORD dwReserved);
   3213 
   3214     HRESULT (STDMETHODCALLTYPE *ThumbBarAddButtons)(
   3215         ITaskbarList3* This,
   3216         HWND hwnd,
   3217         UINT cButtons,
   3218         LPTHUMBBUTTON pButton);
   3219 
   3220     HRESULT (STDMETHODCALLTYPE *ThumbBarUpdateButtons)(
   3221         ITaskbarList3* This,
   3222         HWND hwnd,
   3223         UINT cButtons,
   3224         LPTHUMBBUTTON pButton);
   3225 
   3226     HRESULT (STDMETHODCALLTYPE *ThumbBarSetImageList)(
   3227         ITaskbarList3* This,
   3228         HWND hwnd,
   3229         HIMAGELIST himl);
   3230 
   3231     HRESULT (STDMETHODCALLTYPE *SetOverlayIcon)(
   3232         ITaskbarList3* This,
   3233         HWND hwnd,
   3234         HICON hIcon,
   3235         LPCWSTR pszDescription);
   3236 
   3237     HRESULT (STDMETHODCALLTYPE *SetThumbnailTooltip)(
   3238         ITaskbarList3* This,
   3239         HWND hwnd,
   3240         LPCWSTR pszTip);
   3241 
   3242     HRESULT (STDMETHODCALLTYPE *SetThumbnailClip)(
   3243         ITaskbarList3* This,
   3244         HWND hwnd,
   3245         RECT *prcClip);
   3246 
   3247     END_INTERFACE
   3248 } ITaskbarList3Vtbl;
   3249 interface ITaskbarList3 {
   3250     CONST_VTBL ITaskbarList3Vtbl* lpVtbl;
   3251 };
   3252 
   3253 #ifdef COBJMACROS
   3254 /*** IUnknown methods ***/
   3255 #define ITaskbarList3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3256 #define ITaskbarList3_AddRef(This) (This)->lpVtbl->AddRef(This)
   3257 #define ITaskbarList3_Release(This) (This)->lpVtbl->Release(This)
   3258 /*** ITaskbarList methods ***/
   3259 #define ITaskbarList3_HrInit(This) (This)->lpVtbl->HrInit(This)
   3260 #define ITaskbarList3_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
   3261 #define ITaskbarList3_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
   3262 #define ITaskbarList3_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
   3263 #define ITaskbarList3_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
   3264 /*** ITaskbarList2 methods ***/
   3265 #define ITaskbarList3_MarkFullscreenWindow(This,hwnd,fullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fullscreen)
   3266 /*** ITaskbarList3 methods ***/
   3267 #define ITaskbarList3_SetProgressValue(This,hwnd,ullCompleted,ullTotal) (This)->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal)
   3268 #define ITaskbarList3_SetProgressState(This,hwnd,tbpFlags) (This)->lpVtbl->SetProgressState(This,hwnd,tbpFlags)
   3269 #define ITaskbarList3_RegisterTab(This,hwndTab,hwndMDI) (This)->lpVtbl->RegisterTab(This,hwndTab,hwndMDI)
   3270 #define ITaskbarList3_UnregisterTab(This,hwndTab) (This)->lpVtbl->UnregisterTab(This,hwndTab)
   3271 #define ITaskbarList3_SetTabOrder(This,hwndTab,hwndInsertBefore) (This)->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore)
   3272 #define ITaskbarList3_SetTabActive(This,hwndTab,hwndMDI,dwReserved) (This)->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved)
   3273 #define ITaskbarList3_ThumbBarAddButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton)
   3274 #define ITaskbarList3_ThumbBarUpdateButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton)
   3275 #define ITaskbarList3_ThumbBarSetImageList(This,hwnd,himl) (This)->lpVtbl->ThumbBarSetImageList(This,hwnd,himl)
   3276 #define ITaskbarList3_SetOverlayIcon(This,hwnd,hIcon,pszDescription) (This)->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription)
   3277 #define ITaskbarList3_SetThumbnailTooltip(This,hwnd,pszTip) (This)->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip)
   3278 #define ITaskbarList3_SetThumbnailClip(This,hwnd,prcClip) (This)->lpVtbl->SetThumbnailClip(This,hwnd,prcClip)
   3279 #endif
   3280 
   3281 #endif
   3282 #endif  /* __ITaskbarList3_INTERFACE_DEFINED__ */
   3283 
   3284 /*****************************************************************************
   3285  * ITaskbarList4 interface
   3286  */
   3287 #ifndef __ITaskbarList4_INTERFACE_DEFINED__
   3288 #define __ITaskbarList4_INTERFACE_DEFINED__
   3289 
   3290 typedef enum STPFLAG {
   3291     STPF_NONE = 0x0,
   3292     STPF_USEAPPTHUMBNAILALWAYS = 0x1,
   3293     STPF_USEAPPTHUMBNAILWHENACTIVE = 0x2,
   3294     STPF_USEAPPPEEKALWAYS = 0x4,
   3295     STPF_USEAPPPEEKWHENACTIVE = 0x8
   3296 } STPFLAG;
   3297 DEFINE_ENUM_FLAG_OPERATORS(STPFLAG)
   3298 
   3299 DEFINE_GUID(IID_ITaskbarList4, 0xc43dc798, 0x95d1, 0x4bea, 0x90,0x30, 0xbb,0x99,0xe2,0x98,0x3a,0x1a);
   3300 #if defined(__cplusplus) && !defined(CINTERFACE)
   3301 interface ITaskbarList4 : public ITaskbarList3
   3302 {
   3303     virtual HRESULT STDMETHODCALLTYPE SetTabProperties(
   3304         HWND hwndTab,
   3305         STPFLAG stpFlags) = 0;
   3306 
   3307 };
   3308 #else
   3309 typedef struct ITaskbarList4Vtbl {
   3310     BEGIN_INTERFACE
   3311 
   3312     /*** IUnknown methods ***/
   3313     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3314         ITaskbarList4* This,
   3315         REFIID riid,
   3316         void **ppvObject);
   3317 
   3318     ULONG (STDMETHODCALLTYPE *AddRef)(
   3319         ITaskbarList4* This);
   3320 
   3321     ULONG (STDMETHODCALLTYPE *Release)(
   3322         ITaskbarList4* This);
   3323 
   3324     /*** ITaskbarList methods ***/
   3325     HRESULT (STDMETHODCALLTYPE *HrInit)(
   3326         ITaskbarList4* This);
   3327 
   3328     HRESULT (STDMETHODCALLTYPE *AddTab)(
   3329         ITaskbarList4* This,
   3330         HWND hwnd);
   3331 
   3332     HRESULT (STDMETHODCALLTYPE *DeleteTab)(
   3333         ITaskbarList4* This,
   3334         HWND hwnd);
   3335 
   3336     HRESULT (STDMETHODCALLTYPE *ActivateTab)(
   3337         ITaskbarList4* This,
   3338         HWND hwnd);
   3339 
   3340     HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
   3341         ITaskbarList4* This,
   3342         HWND hwnd);
   3343 
   3344     /*** ITaskbarList2 methods ***/
   3345     HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
   3346         ITaskbarList4* This,
   3347         HWND hwnd,
   3348         BOOL fullscreen);
   3349 
   3350     /*** ITaskbarList3 methods ***/
   3351     HRESULT (STDMETHODCALLTYPE *SetProgressValue)(
   3352         ITaskbarList4* This,
   3353         HWND hwnd,
   3354         ULONGLONG ullCompleted,
   3355         ULONGLONG ullTotal);
   3356 
   3357     HRESULT (STDMETHODCALLTYPE *SetProgressState)(
   3358         ITaskbarList4* This,
   3359         HWND hwnd,
   3360         TBPFLAG tbpFlags);
   3361 
   3362     HRESULT (STDMETHODCALLTYPE *RegisterTab)(
   3363         ITaskbarList4* This,
   3364         HWND hwndTab,
   3365         HWND hwndMDI);
   3366 
   3367     HRESULT (STDMETHODCALLTYPE *UnregisterTab)(
   3368         ITaskbarList4* This,
   3369         HWND hwndTab);
   3370 
   3371     HRESULT (STDMETHODCALLTYPE *SetTabOrder)(
   3372         ITaskbarList4* This,
   3373         HWND hwndTab,
   3374         HWND hwndInsertBefore);
   3375 
   3376     HRESULT (STDMETHODCALLTYPE *SetTabActive)(
   3377         ITaskbarList4* This,
   3378         HWND hwndTab,
   3379         HWND hwndMDI,
   3380         DWORD dwReserved);
   3381 
   3382     HRESULT (STDMETHODCALLTYPE *ThumbBarAddButtons)(
   3383         ITaskbarList4* This,
   3384         HWND hwnd,
   3385         UINT cButtons,
   3386         LPTHUMBBUTTON pButton);
   3387 
   3388     HRESULT (STDMETHODCALLTYPE *ThumbBarUpdateButtons)(
   3389         ITaskbarList4* This,
   3390         HWND hwnd,
   3391         UINT cButtons,
   3392         LPTHUMBBUTTON pButton);
   3393 
   3394     HRESULT (STDMETHODCALLTYPE *ThumbBarSetImageList)(
   3395         ITaskbarList4* This,
   3396         HWND hwnd,
   3397         HIMAGELIST himl);
   3398 
   3399     HRESULT (STDMETHODCALLTYPE *SetOverlayIcon)(
   3400         ITaskbarList4* This,
   3401         HWND hwnd,
   3402         HICON hIcon,
   3403         LPCWSTR pszDescription);
   3404 
   3405     HRESULT (STDMETHODCALLTYPE *SetThumbnailTooltip)(
   3406         ITaskbarList4* This,
   3407         HWND hwnd,
   3408         LPCWSTR pszTip);
   3409 
   3410     HRESULT (STDMETHODCALLTYPE *SetThumbnailClip)(
   3411         ITaskbarList4* This,
   3412         HWND hwnd,
   3413         RECT *prcClip);
   3414 
   3415     /*** ITaskbarList4 methods ***/
   3416     HRESULT (STDMETHODCALLTYPE *SetTabProperties)(
   3417         ITaskbarList4* This,
   3418         HWND hwndTab,
   3419         STPFLAG stpFlags);
   3420 
   3421     END_INTERFACE
   3422 } ITaskbarList4Vtbl;
   3423 interface ITaskbarList4 {
   3424     CONST_VTBL ITaskbarList4Vtbl* lpVtbl;
   3425 };
   3426 
   3427 #ifdef COBJMACROS
   3428 /*** IUnknown methods ***/
   3429 #define ITaskbarList4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3430 #define ITaskbarList4_AddRef(This) (This)->lpVtbl->AddRef(This)
   3431 #define ITaskbarList4_Release(This) (This)->lpVtbl->Release(This)
   3432 /*** ITaskbarList methods ***/
   3433 #define ITaskbarList4_HrInit(This) (This)->lpVtbl->HrInit(This)
   3434 #define ITaskbarList4_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
   3435 #define ITaskbarList4_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
   3436 #define ITaskbarList4_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
   3437 #define ITaskbarList4_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
   3438 /*** ITaskbarList2 methods ***/
   3439 #define ITaskbarList4_MarkFullscreenWindow(This,hwnd,fullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fullscreen)
   3440 /*** ITaskbarList3 methods ***/
   3441 #define ITaskbarList4_SetProgressValue(This,hwnd,ullCompleted,ullTotal) (This)->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal)
   3442 #define ITaskbarList4_SetProgressState(This,hwnd,tbpFlags) (This)->lpVtbl->SetProgressState(This,hwnd,tbpFlags)
   3443 #define ITaskbarList4_RegisterTab(This,hwndTab,hwndMDI) (This)->lpVtbl->RegisterTab(This,hwndTab,hwndMDI)
   3444 #define ITaskbarList4_UnregisterTab(This,hwndTab) (This)->lpVtbl->UnregisterTab(This,hwndTab)
   3445 #define ITaskbarList4_SetTabOrder(This,hwndTab,hwndInsertBefore) (This)->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore)
   3446 #define ITaskbarList4_SetTabActive(This,hwndTab,hwndMDI,dwReserved) (This)->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved)
   3447 #define ITaskbarList4_ThumbBarAddButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton)
   3448 #define ITaskbarList4_ThumbBarUpdateButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton)
   3449 #define ITaskbarList4_ThumbBarSetImageList(This,hwnd,himl) (This)->lpVtbl->ThumbBarSetImageList(This,hwnd,himl)
   3450 #define ITaskbarList4_SetOverlayIcon(This,hwnd,hIcon,pszDescription) (This)->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription)
   3451 #define ITaskbarList4_SetThumbnailTooltip(This,hwnd,pszTip) (This)->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip)
   3452 #define ITaskbarList4_SetThumbnailClip(This,hwnd,prcClip) (This)->lpVtbl->SetThumbnailClip(This,hwnd,prcClip)
   3453 /*** ITaskbarList4 methods ***/
   3454 #define ITaskbarList4_SetTabProperties(This,hwndTab,stpFlags) (This)->lpVtbl->SetTabProperties(This,hwndTab,stpFlags)
   3455 #endif
   3456 
   3457 #endif
   3458 #endif  /* __ITaskbarList4_INTERFACE_DEFINED__ */
   3459 
   3460 /*****************************************************************************
   3461  * IApplicationAssociationRegistrationUI interface
   3462  */
   3463 #ifndef __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__
   3464 #define __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__
   3465 
   3466 DEFINE_GUID(IID_IApplicationAssociationRegistrationUI, 0x1f76a169, 0xf994, 0x40ac, 0x8f, 0xc8, 0x09, 0x59, 0xe8, 0x87, 0x47, 0x10);
   3467 #if defined(__cplusplus) && !defined(CINTERFACE)
   3468 interface IApplicationAssociationRegistrationUI : public IUnknown
   3469 {
   3470     virtual HRESULT STDMETHODCALLTYPE LaunchAdvancedAssociationUI(
   3471         LPCWSTR pszAppRegName) = 0;
   3472 
   3473 };
   3474 #else
   3475 typedef struct IApplicationAssociationRegistrationUIVtbl {
   3476     BEGIN_INTERFACE
   3477 
   3478     /*** IUnknown methods ***/
   3479     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3480         IApplicationAssociationRegistrationUI* This,
   3481         REFIID riid,
   3482         void **ppvObject);
   3483 
   3484     ULONG (STDMETHODCALLTYPE *AddRef)(
   3485         IApplicationAssociationRegistrationUI* This);
   3486 
   3487     ULONG (STDMETHODCALLTYPE *Release)(
   3488         IApplicationAssociationRegistrationUI* This);
   3489 
   3490     /*** IApplicationAssociationRegistrationUI methods ***/
   3491     HRESULT (STDMETHODCALLTYPE *LaunchAdvancedAssociationUI)(
   3492         IApplicationAssociationRegistrationUI* This,
   3493         LPCWSTR pszAppRegName);
   3494 
   3495     END_INTERFACE
   3496 } IApplicationAssociationRegistrationUIVtbl;
   3497 interface IApplicationAssociationRegistrationUI {
   3498     CONST_VTBL IApplicationAssociationRegistrationUIVtbl* lpVtbl;
   3499 };
   3500 
   3501 #ifdef COBJMACROS
   3502 /*** IUnknown methods ***/
   3503 #define IApplicationAssociationRegistrationUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3504 #define IApplicationAssociationRegistrationUI_AddRef(This) (This)->lpVtbl->AddRef(This)
   3505 #define IApplicationAssociationRegistrationUI_Release(This) (This)->lpVtbl->Release(This)
   3506 /*** IApplicationAssociationRegistrationUI methods ***/
   3507 #define IApplicationAssociationRegistrationUI_LaunchAdvancedAssociationUI(This) (This)->lpVtbl->LaunchAdvancedAssociationUI(This)
   3508 #endif
   3509 
   3510 #endif
   3511 #endif  /* __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__ */
   3512 
   3513 #ifndef __ICDBurn_INTERFACE_DEFINED__
   3514 #define __ICDBurn_INTERFACE_DEFINED__
   3515   EXTERN_C const IID IID_ICDBurn;
   3516 #if defined(__cplusplus) && !defined(CINTERFACE)
   3517   struct ICDBurn : public IUnknown {
   3518   public:
   3519     virtual HRESULT WINAPI GetRecorderDriveLetter(LPWSTR pszDrive,UINT cch) = 0;
   3520     virtual HRESULT WINAPI Burn(HWND hwnd) = 0;
   3521     virtual HRESULT WINAPI HasRecordableDrive(WINBOOL *pfHasRecorder) = 0;
   3522   };
   3523 #else
   3524   typedef struct ICDBurnVtbl {
   3525     BEGIN_INTERFACE
   3526       HRESULT (WINAPI *QueryInterface)(ICDBurn *This,REFIID riid,void **ppvObject);
   3527       ULONG (WINAPI *AddRef)(ICDBurn *This);
   3528       ULONG (WINAPI *Release)(ICDBurn *This);
   3529       HRESULT (WINAPI *GetRecorderDriveLetter)(ICDBurn *This,LPWSTR pszDrive,UINT cch);
   3530       HRESULT (WINAPI *Burn)(ICDBurn *This,HWND hwnd);
   3531       HRESULT (WINAPI *HasRecordableDrive)(ICDBurn *This,WINBOOL *pfHasRecorder);
   3532     END_INTERFACE
   3533   } ICDBurnVtbl;
   3534   struct ICDBurn {
   3535     CONST_VTBL struct ICDBurnVtbl *lpVtbl;
   3536   };
   3537 #ifdef COBJMACROS
   3538 #define ICDBurn_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3539 #define ICDBurn_AddRef(This) (This)->lpVtbl->AddRef(This)
   3540 #define ICDBurn_Release(This) (This)->lpVtbl->Release(This)
   3541 #define ICDBurn_GetRecorderDriveLetter(This,pszDrive,cch) (This)->lpVtbl->GetRecorderDriveLetter(This,pszDrive,cch)
   3542 #define ICDBurn_Burn(This,hwnd) (This)->lpVtbl->Burn(This,hwnd)
   3543 #define ICDBurn_HasRecordableDrive(This,pfHasRecorder) (This)->lpVtbl->HasRecordableDrive(This,pfHasRecorder)
   3544 #endif
   3545 #endif
   3546   HRESULT WINAPI ICDBurn_GetRecorderDriveLetter_Proxy(ICDBurn *This,LPWSTR pszDrive,UINT cch);
   3547   void __RPC_STUB ICDBurn_GetRecorderDriveLetter_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3548   HRESULT WINAPI ICDBurn_Burn_Proxy(ICDBurn *This,HWND hwnd);
   3549   void __RPC_STUB ICDBurn_Burn_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3550   HRESULT WINAPI ICDBurn_HasRecordableDrive_Proxy(ICDBurn *This,WINBOOL *pfHasRecorder);
   3551   void __RPC_STUB ICDBurn_HasRecordableDrive_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3552 #endif
   3553 
   3554 #define IDD_WIZEXTN_FIRST 0x5000
   3555 #define IDD_WIZEXTN_LAST 0x5100
   3556 
   3557   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0234_v0_0_c_ifspec;
   3558   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0234_v0_0_s_ifspec;
   3559 #ifndef __IWizardSite_INTERFACE_DEFINED__
   3560 #define __IWizardSite_INTERFACE_DEFINED__
   3561   EXTERN_C const IID IID_IWizardSite;
   3562 #if defined(__cplusplus) && !defined(CINTERFACE)
   3563   struct IWizardSite : public IUnknown {
   3564   public:
   3565     virtual HRESULT WINAPI GetPreviousPage(HPROPSHEETPAGE *phpage) = 0;
   3566     virtual HRESULT WINAPI GetNextPage(HPROPSHEETPAGE *phpage) = 0;
   3567     virtual HRESULT WINAPI GetCancelledPage(HPROPSHEETPAGE *phpage) = 0;
   3568   };
   3569 #else
   3570   typedef struct IWizardSiteVtbl {
   3571     BEGIN_INTERFACE
   3572       HRESULT (WINAPI *QueryInterface)(IWizardSite *This,REFIID riid,void **ppvObject);
   3573       ULONG (WINAPI *AddRef)(IWizardSite *This);
   3574       ULONG (WINAPI *Release)(IWizardSite *This);
   3575       HRESULT (WINAPI *GetPreviousPage)(IWizardSite *This,HPROPSHEETPAGE *phpage);
   3576       HRESULT (WINAPI *GetNextPage)(IWizardSite *This,HPROPSHEETPAGE *phpage);
   3577       HRESULT (WINAPI *GetCancelledPage)(IWizardSite *This,HPROPSHEETPAGE *phpage);
   3578     END_INTERFACE
   3579   } IWizardSiteVtbl;
   3580   struct IWizardSite {
   3581     CONST_VTBL struct IWizardSiteVtbl *lpVtbl;
   3582   };
   3583 #ifdef COBJMACROS
   3584 #define IWizardSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3585 #define IWizardSite_AddRef(This) (This)->lpVtbl->AddRef(This)
   3586 #define IWizardSite_Release(This) (This)->lpVtbl->Release(This)
   3587 #define IWizardSite_GetPreviousPage(This,phpage) (This)->lpVtbl->GetPreviousPage(This,phpage)
   3588 #define IWizardSite_GetNextPage(This,phpage) (This)->lpVtbl->GetNextPage(This,phpage)
   3589 #define IWizardSite_GetCancelledPage(This,phpage) (This)->lpVtbl->GetCancelledPage(This,phpage)
   3590 #endif
   3591 #endif
   3592   HRESULT WINAPI IWizardSite_GetPreviousPage_Proxy(IWizardSite *This,HPROPSHEETPAGE *phpage);
   3593   void __RPC_STUB IWizardSite_GetPreviousPage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3594   HRESULT WINAPI IWizardSite_GetNextPage_Proxy(IWizardSite *This,HPROPSHEETPAGE *phpage);
   3595   void __RPC_STUB IWizardSite_GetNextPage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3596   HRESULT WINAPI IWizardSite_GetCancelledPage_Proxy(IWizardSite *This,HPROPSHEETPAGE *phpage);
   3597   void __RPC_STUB IWizardSite_GetCancelledPage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3598 #endif
   3599 
   3600 #ifndef __IWizardExtension_INTERFACE_DEFINED__
   3601 #define __IWizardExtension_INTERFACE_DEFINED__
   3602   EXTERN_C const IID IID_IWizardExtension;
   3603 #if defined(__cplusplus) && !defined(CINTERFACE)
   3604   struct IWizardExtension : public IUnknown {
   3605   public:
   3606     virtual HRESULT WINAPI AddPages(HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded) = 0;
   3607     virtual HRESULT WINAPI GetFirstPage(HPROPSHEETPAGE *phpage) = 0;
   3608     virtual HRESULT WINAPI GetLastPage(HPROPSHEETPAGE *phpage) = 0;
   3609   };
   3610 #else
   3611   typedef struct IWizardExtensionVtbl {
   3612     BEGIN_INTERFACE
   3613       HRESULT (WINAPI *QueryInterface)(IWizardExtension *This,REFIID riid,void **ppvObject);
   3614       ULONG (WINAPI *AddRef)(IWizardExtension *This);
   3615       ULONG (WINAPI *Release)(IWizardExtension *This);
   3616       HRESULT (WINAPI *AddPages)(IWizardExtension *This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded);
   3617       HRESULT (WINAPI *GetFirstPage)(IWizardExtension *This,HPROPSHEETPAGE *phpage);
   3618       HRESULT (WINAPI *GetLastPage)(IWizardExtension *This,HPROPSHEETPAGE *phpage);
   3619     END_INTERFACE
   3620   } IWizardExtensionVtbl;
   3621   struct IWizardExtension {
   3622     CONST_VTBL struct IWizardExtensionVtbl *lpVtbl;
   3623   };
   3624 #ifdef COBJMACROS
   3625 #define IWizardExtension_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3626 #define IWizardExtension_AddRef(This) (This)->lpVtbl->AddRef(This)
   3627 #define IWizardExtension_Release(This) (This)->lpVtbl->Release(This)
   3628 #define IWizardExtension_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
   3629 #define IWizardExtension_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
   3630 #define IWizardExtension_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
   3631 #endif
   3632 #endif
   3633   HRESULT WINAPI IWizardExtension_AddPages_Proxy(IWizardExtension *This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded);
   3634   void __RPC_STUB IWizardExtension_AddPages_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3635   HRESULT WINAPI IWizardExtension_GetFirstPage_Proxy(IWizardExtension *This,HPROPSHEETPAGE *phpage);
   3636   void __RPC_STUB IWizardExtension_GetFirstPage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3637   HRESULT WINAPI IWizardExtension_GetLastPage_Proxy(IWizardExtension *This,HPROPSHEETPAGE *phpage);
   3638   void __RPC_STUB IWizardExtension_GetLastPage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3639 #endif
   3640 
   3641 #ifndef __IWebWizardExtension_INTERFACE_DEFINED__
   3642 #define __IWebWizardExtension_INTERFACE_DEFINED__
   3643   EXTERN_C const IID IID_IWebWizardExtension;
   3644 #if defined(__cplusplus) && !defined(CINTERFACE)
   3645   struct IWebWizardExtension : public IWizardExtension {
   3646   public:
   3647     virtual HRESULT WINAPI SetInitialURL(LPCWSTR pszURL) = 0;
   3648     virtual HRESULT WINAPI SetErrorURL(LPCWSTR pszErrorURL) = 0;
   3649   };
   3650 #else
   3651   typedef struct IWebWizardExtensionVtbl {
   3652     BEGIN_INTERFACE
   3653       HRESULT (WINAPI *QueryInterface)(IWebWizardExtension *This,REFIID riid,void **ppvObject);
   3654       ULONG (WINAPI *AddRef)(IWebWizardExtension *This);
   3655       ULONG (WINAPI *Release)(IWebWizardExtension *This);
   3656       HRESULT (WINAPI *AddPages)(IWebWizardExtension *This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded);
   3657       HRESULT (WINAPI *GetFirstPage)(IWebWizardExtension *This,HPROPSHEETPAGE *phpage);
   3658       HRESULT (WINAPI *GetLastPage)(IWebWizardExtension *This,HPROPSHEETPAGE *phpage);
   3659       HRESULT (WINAPI *SetInitialURL)(IWebWizardExtension *This,LPCWSTR pszURL);
   3660       HRESULT (WINAPI *SetErrorURL)(IWebWizardExtension *This,LPCWSTR pszErrorURL);
   3661     END_INTERFACE
   3662   } IWebWizardExtensionVtbl;
   3663   struct IWebWizardExtension {
   3664     CONST_VTBL struct IWebWizardExtensionVtbl *lpVtbl;
   3665   };
   3666 #ifdef COBJMACROS
   3667 #define IWebWizardExtension_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3668 #define IWebWizardExtension_AddRef(This) (This)->lpVtbl->AddRef(This)
   3669 #define IWebWizardExtension_Release(This) (This)->lpVtbl->Release(This)
   3670 #define IWebWizardExtension_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
   3671 #define IWebWizardExtension_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
   3672 #define IWebWizardExtension_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
   3673 #define IWebWizardExtension_SetInitialURL(This,pszURL) (This)->lpVtbl->SetInitialURL(This,pszURL)
   3674 #define IWebWizardExtension_SetErrorURL(This,pszErrorURL) (This)->lpVtbl->SetErrorURL(This,pszErrorURL)
   3675 #endif
   3676 #endif
   3677   HRESULT WINAPI IWebWizardExtension_SetInitialURL_Proxy(IWebWizardExtension *This,LPCWSTR pszURL);
   3678   void __RPC_STUB IWebWizardExtension_SetInitialURL_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3679   HRESULT WINAPI IWebWizardExtension_SetErrorURL_Proxy(IWebWizardExtension *This,LPCWSTR pszErrorURL);
   3680   void __RPC_STUB IWebWizardExtension_SetErrorURL_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3681 #endif
   3682 
   3683 #define SID_WebWizardHost IID_IWebWizardExtension
   3684 #define SHPWHF_NORECOMPRESS 0x00000001
   3685 #define SHPWHF_NONETPLACECREATE 0x00000002
   3686 #define SHPWHF_NOFILESELECTOR 0x00000004
   3687 #define SHPWHF_VALIDATEVIAWEBFOLDERS 0x00010000
   3688 
   3689   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0237_v0_0_c_ifspec;
   3690   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0237_v0_0_s_ifspec;
   3691 #ifndef __IPublishingWizard_INTERFACE_DEFINED__
   3692 #define __IPublishingWizard_INTERFACE_DEFINED__
   3693 
   3694   EXTERN_C const IID IID_IPublishingWizard;
   3695 #if defined(__cplusplus) && !defined(CINTERFACE)
   3696   struct IPublishingWizard : public IWizardExtension {
   3697   public:
   3698     virtual HRESULT WINAPI Initialize(IDataObject *pdo,DWORD dwOptions,LPCWSTR pszServiceProvider) = 0;
   3699     virtual HRESULT WINAPI GetTransferManifest(HRESULT *phrFromTransfer,IXMLDOMDocument **pdocManifest) = 0;
   3700   };
   3701 #else
   3702   typedef struct IPublishingWizardVtbl {
   3703     BEGIN_INTERFACE
   3704       HRESULT (WINAPI *QueryInterface)(IPublishingWizard *This,REFIID riid,void **ppvObject);
   3705       ULONG (WINAPI *AddRef)(IPublishingWizard *This);
   3706       ULONG (WINAPI *Release)(IPublishingWizard *This);
   3707       HRESULT (WINAPI *AddPages)(IPublishingWizard *This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded);
   3708       HRESULT (WINAPI *GetFirstPage)(IPublishingWizard *This,HPROPSHEETPAGE *phpage);
   3709       HRESULT (WINAPI *GetLastPage)(IPublishingWizard *This,HPROPSHEETPAGE *phpage);
   3710       HRESULT (WINAPI *Initialize)(IPublishingWizard *This,IDataObject *pdo,DWORD dwOptions,LPCWSTR pszServiceProvider);
   3711       HRESULT (WINAPI *GetTransferManifest)(IPublishingWizard *This,HRESULT *phrFromTransfer,IXMLDOMDocument **pdocManifest);
   3712     END_INTERFACE
   3713   } IPublishingWizardVtbl;
   3714   struct IPublishingWizard {
   3715     CONST_VTBL struct IPublishingWizardVtbl *lpVtbl;
   3716   };
   3717 #ifdef COBJMACROS
   3718 #define IPublishingWizard_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3719 #define IPublishingWizard_AddRef(This) (This)->lpVtbl->AddRef(This)
   3720 #define IPublishingWizard_Release(This) (This)->lpVtbl->Release(This)
   3721 #define IPublishingWizard_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
   3722 #define IPublishingWizard_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
   3723 #define IPublishingWizard_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
   3724 #define IPublishingWizard_Initialize(This,pdo,dwOptions,pszServiceProvider) (This)->lpVtbl->Initialize(This,pdo,dwOptions,pszServiceProvider)
   3725 #define IPublishingWizard_GetTransferManifest(This,phrFromTransfer,pdocManifest) (This)->lpVtbl->GetTransferManifest(This,phrFromTransfer,pdocManifest)
   3726 #endif
   3727 #endif
   3728   HRESULT WINAPI IPublishingWizard_Initialize_Proxy(IPublishingWizard *This,IDataObject *pdo,DWORD dwOptions,LPCWSTR pszServiceProvider);
   3729   void __RPC_STUB IPublishingWizard_Initialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3730   HRESULT WINAPI IPublishingWizard_GetTransferManifest_Proxy(IPublishingWizard *This,HRESULT *phrFromTransfer,IXMLDOMDocument **pdocManifest);
   3731   void __RPC_STUB IPublishingWizard_GetTransferManifest_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3732 #endif
   3733 
   3734 #ifndef __IFolderViewHost_INTERFACE_DEFINED__
   3735 #define __IFolderViewHost_INTERFACE_DEFINED__
   3736   EXTERN_C const IID IID_IFolderViewHost;
   3737 #if defined(__cplusplus) && !defined(CINTERFACE)
   3738   struct IFolderViewHost : public IUnknown {
   3739   public:
   3740     virtual HRESULT WINAPI Initialize(HWND hwndParent,IDataObject *pdo,RECT *prc) = 0;
   3741   };
   3742 #else
   3743   typedef struct IFolderViewHostVtbl {
   3744     BEGIN_INTERFACE
   3745       HRESULT (WINAPI *QueryInterface)(IFolderViewHost *This,REFIID riid,void **ppvObject);
   3746       ULONG (WINAPI *AddRef)(IFolderViewHost *This);
   3747       ULONG (WINAPI *Release)(IFolderViewHost *This);
   3748       HRESULT (WINAPI *Initialize)(IFolderViewHost *This,HWND hwndParent,IDataObject *pdo,RECT *prc);
   3749     END_INTERFACE
   3750   } IFolderViewHostVtbl;
   3751   struct IFolderViewHost {
   3752     CONST_VTBL struct IFolderViewHostVtbl *lpVtbl;
   3753   };
   3754 #ifdef COBJMACROS
   3755 #define IFolderViewHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3756 #define IFolderViewHost_AddRef(This) (This)->lpVtbl->AddRef(This)
   3757 #define IFolderViewHost_Release(This) (This)->lpVtbl->Release(This)
   3758 #define IFolderViewHost_Initialize(This,hwndParent,pdo,prc) (This)->lpVtbl->Initialize(This,hwndParent,pdo,prc)
   3759 #endif
   3760 #endif
   3761   HRESULT WINAPI IFolderViewHost_Initialize_Proxy(IFolderViewHost *This,HWND hwndParent,IDataObject *pdo,RECT *prc);
   3762   void __RPC_STUB IFolderViewHost_Initialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3763 #endif
   3764 
   3765 #define ACDD_VISIBLE 0x0001
   3766 
   3767   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0239_v0_0_c_ifspec;
   3768   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0239_v0_0_s_ifspec;
   3769 #ifndef __IAutoCompleteDropDown_INTERFACE_DEFINED__
   3770 #define __IAutoCompleteDropDown_INTERFACE_DEFINED__
   3771   EXTERN_C const IID IID_IAutoCompleteDropDown;
   3772 #if defined(__cplusplus) && !defined(CINTERFACE)
   3773   struct IAutoCompleteDropDown : public IUnknown {
   3774   public:
   3775     virtual HRESULT WINAPI GetDropDownStatus(DWORD *pdwFlags,LPWSTR *ppwszString) = 0;
   3776     virtual HRESULT WINAPI ResetEnumerator(void) = 0;
   3777   };
   3778 #else
   3779   typedef struct IAutoCompleteDropDownVtbl {
   3780     BEGIN_INTERFACE
   3781       HRESULT (WINAPI *QueryInterface)(IAutoCompleteDropDown *This,REFIID riid,void **ppvObject);
   3782       ULONG (WINAPI *AddRef)(IAutoCompleteDropDown *This);
   3783       ULONG (WINAPI *Release)(IAutoCompleteDropDown *This);
   3784       HRESULT (WINAPI *GetDropDownStatus)(IAutoCompleteDropDown *This,DWORD *pdwFlags,LPWSTR *ppwszString);
   3785       HRESULT (WINAPI *ResetEnumerator)(IAutoCompleteDropDown *This);
   3786     END_INTERFACE
   3787   } IAutoCompleteDropDownVtbl;
   3788   struct IAutoCompleteDropDown {
   3789     CONST_VTBL struct IAutoCompleteDropDownVtbl *lpVtbl;
   3790   };
   3791 #ifdef COBJMACROS
   3792 #define IAutoCompleteDropDown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3793 #define IAutoCompleteDropDown_AddRef(This) (This)->lpVtbl->AddRef(This)
   3794 #define IAutoCompleteDropDown_Release(This) (This)->lpVtbl->Release(This)
   3795 #define IAutoCompleteDropDown_GetDropDownStatus(This,pdwFlags,ppwszString) (This)->lpVtbl->GetDropDownStatus(This,pdwFlags,ppwszString)
   3796 #define IAutoCompleteDropDown_ResetEnumerator(This) (This)->lpVtbl->ResetEnumerator(This)
   3797 #endif
   3798 #endif
   3799   HRESULT WINAPI IAutoCompleteDropDown_GetDropDownStatus_Proxy(IAutoCompleteDropDown *This,DWORD *pdwFlags,LPWSTR *ppwszString);
   3800   void __RPC_STUB IAutoCompleteDropDown_GetDropDownStatus_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3801   HRESULT WINAPI IAutoCompleteDropDown_ResetEnumerator_Proxy(IAutoCompleteDropDown *This);
   3802   void __RPC_STUB IAutoCompleteDropDown_ResetEnumerator_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3803 #endif
   3804 
   3805 #define PPW_LAUNCHEDBYUSER 0x00000001
   3806 
   3807   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0240_v0_0_c_ifspec;
   3808   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0240_v0_0_s_ifspec;
   3809 
   3810 /*****************************************************************************
   3811  * IShellItemArray interface
   3812  */
   3813 #ifndef __IShellItemArray_INTERFACE_DEFINED__
   3814 #define __IShellItemArray_INTERFACE_DEFINED__
   3815 
   3816 typedef enum SIATTRIBFLAGS {
   3817     SIATTRIBFLAGS_AND = 0x1,
   3818     SIATTRIBFLAGS_OR = 0x2,
   3819     SIATTRIBFLAGS_APPCOMPAT = 0x3,
   3820     SIATTRIBFLAGS_MASK = 0x3,
   3821     SIATTRIBFLAGS_ALLITEMS = 0x4000
   3822 } SIATTRIBFLAGS;
   3823 DEFINE_ENUM_FLAG_OPERATORS(SIATTRIBFLAGS)
   3824 DEFINE_GUID(IID_IShellItemArray, 0xb63ea76d, 0x1f85, 0x456f, 0xa1,0x9c, 0x48,0x15,0x9e,0xfa,0x85,0x8b);
   3825 #if defined(__cplusplus) && !defined(CINTERFACE)
   3826 MIDL_INTERFACE("b63ea76d-1f85-456f-a19c-48159efa858b")
   3827 IShellItemArray : public IUnknown
   3828 {
   3829     virtual HRESULT STDMETHODCALLTYPE BindToHandler(
   3830         IBindCtx *pbc,
   3831         REFGUID bhid,
   3832         REFIID riid,
   3833         void **ppvOut) = 0;
   3834 
   3835     virtual HRESULT STDMETHODCALLTYPE GetPropertyStore(
   3836         GETPROPERTYSTOREFLAGS flags,
   3837         REFIID riid,
   3838         void **ppv) = 0;
   3839 
   3840     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionList(
   3841         REFPROPERTYKEY keyType,
   3842         REFIID riid,
   3843         void **ppv) = 0;
   3844 
   3845     virtual HRESULT STDMETHODCALLTYPE GetAttributes(
   3846         SIATTRIBFLAGS AttribFlags,
   3847         SFGAOF sfgaoMask,
   3848         SFGAOF *psfgaoAttribs) = 0;
   3849 
   3850     virtual HRESULT STDMETHODCALLTYPE GetCount(
   3851         DWORD *pdwNumItems) = 0;
   3852 
   3853     virtual HRESULT STDMETHODCALLTYPE GetItemAt(
   3854         DWORD dwIndex,
   3855         IShellItem **ppsi) = 0;
   3856 
   3857     virtual HRESULT STDMETHODCALLTYPE EnumItems(
   3858         IEnumShellItems **ppenumShellItems) = 0;
   3859 
   3860 };
   3861 #ifdef __CRT_UUID_DECL
   3862 __CRT_UUID_DECL(IShellItemArray, 0xb63ea76d, 0x1f85, 0x456f, 0xa1,0x9c, 0x48,0x15,0x9e,0xfa,0x85,0x8b)
   3863 #endif
   3864 #else
   3865 typedef struct IShellItemArrayVtbl {
   3866     BEGIN_INTERFACE
   3867 
   3868     /*** IUnknown methods ***/
   3869     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3870         IShellItemArray* This,
   3871         REFIID riid,
   3872         void **ppvObject);
   3873 
   3874     ULONG (STDMETHODCALLTYPE *AddRef)(
   3875         IShellItemArray* This);
   3876 
   3877     ULONG (STDMETHODCALLTYPE *Release)(
   3878         IShellItemArray* This);
   3879     /*** IShellItemArray methods ***/
   3880     HRESULT (STDMETHODCALLTYPE *BindToHandler)(
   3881         IShellItemArray* This,
   3882         IBindCtx *pbc,
   3883         REFGUID bhid,
   3884         REFIID riid,
   3885         void **ppvOut);
   3886 
   3887     HRESULT (STDMETHODCALLTYPE *GetPropertyStore)(
   3888         IShellItemArray* This,
   3889         GETPROPERTYSTOREFLAGS flags,
   3890         REFIID riid,
   3891         void **ppv);
   3892 
   3893     HRESULT (STDMETHODCALLTYPE *GetPropertyDescriptionList)(
   3894         IShellItemArray* This,
   3895         REFPROPERTYKEY keyType,
   3896         REFIID riid,
   3897         void **ppv);
   3898 
   3899     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
   3900         IShellItemArray* This,
   3901         SIATTRIBFLAGS AttribFlags,
   3902         SFGAOF sfgaoMask,
   3903         SFGAOF *psfgaoAttribs);
   3904 
   3905     HRESULT (STDMETHODCALLTYPE *GetCount)(
   3906         IShellItemArray* This,
   3907         DWORD *pdwNumItems);
   3908 
   3909     HRESULT (STDMETHODCALLTYPE *GetItemAt)(
   3910         IShellItemArray* This,
   3911         DWORD dwIndex,
   3912         IShellItem **ppsi);
   3913 
   3914     HRESULT (STDMETHODCALLTYPE *EnumItems)(
   3915         IShellItemArray* This,
   3916         IEnumShellItems **ppenumShellItems);
   3917 
   3918     END_INTERFACE
   3919 } IShellItemArrayVtbl;
   3920 interface IShellItemArray {
   3921     CONST_VTBL IShellItemArrayVtbl* lpVtbl;
   3922 };
   3923 
   3924 #ifdef COBJMACROS
   3925 /*** IUnknown methods ***/
   3926 #define IShellItemArray_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3927 #define IShellItemArray_AddRef(This) (This)->lpVtbl->AddRef(This)
   3928 #define IShellItemArray_Release(This) (This)->lpVtbl->Release(This)
   3929 /*** IShellItemArray methods ***/
   3930 #define IShellItemArray_BindToHandler(This,pbc,bhid,riid,ppvOut) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppvOut)
   3931 #define IShellItemArray_GetPropertyStore(This,flags,riid,ppv) (This)->lpVtbl->GetPropertyStore(This,flags,riid,ppv)
   3932 #define IShellItemArray_GetPropertyDescriptionList(This,keyType,riid,ppv) (This)->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv)
   3933 #define IShellItemArray_GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs)
   3934 #define IShellItemArray_GetCount(This,pdwNumItems) (This)->lpVtbl->GetCount(This,pdwNumItems)
   3935 #define IShellItemArray_GetItemAt(This,dwIndex,ppsi) (This)->lpVtbl->GetItemAt(This,dwIndex,ppsi)
   3936 #define IShellItemArray_EnumItems(This,ppenumShellItems) (This)->lpVtbl->EnumItems(This,ppenumShellItems)
   3937 #endif
   3938 
   3939 #endif
   3940 
   3941 #endif  /* __IShellItemArray_INTERFACE_DEFINED__ */
   3942 
   3943 #ifndef __IModalWindow_INTERFACE_DEFINED__
   3944 #define __IModalWindow_INTERFACE_DEFINED__
   3945   EXTERN_C const IID IID_IModalWindow;
   3946 #if defined(__cplusplus) && !defined(CINTERFACE)
   3947   struct IModalWindow : public IUnknown {
   3948   public:
   3949     virtual HRESULT WINAPI Show(HWND hwndParent) = 0;
   3950   };
   3951 #else
   3952   typedef struct IModalWindowVtbl {
   3953     BEGIN_INTERFACE
   3954       HRESULT (WINAPI *QueryInterface)(IModalWindow *This,REFIID riid,void **ppvObject);
   3955       ULONG (WINAPI *AddRef)(IModalWindow *This);
   3956       ULONG (WINAPI *Release)(IModalWindow *This);
   3957       HRESULT (WINAPI *Show)(IModalWindow *This,HWND hwndParent);
   3958     END_INTERFACE
   3959   } IModalWindowVtbl;
   3960   struct IModalWindow {
   3961     CONST_VTBL struct IModalWindowVtbl *lpVtbl;
   3962   };
   3963 #ifdef COBJMACROS
   3964 #define IModalWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3965 #define IModalWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
   3966 #define IModalWindow_Release(This) (This)->lpVtbl->Release(This)
   3967 #define IModalWindow_Show(This,hwndParent) (This)->lpVtbl->Show(This,hwndParent)
   3968 #endif
   3969 #endif
   3970   HRESULT WINAPI IModalWindow_Show_Proxy(IModalWindow *This,HWND hwndParent);
   3971   void __RPC_STUB IModalWindow_Show_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   3972 #endif
   3973 
   3974 typedef enum FDAP {
   3975     FDAP_BOTTOM = 0,
   3976     FDAP_TOP = 1
   3977 } FDAP;
   3978 
   3979 /*****************************************************************************
   3980  * IFileDialog interface
   3981  */
   3982 #ifndef __IFileDialog_INTERFACE_DEFINED__
   3983 #define __IFileDialog_INTERFACE_DEFINED__
   3984 
   3985 enum _FILEOPENDIALOGOPTIONS {
   3986     FOS_OVERWRITEPROMPT = 0x2,
   3987     FOS_STRICTFILETYPES = 0x4,
   3988     FOS_NOCHANGEDIR = 0x8,
   3989     FOS_PICKFOLDERS = 0x20,
   3990     FOS_FORCEFILESYSTEM = 0x40,
   3991     FOS_ALLNONSTORAGEITEMS = 0x80,
   3992     FOS_NOVALIDATE = 0x100,
   3993     FOS_ALLOWMULTISELECT = 0x200,
   3994     FOS_PATHMUSTEXIST = 0x800,
   3995     FOS_FILEMUSTEXIST = 0x1000,
   3996     FOS_CREATEPROMPT = 0x2000,
   3997     FOS_SHAREAWARE = 0x4000,
   3998     FOS_NOREADONLYRETURN = 0x8000,
   3999     FOS_NOTESTFILECREATE = 0x10000,
   4000     FOS_HIDEMRUPLACES = 0x20000,
   4001     FOS_HIDEPINNEDPLACES = 0x40000,
   4002     FOS_NODEREFERENCELINKS = 0x100000,
   4003     FOS_DONTADDTORECENT = 0x2000000,
   4004     FOS_FORCESHOWHIDDEN = 0x10000000,
   4005     FOS_DEFAULTNOMINIMODE = 0x20000000,
   4006     FOS_FORCEPREVIEWPANEON = 0x40000000
   4007 };
   4008 
   4009 typedef DWORD FILEOPENDIALOGOPTIONS;
   4010 DEFINE_GUID(IID_IFileDialog, 0x42f85136, 0xdb7e, 0x439c, 0x85,0xf1, 0xe4,0x07,0x5d,0x13,0x5f,0xc8);
   4011 #if defined(__cplusplus) && !defined(CINTERFACE)
   4012 MIDL_INTERFACE("42f85136-db7e-439c-85f1-e4075d135fc8")
   4013 IFileDialog : public IModalWindow
   4014 {
   4015     virtual HRESULT STDMETHODCALLTYPE SetFileTypes(
   4016         UINT cFileTypes,
   4017         const COMDLG_FILTERSPEC *rgFilterSpec) = 0;
   4018 
   4019     virtual HRESULT STDMETHODCALLTYPE SetFileTypeIndex(
   4020         UINT iFileType) = 0;
   4021 
   4022     virtual HRESULT STDMETHODCALLTYPE GetFileTypeIndex(
   4023         UINT *piFileType) = 0;
   4024 
   4025     virtual HRESULT STDMETHODCALLTYPE Advise(
   4026         IFileDialogEvents *pfde,
   4027         DWORD *pdwCookie) = 0;
   4028 
   4029     virtual HRESULT STDMETHODCALLTYPE Unadvise(
   4030         DWORD dwCookie) = 0;
   4031 
   4032     virtual HRESULT STDMETHODCALLTYPE SetOptions(
   4033         FILEOPENDIALOGOPTIONS fos) = 0;
   4034 
   4035     virtual HRESULT STDMETHODCALLTYPE GetOptions(
   4036         FILEOPENDIALOGOPTIONS *pfos) = 0;
   4037 
   4038     virtual HRESULT STDMETHODCALLTYPE SetDefaultFolder(
   4039         IShellItem *psi) = 0;
   4040 
   4041     virtual HRESULT STDMETHODCALLTYPE SetFolder(
   4042         IShellItem *psi) = 0;
   4043 
   4044     virtual HRESULT STDMETHODCALLTYPE GetFolder(
   4045         IShellItem **ppsi) = 0;
   4046 
   4047     virtual HRESULT STDMETHODCALLTYPE GetCurrentSelection(
   4048         IShellItem **ppsi) = 0;
   4049 
   4050     virtual HRESULT STDMETHODCALLTYPE SetFileName(
   4051         LPCWSTR pszName) = 0;
   4052 
   4053     virtual HRESULT STDMETHODCALLTYPE GetFileName(
   4054         LPWSTR *pszName) = 0;
   4055 
   4056     virtual HRESULT STDMETHODCALLTYPE SetTitle(
   4057         LPCWSTR pszTitle) = 0;
   4058 
   4059     virtual HRESULT STDMETHODCALLTYPE SetOkButtonLabel(
   4060         LPCWSTR pszText) = 0;
   4061 
   4062     virtual HRESULT STDMETHODCALLTYPE SetFileNameLabel(
   4063         LPCWSTR pszLabel) = 0;
   4064 
   4065     virtual HRESULT STDMETHODCALLTYPE GetResult(
   4066         IShellItem **ppsi) = 0;
   4067 
   4068     virtual HRESULT STDMETHODCALLTYPE AddPlace(
   4069         IShellItem *psi,
   4070         FDAP fdap) = 0;
   4071 
   4072     virtual HRESULT STDMETHODCALLTYPE SetDefaultExtension(
   4073         LPCWSTR pszDefaultExtension) = 0;
   4074 
   4075     virtual HRESULT STDMETHODCALLTYPE Close(
   4076         HRESULT hr) = 0;
   4077 
   4078     virtual HRESULT STDMETHODCALLTYPE SetClientGuid(
   4079         REFGUID guid) = 0;
   4080 
   4081     virtual HRESULT STDMETHODCALLTYPE ClearClientData(
   4082         ) = 0;
   4083 
   4084     virtual HRESULT STDMETHODCALLTYPE SetFilter(
   4085         IShellItemFilter *pFilter) = 0;
   4086 
   4087 };
   4088 #ifdef __CRT_UUID_DECL
   4089 __CRT_UUID_DECL(IFileDialog, 0x42f85136, 0xdb7e, 0x439c, 0x85,0xf1, 0xe4,0x07,0x5d,0x13,0x5f,0xc8)
   4090 #endif
   4091 #else
   4092 typedef struct IFileDialogVtbl {
   4093     BEGIN_INTERFACE
   4094 
   4095     /*** IUnknown methods ***/
   4096     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4097         IFileDialog* This,
   4098         REFIID riid,
   4099         void **ppvObject);
   4100 
   4101     ULONG (STDMETHODCALLTYPE *AddRef)(
   4102         IFileDialog* This);
   4103 
   4104     ULONG (STDMETHODCALLTYPE *Release)(
   4105         IFileDialog* This);
   4106 
   4107     /*** IModalWindow methods ***/
   4108     HRESULT (STDMETHODCALLTYPE *Show)(
   4109         IFileDialog* This,
   4110         HWND hwndOwner);
   4111 
   4112     /*** IFileDialog methods ***/
   4113     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
   4114         IFileDialog* This,
   4115         UINT cFileTypes,
   4116         const COMDLG_FILTERSPEC *rgFilterSpec);
   4117     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
   4118         IFileDialog* This,
   4119         UINT iFileType);
   4120 
   4121     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
   4122         IFileDialog* This,
   4123         UINT *piFileType);
   4124 
   4125     HRESULT (STDMETHODCALLTYPE *Advise)(
   4126         IFileDialog* This,
   4127         IFileDialogEvents *pfde,
   4128         DWORD *pdwCookie);
   4129 
   4130     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   4131         IFileDialog* This,
   4132         DWORD dwCookie);
   4133 
   4134     HRESULT (STDMETHODCALLTYPE *SetOptions)(
   4135         IFileDialog* This,
   4136         FILEOPENDIALOGOPTIONS fos);
   4137 
   4138     HRESULT (STDMETHODCALLTYPE *GetOptions)(
   4139         IFileDialog* This,
   4140         FILEOPENDIALOGOPTIONS *pfos);
   4141 
   4142     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
   4143         IFileDialog* This,
   4144         IShellItem *psi);
   4145 
   4146     HRESULT (STDMETHODCALLTYPE *SetFolder)(
   4147         IFileDialog* This,
   4148         IShellItem *psi);
   4149 
   4150     HRESULT (STDMETHODCALLTYPE *GetFolder)(
   4151         IFileDialog* This,
   4152         IShellItem **ppsi);
   4153 
   4154     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
   4155         IFileDialog* This,
   4156         IShellItem **ppsi);
   4157 
   4158     HRESULT (STDMETHODCALLTYPE *SetFileName)(
   4159         IFileDialog* This,
   4160         LPCWSTR pszName);
   4161 
   4162     HRESULT (STDMETHODCALLTYPE *GetFileName)(
   4163         IFileDialog* This,
   4164         LPWSTR *pszName);
   4165 
   4166     HRESULT (STDMETHODCALLTYPE *SetTitle)(
   4167         IFileDialog* This,
   4168         LPCWSTR pszTitle);
   4169 
   4170     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
   4171         IFileDialog* This,
   4172         LPCWSTR pszText);
   4173 
   4174     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
   4175         IFileDialog* This,
   4176         LPCWSTR pszLabel);
   4177 
   4178     HRESULT (STDMETHODCALLTYPE *GetResult)(
   4179         IFileDialog* This,
   4180         IShellItem **ppsi);
   4181 
   4182     HRESULT (STDMETHODCALLTYPE *AddPlace)(
   4183         IFileDialog* This,
   4184         IShellItem *psi,
   4185         FDAP fdap);
   4186    HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
   4187         IFileDialog* This,
   4188         LPCWSTR pszDefaultExtension);
   4189 
   4190     HRESULT (STDMETHODCALLTYPE *Close)(
   4191         IFileDialog* This,
   4192         HRESULT hr);
   4193 
   4194     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
   4195         IFileDialog* This,
   4196         REFGUID guid);
   4197 
   4198     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
   4199         IFileDialog* This);
   4200 
   4201     HRESULT (STDMETHODCALLTYPE *SetFilter)(
   4202         IFileDialog* This,
   4203         IShellItemFilter *pFilter);
   4204 
   4205     END_INTERFACE
   4206 } IFileDialogVtbl;
   4207 interface IFileDialog {
   4208     CONST_VTBL IFileDialogVtbl* lpVtbl;
   4209 };
   4210 
   4211 #ifdef COBJMACROS
   4212 /*** IUnknown methods ***/
   4213 #define IFileDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4214 #define IFileDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
   4215 #define IFileDialog_Release(This) (This)->lpVtbl->Release(This)
   4216 /*** IModalWindow methods ***/
   4217 #define IFileDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
   4218 /*** IFileDialog methods ***/
   4219 #define IFileDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
   4220 #define IFileDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
   4221 #define IFileDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
   4222 #define IFileDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
   4223 #define IFileDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
   4224 #define IFileDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
   4225 #define IFileDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
   4226 #define IFileDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
   4227 #define IFileDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
   4228 #define IFileDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
   4229 #define IFileDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
   4230 #define IFileDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
   4231 #define IFileDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
   4232 #define IFileDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
   4233 #define IFileDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
   4234 #define IFileDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
   4235 #define IFileDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
   4236 #define IFileDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
   4237 #define IFileDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
   4238 #define IFileDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
   4239 #define IFileDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
   4240 #define IFileDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
   4241 #define IFileDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
   4242 #endif
   4243 
   4244 #endif
   4245 
   4246 #endif  /* __IFileDialog_INTERFACE_DEFINED__ */
   4247 
   4248 /*****************************************************************************
   4249  * IFileSaveDialog interface
   4250  */
   4251 #ifndef __IFileSaveDialog_INTERFACE_DEFINED__
   4252 #define __IFileSaveDialog_INTERFACE_DEFINED__
   4253 
   4254 DEFINE_GUID(IID_IFileSaveDialog, 0x84bccd23, 0x5fde, 0x4cdb, 0xae,0xa4, 0xaf,0x64,0xb8,0x3d,0x78,0xab);
   4255 #if defined(__cplusplus) && !defined(CINTERFACE)
   4256 MIDL_INTERFACE("84bccd23-5fde-4cdb-aea4-af64b83d78ab")
   4257 IFileSaveDialog : public IFileDialog
   4258 {
   4259     virtual HRESULT STDMETHODCALLTYPE SetSaveAsItem(
   4260         IShellItem *psi) = 0;
   4261 
   4262     virtual HRESULT STDMETHODCALLTYPE SetProperties(
   4263         IPropertyStore *pStore) = 0;
   4264 
   4265     virtual HRESULT STDMETHODCALLTYPE SetCollectedProperties(
   4266         IPropertyDescriptionList *pList,
   4267         BOOL fAppendDefault) = 0;
   4268 
   4269     virtual HRESULT STDMETHODCALLTYPE GetProperties(
   4270         IPropertyStore **ppStore) = 0;
   4271 
   4272     virtual HRESULT STDMETHODCALLTYPE ApplyProperties(
   4273         IShellItem *psi,
   4274         IPropertyStore *pStore,
   4275         HWND hwnd,
   4276         IFileOperationProgressSink *pSink) = 0;
   4277 
   4278 };
   4279 #ifdef __CRT_UUID_DECL
   4280 __CRT_UUID_DECL(IFileSaveDialog, 0x84bccd23, 0x5fde, 0x4cdb, 0xae,0xa4, 0xaf,0x64,0xb8,0x3d,0x78,0xab)
   4281 #endif
   4282 #else
   4283 typedef struct IFileSaveDialogVtbl {
   4284     BEGIN_INTERFACE
   4285 
   4286     /*** IUnknown methods ***/
   4287     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4288         IFileSaveDialog* This,
   4289         REFIID riid,
   4290         void **ppvObject);
   4291 
   4292     ULONG (STDMETHODCALLTYPE *AddRef)(
   4293         IFileSaveDialog* This);
   4294 
   4295     ULONG (STDMETHODCALLTYPE *Release)(
   4296         IFileSaveDialog* This);
   4297 
   4298     /*** IModalWindow methods ***/
   4299     HRESULT (STDMETHODCALLTYPE *Show)(
   4300         IFileSaveDialog* This,
   4301         HWND hwndOwner);
   4302 
   4303     /*** IFileDialog methods ***/
   4304     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
   4305         IFileSaveDialog* This,
   4306         UINT cFileTypes,
   4307         const COMDLG_FILTERSPEC *rgFilterSpec);
   4308 
   4309     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
   4310         IFileSaveDialog* This,
   4311         UINT iFileType);
   4312 
   4313     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
   4314         IFileSaveDialog* This,
   4315         UINT *piFileType);
   4316 
   4317     HRESULT (STDMETHODCALLTYPE *Advise)(
   4318         IFileSaveDialog* This,
   4319         IFileDialogEvents *pfde,
   4320         DWORD *pdwCookie);
   4321 
   4322     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   4323         IFileSaveDialog* This,
   4324         DWORD dwCookie);
   4325 
   4326     HRESULT (STDMETHODCALLTYPE *SetOptions)(
   4327         IFileSaveDialog* This,
   4328         FILEOPENDIALOGOPTIONS fos);
   4329 
   4330     HRESULT (STDMETHODCALLTYPE *GetOptions)(
   4331         IFileSaveDialog* This,
   4332         FILEOPENDIALOGOPTIONS *pfos);
   4333 
   4334     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
   4335         IFileSaveDialog* This,
   4336         IShellItem *psi);
   4337 
   4338     HRESULT (STDMETHODCALLTYPE *SetFolder)(
   4339         IFileSaveDialog* This,
   4340         IShellItem *psi);
   4341 
   4342     HRESULT (STDMETHODCALLTYPE *GetFolder)(
   4343         IFileSaveDialog* This,
   4344         IShellItem **ppsi);
   4345 
   4346     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
   4347         IFileSaveDialog* This,
   4348         IShellItem **ppsi);
   4349 
   4350     HRESULT (STDMETHODCALLTYPE *SetFileName)(
   4351         IFileSaveDialog* This,
   4352         LPCWSTR pszName);
   4353 
   4354     HRESULT (STDMETHODCALLTYPE *GetFileName)(
   4355         IFileSaveDialog* This,
   4356         LPWSTR *pszName);
   4357 
   4358     HRESULT (STDMETHODCALLTYPE *SetTitle)(
   4359         IFileSaveDialog* This,
   4360         LPCWSTR pszTitle);
   4361 
   4362     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
   4363         IFileSaveDialog* This,
   4364         LPCWSTR pszText);
   4365 
   4366     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
   4367         IFileSaveDialog* This,
   4368         LPCWSTR pszLabel);
   4369 
   4370     HRESULT (STDMETHODCALLTYPE *GetResult)(
   4371         IFileSaveDialog* This,
   4372         IShellItem **ppsi);
   4373 
   4374     HRESULT (STDMETHODCALLTYPE *AddPlace)(
   4375         IFileSaveDialog* This,
   4376         IShellItem *psi,
   4377         FDAP fdap);
   4378 
   4379     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
   4380         IFileSaveDialog* This,
   4381         LPCWSTR pszDefaultExtension);
   4382 
   4383     HRESULT (STDMETHODCALLTYPE *Close)(
   4384         IFileSaveDialog* This,
   4385         HRESULT hr);
   4386 
   4387    HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
   4388         IFileSaveDialog* This,
   4389         REFGUID guid);
   4390 
   4391     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
   4392         IFileSaveDialog* This);
   4393 
   4394     HRESULT (STDMETHODCALLTYPE *SetFilter)(
   4395         IFileSaveDialog* This,
   4396         IShellItemFilter *pFilter);
   4397 
   4398     /*** IFileSaveDialog methods ***/
   4399     HRESULT (STDMETHODCALLTYPE *SetSaveAsItem)(
   4400         IFileSaveDialog* This,
   4401         IShellItem *psi);
   4402 
   4403     HRESULT (STDMETHODCALLTYPE *SetProperties)(
   4404         IFileSaveDialog* This,
   4405         IPropertyStore *pStore);
   4406 
   4407     HRESULT (STDMETHODCALLTYPE *SetCollectedProperties)(
   4408         IFileSaveDialog* This,
   4409         IPropertyDescriptionList *pList,
   4410         BOOL fAppendDefault);
   4411 
   4412     HRESULT (STDMETHODCALLTYPE *GetProperties)(
   4413         IFileSaveDialog* This,
   4414         IPropertyStore **ppStore);
   4415 
   4416     HRESULT (STDMETHODCALLTYPE *ApplyProperties)(
   4417         IFileSaveDialog* This,
   4418         IShellItem *psi,
   4419         IPropertyStore *pStore,
   4420         HWND hwnd,
   4421         IFileOperationProgressSink *pSink);
   4422 
   4423     END_INTERFACE
   4424 } IFileSaveDialogVtbl;
   4425 interface IFileSaveDialog {
   4426     CONST_VTBL IFileSaveDialogVtbl* lpVtbl;
   4427 };
   4428 
   4429 #ifdef COBJMACROS
   4430 /*** IUnknown methods ***/
   4431 #define IFileSaveDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4432 #define IFileSaveDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
   4433 #define IFileSaveDialog_Release(This) (This)->lpVtbl->Release(This)
   4434 /*** IModalWindow methods ***/
   4435 #define IFileSaveDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
   4436 /*** IFileDialog methods ***/
   4437 #define IFileSaveDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
   4438 #define IFileSaveDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
   4439 #define IFileSaveDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
   4440 #define IFileSaveDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
   4441 #define IFileSaveDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
   4442 #define IFileSaveDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
   4443 #define IFileSaveDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
   4444 #define IFileSaveDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
   4445 #define IFileSaveDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
   4446 #define IFileSaveDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
   4447 #define IFileSaveDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
   4448 #define IFileSaveDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
   4449 #define IFileSaveDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
   4450 #define IFileSaveDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
   4451 #define IFileSaveDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
   4452 #define IFileSaveDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
   4453 #define IFileSaveDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
   4454 #define IFileSaveDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
   4455 #define IFileSaveDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
   4456 #define IFileSaveDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
   4457 #define IFileSaveDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
   4458 #define IFileSaveDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
   4459 #define IFileSaveDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
   4460 /*** IFileSaveDialog methods ***/
   4461 #define IFileSaveDialog_SetSaveAsItem(This,psi) (This)->lpVtbl->SetSaveAsItem(This,psi)
   4462 #define IFileSaveDialog_SetProperties(This,pStore) (This)->lpVtbl->SetProperties(This,pStore)
   4463 #define IFileSaveDialog_SetCollectedProperties(This,pList,fAppendDefault) (This)->lpVtbl->SetCollectedProperties(This,pList,fAppendDefault)
   4464 #define IFileSaveDialog_GetProperties(This,ppStore) (This)->lpVtbl->GetProperties(This,ppStore)
   4465 #define IFileSaveDialog_ApplyProperties(This,psi,pStore,hwnd,pSink) (This)->lpVtbl->ApplyProperties(This,psi,pStore,hwnd,pSink)
   4466 #endif
   4467 
   4468 #endif
   4469 
   4470 #endif  /* __IFileSaveDialog_INTERFACE_DEFINED__ */
   4471 
   4472 /*****************************************************************************
   4473  * IFileOpenDialog interface
   4474  */
   4475 #ifndef __IFileOpenDialog_INTERFACE_DEFINED__
   4476 #define __IFileOpenDialog_INTERFACE_DEFINED__
   4477 
   4478 DEFINE_GUID(IID_IFileOpenDialog, 0xd57c7288, 0xd4ad, 0x4768, 0xbe,0x02, 0x9d,0x96,0x95,0x32,0xd9,0x60);
   4479 #if defined(__cplusplus) && !defined(CINTERFACE)
   4480 MIDL_INTERFACE("d57c7288-d4ad-4768-be02-9d969532d960")
   4481 IFileOpenDialog : public IFileDialog
   4482 {
   4483     virtual HRESULT STDMETHODCALLTYPE GetResults(
   4484         IShellItemArray **ppenum) = 0;
   4485 
   4486     virtual HRESULT STDMETHODCALLTYPE GetSelectedItems(
   4487         IShellItemArray **ppsai) = 0;
   4488 
   4489 };
   4490 #ifdef __CRT_UUID_DECL
   4491 __CRT_UUID_DECL(IFileOpenDialog, 0xd57c7288, 0xd4ad, 0x4768, 0xbe,0x02, 0x9d,0x96,0x95,0x32,0xd9,0x60)
   4492 #endif
   4493 #else
   4494 typedef struct IFileOpenDialogVtbl {
   4495     BEGIN_INTERFACE
   4496 
   4497     /*** IUnknown methods ***/
   4498     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4499         IFileOpenDialog* This,
   4500         REFIID riid,
   4501         void **ppvObject);
   4502 
   4503     ULONG (STDMETHODCALLTYPE *AddRef)(
   4504         IFileOpenDialog* This);
   4505 
   4506     ULONG (STDMETHODCALLTYPE *Release)(
   4507         IFileOpenDialog* This);
   4508 
   4509     /*** IModalWindow methods ***/
   4510     HRESULT (STDMETHODCALLTYPE *Show)(
   4511         IFileOpenDialog* This,
   4512         HWND hwndOwner);
   4513 
   4514     /*** IFileDialog methods ***/
   4515     HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
   4516         IFileOpenDialog* This,
   4517         UINT cFileTypes,
   4518         const COMDLG_FILTERSPEC *rgFilterSpec);
   4519 
   4520     HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
   4521         IFileOpenDialog* This,
   4522         UINT iFileType);
   4523 
   4524     HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
   4525         IFileOpenDialog* This,
   4526         UINT *piFileType);
   4527 
   4528     HRESULT (STDMETHODCALLTYPE *Advise)(
   4529         IFileOpenDialog* This,
   4530         IFileDialogEvents *pfde,
   4531         DWORD *pdwCookie);
   4532 
   4533     HRESULT (STDMETHODCALLTYPE *Unadvise)(
   4534         IFileOpenDialog* This,
   4535         DWORD dwCookie);
   4536 
   4537     HRESULT (STDMETHODCALLTYPE *SetOptions)(
   4538         IFileOpenDialog* This,
   4539         FILEOPENDIALOGOPTIONS fos);
   4540 
   4541     HRESULT (STDMETHODCALLTYPE *GetOptions)(
   4542         IFileOpenDialog* This,
   4543         FILEOPENDIALOGOPTIONS *pfos);
   4544 
   4545     HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
   4546         IFileOpenDialog* This,
   4547         IShellItem *psi);
   4548 
   4549     HRESULT (STDMETHODCALLTYPE *SetFolder)(
   4550         IFileOpenDialog* This,
   4551         IShellItem *psi);
   4552 
   4553     HRESULT (STDMETHODCALLTYPE *GetFolder)(
   4554         IFileOpenDialog* This,
   4555         IShellItem **ppsi);
   4556 
   4557     HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
   4558         IFileOpenDialog* This,
   4559         IShellItem **ppsi);
   4560 
   4561     HRESULT (STDMETHODCALLTYPE *SetFileName)(
   4562         IFileOpenDialog* This,
   4563         LPCWSTR pszName);
   4564 
   4565     HRESULT (STDMETHODCALLTYPE *GetFileName)(
   4566         IFileOpenDialog* This,
   4567         LPWSTR *pszName);
   4568 
   4569     HRESULT (STDMETHODCALLTYPE *SetTitle)(
   4570         IFileOpenDialog* This,
   4571         LPCWSTR pszTitle);
   4572 
   4573     HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
   4574         IFileOpenDialog* This,
   4575         LPCWSTR pszText);
   4576 
   4577     HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
   4578         IFileOpenDialog* This,
   4579         LPCWSTR pszLabel);
   4580 
   4581     HRESULT (STDMETHODCALLTYPE *GetResult)(
   4582         IFileOpenDialog* This,
   4583         IShellItem **ppsi);
   4584 
   4585     HRESULT (STDMETHODCALLTYPE *AddPlace)(
   4586         IFileOpenDialog* This,
   4587         IShellItem *psi,
   4588         FDAP fdap);
   4589 
   4590     HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
   4591         IFileOpenDialog* This,
   4592         LPCWSTR pszDefaultExtension);
   4593 
   4594     HRESULT (STDMETHODCALLTYPE *Close)(
   4595         IFileOpenDialog* This,
   4596         HRESULT hr);
   4597 
   4598     HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
   4599         IFileOpenDialog* This,
   4600         REFGUID guid);
   4601 
   4602     HRESULT (STDMETHODCALLTYPE *ClearClientData)(
   4603         IFileOpenDialog* This);
   4604 
   4605     HRESULT (STDMETHODCALLTYPE *SetFilter)(
   4606         IFileOpenDialog* This,
   4607         IShellItemFilter *pFilter);
   4608 
   4609     /*** IFileOpenDialog methods ***/
   4610     HRESULT (STDMETHODCALLTYPE *GetResults)(
   4611         IFileOpenDialog* This,
   4612         IShellItemArray **ppenum);
   4613 
   4614     HRESULT (STDMETHODCALLTYPE *GetSelectedItems)(
   4615         IFileOpenDialog* This,
   4616         IShellItemArray **ppsai);
   4617 
   4618     END_INTERFACE
   4619 } IFileOpenDialogVtbl;
   4620 interface IFileOpenDialog {
   4621     CONST_VTBL IFileOpenDialogVtbl* lpVtbl;
   4622 };
   4623 
   4624 #ifdef COBJMACROS
   4625 /*** IUnknown methods ***/
   4626 #define IFileOpenDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4627 #define IFileOpenDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
   4628 #define IFileOpenDialog_Release(This) (This)->lpVtbl->Release(This)
   4629 /*** IModalWindow methods ***/
   4630 #define IFileOpenDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
   4631 /*** IFileDialog methods ***/
   4632 #define IFileOpenDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
   4633 #define IFileOpenDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
   4634 #define IFileOpenDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
   4635 #define IFileOpenDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
   4636 #define IFileOpenDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
   4637 #define IFileOpenDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
   4638 #define IFileOpenDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
   4639 #define IFileOpenDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
   4640 #define IFileOpenDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
   4641 #define IFileOpenDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
   4642 #define IFileOpenDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
   4643 #define IFileOpenDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
   4644 #define IFileOpenDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
   4645 #define IFileOpenDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
   4646 #define IFileOpenDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
   4647 #define IFileOpenDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
   4648 #define IFileOpenDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
   4649 #define IFileOpenDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
   4650 #define IFileOpenDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
   4651 #define IFileOpenDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
   4652 #define IFileOpenDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
   4653 #define IFileOpenDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
   4654 #define IFileOpenDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
   4655 /*** IFileOpenDialog methods ***/
   4656 #define IFileOpenDialog_GetResults(This,ppenum) (This)->lpVtbl->GetResults(This,ppenum)
   4657 #define IFileOpenDialog_GetSelectedItems(This,ppsai) (This)->lpVtbl->GetSelectedItems(This,ppsai)
   4658 #endif
   4659 
   4660 #endif
   4661 
   4662 #endif  /* __IFileOpenDialog_INTERFACE_DEFINED__ */
   4663 
   4664 #ifndef __IPassportWizard_INTERFACE_DEFINED__
   4665 #define __IPassportWizard_INTERFACE_DEFINED__
   4666   EXTERN_C const IID IID_IPassportWizard;
   4667 #if defined(__cplusplus) && !defined(CINTERFACE)
   4668   struct IPassportWizard : public IModalWindow {
   4669   public:
   4670     virtual HRESULT WINAPI SetOptions(DWORD dwOptions) = 0;
   4671   };
   4672 #else
   4673   typedef struct IPassportWizardVtbl {
   4674     BEGIN_INTERFACE
   4675       HRESULT (WINAPI *QueryInterface)(IPassportWizard *This,REFIID riid,void **ppvObject);
   4676       ULONG (WINAPI *AddRef)(IPassportWizard *This);
   4677       ULONG (WINAPI *Release)(IPassportWizard *This);
   4678       HRESULT (WINAPI *Show)(IPassportWizard *This,HWND hwndParent);
   4679       HRESULT (WINAPI *SetOptions)(IPassportWizard *This,DWORD dwOptions);
   4680     END_INTERFACE
   4681   } IPassportWizardVtbl;
   4682   struct IPassportWizard {
   4683     CONST_VTBL struct IPassportWizardVtbl *lpVtbl;
   4684   };
   4685 #ifdef COBJMACROS
   4686 #define IPassportWizard_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4687 #define IPassportWizard_AddRef(This) (This)->lpVtbl->AddRef(This)
   4688 #define IPassportWizard_Release(This) (This)->lpVtbl->Release(This)
   4689 #define IPassportWizard_Show(This,hwndParent) (This)->lpVtbl->Show(This,hwndParent)
   4690 #define IPassportWizard_SetOptions(This,dwOptions) (This)->lpVtbl->SetOptions(This,dwOptions)
   4691 #endif
   4692 #endif
   4693   HRESULT WINAPI IPassportWizard_SetOptions_Proxy(IPassportWizard *This,DWORD dwOptions);
   4694   void __RPC_STUB IPassportWizard_SetOptions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4695 #endif
   4696 
   4697 #define PROPSTR_EXTENSIONCOMPLETIONSTATE L"ExtensionCompletionState"
   4698 
   4699   enum __MIDL___MIDL_itf_shobjidl_0241_0001 {
   4700     CDBE_RET_DEFAULT = 0,CDBE_RET_DONTRUNOTHEREXTS = 0x1,CDBE_RET_STOPWIZARD = 0x2
   4701   };
   4702 #define SID_CDWizardHost IID_ICDBurnExt
   4703 
   4704   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0241_v0_0_c_ifspec;
   4705   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0241_v0_0_s_ifspec;
   4706 #ifndef __ICDBurnExt_INTERFACE_DEFINED__
   4707 #define __ICDBurnExt_INTERFACE_DEFINED__
   4708   enum __MIDL_ICDBurnExt_0002 {
   4709     CDBE_TYPE_MUSIC = 0x1,CDBE_TYPE_DATA = 0x2,CDBE_TYPE_ALL = 0xffffffff
   4710   };
   4711 
   4712   EXTERN_C const IID IID_ICDBurnExt;
   4713 #if defined(__cplusplus) && !defined(CINTERFACE)
   4714   struct ICDBurnExt : public IUnknown {
   4715   public:
   4716     virtual HRESULT WINAPI GetSupportedActionTypes(DWORD *pdwActions) = 0;
   4717   };
   4718 #else
   4719   typedef struct ICDBurnExtVtbl {
   4720     BEGIN_INTERFACE
   4721       HRESULT (WINAPI *QueryInterface)(ICDBurnExt *This,REFIID riid,void **ppvObject);
   4722       ULONG (WINAPI *AddRef)(ICDBurnExt *This);
   4723       ULONG (WINAPI *Release)(ICDBurnExt *This);
   4724       HRESULT (WINAPI *GetSupportedActionTypes)(ICDBurnExt *This,DWORD *pdwActions);
   4725     END_INTERFACE
   4726   } ICDBurnExtVtbl;
   4727   struct ICDBurnExt {
   4728     CONST_VTBL struct ICDBurnExtVtbl *lpVtbl;
   4729   };
   4730 #ifdef COBJMACROS
   4731 #define ICDBurnExt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4732 #define ICDBurnExt_AddRef(This) (This)->lpVtbl->AddRef(This)
   4733 #define ICDBurnExt_Release(This) (This)->lpVtbl->Release(This)
   4734 #define ICDBurnExt_GetSupportedActionTypes(This,pdwActions) (This)->lpVtbl->GetSupportedActionTypes(This,pdwActions)
   4735 #endif
   4736 #endif
   4737   HRESULT WINAPI ICDBurnExt_GetSupportedActionTypes_Proxy(ICDBurnExt *This,DWORD *pdwActions);
   4738   void __RPC_STUB ICDBurnExt_GetSupportedActionTypes_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4739 #endif
   4740 
   4741   typedef void (*PFDVENUMREADYBALLBACK)(LPVOID pvData);
   4742 
   4743   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0242_v0_0_c_ifspec;
   4744   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0242_v0_0_s_ifspec;
   4745 #ifndef __IDVGetEnum_INTERFACE_DEFINED__
   4746 #define __IDVGetEnum_INTERFACE_DEFINED__
   4747   EXTERN_C const IID IID_IDVGetEnum;
   4748 #if defined(__cplusplus) && !defined(CINTERFACE)
   4749   struct IDVGetEnum : public IUnknown {
   4750   public:
   4751     virtual HRESULT WINAPI SetEnumReadyCallback(PFDVENUMREADYBALLBACK pfn,LPVOID pvData) = 0;
   4752     virtual HRESULT WINAPI CreateEnumIDListFromContents(LPCITEMIDLIST pidlFolder,DWORD dwEnumFlags,IEnumIDList **ppEnumIDList) = 0;
   4753   };
   4754 #else
   4755   typedef struct IDVGetEnumVtbl {
   4756     BEGIN_INTERFACE
   4757       HRESULT (WINAPI *QueryInterface)(IDVGetEnum *This,REFIID riid,void **ppvObject);
   4758       ULONG (WINAPI *AddRef)(IDVGetEnum *This);
   4759       ULONG (WINAPI *Release)(IDVGetEnum *This);
   4760       HRESULT (WINAPI *SetEnumReadyCallback)(IDVGetEnum *This,PFDVENUMREADYBALLBACK pfn,LPVOID pvData);
   4761       HRESULT (WINAPI *CreateEnumIDListFromContents)(IDVGetEnum *This,LPCITEMIDLIST pidlFolder,DWORD dwEnumFlags,IEnumIDList **ppEnumIDList);
   4762     END_INTERFACE
   4763   } IDVGetEnumVtbl;
   4764   struct IDVGetEnum {
   4765     CONST_VTBL struct IDVGetEnumVtbl *lpVtbl;
   4766   };
   4767 #ifdef COBJMACROS
   4768 #define IDVGetEnum_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4769 #define IDVGetEnum_AddRef(This) (This)->lpVtbl->AddRef(This)
   4770 #define IDVGetEnum_Release(This) (This)->lpVtbl->Release(This)
   4771 #define IDVGetEnum_SetEnumReadyCallback(This,pfn,pvData) (This)->lpVtbl->SetEnumReadyCallback(This,pfn,pvData)
   4772 #define IDVGetEnum_CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList) (This)->lpVtbl->CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList)
   4773 #endif
   4774 #endif
   4775   HRESULT WINAPI IDVGetEnum_SetEnumReadyCallback_Proxy(IDVGetEnum *This,PFDVENUMREADYBALLBACK pfn,LPVOID pvData);
   4776   void __RPC_STUB IDVGetEnum_SetEnumReadyCallback_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4777   HRESULT WINAPI IDVGetEnum_CreateEnumIDListFromContents_Proxy(IDVGetEnum *This,LPCITEMIDLIST pidlFolder,DWORD dwEnumFlags,IEnumIDList **ppEnumIDList);
   4778   void __RPC_STUB IDVGetEnum_CreateEnumIDListFromContents_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4779 #endif
   4780 
   4781 #ifndef __IInsertItem_INTERFACE_DEFINED__
   4782 #define __IInsertItem_INTERFACE_DEFINED__
   4783   EXTERN_C const IID IID_IInsertItem;
   4784 #if defined(__cplusplus) && !defined(CINTERFACE)
   4785   struct IInsertItem : public IUnknown {
   4786   public:
   4787     virtual HRESULT WINAPI InsertItem(LPCITEMIDLIST pidl) = 0;
   4788   };
   4789 #else
   4790   typedef struct IInsertItemVtbl {
   4791     BEGIN_INTERFACE
   4792       HRESULT (WINAPI *QueryInterface)(IInsertItem *This,REFIID riid,void **ppvObject);
   4793       ULONG (WINAPI *AddRef)(IInsertItem *This);
   4794       ULONG (WINAPI *Release)(IInsertItem *This);
   4795       HRESULT (WINAPI *InsertItem)(IInsertItem *This,LPCITEMIDLIST pidl);
   4796     END_INTERFACE
   4797   } IInsertItemVtbl;
   4798   struct IInsertItem {
   4799     CONST_VTBL struct IInsertItemVtbl *lpVtbl;
   4800   };
   4801 #ifdef COBJMACROS
   4802 #define IInsertItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4803 #define IInsertItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   4804 #define IInsertItem_Release(This) (This)->lpVtbl->Release(This)
   4805 #define IInsertItem_InsertItem(This,pidl) (This)->lpVtbl->InsertItem(This,pidl)
   4806 #endif
   4807 #endif
   4808   HRESULT WINAPI IInsertItem_InsertItem_Proxy(IInsertItem *This,LPCITEMIDLIST pidl);
   4809   void __RPC_STUB IInsertItem_InsertItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4810 #endif
   4811 
   4812 #ifndef __IDeskBar_INTERFACE_DEFINED__
   4813 #define __IDeskBar_INTERFACE_DEFINED__
   4814   EXTERN_C const IID IID_IDeskBar;
   4815 #if defined(__cplusplus) && !defined(CINTERFACE)
   4816   struct IDeskBar : public IOleWindow {
   4817   public:
   4818     virtual HRESULT WINAPI SetClient(IUnknown *punkClient) = 0;
   4819     virtual HRESULT WINAPI GetClient(IUnknown **ppunkClient) = 0;
   4820     virtual HRESULT WINAPI OnPosRectChangeDB(LPRECT prc) = 0;
   4821   };
   4822 #else
   4823   typedef struct IDeskBarVtbl {
   4824     BEGIN_INTERFACE
   4825       HRESULT (WINAPI *QueryInterface)(IDeskBar *This,REFIID riid,void **ppvObject);
   4826       ULONG (WINAPI *AddRef)(IDeskBar *This);
   4827       ULONG (WINAPI *Release)(IDeskBar *This);
   4828       HRESULT (WINAPI *GetWindow)(IDeskBar *This,HWND *phwnd);
   4829       HRESULT (WINAPI *ContextSensitiveHelp)(IDeskBar *This,WINBOOL fEnterMode);
   4830       HRESULT (WINAPI *SetClient)(IDeskBar *This,IUnknown *punkClient);
   4831       HRESULT (WINAPI *GetClient)(IDeskBar *This,IUnknown **ppunkClient);
   4832       HRESULT (WINAPI *OnPosRectChangeDB)(IDeskBar *This,LPRECT prc);
   4833     END_INTERFACE
   4834   } IDeskBarVtbl;
   4835   struct IDeskBar {
   4836     CONST_VTBL struct IDeskBarVtbl *lpVtbl;
   4837   };
   4838 #ifdef COBJMACROS
   4839 #define IDeskBar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4840 #define IDeskBar_AddRef(This) (This)->lpVtbl->AddRef(This)
   4841 #define IDeskBar_Release(This) (This)->lpVtbl->Release(This)
   4842 #define IDeskBar_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   4843 #define IDeskBar_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   4844 #define IDeskBar_SetClient(This,punkClient) (This)->lpVtbl->SetClient(This,punkClient)
   4845 #define IDeskBar_GetClient(This,ppunkClient) (This)->lpVtbl->GetClient(This,ppunkClient)
   4846 #define IDeskBar_OnPosRectChangeDB(This,prc) (This)->lpVtbl->OnPosRectChangeDB(This,prc)
   4847 #endif
   4848 #endif
   4849   HRESULT WINAPI IDeskBar_SetClient_Proxy(IDeskBar *This,IUnknown *punkClient);
   4850   void __RPC_STUB IDeskBar_SetClient_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4851   HRESULT WINAPI IDeskBar_GetClient_Proxy(IDeskBar *This,IUnknown **ppunkClient);
   4852   void __RPC_STUB IDeskBar_GetClient_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4853   HRESULT WINAPI IDeskBar_OnPosRectChangeDB_Proxy(IDeskBar *This,LPRECT prc);
   4854   void __RPC_STUB IDeskBar_OnPosRectChangeDB_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4855 #endif
   4856 
   4857 #ifndef __IMenuBand_INTERFACE_DEFINED__
   4858 #define __IMenuBand_INTERFACE_DEFINED__
   4859   enum __MIDL_IMenuBand_0001 {
   4860     MBHANDCID_PIDLSELECT = 0
   4861   };
   4862 
   4863   EXTERN_C const IID IID_IMenuBand;
   4864 #if defined(__cplusplus) && !defined(CINTERFACE)
   4865   struct IMenuBand : public IUnknown {
   4866   public:
   4867     virtual HRESULT WINAPI IsMenuMessage(MSG *pmsg) = 0;
   4868     virtual HRESULT WINAPI TranslateMenuMessage(MSG *pmsg,LRESULT *plRet) = 0;
   4869   };
   4870 #else
   4871   typedef struct IMenuBandVtbl {
   4872     BEGIN_INTERFACE
   4873       HRESULT (WINAPI *QueryInterface)(IMenuBand *This,REFIID riid,void **ppvObject);
   4874       ULONG (WINAPI *AddRef)(IMenuBand *This);
   4875       ULONG (WINAPI *Release)(IMenuBand *This);
   4876       HRESULT (WINAPI *IsMenuMessage)(IMenuBand *This,MSG *pmsg);
   4877       HRESULT (WINAPI *TranslateMenuMessage)(IMenuBand *This,MSG *pmsg,LRESULT *plRet);
   4878     END_INTERFACE
   4879   } IMenuBandVtbl;
   4880   struct IMenuBand {
   4881     CONST_VTBL struct IMenuBandVtbl *lpVtbl;
   4882   };
   4883 #ifdef COBJMACROS
   4884 #define IMenuBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4885 #define IMenuBand_AddRef(This) (This)->lpVtbl->AddRef(This)
   4886 #define IMenuBand_Release(This) (This)->lpVtbl->Release(This)
   4887 #define IMenuBand_IsMenuMessage(This,pmsg) (This)->lpVtbl->IsMenuMessage(This,pmsg)
   4888 #define IMenuBand_TranslateMenuMessage(This,pmsg,plRet) (This)->lpVtbl->TranslateMenuMessage(This,pmsg,plRet)
   4889 #endif
   4890 #endif
   4891   HRESULT WINAPI IMenuBand_IsMenuMessage_Proxy(IMenuBand *This,MSG *pmsg);
   4892   void __RPC_STUB IMenuBand_IsMenuMessage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4893   HRESULT WINAPI IMenuBand_TranslateMenuMessage_Proxy(IMenuBand *This,MSG *pmsg,LRESULT *plRet);
   4894   void __RPC_STUB IMenuBand_TranslateMenuMessage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4895 #endif
   4896 
   4897 #ifndef __IFolderBandPriv_INTERFACE_DEFINED__
   4898 #define __IFolderBandPriv_INTERFACE_DEFINED__
   4899   EXTERN_C const IID IID_IFolderBandPriv;
   4900 #if defined(__cplusplus) && !defined(CINTERFACE)
   4901   struct IFolderBandPriv : public IUnknown {
   4902   public:
   4903     virtual HRESULT WINAPI SetCascade(WINBOOL f) = 0;
   4904     virtual HRESULT WINAPI SetAccelerators(WINBOOL f) = 0;
   4905     virtual HRESULT WINAPI SetNoIcons(WINBOOL f) = 0;
   4906     virtual HRESULT WINAPI SetNoText(WINBOOL f) = 0;
   4907   };
   4908 #else
   4909   typedef struct IFolderBandPrivVtbl {
   4910     BEGIN_INTERFACE
   4911       HRESULT (WINAPI *QueryInterface)(IFolderBandPriv *This,REFIID riid,void **ppvObject);
   4912       ULONG (WINAPI *AddRef)(IFolderBandPriv *This);
   4913       ULONG (WINAPI *Release)(IFolderBandPriv *This);
   4914       HRESULT (WINAPI *SetCascade)(IFolderBandPriv *This,WINBOOL f);
   4915       HRESULT (WINAPI *SetAccelerators)(IFolderBandPriv *This,WINBOOL f);
   4916       HRESULT (WINAPI *SetNoIcons)(IFolderBandPriv *This,WINBOOL f);
   4917       HRESULT (WINAPI *SetNoText)(IFolderBandPriv *This,WINBOOL f);
   4918     END_INTERFACE
   4919   } IFolderBandPrivVtbl;
   4920   struct IFolderBandPriv {
   4921     CONST_VTBL struct IFolderBandPrivVtbl *lpVtbl;
   4922   };
   4923 #ifdef COBJMACROS
   4924 #define IFolderBandPriv_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4925 #define IFolderBandPriv_AddRef(This) (This)->lpVtbl->AddRef(This)
   4926 #define IFolderBandPriv_Release(This) (This)->lpVtbl->Release(This)
   4927 #define IFolderBandPriv_SetCascade(This,f) (This)->lpVtbl->SetCascade(This,f)
   4928 #define IFolderBandPriv_SetAccelerators(This,f) (This)->lpVtbl->SetAccelerators(This,f)
   4929 #define IFolderBandPriv_SetNoIcons(This,f) (This)->lpVtbl->SetNoIcons(This,f)
   4930 #define IFolderBandPriv_SetNoText(This,f) (This)->lpVtbl->SetNoText(This,f)
   4931 #endif
   4932 #endif
   4933   HRESULT WINAPI IFolderBandPriv_SetCascade_Proxy(IFolderBandPriv *This,WINBOOL f);
   4934   void __RPC_STUB IFolderBandPriv_SetCascade_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4935   HRESULT WINAPI IFolderBandPriv_SetAccelerators_Proxy(IFolderBandPriv *This,WINBOOL f);
   4936   void __RPC_STUB IFolderBandPriv_SetAccelerators_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4937   HRESULT WINAPI IFolderBandPriv_SetNoIcons_Proxy(IFolderBandPriv *This,WINBOOL f);
   4938   void __RPC_STUB IFolderBandPriv_SetNoIcons_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4939   HRESULT WINAPI IFolderBandPriv_SetNoText_Proxy(IFolderBandPriv *This,WINBOOL f);
   4940   void __RPC_STUB IFolderBandPriv_SetNoText_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   4941 #endif
   4942 
   4943 #if 0x501 >= 0x0400
   4944 #include <pshpack8.h>
   4945   typedef struct tagBANDSITEINFO {
   4946     DWORD dwMask;
   4947     DWORD dwState;
   4948     DWORD dwStyle;
   4949   } BANDSITEINFO;
   4950 
   4951 #include <poppack.h>
   4952 
   4953   enum __MIDL___MIDL_itf_shobjidl_0247_0001 {
   4954     BSID_BANDADDED = 0,BSID_BANDREMOVED = BSID_BANDADDED + 1
   4955   };
   4956 #define BSIM_STATE 0x00000001
   4957 #define BSIM_STYLE 0x00000002
   4958 #define BSSF_VISIBLE 0x00000001
   4959 #define BSSF_NOTITLE 0x00000002
   4960 #define BSSF_UNDELETEABLE 0x00001000
   4961 #define BSIS_AUTOGRIPPER 0x00000000
   4962 #define BSIS_NOGRIPPER 0x00000001
   4963 #define BSIS_ALWAYSGRIPPER 0x00000002
   4964 #define BSIS_LEFTALIGN 0x00000004
   4965 #define BSIS_SINGLECLICK 0x00000008
   4966 #define BSIS_NOCONTEXTMENU 0x00000010
   4967 #define BSIS_NODROPTARGET 0x00000020
   4968 #define BSIS_NOCAPTION 0x00000040
   4969 #define BSIS_PREFERNOLINEBREAK 0x00000080
   4970 #define BSIS_LOCKED 0x00000100
   4971 #define SID_SBandSite IID_IBandSite
   4972 #define CGID_BandSite IID_IBandSite
   4973 
   4974   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0247_v0_0_c_ifspec;
   4975   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0247_v0_0_s_ifspec;
   4976 #ifndef __IBandSite_INTERFACE_DEFINED__
   4977 #define __IBandSite_INTERFACE_DEFINED__
   4978   EXTERN_C const IID IID_IBandSite;
   4979 #if defined(__cplusplus) && !defined(CINTERFACE)
   4980   struct IBandSite : public IUnknown {
   4981   public:
   4982     virtual HRESULT WINAPI AddBand(IUnknown *punk) = 0;
   4983     virtual HRESULT WINAPI EnumBands(UINT uBand,DWORD *pdwBandID) = 0;
   4984     virtual HRESULT WINAPI QueryBand(DWORD dwBandID,IDeskBand **ppstb,DWORD *pdwState,LPWSTR pszName,int cchName) = 0;
   4985     virtual HRESULT WINAPI SetBandState(DWORD dwBandID,DWORD dwMask,DWORD dwState) = 0;
   4986     virtual HRESULT WINAPI RemoveBand(DWORD dwBandID) = 0;
   4987     virtual HRESULT WINAPI GetBandObject(DWORD dwBandID,REFIID riid,void **ppv) = 0;
   4988     virtual HRESULT WINAPI SetBandSiteInfo(const BANDSITEINFO *pbsinfo) = 0;
   4989     virtual HRESULT WINAPI GetBandSiteInfo(BANDSITEINFO *pbsinfo) = 0;
   4990   };
   4991 #else
   4992   typedef struct IBandSiteVtbl {
   4993     BEGIN_INTERFACE
   4994       HRESULT (WINAPI *QueryInterface)(IBandSite *This,REFIID riid,void **ppvObject);
   4995       ULONG (WINAPI *AddRef)(IBandSite *This);
   4996       ULONG (WINAPI *Release)(IBandSite *This);
   4997       HRESULT (WINAPI *AddBand)(IBandSite *This,IUnknown *punk);
   4998       HRESULT (WINAPI *EnumBands)(IBandSite *This,UINT uBand,DWORD *pdwBandID);
   4999       HRESULT (WINAPI *QueryBand)(IBandSite *This,DWORD dwBandID,IDeskBand **ppstb,DWORD *pdwState,LPWSTR pszName,int cchName);
   5000       HRESULT (WINAPI *SetBandState)(IBandSite *This,DWORD dwBandID,DWORD dwMask,DWORD dwState);
   5001       HRESULT (WINAPI *RemoveBand)(IBandSite *This,DWORD dwBandID);
   5002       HRESULT (WINAPI *GetBandObject)(IBandSite *This,DWORD dwBandID,REFIID riid,void **ppv);
   5003       HRESULT (WINAPI *SetBandSiteInfo)(IBandSite *This,const BANDSITEINFO *pbsinfo);
   5004       HRESULT (WINAPI *GetBandSiteInfo)(IBandSite *This,BANDSITEINFO *pbsinfo);
   5005     END_INTERFACE
   5006   } IBandSiteVtbl;
   5007   struct IBandSite {
   5008     CONST_VTBL struct IBandSiteVtbl *lpVtbl;
   5009   };
   5010 #ifdef COBJMACROS
   5011 #define IBandSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5012 #define IBandSite_AddRef(This) (This)->lpVtbl->AddRef(This)
   5013 #define IBandSite_Release(This) (This)->lpVtbl->Release(This)
   5014 #define IBandSite_AddBand(This,punk) (This)->lpVtbl->AddBand(This,punk)
   5015 #define IBandSite_EnumBands(This,uBand,pdwBandID) (This)->lpVtbl->EnumBands(This,uBand,pdwBandID)
   5016 #define IBandSite_QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName) (This)->lpVtbl->QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName)
   5017 #define IBandSite_SetBandState(This,dwBandID,dwMask,dwState) (This)->lpVtbl->SetBandState(This,dwBandID,dwMask,dwState)
   5018 #define IBandSite_RemoveBand(This,dwBandID) (This)->lpVtbl->RemoveBand(This,dwBandID)
   5019 #define IBandSite_GetBandObject(This,dwBandID,riid,ppv) (This)->lpVtbl->GetBandObject(This,dwBandID,riid,ppv)
   5020 #define IBandSite_SetBandSiteInfo(This,pbsinfo) (This)->lpVtbl->SetBandSiteInfo(This,pbsinfo)
   5021 #define IBandSite_GetBandSiteInfo(This,pbsinfo) (This)->lpVtbl->GetBandSiteInfo(This,pbsinfo)
   5022 #endif
   5023 #endif
   5024   HRESULT WINAPI IBandSite_AddBand_Proxy(IBandSite *This,IUnknown *punk);
   5025   void __RPC_STUB IBandSite_AddBand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5026   HRESULT WINAPI IBandSite_EnumBands_Proxy(IBandSite *This,UINT uBand,DWORD *pdwBandID);
   5027   void __RPC_STUB IBandSite_EnumBands_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5028   HRESULT WINAPI IBandSite_QueryBand_Proxy(IBandSite *This,DWORD dwBandID,IDeskBand **ppstb,DWORD *pdwState,LPWSTR pszName,int cchName);
   5029   void __RPC_STUB IBandSite_QueryBand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5030   HRESULT WINAPI IBandSite_SetBandState_Proxy(IBandSite *This,DWORD dwBandID,DWORD dwMask,DWORD dwState);
   5031   void __RPC_STUB IBandSite_SetBandState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5032   HRESULT WINAPI IBandSite_RemoveBand_Proxy(IBandSite *This,DWORD dwBandID);
   5033   void __RPC_STUB IBandSite_RemoveBand_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5034   HRESULT WINAPI IBandSite_GetBandObject_Proxy(IBandSite *This,DWORD dwBandID,REFIID riid,void **ppv);
   5035   void __RPC_STUB IBandSite_GetBandObject_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5036   HRESULT WINAPI IBandSite_SetBandSiteInfo_Proxy(IBandSite *This,const BANDSITEINFO *pbsinfo);
   5037   void __RPC_STUB IBandSite_SetBandSiteInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5038   HRESULT WINAPI IBandSite_GetBandSiteInfo_Proxy(IBandSite *This,BANDSITEINFO *pbsinfo);
   5039   void __RPC_STUB IBandSite_GetBandSiteInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5040 #endif
   5041 #endif
   5042 
   5043   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0248_v0_0_c_ifspec;
   5044   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0248_v0_0_s_ifspec;
   5045 #ifndef __INamespaceWalkCB_INTERFACE_DEFINED__
   5046 #define __INamespaceWalkCB_INTERFACE_DEFINED__
   5047   EXTERN_C const IID IID_INamespaceWalkCB;
   5048 #if defined(__cplusplus) && !defined(CINTERFACE)
   5049   struct INamespaceWalkCB : public IUnknown {
   5050   public:
   5051     virtual HRESULT WINAPI FoundItem(IShellFolder *psf,LPCITEMIDLIST pidl) = 0;
   5052     virtual HRESULT WINAPI EnterFolder(IShellFolder *psf,LPCITEMIDLIST pidl) = 0;
   5053     virtual HRESULT WINAPI LeaveFolder(IShellFolder *psf,LPCITEMIDLIST pidl) = 0;
   5054     virtual HRESULT WINAPI InitializeProgressDialog(LPWSTR *ppszTitle,LPWSTR *ppszCancel) = 0;
   5055   };
   5056 #else
   5057   typedef struct INamespaceWalkCBVtbl {
   5058     BEGIN_INTERFACE
   5059       HRESULT (WINAPI *QueryInterface)(INamespaceWalkCB *This,REFIID riid,void **ppvObject);
   5060       ULONG (WINAPI *AddRef)(INamespaceWalkCB *This);
   5061       ULONG (WINAPI *Release)(INamespaceWalkCB *This);
   5062       HRESULT (WINAPI *FoundItem)(INamespaceWalkCB *This,IShellFolder *psf,LPCITEMIDLIST pidl);
   5063       HRESULT (WINAPI *EnterFolder)(INamespaceWalkCB *This,IShellFolder *psf,LPCITEMIDLIST pidl);
   5064       HRESULT (WINAPI *LeaveFolder)(INamespaceWalkCB *This,IShellFolder *psf,LPCITEMIDLIST pidl);
   5065       HRESULT (WINAPI *InitializeProgressDialog)(INamespaceWalkCB *This,LPWSTR *ppszTitle,LPWSTR *ppszCancel);
   5066     END_INTERFACE
   5067   } INamespaceWalkCBVtbl;
   5068   struct INamespaceWalkCB {
   5069     CONST_VTBL struct INamespaceWalkCBVtbl *lpVtbl;
   5070   };
   5071 #ifdef COBJMACROS
   5072 #define INamespaceWalkCB_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5073 #define INamespaceWalkCB_AddRef(This) (This)->lpVtbl->AddRef(This)
   5074 #define INamespaceWalkCB_Release(This) (This)->lpVtbl->Release(This)
   5075 #define INamespaceWalkCB_FoundItem(This,psf,pidl) (This)->lpVtbl->FoundItem(This,psf,pidl)
   5076 #define INamespaceWalkCB_EnterFolder(This,psf,pidl) (This)->lpVtbl->EnterFolder(This,psf,pidl)
   5077 #define INamespaceWalkCB_LeaveFolder(This,psf,pidl) (This)->lpVtbl->LeaveFolder(This,psf,pidl)
   5078 #define INamespaceWalkCB_InitializeProgressDialog(This,ppszTitle,ppszCancel) (This)->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel)
   5079 #endif
   5080 #endif
   5081   HRESULT WINAPI INamespaceWalkCB_FoundItem_Proxy(INamespaceWalkCB *This,IShellFolder *psf,LPCITEMIDLIST pidl);
   5082   void __RPC_STUB INamespaceWalkCB_FoundItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5083   HRESULT WINAPI INamespaceWalkCB_EnterFolder_Proxy(INamespaceWalkCB *This,IShellFolder *psf,LPCITEMIDLIST pidl);
   5084   void __RPC_STUB INamespaceWalkCB_EnterFolder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5085   HRESULT WINAPI INamespaceWalkCB_LeaveFolder_Proxy(INamespaceWalkCB *This,IShellFolder *psf,LPCITEMIDLIST pidl);
   5086   void __RPC_STUB INamespaceWalkCB_LeaveFolder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5087   HRESULT WINAPI INamespaceWalkCB_InitializeProgressDialog_Proxy(INamespaceWalkCB *This,LPWSTR *ppszTitle,LPWSTR *ppszCancel);
   5088   void __RPC_STUB INamespaceWalkCB_InitializeProgressDialog_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5089 #endif
   5090 
   5091 #ifndef __INamespaceWalk_INTERFACE_DEFINED__
   5092 #define __INamespaceWalk_INTERFACE_DEFINED__
   5093   enum __MIDL_INamespaceWalk_0001 {
   5094     NSWF_NONE_IMPLIES_ALL = 0x1,NSWF_ONE_IMPLIES_ALL = 0x2,NSWF_DONT_TRAVERSE_LINKS = 0x4,NSWF_DONT_ACCUMULATE_RESULT = 0x8,
   5095     NSWF_TRAVERSE_STREAM_JUNCTIONS = 0x10,NSWF_FILESYSTEM_ONLY = 0x20,NSWF_SHOW_PROGRESS = 0x40,NSWF_FLAG_VIEWORDER = 0x80,
   5096     NSWF_IGNORE_AUTOPLAY_HIDA = 0x100
   5097   };
   5098 
   5099   EXTERN_C const IID IID_INamespaceWalk;
   5100 #if defined(__cplusplus) && !defined(CINTERFACE)
   5101   struct INamespaceWalk : public IUnknown {
   5102   public:
   5103     virtual HRESULT WINAPI Walk(IUnknown *punkToWalk,DWORD dwFlags,int cDepth,INamespaceWalkCB *pnswcb) = 0;
   5104     virtual HRESULT WINAPI GetIDArrayResult(UINT *pcItems,LPITEMIDLIST **pppidl) = 0;
   5105   };
   5106 #else
   5107   typedef struct INamespaceWalkVtbl {
   5108     BEGIN_INTERFACE
   5109       HRESULT (WINAPI *QueryInterface)(INamespaceWalk *This,REFIID riid,void **ppvObject);
   5110       ULONG (WINAPI *AddRef)(INamespaceWalk *This);
   5111       ULONG (WINAPI *Release)(INamespaceWalk *This);
   5112       HRESULT (WINAPI *Walk)(INamespaceWalk *This,IUnknown *punkToWalk,DWORD dwFlags,int cDepth,INamespaceWalkCB *pnswcb);
   5113       HRESULT (WINAPI *GetIDArrayResult)(INamespaceWalk *This,UINT *pcItems,LPITEMIDLIST **pppidl);
   5114     END_INTERFACE
   5115   } INamespaceWalkVtbl;
   5116   struct INamespaceWalk {
   5117     CONST_VTBL struct INamespaceWalkVtbl *lpVtbl;
   5118   };
   5119 #ifdef COBJMACROS
   5120 #define INamespaceWalk_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5121 #define INamespaceWalk_AddRef(This) (This)->lpVtbl->AddRef(This)
   5122 #define INamespaceWalk_Release(This) (This)->lpVtbl->Release(This)
   5123 #define INamespaceWalk_Walk(This,punkToWalk,dwFlags,cDepth,pnswcb) (This)->lpVtbl->Walk(This,punkToWalk,dwFlags,cDepth,pnswcb)
   5124 #define INamespaceWalk_GetIDArrayResult(This,pcItems,pppidl) (This)->lpVtbl->GetIDArrayResult(This,pcItems,pppidl)
   5125 #endif
   5126 #endif
   5127   HRESULT WINAPI INamespaceWalk_Walk_Proxy(INamespaceWalk *This,IUnknown *punkToWalk,DWORD dwFlags,int cDepth,INamespaceWalkCB *pnswcb);
   5128   void __RPC_STUB INamespaceWalk_Walk_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5129   HRESULT WINAPI INamespaceWalk_GetIDArrayResult_Proxy(INamespaceWalk *This,UINT *pcItems,LPITEMIDLIST **pppidl);
   5130   void __RPC_STUB INamespaceWalk_GetIDArrayResult_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5131 #endif
   5132 
   5133 #ifndef __IRegTreeItem_INTERFACE_DEFINED__
   5134 #define __IRegTreeItem_INTERFACE_DEFINED__
   5135   EXTERN_C const IID IID_IRegTreeItem;
   5136 #if defined(__cplusplus) && !defined(CINTERFACE)
   5137   struct IRegTreeItem : public IUnknown {
   5138   public:
   5139     virtual HRESULT WINAPI GetCheckState(WINBOOL *pbCheck) = 0;
   5140     virtual HRESULT WINAPI SetCheckState(WINBOOL bCheck) = 0;
   5141   };
   5142 #else
   5143   typedef struct IRegTreeItemVtbl {
   5144     BEGIN_INTERFACE
   5145       HRESULT (WINAPI *QueryInterface)(IRegTreeItem *This,REFIID riid,void **ppvObject);
   5146       ULONG (WINAPI *AddRef)(IRegTreeItem *This);
   5147       ULONG (WINAPI *Release)(IRegTreeItem *This);
   5148       HRESULT (WINAPI *GetCheckState)(IRegTreeItem *This,WINBOOL *pbCheck);
   5149       HRESULT (WINAPI *SetCheckState)(IRegTreeItem *This,WINBOOL bCheck);
   5150     END_INTERFACE
   5151   } IRegTreeItemVtbl;
   5152   struct IRegTreeItem {
   5153     CONST_VTBL struct IRegTreeItemVtbl *lpVtbl;
   5154   };
   5155 #ifdef COBJMACROS
   5156 #define IRegTreeItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5157 #define IRegTreeItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   5158 #define IRegTreeItem_Release(This) (This)->lpVtbl->Release(This)
   5159 #define IRegTreeItem_GetCheckState(This,pbCheck) (This)->lpVtbl->GetCheckState(This,pbCheck)
   5160 #define IRegTreeItem_SetCheckState(This,bCheck) (This)->lpVtbl->SetCheckState(This,bCheck)
   5161 #endif
   5162 #endif
   5163   HRESULT WINAPI IRegTreeItem_GetCheckState_Proxy(IRegTreeItem *This,WINBOOL *pbCheck);
   5164   void __RPC_STUB IRegTreeItem_GetCheckState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5165   HRESULT WINAPI IRegTreeItem_SetCheckState_Proxy(IRegTreeItem *This,WINBOOL bCheck);
   5166   void __RPC_STUB IRegTreeItem_SetCheckState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5167 #endif
   5168 
   5169   enum __MIDL___MIDL_itf_shobjidl_0251_0001 {
   5170     MPOS_EXECUTE = 0,
   5171     MPOS_FULLCANCEL,MPOS_CANCELLEVEL,MPOS_SELECTLEFT,MPOS_SELECTRIGHT,
   5172     MPOS_CHILDTRACKING
   5173   };
   5174 
   5175   enum __MIDL___MIDL_itf_shobjidl_0251_0002 {
   5176     MPPF_SETFOCUS = 0x1,MPPF_INITIALSELECT = 0x2,MPPF_NOANIMATE = 0x4,
   5177     MPPF_KEYBOARD = 0x10,MPPF_REPOSITION = 0x20,MPPF_FORCEZORDER = 0x40,MPPF_FINALSELECT = 0x80,
   5178     MPPF_TOP = 0x20000000,MPPF_LEFT = 0x40000000,MPPF_RIGHT = 0x60000000,MPPF_BOTTOM = 0x80000000,MPPF_POS_MASK = 0xe0000000
   5179   };
   5180 
   5181   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0251_v0_0_c_ifspec;
   5182   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0251_v0_0_s_ifspec;
   5183 #ifndef __IMenuPopup_INTERFACE_DEFINED__
   5184 #define __IMenuPopup_INTERFACE_DEFINED__
   5185   EXTERN_C const IID IID_IMenuPopup;
   5186 #if defined(__cplusplus) && !defined(CINTERFACE)
   5187   struct IMenuPopup : public IDeskBar {
   5188   public:
   5189     virtual HRESULT WINAPI Popup(POINTL *ppt,RECTL *prcExclude,DWORD dwFlags) = 0;
   5190     virtual HRESULT WINAPI OnSelect(DWORD dwSelectType) = 0;
   5191     virtual HRESULT WINAPI SetSubMenu(IMenuPopup *pmp,WINBOOL fSet) = 0;
   5192   };
   5193 #else
   5194   typedef struct IMenuPopupVtbl {
   5195     BEGIN_INTERFACE
   5196       HRESULT (WINAPI *QueryInterface)(IMenuPopup *This,REFIID riid,void **ppvObject);
   5197       ULONG (WINAPI *AddRef)(IMenuPopup *This);
   5198       ULONG (WINAPI *Release)(IMenuPopup *This);
   5199       HRESULT (WINAPI *GetWindow)(IMenuPopup *This,HWND *phwnd);
   5200       HRESULT (WINAPI *ContextSensitiveHelp)(IMenuPopup *This,WINBOOL fEnterMode);
   5201       HRESULT (WINAPI *SetClient)(IMenuPopup *This,IUnknown *punkClient);
   5202       HRESULT (WINAPI *GetClient)(IMenuPopup *This,IUnknown **ppunkClient);
   5203       HRESULT (WINAPI *OnPosRectChangeDB)(IMenuPopup *This,LPRECT prc);
   5204       HRESULT (WINAPI *Popup)(IMenuPopup *This,POINTL *ppt,RECTL *prcExclude,DWORD dwFlags);
   5205       HRESULT (WINAPI *OnSelect)(IMenuPopup *This,DWORD dwSelectType);
   5206       HRESULT (WINAPI *SetSubMenu)(IMenuPopup *This,IMenuPopup *pmp,WINBOOL fSet);
   5207     END_INTERFACE
   5208   } IMenuPopupVtbl;
   5209   struct IMenuPopup {
   5210     CONST_VTBL struct IMenuPopupVtbl *lpVtbl;
   5211   };
   5212 #ifdef COBJMACROS
   5213 #define IMenuPopup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5214 #define IMenuPopup_AddRef(This) (This)->lpVtbl->AddRef(This)
   5215 #define IMenuPopup_Release(This) (This)->lpVtbl->Release(This)
   5216 #define IMenuPopup_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
   5217 #define IMenuPopup_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
   5218 #define IMenuPopup_SetClient(This,punkClient) (This)->lpVtbl->SetClient(This,punkClient)
   5219 #define IMenuPopup_GetClient(This,ppunkClient) (This)->lpVtbl->GetClient(This,ppunkClient)
   5220 #define IMenuPopup_OnPosRectChangeDB(This,prc) (This)->lpVtbl->OnPosRectChangeDB(This,prc)
   5221 #define IMenuPopup_Popup(This,ppt,prcExclude,dwFlags) (This)->lpVtbl->Popup(This,ppt,prcExclude,dwFlags)
   5222 #define IMenuPopup_OnSelect(This,dwSelectType) (This)->lpVtbl->OnSelect(This,dwSelectType)
   5223 #define IMenuPopup_SetSubMenu(This,pmp,fSet) (This)->lpVtbl->SetSubMenu(This,pmp,fSet)
   5224 #endif
   5225 #endif
   5226   HRESULT WINAPI IMenuPopup_Popup_Proxy(IMenuPopup *This,POINTL *ppt,RECTL *prcExclude,DWORD dwFlags);
   5227   void __RPC_STUB IMenuPopup_Popup_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5228   HRESULT WINAPI IMenuPopup_OnSelect_Proxy(IMenuPopup *This,DWORD dwSelectType);
   5229   void __RPC_STUB IMenuPopup_OnSelect_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5230   HRESULT WINAPI IMenuPopup_SetSubMenu_Proxy(IMenuPopup *This,IMenuPopup *pmp,WINBOOL fSet);
   5231   void __RPC_STUB IMenuPopup_SetSubMenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5232 #endif
   5233 /*****************************************************************************
   5234  * IShellItem interface
   5235  */
   5236 #ifndef __IShellItem_INTERFACE_DEFINED__
   5237 #define __IShellItem_INTERFACE_DEFINED__
   5238 
   5239 typedef enum _SIGDN {
   5240     SIGDN_NORMALDISPLAY = 0x0,
   5241     SIGDN_PARENTRELATIVEPARSING = (int)0x80018001,
   5242     SIGDN_DESKTOPABSOLUTEPARSING = (int)0x80028000,
   5243     SIGDN_PARENTRELATIVEEDITING = (int)0x80031001,
   5244     SIGDN_DESKTOPABSOLUTEEDITING = (int)0x8004c000,
   5245     SIGDN_FILESYSPATH = (int)0x80058000,
   5246     SIGDN_URL = (int)0x80068000,
   5247     SIGDN_PARENTRELATIVEFORADDRESSBAR = (int)0x8007c001,
   5248     SIGDN_PARENTRELATIVE = (int)0x80080001
   5249 } SIGDN;
   5250 enum _SICHINTF {
   5251     SICHINT_DISPLAY = 0x0,
   5252     SICHINT_ALLFIELDS = (int)0x80000000,
   5253     SICHINT_CANONICAL = 0x10000000,
   5254     SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL = 0x20000000
   5255 };
   5256 
   5257 typedef DWORD SICHINTF;
   5258 DEFINE_GUID(IID_IShellItem, 0x43826d1e, 0xe718, 0x42ee, 0xbc,0x55, 0xa1,0xe2,0x61,0xc3,0x7b,0xfe);
   5259 #if defined(__cplusplus) && !defined(CINTERFACE)
   5260 MIDL_INTERFACE("43826d1e-e718-42ee-bc55-a1e261c37bfe")
   5261 IShellItem : public IUnknown
   5262 {
   5263     virtual HRESULT STDMETHODCALLTYPE BindToHandler(
   5264         IBindCtx *pbc,
   5265         REFGUID bhid,
   5266         REFIID riid,
   5267         void **ppv) = 0;
   5268 
   5269     virtual HRESULT STDMETHODCALLTYPE GetParent(
   5270         IShellItem **ppsi) = 0;
   5271 
   5272     virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
   5273         SIGDN sigdnName,
   5274         LPWSTR *ppszName) = 0;
   5275 
   5276     virtual HRESULT STDMETHODCALLTYPE GetAttributes(
   5277         SFGAOF sfgaoMask,
   5278         SFGAOF *psfgaoAttribs) = 0;
   5279 
   5280     virtual HRESULT STDMETHODCALLTYPE Compare(
   5281         IShellItem *psi,
   5282         SICHINTF hint,
   5283         int *piOrder) = 0;
   5284 
   5285 };
   5286 #ifdef __CRT_UUID_DECL
   5287 __CRT_UUID_DECL(IShellItem, 0x43826d1e, 0xe718, 0x42ee, 0xbc,0x55, 0xa1,0xe2,0x61,0xc3,0x7b,0xfe)
   5288 #endif
   5289 #else
   5290 typedef struct IShellItemVtbl {
   5291     BEGIN_INTERFACE
   5292 
   5293     /*** IUnknown methods ***/
   5294     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5295         IShellItem* This,
   5296         REFIID riid,
   5297         void **ppvObject);
   5298 
   5299     ULONG (STDMETHODCALLTYPE *AddRef)(
   5300         IShellItem* This);
   5301 
   5302     ULONG (STDMETHODCALLTYPE *Release)(
   5303         IShellItem* This);
   5304 
   5305     /*** IShellItem methods ***/
   5306     HRESULT (STDMETHODCALLTYPE *BindToHandler)(
   5307         IShellItem* This,
   5308         IBindCtx *pbc,
   5309         REFGUID bhid,
   5310         REFIID riid,
   5311         void **ppv);
   5312 
   5313     HRESULT (STDMETHODCALLTYPE *GetParent)(
   5314         IShellItem* This,
   5315         IShellItem **ppsi);
   5316 
   5317     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
   5318         IShellItem* This,
   5319         SIGDN sigdnName,
   5320         LPWSTR *ppszName);
   5321 
   5322     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
   5323         IShellItem* This,
   5324         SFGAOF sfgaoMask,
   5325         SFGAOF *psfgaoAttribs);
   5326 
   5327     HRESULT (STDMETHODCALLTYPE *Compare)(
   5328         IShellItem* This,
   5329         IShellItem *psi,
   5330         SICHINTF hint,
   5331         int *piOrder);
   5332 
   5333     END_INTERFACE
   5334 } IShellItemVtbl;
   5335 interface IShellItem {
   5336     CONST_VTBL IShellItemVtbl* lpVtbl;
   5337 };
   5338 
   5339 #ifdef COBJMACROS
   5340 #ifndef WIDL_C_INLINE_WRAPPERS
   5341 /*** IUnknown methods ***/
   5342 #define IShellItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5343 #define IShellItem_AddRef(This) (This)->lpVtbl->AddRef(This)
   5344 #define IShellItem_Release(This) (This)->lpVtbl->Release(This)
   5345 /*** IShellItem methods ***/
   5346 #define IShellItem_BindToHandler(This,pbc,bhid,riid,ppv) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv)
   5347 #define IShellItem_GetParent(This,ppsi) (This)->lpVtbl->GetParent(This,ppsi)
   5348 #define IShellItem_GetDisplayName(This,sigdnName,ppszName) (This)->lpVtbl->GetDisplayName(This,sigdnName,ppszName)
   5349 #define IShellItem_GetAttributes(This,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs)
   5350 #define IShellItem_Compare(This,psi,hint,piOrder) (This)->lpVtbl->Compare(This,psi,hint,piOrder)
   5351 #else
   5352 /*** IUnknown methods ***/
   5353 static FORCEINLINE HRESULT IShellItem_QueryInterface(IShellItem* This,REFIID riid,void **ppvObject) {
   5354     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5355 }
   5356 static FORCEINLINE ULONG IShellItem_AddRef(IShellItem* This) {
   5357     return This->lpVtbl->AddRef(This);
   5358 }
   5359 static FORCEINLINE ULONG IShellItem_Release(IShellItem* This) {
   5360     return This->lpVtbl->Release(This);
   5361 }
   5362 /*** IShellItem methods ***/
   5363 static FORCEINLINE HRESULT IShellItem_BindToHandler(IShellItem* This,IBindCtx *pbc,REFGUID bhid,REFIID riid,void **ppv) {
   5364     return This->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv);
   5365 }
   5366 static FORCEINLINE HRESULT IShellItem_GetParent(IShellItem* This,IShellItem **ppsi) {
   5367     return This->lpVtbl->GetParent(This,ppsi);
   5368 }
   5369 static FORCEINLINE HRESULT IShellItem_GetDisplayName(IShellItem* This,SIGDN sigdnName,LPWSTR *ppszName) {
   5370     return This->lpVtbl->GetDisplayName(This,sigdnName,ppszName);
   5371 }
   5372 static FORCEINLINE HRESULT IShellItem_GetAttributes(IShellItem* This,SFGAOF sfgaoMask,SFGAOF *psfgaoAttribs) {
   5373     return This->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs);
   5374 }
   5375 static FORCEINLINE HRESULT IShellItem_Compare(IShellItem* This,IShellItem *psi,SICHINTF hint,int *piOrder) {
   5376     return This->lpVtbl->Compare(This,psi,hint,piOrder);
   5377 }
   5378 #endif
   5379 #endif
   5380 
   5381 #endif
   5382 
   5383 HRESULT STDMETHODCALLTYPE IShellItem_BindToHandler_Proxy(
   5384     IShellItem* This,
   5385     IBindCtx *pbc,
   5386     REFGUID bhid,
   5387     REFIID riid,
   5388     void **ppv);
   5389 void __RPC_STUB IShellItem_BindToHandler_Stub(
   5390     IRpcStubBuffer* This,
   5391     IRpcChannelBuffer* pRpcChannelBuffer,
   5392     PRPC_MESSAGE pRpcMessage,
   5393     DWORD* pdwStubPhase);
   5394 HRESULT STDMETHODCALLTYPE IShellItem_GetParent_Proxy(
   5395     IShellItem* This,
   5396     IShellItem **ppsi);
   5397 void __RPC_STUB IShellItem_GetParent_Stub(
   5398     IRpcStubBuffer* This,
   5399     IRpcChannelBuffer* pRpcChannelBuffer,
   5400     PRPC_MESSAGE pRpcMessage,
   5401     DWORD* pdwStubPhase);
   5402 HRESULT STDMETHODCALLTYPE IShellItem_GetDisplayName_Proxy(
   5403     IShellItem* This,
   5404     SIGDN sigdnName,
   5405     LPWSTR *ppszName);
   5406 void __RPC_STUB IShellItem_GetDisplayName_Stub(
   5407     IRpcStubBuffer* This,
   5408     IRpcChannelBuffer* pRpcChannelBuffer,
   5409     PRPC_MESSAGE pRpcMessage,
   5410     DWORD* pdwStubPhase);
   5411 HRESULT STDMETHODCALLTYPE IShellItem_GetAttributes_Proxy(
   5412     IShellItem* This,
   5413     SFGAOF sfgaoMask,
   5414     SFGAOF *psfgaoAttribs);
   5415 void __RPC_STUB IShellItem_GetAttributes_Stub(
   5416     IRpcStubBuffer* This,
   5417     IRpcChannelBuffer* pRpcChannelBuffer,
   5418     PRPC_MESSAGE pRpcMessage,
   5419     DWORD* pdwStubPhase);
   5420 HRESULT STDMETHODCALLTYPE IShellItem_Compare_Proxy(
   5421     IShellItem* This,
   5422     IShellItem *psi,
   5423     SICHINTF hint,
   5424     int *piOrder);
   5425 void __RPC_STUB IShellItem_Compare_Stub(
   5426     IRpcStubBuffer* This,
   5427     IRpcChannelBuffer* pRpcChannelBuffer,
   5428     PRPC_MESSAGE pRpcMessage,
   5429     DWORD* pdwStubPhase);
   5430 
   5431 #endif  /* __IShellItem_INTERFACE_DEFINED__ */
   5432 
   5433 /*****************************************************************************
   5434  * IShellItem2 interface
   5435  */
   5436 #ifndef __IShellItem2_INTERFACE_DEFINED__
   5437 #define __IShellItem2_INTERFACE_DEFINED__
   5438 
   5439 DEFINE_GUID(IID_IShellItem2, 0x7e9fb0d3, 0x919f, 0x4307, 0xab,0x2e, 0x9b,0x18,0x60,0x31,0x0c,0x93);
   5440 __CRT_UUID_DECL(IShellItem2, 0x7e9fb0d3, 0x919f, 0x4307, 0xab,0x2e, 0x9b,0x18,0x60,0x31,0x0c,0x93)
   5441 #if defined(__cplusplus) && !defined(CINTERFACE)
   5442 interface IShellItem2 : public IShellItem
   5443 {
   5444     virtual HRESULT STDMETHODCALLTYPE GetPropertyStore(
   5445         GETPROPERTYSTOREFLAGS flags,
   5446         REFIID riid,
   5447         void **ppv) = 0;
   5448 
   5449     virtual HRESULT STDMETHODCALLTYPE GetPropertyStoreWithCreateObject(
   5450         GETPROPERTYSTOREFLAGS flags,
   5451         IUnknown *punkCreateObject,
   5452         REFIID riid,
   5453         void **ppv) = 0;
   5454 
   5455     virtual HRESULT STDMETHODCALLTYPE GetPropertyStoreForKeys(
   5456         const PROPERTYKEY *rgKeys,
   5457         UINT cKeys,
   5458         GETPROPERTYSTOREFLAGS flags,
   5459         REFIID riid,
   5460         void **ppv) = 0;
   5461 
   5462     virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionList(
   5463         REFPROPERTYKEY keyType,
   5464         REFIID riid,
   5465         void **ppv) = 0;
   5466 
   5467     virtual HRESULT STDMETHODCALLTYPE Update(
   5468         IBindCtx *pbc) = 0;
   5469 
   5470     virtual HRESULT STDMETHODCALLTYPE GetProperty(
   5471         REFPROPERTYKEY key,
   5472         PROPVARIANT *ppropvar) = 0;
   5473 
   5474     virtual HRESULT STDMETHODCALLTYPE GetCLSID(
   5475         REFPROPERTYKEY key,
   5476         CLSID *pclsid) = 0;
   5477 
   5478     virtual HRESULT STDMETHODCALLTYPE GetFileTime(
   5479         REFPROPERTYKEY key,
   5480         FILETIME *pft) = 0;
   5481 
   5482     virtual HRESULT STDMETHODCALLTYPE GetInt32(
   5483         REFPROPERTYKEY key,
   5484         int *pi) = 0;
   5485 
   5486     virtual HRESULT STDMETHODCALLTYPE GetString(
   5487         REFPROPERTYKEY key,
   5488         LPWSTR *ppsz) = 0;
   5489 
   5490     virtual HRESULT STDMETHODCALLTYPE GetUInt32(
   5491         REFPROPERTYKEY key,
   5492         ULONG *pui) = 0;
   5493 
   5494     virtual HRESULT STDMETHODCALLTYPE GetUInt64(
   5495         REFPROPERTYKEY key,
   5496         ULONGLONG *pull) = 0;
   5497 
   5498     virtual HRESULT STDMETHODCALLTYPE GetBool(
   5499         REFPROPERTYKEY key,
   5500         BOOL *pf) = 0;
   5501 
   5502 };
   5503 #else
   5504 typedef struct IShellItem2Vtbl {
   5505     BEGIN_INTERFACE
   5506 
   5507     /*** IUnknown methods ***/
   5508     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5509         IShellItem2* This,
   5510         REFIID riid,
   5511         void **ppvObject);
   5512 
   5513     ULONG (STDMETHODCALLTYPE *AddRef)(
   5514         IShellItem2* This);
   5515 
   5516     ULONG (STDMETHODCALLTYPE *Release)(
   5517         IShellItem2* This);
   5518 
   5519     /*** IShellItem methods ***/
   5520     HRESULT (STDMETHODCALLTYPE *BindToHandler)(
   5521         IShellItem2* This,
   5522         IBindCtx *pbc,
   5523         REFGUID rbhid,
   5524         REFIID riid,
   5525         void **ppvOut);
   5526 
   5527     HRESULT (STDMETHODCALLTYPE *GetParent)(
   5528         IShellItem2* This,
   5529         IShellItem **ppsi);
   5530 
   5531     HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
   5532         IShellItem2* This,
   5533         SIGDN sigdnName,
   5534         LPWSTR *ppszName);
   5535 
   5536     HRESULT (STDMETHODCALLTYPE *GetAttributes)(
   5537         IShellItem2* This,
   5538         SFGAOF sfgaoMask,
   5539         SFGAOF *psfgaoAttribs);
   5540 
   5541     HRESULT (STDMETHODCALLTYPE *Compare)(
   5542         IShellItem2* This,
   5543         IShellItem *psi,
   5544         SICHINTF hint,
   5545         int *piOrder);
   5546 
   5547     /*** IShellItem2 methods ***/
   5548     HRESULT (STDMETHODCALLTYPE *GetPropertyStore)(
   5549         IShellItem2* This,
   5550         GETPROPERTYSTOREFLAGS flags,
   5551         REFIID riid,
   5552         void **ppv);
   5553 
   5554     HRESULT (STDMETHODCALLTYPE *GetPropertyStoreWithCreateObject)(
   5555         IShellItem2* This,
   5556         GETPROPERTYSTOREFLAGS flags,
   5557         IUnknown *punkCreateObject,
   5558         REFIID riid,
   5559         void **ppv);
   5560 
   5561     HRESULT (STDMETHODCALLTYPE *GetPropertyStoreForKeys)(
   5562         IShellItem2* This,
   5563         const PROPERTYKEY *rgKeys,
   5564         UINT cKeys,
   5565         GETPROPERTYSTOREFLAGS flags,
   5566         REFIID riid,
   5567         void **ppv);
   5568 
   5569     HRESULT (STDMETHODCALLTYPE *GetPropertyDescriptionList)(
   5570         IShellItem2* This,
   5571         REFPROPERTYKEY keyType,
   5572         REFIID riid,
   5573         void **ppv);
   5574 
   5575     HRESULT (STDMETHODCALLTYPE *Update)(
   5576         IShellItem2* This,
   5577         IBindCtx *pbc);
   5578 
   5579     HRESULT (STDMETHODCALLTYPE *GetProperty)(
   5580         IShellItem2* This,
   5581         REFPROPERTYKEY key,
   5582         PROPVARIANT *ppropvar);
   5583 
   5584     HRESULT (STDMETHODCALLTYPE *GetCLSID)(
   5585         IShellItem2* This,
   5586         REFPROPERTYKEY key,
   5587         CLSID *pclsid);
   5588 
   5589     HRESULT (STDMETHODCALLTYPE *GetFileTime)(
   5590         IShellItem2* This,
   5591         REFPROPERTYKEY key,
   5592         FILETIME *pft);
   5593 
   5594     HRESULT (STDMETHODCALLTYPE *GetInt32)(
   5595         IShellItem2* This,
   5596         REFPROPERTYKEY key,
   5597         int *pi);
   5598 
   5599     HRESULT (STDMETHODCALLTYPE *GetString)(
   5600         IShellItem2* This,
   5601         REFPROPERTYKEY key,
   5602         LPWSTR *ppsz);
   5603 
   5604     HRESULT (STDMETHODCALLTYPE *GetUInt32)(
   5605         IShellItem2* This,
   5606         REFPROPERTYKEY key,
   5607         ULONG *pui);
   5608 
   5609     HRESULT (STDMETHODCALLTYPE *GetUInt64)(
   5610         IShellItem2* This,
   5611         REFPROPERTYKEY key,
   5612         ULONGLONG *pull);
   5613 
   5614     HRESULT (STDMETHODCALLTYPE *GetBool)(
   5615         IShellItem2* This,
   5616         REFPROPERTYKEY key,
   5617         BOOL *pf);
   5618 
   5619     END_INTERFACE
   5620 } IShellItem2Vtbl;
   5621 interface IShellItem2 {
   5622     CONST_VTBL IShellItem2Vtbl* lpVtbl;
   5623 };
   5624 
   5625 #ifdef COBJMACROS
   5626 /*** IUnknown methods ***/
   5627 #define IShellItem2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5628 #define IShellItem2_AddRef(This) (This)->lpVtbl->AddRef(This)
   5629 #define IShellItem2_Release(This) (This)->lpVtbl->Release(This)
   5630 /*** IShellItem methods ***/
   5631 #define IShellItem2_BindToHandler(This,pbc,rbhid,riid,ppvOut) (This)->lpVtbl->BindToHandler(This,pbc,rbhid,riid,ppvOut)
   5632 #define IShellItem2_GetParent(This,ppsi) (This)->lpVtbl->GetParent(This,ppsi)
   5633 #define IShellItem2_GetDisplayName(This,sigdnName,ppszName) (This)->lpVtbl->GetDisplayName(This,sigdnName,ppszName)
   5634 #define IShellItem2_GetAttributes(This,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs)
   5635 #define IShellItem2_Compare(This,psi,hint,piOrder) (This)->lpVtbl->Compare(This,psi,hint,piOrder)
   5636 /*** IShellItem2 methods ***/
   5637 #define IShellItem2_GetPropertyStore(This,flags,riid,ppv) (This)->lpVtbl->GetPropertyStore(This,flags,riid,ppv)
   5638 #define IShellItem2_GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv) (This)->lpVtbl->GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv)
   5639 #define IShellItem2_GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv) (This)->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv)
   5640 #define IShellItem2_GetPropertyDescriptionList(This,keyType,riid,ppv) (This)->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv)
   5641 #define IShellItem2_Update(This,pbc) (This)->lpVtbl->Update(This,pbc)
   5642 #define IShellItem2_GetProperty(This,key,ppropvar) (This)->lpVtbl->GetProperty(This,key,ppropvar)
   5643 #define IShellItem2_GetCLSID(This,key,pclsid) (This)->lpVtbl->GetCLSID(This,key,pclsid)
   5644 #define IShellItem2_GetFileTime(This,key,pft) (This)->lpVtbl->GetFileTime(This,key,pft)
   5645 #define IShellItem2_GetInt32(This,key,pi) (This)->lpVtbl->GetInt32(This,key,pi)
   5646 #define IShellItem2_GetString(This,key,ppsz) (This)->lpVtbl->GetString(This,key,ppsz)
   5647 #define IShellItem2_GetUInt32(This,key,pui) (This)->lpVtbl->GetUInt32(This,key,pui)
   5648 #define IShellItem2_GetUInt64(This,key,pull) (This)->lpVtbl->GetUInt64(This,key,pull)
   5649 #define IShellItem2_GetBool(This,key,pf) (This)->lpVtbl->GetBool(This,key,pf)
   5650 #endif
   5651 
   5652 #endif
   5653 #endif
   5654 
   5655 #ifndef __IImageRecompress_INTERFACE_DEFINED__
   5656 #define __IImageRecompress_INTERFACE_DEFINED__
   5657   EXTERN_C const IID IID_IImageRecompress;
   5658 #if defined(__cplusplus) && !defined(CINTERFACE)
   5659   struct IImageRecompress : public IUnknown {
   5660   public:
   5661     virtual HRESULT WINAPI RecompressImage(IShellItem *psi,int cx,int cy,int iQuality,IStorage *pstg,IStream **ppstrmOut) = 0;
   5662   };
   5663 #else
   5664   typedef struct IImageRecompressVtbl {
   5665     BEGIN_INTERFACE
   5666       HRESULT (WINAPI *QueryInterface)(IImageRecompress *This,REFIID riid,void **ppvObject);
   5667       ULONG (WINAPI *AddRef)(IImageRecompress *This);
   5668       ULONG (WINAPI *Release)(IImageRecompress *This);
   5669       HRESULT (WINAPI *RecompressImage)(IImageRecompress *This,IShellItem *psi,int cx,int cy,int iQuality,IStorage *pstg,IStream **ppstrmOut);
   5670     END_INTERFACE
   5671   } IImageRecompressVtbl;
   5672   struct IImageRecompress {
   5673     CONST_VTBL struct IImageRecompressVtbl *lpVtbl;
   5674   };
   5675 #ifdef COBJMACROS
   5676 #define IImageRecompress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5677 #define IImageRecompress_AddRef(This) (This)->lpVtbl->AddRef(This)
   5678 #define IImageRecompress_Release(This) (This)->lpVtbl->Release(This)
   5679 #define IImageRecompress_RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut) (This)->lpVtbl->RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut)
   5680 #endif
   5681 #endif
   5682   HRESULT WINAPI IImageRecompress_RecompressImage_Proxy(IImageRecompress *This,IShellItem *psi,int cx,int cy,int iQuality,IStorage *pstg,IStream **ppstrmOut);
   5683   void __RPC_STUB IImageRecompress_RecompressImage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5684 #endif
   5685 
   5686 #ifndef __IDefViewSafety_INTERFACE_DEFINED__
   5687 #define __IDefViewSafety_INTERFACE_DEFINED__
   5688   EXTERN_C const IID IID_IDefViewSafety;
   5689 #if defined(__cplusplus) && !defined(CINTERFACE)
   5690   struct IDefViewSafety : public IUnknown {
   5691   public:
   5692     virtual HRESULT WINAPI IsSafePage(void) = 0;
   5693   };
   5694 #else
   5695   typedef struct IDefViewSafetyVtbl {
   5696     BEGIN_INTERFACE
   5697       HRESULT (WINAPI *QueryInterface)(IDefViewSafety *This,REFIID riid,void **ppvObject);
   5698       ULONG (WINAPI *AddRef)(IDefViewSafety *This);
   5699       ULONG (WINAPI *Release)(IDefViewSafety *This);
   5700       HRESULT (WINAPI *IsSafePage)(IDefViewSafety *This);
   5701     END_INTERFACE
   5702   } IDefViewSafetyVtbl;
   5703   struct IDefViewSafety {
   5704     CONST_VTBL struct IDefViewSafetyVtbl *lpVtbl;
   5705   };
   5706 #ifdef COBJMACROS
   5707 #define IDefViewSafety_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5708 #define IDefViewSafety_AddRef(This) (This)->lpVtbl->AddRef(This)
   5709 #define IDefViewSafety_Release(This) (This)->lpVtbl->Release(This)
   5710 #define IDefViewSafety_IsSafePage(This) (This)->lpVtbl->IsSafePage(This)
   5711 #endif
   5712 #endif
   5713   HRESULT WINAPI IDefViewSafety_IsSafePage_Proxy(IDefViewSafety *This);
   5714   void __RPC_STUB IDefViewSafety_IsSafePage_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5715 #endif
   5716 
   5717 #ifndef __IContextMenuSite_INTERFACE_DEFINED__
   5718 #define __IContextMenuSite_INTERFACE_DEFINED__
   5719   EXTERN_C const IID IID_IContextMenuSite;
   5720 #if defined(__cplusplus) && !defined(CINTERFACE)
   5721   struct IContextMenuSite : public IUnknown {
   5722   public:
   5723     virtual HRESULT WINAPI DoContextMenuPopup(IUnknown *punkContextMenu,UINT fFlags,POINT pt) = 0;
   5724   };
   5725 #else
   5726   typedef struct IContextMenuSiteVtbl {
   5727     BEGIN_INTERFACE
   5728       HRESULT (WINAPI *QueryInterface)(IContextMenuSite *This,REFIID riid,void **ppvObject);
   5729       ULONG (WINAPI *AddRef)(IContextMenuSite *This);
   5730       ULONG (WINAPI *Release)(IContextMenuSite *This);
   5731       HRESULT (WINAPI *DoContextMenuPopup)(IContextMenuSite *This,IUnknown *punkContextMenu,UINT fFlags,POINT pt);
   5732     END_INTERFACE
   5733   } IContextMenuSiteVtbl;
   5734   struct IContextMenuSite {
   5735     CONST_VTBL struct IContextMenuSiteVtbl *lpVtbl;
   5736   };
   5737 #ifdef COBJMACROS
   5738 #define IContextMenuSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5739 #define IContextMenuSite_AddRef(This) (This)->lpVtbl->AddRef(This)
   5740 #define IContextMenuSite_Release(This) (This)->lpVtbl->Release(This)
   5741 #define IContextMenuSite_DoContextMenuPopup(This,punkContextMenu,fFlags,pt) (This)->lpVtbl->DoContextMenuPopup(This,punkContextMenu,fFlags,pt)
   5742 #endif
   5743 #endif
   5744   HRESULT WINAPI IContextMenuSite_DoContextMenuPopup_Proxy(IContextMenuSite *This,IUnknown *punkContextMenu,UINT fFlags,POINT pt);
   5745   void __RPC_STUB IContextMenuSite_DoContextMenuPopup_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5746 #endif
   5747 
   5748 #include <pshpack1.h>
   5749   typedef struct tagDELEGATEITEMID {
   5750     WORD cbSize;
   5751     WORD wOuter;
   5752     WORD cbInner;
   5753     BYTE rgb[1];
   5754   } DELEGATEITEMID;
   5755 #include <poppack.h>
   5756 
   5757   typedef const UNALIGNED DELEGATEITEMID *PCDELEGATEITEMID;
   5758   typedef UNALIGNED DELEGATEITEMID *PDELEGATEITEMID;
   5759 
   5760   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0257_v0_0_c_ifspec;
   5761   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0257_v0_0_s_ifspec;
   5762 #ifndef __IDelegateFolder_INTERFACE_DEFINED__
   5763 #define __IDelegateFolder_INTERFACE_DEFINED__
   5764   EXTERN_C const IID IID_IDelegateFolder;
   5765 #if defined(__cplusplus) && !defined(CINTERFACE)
   5766   struct IDelegateFolder : public IUnknown {
   5767   public:
   5768     virtual HRESULT WINAPI SetItemAlloc(IMalloc *pmalloc) = 0;
   5769   };
   5770 #else
   5771   typedef struct IDelegateFolderVtbl {
   5772     BEGIN_INTERFACE
   5773       HRESULT (WINAPI *QueryInterface)(IDelegateFolder *This,REFIID riid,void **ppvObject);
   5774       ULONG (WINAPI *AddRef)(IDelegateFolder *This);
   5775       ULONG (WINAPI *Release)(IDelegateFolder *This);
   5776       HRESULT (WINAPI *SetItemAlloc)(IDelegateFolder *This,IMalloc *pmalloc);
   5777     END_INTERFACE
   5778   } IDelegateFolderVtbl;
   5779   struct IDelegateFolder {
   5780     CONST_VTBL struct IDelegateFolderVtbl *lpVtbl;
   5781   };
   5782 #ifdef COBJMACROS
   5783 #define IDelegateFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5784 #define IDelegateFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
   5785 #define IDelegateFolder_Release(This) (This)->lpVtbl->Release(This)
   5786 #define IDelegateFolder_SetItemAlloc(This,pmalloc) (This)->lpVtbl->SetItemAlloc(This,pmalloc)
   5787 #endif
   5788 #endif
   5789   HRESULT WINAPI IDelegateFolder_SetItemAlloc_Proxy(IDelegateFolder *This,IMalloc *pmalloc);
   5790   void __RPC_STUB IDelegateFolder_SetItemAlloc_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5791 #endif
   5792 
   5793   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0258_v0_0_c_ifspec;
   5794   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0258_v0_0_s_ifspec;
   5795 #ifndef __IBrowserFrameOptions_INTERFACE_DEFINED__
   5796 #define __IBrowserFrameOptions_INTERFACE_DEFINED__
   5797   typedef IBrowserFrameOptions *LPBROWSERFRAMEOPTIONS;
   5798 
   5799   enum __MIDL_IBrowserFrameOptions_0001 {
   5800     BFO_NONE = 0,BFO_BROWSER_PERSIST_SETTINGS = 0x1,BFO_RENAME_FOLDER_OPTIONS_TOINTERNET = 0x2,BFO_BOTH_OPTIONS = 0x4,
   5801     BIF_PREFER_INTERNET_SHORTCUT = 0x8,BFO_BROWSE_NO_IN_NEW_PROCESS = 0x10,BFO_ENABLE_HYPERLINK_TRACKING = 0x20,BFO_USE_IE_OFFLINE_SUPPORT = 0x40,
   5802     BFO_SUBSTITUE_INTERNET_START_PAGE = 0x80,BFO_USE_IE_LOGOBANDING = 0x100,BFO_ADD_IE_TOCAPTIONBAR = 0x200,BFO_USE_DIALUP_REF = 0x400,
   5803     BFO_USE_IE_TOOLBAR = 0x800,BFO_NO_PARENT_FOLDER_SUPPORT = 0x1000,BFO_NO_REOPEN_NEXT_RESTART = 0x2000,BFO_GO_HOME_PAGE = 0x4000,
   5804     BFO_PREFER_IEPROCESS = 0x8000,BFO_SHOW_NAVIGATION_CANCELLED = 0x10000,BFO_USE_IE_STATUSBAR = 0x20000,BFO_QUERY_ALL = 0xffffffff
   5805   };
   5806   typedef DWORD BROWSERFRAMEOPTIONS;
   5807 
   5808   EXTERN_C const IID IID_IBrowserFrameOptions;
   5809 #if defined(__cplusplus) && !defined(CINTERFACE)
   5810   struct IBrowserFrameOptions : public IUnknown {
   5811   public:
   5812     virtual HRESULT WINAPI GetFrameOptions(BROWSERFRAMEOPTIONS dwMask,BROWSERFRAMEOPTIONS *pdwOptions) = 0;
   5813   };
   5814 #else
   5815   typedef struct IBrowserFrameOptionsVtbl {
   5816     BEGIN_INTERFACE
   5817       HRESULT (WINAPI *QueryInterface)(IBrowserFrameOptions *This,REFIID riid,void **ppvObject);
   5818       ULONG (WINAPI *AddRef)(IBrowserFrameOptions *This);
   5819       ULONG (WINAPI *Release)(IBrowserFrameOptions *This);
   5820       HRESULT (WINAPI *GetFrameOptions)(IBrowserFrameOptions *This,BROWSERFRAMEOPTIONS dwMask,BROWSERFRAMEOPTIONS *pdwOptions);
   5821     END_INTERFACE
   5822   } IBrowserFrameOptionsVtbl;
   5823   struct IBrowserFrameOptions {
   5824     CONST_VTBL struct IBrowserFrameOptionsVtbl *lpVtbl;
   5825   };
   5826 #ifdef COBJMACROS
   5827 #define IBrowserFrameOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5828 #define IBrowserFrameOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
   5829 #define IBrowserFrameOptions_Release(This) (This)->lpVtbl->Release(This)
   5830 #define IBrowserFrameOptions_GetFrameOptions(This,dwMask,pdwOptions) (This)->lpVtbl->GetFrameOptions(This,dwMask,pdwOptions)
   5831 #endif
   5832 #endif
   5833   HRESULT WINAPI IBrowserFrameOptions_GetFrameOptions_Proxy(IBrowserFrameOptions *This,BROWSERFRAMEOPTIONS dwMask,BROWSERFRAMEOPTIONS *pdwOptions);
   5834   void __RPC_STUB IBrowserFrameOptions_GetFrameOptions_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5835 #endif
   5836 
   5837   typedef enum tagNWMF {
   5838     NWMF_UNLOADING = 0x1,NWMF_USERINITED = 0x2,NWMF_FIRST = 0x4,NWMF_OVERRIDEKEY = 0x8,NWMF_SHOWHELP = 0x10,NWMF_HTMLDIALOG = 0x20,
   5839     NWMF_FROMDIALOGCHILD = 0x40,NWMF_USERREQUESTED = 0x80,NWMF_USERALLOWED = 0x100
   5840   } NWMF;
   5841 
   5842 #define SID_SNewWindowManager IID_INewWindowManager
   5843 
   5844   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0259_v0_0_c_ifspec;
   5845   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0259_v0_0_s_ifspec;
   5846 #ifndef __INewWindowManager_INTERFACE_DEFINED__
   5847 #define __INewWindowManager_INTERFACE_DEFINED__
   5848   EXTERN_C const IID IID_INewWindowManager;
   5849 #if defined(__cplusplus) && !defined(CINTERFACE)
   5850   struct INewWindowManager : public IUnknown {
   5851   public:
   5852     virtual HRESULT WINAPI EvaluateNewWindow(LPCWSTR pszUrl,LPCWSTR pszName,LPCWSTR pszUrlContext,LPCWSTR pszFeatures,WINBOOL fReplace,DWORD dwFlags,DWORD dwUserActionTime) = 0;
   5853   };
   5854 #else
   5855   typedef struct INewWindowManagerVtbl {
   5856     BEGIN_INTERFACE
   5857       HRESULT (WINAPI *QueryInterface)(INewWindowManager *This,REFIID riid,void **ppvObject);
   5858       ULONG (WINAPI *AddRef)(INewWindowManager *This);
   5859       ULONG (WINAPI *Release)(INewWindowManager *This);
   5860       HRESULT (WINAPI *EvaluateNewWindow)(INewWindowManager *This,LPCWSTR pszUrl,LPCWSTR pszName,LPCWSTR pszUrlContext,LPCWSTR pszFeatures,WINBOOL fReplace,DWORD dwFlags,DWORD dwUserActionTime);
   5861     END_INTERFACE
   5862   } INewWindowManagerVtbl;
   5863   struct INewWindowManager {
   5864     CONST_VTBL struct INewWindowManagerVtbl *lpVtbl;
   5865   };
   5866 #ifdef COBJMACROS
   5867 #define INewWindowManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5868 #define INewWindowManager_AddRef(This) (This)->lpVtbl->AddRef(This)
   5869 #define INewWindowManager_Release(This) (This)->lpVtbl->Release(This)
   5870 #define INewWindowManager_EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime) (This)->lpVtbl->EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime)
   5871 #endif
   5872 #endif
   5873   HRESULT WINAPI INewWindowManager_EvaluateNewWindow_Proxy(INewWindowManager *This,LPCWSTR pszUrl,LPCWSTR pszName,LPCWSTR pszUrlContext,LPCWSTR pszFeatures,WINBOOL fReplace,DWORD dwFlags,DWORD dwUserActionTime);
   5874   void __RPC_STUB INewWindowManager_EvaluateNewWindow_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5875 #endif
   5876 
   5877 #include <pshpack8.h>
   5878   typedef struct tagSMDATA {
   5879     DWORD dwMask;
   5880     DWORD dwFlags;
   5881     HMENU hmenu;
   5882     HWND hwnd;
   5883     UINT uId;
   5884     UINT uIdParent;
   5885     UINT uIdAncestor;
   5886     IUnknown *punk;
   5887     LPITEMIDLIST pidlFolder;
   5888     LPITEMIDLIST pidlItem;
   5889     IShellFolder *psf;
   5890     void *pvUserData;
   5891   } SMDATA;
   5892 
   5893   typedef struct tagSMDATA *LPSMDATA;
   5894 
   5895 #define SMDM_SHELLFOLDER 0x00000001
   5896 #define SMDM_HMENU 0x00000002
   5897 #define SMDM_TOOLBAR 0x00000004
   5898 
   5899   typedef struct tagSMINFO {
   5900     DWORD dwMask;
   5901     DWORD dwType;
   5902     DWORD dwFlags;
   5903     int iIcon;
   5904   } SMINFO;
   5905 
   5906   typedef struct tagSMINFO *PSMINFO;
   5907 
   5908   typedef struct tagSHCSCHANGENOTIFYSTRUCT {
   5909     LONG lEvent;
   5910     LPCITEMIDLIST pidl1;
   5911     LPCITEMIDLIST pidl2;
   5912   } SMCSHCHANGENOTIFYSTRUCT;
   5913 
   5914   typedef struct tagSHCSCHANGENOTIFYSTRUCT *PSMCSHCHANGENOTIFYSTRUCT;
   5915 
   5916 #include <poppack.h>
   5917 
   5918   enum __MIDL___MIDL_itf_shobjidl_0260_0001 {
   5919     SMIM_TYPE = 0x1,SMIM_FLAGS = 0x2,SMIM_ICON = 0x4
   5920   };
   5921 
   5922   enum __MIDL___MIDL_itf_shobjidl_0260_0002 {
   5923     SMIT_SEPARATOR = 0x1,SMIT_STRING = 0x2
   5924   };
   5925 
   5926   enum __MIDL___MIDL_itf_shobjidl_0260_0003 {
   5927     SMIF_ICON = 0x1,SMIF_ACCELERATOR = 0x2,SMIF_DROPTARGET = 0x4,SMIF_SUBMENU = 0x8,SMIF_CHECKED = 0x20,SMIF_DROPCASCADE = 0x40,SMIF_HIDDEN = 0x80,
   5928     SMIF_DISABLED = 0x100,SMIF_TRACKPOPUP = 0x200,SMIF_DEMOTED = 0x400,SMIF_ALTSTATE = 0x800,SMIF_DRAGNDROP = 0x1000,SMIF_NEW = 0x2000
   5929   };
   5930 #define SMC_INITMENU 0x00000001
   5931 #define SMC_CREATE 0x00000002
   5932 #define SMC_EXITMENU 0x00000003
   5933 #define SMC_GETINFO 0x00000005
   5934 #define SMC_GETSFINFO 0x00000006
   5935 #define SMC_GETOBJECT 0x00000007
   5936 #define SMC_GETSFOBJECT 0x00000008
   5937 #define SMC_SFEXEC 0x00000009
   5938 #define SMC_SFSELECTITEM 0x0000000A
   5939 #define SMC_REFRESH 0x00000010
   5940 #define SMC_DEMOTE 0x00000011
   5941 #define SMC_PROMOTE 0x00000012
   5942 #define SMC_DEFAULTICON 0x00000016
   5943 #define SMC_NEWITEM 0x00000017
   5944 #define SMC_CHEVRONEXPAND 0x00000019
   5945 #define SMC_DISPLAYCHEVRONTIP 0x0000002A
   5946 #define SMC_SETSFOBJECT 0x0000002D
   5947 #define SMC_SHCHANGENOTIFY 0x0000002E
   5948 #define SMC_CHEVRONGETTIP 0x0000002F
   5949 #define SMC_SFDDRESTRICTED 0x00000030
   5950 
   5951   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0260_v0_0_c_ifspec;
   5952   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0260_v0_0_s_ifspec;
   5953 
   5954 #ifndef __IShellMenuCallback_INTERFACE_DEFINED__
   5955 #define __IShellMenuCallback_INTERFACE_DEFINED__
   5956   EXTERN_C const IID IID_IShellMenuCallback;
   5957 #if defined(__cplusplus) && !defined(CINTERFACE)
   5958   struct IShellMenuCallback : public IUnknown {
   5959   public:
   5960     virtual HRESULT WINAPI CallbackSM(LPSMDATA psmd,UINT uMsg,WPARAM wParam,LPARAM lParam) = 0;
   5961   };
   5962 #else
   5963   typedef struct IShellMenuCallbackVtbl {
   5964     BEGIN_INTERFACE
   5965       HRESULT (WINAPI *QueryInterface)(IShellMenuCallback *This,REFIID riid,void **ppvObject);
   5966       ULONG (WINAPI *AddRef)(IShellMenuCallback *This);
   5967       ULONG (WINAPI *Release)(IShellMenuCallback *This);
   5968       HRESULT (WINAPI *CallbackSM)(IShellMenuCallback *This,LPSMDATA psmd,UINT uMsg,WPARAM wParam,LPARAM lParam);
   5969     END_INTERFACE
   5970   } IShellMenuCallbackVtbl;
   5971   struct IShellMenuCallback {
   5972     CONST_VTBL struct IShellMenuCallbackVtbl *lpVtbl;
   5973   };
   5974 #ifdef COBJMACROS
   5975 #define IShellMenuCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5976 #define IShellMenuCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
   5977 #define IShellMenuCallback_Release(This) (This)->lpVtbl->Release(This)
   5978 #define IShellMenuCallback_CallbackSM(This,psmd,uMsg,wParam,lParam) (This)->lpVtbl->CallbackSM(This,psmd,uMsg,wParam,lParam)
   5979 #endif
   5980 #endif
   5981   HRESULT WINAPI IShellMenuCallback_CallbackSM_Proxy(IShellMenuCallback *This,LPSMDATA psmd,UINT uMsg,WPARAM wParam,LPARAM lParam);
   5982   void __RPC_STUB IShellMenuCallback_CallbackSM_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   5983 #endif
   5984 
   5985 #ifndef __IAttachmentExecute_INTERFACE_DEFINED__
   5986 #define __IAttachmentExecute_INTERFACE_DEFINED__
   5987   typedef enum tagATTACHMENT_PROMPT {
   5988     ATTACHMENT_PROMPT_NONE = 0,ATTACHMENT_PROMPT_SAVE = 0x1,ATTACHMENT_PROMPT_EXEC = 0x2,ATTACHMENT_PROMPT_EXEC_OR_SAVE = 0x3
   5989   } ATTACHMENT_PROMPT;
   5990 
   5991   typedef enum tagATTACHMENT_ACTION {
   5992     ATTACHMENT_ACTION_CANCEL = 0,ATTACHMENT_ACTION_SAVE = 0x1,ATTACHMENT_ACTION_EXEC = 0x2
   5993   } ATTACHMENT_ACTION;
   5994 
   5995 DEFINE_GUID(IID_IAttachmentExecute, 0x73db1241,0x1e85,0x4581,0x8e,0x4f,0xa8,0x1e,0x1d,0x0f,0x8c,0x57);
   5996 #if defined(__cplusplus) && !defined(CINTERFACE)
   5997   struct IAttachmentExecute : public IUnknown {
   5998   public:
   5999     virtual HRESULT WINAPI SetClientTitle(LPCWSTR pszTitle) = 0;
   6000     virtual HRESULT WINAPI SetClientGuid(REFGUID guid) = 0;
   6001     virtual HRESULT WINAPI SetLocalPath(LPCWSTR pszLocalPath) = 0;
   6002     virtual HRESULT WINAPI SetFileName(LPCWSTR pszFileName) = 0;
   6003     virtual HRESULT WINAPI SetSource(LPCWSTR pszSource) = 0;
   6004     virtual HRESULT WINAPI SetReferrer(LPCWSTR pszReferrer) = 0;
   6005     virtual HRESULT WINAPI CheckPolicy(void) = 0;
   6006     virtual HRESULT WINAPI Prompt(HWND hwnd,ATTACHMENT_PROMPT prompt,ATTACHMENT_ACTION *paction) = 0;
   6007     virtual HRESULT WINAPI Save(void) = 0;
   6008     virtual HRESULT WINAPI Execute(HWND hwnd,LPCWSTR pszVerb,HANDLE *phProcess) = 0;
   6009     virtual HRESULT WINAPI SaveWithUI(HWND hwnd) = 0;
   6010     virtual HRESULT WINAPI ClearClientState(void) = 0;
   6011   };
   6012 #else
   6013   typedef struct IAttachmentExecuteVtbl {
   6014     BEGIN_INTERFACE
   6015       HRESULT (WINAPI *QueryInterface)(IAttachmentExecute *This,REFIID riid,void **ppvObject);
   6016       ULONG (WINAPI *AddRef)(IAttachmentExecute *This);
   6017       ULONG (WINAPI *Release)(IAttachmentExecute *This);
   6018       HRESULT (WINAPI *SetClientTitle)(IAttachmentExecute *This,LPCWSTR pszTitle);
   6019       HRESULT (WINAPI *SetClientGuid)(IAttachmentExecute *This,REFGUID guid);
   6020       HRESULT (WINAPI *SetLocalPath)(IAttachmentExecute *This,LPCWSTR pszLocalPath);
   6021       HRESULT (WINAPI *SetFileName)(IAttachmentExecute *This,LPCWSTR pszFileName);
   6022       HRESULT (WINAPI *SetSource)(IAttachmentExecute *This,LPCWSTR pszSource);
   6023       HRESULT (WINAPI *SetReferrer)(IAttachmentExecute *This,LPCWSTR pszReferrer);
   6024       HRESULT (WINAPI *CheckPolicy)(IAttachmentExecute *This);
   6025       HRESULT (WINAPI *Prompt)(IAttachmentExecute *This,HWND hwnd,ATTACHMENT_PROMPT prompt,ATTACHMENT_ACTION *paction);
   6026       HRESULT (WINAPI *Save)(IAttachmentExecute *This);
   6027       HRESULT (WINAPI *Execute)(IAttachmentExecute *This,HWND hwnd,LPCWSTR pszVerb,HANDLE *phProcess);
   6028       HRESULT (WINAPI *SaveWithUI)(IAttachmentExecute *This,HWND hwnd);
   6029       HRESULT (WINAPI *ClearClientState)(IAttachmentExecute *This);
   6030     END_INTERFACE
   6031   } IAttachmentExecuteVtbl;
   6032   struct IAttachmentExecute {
   6033     CONST_VTBL struct IAttachmentExecuteVtbl *lpVtbl;
   6034   };
   6035 #ifdef COBJMACROS
   6036 #define IAttachmentExecute_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6037 #define IAttachmentExecute_AddRef(This) (This)->lpVtbl->AddRef(This)
   6038 #define IAttachmentExecute_Release(This) (This)->lpVtbl->Release(This)
   6039 #define IAttachmentExecute_SetClientTitle(This,pszTitle) (This)->lpVtbl->SetClientTitle(This,pszTitle)
   6040 #define IAttachmentExecute_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
   6041 #define IAttachmentExecute_SetLocalPath(This,pszLocalPath) (This)->lpVtbl->SetLocalPath(This,pszLocalPath)
   6042 #define IAttachmentExecute_SetFileName(This,pszFileName) (This)->lpVtbl->SetFileName(This,pszFileName)
   6043 #define IAttachmentExecute_SetSource(This,pszSource) (This)->lpVtbl->SetSource(This,pszSource)
   6044 #define IAttachmentExecute_SetReferrer(This,pszReferrer) (This)->lpVtbl->SetReferrer(This,pszReferrer)
   6045 #define IAttachmentExecute_CheckPolicy(This) (This)->lpVtbl->CheckPolicy(This)
   6046 #define IAttachmentExecute_Prompt(This,hwnd,prompt,paction) (This)->lpVtbl->Prompt(This,hwnd,prompt,paction)
   6047 #define IAttachmentExecute_Save(This) (This)->lpVtbl->Save(This)
   6048 #define IAttachmentExecute_Execute(This,hwnd,pszVerb,phProcess) (This)->lpVtbl->Execute(This,hwnd,pszVerb,phProcess)
   6049 #define IAttachmentExecute_SaveWithUI(This,hwnd) (This)->lpVtbl->SaveWithUI(This,hwnd)
   6050 #define IAttachmentExecute_ClearClientState(This) (This)->lpVtbl->ClearClientState(This)
   6051 #endif
   6052 #endif
   6053   HRESULT WINAPI IAttachmentExecute_SetClientTitle_Proxy(IAttachmentExecute *This,LPCWSTR pszTitle);
   6054   void __RPC_STUB IAttachmentExecute_SetClientTitle_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6055   HRESULT WINAPI IAttachmentExecute_SetClientGuid_Proxy(IAttachmentExecute *This,REFGUID guid);
   6056   void __RPC_STUB IAttachmentExecute_SetClientGuid_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6057   HRESULT WINAPI IAttachmentExecute_SetLocalPath_Proxy(IAttachmentExecute *This,LPCWSTR pszLocalPath);
   6058   void __RPC_STUB IAttachmentExecute_SetLocalPath_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6059   HRESULT WINAPI IAttachmentExecute_SetFileName_Proxy(IAttachmentExecute *This,LPCWSTR pszFileName);
   6060   void __RPC_STUB IAttachmentExecute_SetFileName_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6061   HRESULT WINAPI IAttachmentExecute_SetSource_Proxy(IAttachmentExecute *This,LPCWSTR pszSource);
   6062   void __RPC_STUB IAttachmentExecute_SetSource_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6063   HRESULT WINAPI IAttachmentExecute_SetReferrer_Proxy(IAttachmentExecute *This,LPCWSTR pszReferrer);
   6064   void __RPC_STUB IAttachmentExecute_SetReferrer_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6065   HRESULT WINAPI IAttachmentExecute_CheckPolicy_Proxy(IAttachmentExecute *This);
   6066   void __RPC_STUB IAttachmentExecute_CheckPolicy_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6067   HRESULT WINAPI IAttachmentExecute_Prompt_Proxy(IAttachmentExecute *This,HWND hwnd,ATTACHMENT_PROMPT prompt,ATTACHMENT_ACTION *paction);
   6068   void __RPC_STUB IAttachmentExecute_Prompt_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6069   HRESULT WINAPI IAttachmentExecute_Save_Proxy(IAttachmentExecute *This);
   6070   void __RPC_STUB IAttachmentExecute_Save_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6071   HRESULT WINAPI IAttachmentExecute_Execute_Proxy(IAttachmentExecute *This,HWND hwnd,LPCWSTR pszVerb,HANDLE *phProcess);
   6072   void __RPC_STUB IAttachmentExecute_Execute_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6073   HRESULT WINAPI IAttachmentExecute_SaveWithUI_Proxy(IAttachmentExecute *This,HWND hwnd);
   6074   void __RPC_STUB IAttachmentExecute_SaveWithUI_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6075   HRESULT WINAPI IAttachmentExecute_ClearClientState_Proxy(IAttachmentExecute *This);
   6076   void __RPC_STUB IAttachmentExecute_ClearClientState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6077 #endif
   6078 
   6079 #define SMINIT_DEFAULT 0x00000000
   6080 #define SMINIT_RESTRICT_DRAGDROP 0x00000002
   6081 #define SMINIT_TOPLEVEL 0x00000004
   6082 #define SMINIT_CACHED 0x00000010
   6083 #define SMINIT_VERTICAL 0x10000000
   6084 #define SMINIT_HORIZONTAL 0x20000000
   6085 #define ANCESTORDEFAULT (UINT)-1
   6086 #define SMSET_TOP 0x10000000
   6087 #define SMSET_BOTTOM 0x20000000
   6088 #define SMSET_DONTOWN 0x00000001
   6089 #define SMINV_REFRESH 0x00000001
   6090 #define SMINV_ID 0x00000008
   6091 
   6092   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0262_v0_0_c_ifspec;
   6093   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0262_v0_0_s_ifspec;
   6094 #ifndef __IShellMenu_INTERFACE_DEFINED__
   6095 #define __IShellMenu_INTERFACE_DEFINED__
   6096   EXTERN_C const IID IID_IShellMenu;
   6097 #if defined(__cplusplus) && !defined(CINTERFACE)
   6098   struct IShellMenu : public IUnknown {
   6099   public:
   6100     virtual HRESULT WINAPI Initialize(IShellMenuCallback *psmc,UINT uId,UINT uIdAncestor,DWORD dwFlags) = 0;
   6101     virtual HRESULT WINAPI GetMenuInfo(IShellMenuCallback **ppsmc,UINT *puId,UINT *puIdAncestor,DWORD *pdwFlags) = 0;
   6102     virtual HRESULT WINAPI SetShellFolder(IShellFolder *psf,LPCITEMIDLIST pidlFolder,HKEY hKey,DWORD dwFlags) = 0;
   6103     virtual HRESULT WINAPI GetShellFolder(DWORD *pdwFlags,LPITEMIDLIST *ppidl,REFIID riid,void **ppv) = 0;
   6104     virtual HRESULT WINAPI SetMenu(HMENU hmenu,HWND hwnd,DWORD dwFlags) = 0;
   6105     virtual HRESULT WINAPI GetMenu(HMENU *phmenu,HWND *phwnd,DWORD *pdwFlags) = 0;
   6106     virtual HRESULT WINAPI InvalidateItem(LPSMDATA psmd,DWORD dwFlags) = 0;
   6107     virtual HRESULT WINAPI GetState(LPSMDATA psmd) = 0;
   6108     virtual HRESULT WINAPI SetMenuToolbar(IUnknown *punk,DWORD dwFlags) = 0;
   6109   };
   6110 #else
   6111   typedef struct IShellMenuVtbl {
   6112     BEGIN_INTERFACE
   6113       HRESULT (WINAPI *QueryInterface)(IShellMenu *This,REFIID riid,void **ppvObject);
   6114       ULONG (WINAPI *AddRef)(IShellMenu *This);
   6115       ULONG (WINAPI *Release)(IShellMenu *This);
   6116       HRESULT (WINAPI *Initialize)(IShellMenu *This,IShellMenuCallback *psmc,UINT uId,UINT uIdAncestor,DWORD dwFlags);
   6117       HRESULT (WINAPI *GetMenuInfo)(IShellMenu *This,IShellMenuCallback **ppsmc,UINT *puId,UINT *puIdAncestor,DWORD *pdwFlags);
   6118       HRESULT (WINAPI *SetShellFolder)(IShellMenu *This,IShellFolder *psf,LPCITEMIDLIST pidlFolder,HKEY hKey,DWORD dwFlags);
   6119       HRESULT (WINAPI *GetShellFolder)(IShellMenu *This,DWORD *pdwFlags,LPITEMIDLIST *ppidl,REFIID riid,void **ppv);
   6120       HRESULT (WINAPI *SetMenu)(IShellMenu *This,HMENU hmenu,HWND hwnd,DWORD dwFlags);
   6121       HRESULT (WINAPI *GetMenu)(IShellMenu *This,HMENU *phmenu,HWND *phwnd,DWORD *pdwFlags);
   6122       HRESULT (WINAPI *InvalidateItem)(IShellMenu *This,LPSMDATA psmd,DWORD dwFlags);
   6123       HRESULT (WINAPI *GetState)(IShellMenu *This,LPSMDATA psmd);
   6124       HRESULT (WINAPI *SetMenuToolbar)(IShellMenu *This,IUnknown *punk,DWORD dwFlags);
   6125     END_INTERFACE
   6126   } IShellMenuVtbl;
   6127   struct IShellMenu {
   6128     CONST_VTBL struct IShellMenuVtbl *lpVtbl;
   6129   };
   6130 #ifdef COBJMACROS
   6131 #define IShellMenu_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6132 #define IShellMenu_AddRef(This) (This)->lpVtbl->AddRef(This)
   6133 #define IShellMenu_Release(This) (This)->lpVtbl->Release(This)
   6134 #define IShellMenu_Initialize(This,psmc,uId,uIdAncestor,dwFlags) (This)->lpVtbl->Initialize(This,psmc,uId,uIdAncestor,dwFlags)
   6135 #define IShellMenu_GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags) (This)->lpVtbl->GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags)
   6136 #define IShellMenu_SetShellFolder(This,psf,pidlFolder,hKey,dwFlags) (This)->lpVtbl->SetShellFolder(This,psf,pidlFolder,hKey,dwFlags)
   6137 #define IShellMenu_GetShellFolder(This,pdwFlags,ppidl,riid,ppv) (This)->lpVtbl->GetShellFolder(This,pdwFlags,ppidl,riid,ppv)
   6138 #define IShellMenu_SetMenu(This,hmenu,hwnd,dwFlags) (This)->lpVtbl->SetMenu(This,hmenu,hwnd,dwFlags)
   6139 #define IShellMenu_GetMenu(This,phmenu,phwnd,pdwFlags) (This)->lpVtbl->GetMenu(This,phmenu,phwnd,pdwFlags)
   6140 #define IShellMenu_InvalidateItem(This,psmd,dwFlags) (This)->lpVtbl->InvalidateItem(This,psmd,dwFlags)
   6141 #define IShellMenu_GetState(This,psmd) (This)->lpVtbl->GetState(This,psmd)
   6142 #define IShellMenu_SetMenuToolbar(This,punk,dwFlags) (This)->lpVtbl->SetMenuToolbar(This,punk,dwFlags)
   6143 #endif
   6144 #endif
   6145   HRESULT WINAPI IShellMenu_Initialize_Proxy(IShellMenu *This,IShellMenuCallback *psmc,UINT uId,UINT uIdAncestor,DWORD dwFlags);
   6146   void __RPC_STUB IShellMenu_Initialize_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6147   HRESULT WINAPI IShellMenu_GetMenuInfo_Proxy(IShellMenu *This,IShellMenuCallback **ppsmc,UINT *puId,UINT *puIdAncestor,DWORD *pdwFlags);
   6148   void __RPC_STUB IShellMenu_GetMenuInfo_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6149   HRESULT WINAPI IShellMenu_SetShellFolder_Proxy(IShellMenu *This,IShellFolder *psf,LPCITEMIDLIST pidlFolder,HKEY hKey,DWORD dwFlags);
   6150   void __RPC_STUB IShellMenu_SetShellFolder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6151   HRESULT WINAPI IShellMenu_GetShellFolder_Proxy(IShellMenu *This,DWORD *pdwFlags,LPITEMIDLIST *ppidl,REFIID riid,void **ppv);
   6152   void __RPC_STUB IShellMenu_GetShellFolder_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6153   HRESULT WINAPI IShellMenu_SetMenu_Proxy(IShellMenu *This,HMENU hmenu,HWND hwnd,DWORD dwFlags);
   6154   void __RPC_STUB IShellMenu_SetMenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6155   HRESULT WINAPI IShellMenu_GetMenu_Proxy(IShellMenu *This,HMENU *phmenu,HWND *phwnd,DWORD *pdwFlags);
   6156   void __RPC_STUB IShellMenu_GetMenu_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6157   HRESULT WINAPI IShellMenu_InvalidateItem_Proxy(IShellMenu *This,LPSMDATA psmd,DWORD dwFlags);
   6158   void __RPC_STUB IShellMenu_InvalidateItem_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6159   HRESULT WINAPI IShellMenu_GetState_Proxy(IShellMenu *This,LPSMDATA psmd);
   6160   void __RPC_STUB IShellMenu_GetState_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6161   HRESULT WINAPI IShellMenu_SetMenuToolbar_Proxy(IShellMenu *This,IUnknown *punk,DWORD dwFlags);
   6162   void __RPC_STUB IShellMenu_SetMenuToolbar_Stub(IRpcStubBuffer *This,IRpcChannelBuffer *_pRpcChannelBuffer,PRPC_MESSAGE _pRpcMessage,DWORD *_pdwStubPhase);
   6163 #endif
   6164 
   6165 typedef enum FDE_OVERWRITE_RESPONSE {
   6166     FDEOR_DEFAULT = 0,
   6167     FDEOR_ACCCEP = 1,
   6168     FDEOR_REFUSE = 2
   6169 } FDE_OVERWRITE_RESPONSE;
   6170 typedef enum FDE_SHAREVIOLATION_RESPONSE {
   6171     FDESVR_DEFAULT = 0,
   6172     FDESVR_ACCEPT = 1,
   6173     FDESVR_REFUSE = 2
   6174 } FDE_SHAREVIOLATION_RESPONSE;
   6175 
   6176 /*****************************************************************************
   6177  * IFileDialogEvents interface
   6178  */
   6179 #ifndef __IFileDialogEvents_INTERFACE_DEFINED__
   6180 #define __IFileDialogEvents_INTERFACE_DEFINED__
   6181 
   6182 DEFINE_GUID(IID_IFileDialogEvents, 0x973510db, 0x7d7f, 0x452b, 0x89,0x75, 0x74,0xa8,0x58,0x28,0xd3,0x54);
   6183 #if defined(__cplusplus) && !defined(CINTERFACE)
   6184 MIDL_INTERFACE("973510db-7d7f-452b-8975-74a85828d354")
   6185 IFileDialogEvents : public IUnknown
   6186 {
   6187     virtual HRESULT STDMETHODCALLTYPE OnFileOk(
   6188         IFileDialog *pfd) = 0;
   6189 
   6190     virtual HRESULT STDMETHODCALLTYPE OnFolderChanging(
   6191         IFileDialog *pfd,
   6192         IShellItem *psiFolder) = 0;
   6193 
   6194     virtual HRESULT STDMETHODCALLTYPE OnFolderChange(
   6195         IFileDialog *pfd) = 0;
   6196 
   6197     virtual HRESULT STDMETHODCALLTYPE OnSelectionChange(
   6198         IFileDialog *pfd) = 0;
   6199 
   6200     virtual HRESULT STDMETHODCALLTYPE OnShareViolation(
   6201         IFileDialog *pfd,
   6202         IShellItem *psi,
   6203         FDE_SHAREVIOLATION_RESPONSE *pResponse) = 0;
   6204 
   6205     virtual HRESULT STDMETHODCALLTYPE OnTypeChange(
   6206         IFileDialog *pfd) = 0;
   6207 
   6208     virtual HRESULT STDMETHODCALLTYPE OnOverwrite(
   6209         IFileDialog *pfd,
   6210         IShellItem *psi,
   6211         FDE_OVERWRITE_RESPONSE *pResponse) = 0;
   6212 
   6213 };
   6214 #ifdef __CRT_UUID_DECL
   6215 __CRT_UUID_DECL(IFileDialogEvents, 0x973510db, 0x7d7f, 0x452b, 0x89,0x75, 0x74,0xa8,0x58,0x28,0xd3,0x54)
   6216 #endif
   6217 #else
   6218 typedef struct IFileDialogEventsVtbl {
   6219     BEGIN_INTERFACE
   6220 
   6221     /*** IUnknown methods ***/
   6222     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6223         IFileDialogEvents* This,
   6224         REFIID riid,
   6225         void **ppvObject);
   6226 
   6227     ULONG (STDMETHODCALLTYPE *AddRef)(
   6228         IFileDialogEvents* This);
   6229 
   6230     ULONG (STDMETHODCALLTYPE *Release)(
   6231         IFileDialogEvents* This);
   6232 
   6233     /*** IFileDialogEvents methods ***/
   6234     HRESULT (STDMETHODCALLTYPE *OnFileOk)(
   6235         IFileDialogEvents* This,
   6236         IFileDialog *pfd);
   6237 
   6238     HRESULT (STDMETHODCALLTYPE *OnFolderChanging)(
   6239         IFileDialogEvents* This,
   6240         IFileDialog *pfd,
   6241         IShellItem *psiFolder);
   6242 
   6243     HRESULT (STDMETHODCALLTYPE *OnFolderChange)(
   6244         IFileDialogEvents* This,
   6245         IFileDialog *pfd);
   6246 
   6247     HRESULT (STDMETHODCALLTYPE *OnSelectionChange)(
   6248         IFileDialogEvents* This,
   6249         IFileDialog *pfd);
   6250 
   6251     HRESULT (STDMETHODCALLTYPE *OnShareViolation)(
   6252         IFileDialogEvents* This,
   6253         IFileDialog *pfd,
   6254         IShellItem *psi,
   6255         FDE_SHAREVIOLATION_RESPONSE *pResponse);
   6256 
   6257     HRESULT (STDMETHODCALLTYPE *OnTypeChange)(
   6258         IFileDialogEvents* This,
   6259         IFileDialog *pfd);
   6260 
   6261     HRESULT (STDMETHODCALLTYPE *OnOverwrite)(
   6262         IFileDialogEvents* This,
   6263         IFileDialog *pfd,
   6264         IShellItem *psi,
   6265         FDE_OVERWRITE_RESPONSE *pResponse);
   6266 
   6267     END_INTERFACE
   6268 } IFileDialogEventsVtbl;
   6269 interface IFileDialogEvents {
   6270     CONST_VTBL IFileDialogEventsVtbl* lpVtbl;
   6271 };
   6272 
   6273 #ifdef COBJMACROS
   6274 /*** IUnknown methods ***/
   6275 #define IFileDialogEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6276 #define IFileDialogEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
   6277 #define IFileDialogEvents_Release(This) (This)->lpVtbl->Release(This)
   6278 /*** IFileDialogEvents methods ***/
   6279 #define IFileDialogEvents_OnFileOk(This,pfd) (This)->lpVtbl->OnFileOk(This,pfd)
   6280 #define IFileDialogEvents_OnFolderChanging(This,pfd,psiFolder) (This)->lpVtbl->OnFolderChanging(This,pfd,psiFolder)
   6281 #define IFileDialogEvents_OnFolderChange(This,pfd) (This)->lpVtbl->OnFolderChange(This,pfd)
   6282 #define IFileDialogEvents_OnSelectionChange(This,pfd) (This)->lpVtbl->OnSelectionChange(This,pfd)
   6283 #define IFileDialogEvents_OnShareViolation(This,pfd,psi,pResponse) (This)->lpVtbl->OnShareViolation(This,pfd,psi,pResponse)
   6284 #define IFileDialogEvents_OnTypeChange(This,pfd) (This)->lpVtbl->OnTypeChange(This,pfd)
   6285 #define IFileDialogEvents_OnOverwrite(This,pfd,psi,pResponse) (This)->lpVtbl->OnOverwrite(This,pfd,psi,pResponse)
   6286 #endif
   6287 
   6288 #endif
   6289 
   6290 #endif  /* __IFileDialogEvents_INTERFACE_DEFINED__ */
   6291 
   6292 /*****************************************************************************
   6293  * IApplicationAssociationRegistration interface
   6294  */
   6295 #ifndef __IApplicationAssociationRegistration_INTERFACE_DEFINED__
   6296 #define __IApplicationAssociationRegistration_INTERFACE_DEFINED__
   6297 
   6298 typedef enum ASSOCIATIONLEVEL {
   6299     AL_MACHINE = 0,
   6300     AL_EFFECTIVE = 1,
   6301     AL_USER = 2
   6302 } ASSOCIATIONLEVEL;
   6303 
   6304 typedef enum ASSOCIATIONTYPE {
   6305     AT_FILEEXTENSION = 0,
   6306     AT_URLPROTOCOL = 1,
   6307     AT_STARTMENUCLIENT = 2,
   6308     AT_MIMETYPE = 3
   6309 } ASSOCIATIONTYPE;
   6310 
   6311 DEFINE_GUID(IID_IApplicationAssociationRegistration, 0x4e530b0a, 0xe611, 0x4c77, 0xa3,0xac, 0x90,0x31,0xd0,0x22,0x28,0x1b);
   6312 #if defined(__cplusplus) && !defined(CINTERFACE)
   6313 interface IApplicationAssociationRegistration : public IUnknown
   6314 {
   6315     virtual HRESULT STDMETHODCALLTYPE QueryCurrentDefault(
   6316         LPCWSTR pszQuery,
   6317         ASSOCIATIONTYPE atQueryType,
   6318         ASSOCIATIONLEVEL alQueryLevel,
   6319         LPWSTR *ppszAssociation) = 0;
   6320 
   6321     virtual HRESULT STDMETHODCALLTYPE QueryAppIsDefault(
   6322         LPCWSTR pszQuery,
   6323         ASSOCIATIONTYPE atQueryType,
   6324         ASSOCIATIONLEVEL alQueryLevel,
   6325         LPCWSTR pszAppRegistryName,
   6326         BOOL *pfDefault) = 0;
   6327 
   6328     virtual HRESULT STDMETHODCALLTYPE QueryAppIsDefaultAll(
   6329         ASSOCIATIONLEVEL alQueryLevel,
   6330         LPCWSTR pszAppRegistryName,
   6331         BOOL *pfDefault) = 0;
   6332 
   6333     virtual HRESULT STDMETHODCALLTYPE SetAppAsDefault(
   6334         LPCWSTR pszAppRegistryName,
   6335         LPCWSTR pszSet,
   6336         ASSOCIATIONTYPE atSetType) = 0;
   6337 
   6338     virtual HRESULT STDMETHODCALLTYPE SetAppAsDefaultAll(
   6339         LPCWSTR pszAppRegistryName) = 0;
   6340 
   6341     virtual HRESULT STDMETHODCALLTYPE ClearUserAssociations(
   6342         ) = 0;
   6343 
   6344 };
   6345 #else
   6346 typedef struct IApplicationAssociationRegistrationVtbl {
   6347     BEGIN_INTERFACE
   6348 
   6349     /*** IUnknown methods ***/
   6350     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6351         IApplicationAssociationRegistration* This,
   6352         REFIID riid,
   6353         void **ppvObject);
   6354 
   6355     ULONG (STDMETHODCALLTYPE *AddRef)(
   6356         IApplicationAssociationRegistration* This);
   6357 
   6358     ULONG (STDMETHODCALLTYPE *Release)(
   6359         IApplicationAssociationRegistration* This);
   6360 
   6361     /*** IApplicationAssociationRegistration methods ***/
   6362     HRESULT (STDMETHODCALLTYPE *QueryCurrentDefault)(
   6363         IApplicationAssociationRegistration* This,
   6364         LPCWSTR pszQuery,
   6365         ASSOCIATIONTYPE atQueryType,
   6366         ASSOCIATIONLEVEL alQueryLevel,
   6367         LPWSTR *ppszAssociation);
   6368 
   6369     HRESULT (STDMETHODCALLTYPE *QueryAppIsDefault)(
   6370         IApplicationAssociationRegistration* This,
   6371         LPCWSTR pszQuery,
   6372         ASSOCIATIONTYPE atQueryType,
   6373         ASSOCIATIONLEVEL alQueryLevel,
   6374         LPCWSTR pszAppRegistryName,
   6375         BOOL *pfDefault);
   6376 
   6377     HRESULT (STDMETHODCALLTYPE *QueryAppIsDefaultAll)(
   6378         IApplicationAssociationRegistration* This,
   6379         ASSOCIATIONLEVEL alQueryLevel,
   6380         LPCWSTR pszAppRegistryName,
   6381         BOOL *pfDefault);
   6382 
   6383     HRESULT (STDMETHODCALLTYPE *SetAppAsDefault)(
   6384         IApplicationAssociationRegistration* This,
   6385         LPCWSTR pszAppRegistryName,
   6386         LPCWSTR pszSet,
   6387         ASSOCIATIONTYPE atSetType);
   6388 
   6389     HRESULT (STDMETHODCALLTYPE *SetAppAsDefaultAll)(
   6390         IApplicationAssociationRegistration* This,
   6391         LPCWSTR pszAppRegistryName);
   6392 
   6393     HRESULT (STDMETHODCALLTYPE *ClearUserAssociations)(
   6394         IApplicationAssociationRegistration* This);
   6395 
   6396     END_INTERFACE
   6397 } IApplicationAssociationRegistrationVtbl;
   6398 interface IApplicationAssociationRegistration {
   6399     CONST_VTBL IApplicationAssociationRegistrationVtbl* lpVtbl;
   6400 };
   6401 
   6402 #ifdef COBJMACROS
   6403 /*** IUnknown methods ***/
   6404 #define IApplicationAssociationRegistration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6405 #define IApplicationAssociationRegistration_AddRef(This) (This)->lpVtbl->AddRef(This)
   6406 #define IApplicationAssociationRegistration_Release(This) (This)->lpVtbl->Release(This)
   6407 /*** IApplicationAssociationRegistration methods ***/
   6408 #define IApplicationAssociationRegistration_QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation) (This)->lpVtbl->QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation)
   6409 #define IApplicationAssociationRegistration_QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault) (This)->lpVtbl->QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault)
   6410 #define IApplicationAssociationRegistration_QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault) (This)->lpVtbl->QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault)
   6411 #define IApplicationAssociationRegistration_SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType) (This)->lpVtbl->SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType)
   6412 #define IApplicationAssociationRegistration_SetAppAsDefaultAll(This,pszAppRegistryName) (This)->lpVtbl->SetAppAsDefaultAll(This,pszAppRegistryName)
   6413 #define IApplicationAssociationRegistration_ClearUserAssociations(This) (This)->lpVtbl->ClearUserAssociations(This)
   6414 #endif
   6415 
   6416 #endif
   6417 
   6418 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_QueryCurrentDefault_Proxy(
   6419     IApplicationAssociationRegistration* This,
   6420     LPCWSTR pszQuery,
   6421     ASSOCIATIONTYPE atQueryType,
   6422     ASSOCIATIONLEVEL alQueryLevel,
   6423     LPWSTR *ppszAssociation);
   6424 void __RPC_STUB IApplicationAssociationRegistration_QueryCurrentDefault_Stub(
   6425     IRpcStubBuffer* This,
   6426     IRpcChannelBuffer* pRpcChannelBuffer,
   6427     PRPC_MESSAGE pRpcMessage,
   6428     DWORD* pdwStubPhase);
   6429 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_QueryAppIsDefault_Proxy(
   6430     IApplicationAssociationRegistration* This,
   6431     LPCWSTR pszQuery,
   6432     ASSOCIATIONTYPE atQueryType,
   6433     ASSOCIATIONLEVEL alQueryLevel,
   6434     LPCWSTR pszAppRegistryName,
   6435     BOOL *pfDefault);
   6436 void __RPC_STUB IApplicationAssociationRegistration_QueryAppIsDefault_Stub(
   6437     IRpcStubBuffer* This,
   6438     IRpcChannelBuffer* pRpcChannelBuffer,
   6439     PRPC_MESSAGE pRpcMessage,
   6440     DWORD* pdwStubPhase);
   6441 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_QueryAppIsDefaultAll_Proxy(
   6442     IApplicationAssociationRegistration* This,
   6443     ASSOCIATIONLEVEL alQueryLevel,
   6444     LPCWSTR pszAppRegistryName,
   6445     BOOL *pfDefault);
   6446 void __RPC_STUB IApplicationAssociationRegistration_QueryAppIsDefaultAll_Stub(
   6447     IRpcStubBuffer* This,
   6448     IRpcChannelBuffer* pRpcChannelBuffer,
   6449     PRPC_MESSAGE pRpcMessage,
   6450     DWORD* pdwStubPhase);
   6451 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_SetAppAsDefault_Proxy(
   6452     IApplicationAssociationRegistration* This,
   6453     LPCWSTR pszAppRegistryName,
   6454     LPCWSTR pszSet,
   6455     ASSOCIATIONTYPE atSetType);
   6456 void __RPC_STUB IApplicationAssociationRegistration_SetAppAsDefault_Stub(
   6457     IRpcStubBuffer* This,
   6458     IRpcChannelBuffer* pRpcChannelBuffer,
   6459     PRPC_MESSAGE pRpcMessage,
   6460     DWORD* pdwStubPhase);
   6461 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_SetAppAsDefaultAll_Proxy(
   6462     IApplicationAssociationRegistration* This,
   6463     LPCWSTR pszAppRegistryName);
   6464 void __RPC_STUB IApplicationAssociationRegistration_SetAppAsDefaultAll_Stub(
   6465     IRpcStubBuffer* This,
   6466     IRpcChannelBuffer* pRpcChannelBuffer,
   6467     PRPC_MESSAGE pRpcMessage,
   6468     DWORD* pdwStubPhase);
   6469 HRESULT STDMETHODCALLTYPE IApplicationAssociationRegistration_ClearUserAssociations_Proxy(
   6470     IApplicationAssociationRegistration* This);
   6471 void __RPC_STUB IApplicationAssociationRegistration_ClearUserAssociations_Stub(
   6472     IRpcStubBuffer* This,
   6473     IRpcChannelBuffer* pRpcChannelBuffer,
   6474     PRPC_MESSAGE pRpcMessage,
   6475     DWORD* pdwStubPhase);
   6476 
   6477 #endif  /* __IApplicationAssociationRegistration_INTERFACE_DEFINED__ */
   6478 
   6479 /*****************************************************************************
   6480  * ICustomDestinationList interface
   6481  */
   6482 #ifndef __ICustomDestinationList_INTERFACE_DEFINED__
   6483 #define __ICustomDestinationList_INTERFACE_DEFINED__
   6484 
   6485 typedef enum KNOWNDESTCATEGORY {
   6486     KDC_FREQUENT = 1,
   6487     KDC_RECENT = 2
   6488 } KNOWNDESTCATEGORY;
   6489 
   6490 DEFINE_GUID(IID_ICustomDestinationList, 0x6332debf, 0x87b5, 0x4670, 0x90,0xc0, 0x5e,0x57,0xb4,0x08,0xa4,0x9e);
   6491 #if defined(__cplusplus) && !defined(CINTERFACE)
   6492 interface ICustomDestinationList : public IUnknown
   6493 {
   6494     virtual HRESULT STDMETHODCALLTYPE SetAppID(
   6495         LPCWSTR pszAppID) = 0;
   6496 
   6497     virtual HRESULT STDMETHODCALLTYPE BeginList(
   6498         UINT *pcMinSlots,
   6499         REFIID riid,
   6500         void **ppv) = 0;
   6501 
   6502     virtual HRESULT STDMETHODCALLTYPE AppendCategory(
   6503         LPCWSTR pszCategory,
   6504         IObjectArray *poa) = 0;
   6505 
   6506     virtual HRESULT STDMETHODCALLTYPE AppendKnownCategory(
   6507         KNOWNDESTCATEGORY category) = 0;
   6508 
   6509     virtual HRESULT STDMETHODCALLTYPE AddUserTasks(
   6510         IObjectArray *poa) = 0;
   6511 
   6512     virtual HRESULT STDMETHODCALLTYPE CommitList(
   6513         ) = 0;
   6514 
   6515     virtual HRESULT STDMETHODCALLTYPE GetRemovedDestinations(
   6516         REFIID riid,
   6517         void **ppv) = 0;
   6518 
   6519     virtual HRESULT STDMETHODCALLTYPE DeleteList(
   6520         LPCWSTR pszAppID) = 0;
   6521 
   6522     virtual HRESULT STDMETHODCALLTYPE AbortList(
   6523         ) = 0;
   6524 
   6525 };
   6526 #else
   6527 typedef struct ICustomDestinationListVtbl {
   6528     BEGIN_INTERFACE
   6529 
   6530     /*** IUnknown methods ***/
   6531     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6532         ICustomDestinationList* This,
   6533         REFIID riid,
   6534         void **ppvObject);
   6535 
   6536     ULONG (STDMETHODCALLTYPE *AddRef)(
   6537         ICustomDestinationList* This);
   6538 
   6539     ULONG (STDMETHODCALLTYPE *Release)(
   6540         ICustomDestinationList* This);
   6541 
   6542     /*** ICustomDestinationList methods ***/
   6543     HRESULT (STDMETHODCALLTYPE *SetAppID)(
   6544         ICustomDestinationList* This,
   6545         LPCWSTR pszAppID);
   6546 
   6547     HRESULT (STDMETHODCALLTYPE *BeginList)(
   6548         ICustomDestinationList* This,
   6549         UINT *pcMinSlots,
   6550         REFIID riid,
   6551         void **ppv);
   6552 
   6553     HRESULT (STDMETHODCALLTYPE *AppendCategory)(
   6554         ICustomDestinationList* This,
   6555         LPCWSTR pszCategory,
   6556         IObjectArray *poa);
   6557 
   6558     HRESULT (STDMETHODCALLTYPE *AppendKnownCategory)(
   6559         ICustomDestinationList* This,
   6560         KNOWNDESTCATEGORY category);
   6561 
   6562     HRESULT (STDMETHODCALLTYPE *AddUserTasks)(
   6563         ICustomDestinationList* This,
   6564         IObjectArray *poa);
   6565 
   6566     HRESULT (STDMETHODCALLTYPE *CommitList)(
   6567         ICustomDestinationList* This);
   6568 
   6569     HRESULT (STDMETHODCALLTYPE *GetRemovedDestinations)(
   6570         ICustomDestinationList* This,
   6571         REFIID riid,
   6572         void **ppv);
   6573 
   6574     HRESULT (STDMETHODCALLTYPE *DeleteList)(
   6575         ICustomDestinationList* This,
   6576         LPCWSTR pszAppID);
   6577 
   6578     HRESULT (STDMETHODCALLTYPE *AbortList)(
   6579         ICustomDestinationList* This);
   6580 
   6581     END_INTERFACE
   6582 } ICustomDestinationListVtbl;
   6583 interface ICustomDestinationList {
   6584     CONST_VTBL ICustomDestinationListVtbl* lpVtbl;
   6585 };
   6586 
   6587 #ifdef COBJMACROS
   6588 /*** IUnknown methods ***/
   6589 #define ICustomDestinationList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6590 #define ICustomDestinationList_AddRef(This) (This)->lpVtbl->AddRef(This)
   6591 #define ICustomDestinationList_Release(This) (This)->lpVtbl->Release(This)
   6592 /*** ICustomDestinationList methods ***/
   6593 #define ICustomDestinationList_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
   6594 #define ICustomDestinationList_BeginList(This,pcMinSlots,riid,ppv) (This)->lpVtbl->BeginList(This,pcMinSlots,riid,ppv)
   6595 #define ICustomDestinationList_AppendCategory(This,pszCategory,poa) (This)->lpVtbl->AppendCategory(This,pszCategory,poa)
   6596 #define ICustomDestinationList_AppendKnownCategory(This,category) (This)->lpVtbl->AppendKnownCategory(This,category)
   6597 #define ICustomDestinationList_AddUserTasks(This,poa) (This)->lpVtbl->AddUserTasks(This,poa)
   6598 #define ICustomDestinationList_CommitList(This) (This)->lpVtbl->CommitList(This)
   6599 #define ICustomDestinationList_GetRemovedDestinations(This,riid,ppv) (This)->lpVtbl->GetRemovedDestinations(This,riid,ppv)
   6600 #define ICustomDestinationList_DeleteList(This,pszAppID) (This)->lpVtbl->DeleteList(This,pszAppID)
   6601 #define ICustomDestinationList_AbortList(This) (This)->lpVtbl->AbortList(This)
   6602 #endif
   6603 
   6604 #endif
   6605 #endif  /* __ICustomDestinationList_INTERFACE_DEFINED__ */
   6606 /*****************************************************************************
   6607  * IShellLibrary interface
   6608  */
   6609 #ifndef __IShellLibrary_INTERFACE_DEFINED__
   6610 #define __IShellLibrary_INTERFACE_DEFINED__
   6611 
   6612 typedef enum LIBRARYFOLDERFILTER {
   6613     LFF_FORCEFILESYSTEM = 1,
   6614     LFF_STORAGEITEMS = 2,
   6615     LFF_ALLITEMS = 3
   6616 } LIBRARYFOLDERFILTER;
   6617 typedef enum LIBRARYOPTIONFLAGS {
   6618     LOF_DEFAULT = 0x0,
   6619     LOF_PINNEDTONAVPANE = 0x1,
   6620     LOF_MASK_ALL = 0x1
   6621 } LIBRARYOPTIONFLAGS;
   6622 DEFINE_ENUM_FLAG_OPERATORS(LIBRARYOPTIONFLAGS)
   6623 typedef enum DEFAULTSAVEFOLDERTYPE {
   6624     DSFT_DETECT = 1,
   6625     DSFT_PRIVATE = 2,
   6626     DSFT_PUBLIC = 3
   6627 } DEFAULTSAVEFOLDERTYPE;
   6628 typedef enum LIBRARYSAVEFLAGS {
   6629     LSF_FAILIFTHERE = 0x0,
   6630     LSF_OVERRIDEEXISTING = 0x1,
   6631     LSF_MAKEUNIQUENAME = 0x2
   6632 } LIBRARYSAVEFLAGS;
   6633 DEFINE_ENUM_FLAG_OPERATORS(LIBRARYSAVEFLAGS)
   6634 DEFINE_GUID(IID_IShellLibrary, 0x11a66efa, 0x382e, 0x451a, 0x92,0x34, 0x1e,0x0e,0x12,0xef,0x30,0x85);
   6635 #if defined(__cplusplus) && !defined(CINTERFACE)
   6636 MIDL_INTERFACE("11a66efa-382e-451a-9234-1e0e12ef3085")
   6637 IShellLibrary : public IUnknown
   6638 {
   6639     virtual HRESULT STDMETHODCALLTYPE LoadLibraryFromItem(
   6640         IShellItem *psiLibrary,
   6641         DWORD grfMode) = 0;
   6642 
   6643     virtual HRESULT STDMETHODCALLTYPE LoadLibraryFromKnownFolder(
   6644         REFKNOWNFOLDERID kfidLibrary,
   6645         DWORD grfMode) = 0;
   6646 
   6647     virtual HRESULT STDMETHODCALLTYPE AddFolder(
   6648         IShellItem *psiLocation) = 0;
   6649 
   6650     virtual HRESULT STDMETHODCALLTYPE RemoveFolder(
   6651         IShellItem *psiLocation) = 0;
   6652 
   6653     virtual HRESULT STDMETHODCALLTYPE GetFolders(
   6654         LIBRARYFOLDERFILTER lff,
   6655         REFIID riid,
   6656         void **ppv) = 0;
   6657 
   6658     virtual HRESULT STDMETHODCALLTYPE ResolveFolder(
   6659         IShellItem *psiFolderToResolve,
   6660         DWORD dwTimeout,
   6661         REFIID riid,
   6662         void **ppv) = 0;
   6663 
   6664     virtual HRESULT STDMETHODCALLTYPE GetDefaultSaveFolder(
   6665         DEFAULTSAVEFOLDERTYPE dsft,
   6666         REFIID riid,
   6667         void **ppv) = 0;
   6668 
   6669     virtual HRESULT STDMETHODCALLTYPE SetDefaultSaveFolder(
   6670         DEFAULTSAVEFOLDERTYPE dsft,
   6671         IShellItem *psi) = 0;
   6672 
   6673     virtual HRESULT STDMETHODCALLTYPE GetOptions(
   6674         LIBRARYOPTIONFLAGS *plofOptions) = 0;
   6675 
   6676     virtual HRESULT STDMETHODCALLTYPE SetOptions(
   6677         LIBRARYOPTIONFLAGS lofMask,
   6678         LIBRARYOPTIONFLAGS lofOptions) = 0;
   6679 
   6680     virtual HRESULT STDMETHODCALLTYPE GetFolderType(
   6681         FOLDERTYPEID *pftid) = 0;
   6682 
   6683     virtual HRESULT STDMETHODCALLTYPE SetFolderType(
   6684         REFFOLDERTYPEID ftid) = 0;
   6685 
   6686     virtual HRESULT STDMETHODCALLTYPE GetIcon(
   6687         LPWSTR *ppszIcon) = 0;
   6688 
   6689     virtual HRESULT STDMETHODCALLTYPE SetIcon(
   6690         LPCWSTR pszIcon) = 0;
   6691 
   6692     virtual HRESULT STDMETHODCALLTYPE Commit(
   6693         ) = 0;
   6694 
   6695     virtual HRESULT STDMETHODCALLTYPE Save(
   6696         IShellItem *psiFolderToSaveIn,
   6697         LPCWSTR pszLibraryName,
   6698         LIBRARYSAVEFLAGS lsf,
   6699         IShellItem **ppsiSavedTo) = 0;
   6700 
   6701     virtual HRESULT STDMETHODCALLTYPE SaveInKnownFolder(
   6702         REFKNOWNFOLDERID kfidToSaveIn,
   6703         LPCWSTR pszLibraryName,
   6704         LIBRARYSAVEFLAGS lsf,
   6705         IShellItem **ppsiSavedTo) = 0;
   6706 
   6707 };
   6708 #ifdef __CRT_UUID_DECL
   6709 __CRT_UUID_DECL(IShellLibrary, 0x11a66efa, 0x382e, 0x451a, 0x92,0x34, 0x1e,0x0e,0x12,0xef,0x30,0x85)
   6710 #endif
   6711 #else
   6712 typedef struct IShellLibraryVtbl {
   6713     BEGIN_INTERFACE
   6714 
   6715     /*** IUnknown methods ***/
   6716     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6717         IShellLibrary* This,
   6718         REFIID riid,
   6719         void **ppvObject);
   6720 
   6721     ULONG (STDMETHODCALLTYPE *AddRef)(
   6722         IShellLibrary* This);
   6723 
   6724     ULONG (STDMETHODCALLTYPE *Release)(
   6725         IShellLibrary* This);
   6726 
   6727     /*** IShellLibrary methods ***/
   6728     HRESULT (STDMETHODCALLTYPE *LoadLibraryFromItem)(
   6729         IShellLibrary* This,
   6730         IShellItem *psiLibrary,
   6731         DWORD grfMode);
   6732 
   6733     HRESULT (STDMETHODCALLTYPE *LoadLibraryFromKnownFolder)(
   6734         IShellLibrary* This,
   6735         REFKNOWNFOLDERID kfidLibrary,
   6736         DWORD grfMode);
   6737 
   6738     HRESULT (STDMETHODCALLTYPE *AddFolder)(
   6739         IShellLibrary* This,
   6740         IShellItem *psiLocation);
   6741 
   6742     HRESULT (STDMETHODCALLTYPE *RemoveFolder)(
   6743         IShellLibrary* This,
   6744         IShellItem *psiLocation);
   6745 
   6746     HRESULT (STDMETHODCALLTYPE *GetFolders)(
   6747         IShellLibrary* This,
   6748         LIBRARYFOLDERFILTER lff,
   6749         REFIID riid,
   6750         void **ppv);
   6751 
   6752     HRESULT (STDMETHODCALLTYPE *ResolveFolder)(
   6753         IShellLibrary* This,
   6754         IShellItem *psiFolderToResolve,
   6755         DWORD dwTimeout,
   6756         REFIID riid,
   6757         void **ppv);
   6758 
   6759     HRESULT (STDMETHODCALLTYPE *GetDefaultSaveFolder)(
   6760         IShellLibrary* This,
   6761         DEFAULTSAVEFOLDERTYPE dsft,
   6762         REFIID riid,
   6763         void **ppv);
   6764 
   6765     HRESULT (STDMETHODCALLTYPE *SetDefaultSaveFolder)(
   6766         IShellLibrary* This,
   6767         DEFAULTSAVEFOLDERTYPE dsft,
   6768         IShellItem *psi);
   6769 
   6770     HRESULT (STDMETHODCALLTYPE *GetOptions)(
   6771         IShellLibrary* This,
   6772         LIBRARYOPTIONFLAGS *plofOptions);
   6773 
   6774     HRESULT (STDMETHODCALLTYPE *SetOptions)(
   6775         IShellLibrary* This,
   6776         LIBRARYOPTIONFLAGS lofMask,
   6777         LIBRARYOPTIONFLAGS lofOptions);
   6778 
   6779     HRESULT (STDMETHODCALLTYPE *GetFolderType)(
   6780         IShellLibrary* This,
   6781         FOLDERTYPEID *pftid);
   6782 
   6783     HRESULT (STDMETHODCALLTYPE *SetFolderType)(
   6784         IShellLibrary* This,
   6785         REFFOLDERTYPEID ftid);
   6786 
   6787     HRESULT (STDMETHODCALLTYPE *GetIcon)(
   6788         IShellLibrary* This,
   6789         LPWSTR *ppszIcon);
   6790 
   6791     HRESULT (STDMETHODCALLTYPE *SetIcon)(
   6792         IShellLibrary* This,
   6793         LPCWSTR pszIcon);
   6794 
   6795     HRESULT (STDMETHODCALLTYPE *Commit)(
   6796         IShellLibrary* This);
   6797 
   6798     HRESULT (STDMETHODCALLTYPE *Save)(
   6799         IShellLibrary* This,
   6800         IShellItem *psiFolderToSaveIn,
   6801         LPCWSTR pszLibraryName,
   6802         LIBRARYSAVEFLAGS lsf,
   6803         IShellItem **ppsiSavedTo);
   6804 
   6805     HRESULT (STDMETHODCALLTYPE *SaveInKnownFolder)(
   6806         IShellLibrary* This,
   6807         REFKNOWNFOLDERID kfidToSaveIn,
   6808         LPCWSTR pszLibraryName,
   6809         LIBRARYSAVEFLAGS lsf,
   6810         IShellItem **ppsiSavedTo);
   6811 
   6812     END_INTERFACE
   6813 } IShellLibraryVtbl;
   6814 interface IShellLibrary {
   6815     CONST_VTBL IShellLibraryVtbl* lpVtbl;
   6816 };
   6817 
   6818 #ifdef COBJMACROS
   6819 #ifndef WIDL_C_INLINE_WRAPPERS
   6820 /*** IUnknown methods ***/
   6821 #define IShellLibrary_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6822 #define IShellLibrary_AddRef(This) (This)->lpVtbl->AddRef(This)
   6823 #define IShellLibrary_Release(This) (This)->lpVtbl->Release(This)
   6824 /*** IShellLibrary methods ***/
   6825 #define IShellLibrary_LoadLibraryFromItem(This,psiLibrary,grfMode) (This)->lpVtbl->LoadLibraryFromItem(This,psiLibrary,grfMode)
   6826 #define IShellLibrary_LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode) (This)->lpVtbl->LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode)
   6827 #define IShellLibrary_AddFolder(This,psiLocation) (This)->lpVtbl->AddFolder(This,psiLocation)
   6828 #define IShellLibrary_RemoveFolder(This,psiLocation) (This)->lpVtbl->RemoveFolder(This,psiLocation)
   6829 #define IShellLibrary_GetFolders(This,lff,riid,ppv) (This)->lpVtbl->GetFolders(This,lff,riid,ppv)
   6830 #define IShellLibrary_ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv) (This)->lpVtbl->ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv)
   6831 #define IShellLibrary_GetDefaultSaveFolder(This,dsft,riid,ppv) (This)->lpVtbl->GetDefaultSaveFolder(This,dsft,riid,ppv)
   6832 #define IShellLibrary_SetDefaultSaveFolder(This,dsft,psi) (This)->lpVtbl->SetDefaultSaveFolder(This,dsft,psi)
   6833 #define IShellLibrary_GetOptions(This,plofOptions) (This)->lpVtbl->GetOptions(This,plofOptions)
   6834 #define IShellLibrary_SetOptions(This,lofMask,lofOptions) (This)->lpVtbl->SetOptions(This,lofMask,lofOptions)
   6835 #define IShellLibrary_GetFolderType(This,pftid) (This)->lpVtbl->GetFolderType(This,pftid)
   6836 #define IShellLibrary_SetFolderType(This,ftid) (This)->lpVtbl->SetFolderType(This,ftid)
   6837 #define IShellLibrary_GetIcon(This,ppszIcon) (This)->lpVtbl->GetIcon(This,ppszIcon)
   6838 #define IShellLibrary_SetIcon(This,pszIcon) (This)->lpVtbl->SetIcon(This,pszIcon)
   6839 #define IShellLibrary_Commit(This) (This)->lpVtbl->Commit(This)
   6840 #define IShellLibrary_Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo) (This)->lpVtbl->Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo)
   6841 #define IShellLibrary_SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo) (This)->lpVtbl->SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo)
   6842 #else
   6843 /*** IUnknown methods ***/
   6844 static FORCEINLINE HRESULT IShellLibrary_QueryInterface(IShellLibrary* This,REFIID riid,void **ppvObject) {
   6845     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6846 }
   6847 static FORCEINLINE ULONG IShellLibrary_AddRef(IShellLibrary* This) {
   6848     return This->lpVtbl->AddRef(This);
   6849 }
   6850 static FORCEINLINE ULONG IShellLibrary_Release(IShellLibrary* This) {
   6851     return This->lpVtbl->Release(This);
   6852 }
   6853 /*** IShellLibrary methods ***/
   6854 static FORCEINLINE HRESULT IShellLibrary_LoadLibraryFromItem(IShellLibrary* This,IShellItem *psiLibrary,DWORD grfMode) {
   6855     return This->lpVtbl->LoadLibraryFromItem(This,psiLibrary,grfMode);
   6856 }
   6857 static FORCEINLINE HRESULT IShellLibrary_LoadLibraryFromKnownFolder(IShellLibrary* This,REFKNOWNFOLDERID kfidLibrary,DWORD grfMode) {
   6858     return This->lpVtbl->LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode);
   6859 }
   6860 static FORCEINLINE HRESULT IShellLibrary_AddFolder(IShellLibrary* This,IShellItem *psiLocation) {
   6861     return This->lpVtbl->AddFolder(This,psiLocation);
   6862 }
   6863 static FORCEINLINE HRESULT IShellLibrary_RemoveFolder(IShellLibrary* This,IShellItem *psiLocation) {
   6864     return This->lpVtbl->RemoveFolder(This,psiLocation);
   6865 }
   6866 static FORCEINLINE HRESULT IShellLibrary_GetFolders(IShellLibrary* This,LIBRARYFOLDERFILTER lff,REFIID riid,void **ppv) {
   6867     return This->lpVtbl->GetFolders(This,lff,riid,ppv);
   6868 }
   6869 static FORCEINLINE HRESULT IShellLibrary_ResolveFolder(IShellLibrary* This,IShellItem *psiFolderToResolve,DWORD dwTimeout,REFIID riid,void **ppv) {
   6870     return This->lpVtbl->ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv);
   6871 }
   6872 static FORCEINLINE HRESULT IShellLibrary_GetDefaultSaveFolder(IShellLibrary* This,DEFAULTSAVEFOLDERTYPE dsft,REFIID riid,void **ppv) {
   6873     return This->lpVtbl->GetDefaultSaveFolder(This,dsft,riid,ppv);
   6874 }
   6875 static FORCEINLINE HRESULT IShellLibrary_SetDefaultSaveFolder(IShellLibrary* This,DEFAULTSAVEFOLDERTYPE dsft,IShellItem *psi) {
   6876     return This->lpVtbl->SetDefaultSaveFolder(This,dsft,psi);
   6877 }
   6878 static FORCEINLINE HRESULT IShellLibrary_GetOptions(IShellLibrary* This,LIBRARYOPTIONFLAGS *plofOptions) {
   6879     return This->lpVtbl->GetOptions(This,plofOptions);
   6880 }
   6881 static FORCEINLINE HRESULT IShellLibrary_SetOptions(IShellLibrary* This,LIBRARYOPTIONFLAGS lofMask,LIBRARYOPTIONFLAGS lofOptions) {
   6882     return This->lpVtbl->SetOptions(This,lofMask,lofOptions);
   6883 }
   6884 static FORCEINLINE HRESULT IShellLibrary_GetFolderType(IShellLibrary* This,FOLDERTYPEID *pftid) {
   6885     return This->lpVtbl->GetFolderType(This,pftid);
   6886 }
   6887 static FORCEINLINE HRESULT IShellLibrary_SetFolderType(IShellLibrary* This,REFFOLDERTYPEID ftid) {
   6888     return This->lpVtbl->SetFolderType(This,ftid);
   6889 }
   6890 static FORCEINLINE HRESULT IShellLibrary_GetIcon(IShellLibrary* This,LPWSTR *ppszIcon) {
   6891     return This->lpVtbl->GetIcon(This,ppszIcon);
   6892 }
   6893 static FORCEINLINE HRESULT IShellLibrary_SetIcon(IShellLibrary* This,LPCWSTR pszIcon) {
   6894     return This->lpVtbl->SetIcon(This,pszIcon);
   6895 }
   6896 static FORCEINLINE HRESULT IShellLibrary_Commit(IShellLibrary* This) {
   6897     return This->lpVtbl->Commit(This);
   6898 }
   6899 static FORCEINLINE HRESULT IShellLibrary_Save(IShellLibrary* This,IShellItem *psiFolderToSaveIn,LPCWSTR pszLibraryName,LIBRARYSAVEFLAGS lsf,IShellItem **ppsiSavedTo) {
   6900     return This->lpVtbl->Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo);
   6901 }
   6902 static FORCEINLINE HRESULT IShellLibrary_SaveInKnownFolder(IShellLibrary* This,REFKNOWNFOLDERID kfidToSaveIn,LPCWSTR pszLibraryName,LIBRARYSAVEFLAGS lsf,IShellItem **ppsiSavedTo) {
   6903     return This->lpVtbl->SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo);
   6904 }
   6905 #endif
   6906 #endif
   6907 
   6908 #endif
   6909 
   6910 HRESULT STDMETHODCALLTYPE IShellLibrary_LoadLibraryFromItem_Proxy(
   6911     IShellLibrary* This,
   6912     IShellItem *psiLibrary,
   6913     DWORD grfMode);
   6914 void __RPC_STUB IShellLibrary_LoadLibraryFromItem_Stub(
   6915     IRpcStubBuffer* This,
   6916     IRpcChannelBuffer* pRpcChannelBuffer,
   6917     PRPC_MESSAGE pRpcMessage,
   6918     DWORD* pdwStubPhase);
   6919 HRESULT STDMETHODCALLTYPE IShellLibrary_LoadLibraryFromKnownFolder_Proxy(
   6920     IShellLibrary* This,
   6921     REFKNOWNFOLDERID kfidLibrary,
   6922     DWORD grfMode);
   6923 void __RPC_STUB IShellLibrary_LoadLibraryFromKnownFolder_Stub(
   6924     IRpcStubBuffer* This,
   6925     IRpcChannelBuffer* pRpcChannelBuffer,
   6926     PRPC_MESSAGE pRpcMessage,
   6927     DWORD* pdwStubPhase);
   6928 HRESULT STDMETHODCALLTYPE IShellLibrary_AddFolder_Proxy(
   6929     IShellLibrary* This,
   6930     IShellItem *psiLocation);
   6931 void __RPC_STUB IShellLibrary_AddFolder_Stub(
   6932     IRpcStubBuffer* This,
   6933     IRpcChannelBuffer* pRpcChannelBuffer,
   6934     PRPC_MESSAGE pRpcMessage,
   6935     DWORD* pdwStubPhase);
   6936 HRESULT STDMETHODCALLTYPE IShellLibrary_RemoveFolder_Proxy(
   6937     IShellLibrary* This,
   6938     IShellItem *psiLocation);
   6939 void __RPC_STUB IShellLibrary_RemoveFolder_Stub(
   6940     IRpcStubBuffer* This,
   6941     IRpcChannelBuffer* pRpcChannelBuffer,
   6942     PRPC_MESSAGE pRpcMessage,
   6943     DWORD* pdwStubPhase);
   6944 HRESULT STDMETHODCALLTYPE IShellLibrary_GetFolders_Proxy(
   6945     IShellLibrary* This,
   6946     LIBRARYFOLDERFILTER lff,
   6947     REFIID riid,
   6948     void **ppv);
   6949 void __RPC_STUB IShellLibrary_GetFolders_Stub(
   6950     IRpcStubBuffer* This,
   6951     IRpcChannelBuffer* pRpcChannelBuffer,
   6952     PRPC_MESSAGE pRpcMessage,
   6953     DWORD* pdwStubPhase);
   6954 HRESULT STDMETHODCALLTYPE IShellLibrary_ResolveFolder_Proxy(
   6955     IShellLibrary* This,
   6956     IShellItem *psiFolderToResolve,
   6957     DWORD dwTimeout,
   6958     REFIID riid,
   6959     void **ppv);
   6960 void __RPC_STUB IShellLibrary_ResolveFolder_Stub(
   6961     IRpcStubBuffer* This,
   6962     IRpcChannelBuffer* pRpcChannelBuffer,
   6963     PRPC_MESSAGE pRpcMessage,
   6964     DWORD* pdwStubPhase);
   6965 HRESULT STDMETHODCALLTYPE IShellLibrary_GetDefaultSaveFolder_Proxy(
   6966     IShellLibrary* This,
   6967     DEFAULTSAVEFOLDERTYPE dsft,
   6968     REFIID riid,
   6969     void **ppv);
   6970 void __RPC_STUB IShellLibrary_GetDefaultSaveFolder_Stub(
   6971     IRpcStubBuffer* This,
   6972     IRpcChannelBuffer* pRpcChannelBuffer,
   6973     PRPC_MESSAGE pRpcMessage,
   6974     DWORD* pdwStubPhase);
   6975 HRESULT STDMETHODCALLTYPE IShellLibrary_SetDefaultSaveFolder_Proxy(
   6976     IShellLibrary* This,
   6977     DEFAULTSAVEFOLDERTYPE dsft,
   6978     IShellItem *psi);
   6979 void __RPC_STUB IShellLibrary_SetDefaultSaveFolder_Stub(
   6980     IRpcStubBuffer* This,
   6981     IRpcChannelBuffer* pRpcChannelBuffer,
   6982     PRPC_MESSAGE pRpcMessage,
   6983     DWORD* pdwStubPhase);
   6984 HRESULT STDMETHODCALLTYPE IShellLibrary_GetOptions_Proxy(
   6985     IShellLibrary* This,
   6986     LIBRARYOPTIONFLAGS *plofOptions);
   6987 void __RPC_STUB IShellLibrary_GetOptions_Stub(
   6988     IRpcStubBuffer* This,
   6989     IRpcChannelBuffer* pRpcChannelBuffer,
   6990     PRPC_MESSAGE pRpcMessage,
   6991     DWORD* pdwStubPhase);
   6992 HRESULT STDMETHODCALLTYPE IShellLibrary_SetOptions_Proxy(
   6993     IShellLibrary* This,
   6994     LIBRARYOPTIONFLAGS lofMask,
   6995     LIBRARYOPTIONFLAGS lofOptions);
   6996 void __RPC_STUB IShellLibrary_SetOptions_Stub(
   6997     IRpcStubBuffer* This,
   6998     IRpcChannelBuffer* pRpcChannelBuffer,
   6999     PRPC_MESSAGE pRpcMessage,
   7000     DWORD* pdwStubPhase);
   7001 HRESULT STDMETHODCALLTYPE IShellLibrary_GetFolderType_Proxy(
   7002     IShellLibrary* This,
   7003     FOLDERTYPEID *pftid);
   7004 void __RPC_STUB IShellLibrary_GetFolderType_Stub(
   7005     IRpcStubBuffer* This,
   7006     IRpcChannelBuffer* pRpcChannelBuffer,
   7007     PRPC_MESSAGE pRpcMessage,
   7008     DWORD* pdwStubPhase);
   7009 HRESULT STDMETHODCALLTYPE IShellLibrary_SetFolderType_Proxy(
   7010     IShellLibrary* This,
   7011     REFFOLDERTYPEID ftid);
   7012 void __RPC_STUB IShellLibrary_SetFolderType_Stub(
   7013     IRpcStubBuffer* This,
   7014     IRpcChannelBuffer* pRpcChannelBuffer,
   7015     PRPC_MESSAGE pRpcMessage,
   7016     DWORD* pdwStubPhase);
   7017 HRESULT STDMETHODCALLTYPE IShellLibrary_GetIcon_Proxy(
   7018     IShellLibrary* This,
   7019     LPWSTR *ppszIcon);
   7020 void __RPC_STUB IShellLibrary_GetIcon_Stub(
   7021     IRpcStubBuffer* This,
   7022     IRpcChannelBuffer* pRpcChannelBuffer,
   7023     PRPC_MESSAGE pRpcMessage,
   7024     DWORD* pdwStubPhase);
   7025 HRESULT STDMETHODCALLTYPE IShellLibrary_SetIcon_Proxy(
   7026     IShellLibrary* This,
   7027     LPCWSTR pszIcon);
   7028 void __RPC_STUB IShellLibrary_SetIcon_Stub(
   7029     IRpcStubBuffer* This,
   7030     IRpcChannelBuffer* pRpcChannelBuffer,
   7031     PRPC_MESSAGE pRpcMessage,
   7032     DWORD* pdwStubPhase);
   7033 HRESULT STDMETHODCALLTYPE IShellLibrary_Commit_Proxy(
   7034     IShellLibrary* This);
   7035 void __RPC_STUB IShellLibrary_Commit_Stub(
   7036     IRpcStubBuffer* This,
   7037     IRpcChannelBuffer* pRpcChannelBuffer,
   7038     PRPC_MESSAGE pRpcMessage,
   7039     DWORD* pdwStubPhase);
   7040 HRESULT STDMETHODCALLTYPE IShellLibrary_Save_Proxy(
   7041     IShellLibrary* This,
   7042     IShellItem *psiFolderToSaveIn,
   7043     LPCWSTR pszLibraryName,
   7044     LIBRARYSAVEFLAGS lsf,
   7045     IShellItem **ppsiSavedTo);
   7046 void __RPC_STUB IShellLibrary_Save_Stub(
   7047     IRpcStubBuffer* This,
   7048     IRpcChannelBuffer* pRpcChannelBuffer,
   7049     PRPC_MESSAGE pRpcMessage,
   7050     DWORD* pdwStubPhase);
   7051 HRESULT STDMETHODCALLTYPE IShellLibrary_SaveInKnownFolder_Proxy(
   7052     IShellLibrary* This,
   7053     REFKNOWNFOLDERID kfidToSaveIn,
   7054     LPCWSTR pszLibraryName,
   7055     LIBRARYSAVEFLAGS lsf,
   7056     IShellItem **ppsiSavedTo);
   7057 void __RPC_STUB IShellLibrary_SaveInKnownFolder_Stub(
   7058     IRpcStubBuffer* This,
   7059     IRpcChannelBuffer* pRpcChannelBuffer,
   7060     PRPC_MESSAGE pRpcMessage,
   7061     DWORD* pdwStubPhase);
   7062 
   7063 #endif  /* __IShellLibrary_INTERFACE_DEFINED__ */
   7064 
   7065 
   7066 DEFINE_GUID(LIBID_ShellObjects, 0x50a7e9b1, 0x70ef, 0x11d1, 0xb7,0x5a, 0x00,0xa0,0xc9,0x05,0x64,0xfe);
   7067 
   7068 /*****************************************************************************
   7069  * ShellLibrary coclass
   7070  */
   7071 
   7072 DEFINE_GUID(CLSID_ShellLibrary, 0xd9b3211d, 0xe57f, 0x4426, 0xaa,0xef, 0x30,0xa8,0x06,0xad,0xd3,0x97);
   7073 
   7074 #ifdef __cplusplus
   7075 class DECLSPEC_UUID("d9b3211d-e57f-4426-aaef-30a806add397") ShellLibrary;
   7076 #ifdef __CRT_UUID_DECL
   7077 __CRT_UUID_DECL(ShellLibrary, 0xd9b3211d, 0xe57f, 0x4426, 0xaa,0xef, 0x30,0xa8,0x06,0xad,0xd3,0x97)
   7078 #endif
   7079 #endif
   7080 
   7081 #define SID_PublishingWizard CLSID_PublishingWizard
   7082   EXTERN_C const CLSID CLSID_QueryCancelAutoPlay;
   7083 #ifdef __cplusplus
   7084   class QueryCancelAutoPlay;
   7085 #endif
   7086   EXTERN_C const CLSID CLSID_DriveSizeCategorizer;
   7087 #ifdef __cplusplus
   7088   class DriveSizeCategorizer;
   7089 #endif
   7090   EXTERN_C const CLSID CLSID_DriveTypeCategorizer;
   7091 #ifdef __cplusplus
   7092   class DriveTypeCategorizer;
   7093 #endif
   7094   EXTERN_C const CLSID CLSID_FreeSpaceCategorizer;
   7095 #ifdef __cplusplus
   7096   class FreeSpaceCategorizer;
   7097 #endif
   7098   EXTERN_C const CLSID CLSID_TimeCategorizer;
   7099 #ifdef __cplusplus
   7100   class TimeCategorizer;
   7101 #endif
   7102   EXTERN_C const CLSID CLSID_SizeCategorizer;
   7103 #ifdef __cplusplus
   7104   class SizeCategorizer;
   7105 #endif
   7106   EXTERN_C const CLSID CLSID_AlphabeticalCategorizer;
   7107 #ifdef __cplusplus
   7108   class AlphabeticalCategorizer;
   7109 #endif
   7110   EXTERN_C const CLSID CLSID_MergedCategorizer;
   7111 #ifdef __cplusplus
   7112   class MergedCategorizer;
   7113 #endif
   7114   EXTERN_C const CLSID CLSID_ImageProperties;
   7115 #ifdef __cplusplus
   7116   class ImageProperties;
   7117 #endif
   7118   EXTERN_C const CLSID CLSID_PropertiesUI;
   7119 #ifdef __cplusplus
   7120   class PropertiesUI;
   7121 #endif
   7122   EXTERN_C const CLSID CLSID_UserNotification;
   7123 #ifdef __cplusplus
   7124   class UserNotification;
   7125 #endif
   7126   EXTERN_C const CLSID CLSID_UserEventTimerCallback;
   7127 #ifdef __cplusplus
   7128   class UserEventTimerCallback;
   7129 #endif
   7130   EXTERN_C const CLSID CLSID_UserEventTimer;
   7131 #ifdef __cplusplus
   7132   class UserEventTimer;
   7133 #endif
   7134   EXTERN_C const CLSID CLSID_NetCrawler;
   7135 #ifdef __cplusplus
   7136   class NetCrawler;
   7137 #endif
   7138   EXTERN_C const CLSID CLSID_CDBurn;
   7139 #ifdef __cplusplus
   7140   class CDBurn;
   7141 #endif
   7142   EXTERN_C const CLSID CLSID_TaskbarList;
   7143 #ifdef __cplusplus
   7144   class TaskbarList;
   7145 #endif
   7146   EXTERN_C const CLSID CLSID_ApplicationAssociationRegistrationUI;
   7147 #ifdef __cplusplus
   7148   class ApplicationAssociationRegistrationUI;
   7149 #endif
   7150   EXTERN_C const CLSID CLSID_WebWizardHost;
   7151 #ifdef __cplusplus
   7152   class WebWizardHost;
   7153 #endif
   7154   EXTERN_C const CLSID CLSID_PublishDropTarget;
   7155 #ifdef __cplusplus
   7156   class PublishDropTarget;
   7157 #endif
   7158   EXTERN_C const CLSID CLSID_PublishingWizard;
   7159 #ifdef __cplusplus
   7160   class PublishingWizard;
   7161 #endif
   7162   EXTERN_C const CLSID CLSID_InternetPrintOrdering;
   7163 #ifdef __cplusplus
   7164   class InternetPrintOrdering;
   7165 #endif
   7166   EXTERN_C const CLSID CLSID_FolderViewHost;
   7167 #ifdef __cplusplus
   7168   class FolderViewHost;
   7169 #endif
   7170   EXTERN_C const CLSID CLSID_NamespaceWalker;
   7171 #ifdef __cplusplus
   7172   class NamespaceWalker;
   7173 #endif
   7174   EXTERN_C const CLSID CLSID_ImageRecompress;
   7175 #ifdef __cplusplus
   7176   class ImageRecompress;
   7177 #endif
   7178   EXTERN_C const CLSID CLSID_TrayBandSiteService;
   7179 #ifdef __cplusplus
   7180   class TrayBandSiteService;
   7181 #endif
   7182   EXTERN_C const CLSID CLSID_PassportWizard;
   7183 #ifdef __cplusplus
   7184   class PassportWizard;
   7185 #endif
   7186 DEFINE_GUID(CLSID_AttachmentServices, 0x4125dd96,0xe03a,0x4103,0x8f,0x70,0xe0,0x59,0x7d,0x80,0x3b,0x9c);
   7187 #ifdef __cplusplus
   7188   class AttachmentServices;
   7189 #endif
   7190 
   7191 /*****************************************************************************
   7192  * ApplicationAssociationRegistration coclass
   7193  */
   7194 
   7195 DEFINE_GUID(CLSID_ApplicationAssociationRegistration, 0x591209c7, 0x767b, 0x42b2, 0x9f,0xba, 0x44,0xee,0x46,0x15,0xf2,0xc7);
   7196 
   7197 /*****************************************************************************
   7198  * ShellLink coclass
   7199  */
   7200 
   7201 DEFINE_GUID(CLSID_ShellLink, 0x00021401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
   7202 
   7203 /*****************************************************************************
   7204  * TaskbarList coclass
   7205  */
   7206 
   7207 DEFINE_GUID(CLSID_TaskbarList, 0x56fdf344, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90);
   7208 
   7209 /*****************************************************************************
   7210  * ApplicationAssociationRegistrationUI coclass
   7211  */
   7212 
   7213 DEFINE_GUID(CLSID_ApplicationAssociationRegistrationUI, 0x1968106d, 0xf3b5, 0x44cf, 0x89,0x0e, 0x11,0x6f,0xcb,0x9e,0xce,0xf1);
   7214 
   7215 /*****************************************************************************
   7216  * DestinationList coclass
   7217  */
   7218 
   7219 DEFINE_GUID(CLSID_DestinationList, 0x77f10cf0, 0x3db5, 0x4966, 0xb5,0x20, 0xb7,0xc5,0x4f,0xd3,0x5e,0xd6);
   7220 
   7221 /*****************************************************************************
   7222  * EnumerableObjectCollection coclass
   7223  */
   7224 
   7225 DEFINE_GUID(CLSID_EnumerableObjectCollection, 0x2d3468c1, 0x36a7, 0x43b6, 0xac,0x24, 0xd3,0xf0,0x2f,0xd9,0x60,0x7a);
   7226 
   7227 /*****************************************************************************
   7228  * FileOpenDialog coclass
   7229  */
   7230 
   7231 DEFINE_GUID(CLSID_FileOpenDialog, 0xdc1c5a9c, 0xe88a, 0x4dde, 0xa5,0xa1, 0x60,0xf8,0x2a,0x20,0xae,0xf7);
   7232 
   7233 /*****************************************************************************
   7234  * FileSaveDialog coclass
   7235  */
   7236 
   7237 DEFINE_GUID(CLSID_FileSaveDialog, 0xc0b4e2f3, 0xba21, 0x4773, 0x8d,0xba, 0x33,0x5e,0xc9,0x46,0xeb,0x8b);
   7238   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0263_v0_0_c_ifspec;
   7239   extern RPC_IF_HANDLE __MIDL_itf_shobjidl_0263_v0_0_s_ifspec;
   7240 
   7241   ULONG __RPC_API BSTR_UserSize(ULONG *,ULONG,BSTR *);
   7242   unsigned char *__RPC_API BSTR_UserMarshal(ULONG *,unsigned char *,BSTR *);
   7243   unsigned char *__RPC_API BSTR_UserUnmarshal(ULONG *,unsigned char *,BSTR *);
   7244   void __RPC_API BSTR_UserFree(ULONG *,BSTR *);
   7245   ULONG __RPC_API HBITMAP_UserSize(ULONG *,ULONG,HBITMAP *);
   7246   unsigned char *__RPC_API HBITMAP_UserMarshal(ULONG *,unsigned char *,HBITMAP *);
   7247   unsigned char *__RPC_API HBITMAP_UserUnmarshal(ULONG *,unsigned char *,HBITMAP *);
   7248   void __RPC_API HBITMAP_UserFree(ULONG *,HBITMAP *);
   7249   ULONG __RPC_API HGLOBAL_UserSize(ULONG *,ULONG,HGLOBAL *);
   7250   unsigned char *__RPC_API HGLOBAL_UserMarshal(ULONG *,unsigned char *,HGLOBAL *);
   7251   unsigned char *__RPC_API HGLOBAL_UserUnmarshal(ULONG *,unsigned char *,HGLOBAL *);
   7252   void __RPC_API HGLOBAL_UserFree(ULONG *,HGLOBAL *);
   7253   ULONG __RPC_API HICON_UserSize(ULONG *,ULONG,HICON *);
   7254   unsigned char *__RPC_API HICON_UserMarshal(ULONG *,unsigned char *,HICON *);
   7255   unsigned char *__RPC_API HICON_UserUnmarshal(ULONG *,unsigned char *,HICON *);
   7256   void __RPC_API HICON_UserFree(ULONG *,HICON *);
   7257   ULONG __RPC_API HMENU_UserSize(ULONG *,ULONG,HMENU *);
   7258   unsigned char *__RPC_API HMENU_UserMarshal(ULONG *,unsigned char *,HMENU *);
   7259   unsigned char *__RPC_API HMENU_UserUnmarshal(ULONG *,unsigned char *,HMENU *);
   7260   void __RPC_API HMENU_UserFree(ULONG *,HMENU *);
   7261   ULONG __RPC_API HWND_UserSize(ULONG *,ULONG,HWND *);
   7262   unsigned char *__RPC_API HWND_UserMarshal(ULONG *,unsigned char *,HWND *);
   7263   unsigned char *__RPC_API HWND_UserUnmarshal(ULONG *,unsigned char *,HWND *);
   7264   void __RPC_API HWND_UserFree(ULONG *,HWND *);
   7265   ULONG __RPC_API LPCITEMIDLIST_UserSize(ULONG *,ULONG,LPCITEMIDLIST *);
   7266   unsigned char *__RPC_API LPCITEMIDLIST_UserMarshal(ULONG *,unsigned char *,LPCITEMIDLIST *);
   7267   unsigned char *__RPC_API LPCITEMIDLIST_UserUnmarshal(ULONG *,unsigned char *,LPCITEMIDLIST *);
   7268   void __RPC_API LPCITEMIDLIST_UserFree(ULONG *,LPCITEMIDLIST *);
   7269   ULONG __RPC_API LPITEMIDLIST_UserSize(ULONG *,ULONG,LPITEMIDLIST *);
   7270   unsigned char *__RPC_API LPITEMIDLIST_UserMarshal(ULONG *,unsigned char *,LPITEMIDLIST *);
   7271   unsigned char *__RPC_API LPITEMIDLIST_UserUnmarshal(ULONG *,unsigned char *,LPITEMIDLIST *);
   7272   void __RPC_API LPITEMIDLIST_UserFree(ULONG *,LPITEMIDLIST *);
   7273   ULONG __RPC_API LPSAFEARRAY_UserSize(ULONG *,ULONG,LPSAFEARRAY *);
   7274   unsigned char *__RPC_API LPSAFEARRAY_UserMarshal(ULONG *,unsigned char *,LPSAFEARRAY *);
   7275   unsigned char *__RPC_API LPSAFEARRAY_UserUnmarshal(ULONG *,unsigned char *,LPSAFEARRAY *);
   7276   void __RPC_API LPSAFEARRAY_UserFree(ULONG *,LPSAFEARRAY *);
   7277   ULONG __RPC_API VARIANT_UserSize(ULONG *,ULONG,VARIANT *);
   7278   unsigned char *__RPC_API VARIANT_UserMarshal(ULONG *,unsigned char *,VARIANT *);
   7279   unsigned char *__RPC_API VARIANT_UserUnmarshal(ULONG *,unsigned char *,VARIANT *);
   7280   void __RPC_API VARIANT_UserFree(ULONG *,VARIANT *);
   7281 /* Begin additional prototypes for all interfaces */
   7282 
   7283 
   7284 /* End additional prototypes */
   7285 
   7286 #ifdef __cplusplus
   7287 }
   7288 #endif
   7289 
   7290 #endif /* __shobjidl_h__ */
   7291