Home | History | Annotate | Download | only in include
      1 /*** Autogenerated by WIDL 1.5.29 from /tmp/build-mingw64-toolchain-digit/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);