master
    1/*** Autogenerated by WIDL 10.4 from include/shobjidl.idl - Do not edit ***/
    2
    3#ifdef _WIN32
    4#ifndef __REQUIRED_RPCNDR_H_VERSION__
    5#define __REQUIRED_RPCNDR_H_VERSION__ 475
    6#endif
    7#include <rpc.h>
    8#include <rpcndr.h>
    9#endif
   10
   11#ifndef COM_NO_WINDOWS_H
   12#include <windows.h>
   13#include <ole2.h>
   14#endif
   15
   16#ifndef __shobjidl_h__
   17#define __shobjidl_h__
   18
   19/* Forward declarations */
   20
   21#ifndef __IContextMenu_FWD_DEFINED__
   22#define __IContextMenu_FWD_DEFINED__
   23typedef interface IContextMenu IContextMenu;
   24#ifdef __cplusplus
   25interface IContextMenu;
   26#endif /* __cplusplus */
   27#endif
   28
   29#ifndef __IContextMenu2_FWD_DEFINED__
   30#define __IContextMenu2_FWD_DEFINED__
   31typedef interface IContextMenu2 IContextMenu2;
   32#ifdef __cplusplus
   33interface IContextMenu2;
   34#endif /* __cplusplus */
   35#endif
   36
   37#ifndef __IContextMenu3_FWD_DEFINED__
   38#define __IContextMenu3_FWD_DEFINED__
   39typedef interface IContextMenu3 IContextMenu3;
   40#ifdef __cplusplus
   41interface IContextMenu3;
   42#endif /* __cplusplus */
   43#endif
   44
   45#ifndef __IExecuteCommand_FWD_DEFINED__
   46#define __IExecuteCommand_FWD_DEFINED__
   47typedef interface IExecuteCommand IExecuteCommand;
   48#ifdef __cplusplus
   49interface IExecuteCommand;
   50#endif /* __cplusplus */
   51#endif
   52
   53#ifndef __IPersistFolder_FWD_DEFINED__
   54#define __IPersistFolder_FWD_DEFINED__
   55typedef interface IPersistFolder IPersistFolder;
   56#ifdef __cplusplus
   57interface IPersistFolder;
   58#endif /* __cplusplus */
   59#endif
   60
   61#ifndef __IRunnableTask_FWD_DEFINED__
   62#define __IRunnableTask_FWD_DEFINED__
   63typedef interface IRunnableTask IRunnableTask;
   64#ifdef __cplusplus
   65interface IRunnableTask;
   66#endif /* __cplusplus */
   67#endif
   68
   69#ifndef __IShellTaskScheduler_FWD_DEFINED__
   70#define __IShellTaskScheduler_FWD_DEFINED__
   71typedef interface IShellTaskScheduler IShellTaskScheduler;
   72#ifdef __cplusplus
   73interface IShellTaskScheduler;
   74#endif /* __cplusplus */
   75#endif
   76
   77#ifndef __IQueryCodePage_FWD_DEFINED__
   78#define __IQueryCodePage_FWD_DEFINED__
   79typedef interface IQueryCodePage IQueryCodePage;
   80#ifdef __cplusplus
   81interface IQueryCodePage;
   82#endif /* __cplusplus */
   83#endif
   84
   85#ifndef __IPersistFolder2_FWD_DEFINED__
   86#define __IPersistFolder2_FWD_DEFINED__
   87typedef interface IPersistFolder2 IPersistFolder2;
   88#ifdef __cplusplus
   89interface IPersistFolder2;
   90#endif /* __cplusplus */
   91#endif
   92
   93#ifndef __IPersistFolder3_FWD_DEFINED__
   94#define __IPersistFolder3_FWD_DEFINED__
   95typedef interface IPersistFolder3 IPersistFolder3;
   96#ifdef __cplusplus
   97interface IPersistFolder3;
   98#endif /* __cplusplus */
   99#endif
  100
  101#ifndef __IPersistIDList_FWD_DEFINED__
  102#define __IPersistIDList_FWD_DEFINED__
  103typedef interface IPersistIDList IPersistIDList;
  104#ifdef __cplusplus
  105interface IPersistIDList;
  106#endif /* __cplusplus */
  107#endif
  108
  109#ifndef __IEnumIDList_FWD_DEFINED__
  110#define __IEnumIDList_FWD_DEFINED__
  111typedef interface IEnumIDList IEnumIDList;
  112#ifdef __cplusplus
  113interface IEnumIDList;
  114#endif /* __cplusplus */
  115#endif
  116
  117#ifndef __IEnumFullIDList_FWD_DEFINED__
  118#define __IEnumFullIDList_FWD_DEFINED__
  119typedef interface IEnumFullIDList IEnumFullIDList;
  120#ifdef __cplusplus
  121interface IEnumFullIDList;
  122#endif /* __cplusplus */
  123#endif
  124
  125#ifndef __IObjectWithFolderEnumMode_FWD_DEFINED__
  126#define __IObjectWithFolderEnumMode_FWD_DEFINED__
  127typedef interface IObjectWithFolderEnumMode IObjectWithFolderEnumMode;
  128#ifdef __cplusplus
  129interface IObjectWithFolderEnumMode;
  130#endif /* __cplusplus */
  131#endif
  132
  133#ifndef __IParseAndCreateItem_FWD_DEFINED__
  134#define __IParseAndCreateItem_FWD_DEFINED__
  135typedef interface IParseAndCreateItem IParseAndCreateItem;
  136#ifdef __cplusplus
  137interface IParseAndCreateItem;
  138#endif /* __cplusplus */
  139#endif
  140
  141#ifndef __IShellFolder_FWD_DEFINED__
  142#define __IShellFolder_FWD_DEFINED__
  143typedef interface IShellFolder IShellFolder;
  144#ifdef __cplusplus
  145interface IShellFolder;
  146#endif /* __cplusplus */
  147#endif
  148
  149#ifndef __IEnumExtraSearch_FWD_DEFINED__
  150#define __IEnumExtraSearch_FWD_DEFINED__
  151typedef interface IEnumExtraSearch IEnumExtraSearch;
  152#ifdef __cplusplus
  153interface IEnumExtraSearch;
  154#endif /* __cplusplus */
  155#endif
  156
  157#ifndef __IShellFolder2_FWD_DEFINED__
  158#define __IShellFolder2_FWD_DEFINED__
  159typedef interface IShellFolder2 IShellFolder2;
  160#ifdef __cplusplus
  161interface IShellFolder2;
  162#endif /* __cplusplus */
  163#endif
  164
  165#ifndef __IFolderViewOptions_FWD_DEFINED__
  166#define __IFolderViewOptions_FWD_DEFINED__
  167typedef interface IFolderViewOptions IFolderViewOptions;
  168#ifdef __cplusplus
  169interface IFolderViewOptions;
  170#endif /* __cplusplus */
  171#endif
  172
  173#ifndef __IShellView_FWD_DEFINED__
  174#define __IShellView_FWD_DEFINED__
  175typedef interface IShellView IShellView;
  176#ifdef __cplusplus
  177interface IShellView;
  178#endif /* __cplusplus */
  179#endif
  180
  181#ifndef __IShellView2_FWD_DEFINED__
  182#define __IShellView2_FWD_DEFINED__
  183typedef interface IShellView2 IShellView2;
  184#ifdef __cplusplus
  185interface IShellView2;
  186#endif /* __cplusplus */
  187#endif
  188
  189#ifndef __IShellView3_FWD_DEFINED__
  190#define __IShellView3_FWD_DEFINED__
  191typedef interface IShellView3 IShellView3;
  192#ifdef __cplusplus
  193interface IShellView3;
  194#endif /* __cplusplus */
  195#endif
  196
  197#ifndef __IFolderView_FWD_DEFINED__
  198#define __IFolderView_FWD_DEFINED__
  199typedef interface IFolderView IFolderView;
  200#ifdef __cplusplus
  201interface IFolderView;
  202#endif /* __cplusplus */
  203#endif
  204
  205#ifndef __ISearchBoxInfo_FWD_DEFINED__
  206#define __ISearchBoxInfo_FWD_DEFINED__
  207typedef interface ISearchBoxInfo ISearchBoxInfo;
  208#ifdef __cplusplus
  209interface ISearchBoxInfo;
  210#endif /* __cplusplus */
  211#endif
  212
  213#ifndef __IFolderView2_FWD_DEFINED__
  214#define __IFolderView2_FWD_DEFINED__
  215typedef interface IFolderView2 IFolderView2;
  216#ifdef __cplusplus
  217interface IFolderView2;
  218#endif /* __cplusplus */
  219#endif
  220
  221#ifndef __IFolderViewSettings_FWD_DEFINED__
  222#define __IFolderViewSettings_FWD_DEFINED__
  223typedef interface IFolderViewSettings IFolderViewSettings;
  224#ifdef __cplusplus
  225interface IFolderViewSettings;
  226#endif /* __cplusplus */
  227#endif
  228
  229#ifndef __IPreviewHandlerVisuals_FWD_DEFINED__
  230#define __IPreviewHandlerVisuals_FWD_DEFINED__
  231typedef interface IPreviewHandlerVisuals IPreviewHandlerVisuals;
  232#ifdef __cplusplus
  233interface IPreviewHandlerVisuals;
  234#endif /* __cplusplus */
  235#endif
  236
  237#ifndef __IVisualProperties_FWD_DEFINED__
  238#define __IVisualProperties_FWD_DEFINED__
  239typedef interface IVisualProperties IVisualProperties;
  240#ifdef __cplusplus
  241interface IVisualProperties;
  242#endif /* __cplusplus */
  243#endif
  244
  245#ifndef __ICommDlgBrowser_FWD_DEFINED__
  246#define __ICommDlgBrowser_FWD_DEFINED__
  247typedef interface ICommDlgBrowser ICommDlgBrowser;
  248#ifdef __cplusplus
  249interface ICommDlgBrowser;
  250#endif /* __cplusplus */
  251#endif
  252
  253#ifndef __ICommDlgBrowser2_FWD_DEFINED__
  254#define __ICommDlgBrowser2_FWD_DEFINED__
  255typedef interface ICommDlgBrowser2 ICommDlgBrowser2;
  256#ifdef __cplusplus
  257interface ICommDlgBrowser2;
  258#endif /* __cplusplus */
  259#endif
  260
  261#ifndef __ICommDlgBrowser3_FWD_DEFINED__
  262#define __ICommDlgBrowser3_FWD_DEFINED__
  263typedef interface ICommDlgBrowser3 ICommDlgBrowser3;
  264#ifdef __cplusplus
  265interface ICommDlgBrowser3;
  266#endif /* __cplusplus */
  267#endif
  268
  269#ifndef __IColumnManager_FWD_DEFINED__
  270#define __IColumnManager_FWD_DEFINED__
  271typedef interface IColumnManager IColumnManager;
  272#ifdef __cplusplus
  273interface IColumnManager;
  274#endif /* __cplusplus */
  275#endif
  276
  277#ifndef __IFolderFilterSite_FWD_DEFINED__
  278#define __IFolderFilterSite_FWD_DEFINED__
  279typedef interface IFolderFilterSite IFolderFilterSite;
  280#ifdef __cplusplus
  281interface IFolderFilterSite;
  282#endif /* __cplusplus */
  283#endif
  284
  285#ifndef __IFolderFilter_FWD_DEFINED__
  286#define __IFolderFilter_FWD_DEFINED__
  287typedef interface IFolderFilter IFolderFilter;
  288#ifdef __cplusplus
  289interface IFolderFilter;
  290#endif /* __cplusplus */
  291#endif
  292
  293#ifndef __IInputObjectSite_FWD_DEFINED__
  294#define __IInputObjectSite_FWD_DEFINED__
  295typedef interface IInputObjectSite IInputObjectSite;
  296#ifdef __cplusplus
  297interface IInputObjectSite;
  298#endif /* __cplusplus */
  299#endif
  300
  301#ifndef __IInputObject_FWD_DEFINED__
  302#define __IInputObject_FWD_DEFINED__
  303typedef interface IInputObject IInputObject;
  304#ifdef __cplusplus
  305interface IInputObject;
  306#endif /* __cplusplus */
  307#endif
  308
  309#ifndef __IInputObject2_FWD_DEFINED__
  310#define __IInputObject2_FWD_DEFINED__
  311typedef interface IInputObject2 IInputObject2;
  312#ifdef __cplusplus
  313interface IInputObject2;
  314#endif /* __cplusplus */
  315#endif
  316
  317#ifndef __IShellIcon_FWD_DEFINED__
  318#define __IShellIcon_FWD_DEFINED__
  319typedef interface IShellIcon IShellIcon;
  320#ifdef __cplusplus
  321interface IShellIcon;
  322#endif /* __cplusplus */
  323#endif
  324
  325#ifndef __IShellBrowser_FWD_DEFINED__
  326#define __IShellBrowser_FWD_DEFINED__
  327typedef interface IShellBrowser IShellBrowser;
  328#ifdef __cplusplus
  329interface IShellBrowser;
  330#endif /* __cplusplus */
  331#endif
  332
  333#ifndef __IProfferService_FWD_DEFINED__
  334#define __IProfferService_FWD_DEFINED__
  335typedef interface IProfferService IProfferService;
  336#ifdef __cplusplus
  337interface IProfferService;
  338#endif /* __cplusplus */
  339#endif
  340
  341#ifndef __IShellItem_FWD_DEFINED__
  342#define __IShellItem_FWD_DEFINED__
  343typedef interface IShellItem IShellItem;
  344#ifdef __cplusplus
  345interface IShellItem;
  346#endif /* __cplusplus */
  347#endif
  348
  349#ifndef __IShellItem2_FWD_DEFINED__
  350#define __IShellItem2_FWD_DEFINED__
  351typedef interface IShellItem2 IShellItem2;
  352#ifdef __cplusplus
  353interface IShellItem2;
  354#endif /* __cplusplus */
  355#endif
  356
  357#ifndef __IShellItemImageFactory_FWD_DEFINED__
  358#define __IShellItemImageFactory_FWD_DEFINED__
  359typedef interface IShellItemImageFactory IShellItemImageFactory;
  360#ifdef __cplusplus
  361interface IShellItemImageFactory;
  362#endif /* __cplusplus */
  363#endif
  364
  365#ifndef __IUserAccountChangeCallback_FWD_DEFINED__
  366#define __IUserAccountChangeCallback_FWD_DEFINED__
  367typedef interface IUserAccountChangeCallback IUserAccountChangeCallback;
  368#ifdef __cplusplus
  369interface IUserAccountChangeCallback;
  370#endif /* __cplusplus */
  371#endif
  372
  373#ifndef __IEnumShellItems_FWD_DEFINED__
  374#define __IEnumShellItems_FWD_DEFINED__
  375typedef interface IEnumShellItems IEnumShellItems;
  376#ifdef __cplusplus
  377interface IEnumShellItems;
  378#endif /* __cplusplus */
  379#endif
  380
  381#ifndef __ITransferAdviseSink_FWD_DEFINED__
  382#define __ITransferAdviseSink_FWD_DEFINED__
  383typedef interface ITransferAdviseSink ITransferAdviseSink;
  384#ifdef __cplusplus
  385interface ITransferAdviseSink;
  386#endif /* __cplusplus */
  387#endif
  388
  389#ifndef __ITransferSource_FWD_DEFINED__
  390#define __ITransferSource_FWD_DEFINED__
  391typedef interface ITransferSource ITransferSource;
  392#ifdef __cplusplus
  393interface ITransferSource;
  394#endif /* __cplusplus */
  395#endif
  396
  397#ifndef __IEnumResources_FWD_DEFINED__
  398#define __IEnumResources_FWD_DEFINED__
  399typedef interface IEnumResources IEnumResources;
  400#ifdef __cplusplus
  401interface IEnumResources;
  402#endif /* __cplusplus */
  403#endif
  404
  405#ifndef __IShellItemResources_FWD_DEFINED__
  406#define __IShellItemResources_FWD_DEFINED__
  407typedef interface IShellItemResources IShellItemResources;
  408#ifdef __cplusplus
  409interface IShellItemResources;
  410#endif /* __cplusplus */
  411#endif
  412
  413#ifndef __ITransferDestination_FWD_DEFINED__
  414#define __ITransferDestination_FWD_DEFINED__
  415typedef interface ITransferDestination ITransferDestination;
  416#ifdef __cplusplus
  417interface ITransferDestination;
  418#endif /* __cplusplus */
  419#endif
  420
  421#ifndef __IStreamAsync_FWD_DEFINED__
  422#define __IStreamAsync_FWD_DEFINED__
  423typedef interface IStreamAsync IStreamAsync;
  424#ifdef __cplusplus
  425interface IStreamAsync;
  426#endif /* __cplusplus */
  427#endif
  428
  429#ifndef __IStreamUnbufferedInfo_FWD_DEFINED__
  430#define __IStreamUnbufferedInfo_FWD_DEFINED__
  431typedef interface IStreamUnbufferedInfo IStreamUnbufferedInfo;
  432#ifdef __cplusplus
  433interface IStreamUnbufferedInfo;
  434#endif /* __cplusplus */
  435#endif
  436
  437#ifndef __IFileOperationProgressSink_FWD_DEFINED__
  438#define __IFileOperationProgressSink_FWD_DEFINED__
  439typedef interface IFileOperationProgressSink IFileOperationProgressSink;
  440#ifdef __cplusplus
  441interface IFileOperationProgressSink;
  442#endif /* __cplusplus */
  443#endif
  444
  445#ifndef __IShellItemArray_FWD_DEFINED__
  446#define __IShellItemArray_FWD_DEFINED__
  447typedef interface IShellItemArray IShellItemArray;
  448#ifdef __cplusplus
  449interface IShellItemArray;
  450#endif /* __cplusplus */
  451#endif
  452
  453#ifndef __IInitializeWithItem_FWD_DEFINED__
  454#define __IInitializeWithItem_FWD_DEFINED__
  455typedef interface IInitializeWithItem IInitializeWithItem;
  456#ifdef __cplusplus
  457interface IInitializeWithItem;
  458#endif /* __cplusplus */
  459#endif
  460
  461#ifndef __IObjectWithSelection_FWD_DEFINED__
  462#define __IObjectWithSelection_FWD_DEFINED__
  463typedef interface IObjectWithSelection IObjectWithSelection;
  464#ifdef __cplusplus
  465interface IObjectWithSelection;
  466#endif /* __cplusplus */
  467#endif
  468
  469#ifndef __IObjectWithBackReferences_FWD_DEFINED__
  470#define __IObjectWithBackReferences_FWD_DEFINED__
  471typedef interface IObjectWithBackReferences IObjectWithBackReferences;
  472#ifdef __cplusplus
  473interface IObjectWithBackReferences;
  474#endif /* __cplusplus */
  475#endif
  476
  477#ifndef __IPropertyUI_FWD_DEFINED__
  478#define __IPropertyUI_FWD_DEFINED__
  479typedef interface IPropertyUI IPropertyUI;
  480#ifdef __cplusplus
  481interface IPropertyUI;
  482#endif /* __cplusplus */
  483#endif
  484
  485#ifndef __ICategoryProvider_FWD_DEFINED__
  486#define __ICategoryProvider_FWD_DEFINED__
  487typedef interface ICategoryProvider ICategoryProvider;
  488#ifdef __cplusplus
  489interface ICategoryProvider;
  490#endif /* __cplusplus */
  491#endif
  492
  493#ifndef __ICategorizer_FWD_DEFINED__
  494#define __ICategorizer_FWD_DEFINED__
  495typedef interface ICategorizer ICategorizer;
  496#ifdef __cplusplus
  497interface ICategorizer;
  498#endif /* __cplusplus */
  499#endif
  500
  501#ifndef __IDropTargetHelper_FWD_DEFINED__
  502#define __IDropTargetHelper_FWD_DEFINED__
  503typedef interface IDropTargetHelper IDropTargetHelper;
  504#ifdef __cplusplus
  505interface IDropTargetHelper;
  506#endif /* __cplusplus */
  507#endif
  508
  509#ifndef __IDragSourceHelper_FWD_DEFINED__
  510#define __IDragSourceHelper_FWD_DEFINED__
  511typedef interface IDragSourceHelper IDragSourceHelper;
  512#ifdef __cplusplus
  513interface IDragSourceHelper;
  514#endif /* __cplusplus */
  515#endif
  516
  517#ifndef __IDragSourceHelper2_FWD_DEFINED__
  518#define __IDragSourceHelper2_FWD_DEFINED__
  519typedef interface IDragSourceHelper2 IDragSourceHelper2;
  520#ifdef __cplusplus
  521interface IDragSourceHelper2;
  522#endif /* __cplusplus */
  523#endif
  524
  525#ifndef __IShellLinkA_FWD_DEFINED__
  526#define __IShellLinkA_FWD_DEFINED__
  527typedef interface IShellLinkA IShellLinkA;
  528#ifdef __cplusplus
  529interface IShellLinkA;
  530#endif /* __cplusplus */
  531#endif
  532
  533#ifndef __IShellLinkW_FWD_DEFINED__
  534#define __IShellLinkW_FWD_DEFINED__
  535typedef interface IShellLinkW IShellLinkW;
  536#ifdef __cplusplus
  537interface IShellLinkW;
  538#endif /* __cplusplus */
  539#endif
  540
  541#ifndef __IShellLinkDataList_FWD_DEFINED__
  542#define __IShellLinkDataList_FWD_DEFINED__
  543typedef interface IShellLinkDataList IShellLinkDataList;
  544#ifdef __cplusplus
  545interface IShellLinkDataList;
  546#endif /* __cplusplus */
  547#endif
  548
  549#ifndef __IResolveShellLink_FWD_DEFINED__
  550#define __IResolveShellLink_FWD_DEFINED__
  551typedef interface IResolveShellLink IResolveShellLink;
  552#ifdef __cplusplus
  553interface IResolveShellLink;
  554#endif /* __cplusplus */
  555#endif
  556
  557#ifndef __IActionProgressDialog_FWD_DEFINED__
  558#define __IActionProgressDialog_FWD_DEFINED__
  559typedef interface IActionProgressDialog IActionProgressDialog;
  560#ifdef __cplusplus
  561interface IActionProgressDialog;
  562#endif /* __cplusplus */
  563#endif
  564
  565#ifndef __IHWEventHandler_FWD_DEFINED__
  566#define __IHWEventHandler_FWD_DEFINED__
  567typedef interface IHWEventHandler IHWEventHandler;
  568#ifdef __cplusplus
  569interface IHWEventHandler;
  570#endif /* __cplusplus */
  571#endif
  572
  573#ifndef __IHWEventHandler2_FWD_DEFINED__
  574#define __IHWEventHandler2_FWD_DEFINED__
  575typedef interface IHWEventHandler2 IHWEventHandler2;
  576#ifdef __cplusplus
  577interface IHWEventHandler2;
  578#endif /* __cplusplus */
  579#endif
  580
  581#ifndef __IQueryCancelAutoPlay_FWD_DEFINED__
  582#define __IQueryCancelAutoPlay_FWD_DEFINED__
  583typedef interface IQueryCancelAutoPlay IQueryCancelAutoPlay;
  584#ifdef __cplusplus
  585interface IQueryCancelAutoPlay;
  586#endif /* __cplusplus */
  587#endif
  588
  589#ifndef __IDynamicHWHandler_FWD_DEFINED__
  590#define __IDynamicHWHandler_FWD_DEFINED__
  591typedef interface IDynamicHWHandler IDynamicHWHandler;
  592#ifdef __cplusplus
  593interface IDynamicHWHandler;
  594#endif /* __cplusplus */
  595#endif
  596
  597#ifndef __IActionProgress_FWD_DEFINED__
  598#define __IActionProgress_FWD_DEFINED__
  599typedef interface IActionProgress IActionProgress;
  600#ifdef __cplusplus
  601interface IActionProgress;
  602#endif /* __cplusplus */
  603#endif
  604
  605#ifndef __IShellExtInit_FWD_DEFINED__
  606#define __IShellExtInit_FWD_DEFINED__
  607typedef interface IShellExtInit IShellExtInit;
  608#ifdef __cplusplus
  609interface IShellExtInit;
  610#endif /* __cplusplus */
  611#endif
  612
  613#ifndef __IShellPropSheetExt_FWD_DEFINED__
  614#define __IShellPropSheetExt_FWD_DEFINED__
  615typedef interface IShellPropSheetExt IShellPropSheetExt;
  616#ifdef __cplusplus
  617interface IShellPropSheetExt;
  618#endif /* __cplusplus */
  619#endif
  620
  621#ifndef __IRemoteComputer_FWD_DEFINED__
  622#define __IRemoteComputer_FWD_DEFINED__
  623typedef interface IRemoteComputer IRemoteComputer;
  624#ifdef __cplusplus
  625interface IRemoteComputer;
  626#endif /* __cplusplus */
  627#endif
  628
  629#ifndef __IQueryContinue_FWD_DEFINED__
  630#define __IQueryContinue_FWD_DEFINED__
  631typedef interface IQueryContinue IQueryContinue;
  632#ifdef __cplusplus
  633interface IQueryContinue;
  634#endif /* __cplusplus */
  635#endif
  636
  637#ifndef __IObjectWithCancelEvent_FWD_DEFINED__
  638#define __IObjectWithCancelEvent_FWD_DEFINED__
  639typedef interface IObjectWithCancelEvent IObjectWithCancelEvent;
  640#ifdef __cplusplus
  641interface IObjectWithCancelEvent;
  642#endif /* __cplusplus */
  643#endif
  644
  645#ifndef __IUserNotification_FWD_DEFINED__
  646#define __IUserNotification_FWD_DEFINED__
  647typedef interface IUserNotification IUserNotification;
  648#ifdef __cplusplus
  649interface IUserNotification;
  650#endif /* __cplusplus */
  651#endif
  652
  653#ifndef __IUserNotificationCallback_FWD_DEFINED__
  654#define __IUserNotificationCallback_FWD_DEFINED__
  655typedef interface IUserNotificationCallback IUserNotificationCallback;
  656#ifdef __cplusplus
  657interface IUserNotificationCallback;
  658#endif /* __cplusplus */
  659#endif
  660
  661#ifndef __IUserNotification2_FWD_DEFINED__
  662#define __IUserNotification2_FWD_DEFINED__
  663typedef interface IUserNotification2 IUserNotification2;
  664#ifdef __cplusplus
  665interface IUserNotification2;
  666#endif /* __cplusplus */
  667#endif
  668
  669#ifndef __IItemNameLimits_FWD_DEFINED__
  670#define __IItemNameLimits_FWD_DEFINED__
  671typedef interface IItemNameLimits IItemNameLimits;
  672#ifdef __cplusplus
  673interface IItemNameLimits;
  674#endif /* __cplusplus */
  675#endif
  676
  677#ifndef __ISearchFolderItemFactory_FWD_DEFINED__
  678#define __ISearchFolderItemFactory_FWD_DEFINED__
  679typedef interface ISearchFolderItemFactory ISearchFolderItemFactory;
  680#ifdef __cplusplus
  681interface ISearchFolderItemFactory;
  682#endif /* __cplusplus */
  683#endif
  684
  685#ifndef __IExtractImage_FWD_DEFINED__
  686#define __IExtractImage_FWD_DEFINED__
  687typedef interface IExtractImage IExtractImage;
  688#ifdef __cplusplus
  689interface IExtractImage;
  690#endif /* __cplusplus */
  691#endif
  692
  693#ifndef __IExtractImage2_FWD_DEFINED__
  694#define __IExtractImage2_FWD_DEFINED__
  695typedef interface IExtractImage2 IExtractImage2;
  696#ifdef __cplusplus
  697interface IExtractImage2;
  698#endif /* __cplusplus */
  699#endif
  700
  701#ifndef __IThumbnailHandlerFactory_FWD_DEFINED__
  702#define __IThumbnailHandlerFactory_FWD_DEFINED__
  703typedef interface IThumbnailHandlerFactory IThumbnailHandlerFactory;
  704#ifdef __cplusplus
  705interface IThumbnailHandlerFactory;
  706#endif /* __cplusplus */
  707#endif
  708
  709#ifndef __IParentAndItem_FWD_DEFINED__
  710#define __IParentAndItem_FWD_DEFINED__
  711typedef interface IParentAndItem IParentAndItem;
  712#ifdef __cplusplus
  713interface IParentAndItem;
  714#endif /* __cplusplus */
  715#endif
  716
  717#ifndef __IDockingWindow_FWD_DEFINED__
  718#define __IDockingWindow_FWD_DEFINED__
  719typedef interface IDockingWindow IDockingWindow;
  720#ifdef __cplusplus
  721interface IDockingWindow;
  722#endif /* __cplusplus */
  723#endif
  724
  725#ifndef __IDeskBand_FWD_DEFINED__
  726#define __IDeskBand_FWD_DEFINED__
  727typedef interface IDeskBand IDeskBand;
  728#ifdef __cplusplus
  729interface IDeskBand;
  730#endif /* __cplusplus */
  731#endif
  732
  733#ifndef __IDeskBandInfo_FWD_DEFINED__
  734#define __IDeskBandInfo_FWD_DEFINED__
  735typedef interface IDeskBandInfo IDeskBandInfo;
  736#ifdef __cplusplus
  737interface IDeskBandInfo;
  738#endif /* __cplusplus */
  739#endif
  740
  741#ifndef __IDeskBand2_FWD_DEFINED__
  742#define __IDeskBand2_FWD_DEFINED__
  743typedef interface IDeskBand2 IDeskBand2;
  744#ifdef __cplusplus
  745interface IDeskBand2;
  746#endif /* __cplusplus */
  747#endif
  748
  749#ifndef __ITaskbarList_FWD_DEFINED__
  750#define __ITaskbarList_FWD_DEFINED__
  751typedef interface ITaskbarList ITaskbarList;
  752#ifdef __cplusplus
  753interface ITaskbarList;
  754#endif /* __cplusplus */
  755#endif
  756
  757#ifndef __ITaskbarList2_FWD_DEFINED__
  758#define __ITaskbarList2_FWD_DEFINED__
  759typedef interface ITaskbarList2 ITaskbarList2;
  760#ifdef __cplusplus
  761interface ITaskbarList2;
  762#endif /* __cplusplus */
  763#endif
  764
  765#ifndef __ITaskbarList3_FWD_DEFINED__
  766#define __ITaskbarList3_FWD_DEFINED__
  767typedef interface ITaskbarList3 ITaskbarList3;
  768#ifdef __cplusplus
  769interface ITaskbarList3;
  770#endif /* __cplusplus */
  771#endif
  772
  773#ifndef __ITaskbarList4_FWD_DEFINED__
  774#define __ITaskbarList4_FWD_DEFINED__
  775typedef interface ITaskbarList4 ITaskbarList4;
  776#ifdef __cplusplus
  777interface ITaskbarList4;
  778#endif /* __cplusplus */
  779#endif
  780
  781#ifndef __IStartMenuPinnedList_FWD_DEFINED__
  782#define __IStartMenuPinnedList_FWD_DEFINED__
  783typedef interface IStartMenuPinnedList IStartMenuPinnedList;
  784#ifdef __cplusplus
  785interface IStartMenuPinnedList;
  786#endif /* __cplusplus */
  787#endif
  788
  789#ifndef __ICDBurn_FWD_DEFINED__
  790#define __ICDBurn_FWD_DEFINED__
  791typedef interface ICDBurn ICDBurn;
  792#ifdef __cplusplus
  793interface ICDBurn;
  794#endif /* __cplusplus */
  795#endif
  796
  797#ifndef __IWizardSite_FWD_DEFINED__
  798#define __IWizardSite_FWD_DEFINED__
  799typedef interface IWizardSite IWizardSite;
  800#ifdef __cplusplus
  801interface IWizardSite;
  802#endif /* __cplusplus */
  803#endif
  804
  805#ifndef __IWizardExtension_FWD_DEFINED__
  806#define __IWizardExtension_FWD_DEFINED__
  807typedef interface IWizardExtension IWizardExtension;
  808#ifdef __cplusplus
  809interface IWizardExtension;
  810#endif /* __cplusplus */
  811#endif
  812
  813#ifndef __IWebWizardExtension_FWD_DEFINED__
  814#define __IWebWizardExtension_FWD_DEFINED__
  815typedef interface IWebWizardExtension IWebWizardExtension;
  816#ifdef __cplusplus
  817interface IWebWizardExtension;
  818#endif /* __cplusplus */
  819#endif
  820
  821#ifndef __IPublishingWizard_FWD_DEFINED__
  822#define __IPublishingWizard_FWD_DEFINED__
  823typedef interface IPublishingWizard IPublishingWizard;
  824#ifdef __cplusplus
  825interface IPublishingWizard;
  826#endif /* __cplusplus */
  827#endif
  828
  829#ifndef __IFolderViewHost_FWD_DEFINED__
  830#define __IFolderViewHost_FWD_DEFINED__
  831typedef interface IFolderViewHost IFolderViewHost;
  832#ifdef __cplusplus
  833interface IFolderViewHost;
  834#endif /* __cplusplus */
  835#endif
  836
  837#ifndef __IExplorerBrowserEvents_FWD_DEFINED__
  838#define __IExplorerBrowserEvents_FWD_DEFINED__
  839typedef interface IExplorerBrowserEvents IExplorerBrowserEvents;
  840#ifdef __cplusplus
  841interface IExplorerBrowserEvents;
  842#endif /* __cplusplus */
  843#endif
  844
  845#ifndef __IExplorerBrowser_FWD_DEFINED__
  846#define __IExplorerBrowser_FWD_DEFINED__
  847typedef interface IExplorerBrowser IExplorerBrowser;
  848#ifdef __cplusplus
  849interface IExplorerBrowser;
  850#endif /* __cplusplus */
  851#endif
  852
  853#ifndef __IAccessibleObject_FWD_DEFINED__
  854#define __IAccessibleObject_FWD_DEFINED__
  855typedef interface IAccessibleObject IAccessibleObject;
  856#ifdef __cplusplus
  857interface IAccessibleObject;
  858#endif /* __cplusplus */
  859#endif
  860
  861#ifndef __IResultsFolder_FWD_DEFINED__
  862#define __IResultsFolder_FWD_DEFINED__
  863typedef interface IResultsFolder IResultsFolder;
  864#ifdef __cplusplus
  865interface IResultsFolder;
  866#endif /* __cplusplus */
  867#endif
  868
  869#ifndef __IEnumObjects_FWD_DEFINED__
  870#define __IEnumObjects_FWD_DEFINED__
  871typedef interface IEnumObjects IEnumObjects;
  872#ifdef __cplusplus
  873interface IEnumObjects;
  874#endif /* __cplusplus */
  875#endif
  876
  877#ifndef __IOperationsProgressDialog_FWD_DEFINED__
  878#define __IOperationsProgressDialog_FWD_DEFINED__
  879typedef interface IOperationsProgressDialog IOperationsProgressDialog;
  880#ifdef __cplusplus
  881interface IOperationsProgressDialog;
  882#endif /* __cplusplus */
  883#endif
  884
  885#ifndef __IIOCancelInformation_FWD_DEFINED__
  886#define __IIOCancelInformation_FWD_DEFINED__
  887typedef interface IIOCancelInformation IIOCancelInformation;
  888#ifdef __cplusplus
  889interface IIOCancelInformation;
  890#endif /* __cplusplus */
  891#endif
  892
  893#ifndef __IFileOperation_FWD_DEFINED__
  894#define __IFileOperation_FWD_DEFINED__
  895typedef interface IFileOperation IFileOperation;
  896#ifdef __cplusplus
  897interface IFileOperation;
  898#endif /* __cplusplus */
  899#endif
  900
  901#ifndef __IObjectProvider_FWD_DEFINED__
  902#define __IObjectProvider_FWD_DEFINED__
  903typedef interface IObjectProvider IObjectProvider;
  904#ifdef __cplusplus
  905interface IObjectProvider;
  906#endif /* __cplusplus */
  907#endif
  908
  909#ifndef __INamespaceWalkCB_FWD_DEFINED__
  910#define __INamespaceWalkCB_FWD_DEFINED__
  911typedef interface INamespaceWalkCB INamespaceWalkCB;
  912#ifdef __cplusplus
  913interface INamespaceWalkCB;
  914#endif /* __cplusplus */
  915#endif
  916
  917#ifndef __INamespaceWalkCB2_FWD_DEFINED__
  918#define __INamespaceWalkCB2_FWD_DEFINED__
  919typedef interface INamespaceWalkCB2 INamespaceWalkCB2;
  920#ifdef __cplusplus
  921interface INamespaceWalkCB2;
  922#endif /* __cplusplus */
  923#endif
  924
  925#ifndef __INamespaceWalk_FWD_DEFINED__
  926#define __INamespaceWalk_FWD_DEFINED__
  927typedef interface INamespaceWalk INamespaceWalk;
  928#ifdef __cplusplus
  929interface INamespaceWalk;
  930#endif /* __cplusplus */
  931#endif
  932
  933#ifndef __IAutoCompleteDropDown_FWD_DEFINED__
  934#define __IAutoCompleteDropDown_FWD_DEFINED__
  935typedef interface IAutoCompleteDropDown IAutoCompleteDropDown;
  936#ifdef __cplusplus
  937interface IAutoCompleteDropDown;
  938#endif /* __cplusplus */
  939#endif
  940
  941#ifndef __IBandSite_FWD_DEFINED__
  942#define __IBandSite_FWD_DEFINED__
  943typedef interface IBandSite IBandSite;
  944#ifdef __cplusplus
  945interface IBandSite;
  946#endif /* __cplusplus */
  947#endif
  948
  949#ifndef __IModalWindow_FWD_DEFINED__
  950#define __IModalWindow_FWD_DEFINED__
  951typedef interface IModalWindow IModalWindow;
  952#ifdef __cplusplus
  953interface IModalWindow;
  954#endif /* __cplusplus */
  955#endif
  956
  957#ifndef __ICDBurnExt_FWD_DEFINED__
  958#define __ICDBurnExt_FWD_DEFINED__
  959typedef interface ICDBurnExt ICDBurnExt;
  960#ifdef __cplusplus
  961interface ICDBurnExt;
  962#endif /* __cplusplus */
  963#endif
  964
  965#ifndef __IContextMenuSite_FWD_DEFINED__
  966#define __IContextMenuSite_FWD_DEFINED__
  967typedef interface IContextMenuSite IContextMenuSite;
  968#ifdef __cplusplus
  969interface IContextMenuSite;
  970#endif /* __cplusplus */
  971#endif
  972
  973#ifndef __IEnumReadyCallback_FWD_DEFINED__
  974#define __IEnumReadyCallback_FWD_DEFINED__
  975typedef interface IEnumReadyCallback IEnumReadyCallback;
  976#ifdef __cplusplus
  977interface IEnumReadyCallback;
  978#endif /* __cplusplus */
  979#endif
  980
  981#ifndef __IEnumerableView_FWD_DEFINED__
  982#define __IEnumerableView_FWD_DEFINED__
  983typedef interface IEnumerableView IEnumerableView;
  984#ifdef __cplusplus
  985interface IEnumerableView;
  986#endif /* __cplusplus */
  987#endif
  988
  989#ifndef __IInsertItem_FWD_DEFINED__
  990#define __IInsertItem_FWD_DEFINED__
  991typedef interface IInsertItem IInsertItem;
  992#ifdef __cplusplus
  993interface IInsertItem;
  994#endif /* __cplusplus */
  995#endif
  996
  997#ifndef __IMenuBand_FWD_DEFINED__
  998#define __IMenuBand_FWD_DEFINED__
  999typedef interface IMenuBand IMenuBand;
 1000#ifdef __cplusplus
 1001interface IMenuBand;
 1002#endif /* __cplusplus */
 1003#endif
 1004
 1005#ifndef __IFolderBandPriv_FWD_DEFINED__
 1006#define __IFolderBandPriv_FWD_DEFINED__
 1007typedef interface IFolderBandPriv IFolderBandPriv;
 1008#ifdef __cplusplus
 1009interface IFolderBandPriv;
 1010#endif /* __cplusplus */
 1011#endif
 1012
 1013#ifndef __IRegTreeItem_FWD_DEFINED__
 1014#define __IRegTreeItem_FWD_DEFINED__
 1015typedef interface IRegTreeItem IRegTreeItem;
 1016#ifdef __cplusplus
 1017interface IRegTreeItem;
 1018#endif /* __cplusplus */
 1019#endif
 1020
 1021#ifndef __IImageRecompress_FWD_DEFINED__
 1022#define __IImageRecompress_FWD_DEFINED__
 1023typedef interface IImageRecompress IImageRecompress;
 1024#ifdef __cplusplus
 1025interface IImageRecompress;
 1026#endif /* __cplusplus */
 1027#endif
 1028
 1029#ifndef __IDeskBar_FWD_DEFINED__
 1030#define __IDeskBar_FWD_DEFINED__
 1031typedef interface IDeskBar IDeskBar;
 1032#ifdef __cplusplus
 1033interface IDeskBar;
 1034#endif /* __cplusplus */
 1035#endif
 1036
 1037#ifndef __IMenuPopup_FWD_DEFINED__
 1038#define __IMenuPopup_FWD_DEFINED__
 1039typedef interface IMenuPopup IMenuPopup;
 1040#ifdef __cplusplus
 1041interface IMenuPopup;
 1042#endif /* __cplusplus */
 1043#endif
 1044
 1045#ifndef __IFileIsInUse_FWD_DEFINED__
 1046#define __IFileIsInUse_FWD_DEFINED__
 1047typedef interface IFileIsInUse IFileIsInUse;
 1048#ifdef __cplusplus
 1049interface IFileIsInUse;
 1050#endif /* __cplusplus */
 1051#endif
 1052
 1053#ifndef __IFileDialogEvents_FWD_DEFINED__
 1054#define __IFileDialogEvents_FWD_DEFINED__
 1055typedef interface IFileDialogEvents IFileDialogEvents;
 1056#ifdef __cplusplus
 1057interface IFileDialogEvents;
 1058#endif /* __cplusplus */
 1059#endif
 1060
 1061#ifndef __IFileDialog_FWD_DEFINED__
 1062#define __IFileDialog_FWD_DEFINED__
 1063typedef interface IFileDialog IFileDialog;
 1064#ifdef __cplusplus
 1065interface IFileDialog;
 1066#endif /* __cplusplus */
 1067#endif
 1068
 1069#ifndef __IFileSaveDialog_FWD_DEFINED__
 1070#define __IFileSaveDialog_FWD_DEFINED__
 1071typedef interface IFileSaveDialog IFileSaveDialog;
 1072#ifdef __cplusplus
 1073interface IFileSaveDialog;
 1074#endif /* __cplusplus */
 1075#endif
 1076
 1077#ifndef __IFileOpenDialog_FWD_DEFINED__
 1078#define __IFileOpenDialog_FWD_DEFINED__
 1079typedef interface IFileOpenDialog IFileOpenDialog;
 1080#ifdef __cplusplus
 1081interface IFileOpenDialog;
 1082#endif /* __cplusplus */
 1083#endif
 1084
 1085#ifndef __IFileDialogCustomize_FWD_DEFINED__
 1086#define __IFileDialogCustomize_FWD_DEFINED__
 1087typedef interface IFileDialogCustomize IFileDialogCustomize;
 1088#ifdef __cplusplus
 1089interface IFileDialogCustomize;
 1090#endif /* __cplusplus */
 1091#endif
 1092
 1093#ifndef __IFileDialogControlEvents_FWD_DEFINED__
 1094#define __IFileDialogControlEvents_FWD_DEFINED__
 1095typedef interface IFileDialogControlEvents IFileDialogControlEvents;
 1096#ifdef __cplusplus
 1097interface IFileDialogControlEvents;
 1098#endif /* __cplusplus */
 1099#endif
 1100
 1101#ifndef __IFileDialog2_FWD_DEFINED__
 1102#define __IFileDialog2_FWD_DEFINED__
 1103typedef interface IFileDialog2 IFileDialog2;
 1104#ifdef __cplusplus
 1105interface IFileDialog2;
 1106#endif /* __cplusplus */
 1107#endif
 1108
 1109#ifndef __IApplicationAssociationRegistration_FWD_DEFINED__
 1110#define __IApplicationAssociationRegistration_FWD_DEFINED__
 1111typedef interface IApplicationAssociationRegistration IApplicationAssociationRegistration;
 1112#ifdef __cplusplus
 1113interface IApplicationAssociationRegistration;
 1114#endif /* __cplusplus */
 1115#endif
 1116
 1117#ifndef __IApplicationAssociationRegistrationUI_FWD_DEFINED__
 1118#define __IApplicationAssociationRegistrationUI_FWD_DEFINED__
 1119typedef interface IApplicationAssociationRegistrationUI IApplicationAssociationRegistrationUI;
 1120#ifdef __cplusplus
 1121interface IApplicationAssociationRegistrationUI;
 1122#endif /* __cplusplus */
 1123#endif
 1124
 1125#ifndef __IDelegateFolder_FWD_DEFINED__
 1126#define __IDelegateFolder_FWD_DEFINED__
 1127typedef interface IDelegateFolder IDelegateFolder;
 1128#ifdef __cplusplus
 1129interface IDelegateFolder;
 1130#endif /* __cplusplus */
 1131#endif
 1132
 1133#ifndef __IBrowserFrameOptions_FWD_DEFINED__
 1134#define __IBrowserFrameOptions_FWD_DEFINED__
 1135typedef interface IBrowserFrameOptions IBrowserFrameOptions;
 1136#ifdef __cplusplus
 1137interface IBrowserFrameOptions;
 1138#endif /* __cplusplus */
 1139#endif
 1140
 1141#ifndef __INewWindowManager_FWD_DEFINED__
 1142#define __INewWindowManager_FWD_DEFINED__
 1143typedef interface INewWindowManager INewWindowManager;
 1144#ifdef __cplusplus
 1145interface INewWindowManager;
 1146#endif /* __cplusplus */
 1147#endif
 1148
 1149#ifndef __IAttachmentExecute_FWD_DEFINED__
 1150#define __IAttachmentExecute_FWD_DEFINED__
 1151typedef interface IAttachmentExecute IAttachmentExecute;
 1152#ifdef __cplusplus
 1153interface IAttachmentExecute;
 1154#endif /* __cplusplus */
 1155#endif
 1156
 1157#ifndef __IShellMenuCallback_FWD_DEFINED__
 1158#define __IShellMenuCallback_FWD_DEFINED__
 1159typedef interface IShellMenuCallback IShellMenuCallback;
 1160#ifdef __cplusplus
 1161interface IShellMenuCallback;
 1162#endif /* __cplusplus */
 1163#endif
 1164
 1165#ifndef __IShellMenu_FWD_DEFINED__
 1166#define __IShellMenu_FWD_DEFINED__
 1167typedef interface IShellMenu IShellMenu;
 1168#ifdef __cplusplus
 1169interface IShellMenu;
 1170#endif /* __cplusplus */
 1171#endif
 1172
 1173#ifndef __IShellRunDll_FWD_DEFINED__
 1174#define __IShellRunDll_FWD_DEFINED__
 1175typedef interface IShellRunDll IShellRunDll;
 1176#ifdef __cplusplus
 1177interface IShellRunDll;
 1178#endif /* __cplusplus */
 1179#endif
 1180
 1181#ifndef __IKnownFolder_FWD_DEFINED__
 1182#define __IKnownFolder_FWD_DEFINED__
 1183typedef interface IKnownFolder IKnownFolder;
 1184#ifdef __cplusplus
 1185interface IKnownFolder;
 1186#endif /* __cplusplus */
 1187#endif
 1188
 1189#ifndef __IKnownFolderManager_FWD_DEFINED__
 1190#define __IKnownFolderManager_FWD_DEFINED__
 1191typedef interface IKnownFolderManager IKnownFolderManager;
 1192#ifdef __cplusplus
 1193interface IKnownFolderManager;
 1194#endif /* __cplusplus */
 1195#endif
 1196
 1197#ifndef __ISharingConfigurationManager_FWD_DEFINED__
 1198#define __ISharingConfigurationManager_FWD_DEFINED__
 1199typedef interface ISharingConfigurationManager ISharingConfigurationManager;
 1200#ifdef __cplusplus
 1201interface ISharingConfigurationManager;
 1202#endif /* __cplusplus */
 1203#endif
 1204
 1205#ifndef __IPreviousVersionsInfo_FWD_DEFINED__
 1206#define __IPreviousVersionsInfo_FWD_DEFINED__
 1207typedef interface IPreviousVersionsInfo IPreviousVersionsInfo;
 1208#ifdef __cplusplus
 1209interface IPreviousVersionsInfo;
 1210#endif /* __cplusplus */
 1211#endif
 1212
 1213#ifndef __IRelatedItem_FWD_DEFINED__
 1214#define __IRelatedItem_FWD_DEFINED__
 1215typedef interface IRelatedItem IRelatedItem;
 1216#ifdef __cplusplus
 1217interface IRelatedItem;
 1218#endif /* __cplusplus */
 1219#endif
 1220
 1221#ifndef __IIdentityName_FWD_DEFINED__
 1222#define __IIdentityName_FWD_DEFINED__
 1223typedef interface IIdentityName IIdentityName;
 1224#ifdef __cplusplus
 1225interface IIdentityName;
 1226#endif /* __cplusplus */
 1227#endif
 1228
 1229#ifndef __IDelegateItem_FWD_DEFINED__
 1230#define __IDelegateItem_FWD_DEFINED__
 1231typedef interface IDelegateItem IDelegateItem;
 1232#ifdef __cplusplus
 1233interface IDelegateItem;
 1234#endif /* __cplusplus */
 1235#endif
 1236
 1237#ifndef __ICurrentItem_FWD_DEFINED__
 1238#define __ICurrentItem_FWD_DEFINED__
 1239typedef interface ICurrentItem ICurrentItem;
 1240#ifdef __cplusplus
 1241interface ICurrentItem;
 1242#endif /* __cplusplus */
 1243#endif
 1244
 1245#ifndef __ITransferMediumItem_FWD_DEFINED__
 1246#define __ITransferMediumItem_FWD_DEFINED__
 1247typedef interface ITransferMediumItem ITransferMediumItem;
 1248#ifdef __cplusplus
 1249interface ITransferMediumItem;
 1250#endif /* __cplusplus */
 1251#endif
 1252
 1253#ifndef __IUseToBrowseItem_FWD_DEFINED__
 1254#define __IUseToBrowseItem_FWD_DEFINED__
 1255typedef interface IUseToBrowseItem IUseToBrowseItem;
 1256#ifdef __cplusplus
 1257interface IUseToBrowseItem;
 1258#endif /* __cplusplus */
 1259#endif
 1260
 1261#ifndef __IDisplayItem_FWD_DEFINED__
 1262#define __IDisplayItem_FWD_DEFINED__
 1263typedef interface IDisplayItem IDisplayItem;
 1264#ifdef __cplusplus
 1265interface IDisplayItem;
 1266#endif /* __cplusplus */
 1267#endif
 1268
 1269#ifndef __IViewStateIdentityItem_FWD_DEFINED__
 1270#define __IViewStateIdentityItem_FWD_DEFINED__
 1271typedef interface IViewStateIdentityItem IViewStateIdentityItem;
 1272#ifdef __cplusplus
 1273interface IViewStateIdentityItem;
 1274#endif /* __cplusplus */
 1275#endif
 1276
 1277#ifndef __IPreviewItem_FWD_DEFINED__
 1278#define __IPreviewItem_FWD_DEFINED__
 1279typedef interface IPreviewItem IPreviewItem;
 1280#ifdef __cplusplus
 1281interface IPreviewItem;
 1282#endif /* __cplusplus */
 1283#endif
 1284
 1285#ifndef __IDestinationStreamFactory_FWD_DEFINED__
 1286#define __IDestinationStreamFactory_FWD_DEFINED__
 1287typedef interface IDestinationStreamFactory IDestinationStreamFactory;
 1288#ifdef __cplusplus
 1289interface IDestinationStreamFactory;
 1290#endif /* __cplusplus */
 1291#endif
 1292
 1293#ifndef __INewMenuClient_FWD_DEFINED__
 1294#define __INewMenuClient_FWD_DEFINED__
 1295typedef interface INewMenuClient INewMenuClient;
 1296#ifdef __cplusplus
 1297interface INewMenuClient;
 1298#endif /* __cplusplus */
 1299#endif
 1300
 1301#ifndef __IInitializeWithBindCtx_FWD_DEFINED__
 1302#define __IInitializeWithBindCtx_FWD_DEFINED__
 1303typedef interface IInitializeWithBindCtx IInitializeWithBindCtx;
 1304#ifdef __cplusplus
 1305interface IInitializeWithBindCtx;
 1306#endif /* __cplusplus */
 1307#endif
 1308
 1309#ifndef __IShellItemFilter_FWD_DEFINED__
 1310#define __IShellItemFilter_FWD_DEFINED__
 1311typedef interface IShellItemFilter IShellItemFilter;
 1312#ifdef __cplusplus
 1313interface IShellItemFilter;
 1314#endif /* __cplusplus */
 1315#endif
 1316
 1317#ifndef __INameSpaceTreeControl_FWD_DEFINED__
 1318#define __INameSpaceTreeControl_FWD_DEFINED__
 1319typedef interface INameSpaceTreeControl INameSpaceTreeControl;
 1320#ifdef __cplusplus
 1321interface INameSpaceTreeControl;
 1322#endif /* __cplusplus */
 1323#endif
 1324
 1325#ifndef __INameSpaceTreeControl2_FWD_DEFINED__
 1326#define __INameSpaceTreeControl2_FWD_DEFINED__
 1327typedef interface INameSpaceTreeControl2 INameSpaceTreeControl2;
 1328#ifdef __cplusplus
 1329interface INameSpaceTreeControl2;
 1330#endif /* __cplusplus */
 1331#endif
 1332
 1333#ifndef __INameSpaceTreeControlEvents_FWD_DEFINED__
 1334#define __INameSpaceTreeControlEvents_FWD_DEFINED__
 1335typedef interface INameSpaceTreeControlEvents INameSpaceTreeControlEvents;
 1336#ifdef __cplusplus
 1337interface INameSpaceTreeControlEvents;
 1338#endif /* __cplusplus */
 1339#endif
 1340
 1341#ifndef __INameSpaceTreeControlDropHandler_FWD_DEFINED__
 1342#define __INameSpaceTreeControlDropHandler_FWD_DEFINED__
 1343typedef interface INameSpaceTreeControlDropHandler INameSpaceTreeControlDropHandler;
 1344#ifdef __cplusplus
 1345interface INameSpaceTreeControlDropHandler;
 1346#endif /* __cplusplus */
 1347#endif
 1348
 1349#ifndef __INameSpaceTreeAccessible_FWD_DEFINED__
 1350#define __INameSpaceTreeAccessible_FWD_DEFINED__
 1351typedef interface INameSpaceTreeAccessible INameSpaceTreeAccessible;
 1352#ifdef __cplusplus
 1353interface INameSpaceTreeAccessible;
 1354#endif /* __cplusplus */
 1355#endif
 1356
 1357#ifndef __INameSpaceTreeControlCustomDraw_FWD_DEFINED__
 1358#define __INameSpaceTreeControlCustomDraw_FWD_DEFINED__
 1359typedef interface INameSpaceTreeControlCustomDraw INameSpaceTreeControlCustomDraw;
 1360#ifdef __cplusplus
 1361interface INameSpaceTreeControlCustomDraw;
 1362#endif /* __cplusplus */
 1363#endif
 1364
 1365#ifndef __INameSpaceTreeControlFolderCapabilities_FWD_DEFINED__
 1366#define __INameSpaceTreeControlFolderCapabilities_FWD_DEFINED__
 1367typedef interface INameSpaceTreeControlFolderCapabilities INameSpaceTreeControlFolderCapabilities;
 1368#ifdef __cplusplus
 1369interface INameSpaceTreeControlFolderCapabilities;
 1370#endif /* __cplusplus */
 1371#endif
 1372
 1373#ifndef __IPreviewHandler_FWD_DEFINED__
 1374#define __IPreviewHandler_FWD_DEFINED__
 1375typedef interface IPreviewHandler IPreviewHandler;
 1376#ifdef __cplusplus
 1377interface IPreviewHandler;
 1378#endif /* __cplusplus */
 1379#endif
 1380
 1381#ifndef __IPreviewHandlerFrame_FWD_DEFINED__
 1382#define __IPreviewHandlerFrame_FWD_DEFINED__
 1383typedef interface IPreviewHandlerFrame IPreviewHandlerFrame;
 1384#ifdef __cplusplus
 1385interface IPreviewHandlerFrame;
 1386#endif /* __cplusplus */
 1387#endif
 1388
 1389#ifndef __ITrayDeskBand_FWD_DEFINED__
 1390#define __ITrayDeskBand_FWD_DEFINED__
 1391typedef interface ITrayDeskBand ITrayDeskBand;
 1392#ifdef __cplusplus
 1393interface ITrayDeskBand;
 1394#endif /* __cplusplus */
 1395#endif
 1396
 1397#ifndef __IBandHost_FWD_DEFINED__
 1398#define __IBandHost_FWD_DEFINED__
 1399typedef interface IBandHost IBandHost;
 1400#ifdef __cplusplus
 1401interface IBandHost;
 1402#endif /* __cplusplus */
 1403#endif
 1404
 1405#ifndef __IExplorerPaneVisibility_FWD_DEFINED__
 1406#define __IExplorerPaneVisibility_FWD_DEFINED__
 1407typedef interface IExplorerPaneVisibility IExplorerPaneVisibility;
 1408#ifdef __cplusplus
 1409interface IExplorerPaneVisibility;
 1410#endif /* __cplusplus */
 1411#endif
 1412
 1413#ifndef __IContextMenuCB_FWD_DEFINED__
 1414#define __IContextMenuCB_FWD_DEFINED__
 1415typedef interface IContextMenuCB IContextMenuCB;
 1416#ifdef __cplusplus
 1417interface IContextMenuCB;
 1418#endif /* __cplusplus */
 1419#endif
 1420
 1421#ifndef __IDefaultExtractIconInit_FWD_DEFINED__
 1422#define __IDefaultExtractIconInit_FWD_DEFINED__
 1423typedef interface IDefaultExtractIconInit IDefaultExtractIconInit;
 1424#ifdef __cplusplus
 1425interface IDefaultExtractIconInit;
 1426#endif /* __cplusplus */
 1427#endif
 1428
 1429#ifndef __IExplorerCommand_FWD_DEFINED__
 1430#define __IExplorerCommand_FWD_DEFINED__
 1431typedef interface IExplorerCommand IExplorerCommand;
 1432#ifdef __cplusplus
 1433interface IExplorerCommand;
 1434#endif /* __cplusplus */
 1435#endif
 1436
 1437#ifndef __IExplorerCommandState_FWD_DEFINED__
 1438#define __IExplorerCommandState_FWD_DEFINED__
 1439typedef interface IExplorerCommandState IExplorerCommandState;
 1440#ifdef __cplusplus
 1441interface IExplorerCommandState;
 1442#endif /* __cplusplus */
 1443#endif
 1444
 1445#ifndef __IInitializeCommand_FWD_DEFINED__
 1446#define __IInitializeCommand_FWD_DEFINED__
 1447typedef interface IInitializeCommand IInitializeCommand;
 1448#ifdef __cplusplus
 1449interface IInitializeCommand;
 1450#endif /* __cplusplus */
 1451#endif
 1452
 1453#ifndef __IEnumExplorerCommand_FWD_DEFINED__
 1454#define __IEnumExplorerCommand_FWD_DEFINED__
 1455typedef interface IEnumExplorerCommand IEnumExplorerCommand;
 1456#ifdef __cplusplus
 1457interface IEnumExplorerCommand;
 1458#endif /* __cplusplus */
 1459#endif
 1460
 1461#ifndef __IExplorerCommandProvider_FWD_DEFINED__
 1462#define __IExplorerCommandProvider_FWD_DEFINED__
 1463typedef interface IExplorerCommandProvider IExplorerCommandProvider;
 1464#ifdef __cplusplus
 1465interface IExplorerCommandProvider;
 1466#endif /* __cplusplus */
 1467#endif
 1468
 1469#ifndef __IInitializeNetworkFolder_FWD_DEFINED__
 1470#define __IInitializeNetworkFolder_FWD_DEFINED__
 1471typedef interface IInitializeNetworkFolder IInitializeNetworkFolder;
 1472#ifdef __cplusplus
 1473interface IInitializeNetworkFolder;
 1474#endif /* __cplusplus */
 1475#endif
 1476
 1477#ifndef __IOpenControlPanel_FWD_DEFINED__
 1478#define __IOpenControlPanel_FWD_DEFINED__
 1479typedef interface IOpenControlPanel IOpenControlPanel;
 1480#ifdef __cplusplus
 1481interface IOpenControlPanel;
 1482#endif /* __cplusplus */
 1483#endif
 1484
 1485#ifndef __IComputerInfoChangeNotify_FWD_DEFINED__
 1486#define __IComputerInfoChangeNotify_FWD_DEFINED__
 1487typedef interface IComputerInfoChangeNotify IComputerInfoChangeNotify;
 1488#ifdef __cplusplus
 1489interface IComputerInfoChangeNotify;
 1490#endif /* __cplusplus */
 1491#endif
 1492
 1493#ifndef __IFileSystemBindData_FWD_DEFINED__
 1494#define __IFileSystemBindData_FWD_DEFINED__
 1495typedef interface IFileSystemBindData IFileSystemBindData;
 1496#ifdef __cplusplus
 1497interface IFileSystemBindData;
 1498#endif /* __cplusplus */
 1499#endif
 1500
 1501#ifndef __IFileSystemBindData2_FWD_DEFINED__
 1502#define __IFileSystemBindData2_FWD_DEFINED__
 1503typedef interface IFileSystemBindData2 IFileSystemBindData2;
 1504#ifdef __cplusplus
 1505interface IFileSystemBindData2;
 1506#endif /* __cplusplus */
 1507#endif
 1508
 1509#ifndef __ICustomDestinationList_FWD_DEFINED__
 1510#define __ICustomDestinationList_FWD_DEFINED__
 1511typedef interface ICustomDestinationList ICustomDestinationList;
 1512#ifdef __cplusplus
 1513interface ICustomDestinationList;
 1514#endif /* __cplusplus */
 1515#endif
 1516
 1517#ifndef __IApplicationDestinations_FWD_DEFINED__
 1518#define __IApplicationDestinations_FWD_DEFINED__
 1519typedef interface IApplicationDestinations IApplicationDestinations;
 1520#ifdef __cplusplus
 1521interface IApplicationDestinations;
 1522#endif /* __cplusplus */
 1523#endif
 1524
 1525#ifndef __IApplicationDocumentLists_FWD_DEFINED__
 1526#define __IApplicationDocumentLists_FWD_DEFINED__
 1527typedef interface IApplicationDocumentLists IApplicationDocumentLists;
 1528#ifdef __cplusplus
 1529interface IApplicationDocumentLists;
 1530#endif /* __cplusplus */
 1531#endif
 1532
 1533#ifndef __IObjectWithAppUserModelID_FWD_DEFINED__
 1534#define __IObjectWithAppUserModelID_FWD_DEFINED__
 1535typedef interface IObjectWithAppUserModelID IObjectWithAppUserModelID;
 1536#ifdef __cplusplus
 1537interface IObjectWithAppUserModelID;
 1538#endif /* __cplusplus */
 1539#endif
 1540
 1541#ifndef __IObjectWithProgID_FWD_DEFINED__
 1542#define __IObjectWithProgID_FWD_DEFINED__
 1543typedef interface IObjectWithProgID IObjectWithProgID;
 1544#ifdef __cplusplus
 1545interface IObjectWithProgID;
 1546#endif /* __cplusplus */
 1547#endif
 1548
 1549#ifndef __IUpdateIDList_FWD_DEFINED__
 1550#define __IUpdateIDList_FWD_DEFINED__
 1551typedef interface IUpdateIDList IUpdateIDList;
 1552#ifdef __cplusplus
 1553interface IUpdateIDList;
 1554#endif /* __cplusplus */
 1555#endif
 1556
 1557#ifndef __IDesktopGadget_FWD_DEFINED__
 1558#define __IDesktopGadget_FWD_DEFINED__
 1559typedef interface IDesktopGadget IDesktopGadget;
 1560#ifdef __cplusplus
 1561interface IDesktopGadget;
 1562#endif /* __cplusplus */
 1563#endif
 1564
 1565#ifndef __IVirtualDesktopManager_FWD_DEFINED__
 1566#define __IVirtualDesktopManager_FWD_DEFINED__
 1567typedef interface IVirtualDesktopManager IVirtualDesktopManager;
 1568#ifdef __cplusplus
 1569interface IVirtualDesktopManager;
 1570#endif /* __cplusplus */
 1571#endif
 1572
 1573#ifndef __IDesktopWallpaper_FWD_DEFINED__
 1574#define __IDesktopWallpaper_FWD_DEFINED__
 1575typedef interface IDesktopWallpaper IDesktopWallpaper;
 1576#ifdef __cplusplus
 1577interface IDesktopWallpaper;
 1578#endif /* __cplusplus */
 1579#endif
 1580
 1581#ifndef __IHomeGroup_FWD_DEFINED__
 1582#define __IHomeGroup_FWD_DEFINED__
 1583typedef interface IHomeGroup IHomeGroup;
 1584#ifdef __cplusplus
 1585interface IHomeGroup;
 1586#endif /* __cplusplus */
 1587#endif
 1588
 1589#ifndef __IInitializeWithPropertyStore_FWD_DEFINED__
 1590#define __IInitializeWithPropertyStore_FWD_DEFINED__
 1591typedef interface IInitializeWithPropertyStore IInitializeWithPropertyStore;
 1592#ifdef __cplusplus
 1593interface IInitializeWithPropertyStore;
 1594#endif /* __cplusplus */
 1595#endif
 1596
 1597#ifndef __IOpenSearchSource_FWD_DEFINED__
 1598#define __IOpenSearchSource_FWD_DEFINED__
 1599typedef interface IOpenSearchSource IOpenSearchSource;
 1600#ifdef __cplusplus
 1601interface IOpenSearchSource;
 1602#endif /* __cplusplus */
 1603#endif
 1604
 1605#ifndef __IShellLibrary_FWD_DEFINED__
 1606#define __IShellLibrary_FWD_DEFINED__
 1607typedef interface IShellLibrary IShellLibrary;
 1608#ifdef __cplusplus
 1609interface IShellLibrary;
 1610#endif /* __cplusplus */
 1611#endif
 1612
 1613#ifndef __IPlaybackManagerEvents_FWD_DEFINED__
 1614#define __IPlaybackManagerEvents_FWD_DEFINED__
 1615typedef interface IPlaybackManagerEvents IPlaybackManagerEvents;
 1616#ifdef __cplusplus
 1617interface IPlaybackManagerEvents;
 1618#endif /* __cplusplus */
 1619#endif
 1620
 1621#ifndef __IPlaybackManager_FWD_DEFINED__
 1622#define __IPlaybackManager_FWD_DEFINED__
 1623typedef interface IPlaybackManager IPlaybackManager;
 1624#ifdef __cplusplus
 1625interface IPlaybackManager;
 1626#endif /* __cplusplus */
 1627#endif
 1628
 1629#ifndef __IDefaultFolderMenuInitialize_FWD_DEFINED__
 1630#define __IDefaultFolderMenuInitialize_FWD_DEFINED__
 1631typedef interface IDefaultFolderMenuInitialize IDefaultFolderMenuInitialize;
 1632#ifdef __cplusplus
 1633interface IDefaultFolderMenuInitialize;
 1634#endif /* __cplusplus */
 1635#endif
 1636
 1637#ifndef __IApplicationActivationManager_FWD_DEFINED__
 1638#define __IApplicationActivationManager_FWD_DEFINED__
 1639typedef interface IApplicationActivationManager IApplicationActivationManager;
 1640#ifdef __cplusplus
 1641interface IApplicationActivationManager;
 1642#endif /* __cplusplus */
 1643#endif
 1644
 1645#ifndef __DesktopWallpaper_FWD_DEFINED__
 1646#define __DesktopWallpaper_FWD_DEFINED__
 1647#ifdef __cplusplus
 1648typedef class DesktopWallpaper DesktopWallpaper;
 1649#else
 1650typedef struct DesktopWallpaper DesktopWallpaper;
 1651#endif /* defined __cplusplus */
 1652#endif /* defined __DesktopWallpaper_FWD_DEFINED__ */
 1653
 1654#ifndef __ShellDesktop_FWD_DEFINED__
 1655#define __ShellDesktop_FWD_DEFINED__
 1656#ifdef __cplusplus
 1657typedef class ShellDesktop ShellDesktop;
 1658#else
 1659typedef struct ShellDesktop ShellDesktop;
 1660#endif /* defined __cplusplus */
 1661#endif /* defined __ShellDesktop_FWD_DEFINED__ */
 1662
 1663#ifndef __ShellFSFolder_FWD_DEFINED__
 1664#define __ShellFSFolder_FWD_DEFINED__
 1665#ifdef __cplusplus
 1666typedef class ShellFSFolder ShellFSFolder;
 1667#else
 1668typedef struct ShellFSFolder ShellFSFolder;
 1669#endif /* defined __cplusplus */
 1670#endif /* defined __ShellFSFolder_FWD_DEFINED__ */
 1671
 1672#ifndef __NetworkPlaces_FWD_DEFINED__
 1673#define __NetworkPlaces_FWD_DEFINED__
 1674#ifdef __cplusplus
 1675typedef class NetworkPlaces NetworkPlaces;
 1676#else
 1677typedef struct NetworkPlaces NetworkPlaces;
 1678#endif /* defined __cplusplus */
 1679#endif /* defined __NetworkPlaces_FWD_DEFINED__ */
 1680
 1681#ifndef __ShellLink_FWD_DEFINED__
 1682#define __ShellLink_FWD_DEFINED__
 1683#ifdef __cplusplus
 1684typedef class ShellLink ShellLink;
 1685#else
 1686typedef struct ShellLink ShellLink;
 1687#endif /* defined __cplusplus */
 1688#endif /* defined __ShellLink_FWD_DEFINED__ */
 1689
 1690#ifndef __QueryCancelAutoPlay_FWD_DEFINED__
 1691#define __QueryCancelAutoPlay_FWD_DEFINED__
 1692#ifdef __cplusplus
 1693typedef class QueryCancelAutoPlay QueryCancelAutoPlay;
 1694#else
 1695typedef struct QueryCancelAutoPlay QueryCancelAutoPlay;
 1696#endif /* defined __cplusplus */
 1697#endif /* defined __QueryCancelAutoPlay_FWD_DEFINED__ */
 1698
 1699#ifndef __DriveSizeCategorizer_FWD_DEFINED__
 1700#define __DriveSizeCategorizer_FWD_DEFINED__
 1701#ifdef __cplusplus
 1702typedef class DriveSizeCategorizer DriveSizeCategorizer;
 1703#else
 1704typedef struct DriveSizeCategorizer DriveSizeCategorizer;
 1705#endif /* defined __cplusplus */
 1706#endif /* defined __DriveSizeCategorizer_FWD_DEFINED__ */
 1707
 1708#ifndef __DriveTypeCategorizer_FWD_DEFINED__
 1709#define __DriveTypeCategorizer_FWD_DEFINED__
 1710#ifdef __cplusplus
 1711typedef class DriveTypeCategorizer DriveTypeCategorizer;
 1712#else
 1713typedef struct DriveTypeCategorizer DriveTypeCategorizer;
 1714#endif /* defined __cplusplus */
 1715#endif /* defined __DriveTypeCategorizer_FWD_DEFINED__ */
 1716
 1717#ifndef __FreeSpaceCategorizer_FWD_DEFINED__
 1718#define __FreeSpaceCategorizer_FWD_DEFINED__
 1719#ifdef __cplusplus
 1720typedef class FreeSpaceCategorizer FreeSpaceCategorizer;
 1721#else
 1722typedef struct FreeSpaceCategorizer FreeSpaceCategorizer;
 1723#endif /* defined __cplusplus */
 1724#endif /* defined __FreeSpaceCategorizer_FWD_DEFINED__ */
 1725
 1726#ifndef __TimeCategorizer_FWD_DEFINED__
 1727#define __TimeCategorizer_FWD_DEFINED__
 1728#ifdef __cplusplus
 1729typedef class TimeCategorizer TimeCategorizer;
 1730#else
 1731typedef struct TimeCategorizer TimeCategorizer;
 1732#endif /* defined __cplusplus */
 1733#endif /* defined __TimeCategorizer_FWD_DEFINED__ */
 1734
 1735#ifndef __SizeCategorizer_FWD_DEFINED__
 1736#define __SizeCategorizer_FWD_DEFINED__
 1737#ifdef __cplusplus
 1738typedef class SizeCategorizer SizeCategorizer;
 1739#else
 1740typedef struct SizeCategorizer SizeCategorizer;
 1741#endif /* defined __cplusplus */
 1742#endif /* defined __SizeCategorizer_FWD_DEFINED__ */
 1743
 1744#ifndef __AlphabeticalCategorizer_FWD_DEFINED__
 1745#define __AlphabeticalCategorizer_FWD_DEFINED__
 1746#ifdef __cplusplus
 1747typedef class AlphabeticalCategorizer AlphabeticalCategorizer;
 1748#else
 1749typedef struct AlphabeticalCategorizer AlphabeticalCategorizer;
 1750#endif /* defined __cplusplus */
 1751#endif /* defined __AlphabeticalCategorizer_FWD_DEFINED__ */
 1752
 1753#ifndef __MergedCategorizer_FWD_DEFINED__
 1754#define __MergedCategorizer_FWD_DEFINED__
 1755#ifdef __cplusplus
 1756typedef class MergedCategorizer MergedCategorizer;
 1757#else
 1758typedef struct MergedCategorizer MergedCategorizer;
 1759#endif /* defined __cplusplus */
 1760#endif /* defined __MergedCategorizer_FWD_DEFINED__ */
 1761
 1762#ifndef __ImageProperties_FWD_DEFINED__
 1763#define __ImageProperties_FWD_DEFINED__
 1764#ifdef __cplusplus
 1765typedef class ImageProperties ImageProperties;
 1766#else
 1767typedef struct ImageProperties ImageProperties;
 1768#endif /* defined __cplusplus */
 1769#endif /* defined __ImageProperties_FWD_DEFINED__ */
 1770
 1771#ifndef __PropertiesUI_FWD_DEFINED__
 1772#define __PropertiesUI_FWD_DEFINED__
 1773#ifdef __cplusplus
 1774typedef class PropertiesUI PropertiesUI;
 1775#else
 1776typedef struct PropertiesUI PropertiesUI;
 1777#endif /* defined __cplusplus */
 1778#endif /* defined __PropertiesUI_FWD_DEFINED__ */
 1779
 1780#ifndef __UserNotification_FWD_DEFINED__
 1781#define __UserNotification_FWD_DEFINED__
 1782#ifdef __cplusplus
 1783typedef class UserNotification UserNotification;
 1784#else
 1785typedef struct UserNotification UserNotification;
 1786#endif /* defined __cplusplus */
 1787#endif /* defined __UserNotification_FWD_DEFINED__ */
 1788
 1789#ifndef __CDBurn_FWD_DEFINED__
 1790#define __CDBurn_FWD_DEFINED__
 1791#ifdef __cplusplus
 1792typedef class CDBurn CDBurn;
 1793#else
 1794typedef struct CDBurn CDBurn;
 1795#endif /* defined __cplusplus */
 1796#endif /* defined __CDBurn_FWD_DEFINED__ */
 1797
 1798#ifndef __TaskbarList_FWD_DEFINED__
 1799#define __TaskbarList_FWD_DEFINED__
 1800#ifdef __cplusplus
 1801typedef class TaskbarList TaskbarList;
 1802#else
 1803typedef struct TaskbarList TaskbarList;
 1804#endif /* defined __cplusplus */
 1805#endif /* defined __TaskbarList_FWD_DEFINED__ */
 1806
 1807#ifndef __StartMenuPin_FWD_DEFINED__
 1808#define __StartMenuPin_FWD_DEFINED__
 1809#ifdef __cplusplus
 1810typedef class StartMenuPin StartMenuPin;
 1811#else
 1812typedef struct StartMenuPin StartMenuPin;
 1813#endif /* defined __cplusplus */
 1814#endif /* defined __StartMenuPin_FWD_DEFINED__ */
 1815
 1816#ifndef __WebWizardHost_FWD_DEFINED__
 1817#define __WebWizardHost_FWD_DEFINED__
 1818#ifdef __cplusplus
 1819typedef class WebWizardHost WebWizardHost;
 1820#else
 1821typedef struct WebWizardHost WebWizardHost;
 1822#endif /* defined __cplusplus */
 1823#endif /* defined __WebWizardHost_FWD_DEFINED__ */
 1824
 1825#ifndef __PublishDropTarget_FWD_DEFINED__
 1826#define __PublishDropTarget_FWD_DEFINED__
 1827#ifdef __cplusplus
 1828typedef class PublishDropTarget PublishDropTarget;
 1829#else
 1830typedef struct PublishDropTarget PublishDropTarget;
 1831#endif /* defined __cplusplus */
 1832#endif /* defined __PublishDropTarget_FWD_DEFINED__ */
 1833
 1834#ifndef __PublishingWizard_FWD_DEFINED__
 1835#define __PublishingWizard_FWD_DEFINED__
 1836#ifdef __cplusplus
 1837typedef class PublishingWizard PublishingWizard;
 1838#else
 1839typedef struct PublishingWizard PublishingWizard;
 1840#endif /* defined __cplusplus */
 1841#endif /* defined __PublishingWizard_FWD_DEFINED__ */
 1842
 1843#ifndef __InternetPrintOrdering_FWD_DEFINED__
 1844#define __InternetPrintOrdering_FWD_DEFINED__
 1845#ifdef __cplusplus
 1846typedef class InternetPrintOrdering InternetPrintOrdering;
 1847#else
 1848typedef struct InternetPrintOrdering InternetPrintOrdering;
 1849#endif /* defined __cplusplus */
 1850#endif /* defined __InternetPrintOrdering_FWD_DEFINED__ */
 1851
 1852#ifndef __FolderViewHost_FWD_DEFINED__
 1853#define __FolderViewHost_FWD_DEFINED__
 1854#ifdef __cplusplus
 1855typedef class FolderViewHost FolderViewHost;
 1856#else
 1857typedef struct FolderViewHost FolderViewHost;
 1858#endif /* defined __cplusplus */
 1859#endif /* defined __FolderViewHost_FWD_DEFINED__ */
 1860
 1861#ifndef __ExplorerBrowser_FWD_DEFINED__
 1862#define __ExplorerBrowser_FWD_DEFINED__
 1863#ifdef __cplusplus
 1864typedef class ExplorerBrowser ExplorerBrowser;
 1865#else
 1866typedef struct ExplorerBrowser ExplorerBrowser;
 1867#endif /* defined __cplusplus */
 1868#endif /* defined __ExplorerBrowser_FWD_DEFINED__ */
 1869
 1870#ifndef __ImageRecompress_FWD_DEFINED__
 1871#define __ImageRecompress_FWD_DEFINED__
 1872#ifdef __cplusplus
 1873typedef class ImageRecompress ImageRecompress;
 1874#else
 1875typedef struct ImageRecompress ImageRecompress;
 1876#endif /* defined __cplusplus */
 1877#endif /* defined __ImageRecompress_FWD_DEFINED__ */
 1878
 1879#ifndef __TrayBandSiteService_FWD_DEFINED__
 1880#define __TrayBandSiteService_FWD_DEFINED__
 1881#ifdef __cplusplus
 1882typedef class TrayBandSiteService TrayBandSiteService;
 1883#else
 1884typedef struct TrayBandSiteService TrayBandSiteService;
 1885#endif /* defined __cplusplus */
 1886#endif /* defined __TrayBandSiteService_FWD_DEFINED__ */
 1887
 1888#ifndef __TrayDeskBand_FWD_DEFINED__
 1889#define __TrayDeskBand_FWD_DEFINED__
 1890#ifdef __cplusplus
 1891typedef class TrayDeskBand TrayDeskBand;
 1892#else
 1893typedef struct TrayDeskBand TrayDeskBand;
 1894#endif /* defined __cplusplus */
 1895#endif /* defined __TrayDeskBand_FWD_DEFINED__ */
 1896
 1897#ifndef __AttachmentServices_FWD_DEFINED__
 1898#define __AttachmentServices_FWD_DEFINED__
 1899#ifdef __cplusplus
 1900typedef class AttachmentServices AttachmentServices;
 1901#else
 1902typedef struct AttachmentServices AttachmentServices;
 1903#endif /* defined __cplusplus */
 1904#endif /* defined __AttachmentServices_FWD_DEFINED__ */
 1905
 1906#ifndef __DocPropShellExtension_FWD_DEFINED__
 1907#define __DocPropShellExtension_FWD_DEFINED__
 1908#ifdef __cplusplus
 1909typedef class DocPropShellExtension DocPropShellExtension;
 1910#else
 1911typedef struct DocPropShellExtension DocPropShellExtension;
 1912#endif /* defined __cplusplus */
 1913#endif /* defined __DocPropShellExtension_FWD_DEFINED__ */
 1914
 1915#ifndef __ShellItem_FWD_DEFINED__
 1916#define __ShellItem_FWD_DEFINED__
 1917#ifdef __cplusplus
 1918typedef class ShellItem ShellItem;
 1919#else
 1920typedef struct ShellItem ShellItem;
 1921#endif /* defined __cplusplus */
 1922#endif /* defined __ShellItem_FWD_DEFINED__ */
 1923
 1924#ifndef __NamespaceWalker_FWD_DEFINED__
 1925#define __NamespaceWalker_FWD_DEFINED__
 1926#ifdef __cplusplus
 1927typedef class NamespaceWalker NamespaceWalker;
 1928#else
 1929typedef struct NamespaceWalker NamespaceWalker;
 1930#endif /* defined __cplusplus */
 1931#endif /* defined __NamespaceWalker_FWD_DEFINED__ */
 1932
 1933#ifndef __FileOperation_FWD_DEFINED__
 1934#define __FileOperation_FWD_DEFINED__
 1935#ifdef __cplusplus
 1936typedef class FileOperation FileOperation;
 1937#else
 1938typedef struct FileOperation FileOperation;
 1939#endif /* defined __cplusplus */
 1940#endif /* defined __FileOperation_FWD_DEFINED__ */
 1941
 1942#ifndef __FileOpenDialog_FWD_DEFINED__
 1943#define __FileOpenDialog_FWD_DEFINED__
 1944#ifdef __cplusplus
 1945typedef class FileOpenDialog FileOpenDialog;
 1946#else
 1947typedef struct FileOpenDialog FileOpenDialog;
 1948#endif /* defined __cplusplus */
 1949#endif /* defined __FileOpenDialog_FWD_DEFINED__ */
 1950
 1951#ifndef __FileSaveDialog_FWD_DEFINED__
 1952#define __FileSaveDialog_FWD_DEFINED__
 1953#ifdef __cplusplus
 1954typedef class FileSaveDialog FileSaveDialog;
 1955#else
 1956typedef struct FileSaveDialog FileSaveDialog;
 1957#endif /* defined __cplusplus */
 1958#endif /* defined __FileSaveDialog_FWD_DEFINED__ */
 1959
 1960#ifndef __KnownFolderManager_FWD_DEFINED__
 1961#define __KnownFolderManager_FWD_DEFINED__
 1962#ifdef __cplusplus
 1963typedef class KnownFolderManager KnownFolderManager;
 1964#else
 1965typedef struct KnownFolderManager KnownFolderManager;
 1966#endif /* defined __cplusplus */
 1967#endif /* defined __KnownFolderManager_FWD_DEFINED__ */
 1968
 1969#ifndef __FSCopyHandler_FWD_DEFINED__
 1970#define __FSCopyHandler_FWD_DEFINED__
 1971#ifdef __cplusplus
 1972typedef class FSCopyHandler FSCopyHandler;
 1973#else
 1974typedef struct FSCopyHandler FSCopyHandler;
 1975#endif /* defined __cplusplus */
 1976#endif /* defined __FSCopyHandler_FWD_DEFINED__ */
 1977
 1978#ifndef __SharingConfigurationManager_FWD_DEFINED__
 1979#define __SharingConfigurationManager_FWD_DEFINED__
 1980#ifdef __cplusplus
 1981typedef class SharingConfigurationManager SharingConfigurationManager;
 1982#else
 1983typedef struct SharingConfigurationManager SharingConfigurationManager;
 1984#endif /* defined __cplusplus */
 1985#endif /* defined __SharingConfigurationManager_FWD_DEFINED__ */
 1986
 1987#ifndef __PreviousVersions_FWD_DEFINED__
 1988#define __PreviousVersions_FWD_DEFINED__
 1989#ifdef __cplusplus
 1990typedef class PreviousVersions PreviousVersions;
 1991#else
 1992typedef struct PreviousVersions PreviousVersions;
 1993#endif /* defined __cplusplus */
 1994#endif /* defined __PreviousVersions_FWD_DEFINED__ */
 1995
 1996#ifndef __NetworkConnections_FWD_DEFINED__
 1997#define __NetworkConnections_FWD_DEFINED__
 1998#ifdef __cplusplus
 1999typedef class NetworkConnections NetworkConnections;
 2000#else
 2001typedef struct NetworkConnections NetworkConnections;
 2002#endif /* defined __cplusplus */
 2003#endif /* defined __NetworkConnections_FWD_DEFINED__ */
 2004
 2005#ifndef __NamespaceTreeControl_FWD_DEFINED__
 2006#define __NamespaceTreeControl_FWD_DEFINED__
 2007#ifdef __cplusplus
 2008typedef class NamespaceTreeControl NamespaceTreeControl;
 2009#else
 2010typedef struct NamespaceTreeControl NamespaceTreeControl;
 2011#endif /* defined __cplusplus */
 2012#endif /* defined __NamespaceTreeControl_FWD_DEFINED__ */
 2013
 2014#ifndef __IENamespaceTreeControl_FWD_DEFINED__
 2015#define __IENamespaceTreeControl_FWD_DEFINED__
 2016#ifdef __cplusplus
 2017typedef class IENamespaceTreeControl IENamespaceTreeControl;
 2018#else
 2019typedef struct IENamespaceTreeControl IENamespaceTreeControl;
 2020#endif /* defined __cplusplus */
 2021#endif /* defined __IENamespaceTreeControl_FWD_DEFINED__ */
 2022
 2023#ifndef __ScheduledTasks_FWD_DEFINED__
 2024#define __ScheduledTasks_FWD_DEFINED__
 2025#ifdef __cplusplus
 2026typedef class ScheduledTasks ScheduledTasks;
 2027#else
 2028typedef struct ScheduledTasks ScheduledTasks;
 2029#endif /* defined __cplusplus */
 2030#endif /* defined __ScheduledTasks_FWD_DEFINED__ */
 2031
 2032#ifndef __ApplicationAssociationRegistration_FWD_DEFINED__
 2033#define __ApplicationAssociationRegistration_FWD_DEFINED__
 2034#ifdef __cplusplus
 2035typedef class ApplicationAssociationRegistration ApplicationAssociationRegistration;
 2036#else
 2037typedef struct ApplicationAssociationRegistration ApplicationAssociationRegistration;
 2038#endif /* defined __cplusplus */
 2039#endif /* defined __ApplicationAssociationRegistration_FWD_DEFINED__ */
 2040
 2041#ifndef __ApplicationAssociationRegistrationUI_FWD_DEFINED__
 2042#define __ApplicationAssociationRegistrationUI_FWD_DEFINED__
 2043#ifdef __cplusplus
 2044typedef class ApplicationAssociationRegistrationUI ApplicationAssociationRegistrationUI;
 2045#else
 2046typedef struct ApplicationAssociationRegistrationUI ApplicationAssociationRegistrationUI;
 2047#endif /* defined __cplusplus */
 2048#endif /* defined __ApplicationAssociationRegistrationUI_FWD_DEFINED__ */
 2049
 2050#ifndef __SearchFolderItemFactory_FWD_DEFINED__
 2051#define __SearchFolderItemFactory_FWD_DEFINED__
 2052#ifdef __cplusplus
 2053typedef class SearchFolderItemFactory SearchFolderItemFactory;
 2054#else
 2055typedef struct SearchFolderItemFactory SearchFolderItemFactory;
 2056#endif /* defined __cplusplus */
 2057#endif /* defined __SearchFolderItemFactory_FWD_DEFINED__ */
 2058
 2059#ifndef __OpenControlPanel_FWD_DEFINED__
 2060#define __OpenControlPanel_FWD_DEFINED__
 2061#ifdef __cplusplus
 2062typedef class OpenControlPanel OpenControlPanel;
 2063#else
 2064typedef struct OpenControlPanel OpenControlPanel;
 2065#endif /* defined __cplusplus */
 2066#endif /* defined __OpenControlPanel_FWD_DEFINED__ */
 2067
 2068#ifndef __MailRecipient_FWD_DEFINED__
 2069#define __MailRecipient_FWD_DEFINED__
 2070#ifdef __cplusplus
 2071typedef class MailRecipient MailRecipient;
 2072#else
 2073typedef struct MailRecipient MailRecipient;
 2074#endif /* defined __cplusplus */
 2075#endif /* defined __MailRecipient_FWD_DEFINED__ */
 2076
 2077#ifndef __NetworkExplorerFolder_FWD_DEFINED__
 2078#define __NetworkExplorerFolder_FWD_DEFINED__
 2079#ifdef __cplusplus
 2080typedef class NetworkExplorerFolder NetworkExplorerFolder;
 2081#else
 2082typedef struct NetworkExplorerFolder NetworkExplorerFolder;
 2083#endif /* defined __cplusplus */
 2084#endif /* defined __NetworkExplorerFolder_FWD_DEFINED__ */
 2085
 2086#ifndef __DestinationList_FWD_DEFINED__
 2087#define __DestinationList_FWD_DEFINED__
 2088#ifdef __cplusplus
 2089typedef class DestinationList DestinationList;
 2090#else
 2091typedef struct DestinationList DestinationList;
 2092#endif /* defined __cplusplus */
 2093#endif /* defined __DestinationList_FWD_DEFINED__ */
 2094
 2095#ifndef __ApplicationDestinations_FWD_DEFINED__
 2096#define __ApplicationDestinations_FWD_DEFINED__
 2097#ifdef __cplusplus
 2098typedef class ApplicationDestinations ApplicationDestinations;
 2099#else
 2100typedef struct ApplicationDestinations ApplicationDestinations;
 2101#endif /* defined __cplusplus */
 2102#endif /* defined __ApplicationDestinations_FWD_DEFINED__ */
 2103
 2104#ifndef __ApplicationDocumentLists_FWD_DEFINED__
 2105#define __ApplicationDocumentLists_FWD_DEFINED__
 2106#ifdef __cplusplus
 2107typedef class ApplicationDocumentLists ApplicationDocumentLists;
 2108#else
 2109typedef struct ApplicationDocumentLists ApplicationDocumentLists;
 2110#endif /* defined __cplusplus */
 2111#endif /* defined __ApplicationDocumentLists_FWD_DEFINED__ */
 2112
 2113#ifndef __HomeGroup_FWD_DEFINED__
 2114#define __HomeGroup_FWD_DEFINED__
 2115#ifdef __cplusplus
 2116typedef class HomeGroup HomeGroup;
 2117#else
 2118typedef struct HomeGroup HomeGroup;
 2119#endif /* defined __cplusplus */
 2120#endif /* defined __HomeGroup_FWD_DEFINED__ */
 2121
 2122#ifndef __ShellLibrary_FWD_DEFINED__
 2123#define __ShellLibrary_FWD_DEFINED__
 2124#ifdef __cplusplus
 2125typedef class ShellLibrary ShellLibrary;
 2126#else
 2127typedef struct ShellLibrary ShellLibrary;
 2128#endif /* defined __cplusplus */
 2129#endif /* defined __ShellLibrary_FWD_DEFINED__ */
 2130
 2131#ifndef __AppStartupLink_FWD_DEFINED__
 2132#define __AppStartupLink_FWD_DEFINED__
 2133#ifdef __cplusplus
 2134typedef class AppStartupLink AppStartupLink;
 2135#else
 2136typedef struct AppStartupLink AppStartupLink;
 2137#endif /* defined __cplusplus */
 2138#endif /* defined __AppStartupLink_FWD_DEFINED__ */
 2139
 2140#ifndef __EnumerableObjectCollection_FWD_DEFINED__
 2141#define __EnumerableObjectCollection_FWD_DEFINED__
 2142#ifdef __cplusplus
 2143typedef class EnumerableObjectCollection EnumerableObjectCollection;
 2144#else
 2145typedef struct EnumerableObjectCollection EnumerableObjectCollection;
 2146#endif /* defined __cplusplus */
 2147#endif /* defined __EnumerableObjectCollection_FWD_DEFINED__ */
 2148
 2149#ifndef __DesktopGadget_FWD_DEFINED__
 2150#define __DesktopGadget_FWD_DEFINED__
 2151#ifdef __cplusplus
 2152typedef class DesktopGadget DesktopGadget;
 2153#else
 2154typedef struct DesktopGadget DesktopGadget;
 2155#endif /* defined __cplusplus */
 2156#endif /* defined __DesktopGadget_FWD_DEFINED__ */
 2157
 2158#ifndef __PlaybackManager_FWD_DEFINED__
 2159#define __PlaybackManager_FWD_DEFINED__
 2160#ifdef __cplusplus
 2161typedef class PlaybackManager PlaybackManager;
 2162#else
 2163typedef struct PlaybackManager PlaybackManager;
 2164#endif /* defined __cplusplus */
 2165#endif /* defined __PlaybackManager_FWD_DEFINED__ */
 2166
 2167#ifndef __AccessibilityDockingService_FWD_DEFINED__
 2168#define __AccessibilityDockingService_FWD_DEFINED__
 2169#ifdef __cplusplus
 2170typedef class AccessibilityDockingService AccessibilityDockingService;
 2171#else
 2172typedef struct AccessibilityDockingService AccessibilityDockingService;
 2173#endif /* defined __cplusplus */
 2174#endif /* defined __AccessibilityDockingService_FWD_DEFINED__ */
 2175
 2176#ifndef __FrameworkInputPane_FWD_DEFINED__
 2177#define __FrameworkInputPane_FWD_DEFINED__
 2178#ifdef __cplusplus
 2179typedef class FrameworkInputPane FrameworkInputPane;
 2180#else
 2181typedef struct FrameworkInputPane FrameworkInputPane;
 2182#endif /* defined __cplusplus */
 2183#endif /* defined __FrameworkInputPane_FWD_DEFINED__ */
 2184
 2185#ifndef __DefFolderMenu_FWD_DEFINED__
 2186#define __DefFolderMenu_FWD_DEFINED__
 2187#ifdef __cplusplus
 2188typedef class DefFolderMenu DefFolderMenu;
 2189#else
 2190typedef struct DefFolderMenu DefFolderMenu;
 2191#endif /* defined __cplusplus */
 2192#endif /* defined __DefFolderMenu_FWD_DEFINED__ */
 2193
 2194#ifndef __AppVisibility_FWD_DEFINED__
 2195#define __AppVisibility_FWD_DEFINED__
 2196#ifdef __cplusplus
 2197typedef class AppVisibility AppVisibility;
 2198#else
 2199typedef struct AppVisibility AppVisibility;
 2200#endif /* defined __cplusplus */
 2201#endif /* defined __AppVisibility_FWD_DEFINED__ */
 2202
 2203#ifndef __AppShellVerbHandler_FWD_DEFINED__
 2204#define __AppShellVerbHandler_FWD_DEFINED__
 2205#ifdef __cplusplus
 2206typedef class AppShellVerbHandler AppShellVerbHandler;
 2207#else
 2208typedef struct AppShellVerbHandler AppShellVerbHandler;
 2209#endif /* defined __cplusplus */
 2210#endif /* defined __AppShellVerbHandler_FWD_DEFINED__ */
 2211
 2212#ifndef __ExecuteUnknown_FWD_DEFINED__
 2213#define __ExecuteUnknown_FWD_DEFINED__
 2214#ifdef __cplusplus
 2215typedef class ExecuteUnknown ExecuteUnknown;
 2216#else
 2217typedef struct ExecuteUnknown ExecuteUnknown;
 2218#endif /* defined __cplusplus */
 2219#endif /* defined __ExecuteUnknown_FWD_DEFINED__ */
 2220
 2221#ifndef __PackageDebugSettings_FWD_DEFINED__
 2222#define __PackageDebugSettings_FWD_DEFINED__
 2223#ifdef __cplusplus
 2224typedef class PackageDebugSettings PackageDebugSettings;
 2225#else
 2226typedef struct PackageDebugSettings PackageDebugSettings;
 2227#endif /* defined __cplusplus */
 2228#endif /* defined __PackageDebugSettings_FWD_DEFINED__ */
 2229
 2230#ifndef __ApplicationActivationManager_FWD_DEFINED__
 2231#define __ApplicationActivationManager_FWD_DEFINED__
 2232#ifdef __cplusplus
 2233typedef class ApplicationActivationManager ApplicationActivationManager;
 2234#else
 2235typedef struct ApplicationActivationManager ApplicationActivationManager;
 2236#endif /* defined __cplusplus */
 2237#endif /* defined __ApplicationActivationManager_FWD_DEFINED__ */
 2238
 2239#ifndef __ApplicationDesignModeSettings_FWD_DEFINED__
 2240#define __ApplicationDesignModeSettings_FWD_DEFINED__
 2241#ifdef __cplusplus
 2242typedef class ApplicationDesignModeSettings ApplicationDesignModeSettings;
 2243#else
 2244typedef struct ApplicationDesignModeSettings ApplicationDesignModeSettings;
 2245#endif /* defined __cplusplus */
 2246#endif /* defined __ApplicationDesignModeSettings_FWD_DEFINED__ */
 2247
 2248#ifndef __ExecuteFolder_FWD_DEFINED__
 2249#define __ExecuteFolder_FWD_DEFINED__
 2250#ifdef __cplusplus
 2251typedef class ExecuteFolder ExecuteFolder;
 2252#else
 2253typedef struct ExecuteFolder ExecuteFolder;
 2254#endif /* defined __cplusplus */
 2255#endif /* defined __ExecuteFolder_FWD_DEFINED__ */
 2256
 2257#ifndef __VirtualDesktopManager_FWD_DEFINED__
 2258#define __VirtualDesktopManager_FWD_DEFINED__
 2259#ifdef __cplusplus
 2260typedef class VirtualDesktopManager VirtualDesktopManager;
 2261#else
 2262typedef struct VirtualDesktopManager VirtualDesktopManager;
 2263#endif /* defined __cplusplus */
 2264#endif /* defined __VirtualDesktopManager_FWD_DEFINED__ */
 2265
 2266#ifndef __IAssocHandlerInvoker_FWD_DEFINED__
 2267#define __IAssocHandlerInvoker_FWD_DEFINED__
 2268typedef interface IAssocHandlerInvoker IAssocHandlerInvoker;
 2269#ifdef __cplusplus
 2270interface IAssocHandlerInvoker;
 2271#endif /* __cplusplus */
 2272#endif
 2273
 2274#ifndef __IAssocHandler_FWD_DEFINED__
 2275#define __IAssocHandler_FWD_DEFINED__
 2276typedef interface IAssocHandler IAssocHandler;
 2277#ifdef __cplusplus
 2278interface IAssocHandler;
 2279#endif /* __cplusplus */
 2280#endif
 2281
 2282#ifndef __IEnumAssocHandlers_FWD_DEFINED__
 2283#define __IEnumAssocHandlers_FWD_DEFINED__
 2284typedef interface IEnumAssocHandlers IEnumAssocHandlers;
 2285#ifdef __cplusplus
 2286interface IEnumAssocHandlers;
 2287#endif /* __cplusplus */
 2288#endif
 2289
 2290#ifndef __IDataObjectProvider_FWD_DEFINED__
 2291#define __IDataObjectProvider_FWD_DEFINED__
 2292typedef interface IDataObjectProvider IDataObjectProvider;
 2293#ifdef __cplusplus
 2294interface IDataObjectProvider;
 2295#endif /* __cplusplus */
 2296#endif
 2297
 2298#ifndef __IDataTransferManagerInterop_FWD_DEFINED__
 2299#define __IDataTransferManagerInterop_FWD_DEFINED__
 2300typedef interface IDataTransferManagerInterop IDataTransferManagerInterop;
 2301#ifdef __cplusplus
 2302interface IDataTransferManagerInterop;
 2303#endif /* __cplusplus */
 2304#endif
 2305
 2306#ifndef __IFrameworkInputPaneHandler_FWD_DEFINED__
 2307#define __IFrameworkInputPaneHandler_FWD_DEFINED__
 2308typedef interface IFrameworkInputPaneHandler IFrameworkInputPaneHandler;
 2309#ifdef __cplusplus
 2310interface IFrameworkInputPaneHandler;
 2311#endif /* __cplusplus */
 2312#endif
 2313
 2314#ifndef __IFrameworkInputPane_FWD_DEFINED__
 2315#define __IFrameworkInputPane_FWD_DEFINED__
 2316typedef interface IFrameworkInputPane IFrameworkInputPane;
 2317#ifdef __cplusplus
 2318interface IFrameworkInputPane;
 2319#endif /* __cplusplus */
 2320#endif
 2321
 2322#ifndef __ISearchableApplication_FWD_DEFINED__
 2323#define __ISearchableApplication_FWD_DEFINED__
 2324typedef interface ISearchableApplication ISearchableApplication;
 2325#ifdef __cplusplus
 2326interface ISearchableApplication;
 2327#endif /* __cplusplus */
 2328#endif
 2329
 2330#ifndef __IAccessibilityDockingServiceCallback_FWD_DEFINED__
 2331#define __IAccessibilityDockingServiceCallback_FWD_DEFINED__
 2332typedef interface IAccessibilityDockingServiceCallback IAccessibilityDockingServiceCallback;
 2333#ifdef __cplusplus
 2334interface IAccessibilityDockingServiceCallback;
 2335#endif /* __cplusplus */
 2336#endif
 2337
 2338#ifndef __IAccessibilityDockingService_FWD_DEFINED__
 2339#define __IAccessibilityDockingService_FWD_DEFINED__
 2340typedef interface IAccessibilityDockingService IAccessibilityDockingService;
 2341#ifdef __cplusplus
 2342interface IAccessibilityDockingService;
 2343#endif /* __cplusplus */
 2344#endif
 2345
 2346#ifndef __IAppVisibilityEvents_FWD_DEFINED__
 2347#define __IAppVisibilityEvents_FWD_DEFINED__
 2348typedef interface IAppVisibilityEvents IAppVisibilityEvents;
 2349#ifdef __cplusplus
 2350interface IAppVisibilityEvents;
 2351#endif /* __cplusplus */
 2352#endif
 2353
 2354#ifndef __IAppVisibility_FWD_DEFINED__
 2355#define __IAppVisibility_FWD_DEFINED__
 2356typedef interface IAppVisibility IAppVisibility;
 2357#ifdef __cplusplus
 2358interface IAppVisibility;
 2359#endif /* __cplusplus */
 2360#endif
 2361
 2362#ifndef __IPackageExecutionStateChangeNotification_FWD_DEFINED__
 2363#define __IPackageExecutionStateChangeNotification_FWD_DEFINED__
 2364typedef interface IPackageExecutionStateChangeNotification IPackageExecutionStateChangeNotification;
 2365#ifdef __cplusplus
 2366interface IPackageExecutionStateChangeNotification;
 2367#endif /* __cplusplus */
 2368#endif
 2369
 2370#ifndef __IPackageDebugSettings_FWD_DEFINED__
 2371#define __IPackageDebugSettings_FWD_DEFINED__
 2372typedef interface IPackageDebugSettings IPackageDebugSettings;
 2373#ifdef __cplusplus
 2374interface IPackageDebugSettings;
 2375#endif /* __cplusplus */
 2376#endif
 2377
 2378#ifndef __IExecuteCommandApplicationHostEnvironment_FWD_DEFINED__
 2379#define __IExecuteCommandApplicationHostEnvironment_FWD_DEFINED__
 2380typedef interface IExecuteCommandApplicationHostEnvironment IExecuteCommandApplicationHostEnvironment;
 2381#ifdef __cplusplus
 2382interface IExecuteCommandApplicationHostEnvironment;
 2383#endif /* __cplusplus */
 2384#endif
 2385
 2386#ifndef __IExecuteCommandHost_FWD_DEFINED__
 2387#define __IExecuteCommandHost_FWD_DEFINED__
 2388typedef interface IExecuteCommandHost IExecuteCommandHost;
 2389#ifdef __cplusplus
 2390interface IExecuteCommandHost;
 2391#endif /* __cplusplus */
 2392#endif
 2393
 2394#ifndef __IApplicationDesignModeSettings_FWD_DEFINED__
 2395#define __IApplicationDesignModeSettings_FWD_DEFINED__
 2396typedef interface IApplicationDesignModeSettings IApplicationDesignModeSettings;
 2397#ifdef __cplusplus
 2398interface IApplicationDesignModeSettings;
 2399#endif /* __cplusplus */
 2400#endif
 2401
 2402#ifndef __IInitializeWithWindow_FWD_DEFINED__
 2403#define __IInitializeWithWindow_FWD_DEFINED__
 2404typedef interface IInitializeWithWindow IInitializeWithWindow;
 2405#ifdef __cplusplus
 2406interface IInitializeWithWindow;
 2407#endif /* __cplusplus */
 2408#endif
 2409
 2410#ifndef __IHandlerInfo_FWD_DEFINED__
 2411#define __IHandlerInfo_FWD_DEFINED__
 2412typedef interface IHandlerInfo IHandlerInfo;
 2413#ifdef __cplusplus
 2414interface IHandlerInfo;
 2415#endif /* __cplusplus */
 2416#endif
 2417
 2418#ifndef __IHandlerActivationHost_FWD_DEFINED__
 2419#define __IHandlerActivationHost_FWD_DEFINED__
 2420typedef interface IHandlerActivationHost IHandlerActivationHost;
 2421#ifdef __cplusplus
 2422interface IHandlerActivationHost;
 2423#endif /* __cplusplus */
 2424#endif
 2425
 2426/* Headers for imported files */
 2427
 2428#include <objidl.h>
 2429#include <oleidl.h>
 2430#include <oaidl.h>
 2431#include <docobj.h>
 2432#include <shtypes.h>
 2433#include <servprov.h>
 2434#include <comcat.h>
 2435#include <propidl.h>
 2436#include <prsht.h>
 2437#include <msxml.h>
 2438#include <wtypes.h>
 2439#include <propsys.h>
 2440#include <objectarray.h>
 2441#include <structuredquerycondition.h>
 2442
 2443#ifdef __cplusplus
 2444extern "C" {
 2445#endif
 2446
 2447/**
 2448 * This file is part of the mingw-w64 runtime package.
 2449 * No warranty is given; refer to the file DISCLAIMER within this package.
 2450 */
 2451
 2452#include <winapifamily.h>
 2453
 2454#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
 2455
 2456#include <_mingw_unicode.h>
 2457
 2458
 2459#include <sherrors.h>
 2460
 2461#ifndef SHSTDAPI
 2462#ifdef _SHELL32_
 2463#define SHSTDAPI STDAPI
 2464#define SHSTDAPI_(type) STDAPI_(type)
 2465#else
 2466#define SHSTDAPI EXTERN_C DECLSPEC_IMPORT HRESULT STDAPICALLTYPE
 2467#define SHSTDAPI_(type) EXTERN_C DECLSPEC_IMPORT type STDAPICALLTYPE
 2468#endif
 2469#endif
 2470
 2471#define CMF_NORMAL 0x0
 2472#define CMF_DEFAULTONLY 0x1
 2473#define CMF_VERBSONLY 0x2
 2474#define CMF_EXPLORE 0x4
 2475#define CMF_NOVERBS 0x8
 2476#define CMF_CANRENAME 0x10
 2477#define CMF_NODEFAULT 0x20
 2478#if NTDDI_VERSION < NTDDI_VISTA
 2479#define CMF_INCLUDESTATIC 0x40
 2480#endif
 2481#if NTDDI_VERSION >= NTDDI_VISTA
 2482#define CMF_ITEMMENU 0x80
 2483#endif
 2484#define CMF_EXTENDEDVERBS 0x100
 2485#if NTDDI_VERSION >= NTDDI_VISTA
 2486#define CMF_DISABLEDVERBS 0x200
 2487#endif
 2488#define CMF_ASYNCVERBSTATE 0x400
 2489#define CMF_OPTIMIZEFORINVOKE 0x800
 2490#define CMF_SYNCCASCADEMENU 0x1000
 2491#define CMF_DONOTPICKDEFAULT 0x2000
 2492#define CMF_RESERVED 0xffff0000
 2493
 2494#define GCS_VERBA 0x0
 2495#define GCS_HELPTEXTA 0x1
 2496#define GCS_VALIDATEA 0x2
 2497#define GCS_VERBW 0x4
 2498#define GCS_HELPTEXTW 0x5
 2499#define GCS_VALIDATEW 0x6
 2500#define GCS_VERBICONW 0x14
 2501#define GCS_UNICODE 0x4
 2502
 2503#define GCS_VERB __MINGW_NAME_AW(GCS_VERB)
 2504#define GCS_HELPTEXT __MINGW_NAME_AW(GCS_HELPTEXT)
 2505#define GCS_VALIDATE __MINGW_NAME_AW(GCS_VALIDATE)
 2506
 2507#define CMDSTR_NEWFOLDERA "NewFolder"
 2508#define CMDSTR_VIEWLISTA "ViewList"
 2509#define CMDSTR_VIEWDETAILSA "ViewDetails"
 2510#define CMDSTR_NEWFOLDERW L"NewFolder"
 2511#define CMDSTR_VIEWLISTW L"ViewList"
 2512#define CMDSTR_VIEWDETAILSW L"ViewDetails"
 2513
 2514#define CMDSTR_NEWFOLDER __MINGW_NAME_AW(CMDSTR_NEWFOLDER)
 2515#define CMDSTR_VIEWLIST __MINGW_NAME_AW(CMDSTR_VIEWLIST)
 2516#define CMDSTR_VIEWDETAILS __MINGW_NAME_AW(CMDSTR_VIEWDETAILS)
 2517
 2518#define CMIC_MASK_HOTKEY SEE_MASK_HOTKEY
 2519#define CMIC_MASK_ICON SEE_MASK_ICON
 2520#define CMIC_MASK_FLAG_NO_UI SEE_MASK_FLAG_NO_UI
 2521#define CMIC_MASK_UNICODE SEE_MASK_UNICODE
 2522#define CMIC_MASK_NO_CONSOLE SEE_MASK_NO_CONSOLE
 2523#if NTDDI_VERSION < NTDDI_VISTA
 2524#define CMIC_MASK_HASLINKNAME SEE_MASK_HASLINKNAME
 2525#define CMIC_MASK_HASTITLE SEE_MASK_HASTITLE
 2526#endif
 2527#define CMIC_MASK_FLAG_SEP_VDM SEE_MASK_FLAG_SEPVDM
 2528#define CMIC_MASK_ASYNCOK SEE_MASK_ASYNCOK
 2529#if NTDDI_VERSION >= NTDDI_VISTA
 2530#define CMIC_MASK_NOASYNC SEE_MASK_NOASYNC
 2531#endif
 2532#define CMIC_MASK_SHIFT_DOWN 0x10000000
 2533#define CMIC_MASK_CONTROL_DOWN 0x40000000
 2534#define CMIC_MASK_FLAG_LOG_USAGE SEE_MASK_FLAG_LOG_USAGE
 2535#define CMIC_MASK_NOZONECHECKS SEE_MASK_NOZONECHECKS
 2536#define CMIC_MASK_PTINVOKE 0x20000000
 2537
 2538#include <pshpack8.h>
 2539typedef struct _CMINVOKECOMMANDINFO {
 2540    DWORD cbSize;
 2541    DWORD fMask;
 2542    HWND hwnd;
 2543    LPCSTR lpVerb;
 2544    LPCSTR lpParameters;
 2545    LPCSTR lpDirectory;
 2546    int nShow;
 2547    DWORD dwHotKey;
 2548    HANDLE hIcon;
 2549} CMINVOKECOMMANDINFO;
 2550
 2551typedef CMINVOKECOMMANDINFO *LPCMINVOKECOMMANDINFO;
 2552typedef const CMINVOKECOMMANDINFO *PCCMINVOKECOMMANDINFO;
 2553
 2554typedef struct _CMINVOKECOMMANDINFOEX {
 2555    DWORD cbSize;
 2556    DWORD fMask;
 2557    HWND hwnd;
 2558    LPCSTR lpVerb;
 2559    LPCSTR lpParameters;
 2560    LPCSTR lpDirectory;
 2561    int nShow;
 2562    DWORD dwHotKey;
 2563    HANDLE hIcon;
 2564    LPCSTR lpTitle;
 2565    LPCWSTR lpVerbW;
 2566    LPCWSTR lpParametersW;
 2567    LPCWSTR lpDirectoryW;
 2568    LPCWSTR lpTitleW;
 2569    POINT ptInvoke;
 2570} CMINVOKECOMMANDINFOEX;
 2571
 2572typedef CMINVOKECOMMANDINFOEX *LPCMINVOKECOMMANDINFOEX;
 2573typedef const CMINVOKECOMMANDINFOEX *PCCMINVOKECOMMANDINFOEX;
 2574#include <poppack.h>
 2575
 2576/*****************************************************************************
 2577 * IContextMenu interface
 2578 */
 2579#ifndef __IContextMenu_INTERFACE_DEFINED__
 2580#define __IContextMenu_INTERFACE_DEFINED__
 2581
 2582DEFINE_GUID(IID_IContextMenu, 0x000214e4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 2583#if defined(__cplusplus) && !defined(CINTERFACE)
 2584MIDL_INTERFACE("000214e4-0000-0000-c000-000000000046")
 2585IContextMenu : public IUnknown
 2586{
 2587    virtual HRESULT STDMETHODCALLTYPE QueryContextMenu(
 2588        HMENU hmenu,
 2589        UINT indexMenu,
 2590        UINT idCmdFirst,
 2591        UINT idCmdLast,
 2592        UINT uFlags) = 0;
 2593
 2594    virtual HRESULT STDMETHODCALLTYPE InvokeCommand(
 2595        CMINVOKECOMMANDINFO *pici) = 0;
 2596
 2597    virtual HRESULT STDMETHODCALLTYPE GetCommandString(
 2598        UINT_PTR idCmd,
 2599        UINT uType,
 2600        UINT *pReserved,
 2601        CHAR *pszName,
 2602        UINT cchMax) = 0;
 2603
 2604};
 2605#ifdef __CRT_UUID_DECL
 2606__CRT_UUID_DECL(IContextMenu, 0x000214e4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
 2607#endif
 2608#else
 2609typedef struct IContextMenuVtbl {
 2610    BEGIN_INTERFACE
 2611
 2612    /*** IUnknown methods ***/
 2613    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2614        IContextMenu *This,
 2615        REFIID riid,
 2616        void **ppvObject);
 2617
 2618    ULONG (STDMETHODCALLTYPE *AddRef)(
 2619        IContextMenu *This);
 2620
 2621    ULONG (STDMETHODCALLTYPE *Release)(
 2622        IContextMenu *This);
 2623
 2624    /*** IContextMenu methods ***/
 2625    HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
 2626        IContextMenu *This,
 2627        HMENU hmenu,
 2628        UINT indexMenu,
 2629        UINT idCmdFirst,
 2630        UINT idCmdLast,
 2631        UINT uFlags);
 2632
 2633    HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
 2634        IContextMenu *This,
 2635        CMINVOKECOMMANDINFO *pici);
 2636
 2637    HRESULT (STDMETHODCALLTYPE *GetCommandString)(
 2638        IContextMenu *This,
 2639        UINT_PTR idCmd,
 2640        UINT uType,
 2641        UINT *pReserved,
 2642        CHAR *pszName,
 2643        UINT cchMax);
 2644
 2645    END_INTERFACE
 2646} IContextMenuVtbl;
 2647
 2648interface IContextMenu {
 2649    CONST_VTBL IContextMenuVtbl* lpVtbl;
 2650};
 2651
 2652#ifdef COBJMACROS
 2653#ifndef WIDL_C_INLINE_WRAPPERS
 2654/*** IUnknown methods ***/
 2655#define IContextMenu_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2656#define IContextMenu_AddRef(This) (This)->lpVtbl->AddRef(This)
 2657#define IContextMenu_Release(This) (This)->lpVtbl->Release(This)
 2658/*** IContextMenu methods ***/
 2659#define IContextMenu_QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags) (This)->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags)
 2660#define IContextMenu_InvokeCommand(This,pici) (This)->lpVtbl->InvokeCommand(This,pici)
 2661#define IContextMenu_GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax) (This)->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax)
 2662#else
 2663/*** IUnknown methods ***/
 2664static inline HRESULT IContextMenu_QueryInterface(IContextMenu* This,REFIID riid,void **ppvObject) {
 2665    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2666}
 2667static inline ULONG IContextMenu_AddRef(IContextMenu* This) {
 2668    return This->lpVtbl->AddRef(This);
 2669}
 2670static inline ULONG IContextMenu_Release(IContextMenu* This) {
 2671    return This->lpVtbl->Release(This);
 2672}
 2673/*** IContextMenu methods ***/
 2674static inline HRESULT IContextMenu_QueryContextMenu(IContextMenu* This,HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) {
 2675    return This->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags);
 2676}
 2677static inline HRESULT IContextMenu_InvokeCommand(IContextMenu* This,CMINVOKECOMMANDINFO *pici) {
 2678    return This->lpVtbl->InvokeCommand(This,pici);
 2679}
 2680static inline HRESULT IContextMenu_GetCommandString(IContextMenu* This,UINT_PTR idCmd,UINT uType,UINT *pReserved,CHAR *pszName,UINT cchMax) {
 2681    return This->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax);
 2682}
 2683#endif
 2684#endif
 2685
 2686#endif
 2687
 2688
 2689#endif  /* __IContextMenu_INTERFACE_DEFINED__ */
 2690
 2691typedef IContextMenu *LPCONTEXTMENU;
 2692
 2693/*****************************************************************************
 2694 * IContextMenu2 interface
 2695 */
 2696#ifndef __IContextMenu2_INTERFACE_DEFINED__
 2697#define __IContextMenu2_INTERFACE_DEFINED__
 2698
 2699DEFINE_GUID(IID_IContextMenu2, 0x000214f4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 2700#if defined(__cplusplus) && !defined(CINTERFACE)
 2701MIDL_INTERFACE("000214f4-0000-0000-c000-000000000046")
 2702IContextMenu2 : public IContextMenu
 2703{
 2704    virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg(
 2705        UINT uMsg,
 2706        WPARAM wParam,
 2707        LPARAM lParam) = 0;
 2708
 2709};
 2710#ifdef __CRT_UUID_DECL
 2711__CRT_UUID_DECL(IContextMenu2, 0x000214f4, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
 2712#endif
 2713#else
 2714typedef struct IContextMenu2Vtbl {
 2715    BEGIN_INTERFACE
 2716
 2717    /*** IUnknown methods ***/
 2718    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2719        IContextMenu2 *This,
 2720        REFIID riid,
 2721        void **ppvObject);
 2722
 2723    ULONG (STDMETHODCALLTYPE *AddRef)(
 2724        IContextMenu2 *This);
 2725
 2726    ULONG (STDMETHODCALLTYPE *Release)(
 2727        IContextMenu2 *This);
 2728
 2729    /*** IContextMenu methods ***/
 2730    HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
 2731        IContextMenu2 *This,
 2732        HMENU hmenu,
 2733        UINT indexMenu,
 2734        UINT idCmdFirst,
 2735        UINT idCmdLast,
 2736        UINT uFlags);
 2737
 2738    HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
 2739        IContextMenu2 *This,
 2740        CMINVOKECOMMANDINFO *pici);
 2741
 2742    HRESULT (STDMETHODCALLTYPE *GetCommandString)(
 2743        IContextMenu2 *This,
 2744        UINT_PTR idCmd,
 2745        UINT uType,
 2746        UINT *pReserved,
 2747        CHAR *pszName,
 2748        UINT cchMax);
 2749
 2750    /*** IContextMenu2 methods ***/
 2751    HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
 2752        IContextMenu2 *This,
 2753        UINT uMsg,
 2754        WPARAM wParam,
 2755        LPARAM lParam);
 2756
 2757    END_INTERFACE
 2758} IContextMenu2Vtbl;
 2759
 2760interface IContextMenu2 {
 2761    CONST_VTBL IContextMenu2Vtbl* lpVtbl;
 2762};
 2763
 2764#ifdef COBJMACROS
 2765#ifndef WIDL_C_INLINE_WRAPPERS
 2766/*** IUnknown methods ***/
 2767#define IContextMenu2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2768#define IContextMenu2_AddRef(This) (This)->lpVtbl->AddRef(This)
 2769#define IContextMenu2_Release(This) (This)->lpVtbl->Release(This)
 2770/*** IContextMenu methods ***/
 2771#define IContextMenu2_QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags) (This)->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags)
 2772#define IContextMenu2_InvokeCommand(This,pici) (This)->lpVtbl->InvokeCommand(This,pici)
 2773#define IContextMenu2_GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax) (This)->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax)
 2774/*** IContextMenu2 methods ***/
 2775#define IContextMenu2_HandleMenuMsg(This,uMsg,wParam,lParam) (This)->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam)
 2776#else
 2777/*** IUnknown methods ***/
 2778static inline HRESULT IContextMenu2_QueryInterface(IContextMenu2* This,REFIID riid,void **ppvObject) {
 2779    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2780}
 2781static inline ULONG IContextMenu2_AddRef(IContextMenu2* This) {
 2782    return This->lpVtbl->AddRef(This);
 2783}
 2784static inline ULONG IContextMenu2_Release(IContextMenu2* This) {
 2785    return This->lpVtbl->Release(This);
 2786}
 2787/*** IContextMenu methods ***/
 2788static inline HRESULT IContextMenu2_QueryContextMenu(IContextMenu2* This,HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) {
 2789    return This->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags);
 2790}
 2791static inline HRESULT IContextMenu2_InvokeCommand(IContextMenu2* This,CMINVOKECOMMANDINFO *pici) {
 2792    return This->lpVtbl->InvokeCommand(This,pici);
 2793}
 2794static inline HRESULT IContextMenu2_GetCommandString(IContextMenu2* This,UINT_PTR idCmd,UINT uType,UINT *pReserved,CHAR *pszName,UINT cchMax) {
 2795    return This->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax);
 2796}
 2797/*** IContextMenu2 methods ***/
 2798static inline HRESULT IContextMenu2_HandleMenuMsg(IContextMenu2* This,UINT uMsg,WPARAM wParam,LPARAM lParam) {
 2799    return This->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam);
 2800}
 2801#endif
 2802#endif
 2803
 2804#endif
 2805
 2806
 2807#endif  /* __IContextMenu2_INTERFACE_DEFINED__ */
 2808
 2809typedef IContextMenu2 *LPCONTEXTMENU2;
 2810
 2811/*****************************************************************************
 2812 * IContextMenu3 interface
 2813 */
 2814#ifndef __IContextMenu3_INTERFACE_DEFINED__
 2815#define __IContextMenu3_INTERFACE_DEFINED__
 2816
 2817DEFINE_GUID(IID_IContextMenu3, 0xbcfce0a0, 0xec17, 0x11d0, 0x8d,0x10, 0x00,0xa0,0xc9,0x0f,0x27,0x19);
 2818#if defined(__cplusplus) && !defined(CINTERFACE)
 2819MIDL_INTERFACE("bcfce0a0-ec17-11d0-8d10-00a0c90f2719")
 2820IContextMenu3 : public IContextMenu2
 2821{
 2822    virtual HRESULT STDMETHODCALLTYPE HandleMenuMsg2(
 2823        UINT uMsg,
 2824        WPARAM wParam,
 2825        LPARAM lParam,
 2826        LRESULT *plResult) = 0;
 2827
 2828};
 2829#ifdef __CRT_UUID_DECL
 2830__CRT_UUID_DECL(IContextMenu3, 0xbcfce0a0, 0xec17, 0x11d0, 0x8d,0x10, 0x00,0xa0,0xc9,0x0f,0x27,0x19)
 2831#endif
 2832#else
 2833typedef struct IContextMenu3Vtbl {
 2834    BEGIN_INTERFACE
 2835
 2836    /*** IUnknown methods ***/
 2837    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2838        IContextMenu3 *This,
 2839        REFIID riid,
 2840        void **ppvObject);
 2841
 2842    ULONG (STDMETHODCALLTYPE *AddRef)(
 2843        IContextMenu3 *This);
 2844
 2845    ULONG (STDMETHODCALLTYPE *Release)(
 2846        IContextMenu3 *This);
 2847
 2848    /*** IContextMenu methods ***/
 2849    HRESULT (STDMETHODCALLTYPE *QueryContextMenu)(
 2850        IContextMenu3 *This,
 2851        HMENU hmenu,
 2852        UINT indexMenu,
 2853        UINT idCmdFirst,
 2854        UINT idCmdLast,
 2855        UINT uFlags);
 2856
 2857    HRESULT (STDMETHODCALLTYPE *InvokeCommand)(
 2858        IContextMenu3 *This,
 2859        CMINVOKECOMMANDINFO *pici);
 2860
 2861    HRESULT (STDMETHODCALLTYPE *GetCommandString)(
 2862        IContextMenu3 *This,
 2863        UINT_PTR idCmd,
 2864        UINT uType,
 2865        UINT *pReserved,
 2866        CHAR *pszName,
 2867        UINT cchMax);
 2868
 2869    /*** IContextMenu2 methods ***/
 2870    HRESULT (STDMETHODCALLTYPE *HandleMenuMsg)(
 2871        IContextMenu3 *This,
 2872        UINT uMsg,
 2873        WPARAM wParam,
 2874        LPARAM lParam);
 2875
 2876    /*** IContextMenu3 methods ***/
 2877    HRESULT (STDMETHODCALLTYPE *HandleMenuMsg2)(
 2878        IContextMenu3 *This,
 2879        UINT uMsg,
 2880        WPARAM wParam,
 2881        LPARAM lParam,
 2882        LRESULT *plResult);
 2883
 2884    END_INTERFACE
 2885} IContextMenu3Vtbl;
 2886
 2887interface IContextMenu3 {
 2888    CONST_VTBL IContextMenu3Vtbl* lpVtbl;
 2889};
 2890
 2891#ifdef COBJMACROS
 2892#ifndef WIDL_C_INLINE_WRAPPERS
 2893/*** IUnknown methods ***/
 2894#define IContextMenu3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 2895#define IContextMenu3_AddRef(This) (This)->lpVtbl->AddRef(This)
 2896#define IContextMenu3_Release(This) (This)->lpVtbl->Release(This)
 2897/*** IContextMenu methods ***/
 2898#define IContextMenu3_QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags) (This)->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags)
 2899#define IContextMenu3_InvokeCommand(This,pici) (This)->lpVtbl->InvokeCommand(This,pici)
 2900#define IContextMenu3_GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax) (This)->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax)
 2901/*** IContextMenu2 methods ***/
 2902#define IContextMenu3_HandleMenuMsg(This,uMsg,wParam,lParam) (This)->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam)
 2903/*** IContextMenu3 methods ***/
 2904#define IContextMenu3_HandleMenuMsg2(This,uMsg,wParam,lParam,plResult) (This)->lpVtbl->HandleMenuMsg2(This,uMsg,wParam,lParam,plResult)
 2905#else
 2906/*** IUnknown methods ***/
 2907static inline HRESULT IContextMenu3_QueryInterface(IContextMenu3* This,REFIID riid,void **ppvObject) {
 2908    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 2909}
 2910static inline ULONG IContextMenu3_AddRef(IContextMenu3* This) {
 2911    return This->lpVtbl->AddRef(This);
 2912}
 2913static inline ULONG IContextMenu3_Release(IContextMenu3* This) {
 2914    return This->lpVtbl->Release(This);
 2915}
 2916/*** IContextMenu methods ***/
 2917static inline HRESULT IContextMenu3_QueryContextMenu(IContextMenu3* This,HMENU hmenu,UINT indexMenu,UINT idCmdFirst,UINT idCmdLast,UINT uFlags) {
 2918    return This->lpVtbl->QueryContextMenu(This,hmenu,indexMenu,idCmdFirst,idCmdLast,uFlags);
 2919}
 2920static inline HRESULT IContextMenu3_InvokeCommand(IContextMenu3* This,CMINVOKECOMMANDINFO *pici) {
 2921    return This->lpVtbl->InvokeCommand(This,pici);
 2922}
 2923static inline HRESULT IContextMenu3_GetCommandString(IContextMenu3* This,UINT_PTR idCmd,UINT uType,UINT *pReserved,CHAR *pszName,UINT cchMax) {
 2924    return This->lpVtbl->GetCommandString(This,idCmd,uType,pReserved,pszName,cchMax);
 2925}
 2926/*** IContextMenu2 methods ***/
 2927static inline HRESULT IContextMenu3_HandleMenuMsg(IContextMenu3* This,UINT uMsg,WPARAM wParam,LPARAM lParam) {
 2928    return This->lpVtbl->HandleMenuMsg(This,uMsg,wParam,lParam);
 2929}
 2930/*** IContextMenu3 methods ***/
 2931static inline HRESULT IContextMenu3_HandleMenuMsg2(IContextMenu3* This,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *plResult) {
 2932    return This->lpVtbl->HandleMenuMsg2(This,uMsg,wParam,lParam,plResult);
 2933}
 2934#endif
 2935#endif
 2936
 2937#endif
 2938
 2939
 2940#endif  /* __IContextMenu3_INTERFACE_DEFINED__ */
 2941
 2942typedef IContextMenu3 *LPCONTEXTMENU3;
 2943
 2944/*****************************************************************************
 2945 * IExecuteCommand interface
 2946 */
 2947#ifndef __IExecuteCommand_INTERFACE_DEFINED__
 2948#define __IExecuteCommand_INTERFACE_DEFINED__
 2949
 2950DEFINE_GUID(IID_IExecuteCommand, 0x7f9185b0, 0xcb92, 0x43c5, 0x80,0xa9, 0x92,0x27,0x7a,0x4f,0x7b,0x54);
 2951#if defined(__cplusplus) && !defined(CINTERFACE)
 2952MIDL_INTERFACE("7f9185b0-cb92-43c5-80a9-92277a4f7b54")
 2953IExecuteCommand : public IUnknown
 2954{
 2955    virtual HRESULT STDMETHODCALLTYPE SetKeyState(
 2956        DWORD grfKeyState) = 0;
 2957
 2958    virtual HRESULT STDMETHODCALLTYPE SetParameters(
 2959        LPCWSTR pszParameters) = 0;
 2960
 2961    virtual HRESULT STDMETHODCALLTYPE SetPosition(
 2962        POINT pt) = 0;
 2963
 2964    virtual HRESULT STDMETHODCALLTYPE SetShowWindow(
 2965        int nShow) = 0;
 2966
 2967    virtual HRESULT STDMETHODCALLTYPE SetNoShowUI(
 2968        WINBOOL fNoShowUI) = 0;
 2969
 2970    virtual HRESULT STDMETHODCALLTYPE SetDirectory(
 2971        LPCWSTR pszDirectory) = 0;
 2972
 2973    virtual HRESULT STDMETHODCALLTYPE Execute(
 2974        ) = 0;
 2975
 2976};
 2977#ifdef __CRT_UUID_DECL
 2978__CRT_UUID_DECL(IExecuteCommand, 0x7f9185b0, 0xcb92, 0x43c5, 0x80,0xa9, 0x92,0x27,0x7a,0x4f,0x7b,0x54)
 2979#endif
 2980#else
 2981typedef struct IExecuteCommandVtbl {
 2982    BEGIN_INTERFACE
 2983
 2984    /*** IUnknown methods ***/
 2985    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 2986        IExecuteCommand *This,
 2987        REFIID riid,
 2988        void **ppvObject);
 2989
 2990    ULONG (STDMETHODCALLTYPE *AddRef)(
 2991        IExecuteCommand *This);
 2992
 2993    ULONG (STDMETHODCALLTYPE *Release)(
 2994        IExecuteCommand *This);
 2995
 2996    /*** IExecuteCommand methods ***/
 2997    HRESULT (STDMETHODCALLTYPE *SetKeyState)(
 2998        IExecuteCommand *This,
 2999        DWORD grfKeyState);
 3000
 3001    HRESULT (STDMETHODCALLTYPE *SetParameters)(
 3002        IExecuteCommand *This,
 3003        LPCWSTR pszParameters);
 3004
 3005    HRESULT (STDMETHODCALLTYPE *SetPosition)(
 3006        IExecuteCommand *This,
 3007        POINT pt);
 3008
 3009    HRESULT (STDMETHODCALLTYPE *SetShowWindow)(
 3010        IExecuteCommand *This,
 3011        int nShow);
 3012
 3013    HRESULT (STDMETHODCALLTYPE *SetNoShowUI)(
 3014        IExecuteCommand *This,
 3015        WINBOOL fNoShowUI);
 3016
 3017    HRESULT (STDMETHODCALLTYPE *SetDirectory)(
 3018        IExecuteCommand *This,
 3019        LPCWSTR pszDirectory);
 3020
 3021    HRESULT (STDMETHODCALLTYPE *Execute)(
 3022        IExecuteCommand *This);
 3023
 3024    END_INTERFACE
 3025} IExecuteCommandVtbl;
 3026
 3027interface IExecuteCommand {
 3028    CONST_VTBL IExecuteCommandVtbl* lpVtbl;
 3029};
 3030
 3031#ifdef COBJMACROS
 3032#ifndef WIDL_C_INLINE_WRAPPERS
 3033/*** IUnknown methods ***/
 3034#define IExecuteCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3035#define IExecuteCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
 3036#define IExecuteCommand_Release(This) (This)->lpVtbl->Release(This)
 3037/*** IExecuteCommand methods ***/
 3038#define IExecuteCommand_SetKeyState(This,grfKeyState) (This)->lpVtbl->SetKeyState(This,grfKeyState)
 3039#define IExecuteCommand_SetParameters(This,pszParameters) (This)->lpVtbl->SetParameters(This,pszParameters)
 3040#define IExecuteCommand_SetPosition(This,pt) (This)->lpVtbl->SetPosition(This,pt)
 3041#define IExecuteCommand_SetShowWindow(This,nShow) (This)->lpVtbl->SetShowWindow(This,nShow)
 3042#define IExecuteCommand_SetNoShowUI(This,fNoShowUI) (This)->lpVtbl->SetNoShowUI(This,fNoShowUI)
 3043#define IExecuteCommand_SetDirectory(This,pszDirectory) (This)->lpVtbl->SetDirectory(This,pszDirectory)
 3044#define IExecuteCommand_Execute(This) (This)->lpVtbl->Execute(This)
 3045#else
 3046/*** IUnknown methods ***/
 3047static inline HRESULT IExecuteCommand_QueryInterface(IExecuteCommand* This,REFIID riid,void **ppvObject) {
 3048    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3049}
 3050static inline ULONG IExecuteCommand_AddRef(IExecuteCommand* This) {
 3051    return This->lpVtbl->AddRef(This);
 3052}
 3053static inline ULONG IExecuteCommand_Release(IExecuteCommand* This) {
 3054    return This->lpVtbl->Release(This);
 3055}
 3056/*** IExecuteCommand methods ***/
 3057static inline HRESULT IExecuteCommand_SetKeyState(IExecuteCommand* This,DWORD grfKeyState) {
 3058    return This->lpVtbl->SetKeyState(This,grfKeyState);
 3059}
 3060static inline HRESULT IExecuteCommand_SetParameters(IExecuteCommand* This,LPCWSTR pszParameters) {
 3061    return This->lpVtbl->SetParameters(This,pszParameters);
 3062}
 3063static inline HRESULT IExecuteCommand_SetPosition(IExecuteCommand* This,POINT pt) {
 3064    return This->lpVtbl->SetPosition(This,pt);
 3065}
 3066static inline HRESULT IExecuteCommand_SetShowWindow(IExecuteCommand* This,int nShow) {
 3067    return This->lpVtbl->SetShowWindow(This,nShow);
 3068}
 3069static inline HRESULT IExecuteCommand_SetNoShowUI(IExecuteCommand* This,WINBOOL fNoShowUI) {
 3070    return This->lpVtbl->SetNoShowUI(This,fNoShowUI);
 3071}
 3072static inline HRESULT IExecuteCommand_SetDirectory(IExecuteCommand* This,LPCWSTR pszDirectory) {
 3073    return This->lpVtbl->SetDirectory(This,pszDirectory);
 3074}
 3075static inline HRESULT IExecuteCommand_Execute(IExecuteCommand* This) {
 3076    return This->lpVtbl->Execute(This);
 3077}
 3078#endif
 3079#endif
 3080
 3081#endif
 3082
 3083
 3084#endif  /* __IExecuteCommand_INTERFACE_DEFINED__ */
 3085
 3086
 3087/*****************************************************************************
 3088 * IPersistFolder interface
 3089 */
 3090#ifndef __IPersistFolder_INTERFACE_DEFINED__
 3091#define __IPersistFolder_INTERFACE_DEFINED__
 3092
 3093DEFINE_GUID(IID_IPersistFolder, 0x000214ea, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 3094#if defined(__cplusplus) && !defined(CINTERFACE)
 3095MIDL_INTERFACE("000214ea-0000-0000-c000-000000000046")
 3096IPersistFolder : public IPersist
 3097{
 3098    virtual HRESULT STDMETHODCALLTYPE Initialize(
 3099        PCIDLIST_ABSOLUTE pidl) = 0;
 3100
 3101};
 3102#ifdef __CRT_UUID_DECL
 3103__CRT_UUID_DECL(IPersistFolder, 0x000214ea, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
 3104#endif
 3105#else
 3106typedef struct IPersistFolderVtbl {
 3107    BEGIN_INTERFACE
 3108
 3109    /*** IUnknown methods ***/
 3110    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3111        IPersistFolder *This,
 3112        REFIID riid,
 3113        void **ppvObject);
 3114
 3115    ULONG (STDMETHODCALLTYPE *AddRef)(
 3116        IPersistFolder *This);
 3117
 3118    ULONG (STDMETHODCALLTYPE *Release)(
 3119        IPersistFolder *This);
 3120
 3121    /*** IPersist methods ***/
 3122    HRESULT (STDMETHODCALLTYPE *GetClassID)(
 3123        IPersistFolder *This,
 3124        CLSID *pClassID);
 3125
 3126    /*** IPersistFolder methods ***/
 3127    HRESULT (STDMETHODCALLTYPE *Initialize)(
 3128        IPersistFolder *This,
 3129        PCIDLIST_ABSOLUTE pidl);
 3130
 3131    END_INTERFACE
 3132} IPersistFolderVtbl;
 3133
 3134interface IPersistFolder {
 3135    CONST_VTBL IPersistFolderVtbl* lpVtbl;
 3136};
 3137
 3138#ifdef COBJMACROS
 3139#ifndef WIDL_C_INLINE_WRAPPERS
 3140/*** IUnknown methods ***/
 3141#define IPersistFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3142#define IPersistFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
 3143#define IPersistFolder_Release(This) (This)->lpVtbl->Release(This)
 3144/*** IPersist methods ***/
 3145#define IPersistFolder_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
 3146/*** IPersistFolder methods ***/
 3147#define IPersistFolder_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
 3148#else
 3149/*** IUnknown methods ***/
 3150static inline HRESULT IPersistFolder_QueryInterface(IPersistFolder* This,REFIID riid,void **ppvObject) {
 3151    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3152}
 3153static inline ULONG IPersistFolder_AddRef(IPersistFolder* This) {
 3154    return This->lpVtbl->AddRef(This);
 3155}
 3156static inline ULONG IPersistFolder_Release(IPersistFolder* This) {
 3157    return This->lpVtbl->Release(This);
 3158}
 3159/*** IPersist methods ***/
 3160static inline HRESULT IPersistFolder_GetClassID(IPersistFolder* This,CLSID *pClassID) {
 3161    return This->lpVtbl->GetClassID(This,pClassID);
 3162}
 3163/*** IPersistFolder methods ***/
 3164static inline HRESULT IPersistFolder_Initialize(IPersistFolder* This,PCIDLIST_ABSOLUTE pidl) {
 3165    return This->lpVtbl->Initialize(This,pidl);
 3166}
 3167#endif
 3168#endif
 3169
 3170#endif
 3171
 3172
 3173#endif  /* __IPersistFolder_INTERFACE_DEFINED__ */
 3174
 3175typedef IPersistFolder *LPPERSISTFOLDER;
 3176
 3177#define IRTIR_TASK_NOT_RUNNING   0
 3178#define IRTIR_TASK_RUNNING       1
 3179#define IRTIR_TASK_SUSPENDED     2
 3180#define IRTIR_TASK_PENDING       3
 3181#define IRTIR_TASK_FINISHED      4
 3182
 3183/*****************************************************************************
 3184 * IRunnableTask interface
 3185 */
 3186#ifndef __IRunnableTask_INTERFACE_DEFINED__
 3187#define __IRunnableTask_INTERFACE_DEFINED__
 3188
 3189DEFINE_GUID(IID_IRunnableTask, 0x85788d00, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec);
 3190#if defined(__cplusplus) && !defined(CINTERFACE)
 3191MIDL_INTERFACE("85788d00-6807-11d0-b810-00c04fd706ec")
 3192IRunnableTask : public IUnknown
 3193{
 3194    virtual HRESULT STDMETHODCALLTYPE Run(
 3195        ) = 0;
 3196
 3197    virtual HRESULT STDMETHODCALLTYPE Kill(
 3198        WINBOOL bWait) = 0;
 3199
 3200    virtual HRESULT STDMETHODCALLTYPE Suspend(
 3201        ) = 0;
 3202
 3203    virtual HRESULT STDMETHODCALLTYPE Resume(
 3204        ) = 0;
 3205
 3206    virtual ULONG STDMETHODCALLTYPE IsRunning(
 3207        ) = 0;
 3208
 3209};
 3210#ifdef __CRT_UUID_DECL
 3211__CRT_UUID_DECL(IRunnableTask, 0x85788d00, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec)
 3212#endif
 3213#else
 3214typedef struct IRunnableTaskVtbl {
 3215    BEGIN_INTERFACE
 3216
 3217    /*** IUnknown methods ***/
 3218    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3219        IRunnableTask *This,
 3220        REFIID riid,
 3221        void **ppvObject);
 3222
 3223    ULONG (STDMETHODCALLTYPE *AddRef)(
 3224        IRunnableTask *This);
 3225
 3226    ULONG (STDMETHODCALLTYPE *Release)(
 3227        IRunnableTask *This);
 3228
 3229    /*** IRunnableTask methods ***/
 3230    HRESULT (STDMETHODCALLTYPE *Run)(
 3231        IRunnableTask *This);
 3232
 3233    HRESULT (STDMETHODCALLTYPE *Kill)(
 3234        IRunnableTask *This,
 3235        WINBOOL bWait);
 3236
 3237    HRESULT (STDMETHODCALLTYPE *Suspend)(
 3238        IRunnableTask *This);
 3239
 3240    HRESULT (STDMETHODCALLTYPE *Resume)(
 3241        IRunnableTask *This);
 3242
 3243    ULONG (STDMETHODCALLTYPE *IsRunning)(
 3244        IRunnableTask *This);
 3245
 3246    END_INTERFACE
 3247} IRunnableTaskVtbl;
 3248
 3249interface IRunnableTask {
 3250    CONST_VTBL IRunnableTaskVtbl* lpVtbl;
 3251};
 3252
 3253#ifdef COBJMACROS
 3254#ifndef WIDL_C_INLINE_WRAPPERS
 3255/*** IUnknown methods ***/
 3256#define IRunnableTask_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3257#define IRunnableTask_AddRef(This) (This)->lpVtbl->AddRef(This)
 3258#define IRunnableTask_Release(This) (This)->lpVtbl->Release(This)
 3259/*** IRunnableTask methods ***/
 3260#define IRunnableTask_Run(This) (This)->lpVtbl->Run(This)
 3261#define IRunnableTask_Kill(This,bWait) (This)->lpVtbl->Kill(This,bWait)
 3262#define IRunnableTask_Suspend(This) (This)->lpVtbl->Suspend(This)
 3263#define IRunnableTask_Resume(This) (This)->lpVtbl->Resume(This)
 3264#define IRunnableTask_IsRunning(This) (This)->lpVtbl->IsRunning(This)
 3265#else
 3266/*** IUnknown methods ***/
 3267static inline HRESULT IRunnableTask_QueryInterface(IRunnableTask* This,REFIID riid,void **ppvObject) {
 3268    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3269}
 3270static inline ULONG IRunnableTask_AddRef(IRunnableTask* This) {
 3271    return This->lpVtbl->AddRef(This);
 3272}
 3273static inline ULONG IRunnableTask_Release(IRunnableTask* This) {
 3274    return This->lpVtbl->Release(This);
 3275}
 3276/*** IRunnableTask methods ***/
 3277static inline HRESULT IRunnableTask_Run(IRunnableTask* This) {
 3278    return This->lpVtbl->Run(This);
 3279}
 3280static inline HRESULT IRunnableTask_Kill(IRunnableTask* This,WINBOOL bWait) {
 3281    return This->lpVtbl->Kill(This,bWait);
 3282}
 3283static inline HRESULT IRunnableTask_Suspend(IRunnableTask* This) {
 3284    return This->lpVtbl->Suspend(This);
 3285}
 3286static inline HRESULT IRunnableTask_Resume(IRunnableTask* This) {
 3287    return This->lpVtbl->Resume(This);
 3288}
 3289static inline ULONG IRunnableTask_IsRunning(IRunnableTask* This) {
 3290    return This->lpVtbl->IsRunning(This);
 3291}
 3292#endif
 3293#endif
 3294
 3295#endif
 3296
 3297
 3298#endif  /* __IRunnableTask_INTERFACE_DEFINED__ */
 3299
 3300
 3301#define TOID_NULL GUID_NULL
 3302#define ITSAT_DEFAULT_LPARAM ((DWORD_PTR)-1)
 3303
 3304#define ITSAT_DEFAULT_PRIORITY 0x10000000
 3305#define ITSAT_MAX_PRIORITY 0x7fffffff
 3306#define ITSAT_MIN_PRIORITY 0x00000000
 3307
 3308#define ITSSFLAG_COMPLETE_ON_DESTROY 0x0
 3309#define ITSSFLAG_KILL_ON_DESTROY 0x1
 3310
 3311#define ITSSFLAG_FLAGS_MASK 0x3
 3312
 3313#define ITSS_THREAD_DESTROY_DEFAULT_TIMEOUT (10 * 1000)
 3314#define ITSS_THREAD_TERMINATE_TIMEOUT (INFINITE)
 3315#define ITSS_THREAD_TIMEOUT_NO_CHANGE (INFINITE - 1)
 3316
 3317/*****************************************************************************
 3318 * IShellTaskScheduler interface
 3319 */
 3320#ifndef __IShellTaskScheduler_INTERFACE_DEFINED__
 3321#define __IShellTaskScheduler_INTERFACE_DEFINED__
 3322
 3323DEFINE_GUID(IID_IShellTaskScheduler, 0x6ccb7be0, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec);
 3324#if defined(__cplusplus) && !defined(CINTERFACE)
 3325MIDL_INTERFACE("6ccb7be0-6807-11d0-b810-00c04fd706ec")
 3326IShellTaskScheduler : public IUnknown
 3327{
 3328    virtual HRESULT STDMETHODCALLTYPE AddTask(
 3329        IRunnableTask *prt,
 3330        REFTASKOWNERID rtoid,
 3331        DWORD_PTR lParam,
 3332        DWORD dwPriority) = 0;
 3333
 3334    virtual HRESULT STDMETHODCALLTYPE RemoveTasks(
 3335        REFTASKOWNERID rtoid,
 3336        DWORD_PTR lParam,
 3337        WINBOOL bWaitIfRunning) = 0;
 3338
 3339    virtual UINT STDMETHODCALLTYPE CountTasks(
 3340        REFTASKOWNERID rtoid) = 0;
 3341
 3342    virtual HRESULT STDMETHODCALLTYPE Status(
 3343        DWORD dwReleaseStatus,
 3344        DWORD dwThreadTimeout) = 0;
 3345
 3346};
 3347#ifdef __CRT_UUID_DECL
 3348__CRT_UUID_DECL(IShellTaskScheduler, 0x6ccb7be0, 0x6807, 0x11d0, 0xb8,0x10, 0x00,0xc0,0x4f,0xd7,0x06,0xec)
 3349#endif
 3350#else
 3351typedef struct IShellTaskSchedulerVtbl {
 3352    BEGIN_INTERFACE
 3353
 3354    /*** IUnknown methods ***/
 3355    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3356        IShellTaskScheduler *This,
 3357        REFIID riid,
 3358        void **ppvObject);
 3359
 3360    ULONG (STDMETHODCALLTYPE *AddRef)(
 3361        IShellTaskScheduler *This);
 3362
 3363    ULONG (STDMETHODCALLTYPE *Release)(
 3364        IShellTaskScheduler *This);
 3365
 3366    /*** IShellTaskScheduler methods ***/
 3367    HRESULT (STDMETHODCALLTYPE *AddTask)(
 3368        IShellTaskScheduler *This,
 3369        IRunnableTask *prt,
 3370        REFTASKOWNERID rtoid,
 3371        DWORD_PTR lParam,
 3372        DWORD dwPriority);
 3373
 3374    HRESULT (STDMETHODCALLTYPE *RemoveTasks)(
 3375        IShellTaskScheduler *This,
 3376        REFTASKOWNERID rtoid,
 3377        DWORD_PTR lParam,
 3378        WINBOOL bWaitIfRunning);
 3379
 3380    UINT (STDMETHODCALLTYPE *CountTasks)(
 3381        IShellTaskScheduler *This,
 3382        REFTASKOWNERID rtoid);
 3383
 3384    HRESULT (STDMETHODCALLTYPE *Status)(
 3385        IShellTaskScheduler *This,
 3386        DWORD dwReleaseStatus,
 3387        DWORD dwThreadTimeout);
 3388
 3389    END_INTERFACE
 3390} IShellTaskSchedulerVtbl;
 3391
 3392interface IShellTaskScheduler {
 3393    CONST_VTBL IShellTaskSchedulerVtbl* lpVtbl;
 3394};
 3395
 3396#ifdef COBJMACROS
 3397#ifndef WIDL_C_INLINE_WRAPPERS
 3398/*** IUnknown methods ***/
 3399#define IShellTaskScheduler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3400#define IShellTaskScheduler_AddRef(This) (This)->lpVtbl->AddRef(This)
 3401#define IShellTaskScheduler_Release(This) (This)->lpVtbl->Release(This)
 3402/*** IShellTaskScheduler methods ***/
 3403#define IShellTaskScheduler_AddTask(This,prt,rtoid,lParam,dwPriority) (This)->lpVtbl->AddTask(This,prt,rtoid,lParam,dwPriority)
 3404#define IShellTaskScheduler_RemoveTasks(This,rtoid,lParam,bWaitIfRunning) (This)->lpVtbl->RemoveTasks(This,rtoid,lParam,bWaitIfRunning)
 3405#define IShellTaskScheduler_CountTasks(This,rtoid) (This)->lpVtbl->CountTasks(This,rtoid)
 3406#define IShellTaskScheduler_Status(This,dwReleaseStatus,dwThreadTimeout) (This)->lpVtbl->Status(This,dwReleaseStatus,dwThreadTimeout)
 3407#else
 3408/*** IUnknown methods ***/
 3409static inline HRESULT IShellTaskScheduler_QueryInterface(IShellTaskScheduler* This,REFIID riid,void **ppvObject) {
 3410    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3411}
 3412static inline ULONG IShellTaskScheduler_AddRef(IShellTaskScheduler* This) {
 3413    return This->lpVtbl->AddRef(This);
 3414}
 3415static inline ULONG IShellTaskScheduler_Release(IShellTaskScheduler* This) {
 3416    return This->lpVtbl->Release(This);
 3417}
 3418/*** IShellTaskScheduler methods ***/
 3419static inline HRESULT IShellTaskScheduler_AddTask(IShellTaskScheduler* This,IRunnableTask *prt,REFTASKOWNERID rtoid,DWORD_PTR lParam,DWORD dwPriority) {
 3420    return This->lpVtbl->AddTask(This,prt,rtoid,lParam,dwPriority);
 3421}
 3422static inline HRESULT IShellTaskScheduler_RemoveTasks(IShellTaskScheduler* This,REFTASKOWNERID rtoid,DWORD_PTR lParam,WINBOOL bWaitIfRunning) {
 3423    return This->lpVtbl->RemoveTasks(This,rtoid,lParam,bWaitIfRunning);
 3424}
 3425static inline UINT IShellTaskScheduler_CountTasks(IShellTaskScheduler* This,REFTASKOWNERID rtoid) {
 3426    return This->lpVtbl->CountTasks(This,rtoid);
 3427}
 3428static inline HRESULT IShellTaskScheduler_Status(IShellTaskScheduler* This,DWORD dwReleaseStatus,DWORD dwThreadTimeout) {
 3429    return This->lpVtbl->Status(This,dwReleaseStatus,dwThreadTimeout);
 3430}
 3431#endif
 3432#endif
 3433
 3434#endif
 3435
 3436
 3437#endif  /* __IShellTaskScheduler_INTERFACE_DEFINED__ */
 3438
 3439
 3440#define SID_ShellTaskScheduler IID_IShellTaskScheduler
 3441
 3442/*****************************************************************************
 3443 * IQueryCodePage interface
 3444 */
 3445#ifndef __IQueryCodePage_INTERFACE_DEFINED__
 3446#define __IQueryCodePage_INTERFACE_DEFINED__
 3447
 3448DEFINE_GUID(IID_IQueryCodePage, 0xc7b236ce, 0xee80, 0x11d0, 0x98,0x5f, 0x00,0x60,0x08,0x05,0x93,0x82);
 3449#if defined(__cplusplus) && !defined(CINTERFACE)
 3450MIDL_INTERFACE("c7b236ce-ee80-11d0-985f-006008059382")
 3451IQueryCodePage : public IUnknown
 3452{
 3453    virtual HRESULT STDMETHODCALLTYPE GetCodePage(
 3454        UINT *puiCodePage) = 0;
 3455
 3456    virtual HRESULT STDMETHODCALLTYPE SetCodePage(
 3457        UINT uiCodePage) = 0;
 3458
 3459};
 3460#ifdef __CRT_UUID_DECL
 3461__CRT_UUID_DECL(IQueryCodePage, 0xc7b236ce, 0xee80, 0x11d0, 0x98,0x5f, 0x00,0x60,0x08,0x05,0x93,0x82)
 3462#endif
 3463#else
 3464typedef struct IQueryCodePageVtbl {
 3465    BEGIN_INTERFACE
 3466
 3467    /*** IUnknown methods ***/
 3468    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3469        IQueryCodePage *This,
 3470        REFIID riid,
 3471        void **ppvObject);
 3472
 3473    ULONG (STDMETHODCALLTYPE *AddRef)(
 3474        IQueryCodePage *This);
 3475
 3476    ULONG (STDMETHODCALLTYPE *Release)(
 3477        IQueryCodePage *This);
 3478
 3479    /*** IQueryCodePage methods ***/
 3480    HRESULT (STDMETHODCALLTYPE *GetCodePage)(
 3481        IQueryCodePage *This,
 3482        UINT *puiCodePage);
 3483
 3484    HRESULT (STDMETHODCALLTYPE *SetCodePage)(
 3485        IQueryCodePage *This,
 3486        UINT uiCodePage);
 3487
 3488    END_INTERFACE
 3489} IQueryCodePageVtbl;
 3490
 3491interface IQueryCodePage {
 3492    CONST_VTBL IQueryCodePageVtbl* lpVtbl;
 3493};
 3494
 3495#ifdef COBJMACROS
 3496#ifndef WIDL_C_INLINE_WRAPPERS
 3497/*** IUnknown methods ***/
 3498#define IQueryCodePage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3499#define IQueryCodePage_AddRef(This) (This)->lpVtbl->AddRef(This)
 3500#define IQueryCodePage_Release(This) (This)->lpVtbl->Release(This)
 3501/*** IQueryCodePage methods ***/
 3502#define IQueryCodePage_GetCodePage(This,puiCodePage) (This)->lpVtbl->GetCodePage(This,puiCodePage)
 3503#define IQueryCodePage_SetCodePage(This,uiCodePage) (This)->lpVtbl->SetCodePage(This,uiCodePage)
 3504#else
 3505/*** IUnknown methods ***/
 3506static inline HRESULT IQueryCodePage_QueryInterface(IQueryCodePage* This,REFIID riid,void **ppvObject) {
 3507    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3508}
 3509static inline ULONG IQueryCodePage_AddRef(IQueryCodePage* This) {
 3510    return This->lpVtbl->AddRef(This);
 3511}
 3512static inline ULONG IQueryCodePage_Release(IQueryCodePage* This) {
 3513    return This->lpVtbl->Release(This);
 3514}
 3515/*** IQueryCodePage methods ***/
 3516static inline HRESULT IQueryCodePage_GetCodePage(IQueryCodePage* This,UINT *puiCodePage) {
 3517    return This->lpVtbl->GetCodePage(This,puiCodePage);
 3518}
 3519static inline HRESULT IQueryCodePage_SetCodePage(IQueryCodePage* This,UINT uiCodePage) {
 3520    return This->lpVtbl->SetCodePage(This,uiCodePage);
 3521}
 3522#endif
 3523#endif
 3524
 3525#endif
 3526
 3527
 3528#endif  /* __IQueryCodePage_INTERFACE_DEFINED__ */
 3529
 3530
 3531/*****************************************************************************
 3532 * IPersistFolder2 interface
 3533 */
 3534#ifndef __IPersistFolder2_INTERFACE_DEFINED__
 3535#define __IPersistFolder2_INTERFACE_DEFINED__
 3536
 3537DEFINE_GUID(IID_IPersistFolder2, 0x1ac3d9f0, 0x175c, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f);
 3538#if defined(__cplusplus) && !defined(CINTERFACE)
 3539MIDL_INTERFACE("1ac3d9f0-175c-11d1-95be-00609797ea4f")
 3540IPersistFolder2 : public IPersistFolder
 3541{
 3542    virtual HRESULT STDMETHODCALLTYPE GetCurFolder(
 3543        PIDLIST_ABSOLUTE *ppidl) = 0;
 3544
 3545};
 3546#ifdef __CRT_UUID_DECL
 3547__CRT_UUID_DECL(IPersistFolder2, 0x1ac3d9f0, 0x175c, 0x11d1, 0x95,0xbe, 0x00,0x60,0x97,0x97,0xea,0x4f)
 3548#endif
 3549#else
 3550typedef struct IPersistFolder2Vtbl {
 3551    BEGIN_INTERFACE
 3552
 3553    /*** IUnknown methods ***/
 3554    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3555        IPersistFolder2 *This,
 3556        REFIID riid,
 3557        void **ppvObject);
 3558
 3559    ULONG (STDMETHODCALLTYPE *AddRef)(
 3560        IPersistFolder2 *This);
 3561
 3562    ULONG (STDMETHODCALLTYPE *Release)(
 3563        IPersistFolder2 *This);
 3564
 3565    /*** IPersist methods ***/
 3566    HRESULT (STDMETHODCALLTYPE *GetClassID)(
 3567        IPersistFolder2 *This,
 3568        CLSID *pClassID);
 3569
 3570    /*** IPersistFolder methods ***/
 3571    HRESULT (STDMETHODCALLTYPE *Initialize)(
 3572        IPersistFolder2 *This,
 3573        PCIDLIST_ABSOLUTE pidl);
 3574
 3575    /*** IPersistFolder2 methods ***/
 3576    HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
 3577        IPersistFolder2 *This,
 3578        PIDLIST_ABSOLUTE *ppidl);
 3579
 3580    END_INTERFACE
 3581} IPersistFolder2Vtbl;
 3582
 3583interface IPersistFolder2 {
 3584    CONST_VTBL IPersistFolder2Vtbl* lpVtbl;
 3585};
 3586
 3587#ifdef COBJMACROS
 3588#ifndef WIDL_C_INLINE_WRAPPERS
 3589/*** IUnknown methods ***/
 3590#define IPersistFolder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3591#define IPersistFolder2_AddRef(This) (This)->lpVtbl->AddRef(This)
 3592#define IPersistFolder2_Release(This) (This)->lpVtbl->Release(This)
 3593/*** IPersist methods ***/
 3594#define IPersistFolder2_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
 3595/*** IPersistFolder methods ***/
 3596#define IPersistFolder2_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
 3597/*** IPersistFolder2 methods ***/
 3598#define IPersistFolder2_GetCurFolder(This,ppidl) (This)->lpVtbl->GetCurFolder(This,ppidl)
 3599#else
 3600/*** IUnknown methods ***/
 3601static inline HRESULT IPersistFolder2_QueryInterface(IPersistFolder2* This,REFIID riid,void **ppvObject) {
 3602    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3603}
 3604static inline ULONG IPersistFolder2_AddRef(IPersistFolder2* This) {
 3605    return This->lpVtbl->AddRef(This);
 3606}
 3607static inline ULONG IPersistFolder2_Release(IPersistFolder2* This) {
 3608    return This->lpVtbl->Release(This);
 3609}
 3610/*** IPersist methods ***/
 3611static inline HRESULT IPersistFolder2_GetClassID(IPersistFolder2* This,CLSID *pClassID) {
 3612    return This->lpVtbl->GetClassID(This,pClassID);
 3613}
 3614/*** IPersistFolder methods ***/
 3615static inline HRESULT IPersistFolder2_Initialize(IPersistFolder2* This,PCIDLIST_ABSOLUTE pidl) {
 3616    return This->lpVtbl->Initialize(This,pidl);
 3617}
 3618/*** IPersistFolder2 methods ***/
 3619static inline HRESULT IPersistFolder2_GetCurFolder(IPersistFolder2* This,PIDLIST_ABSOLUTE *ppidl) {
 3620    return This->lpVtbl->GetCurFolder(This,ppidl);
 3621}
 3622#endif
 3623#endif
 3624
 3625#endif
 3626
 3627
 3628#endif  /* __IPersistFolder2_INTERFACE_DEFINED__ */
 3629
 3630
 3631#define CSIDL_FLAG_PFTI_TRACKTARGET CSIDL_FLAG_DONT_VERIFY
 3632
 3633#include <pshpack8.h>
 3634typedef struct _PERSIST_FOLDER_TARGET_INFO {
 3635    PIDLIST_ABSOLUTE pidlTargetFolder;
 3636    WCHAR szTargetParsingName[260];
 3637    WCHAR szNetworkProvider[260];
 3638    DWORD dwAttributes;
 3639    int csidl;
 3640} PERSIST_FOLDER_TARGET_INFO;
 3641#include <poppack.h>
 3642
 3643/*****************************************************************************
 3644 * IPersistFolder3 interface
 3645 */
 3646#ifndef __IPersistFolder3_INTERFACE_DEFINED__
 3647#define __IPersistFolder3_INTERFACE_DEFINED__
 3648
 3649DEFINE_GUID(IID_IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87,0xa5, 0x00,0xc0,0x4f,0x68,0x37,0xcf);
 3650#if defined(__cplusplus) && !defined(CINTERFACE)
 3651MIDL_INTERFACE("cef04fdf-fe72-11d2-87a5-00c04f6837cf")
 3652IPersistFolder3 : public IPersistFolder2
 3653{
 3654    virtual HRESULT STDMETHODCALLTYPE InitializeEx(
 3655        IBindCtx *pbc,
 3656        PCIDLIST_ABSOLUTE pidlRoot,
 3657        const PERSIST_FOLDER_TARGET_INFO *ppfti) = 0;
 3658
 3659    virtual HRESULT STDMETHODCALLTYPE GetFolderTargetInfo(
 3660        PERSIST_FOLDER_TARGET_INFO *ppfti) = 0;
 3661
 3662};
 3663#ifdef __CRT_UUID_DECL
 3664__CRT_UUID_DECL(IPersistFolder3, 0xcef04fdf, 0xfe72, 0x11d2, 0x87,0xa5, 0x00,0xc0,0x4f,0x68,0x37,0xcf)
 3665#endif
 3666#else
 3667typedef struct IPersistFolder3Vtbl {
 3668    BEGIN_INTERFACE
 3669
 3670    /*** IUnknown methods ***/
 3671    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3672        IPersistFolder3 *This,
 3673        REFIID riid,
 3674        void **ppvObject);
 3675
 3676    ULONG (STDMETHODCALLTYPE *AddRef)(
 3677        IPersistFolder3 *This);
 3678
 3679    ULONG (STDMETHODCALLTYPE *Release)(
 3680        IPersistFolder3 *This);
 3681
 3682    /*** IPersist methods ***/
 3683    HRESULT (STDMETHODCALLTYPE *GetClassID)(
 3684        IPersistFolder3 *This,
 3685        CLSID *pClassID);
 3686
 3687    /*** IPersistFolder methods ***/
 3688    HRESULT (STDMETHODCALLTYPE *Initialize)(
 3689        IPersistFolder3 *This,
 3690        PCIDLIST_ABSOLUTE pidl);
 3691
 3692    /*** IPersistFolder2 methods ***/
 3693    HRESULT (STDMETHODCALLTYPE *GetCurFolder)(
 3694        IPersistFolder3 *This,
 3695        PIDLIST_ABSOLUTE *ppidl);
 3696
 3697    /*** IPersistFolder3 methods ***/
 3698    HRESULT (STDMETHODCALLTYPE *InitializeEx)(
 3699        IPersistFolder3 *This,
 3700        IBindCtx *pbc,
 3701        PCIDLIST_ABSOLUTE pidlRoot,
 3702        const PERSIST_FOLDER_TARGET_INFO *ppfti);
 3703
 3704    HRESULT (STDMETHODCALLTYPE *GetFolderTargetInfo)(
 3705        IPersistFolder3 *This,
 3706        PERSIST_FOLDER_TARGET_INFO *ppfti);
 3707
 3708    END_INTERFACE
 3709} IPersistFolder3Vtbl;
 3710
 3711interface IPersistFolder3 {
 3712    CONST_VTBL IPersistFolder3Vtbl* lpVtbl;
 3713};
 3714
 3715#ifdef COBJMACROS
 3716#ifndef WIDL_C_INLINE_WRAPPERS
 3717/*** IUnknown methods ***/
 3718#define IPersistFolder3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3719#define IPersistFolder3_AddRef(This) (This)->lpVtbl->AddRef(This)
 3720#define IPersistFolder3_Release(This) (This)->lpVtbl->Release(This)
 3721/*** IPersist methods ***/
 3722#define IPersistFolder3_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
 3723/*** IPersistFolder methods ***/
 3724#define IPersistFolder3_Initialize(This,pidl) (This)->lpVtbl->Initialize(This,pidl)
 3725/*** IPersistFolder2 methods ***/
 3726#define IPersistFolder3_GetCurFolder(This,ppidl) (This)->lpVtbl->GetCurFolder(This,ppidl)
 3727/*** IPersistFolder3 methods ***/
 3728#define IPersistFolder3_InitializeEx(This,pbc,pidlRoot,ppfti) (This)->lpVtbl->InitializeEx(This,pbc,pidlRoot,ppfti)
 3729#define IPersistFolder3_GetFolderTargetInfo(This,ppfti) (This)->lpVtbl->GetFolderTargetInfo(This,ppfti)
 3730#else
 3731/*** IUnknown methods ***/
 3732static inline HRESULT IPersistFolder3_QueryInterface(IPersistFolder3* This,REFIID riid,void **ppvObject) {
 3733    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3734}
 3735static inline ULONG IPersistFolder3_AddRef(IPersistFolder3* This) {
 3736    return This->lpVtbl->AddRef(This);
 3737}
 3738static inline ULONG IPersistFolder3_Release(IPersistFolder3* This) {
 3739    return This->lpVtbl->Release(This);
 3740}
 3741/*** IPersist methods ***/
 3742static inline HRESULT IPersistFolder3_GetClassID(IPersistFolder3* This,CLSID *pClassID) {
 3743    return This->lpVtbl->GetClassID(This,pClassID);
 3744}
 3745/*** IPersistFolder methods ***/
 3746static inline HRESULT IPersistFolder3_Initialize(IPersistFolder3* This,PCIDLIST_ABSOLUTE pidl) {
 3747    return This->lpVtbl->Initialize(This,pidl);
 3748}
 3749/*** IPersistFolder2 methods ***/
 3750static inline HRESULT IPersistFolder3_GetCurFolder(IPersistFolder3* This,PIDLIST_ABSOLUTE *ppidl) {
 3751    return This->lpVtbl->GetCurFolder(This,ppidl);
 3752}
 3753/*** IPersistFolder3 methods ***/
 3754static inline HRESULT IPersistFolder3_InitializeEx(IPersistFolder3* This,IBindCtx *pbc,PCIDLIST_ABSOLUTE pidlRoot,const PERSIST_FOLDER_TARGET_INFO *ppfti) {
 3755    return This->lpVtbl->InitializeEx(This,pbc,pidlRoot,ppfti);
 3756}
 3757static inline HRESULT IPersistFolder3_GetFolderTargetInfo(IPersistFolder3* This,PERSIST_FOLDER_TARGET_INFO *ppfti) {
 3758    return This->lpVtbl->GetFolderTargetInfo(This,ppfti);
 3759}
 3760#endif
 3761#endif
 3762
 3763#endif
 3764
 3765
 3766#endif  /* __IPersistFolder3_INTERFACE_DEFINED__ */
 3767
 3768
 3769/*****************************************************************************
 3770 * IPersistIDList interface
 3771 */
 3772#ifndef __IPersistIDList_INTERFACE_DEFINED__
 3773#define __IPersistIDList_INTERFACE_DEFINED__
 3774
 3775DEFINE_GUID(IID_IPersistIDList, 0x1079acfc, 0x29bd, 0x11d3, 0x8e,0x0d, 0x00,0xc0,0x4f,0x68,0x37,0xd5);
 3776#if defined(__cplusplus) && !defined(CINTERFACE)
 3777MIDL_INTERFACE("1079acfc-29bd-11d3-8e0d-00c04f6837d5")
 3778IPersistIDList : public IPersist
 3779{
 3780    virtual HRESULT STDMETHODCALLTYPE SetIDList(
 3781        PCIDLIST_ABSOLUTE pidl) = 0;
 3782
 3783    virtual HRESULT STDMETHODCALLTYPE GetIDList(
 3784        PIDLIST_ABSOLUTE *ppidl) = 0;
 3785
 3786};
 3787#ifdef __CRT_UUID_DECL
 3788__CRT_UUID_DECL(IPersistIDList, 0x1079acfc, 0x29bd, 0x11d3, 0x8e,0x0d, 0x00,0xc0,0x4f,0x68,0x37,0xd5)
 3789#endif
 3790#else
 3791typedef struct IPersistIDListVtbl {
 3792    BEGIN_INTERFACE
 3793
 3794    /*** IUnknown methods ***/
 3795    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3796        IPersistIDList *This,
 3797        REFIID riid,
 3798        void **ppvObject);
 3799
 3800    ULONG (STDMETHODCALLTYPE *AddRef)(
 3801        IPersistIDList *This);
 3802
 3803    ULONG (STDMETHODCALLTYPE *Release)(
 3804        IPersistIDList *This);
 3805
 3806    /*** IPersist methods ***/
 3807    HRESULT (STDMETHODCALLTYPE *GetClassID)(
 3808        IPersistIDList *This,
 3809        CLSID *pClassID);
 3810
 3811    /*** IPersistIDList methods ***/
 3812    HRESULT (STDMETHODCALLTYPE *SetIDList)(
 3813        IPersistIDList *This,
 3814        PCIDLIST_ABSOLUTE pidl);
 3815
 3816    HRESULT (STDMETHODCALLTYPE *GetIDList)(
 3817        IPersistIDList *This,
 3818        PIDLIST_ABSOLUTE *ppidl);
 3819
 3820    END_INTERFACE
 3821} IPersistIDListVtbl;
 3822
 3823interface IPersistIDList {
 3824    CONST_VTBL IPersistIDListVtbl* lpVtbl;
 3825};
 3826
 3827#ifdef COBJMACROS
 3828#ifndef WIDL_C_INLINE_WRAPPERS
 3829/*** IUnknown methods ***/
 3830#define IPersistIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3831#define IPersistIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
 3832#define IPersistIDList_Release(This) (This)->lpVtbl->Release(This)
 3833/*** IPersist methods ***/
 3834#define IPersistIDList_GetClassID(This,pClassID) (This)->lpVtbl->GetClassID(This,pClassID)
 3835/*** IPersistIDList methods ***/
 3836#define IPersistIDList_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
 3837#define IPersistIDList_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
 3838#else
 3839/*** IUnknown methods ***/
 3840static inline HRESULT IPersistIDList_QueryInterface(IPersistIDList* This,REFIID riid,void **ppvObject) {
 3841    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3842}
 3843static inline ULONG IPersistIDList_AddRef(IPersistIDList* This) {
 3844    return This->lpVtbl->AddRef(This);
 3845}
 3846static inline ULONG IPersistIDList_Release(IPersistIDList* This) {
 3847    return This->lpVtbl->Release(This);
 3848}
 3849/*** IPersist methods ***/
 3850static inline HRESULT IPersistIDList_GetClassID(IPersistIDList* This,CLSID *pClassID) {
 3851    return This->lpVtbl->GetClassID(This,pClassID);
 3852}
 3853/*** IPersistIDList methods ***/
 3854static inline HRESULT IPersistIDList_SetIDList(IPersistIDList* This,PCIDLIST_ABSOLUTE pidl) {
 3855    return This->lpVtbl->SetIDList(This,pidl);
 3856}
 3857static inline HRESULT IPersistIDList_GetIDList(IPersistIDList* This,PIDLIST_ABSOLUTE *ppidl) {
 3858    return This->lpVtbl->GetIDList(This,ppidl);
 3859}
 3860#endif
 3861#endif
 3862
 3863#endif
 3864
 3865
 3866#endif  /* __IPersistIDList_INTERFACE_DEFINED__ */
 3867
 3868
 3869/*****************************************************************************
 3870 * IEnumIDList interface
 3871 */
 3872#ifndef __IEnumIDList_INTERFACE_DEFINED__
 3873#define __IEnumIDList_INTERFACE_DEFINED__
 3874
 3875DEFINE_GUID(IID_IEnumIDList, 0x000214f2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 3876#if defined(__cplusplus) && !defined(CINTERFACE)
 3877MIDL_INTERFACE("000214f2-0000-0000-c000-000000000046")
 3878IEnumIDList : public IUnknown
 3879{
 3880    virtual HRESULT STDMETHODCALLTYPE Next(
 3881        ULONG celt,
 3882        PITEMID_CHILD *rgelt,
 3883        ULONG *pceltFetched) = 0;
 3884
 3885    virtual HRESULT STDMETHODCALLTYPE Skip(
 3886        ULONG celt) = 0;
 3887
 3888    virtual HRESULT STDMETHODCALLTYPE Reset(
 3889        ) = 0;
 3890
 3891    virtual HRESULT STDMETHODCALLTYPE Clone(
 3892        IEnumIDList **ppenum) = 0;
 3893
 3894};
 3895#ifdef __CRT_UUID_DECL
 3896__CRT_UUID_DECL(IEnumIDList, 0x000214f2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
 3897#endif
 3898#else
 3899typedef struct IEnumIDListVtbl {
 3900    BEGIN_INTERFACE
 3901
 3902    /*** IUnknown methods ***/
 3903    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 3904        IEnumIDList *This,
 3905        REFIID riid,
 3906        void **ppvObject);
 3907
 3908    ULONG (STDMETHODCALLTYPE *AddRef)(
 3909        IEnumIDList *This);
 3910
 3911    ULONG (STDMETHODCALLTYPE *Release)(
 3912        IEnumIDList *This);
 3913
 3914    /*** IEnumIDList methods ***/
 3915    HRESULT (STDMETHODCALLTYPE *Next)(
 3916        IEnumIDList *This,
 3917        ULONG celt,
 3918        PITEMID_CHILD *rgelt,
 3919        ULONG *pceltFetched);
 3920
 3921    HRESULT (STDMETHODCALLTYPE *Skip)(
 3922        IEnumIDList *This,
 3923        ULONG celt);
 3924
 3925    HRESULT (STDMETHODCALLTYPE *Reset)(
 3926        IEnumIDList *This);
 3927
 3928    HRESULT (STDMETHODCALLTYPE *Clone)(
 3929        IEnumIDList *This,
 3930        IEnumIDList **ppenum);
 3931
 3932    END_INTERFACE
 3933} IEnumIDListVtbl;
 3934
 3935interface IEnumIDList {
 3936    CONST_VTBL IEnumIDListVtbl* lpVtbl;
 3937};
 3938
 3939#ifdef COBJMACROS
 3940#ifndef WIDL_C_INLINE_WRAPPERS
 3941/*** IUnknown methods ***/
 3942#define IEnumIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 3943#define IEnumIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
 3944#define IEnumIDList_Release(This) (This)->lpVtbl->Release(This)
 3945/*** IEnumIDList methods ***/
 3946#define IEnumIDList_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
 3947#define IEnumIDList_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
 3948#define IEnumIDList_Reset(This) (This)->lpVtbl->Reset(This)
 3949#define IEnumIDList_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
 3950#else
 3951/*** IUnknown methods ***/
 3952static inline HRESULT IEnumIDList_QueryInterface(IEnumIDList* This,REFIID riid,void **ppvObject) {
 3953    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 3954}
 3955static inline ULONG IEnumIDList_AddRef(IEnumIDList* This) {
 3956    return This->lpVtbl->AddRef(This);
 3957}
 3958static inline ULONG IEnumIDList_Release(IEnumIDList* This) {
 3959    return This->lpVtbl->Release(This);
 3960}
 3961/*** IEnumIDList methods ***/
 3962static inline HRESULT IEnumIDList_Next(IEnumIDList* This,ULONG celt,PITEMID_CHILD *rgelt,ULONG *pceltFetched) {
 3963    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
 3964}
 3965static inline HRESULT IEnumIDList_Skip(IEnumIDList* This,ULONG celt) {
 3966    return This->lpVtbl->Skip(This,celt);
 3967}
 3968static inline HRESULT IEnumIDList_Reset(IEnumIDList* This) {
 3969    return This->lpVtbl->Reset(This);
 3970}
 3971static inline HRESULT IEnumIDList_Clone(IEnumIDList* This,IEnumIDList **ppenum) {
 3972    return This->lpVtbl->Clone(This,ppenum);
 3973}
 3974#endif
 3975#endif
 3976
 3977#endif
 3978
 3979HRESULT STDMETHODCALLTYPE IEnumIDList_RemoteNext_Proxy(
 3980    IEnumIDList* This,
 3981    ULONG celt,
 3982    PITEMID_CHILD *rgelt,
 3983    ULONG *pceltFetched);
 3984void __RPC_STUB IEnumIDList_RemoteNext_Stub(
 3985    IRpcStubBuffer* This,
 3986    IRpcChannelBuffer* pRpcChannelBuffer,
 3987    PRPC_MESSAGE pRpcMessage,
 3988    DWORD* pdwStubPhase);
 3989HRESULT CALLBACK IEnumIDList_Next_Proxy(
 3990    IEnumIDList* This,
 3991    ULONG celt,
 3992    PITEMID_CHILD *rgelt,
 3993    ULONG *pceltFetched);
 3994HRESULT __RPC_STUB IEnumIDList_Next_Stub(
 3995    IEnumIDList* This,
 3996    ULONG celt,
 3997    PITEMID_CHILD *rgelt,
 3998    ULONG *pceltFetched);
 3999
 4000#endif  /* __IEnumIDList_INTERFACE_DEFINED__ */
 4001
 4002typedef IEnumIDList *LPENUMIDLIST;
 4003
 4004/*****************************************************************************
 4005 * IEnumFullIDList interface
 4006 */
 4007#ifndef __IEnumFullIDList_INTERFACE_DEFINED__
 4008#define __IEnumFullIDList_INTERFACE_DEFINED__
 4009
 4010DEFINE_GUID(IID_IEnumFullIDList, 0xd0191542, 0x7954, 0x4908, 0xbc,0x06, 0xb2,0x36,0x0b,0xbe,0x45,0xba);
 4011#if defined(__cplusplus) && !defined(CINTERFACE)
 4012MIDL_INTERFACE("d0191542-7954-4908-bc06-b2360bbe45ba")
 4013IEnumFullIDList : public IUnknown
 4014{
 4015    virtual HRESULT STDMETHODCALLTYPE Next(
 4016        ULONG celt,
 4017        PIDLIST_ABSOLUTE *rgelt,
 4018        ULONG *pceltFetched) = 0;
 4019
 4020    virtual HRESULT STDMETHODCALLTYPE Skip(
 4021        ULONG celt) = 0;
 4022
 4023    virtual HRESULT STDMETHODCALLTYPE Reset(
 4024        ) = 0;
 4025
 4026    virtual HRESULT STDMETHODCALLTYPE Clone(
 4027        IEnumFullIDList **ppenum) = 0;
 4028
 4029};
 4030#ifdef __CRT_UUID_DECL
 4031__CRT_UUID_DECL(IEnumFullIDList, 0xd0191542, 0x7954, 0x4908, 0xbc,0x06, 0xb2,0x36,0x0b,0xbe,0x45,0xba)
 4032#endif
 4033#else
 4034typedef struct IEnumFullIDListVtbl {
 4035    BEGIN_INTERFACE
 4036
 4037    /*** IUnknown methods ***/
 4038    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4039        IEnumFullIDList *This,
 4040        REFIID riid,
 4041        void **ppvObject);
 4042
 4043    ULONG (STDMETHODCALLTYPE *AddRef)(
 4044        IEnumFullIDList *This);
 4045
 4046    ULONG (STDMETHODCALLTYPE *Release)(
 4047        IEnumFullIDList *This);
 4048
 4049    /*** IEnumFullIDList methods ***/
 4050    HRESULT (STDMETHODCALLTYPE *Next)(
 4051        IEnumFullIDList *This,
 4052        ULONG celt,
 4053        PIDLIST_ABSOLUTE *rgelt,
 4054        ULONG *pceltFetched);
 4055
 4056    HRESULT (STDMETHODCALLTYPE *Skip)(
 4057        IEnumFullIDList *This,
 4058        ULONG celt);
 4059
 4060    HRESULT (STDMETHODCALLTYPE *Reset)(
 4061        IEnumFullIDList *This);
 4062
 4063    HRESULT (STDMETHODCALLTYPE *Clone)(
 4064        IEnumFullIDList *This,
 4065        IEnumFullIDList **ppenum);
 4066
 4067    END_INTERFACE
 4068} IEnumFullIDListVtbl;
 4069
 4070interface IEnumFullIDList {
 4071    CONST_VTBL IEnumFullIDListVtbl* lpVtbl;
 4072};
 4073
 4074#ifdef COBJMACROS
 4075#ifndef WIDL_C_INLINE_WRAPPERS
 4076/*** IUnknown methods ***/
 4077#define IEnumFullIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4078#define IEnumFullIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
 4079#define IEnumFullIDList_Release(This) (This)->lpVtbl->Release(This)
 4080/*** IEnumFullIDList methods ***/
 4081#define IEnumFullIDList_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
 4082#define IEnumFullIDList_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
 4083#define IEnumFullIDList_Reset(This) (This)->lpVtbl->Reset(This)
 4084#define IEnumFullIDList_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
 4085#else
 4086/*** IUnknown methods ***/
 4087static inline HRESULT IEnumFullIDList_QueryInterface(IEnumFullIDList* This,REFIID riid,void **ppvObject) {
 4088    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4089}
 4090static inline ULONG IEnumFullIDList_AddRef(IEnumFullIDList* This) {
 4091    return This->lpVtbl->AddRef(This);
 4092}
 4093static inline ULONG IEnumFullIDList_Release(IEnumFullIDList* This) {
 4094    return This->lpVtbl->Release(This);
 4095}
 4096/*** IEnumFullIDList methods ***/
 4097static inline HRESULT IEnumFullIDList_Next(IEnumFullIDList* This,ULONG celt,PIDLIST_ABSOLUTE *rgelt,ULONG *pceltFetched) {
 4098    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
 4099}
 4100static inline HRESULT IEnumFullIDList_Skip(IEnumFullIDList* This,ULONG celt) {
 4101    return This->lpVtbl->Skip(This,celt);
 4102}
 4103static inline HRESULT IEnumFullIDList_Reset(IEnumFullIDList* This) {
 4104    return This->lpVtbl->Reset(This);
 4105}
 4106static inline HRESULT IEnumFullIDList_Clone(IEnumFullIDList* This,IEnumFullIDList **ppenum) {
 4107    return This->lpVtbl->Clone(This,ppenum);
 4108}
 4109#endif
 4110#endif
 4111
 4112#endif
 4113
 4114HRESULT STDMETHODCALLTYPE IEnumFullIDList_RemoteNext_Proxy(
 4115    IEnumFullIDList* This,
 4116    ULONG celt,
 4117    PIDLIST_ABSOLUTE *rgelt,
 4118    ULONG *pceltFetched);
 4119void __RPC_STUB IEnumFullIDList_RemoteNext_Stub(
 4120    IRpcStubBuffer* This,
 4121    IRpcChannelBuffer* pRpcChannelBuffer,
 4122    PRPC_MESSAGE pRpcMessage,
 4123    DWORD* pdwStubPhase);
 4124HRESULT CALLBACK IEnumFullIDList_Next_Proxy(
 4125    IEnumFullIDList* This,
 4126    ULONG celt,
 4127    PIDLIST_ABSOLUTE *rgelt,
 4128    ULONG *pceltFetched);
 4129HRESULT __RPC_STUB IEnumFullIDList_Next_Stub(
 4130    IEnumFullIDList* This,
 4131    ULONG celt,
 4132    PIDLIST_ABSOLUTE *rgelt,
 4133    ULONG *pceltFetched);
 4134
 4135#endif  /* __IEnumFullIDList_INTERFACE_DEFINED__ */
 4136
 4137
 4138enum _SHGDNF {
 4139    SHGDN_NORMAL = 0x0,
 4140    SHGDN_INFOLDER = 0x1,
 4141    SHGDN_FOREDITING = 0x1000,
 4142    SHGDN_FORADDRESSBAR = 0x4000,
 4143    SHGDN_FORPARSING = 0x8000
 4144};
 4145
 4146typedef DWORD SHGDNF;
 4147
 4148enum _SHCONTF {
 4149    SHCONTF_CHECKING_FOR_CHILDREN = 0x10,
 4150    SHCONTF_FOLDERS = 0x20,
 4151    SHCONTF_NONFOLDERS = 0x40,
 4152    SHCONTF_INCLUDEHIDDEN = 0x80,
 4153    SHCONTF_INIT_ON_FIRST_NEXT = 0x100,
 4154    SHCONTF_NETPRINTERSRCH = 0x200,
 4155    SHCONTF_SHAREABLE = 0x400,
 4156    SHCONTF_STORAGE = 0x800,
 4157    SHCONTF_NAVIGATION_ENUM = 0x1000,
 4158    SHCONTF_FASTITEMS = 0x2000,
 4159    SHCONTF_FLATLIST = 0x4000,
 4160    SHCONTF_ENABLE_ASYNC = 0x8000,
 4161    SHCONTF_INCLUDESUPERHIDDEN = 0x10000
 4162};
 4163
 4164typedef DWORD SHCONTF;
 4165
 4166#define SHCIDS_ALLFIELDS __MSABI_LONG(0x80000000)
 4167#define SHCIDS_CANONICALONLY __MSABI_LONG(0x10000000)
 4168#define SHCIDS_BITMASK __MSABI_LONG(0xffff0000)
 4169#define SHCIDS_COLUMNMASK __MSABI_LONG(0x0000ffff)
 4170
 4171#define SFGAO_CANCOPY DROPEFFECT_COPY
 4172#define SFGAO_CANMOVE DROPEFFECT_MOVE
 4173#define SFGAO_CANLINK DROPEFFECT_LINK
 4174#define SFGAO_STORAGE __MSABI_LONG(0x8)
 4175#define SFGAO_CANRENAME __MSABI_LONG(0x10)
 4176#define SFGAO_CANDELETE __MSABI_LONG(0x20)
 4177#define SFGAO_HASPROPSHEET __MSABI_LONG(0x40)
 4178#define SFGAO_DROPTARGET __MSABI_LONG(0x100)
 4179
 4180#define SFGAO_CAPABILITYMASK __MSABI_LONG(0x177)
 4181
 4182#define SFGAO_SYSTEM __MSABI_LONG(0x1000)
 4183#define SFGAO_ENCRYPTED __MSABI_LONG(0x2000)
 4184#define SFGAO_ISSLOW __MSABI_LONG(0x4000)
 4185#define SFGAO_GHOSTED __MSABI_LONG(0x8000)
 4186#define SFGAO_LINK __MSABI_LONG(0x10000)
 4187#define SFGAO_SHARE __MSABI_LONG(0x20000)
 4188#define SFGAO_READONLY __MSABI_LONG(0x40000)
 4189#define SFGAO_HIDDEN __MSABI_LONG(0x80000)
 4190
 4191#define SFGAO_DISPLAYATTRMASK __MSABI_LONG(0xfc000)
 4192
 4193#define SFGAO_FILESYSANCESTOR __MSABI_LONG(0x10000000)
 4194#define SFGAO_FOLDER __MSABI_LONG(0x20000000)
 4195#define SFGAO_FILESYSTEM __MSABI_LONG(0x40000000)
 4196#define SFGAO_HASSUBFOLDER __MSABI_LONG(0x80000000)
 4197
 4198#define SFGAO_CONTENTSMASK __MSABI_LONG(0x80000000)
 4199
 4200#define SFGAO_VALIDATE __MSABI_LONG(0x1000000)
 4201#define SFGAO_REMOVABLE __MSABI_LONG(0x2000000)
 4202#define SFGAO_COMPRESSED __MSABI_LONG(0x4000000)
 4203#define SFGAO_BROWSABLE __MSABI_LONG(0x8000000)
 4204#define SFGAO_NONENUMERATED __MSABI_LONG(0x100000)
 4205#define SFGAO_NEWCONTENT __MSABI_LONG(0x200000)
 4206#define SFGAO_CANMONIKER __MSABI_LONG(0x400000)
 4207#define SFGAO_HASSTORAGE __MSABI_LONG(0x400000)
 4208#define SFGAO_STREAM __MSABI_LONG(0x400000)
 4209#define SFGAO_STORAGEANCESTOR __MSABI_LONG(0x00800000)
 4210
 4211#define SFGAO_STORAGECAPMASK __MSABI_LONG(0x70c50008)
 4212#define SFGAO_PKEYSFGAOMASK __MSABI_LONG(0x81044000)
 4213
 4214typedef ULONG SFGAOF;
 4215
 4216#define STR_BIND_FORCE_FOLDER_SHORTCUT_RESOLVE L"Force Folder Shortcut Resolve"
 4217#define STR_AVOID_DRIVE_RESTRICTION_POLICY L"Avoid Drive Restriction Policy"
 4218#define STR_AVOID_DRIVE_RESTRICTION_POLICY L"Avoid Drive Restriction Policy"
 4219#define STR_SKIP_BINDING_CLSID L"Skip Binding CLSID"
 4220#define STR_PARSE_PREFER_FOLDER_BROWSING L"Parse Prefer Folder Browsing"
 4221#define STR_DONT_PARSE_RELATIVE L"Don't Parse Relative"
 4222#define STR_PARSE_TRANSLATE_ALIASES L"Parse Translate Aliases"
 4223#define STR_PARSE_SKIP_NET_CACHE L"Skip Net Resource Cache"
 4224#define STR_PARSE_SHELL_PROTOCOL_TO_FILE_OBJECTS L"Parse Shell Protocol To File Objects"
 4225#if _WIN32_IE >= 0x0700
 4226#define STR_TRACK_CLSID L"Track the CLSID"
 4227#define STR_INTERNAL_NAVIGATE L"Internal Navigation"
 4228#define STR_PARSE_PROPERTYSTORE L"DelegateNamedProperties"
 4229#define STR_NO_VALIDATE_FILENAME_CHARS L"NoValidateFilenameChars"
 4230#define STR_BIND_DELEGATE_CREATE_OBJECT L"Delegate Object Creation"
 4231#define STR_PARSE_ALLOW_INTERNET_SHELL_FOLDERS L"Allow binding to Internet shell folder handlers and negate STR_PARSE_PREFER_WEB_BROWSING"
 4232#define STR_PARSE_PREFER_WEB_BROWSING L"Do not bind to Internet shell folder handlers"
 4233#define STR_PARSE_SHOW_NET_DIAGNOSTICS_UI L"Show network diagnostics UI"
 4234#define STR_PARSE_DONT_REQUIRE_VALIDATED_URLS L"Do not require validated URLs"
 4235#define STR_INTERNETFOLDER_PARSE_ONLY_URLMON_BINDABLE L"Validate URL"
 4236#endif
 4237
 4238#if NTDDI_VERSION >= NTDDI_WIN8
 4239#define BIND_INTERRUPTABLE 0xffffffff
 4240#endif
 4241
 4242#if NTDDI_VERSION >= NTDDI_WIN7
 4243#define STR_BIND_FOLDERS_READ_ONLY L"Folders As Read Only"
 4244#define STR_BIND_FOLDER_ENUM_MODE L"Folder Enum Mode"
 4245
 4246typedef enum FOLDER_ENUM_MODE {
 4247    FEM_VIEWRESULT = 0,
 4248    FEM_NAVIGATION = 1
 4249} FOLDER_ENUM_MODE;
 4250
 4251/*****************************************************************************
 4252 * IObjectWithFolderEnumMode interface
 4253 */
 4254#ifndef __IObjectWithFolderEnumMode_INTERFACE_DEFINED__
 4255#define __IObjectWithFolderEnumMode_INTERFACE_DEFINED__
 4256
 4257DEFINE_GUID(IID_IObjectWithFolderEnumMode, 0x6a9d9026, 0x0e6e, 0x464c, 0xb0,0x00, 0x42,0xec,0xc0,0x7d,0xe6,0x73);
 4258#if defined(__cplusplus) && !defined(CINTERFACE)
 4259MIDL_INTERFACE("6a9d9026-0e6e-464c-b000-42ecc07de673")
 4260IObjectWithFolderEnumMode : public IUnknown
 4261{
 4262    virtual HRESULT STDMETHODCALLTYPE SetMode(
 4263        FOLDER_ENUM_MODE feMode) = 0;
 4264
 4265    virtual HRESULT STDMETHODCALLTYPE GetMode(
 4266        FOLDER_ENUM_MODE *pfeMode) = 0;
 4267
 4268};
 4269#ifdef __CRT_UUID_DECL
 4270__CRT_UUID_DECL(IObjectWithFolderEnumMode, 0x6a9d9026, 0x0e6e, 0x464c, 0xb0,0x00, 0x42,0xec,0xc0,0x7d,0xe6,0x73)
 4271#endif
 4272#else
 4273typedef struct IObjectWithFolderEnumModeVtbl {
 4274    BEGIN_INTERFACE
 4275
 4276    /*** IUnknown methods ***/
 4277    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4278        IObjectWithFolderEnumMode *This,
 4279        REFIID riid,
 4280        void **ppvObject);
 4281
 4282    ULONG (STDMETHODCALLTYPE *AddRef)(
 4283        IObjectWithFolderEnumMode *This);
 4284
 4285    ULONG (STDMETHODCALLTYPE *Release)(
 4286        IObjectWithFolderEnumMode *This);
 4287
 4288    /*** IObjectWithFolderEnumMode methods ***/
 4289    HRESULT (STDMETHODCALLTYPE *SetMode)(
 4290        IObjectWithFolderEnumMode *This,
 4291        FOLDER_ENUM_MODE feMode);
 4292
 4293    HRESULT (STDMETHODCALLTYPE *GetMode)(
 4294        IObjectWithFolderEnumMode *This,
 4295        FOLDER_ENUM_MODE *pfeMode);
 4296
 4297    END_INTERFACE
 4298} IObjectWithFolderEnumModeVtbl;
 4299
 4300interface IObjectWithFolderEnumMode {
 4301    CONST_VTBL IObjectWithFolderEnumModeVtbl* lpVtbl;
 4302};
 4303
 4304#ifdef COBJMACROS
 4305#ifndef WIDL_C_INLINE_WRAPPERS
 4306/*** IUnknown methods ***/
 4307#define IObjectWithFolderEnumMode_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4308#define IObjectWithFolderEnumMode_AddRef(This) (This)->lpVtbl->AddRef(This)
 4309#define IObjectWithFolderEnumMode_Release(This) (This)->lpVtbl->Release(This)
 4310/*** IObjectWithFolderEnumMode methods ***/
 4311#define IObjectWithFolderEnumMode_SetMode(This,feMode) (This)->lpVtbl->SetMode(This,feMode)
 4312#define IObjectWithFolderEnumMode_GetMode(This,pfeMode) (This)->lpVtbl->GetMode(This,pfeMode)
 4313#else
 4314/*** IUnknown methods ***/
 4315static inline HRESULT IObjectWithFolderEnumMode_QueryInterface(IObjectWithFolderEnumMode* This,REFIID riid,void **ppvObject) {
 4316    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4317}
 4318static inline ULONG IObjectWithFolderEnumMode_AddRef(IObjectWithFolderEnumMode* This) {
 4319    return This->lpVtbl->AddRef(This);
 4320}
 4321static inline ULONG IObjectWithFolderEnumMode_Release(IObjectWithFolderEnumMode* This) {
 4322    return This->lpVtbl->Release(This);
 4323}
 4324/*** IObjectWithFolderEnumMode methods ***/
 4325static inline HRESULT IObjectWithFolderEnumMode_SetMode(IObjectWithFolderEnumMode* This,FOLDER_ENUM_MODE feMode) {
 4326    return This->lpVtbl->SetMode(This,feMode);
 4327}
 4328static inline HRESULT IObjectWithFolderEnumMode_GetMode(IObjectWithFolderEnumMode* This,FOLDER_ENUM_MODE *pfeMode) {
 4329    return This->lpVtbl->GetMode(This,pfeMode);
 4330}
 4331#endif
 4332#endif
 4333
 4334#endif
 4335
 4336
 4337#endif  /* __IObjectWithFolderEnumMode_INTERFACE_DEFINED__ */
 4338
 4339
 4340#define STR_PARSE_WITH_EXPLICIT_PROGID L"ExplicitProgid"
 4341#define STR_PARSE_WITH_EXPLICIT_ASSOCAPP L"ExplicitAssociationApp"
 4342#define STR_PARSE_EXPLICIT_ASSOCIATION_SUCCESSFUL L"ExplicitAssociationSuccessful"
 4343#define STR_PARSE_AND_CREATE_ITEM L"ParseAndCreateItem"
 4344#define STR_PROPERTYBAG_PARAM L"SHBindCtxPropertyBag"
 4345#define STR_ENUM_ITEMS_FLAGS L"SHCONTF"
 4346
 4347#ifndef __IShellItem_FWD_DEFINED__
 4348#define __IShellItem_FWD_DEFINED__
 4349typedef interface IShellItem IShellItem;
 4350#ifdef __cplusplus
 4351interface IShellItem;
 4352#endif /* __cplusplus */
 4353#endif
 4354
 4355
 4356/*****************************************************************************
 4357 * IParseAndCreateItem interface
 4358 */
 4359#ifndef __IParseAndCreateItem_INTERFACE_DEFINED__
 4360#define __IParseAndCreateItem_INTERFACE_DEFINED__
 4361
 4362DEFINE_GUID(IID_IParseAndCreateItem, 0x67efed0e, 0xe827, 0x4408, 0xb4,0x93, 0x78,0xf3,0x98,0x2b,0x68,0x5c);
 4363#if defined(__cplusplus) && !defined(CINTERFACE)
 4364MIDL_INTERFACE("67efed0e-e827-4408-b493-78f3982b685c")
 4365IParseAndCreateItem : public IUnknown
 4366{
 4367    virtual HRESULT STDMETHODCALLTYPE SetItem(
 4368        IShellItem *psi) = 0;
 4369
 4370    virtual HRESULT STDMETHODCALLTYPE GetItem(
 4371        REFIID riid,
 4372        void **ppv) = 0;
 4373
 4374};
 4375#ifdef __CRT_UUID_DECL
 4376__CRT_UUID_DECL(IParseAndCreateItem, 0x67efed0e, 0xe827, 0x4408, 0xb4,0x93, 0x78,0xf3,0x98,0x2b,0x68,0x5c)
 4377#endif
 4378#else
 4379typedef struct IParseAndCreateItemVtbl {
 4380    BEGIN_INTERFACE
 4381
 4382    /*** IUnknown methods ***/
 4383    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4384        IParseAndCreateItem *This,
 4385        REFIID riid,
 4386        void **ppvObject);
 4387
 4388    ULONG (STDMETHODCALLTYPE *AddRef)(
 4389        IParseAndCreateItem *This);
 4390
 4391    ULONG (STDMETHODCALLTYPE *Release)(
 4392        IParseAndCreateItem *This);
 4393
 4394    /*** IParseAndCreateItem methods ***/
 4395    HRESULT (STDMETHODCALLTYPE *SetItem)(
 4396        IParseAndCreateItem *This,
 4397        IShellItem *psi);
 4398
 4399    HRESULT (STDMETHODCALLTYPE *GetItem)(
 4400        IParseAndCreateItem *This,
 4401        REFIID riid,
 4402        void **ppv);
 4403
 4404    END_INTERFACE
 4405} IParseAndCreateItemVtbl;
 4406
 4407interface IParseAndCreateItem {
 4408    CONST_VTBL IParseAndCreateItemVtbl* lpVtbl;
 4409};
 4410
 4411#ifdef COBJMACROS
 4412#ifndef WIDL_C_INLINE_WRAPPERS
 4413/*** IUnknown methods ***/
 4414#define IParseAndCreateItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4415#define IParseAndCreateItem_AddRef(This) (This)->lpVtbl->AddRef(This)
 4416#define IParseAndCreateItem_Release(This) (This)->lpVtbl->Release(This)
 4417/*** IParseAndCreateItem methods ***/
 4418#define IParseAndCreateItem_SetItem(This,psi) (This)->lpVtbl->SetItem(This,psi)
 4419#define IParseAndCreateItem_GetItem(This,riid,ppv) (This)->lpVtbl->GetItem(This,riid,ppv)
 4420#else
 4421/*** IUnknown methods ***/
 4422static inline HRESULT IParseAndCreateItem_QueryInterface(IParseAndCreateItem* This,REFIID riid,void **ppvObject) {
 4423    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4424}
 4425static inline ULONG IParseAndCreateItem_AddRef(IParseAndCreateItem* This) {
 4426    return This->lpVtbl->AddRef(This);
 4427}
 4428static inline ULONG IParseAndCreateItem_Release(IParseAndCreateItem* This) {
 4429    return This->lpVtbl->Release(This);
 4430}
 4431/*** IParseAndCreateItem methods ***/
 4432static inline HRESULT IParseAndCreateItem_SetItem(IParseAndCreateItem* This,IShellItem *psi) {
 4433    return This->lpVtbl->SetItem(This,psi);
 4434}
 4435static inline HRESULT IParseAndCreateItem_GetItem(IParseAndCreateItem* This,REFIID riid,void **ppv) {
 4436    return This->lpVtbl->GetItem(This,riid,ppv);
 4437}
 4438#endif
 4439#endif
 4440
 4441#endif
 4442
 4443
 4444#endif  /* __IParseAndCreateItem_INTERFACE_DEFINED__ */
 4445
 4446
 4447#define STR_ITEM_CACHE_CONTEXT L"ItemCacheContext"
 4448#endif
 4449
 4450#ifndef __IShellFolder_FWD_DEFINED__
 4451#define __IShellFolder_FWD_DEFINED__
 4452typedef interface IShellFolder IShellFolder;
 4453#ifdef __cplusplus
 4454interface IShellFolder;
 4455#endif /* __cplusplus */
 4456#endif
 4457
 4458
 4459/*****************************************************************************
 4460 * IShellFolder interface
 4461 */
 4462#ifndef __IShellFolder_INTERFACE_DEFINED__
 4463#define __IShellFolder_INTERFACE_DEFINED__
 4464
 4465DEFINE_GUID(IID_IShellFolder, 0x000214e6, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 4466#if defined(__cplusplus) && !defined(CINTERFACE)
 4467MIDL_INTERFACE("000214e6-0000-0000-c000-000000000046")
 4468IShellFolder : public IUnknown
 4469{
 4470    virtual HRESULT STDMETHODCALLTYPE ParseDisplayName(
 4471        HWND hwnd,
 4472        IBindCtx *pbc,
 4473        LPWSTR pszDisplayName,
 4474        ULONG *pchEaten,
 4475        PIDLIST_RELATIVE *ppidl,
 4476        ULONG *pdwAttributes) = 0;
 4477
 4478    virtual HRESULT STDMETHODCALLTYPE EnumObjects(
 4479        HWND hwnd,
 4480        SHCONTF grfFlags,
 4481        IEnumIDList **ppenumIDList) = 0;
 4482
 4483    virtual HRESULT STDMETHODCALLTYPE BindToObject(
 4484        PCUIDLIST_RELATIVE pidl,
 4485        IBindCtx *pbc,
 4486        REFIID riid,
 4487        void **ppv) = 0;
 4488
 4489    virtual HRESULT STDMETHODCALLTYPE BindToStorage(
 4490        PCUIDLIST_RELATIVE pidl,
 4491        IBindCtx *pbc,
 4492        REFIID riid,
 4493        void **ppv) = 0;
 4494
 4495    virtual HRESULT STDMETHODCALLTYPE CompareIDs(
 4496        LPARAM lParam,
 4497        PCUIDLIST_RELATIVE pidl1,
 4498        PCUIDLIST_RELATIVE pidl2) = 0;
 4499
 4500    virtual HRESULT STDMETHODCALLTYPE CreateViewObject(
 4501        HWND hwndOwner,
 4502        REFIID riid,
 4503        void **ppv) = 0;
 4504
 4505    virtual HRESULT STDMETHODCALLTYPE GetAttributesOf(
 4506        UINT cidl,
 4507        PCUITEMID_CHILD_ARRAY apidl,
 4508        SFGAOF *rgfInOut) = 0;
 4509
 4510    virtual HRESULT STDMETHODCALLTYPE GetUIObjectOf(
 4511        HWND hwndOwner,
 4512        UINT cidl,
 4513        PCUITEMID_CHILD_ARRAY apidl,
 4514        REFIID riid,
 4515        UINT *rgfReserved,
 4516        void **ppv) = 0;
 4517
 4518    virtual HRESULT STDMETHODCALLTYPE GetDisplayNameOf(
 4519        PCUITEMID_CHILD pidl,
 4520        SHGDNF uFlags,
 4521        STRRET *pName) = 0;
 4522
 4523    virtual HRESULT STDMETHODCALLTYPE SetNameOf(
 4524        HWND hwnd,
 4525        PCUITEMID_CHILD pidl,
 4526        LPCWSTR pszName,
 4527        SHGDNF uFlags,
 4528        PITEMID_CHILD *ppidlOut) = 0;
 4529
 4530};
 4531#ifdef __CRT_UUID_DECL
 4532__CRT_UUID_DECL(IShellFolder, 0x000214e6, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
 4533#endif
 4534#else
 4535typedef struct IShellFolderVtbl {
 4536    BEGIN_INTERFACE
 4537
 4538    /*** IUnknown methods ***/
 4539    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4540        IShellFolder *This,
 4541        REFIID riid,
 4542        void **ppvObject);
 4543
 4544    ULONG (STDMETHODCALLTYPE *AddRef)(
 4545        IShellFolder *This);
 4546
 4547    ULONG (STDMETHODCALLTYPE *Release)(
 4548        IShellFolder *This);
 4549
 4550    /*** IShellFolder methods ***/
 4551    HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
 4552        IShellFolder *This,
 4553        HWND hwnd,
 4554        IBindCtx *pbc,
 4555        LPWSTR pszDisplayName,
 4556        ULONG *pchEaten,
 4557        PIDLIST_RELATIVE *ppidl,
 4558        ULONG *pdwAttributes);
 4559
 4560    HRESULT (STDMETHODCALLTYPE *EnumObjects)(
 4561        IShellFolder *This,
 4562        HWND hwnd,
 4563        SHCONTF grfFlags,
 4564        IEnumIDList **ppenumIDList);
 4565
 4566    HRESULT (STDMETHODCALLTYPE *BindToObject)(
 4567        IShellFolder *This,
 4568        PCUIDLIST_RELATIVE pidl,
 4569        IBindCtx *pbc,
 4570        REFIID riid,
 4571        void **ppv);
 4572
 4573    HRESULT (STDMETHODCALLTYPE *BindToStorage)(
 4574        IShellFolder *This,
 4575        PCUIDLIST_RELATIVE pidl,
 4576        IBindCtx *pbc,
 4577        REFIID riid,
 4578        void **ppv);
 4579
 4580    HRESULT (STDMETHODCALLTYPE *CompareIDs)(
 4581        IShellFolder *This,
 4582        LPARAM lParam,
 4583        PCUIDLIST_RELATIVE pidl1,
 4584        PCUIDLIST_RELATIVE pidl2);
 4585
 4586    HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
 4587        IShellFolder *This,
 4588        HWND hwndOwner,
 4589        REFIID riid,
 4590        void **ppv);
 4591
 4592    HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
 4593        IShellFolder *This,
 4594        UINT cidl,
 4595        PCUITEMID_CHILD_ARRAY apidl,
 4596        SFGAOF *rgfInOut);
 4597
 4598    HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
 4599        IShellFolder *This,
 4600        HWND hwndOwner,
 4601        UINT cidl,
 4602        PCUITEMID_CHILD_ARRAY apidl,
 4603        REFIID riid,
 4604        UINT *rgfReserved,
 4605        void **ppv);
 4606
 4607    HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
 4608        IShellFolder *This,
 4609        PCUITEMID_CHILD pidl,
 4610        SHGDNF uFlags,
 4611        STRRET *pName);
 4612
 4613    HRESULT (STDMETHODCALLTYPE *SetNameOf)(
 4614        IShellFolder *This,
 4615        HWND hwnd,
 4616        PCUITEMID_CHILD pidl,
 4617        LPCWSTR pszName,
 4618        SHGDNF uFlags,
 4619        PITEMID_CHILD *ppidlOut);
 4620
 4621    END_INTERFACE
 4622} IShellFolderVtbl;
 4623
 4624interface IShellFolder {
 4625    CONST_VTBL IShellFolderVtbl* lpVtbl;
 4626};
 4627
 4628#ifdef COBJMACROS
 4629#ifndef WIDL_C_INLINE_WRAPPERS
 4630/*** IUnknown methods ***/
 4631#define IShellFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4632#define IShellFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
 4633#define IShellFolder_Release(This) (This)->lpVtbl->Release(This)
 4634/*** IShellFolder methods ***/
 4635#define IShellFolder_ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes) (This)->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes)
 4636#define IShellFolder_EnumObjects(This,hwnd,grfFlags,ppenumIDList) (This)->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList)
 4637#define IShellFolder_BindToObject(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv)
 4638#define IShellFolder_BindToStorage(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv)
 4639#define IShellFolder_CompareIDs(This,lParam,pidl1,pidl2) (This)->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2)
 4640#define IShellFolder_CreateViewObject(This,hwndOwner,riid,ppv) (This)->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv)
 4641#define IShellFolder_GetAttributesOf(This,cidl,apidl,rgfInOut) (This)->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut)
 4642#define IShellFolder_GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv) (This)->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv)
 4643#define IShellFolder_GetDisplayNameOf(This,pidl,uFlags,pName) (This)->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName)
 4644#define IShellFolder_SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut) (This)->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut)
 4645#else
 4646/*** IUnknown methods ***/
 4647static inline HRESULT IShellFolder_QueryInterface(IShellFolder* This,REFIID riid,void **ppvObject) {
 4648    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4649}
 4650static inline ULONG IShellFolder_AddRef(IShellFolder* This) {
 4651    return This->lpVtbl->AddRef(This);
 4652}
 4653static inline ULONG IShellFolder_Release(IShellFolder* This) {
 4654    return This->lpVtbl->Release(This);
 4655}
 4656/*** IShellFolder methods ***/
 4657static inline HRESULT IShellFolder_ParseDisplayName(IShellFolder* This,HWND hwnd,IBindCtx *pbc,LPWSTR pszDisplayName,ULONG *pchEaten,PIDLIST_RELATIVE *ppidl,ULONG *pdwAttributes) {
 4658    return This->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes);
 4659}
 4660static inline HRESULT IShellFolder_EnumObjects(IShellFolder* This,HWND hwnd,SHCONTF grfFlags,IEnumIDList **ppenumIDList) {
 4661    return This->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList);
 4662}
 4663static inline HRESULT IShellFolder_BindToObject(IShellFolder* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
 4664    return This->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv);
 4665}
 4666static inline HRESULT IShellFolder_BindToStorage(IShellFolder* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
 4667    return This->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv);
 4668}
 4669static inline HRESULT IShellFolder_CompareIDs(IShellFolder* This,LPARAM lParam,PCUIDLIST_RELATIVE pidl1,PCUIDLIST_RELATIVE pidl2) {
 4670    return This->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2);
 4671}
 4672static inline HRESULT IShellFolder_CreateViewObject(IShellFolder* This,HWND hwndOwner,REFIID riid,void **ppv) {
 4673    return This->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv);
 4674}
 4675static inline HRESULT IShellFolder_GetAttributesOf(IShellFolder* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,SFGAOF *rgfInOut) {
 4676    return This->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut);
 4677}
 4678static inline HRESULT IShellFolder_GetUIObjectOf(IShellFolder* This,HWND hwndOwner,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,REFIID riid,UINT *rgfReserved,void **ppv) {
 4679    return This->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv);
 4680}
 4681static inline HRESULT IShellFolder_GetDisplayNameOf(IShellFolder* This,PCUITEMID_CHILD pidl,SHGDNF uFlags,STRRET *pName) {
 4682    return This->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName);
 4683}
 4684static inline HRESULT IShellFolder_SetNameOf(IShellFolder* This,HWND hwnd,PCUITEMID_CHILD pidl,LPCWSTR pszName,SHGDNF uFlags,PITEMID_CHILD *ppidlOut) {
 4685    return This->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut);
 4686}
 4687#endif
 4688#endif
 4689
 4690#endif
 4691
 4692HRESULT STDMETHODCALLTYPE IShellFolder_RemoteSetNameOf_Proxy(
 4693    IShellFolder* This,
 4694    HWND hwnd,
 4695    PCUITEMID_CHILD pidl,
 4696    LPCWSTR pszName,
 4697    SHGDNF uFlags,
 4698    PITEMID_CHILD *ppidlOut);
 4699void __RPC_STUB IShellFolder_RemoteSetNameOf_Stub(
 4700    IRpcStubBuffer* This,
 4701    IRpcChannelBuffer* pRpcChannelBuffer,
 4702    PRPC_MESSAGE pRpcMessage,
 4703    DWORD* pdwStubPhase);
 4704HRESULT CALLBACK IShellFolder_SetNameOf_Proxy(
 4705    IShellFolder* This,
 4706    HWND hwnd,
 4707    PCUITEMID_CHILD pidl,
 4708    LPCWSTR pszName,
 4709    SHGDNF uFlags,
 4710    PITEMID_CHILD *ppidlOut);
 4711HRESULT __RPC_STUB IShellFolder_SetNameOf_Stub(
 4712    IShellFolder* This,
 4713    HWND hwnd,
 4714    PCUITEMID_CHILD pidl,
 4715    LPCWSTR pszName,
 4716    SHGDNF uFlags,
 4717    PITEMID_CHILD *ppidlOut);
 4718
 4719#endif  /* __IShellFolder_INTERFACE_DEFINED__ */
 4720
 4721typedef IShellFolder *LPSHELLFOLDER;
 4722
 4723typedef struct EXTRASEARCH {
 4724    GUID guidSearch;
 4725    WCHAR wszFriendlyName[80];
 4726    WCHAR wszUrl[2084];
 4727} EXTRASEARCH;
 4728typedef struct EXTRASEARCH *LPEXTRASEARCH;
 4729
 4730/*****************************************************************************
 4731 * IEnumExtraSearch interface
 4732 */
 4733#ifndef __IEnumExtraSearch_INTERFACE_DEFINED__
 4734#define __IEnumExtraSearch_INTERFACE_DEFINED__
 4735
 4736DEFINE_GUID(IID_IEnumExtraSearch, 0x0e700be1, 0x9db6, 0x11d1, 0xa1,0xce, 0x00,0xc0,0x4f,0xd7,0x5d,0x13);
 4737#if defined(__cplusplus) && !defined(CINTERFACE)
 4738MIDL_INTERFACE("0e700be1-9db6-11d1-a1ce-00c04fd75d13")
 4739IEnumExtraSearch : public IUnknown
 4740{
 4741    virtual HRESULT STDMETHODCALLTYPE Next(
 4742        ULONG celt,
 4743        EXTRASEARCH *rgelt,
 4744        ULONG *pceltFetched) = 0;
 4745
 4746    virtual HRESULT STDMETHODCALLTYPE Skip(
 4747        ULONG celt) = 0;
 4748
 4749    virtual HRESULT STDMETHODCALLTYPE Reset(
 4750        ) = 0;
 4751
 4752    virtual HRESULT STDMETHODCALLTYPE Clone(
 4753        IEnumExtraSearch **ppenum) = 0;
 4754
 4755};
 4756#ifdef __CRT_UUID_DECL
 4757__CRT_UUID_DECL(IEnumExtraSearch, 0x0e700be1, 0x9db6, 0x11d1, 0xa1,0xce, 0x00,0xc0,0x4f,0xd7,0x5d,0x13)
 4758#endif
 4759#else
 4760typedef struct IEnumExtraSearchVtbl {
 4761    BEGIN_INTERFACE
 4762
 4763    /*** IUnknown methods ***/
 4764    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4765        IEnumExtraSearch *This,
 4766        REFIID riid,
 4767        void **ppvObject);
 4768
 4769    ULONG (STDMETHODCALLTYPE *AddRef)(
 4770        IEnumExtraSearch *This);
 4771
 4772    ULONG (STDMETHODCALLTYPE *Release)(
 4773        IEnumExtraSearch *This);
 4774
 4775    /*** IEnumExtraSearch methods ***/
 4776    HRESULT (STDMETHODCALLTYPE *Next)(
 4777        IEnumExtraSearch *This,
 4778        ULONG celt,
 4779        EXTRASEARCH *rgelt,
 4780        ULONG *pceltFetched);
 4781
 4782    HRESULT (STDMETHODCALLTYPE *Skip)(
 4783        IEnumExtraSearch *This,
 4784        ULONG celt);
 4785
 4786    HRESULT (STDMETHODCALLTYPE *Reset)(
 4787        IEnumExtraSearch *This);
 4788
 4789    HRESULT (STDMETHODCALLTYPE *Clone)(
 4790        IEnumExtraSearch *This,
 4791        IEnumExtraSearch **ppenum);
 4792
 4793    END_INTERFACE
 4794} IEnumExtraSearchVtbl;
 4795
 4796interface IEnumExtraSearch {
 4797    CONST_VTBL IEnumExtraSearchVtbl* lpVtbl;
 4798};
 4799
 4800#ifdef COBJMACROS
 4801#ifndef WIDL_C_INLINE_WRAPPERS
 4802/*** IUnknown methods ***/
 4803#define IEnumExtraSearch_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 4804#define IEnumExtraSearch_AddRef(This) (This)->lpVtbl->AddRef(This)
 4805#define IEnumExtraSearch_Release(This) (This)->lpVtbl->Release(This)
 4806/*** IEnumExtraSearch methods ***/
 4807#define IEnumExtraSearch_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
 4808#define IEnumExtraSearch_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
 4809#define IEnumExtraSearch_Reset(This) (This)->lpVtbl->Reset(This)
 4810#define IEnumExtraSearch_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
 4811#else
 4812/*** IUnknown methods ***/
 4813static inline HRESULT IEnumExtraSearch_QueryInterface(IEnumExtraSearch* This,REFIID riid,void **ppvObject) {
 4814    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 4815}
 4816static inline ULONG IEnumExtraSearch_AddRef(IEnumExtraSearch* This) {
 4817    return This->lpVtbl->AddRef(This);
 4818}
 4819static inline ULONG IEnumExtraSearch_Release(IEnumExtraSearch* This) {
 4820    return This->lpVtbl->Release(This);
 4821}
 4822/*** IEnumExtraSearch methods ***/
 4823static inline HRESULT IEnumExtraSearch_Next(IEnumExtraSearch* This,ULONG celt,EXTRASEARCH *rgelt,ULONG *pceltFetched) {
 4824    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
 4825}
 4826static inline HRESULT IEnumExtraSearch_Skip(IEnumExtraSearch* This,ULONG celt) {
 4827    return This->lpVtbl->Skip(This,celt);
 4828}
 4829static inline HRESULT IEnumExtraSearch_Reset(IEnumExtraSearch* This) {
 4830    return This->lpVtbl->Reset(This);
 4831}
 4832static inline HRESULT IEnumExtraSearch_Clone(IEnumExtraSearch* This,IEnumExtraSearch **ppenum) {
 4833    return This->lpVtbl->Clone(This,ppenum);
 4834}
 4835#endif
 4836#endif
 4837
 4838#endif
 4839
 4840
 4841#endif  /* __IEnumExtraSearch_INTERFACE_DEFINED__ */
 4842
 4843typedef IEnumExtraSearch *LPENUMEXTRASEARCH;
 4844
 4845/*****************************************************************************
 4846 * IShellFolder2 interface
 4847 */
 4848#ifndef __IShellFolder2_INTERFACE_DEFINED__
 4849#define __IShellFolder2_INTERFACE_DEFINED__
 4850
 4851DEFINE_GUID(IID_IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3,0x0e, 0x00,0xc0,0x4f,0x79,0xab,0xd1);
 4852#if defined(__cplusplus) && !defined(CINTERFACE)
 4853MIDL_INTERFACE("93f2f68c-1d1b-11d3-a30e-00c04f79abd1")
 4854IShellFolder2 : public IShellFolder
 4855{
 4856    virtual HRESULT STDMETHODCALLTYPE GetDefaultSearchGUID(
 4857        GUID *pguid) = 0;
 4858
 4859    virtual HRESULT STDMETHODCALLTYPE EnumSearches(
 4860        IEnumExtraSearch **ppenum) = 0;
 4861
 4862    virtual HRESULT STDMETHODCALLTYPE GetDefaultColumn(
 4863        DWORD dwRes,
 4864        ULONG *pSort,
 4865        ULONG *pDisplay) = 0;
 4866
 4867    virtual HRESULT STDMETHODCALLTYPE GetDefaultColumnState(
 4868        UINT iColumn,
 4869        SHCOLSTATEF *pcsFlags) = 0;
 4870
 4871    virtual HRESULT STDMETHODCALLTYPE GetDetailsEx(
 4872        PCUITEMID_CHILD pidl,
 4873        const SHCOLUMNID *pscid,
 4874        VARIANT *pv) = 0;
 4875
 4876    virtual HRESULT STDMETHODCALLTYPE GetDetailsOf(
 4877        PCUITEMID_CHILD pidl,
 4878        UINT iColumn,
 4879        SHELLDETAILS *psd) = 0;
 4880
 4881    virtual HRESULT STDMETHODCALLTYPE MapColumnToSCID(
 4882        UINT iColumn,
 4883        SHCOLUMNID *pscid) = 0;
 4884
 4885};
 4886#ifdef __CRT_UUID_DECL
 4887__CRT_UUID_DECL(IShellFolder2, 0x93f2f68c, 0x1d1b, 0x11d3, 0xa3,0x0e, 0x00,0xc0,0x4f,0x79,0xab,0xd1)
 4888#endif
 4889#else
 4890typedef struct IShellFolder2Vtbl {
 4891    BEGIN_INTERFACE
 4892
 4893    /*** IUnknown methods ***/
 4894    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 4895        IShellFolder2 *This,
 4896        REFIID riid,
 4897        void **ppvObject);
 4898
 4899    ULONG (STDMETHODCALLTYPE *AddRef)(
 4900        IShellFolder2 *This);
 4901
 4902    ULONG (STDMETHODCALLTYPE *Release)(
 4903        IShellFolder2 *This);
 4904
 4905    /*** IShellFolder methods ***/
 4906    HRESULT (STDMETHODCALLTYPE *ParseDisplayName)(
 4907        IShellFolder2 *This,
 4908        HWND hwnd,
 4909        IBindCtx *pbc,
 4910        LPWSTR pszDisplayName,
 4911        ULONG *pchEaten,
 4912        PIDLIST_RELATIVE *ppidl,
 4913        ULONG *pdwAttributes);
 4914
 4915    HRESULT (STDMETHODCALLTYPE *EnumObjects)(
 4916        IShellFolder2 *This,
 4917        HWND hwnd,
 4918        SHCONTF grfFlags,
 4919        IEnumIDList **ppenumIDList);
 4920
 4921    HRESULT (STDMETHODCALLTYPE *BindToObject)(
 4922        IShellFolder2 *This,
 4923        PCUIDLIST_RELATIVE pidl,
 4924        IBindCtx *pbc,
 4925        REFIID riid,
 4926        void **ppv);
 4927
 4928    HRESULT (STDMETHODCALLTYPE *BindToStorage)(
 4929        IShellFolder2 *This,
 4930        PCUIDLIST_RELATIVE pidl,
 4931        IBindCtx *pbc,
 4932        REFIID riid,
 4933        void **ppv);
 4934
 4935    HRESULT (STDMETHODCALLTYPE *CompareIDs)(
 4936        IShellFolder2 *This,
 4937        LPARAM lParam,
 4938        PCUIDLIST_RELATIVE pidl1,
 4939        PCUIDLIST_RELATIVE pidl2);
 4940
 4941    HRESULT (STDMETHODCALLTYPE *CreateViewObject)(
 4942        IShellFolder2 *This,
 4943        HWND hwndOwner,
 4944        REFIID riid,
 4945        void **ppv);
 4946
 4947    HRESULT (STDMETHODCALLTYPE *GetAttributesOf)(
 4948        IShellFolder2 *This,
 4949        UINT cidl,
 4950        PCUITEMID_CHILD_ARRAY apidl,
 4951        SFGAOF *rgfInOut);
 4952
 4953    HRESULT (STDMETHODCALLTYPE *GetUIObjectOf)(
 4954        IShellFolder2 *This,
 4955        HWND hwndOwner,
 4956        UINT cidl,
 4957        PCUITEMID_CHILD_ARRAY apidl,
 4958        REFIID riid,
 4959        UINT *rgfReserved,
 4960        void **ppv);
 4961
 4962    HRESULT (STDMETHODCALLTYPE *GetDisplayNameOf)(
 4963        IShellFolder2 *This,
 4964        PCUITEMID_CHILD pidl,
 4965        SHGDNF uFlags,
 4966        STRRET *pName);
 4967
 4968    HRESULT (STDMETHODCALLTYPE *SetNameOf)(
 4969        IShellFolder2 *This,
 4970        HWND hwnd,
 4971        PCUITEMID_CHILD pidl,
 4972        LPCWSTR pszName,
 4973        SHGDNF uFlags,
 4974        PITEMID_CHILD *ppidlOut);
 4975
 4976    /*** IShellFolder2 methods ***/
 4977    HRESULT (STDMETHODCALLTYPE *GetDefaultSearchGUID)(
 4978        IShellFolder2 *This,
 4979        GUID *pguid);
 4980
 4981    HRESULT (STDMETHODCALLTYPE *EnumSearches)(
 4982        IShellFolder2 *This,
 4983        IEnumExtraSearch **ppenum);
 4984
 4985    HRESULT (STDMETHODCALLTYPE *GetDefaultColumn)(
 4986        IShellFolder2 *This,
 4987        DWORD dwRes,
 4988        ULONG *pSort,
 4989        ULONG *pDisplay);
 4990
 4991    HRESULT (STDMETHODCALLTYPE *GetDefaultColumnState)(
 4992        IShellFolder2 *This,
 4993        UINT iColumn,
 4994        SHCOLSTATEF *pcsFlags);
 4995
 4996    HRESULT (STDMETHODCALLTYPE *GetDetailsEx)(
 4997        IShellFolder2 *This,
 4998        PCUITEMID_CHILD pidl,
 4999        const SHCOLUMNID *pscid,
 5000        VARIANT *pv);
 5001
 5002    HRESULT (STDMETHODCALLTYPE *GetDetailsOf)(
 5003        IShellFolder2 *This,
 5004        PCUITEMID_CHILD pidl,
 5005        UINT iColumn,
 5006        SHELLDETAILS *psd);
 5007
 5008    HRESULT (STDMETHODCALLTYPE *MapColumnToSCID)(
 5009        IShellFolder2 *This,
 5010        UINT iColumn,
 5011        SHCOLUMNID *pscid);
 5012
 5013    END_INTERFACE
 5014} IShellFolder2Vtbl;
 5015
 5016interface IShellFolder2 {
 5017    CONST_VTBL IShellFolder2Vtbl* lpVtbl;
 5018};
 5019
 5020#ifdef COBJMACROS
 5021#ifndef WIDL_C_INLINE_WRAPPERS
 5022/*** IUnknown methods ***/
 5023#define IShellFolder2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5024#define IShellFolder2_AddRef(This) (This)->lpVtbl->AddRef(This)
 5025#define IShellFolder2_Release(This) (This)->lpVtbl->Release(This)
 5026/*** IShellFolder methods ***/
 5027#define IShellFolder2_ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes) (This)->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes)
 5028#define IShellFolder2_EnumObjects(This,hwnd,grfFlags,ppenumIDList) (This)->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList)
 5029#define IShellFolder2_BindToObject(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv)
 5030#define IShellFolder2_BindToStorage(This,pidl,pbc,riid,ppv) (This)->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv)
 5031#define IShellFolder2_CompareIDs(This,lParam,pidl1,pidl2) (This)->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2)
 5032#define IShellFolder2_CreateViewObject(This,hwndOwner,riid,ppv) (This)->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv)
 5033#define IShellFolder2_GetAttributesOf(This,cidl,apidl,rgfInOut) (This)->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut)
 5034#define IShellFolder2_GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv) (This)->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv)
 5035#define IShellFolder2_GetDisplayNameOf(This,pidl,uFlags,pName) (This)->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName)
 5036#define IShellFolder2_SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut) (This)->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut)
 5037/*** IShellFolder2 methods ***/
 5038#define IShellFolder2_GetDefaultSearchGUID(This,pguid) (This)->lpVtbl->GetDefaultSearchGUID(This,pguid)
 5039#define IShellFolder2_EnumSearches(This,ppenum) (This)->lpVtbl->EnumSearches(This,ppenum)
 5040#define IShellFolder2_GetDefaultColumn(This,dwRes,pSort,pDisplay) (This)->lpVtbl->GetDefaultColumn(This,dwRes,pSort,pDisplay)
 5041#define IShellFolder2_GetDefaultColumnState(This,iColumn,pcsFlags) (This)->lpVtbl->GetDefaultColumnState(This,iColumn,pcsFlags)
 5042#define IShellFolder2_GetDetailsEx(This,pidl,pscid,pv) (This)->lpVtbl->GetDetailsEx(This,pidl,pscid,pv)
 5043#define IShellFolder2_GetDetailsOf(This,pidl,iColumn,psd) (This)->lpVtbl->GetDetailsOf(This,pidl,iColumn,psd)
 5044#define IShellFolder2_MapColumnToSCID(This,iColumn,pscid) (This)->lpVtbl->MapColumnToSCID(This,iColumn,pscid)
 5045#else
 5046/*** IUnknown methods ***/
 5047static inline HRESULT IShellFolder2_QueryInterface(IShellFolder2* This,REFIID riid,void **ppvObject) {
 5048    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5049}
 5050static inline ULONG IShellFolder2_AddRef(IShellFolder2* This) {
 5051    return This->lpVtbl->AddRef(This);
 5052}
 5053static inline ULONG IShellFolder2_Release(IShellFolder2* This) {
 5054    return This->lpVtbl->Release(This);
 5055}
 5056/*** IShellFolder methods ***/
 5057static inline HRESULT IShellFolder2_ParseDisplayName(IShellFolder2* This,HWND hwnd,IBindCtx *pbc,LPWSTR pszDisplayName,ULONG *pchEaten,PIDLIST_RELATIVE *ppidl,ULONG *pdwAttributes) {
 5058    return This->lpVtbl->ParseDisplayName(This,hwnd,pbc,pszDisplayName,pchEaten,ppidl,pdwAttributes);
 5059}
 5060static inline HRESULT IShellFolder2_EnumObjects(IShellFolder2* This,HWND hwnd,SHCONTF grfFlags,IEnumIDList **ppenumIDList) {
 5061    return This->lpVtbl->EnumObjects(This,hwnd,grfFlags,ppenumIDList);
 5062}
 5063static inline HRESULT IShellFolder2_BindToObject(IShellFolder2* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
 5064    return This->lpVtbl->BindToObject(This,pidl,pbc,riid,ppv);
 5065}
 5066static inline HRESULT IShellFolder2_BindToStorage(IShellFolder2* This,PCUIDLIST_RELATIVE pidl,IBindCtx *pbc,REFIID riid,void **ppv) {
 5067    return This->lpVtbl->BindToStorage(This,pidl,pbc,riid,ppv);
 5068}
 5069static inline HRESULT IShellFolder2_CompareIDs(IShellFolder2* This,LPARAM lParam,PCUIDLIST_RELATIVE pidl1,PCUIDLIST_RELATIVE pidl2) {
 5070    return This->lpVtbl->CompareIDs(This,lParam,pidl1,pidl2);
 5071}
 5072static inline HRESULT IShellFolder2_CreateViewObject(IShellFolder2* This,HWND hwndOwner,REFIID riid,void **ppv) {
 5073    return This->lpVtbl->CreateViewObject(This,hwndOwner,riid,ppv);
 5074}
 5075static inline HRESULT IShellFolder2_GetAttributesOf(IShellFolder2* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,SFGAOF *rgfInOut) {
 5076    return This->lpVtbl->GetAttributesOf(This,cidl,apidl,rgfInOut);
 5077}
 5078static inline HRESULT IShellFolder2_GetUIObjectOf(IShellFolder2* This,HWND hwndOwner,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,REFIID riid,UINT *rgfReserved,void **ppv) {
 5079    return This->lpVtbl->GetUIObjectOf(This,hwndOwner,cidl,apidl,riid,rgfReserved,ppv);
 5080}
 5081static inline HRESULT IShellFolder2_GetDisplayNameOf(IShellFolder2* This,PCUITEMID_CHILD pidl,SHGDNF uFlags,STRRET *pName) {
 5082    return This->lpVtbl->GetDisplayNameOf(This,pidl,uFlags,pName);
 5083}
 5084static inline HRESULT IShellFolder2_SetNameOf(IShellFolder2* This,HWND hwnd,PCUITEMID_CHILD pidl,LPCWSTR pszName,SHGDNF uFlags,PITEMID_CHILD *ppidlOut) {
 5085    return This->lpVtbl->SetNameOf(This,hwnd,pidl,pszName,uFlags,ppidlOut);
 5086}
 5087/*** IShellFolder2 methods ***/
 5088static inline HRESULT IShellFolder2_GetDefaultSearchGUID(IShellFolder2* This,GUID *pguid) {
 5089    return This->lpVtbl->GetDefaultSearchGUID(This,pguid);
 5090}
 5091static inline HRESULT IShellFolder2_EnumSearches(IShellFolder2* This,IEnumExtraSearch **ppenum) {
 5092    return This->lpVtbl->EnumSearches(This,ppenum);
 5093}
 5094static inline HRESULT IShellFolder2_GetDefaultColumn(IShellFolder2* This,DWORD dwRes,ULONG *pSort,ULONG *pDisplay) {
 5095    return This->lpVtbl->GetDefaultColumn(This,dwRes,pSort,pDisplay);
 5096}
 5097static inline HRESULT IShellFolder2_GetDefaultColumnState(IShellFolder2* This,UINT iColumn,SHCOLSTATEF *pcsFlags) {
 5098    return This->lpVtbl->GetDefaultColumnState(This,iColumn,pcsFlags);
 5099}
 5100static inline HRESULT IShellFolder2_GetDetailsEx(IShellFolder2* This,PCUITEMID_CHILD pidl,const SHCOLUMNID *pscid,VARIANT *pv) {
 5101    return This->lpVtbl->GetDetailsEx(This,pidl,pscid,pv);
 5102}
 5103static inline HRESULT IShellFolder2_GetDetailsOf(IShellFolder2* This,PCUITEMID_CHILD pidl,UINT iColumn,SHELLDETAILS *psd) {
 5104    return This->lpVtbl->GetDetailsOf(This,pidl,iColumn,psd);
 5105}
 5106static inline HRESULT IShellFolder2_MapColumnToSCID(IShellFolder2* This,UINT iColumn,SHCOLUMNID *pscid) {
 5107    return This->lpVtbl->MapColumnToSCID(This,iColumn,pscid);
 5108}
 5109#endif
 5110#endif
 5111
 5112#endif
 5113
 5114
 5115#endif  /* __IShellFolder2_INTERFACE_DEFINED__ */
 5116
 5117typedef char *LPVIEWSETTINGS;
 5118
 5119typedef enum FOLDERFLAGS {
 5120    FWF_NONE = 0x0,
 5121    FWF_AUTOARRANGE = 0x1,
 5122    FWF_ABBREVIATEDNAMES = 0x2,
 5123    FWF_SNAPTOGRID = 0x4,
 5124    FWF_OWNERDATA = 0x8,
 5125    FWF_BESTFITWINDOW = 0x10,
 5126    FWF_DESKTOP = 0x20,
 5127    FWF_SINGLESEL = 0x40,
 5128    FWF_NOSUBFOLDERS = 0x80,
 5129    FWF_TRANSPARENT = 0x100,
 5130    FWF_NOCLIENTEDGE = 0x200,
 5131    FWF_NOSCROLL = 0x400,
 5132    FWF_ALIGNLEFT = 0x800,
 5133    FWF_NOICONS = 0x1000,
 5134    FWF_SHOWSELALWAYS = 0x2000,
 5135    FWF_NOVISIBLE = 0x4000,
 5136    FWF_SINGLECLICKACTIVATE = 0x8000,
 5137    FWF_NOWEBVIEW = 0x10000,
 5138    FWF_HIDEFILENAMES = 0x20000,
 5139    FWF_CHECKSELECT = 0x40000,
 5140    FWF_NOENUMREFRESH = 0x80000,
 5141    FWF_NOGROUPING = 0x100000,
 5142    FWF_FULLROWSELECT = 0x200000,
 5143    FWF_NOFILTERS = 0x400000,
 5144    FWF_NOCOLUMNHEADER = 0x800000,
 5145    FWF_NOHEADERINALLVIEWS = 0x1000000,
 5146    FWF_EXTENDEDTILES = 0x2000000,
 5147    FWF_TRICHECKSELECT = 0x4000000,
 5148    FWF_AUTOCHECKSELECT = 0x8000000,
 5149    FWF_NOBROWSERVIEWSTATE = 0x10000000,
 5150    FWF_SUBSETGROUPS = 0x20000000,
 5151    FWF_USESEARCHFOLDER = 0x40000000,
 5152    FWF_ALLOWRTLREADING = 0x80000000
 5153} FOLDERFLAGS;
 5154
 5155DEFINE_ENUM_FLAG_OPERATORS(FOLDERFLAGS)
 5156
 5157typedef enum FOLDERVIEWMODE {
 5158    FVM_AUTO = -1,
 5159    FVM_FIRST = 1,
 5160    FVM_ICON = 1,
 5161    FVM_SMALLICON = 2,
 5162    FVM_LIST = 3,
 5163    FVM_DETAILS = 4,
 5164    FVM_THUMBNAIL = 5,
 5165    FVM_TILE = 6,
 5166    FVM_THUMBSTRIP = 7,
 5167    FVM_CONTENT = 8,
 5168    FVM_LAST = 8
 5169} FOLDERVIEWMODE;
 5170
 5171#if NTDDI_VERSION >= NTDDI_VISTA
 5172typedef enum FOLDERLOGICALVIEWMODE {
 5173    FLVM_UNSPECIFIED = -1,
 5174    FLVM_FIRST = 1,
 5175    FLVM_DETAILS = 1,
 5176    FLVM_TILES = 2,
 5177    FLVM_ICONS = 3,
 5178    FLVM_LIST = 4,
 5179    FLVM_CONTENT = 5,
 5180    FLVM_LAST = 5
 5181} FOLDERLOGICALVIEWMODE;
 5182#endif
 5183typedef struct FOLDERSETTINGS {
 5184    UINT ViewMode;
 5185    UINT fFlags;
 5186} FOLDERSETTINGS;
 5187
 5188typedef FOLDERSETTINGS *LPFOLDERSETTINGS;
 5189typedef const FOLDERSETTINGS *LPCFOLDERSETTINGS;
 5190typedef FOLDERSETTINGS *PFOLDERSETTINGS;
 5191
 5192/*****************************************************************************
 5193 * IFolderViewOptions interface
 5194 */
 5195#ifndef __IFolderViewOptions_INTERFACE_DEFINED__
 5196#define __IFolderViewOptions_INTERFACE_DEFINED__
 5197
 5198typedef enum FOLDERVIEWOPTIONS {
 5199    FVO_DEFAULT = 0x0,
 5200    FVO_VISTALAYOUT = 0x1,
 5201    FVO_CUSTOMPOSITION = 0x2,
 5202    FVO_CUSTOMORDERING = 0x4,
 5203    FVO_SUPPORTHYPERLINKS = 0x8,
 5204    FVO_NOANIMATIONS = 0x10,
 5205    FVO_NOSCROLLTIPS = 0x20
 5206} FOLDERVIEWOPTIONS;
 5207
 5208DEFINE_ENUM_FLAG_OPERATORS(FOLDERVIEWOPTIONS)
 5209
 5210DEFINE_GUID(IID_IFolderViewOptions, 0x3cc974d2, 0xb302, 0x4d36, 0xad,0x3e, 0x06,0xd9,0x3f,0x69,0x5d,0x3f);
 5211#if defined(__cplusplus) && !defined(CINTERFACE)
 5212MIDL_INTERFACE("3cc974d2-b302-4d36-ad3e-06d93f695d3f")
 5213IFolderViewOptions : public IUnknown
 5214{
 5215    virtual HRESULT STDMETHODCALLTYPE SetFolderViewOptions(
 5216        FOLDERVIEWOPTIONS fvoMask,
 5217        FOLDERVIEWOPTIONS fvoFlags) = 0;
 5218
 5219    virtual HRESULT STDMETHODCALLTYPE GetFolderViewOptions(
 5220        FOLDERVIEWOPTIONS *pfvoFlags) = 0;
 5221
 5222};
 5223#ifdef __CRT_UUID_DECL
 5224__CRT_UUID_DECL(IFolderViewOptions, 0x3cc974d2, 0xb302, 0x4d36, 0xad,0x3e, 0x06,0xd9,0x3f,0x69,0x5d,0x3f)
 5225#endif
 5226#else
 5227typedef struct IFolderViewOptionsVtbl {
 5228    BEGIN_INTERFACE
 5229
 5230    /*** IUnknown methods ***/
 5231    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5232        IFolderViewOptions *This,
 5233        REFIID riid,
 5234        void **ppvObject);
 5235
 5236    ULONG (STDMETHODCALLTYPE *AddRef)(
 5237        IFolderViewOptions *This);
 5238
 5239    ULONG (STDMETHODCALLTYPE *Release)(
 5240        IFolderViewOptions *This);
 5241
 5242    /*** IFolderViewOptions methods ***/
 5243    HRESULT (STDMETHODCALLTYPE *SetFolderViewOptions)(
 5244        IFolderViewOptions *This,
 5245        FOLDERVIEWOPTIONS fvoMask,
 5246        FOLDERVIEWOPTIONS fvoFlags);
 5247
 5248    HRESULT (STDMETHODCALLTYPE *GetFolderViewOptions)(
 5249        IFolderViewOptions *This,
 5250        FOLDERVIEWOPTIONS *pfvoFlags);
 5251
 5252    END_INTERFACE
 5253} IFolderViewOptionsVtbl;
 5254
 5255interface IFolderViewOptions {
 5256    CONST_VTBL IFolderViewOptionsVtbl* lpVtbl;
 5257};
 5258
 5259#ifdef COBJMACROS
 5260#ifndef WIDL_C_INLINE_WRAPPERS
 5261/*** IUnknown methods ***/
 5262#define IFolderViewOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5263#define IFolderViewOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
 5264#define IFolderViewOptions_Release(This) (This)->lpVtbl->Release(This)
 5265/*** IFolderViewOptions methods ***/
 5266#define IFolderViewOptions_SetFolderViewOptions(This,fvoMask,fvoFlags) (This)->lpVtbl->SetFolderViewOptions(This,fvoMask,fvoFlags)
 5267#define IFolderViewOptions_GetFolderViewOptions(This,pfvoFlags) (This)->lpVtbl->GetFolderViewOptions(This,pfvoFlags)
 5268#else
 5269/*** IUnknown methods ***/
 5270static inline HRESULT IFolderViewOptions_QueryInterface(IFolderViewOptions* This,REFIID riid,void **ppvObject) {
 5271    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5272}
 5273static inline ULONG IFolderViewOptions_AddRef(IFolderViewOptions* This) {
 5274    return This->lpVtbl->AddRef(This);
 5275}
 5276static inline ULONG IFolderViewOptions_Release(IFolderViewOptions* This) {
 5277    return This->lpVtbl->Release(This);
 5278}
 5279/*** IFolderViewOptions methods ***/
 5280static inline HRESULT IFolderViewOptions_SetFolderViewOptions(IFolderViewOptions* This,FOLDERVIEWOPTIONS fvoMask,FOLDERVIEWOPTIONS fvoFlags) {
 5281    return This->lpVtbl->SetFolderViewOptions(This,fvoMask,fvoFlags);
 5282}
 5283static inline HRESULT IFolderViewOptions_GetFolderViewOptions(IFolderViewOptions* This,FOLDERVIEWOPTIONS *pfvoFlags) {
 5284    return This->lpVtbl->GetFolderViewOptions(This,pfvoFlags);
 5285}
 5286#endif
 5287#endif
 5288
 5289#endif
 5290
 5291
 5292#endif  /* __IFolderViewOptions_INTERFACE_DEFINED__ */
 5293
 5294typedef enum _SVSIF {
 5295    SVSI_DESELECT = 0x0,
 5296    SVSI_SELECT = 0x1,
 5297    SVSI_EDIT = 0x3,
 5298    SVSI_DESELECTOTHERS = 0x4,
 5299    SVSI_ENSUREVISIBLE = 0x8,
 5300    SVSI_FOCUSED = 0x10,
 5301    SVSI_TRANSLATEPT = 0x20,
 5302    SVSI_SELECTIONMARK = 0x40,
 5303    SVSI_POSITIONITEM = 0x80,
 5304    SVSI_CHECK = 0x100,
 5305    SVSI_CHECK2 = 0x200,
 5306    SVSI_KEYBOARDSELECT = 0x401,
 5307    SVSI_NOTAKEFOCUS = 0x40000000
 5308} _SVSIF;
 5309
 5310#define SVSI_NOSTATECHANGE   ((UINT)0x80000000)
 5311
 5312typedef UINT SVSIF;
 5313
 5314typedef enum _SVGIO {
 5315    SVGIO_BACKGROUND = 0x0,
 5316    SVGIO_SELECTION = 0x1,
 5317    SVGIO_ALLVIEW = 0x2,
 5318    SVGIO_CHECKED = 0x3,
 5319    SVGIO_TYPE_MASK = 0xf,
 5320    SVGIO_FLAG_VIEWORDER = 0x80000000
 5321} _SVGIO;
 5322
 5323DEFINE_ENUM_FLAG_OPERATORS(_SVGIO)
 5324
 5325typedef int SVGIO;
 5326
 5327typedef enum SVUIA_STATUS {
 5328    SVUIA_DEACTIVATE = 0,
 5329    SVUIA_ACTIVATE_NOFOCUS = 1,
 5330    SVUIA_ACTIVATE_FOCUS = 2,
 5331    SVUIA_INPLACEACTIVATE = 3
 5332} SVUIA_STATUS;
 5333
 5334#ifdef _FIX_ENABLEMODELESS_CONFLICT
 5335#define EnableModeless EnableModelessSV
 5336#endif
 5337
 5338#if 0
 5339typedef LPARAM LPFNSVADDPROPSHEETPAGE;
 5340#else
 5341#include <prsht.h>
 5342typedef LPFNADDPROPSHEETPAGE LPFNSVADDPROPSHEETPAGE;
 5343#endif
 5344
 5345#ifndef __IShellBrowser_FWD_DEFINED__
 5346#define __IShellBrowser_FWD_DEFINED__
 5347typedef interface IShellBrowser IShellBrowser;
 5348#ifdef __cplusplus
 5349interface IShellBrowser;
 5350#endif /* __cplusplus */
 5351#endif
 5352
 5353
 5354/*****************************************************************************
 5355 * IShellView interface
 5356 */
 5357#ifndef __IShellView_INTERFACE_DEFINED__
 5358#define __IShellView_INTERFACE_DEFINED__
 5359
 5360DEFINE_GUID(IID_IShellView, 0x000214e3, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 5361#if defined(__cplusplus) && !defined(CINTERFACE)
 5362MIDL_INTERFACE("000214e3-0000-0000-c000-000000000046")
 5363IShellView : public IOleWindow
 5364{
 5365    virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
 5366        MSG *pmsg) = 0;
 5367
 5368    virtual HRESULT STDMETHODCALLTYPE EnableModeless(
 5369        WINBOOL fEnable) = 0;
 5370
 5371    virtual HRESULT STDMETHODCALLTYPE UIActivate(
 5372        UINT uState) = 0;
 5373
 5374    virtual HRESULT STDMETHODCALLTYPE Refresh(
 5375        ) = 0;
 5376
 5377    virtual HRESULT STDMETHODCALLTYPE CreateViewWindow(
 5378        IShellView *psvPrevious,
 5379        LPCFOLDERSETTINGS pfs,
 5380        IShellBrowser *psb,
 5381        RECT *prcView,
 5382        HWND *phWnd) = 0;
 5383
 5384    virtual HRESULT STDMETHODCALLTYPE DestroyViewWindow(
 5385        ) = 0;
 5386
 5387    virtual HRESULT STDMETHODCALLTYPE GetCurrentInfo(
 5388        LPFOLDERSETTINGS pfs) = 0;
 5389
 5390    virtual HRESULT STDMETHODCALLTYPE AddPropertySheetPages(
 5391        DWORD dwReserved,
 5392        LPFNSVADDPROPSHEETPAGE pfn,
 5393        LPARAM lparam) = 0;
 5394
 5395    virtual HRESULT STDMETHODCALLTYPE SaveViewState(
 5396        ) = 0;
 5397
 5398    virtual HRESULT STDMETHODCALLTYPE SelectItem(
 5399        PCUITEMID_CHILD pidlItem,
 5400        SVSIF uFlags) = 0;
 5401
 5402    virtual HRESULT STDMETHODCALLTYPE GetItemObject(
 5403        UINT uItem,
 5404        REFIID riid,
 5405        void **ppv) = 0;
 5406
 5407};
 5408#ifdef __CRT_UUID_DECL
 5409__CRT_UUID_DECL(IShellView, 0x000214e3, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
 5410#endif
 5411#else
 5412typedef struct IShellViewVtbl {
 5413    BEGIN_INTERFACE
 5414
 5415    /*** IUnknown methods ***/
 5416    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5417        IShellView *This,
 5418        REFIID riid,
 5419        void **ppvObject);
 5420
 5421    ULONG (STDMETHODCALLTYPE *AddRef)(
 5422        IShellView *This);
 5423
 5424    ULONG (STDMETHODCALLTYPE *Release)(
 5425        IShellView *This);
 5426
 5427    /*** IOleWindow methods ***/
 5428    HRESULT (STDMETHODCALLTYPE *GetWindow)(
 5429        IShellView *This,
 5430        HWND *phwnd);
 5431
 5432    HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
 5433        IShellView *This,
 5434        WINBOOL fEnterMode);
 5435
 5436    /*** IShellView methods ***/
 5437    HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
 5438        IShellView *This,
 5439        MSG *pmsg);
 5440
 5441    HRESULT (STDMETHODCALLTYPE *EnableModeless)(
 5442        IShellView *This,
 5443        WINBOOL fEnable);
 5444
 5445    HRESULT (STDMETHODCALLTYPE *UIActivate)(
 5446        IShellView *This,
 5447        UINT uState);
 5448
 5449    HRESULT (STDMETHODCALLTYPE *Refresh)(
 5450        IShellView *This);
 5451
 5452    HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
 5453        IShellView *This,
 5454        IShellView *psvPrevious,
 5455        LPCFOLDERSETTINGS pfs,
 5456        IShellBrowser *psb,
 5457        RECT *prcView,
 5458        HWND *phWnd);
 5459
 5460    HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
 5461        IShellView *This);
 5462
 5463    HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
 5464        IShellView *This,
 5465        LPFOLDERSETTINGS pfs);
 5466
 5467    HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
 5468        IShellView *This,
 5469        DWORD dwReserved,
 5470        LPFNSVADDPROPSHEETPAGE pfn,
 5471        LPARAM lparam);
 5472
 5473    HRESULT (STDMETHODCALLTYPE *SaveViewState)(
 5474        IShellView *This);
 5475
 5476    HRESULT (STDMETHODCALLTYPE *SelectItem)(
 5477        IShellView *This,
 5478        PCUITEMID_CHILD pidlItem,
 5479        SVSIF uFlags);
 5480
 5481    HRESULT (STDMETHODCALLTYPE *GetItemObject)(
 5482        IShellView *This,
 5483        UINT uItem,
 5484        REFIID riid,
 5485        void **ppv);
 5486
 5487    END_INTERFACE
 5488} IShellViewVtbl;
 5489
 5490interface IShellView {
 5491    CONST_VTBL IShellViewVtbl* lpVtbl;
 5492};
 5493
 5494#ifdef COBJMACROS
 5495#ifndef WIDL_C_INLINE_WRAPPERS
 5496/*** IUnknown methods ***/
 5497#define IShellView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5498#define IShellView_AddRef(This) (This)->lpVtbl->AddRef(This)
 5499#define IShellView_Release(This) (This)->lpVtbl->Release(This)
 5500/*** IOleWindow methods ***/
 5501#define IShellView_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
 5502#define IShellView_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
 5503/*** IShellView methods ***/
 5504#define IShellView_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
 5505#define IShellView_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
 5506#define IShellView_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
 5507#define IShellView_Refresh(This) (This)->lpVtbl->Refresh(This)
 5508#define IShellView_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
 5509#define IShellView_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
 5510#define IShellView_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
 5511#define IShellView_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
 5512#define IShellView_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
 5513#define IShellView_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
 5514#define IShellView_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
 5515#else
 5516/*** IUnknown methods ***/
 5517static inline HRESULT IShellView_QueryInterface(IShellView* This,REFIID riid,void **ppvObject) {
 5518    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5519}
 5520static inline ULONG IShellView_AddRef(IShellView* This) {
 5521    return This->lpVtbl->AddRef(This);
 5522}
 5523static inline ULONG IShellView_Release(IShellView* This) {
 5524    return This->lpVtbl->Release(This);
 5525}
 5526/*** IOleWindow methods ***/
 5527static inline HRESULT IShellView_GetWindow(IShellView* This,HWND *phwnd) {
 5528    return This->lpVtbl->GetWindow(This,phwnd);
 5529}
 5530static inline HRESULT IShellView_ContextSensitiveHelp(IShellView* This,WINBOOL fEnterMode) {
 5531    return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
 5532}
 5533/*** IShellView methods ***/
 5534static inline HRESULT IShellView_TranslateAccelerator(IShellView* This,MSG *pmsg) {
 5535    return This->lpVtbl->TranslateAccelerator(This,pmsg);
 5536}
 5537static inline HRESULT IShellView_EnableModeless(IShellView* This,WINBOOL fEnable) {
 5538    return This->lpVtbl->EnableModeless(This,fEnable);
 5539}
 5540static inline HRESULT IShellView_UIActivate(IShellView* This,UINT uState) {
 5541    return This->lpVtbl->UIActivate(This,uState);
 5542}
 5543static inline HRESULT IShellView_Refresh(IShellView* This) {
 5544    return This->lpVtbl->Refresh(This);
 5545}
 5546static inline HRESULT IShellView_CreateViewWindow(IShellView* This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd) {
 5547    return This->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd);
 5548}
 5549static inline HRESULT IShellView_DestroyViewWindow(IShellView* This) {
 5550    return This->lpVtbl->DestroyViewWindow(This);
 5551}
 5552static inline HRESULT IShellView_GetCurrentInfo(IShellView* This,LPFOLDERSETTINGS pfs) {
 5553    return This->lpVtbl->GetCurrentInfo(This,pfs);
 5554}
 5555static inline HRESULT IShellView_AddPropertySheetPages(IShellView* This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam) {
 5556    return This->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam);
 5557}
 5558static inline HRESULT IShellView_SaveViewState(IShellView* This) {
 5559    return This->lpVtbl->SaveViewState(This);
 5560}
 5561static inline HRESULT IShellView_SelectItem(IShellView* This,PCUITEMID_CHILD pidlItem,SVSIF uFlags) {
 5562    return This->lpVtbl->SelectItem(This,pidlItem,uFlags);
 5563}
 5564static inline HRESULT IShellView_GetItemObject(IShellView* This,UINT uItem,REFIID riid,void **ppv) {
 5565    return This->lpVtbl->GetItemObject(This,uItem,riid,ppv);
 5566}
 5567#endif
 5568#endif
 5569
 5570#endif
 5571
 5572
 5573#endif  /* __IShellView_INTERFACE_DEFINED__ */
 5574
 5575typedef IShellView *LPSHELLVIEW;
 5576
 5577/*****************************************************************************
 5578 * IShellView2 interface
 5579 */
 5580#ifndef __IShellView2_INTERFACE_DEFINED__
 5581#define __IShellView2_INTERFACE_DEFINED__
 5582
 5583typedef GUID SHELLVIEWID;
 5584
 5585#define SV2GV_CURRENTVIEW ((UINT)-1)
 5586#define SV2GV_DEFAULTVIEW ((UINT)-2)
 5587
 5588#include <pshpack8.h>
 5589typedef struct _SV2CVW2_PARAMS {
 5590    DWORD cbSize;
 5591    IShellView *psvPrev;
 5592    LPCFOLDERSETTINGS pfs;
 5593    IShellBrowser *psbOwner;
 5594    RECT *prcView;
 5595    const SHELLVIEWID *pvid;
 5596    HWND hwndView;
 5597} SV2CVW2_PARAMS;
 5598typedef struct _SV2CVW2_PARAMS *LPSV2CVW2_PARAMS;
 5599#include <poppack.h>
 5600
 5601DEFINE_GUID(IID_IShellView2, 0x88e39e80, 0x3578, 0x11cf, 0xae,0x69, 0x08,0x00,0x2b,0x2e,0x12,0x62);
 5602#if defined(__cplusplus) && !defined(CINTERFACE)
 5603MIDL_INTERFACE("88e39e80-3578-11cf-ae69-08002b2e1262")
 5604IShellView2 : public IShellView
 5605{
 5606    virtual HRESULT STDMETHODCALLTYPE GetView(
 5607        SHELLVIEWID *pvid,
 5608        ULONG uView) = 0;
 5609
 5610    virtual HRESULT STDMETHODCALLTYPE CreateViewWindow2(
 5611        LPSV2CVW2_PARAMS lpParams) = 0;
 5612
 5613    virtual HRESULT STDMETHODCALLTYPE HandleRename(
 5614        PCUITEMID_CHILD pidlNew) = 0;
 5615
 5616    virtual HRESULT STDMETHODCALLTYPE SelectAndPositionItem(
 5617        PCUITEMID_CHILD pidlItem,
 5618        UINT uFlags,
 5619        POINT *ppt) = 0;
 5620
 5621};
 5622#ifdef __CRT_UUID_DECL
 5623__CRT_UUID_DECL(IShellView2, 0x88e39e80, 0x3578, 0x11cf, 0xae,0x69, 0x08,0x00,0x2b,0x2e,0x12,0x62)
 5624#endif
 5625#else
 5626typedef struct IShellView2Vtbl {
 5627    BEGIN_INTERFACE
 5628
 5629    /*** IUnknown methods ***/
 5630    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5631        IShellView2 *This,
 5632        REFIID riid,
 5633        void **ppvObject);
 5634
 5635    ULONG (STDMETHODCALLTYPE *AddRef)(
 5636        IShellView2 *This);
 5637
 5638    ULONG (STDMETHODCALLTYPE *Release)(
 5639        IShellView2 *This);
 5640
 5641    /*** IOleWindow methods ***/
 5642    HRESULT (STDMETHODCALLTYPE *GetWindow)(
 5643        IShellView2 *This,
 5644        HWND *phwnd);
 5645
 5646    HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
 5647        IShellView2 *This,
 5648        WINBOOL fEnterMode);
 5649
 5650    /*** IShellView methods ***/
 5651    HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
 5652        IShellView2 *This,
 5653        MSG *pmsg);
 5654
 5655    HRESULT (STDMETHODCALLTYPE *EnableModeless)(
 5656        IShellView2 *This,
 5657        WINBOOL fEnable);
 5658
 5659    HRESULT (STDMETHODCALLTYPE *UIActivate)(
 5660        IShellView2 *This,
 5661        UINT uState);
 5662
 5663    HRESULT (STDMETHODCALLTYPE *Refresh)(
 5664        IShellView2 *This);
 5665
 5666    HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
 5667        IShellView2 *This,
 5668        IShellView *psvPrevious,
 5669        LPCFOLDERSETTINGS pfs,
 5670        IShellBrowser *psb,
 5671        RECT *prcView,
 5672        HWND *phWnd);
 5673
 5674    HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
 5675        IShellView2 *This);
 5676
 5677    HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
 5678        IShellView2 *This,
 5679        LPFOLDERSETTINGS pfs);
 5680
 5681    HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
 5682        IShellView2 *This,
 5683        DWORD dwReserved,
 5684        LPFNSVADDPROPSHEETPAGE pfn,
 5685        LPARAM lparam);
 5686
 5687    HRESULT (STDMETHODCALLTYPE *SaveViewState)(
 5688        IShellView2 *This);
 5689
 5690    HRESULT (STDMETHODCALLTYPE *SelectItem)(
 5691        IShellView2 *This,
 5692        PCUITEMID_CHILD pidlItem,
 5693        SVSIF uFlags);
 5694
 5695    HRESULT (STDMETHODCALLTYPE *GetItemObject)(
 5696        IShellView2 *This,
 5697        UINT uItem,
 5698        REFIID riid,
 5699        void **ppv);
 5700
 5701    /*** IShellView2 methods ***/
 5702    HRESULT (STDMETHODCALLTYPE *GetView)(
 5703        IShellView2 *This,
 5704        SHELLVIEWID *pvid,
 5705        ULONG uView);
 5706
 5707    HRESULT (STDMETHODCALLTYPE *CreateViewWindow2)(
 5708        IShellView2 *This,
 5709        LPSV2CVW2_PARAMS lpParams);
 5710
 5711    HRESULT (STDMETHODCALLTYPE *HandleRename)(
 5712        IShellView2 *This,
 5713        PCUITEMID_CHILD pidlNew);
 5714
 5715    HRESULT (STDMETHODCALLTYPE *SelectAndPositionItem)(
 5716        IShellView2 *This,
 5717        PCUITEMID_CHILD pidlItem,
 5718        UINT uFlags,
 5719        POINT *ppt);
 5720
 5721    END_INTERFACE
 5722} IShellView2Vtbl;
 5723
 5724interface IShellView2 {
 5725    CONST_VTBL IShellView2Vtbl* lpVtbl;
 5726};
 5727
 5728#ifdef COBJMACROS
 5729#ifndef WIDL_C_INLINE_WRAPPERS
 5730/*** IUnknown methods ***/
 5731#define IShellView2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5732#define IShellView2_AddRef(This) (This)->lpVtbl->AddRef(This)
 5733#define IShellView2_Release(This) (This)->lpVtbl->Release(This)
 5734/*** IOleWindow methods ***/
 5735#define IShellView2_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
 5736#define IShellView2_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
 5737/*** IShellView methods ***/
 5738#define IShellView2_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
 5739#define IShellView2_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
 5740#define IShellView2_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
 5741#define IShellView2_Refresh(This) (This)->lpVtbl->Refresh(This)
 5742#define IShellView2_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
 5743#define IShellView2_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
 5744#define IShellView2_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
 5745#define IShellView2_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
 5746#define IShellView2_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
 5747#define IShellView2_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
 5748#define IShellView2_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
 5749/*** IShellView2 methods ***/
 5750#define IShellView2_GetView(This,pvid,uView) (This)->lpVtbl->GetView(This,pvid,uView)
 5751#define IShellView2_CreateViewWindow2(This,lpParams) (This)->lpVtbl->CreateViewWindow2(This,lpParams)
 5752#define IShellView2_HandleRename(This,pidlNew) (This)->lpVtbl->HandleRename(This,pidlNew)
 5753#define IShellView2_SelectAndPositionItem(This,pidlItem,uFlags,ppt) (This)->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt)
 5754#else
 5755/*** IUnknown methods ***/
 5756static inline HRESULT IShellView2_QueryInterface(IShellView2* This,REFIID riid,void **ppvObject) {
 5757    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 5758}
 5759static inline ULONG IShellView2_AddRef(IShellView2* This) {
 5760    return This->lpVtbl->AddRef(This);
 5761}
 5762static inline ULONG IShellView2_Release(IShellView2* This) {
 5763    return This->lpVtbl->Release(This);
 5764}
 5765/*** IOleWindow methods ***/
 5766static inline HRESULT IShellView2_GetWindow(IShellView2* This,HWND *phwnd) {
 5767    return This->lpVtbl->GetWindow(This,phwnd);
 5768}
 5769static inline HRESULT IShellView2_ContextSensitiveHelp(IShellView2* This,WINBOOL fEnterMode) {
 5770    return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
 5771}
 5772/*** IShellView methods ***/
 5773static inline HRESULT IShellView2_TranslateAccelerator(IShellView2* This,MSG *pmsg) {
 5774    return This->lpVtbl->TranslateAccelerator(This,pmsg);
 5775}
 5776static inline HRESULT IShellView2_EnableModeless(IShellView2* This,WINBOOL fEnable) {
 5777    return This->lpVtbl->EnableModeless(This,fEnable);
 5778}
 5779static inline HRESULT IShellView2_UIActivate(IShellView2* This,UINT uState) {
 5780    return This->lpVtbl->UIActivate(This,uState);
 5781}
 5782static inline HRESULT IShellView2_Refresh(IShellView2* This) {
 5783    return This->lpVtbl->Refresh(This);
 5784}
 5785static inline HRESULT IShellView2_CreateViewWindow(IShellView2* This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd) {
 5786    return This->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd);
 5787}
 5788static inline HRESULT IShellView2_DestroyViewWindow(IShellView2* This) {
 5789    return This->lpVtbl->DestroyViewWindow(This);
 5790}
 5791static inline HRESULT IShellView2_GetCurrentInfo(IShellView2* This,LPFOLDERSETTINGS pfs) {
 5792    return This->lpVtbl->GetCurrentInfo(This,pfs);
 5793}
 5794static inline HRESULT IShellView2_AddPropertySheetPages(IShellView2* This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam) {
 5795    return This->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam);
 5796}
 5797static inline HRESULT IShellView2_SaveViewState(IShellView2* This) {
 5798    return This->lpVtbl->SaveViewState(This);
 5799}
 5800static inline HRESULT IShellView2_SelectItem(IShellView2* This,PCUITEMID_CHILD pidlItem,SVSIF uFlags) {
 5801    return This->lpVtbl->SelectItem(This,pidlItem,uFlags);
 5802}
 5803static inline HRESULT IShellView2_GetItemObject(IShellView2* This,UINT uItem,REFIID riid,void **ppv) {
 5804    return This->lpVtbl->GetItemObject(This,uItem,riid,ppv);
 5805}
 5806/*** IShellView2 methods ***/
 5807static inline HRESULT IShellView2_GetView(IShellView2* This,SHELLVIEWID *pvid,ULONG uView) {
 5808    return This->lpVtbl->GetView(This,pvid,uView);
 5809}
 5810static inline HRESULT IShellView2_CreateViewWindow2(IShellView2* This,LPSV2CVW2_PARAMS lpParams) {
 5811    return This->lpVtbl->CreateViewWindow2(This,lpParams);
 5812}
 5813static inline HRESULT IShellView2_HandleRename(IShellView2* This,PCUITEMID_CHILD pidlNew) {
 5814    return This->lpVtbl->HandleRename(This,pidlNew);
 5815}
 5816static inline HRESULT IShellView2_SelectAndPositionItem(IShellView2* This,PCUITEMID_CHILD pidlItem,UINT uFlags,POINT *ppt) {
 5817    return This->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt);
 5818}
 5819#endif
 5820#endif
 5821
 5822#endif
 5823
 5824
 5825#endif  /* __IShellView2_INTERFACE_DEFINED__ */
 5826
 5827
 5828#if NTDDI_VERSION >= NTDDI_VISTA
 5829/*****************************************************************************
 5830 * IShellView3 interface
 5831 */
 5832#ifndef __IShellView3_INTERFACE_DEFINED__
 5833#define __IShellView3_INTERFACE_DEFINED__
 5834
 5835enum _SV3CVW3_FLAGS {
 5836    SV3CVW3_DEFAULT = 0x0,
 5837    SV3CVW3_NONINTERACTIVE = 0x1,
 5838    SV3CVW3_FORCEVIEWMODE = 0x2,
 5839    SV3CVW3_FORCEFOLDERFLAGS = 0x4
 5840};
 5841
 5842typedef DWORD SV3CVW3_FLAGS;
 5843
 5844DEFINE_GUID(IID_IShellView3, 0xec39fa88, 0xf8af, 0x41c5, 0x84,0x21, 0x38,0xbe,0xd2,0x8f,0x46,0x73);
 5845#if defined(__cplusplus) && !defined(CINTERFACE)
 5846MIDL_INTERFACE("ec39fa88-f8af-41c5-8421-38bed28f4673")
 5847IShellView3 : public IShellView2
 5848{
 5849    virtual HRESULT STDMETHODCALLTYPE CreateViewWindow3(
 5850        IShellBrowser *psbOwner,
 5851        IShellView *psvPrev,
 5852        SV3CVW3_FLAGS dwViewFlags,
 5853        FOLDERFLAGS dwMask,
 5854        FOLDERFLAGS dwFlags,
 5855        FOLDERVIEWMODE fvMode,
 5856        const SHELLVIEWID *pvid,
 5857        const RECT *prcView,
 5858        HWND *phwndView) = 0;
 5859
 5860};
 5861#ifdef __CRT_UUID_DECL
 5862__CRT_UUID_DECL(IShellView3, 0xec39fa88, 0xf8af, 0x41c5, 0x84,0x21, 0x38,0xbe,0xd2,0x8f,0x46,0x73)
 5863#endif
 5864#else
 5865typedef struct IShellView3Vtbl {
 5866    BEGIN_INTERFACE
 5867
 5868    /*** IUnknown methods ***/
 5869    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 5870        IShellView3 *This,
 5871        REFIID riid,
 5872        void **ppvObject);
 5873
 5874    ULONG (STDMETHODCALLTYPE *AddRef)(
 5875        IShellView3 *This);
 5876
 5877    ULONG (STDMETHODCALLTYPE *Release)(
 5878        IShellView3 *This);
 5879
 5880    /*** IOleWindow methods ***/
 5881    HRESULT (STDMETHODCALLTYPE *GetWindow)(
 5882        IShellView3 *This,
 5883        HWND *phwnd);
 5884
 5885    HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
 5886        IShellView3 *This,
 5887        WINBOOL fEnterMode);
 5888
 5889    /*** IShellView methods ***/
 5890    HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
 5891        IShellView3 *This,
 5892        MSG *pmsg);
 5893
 5894    HRESULT (STDMETHODCALLTYPE *EnableModeless)(
 5895        IShellView3 *This,
 5896        WINBOOL fEnable);
 5897
 5898    HRESULT (STDMETHODCALLTYPE *UIActivate)(
 5899        IShellView3 *This,
 5900        UINT uState);
 5901
 5902    HRESULT (STDMETHODCALLTYPE *Refresh)(
 5903        IShellView3 *This);
 5904
 5905    HRESULT (STDMETHODCALLTYPE *CreateViewWindow)(
 5906        IShellView3 *This,
 5907        IShellView *psvPrevious,
 5908        LPCFOLDERSETTINGS pfs,
 5909        IShellBrowser *psb,
 5910        RECT *prcView,
 5911        HWND *phWnd);
 5912
 5913    HRESULT (STDMETHODCALLTYPE *DestroyViewWindow)(
 5914        IShellView3 *This);
 5915
 5916    HRESULT (STDMETHODCALLTYPE *GetCurrentInfo)(
 5917        IShellView3 *This,
 5918        LPFOLDERSETTINGS pfs);
 5919
 5920    HRESULT (STDMETHODCALLTYPE *AddPropertySheetPages)(
 5921        IShellView3 *This,
 5922        DWORD dwReserved,
 5923        LPFNSVADDPROPSHEETPAGE pfn,
 5924        LPARAM lparam);
 5925
 5926    HRESULT (STDMETHODCALLTYPE *SaveViewState)(
 5927        IShellView3 *This);
 5928
 5929    HRESULT (STDMETHODCALLTYPE *SelectItem)(
 5930        IShellView3 *This,
 5931        PCUITEMID_CHILD pidlItem,
 5932        SVSIF uFlags);
 5933
 5934    HRESULT (STDMETHODCALLTYPE *GetItemObject)(
 5935        IShellView3 *This,
 5936        UINT uItem,
 5937        REFIID riid,
 5938        void **ppv);
 5939
 5940    /*** IShellView2 methods ***/
 5941    HRESULT (STDMETHODCALLTYPE *GetView)(
 5942        IShellView3 *This,
 5943        SHELLVIEWID *pvid,
 5944        ULONG uView);
 5945
 5946    HRESULT (STDMETHODCALLTYPE *CreateViewWindow2)(
 5947        IShellView3 *This,
 5948        LPSV2CVW2_PARAMS lpParams);
 5949
 5950    HRESULT (STDMETHODCALLTYPE *HandleRename)(
 5951        IShellView3 *This,
 5952        PCUITEMID_CHILD pidlNew);
 5953
 5954    HRESULT (STDMETHODCALLTYPE *SelectAndPositionItem)(
 5955        IShellView3 *This,
 5956        PCUITEMID_CHILD pidlItem,
 5957        UINT uFlags,
 5958        POINT *ppt);
 5959
 5960    /*** IShellView3 methods ***/
 5961    HRESULT (STDMETHODCALLTYPE *CreateViewWindow3)(
 5962        IShellView3 *This,
 5963        IShellBrowser *psbOwner,
 5964        IShellView *psvPrev,
 5965        SV3CVW3_FLAGS dwViewFlags,
 5966        FOLDERFLAGS dwMask,
 5967        FOLDERFLAGS dwFlags,
 5968        FOLDERVIEWMODE fvMode,
 5969        const SHELLVIEWID *pvid,
 5970        const RECT *prcView,
 5971        HWND *phwndView);
 5972
 5973    END_INTERFACE
 5974} IShellView3Vtbl;
 5975
 5976interface IShellView3 {
 5977    CONST_VTBL IShellView3Vtbl* lpVtbl;
 5978};
 5979
 5980#ifdef COBJMACROS
 5981#ifndef WIDL_C_INLINE_WRAPPERS
 5982/*** IUnknown methods ***/
 5983#define IShellView3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 5984#define IShellView3_AddRef(This) (This)->lpVtbl->AddRef(This)
 5985#define IShellView3_Release(This) (This)->lpVtbl->Release(This)
 5986/*** IOleWindow methods ***/
 5987#define IShellView3_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
 5988#define IShellView3_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
 5989/*** IShellView methods ***/
 5990#define IShellView3_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
 5991#define IShellView3_EnableModeless(This,fEnable) (This)->lpVtbl->EnableModeless(This,fEnable)
 5992#define IShellView3_UIActivate(This,uState) (This)->lpVtbl->UIActivate(This,uState)
 5993#define IShellView3_Refresh(This) (This)->lpVtbl->Refresh(This)
 5994#define IShellView3_CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd) (This)->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd)
 5995#define IShellView3_DestroyViewWindow(This) (This)->lpVtbl->DestroyViewWindow(This)
 5996#define IShellView3_GetCurrentInfo(This,pfs) (This)->lpVtbl->GetCurrentInfo(This,pfs)
 5997#define IShellView3_AddPropertySheetPages(This,dwReserved,pfn,lparam) (This)->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam)
 5998#define IShellView3_SaveViewState(This) (This)->lpVtbl->SaveViewState(This)
 5999#define IShellView3_SelectItem(This,pidlItem,uFlags) (This)->lpVtbl->SelectItem(This,pidlItem,uFlags)
 6000#define IShellView3_GetItemObject(This,uItem,riid,ppv) (This)->lpVtbl->GetItemObject(This,uItem,riid,ppv)
 6001/*** IShellView2 methods ***/
 6002#define IShellView3_GetView(This,pvid,uView) (This)->lpVtbl->GetView(This,pvid,uView)
 6003#define IShellView3_CreateViewWindow2(This,lpParams) (This)->lpVtbl->CreateViewWindow2(This,lpParams)
 6004#define IShellView3_HandleRename(This,pidlNew) (This)->lpVtbl->HandleRename(This,pidlNew)
 6005#define IShellView3_SelectAndPositionItem(This,pidlItem,uFlags,ppt) (This)->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt)
 6006/*** IShellView3 methods ***/
 6007#define IShellView3_CreateViewWindow3(This,psbOwner,psvPrev,dwViewFlags,dwMask,dwFlags,fvMode,pvid,prcView,phwndView) (This)->lpVtbl->CreateViewWindow3(This,psbOwner,psvPrev,dwViewFlags,dwMask,dwFlags,fvMode,pvid,prcView,phwndView)
 6008#else
 6009/*** IUnknown methods ***/
 6010static inline HRESULT IShellView3_QueryInterface(IShellView3* This,REFIID riid,void **ppvObject) {
 6011    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6012}
 6013static inline ULONG IShellView3_AddRef(IShellView3* This) {
 6014    return This->lpVtbl->AddRef(This);
 6015}
 6016static inline ULONG IShellView3_Release(IShellView3* This) {
 6017    return This->lpVtbl->Release(This);
 6018}
 6019/*** IOleWindow methods ***/
 6020static inline HRESULT IShellView3_GetWindow(IShellView3* This,HWND *phwnd) {
 6021    return This->lpVtbl->GetWindow(This,phwnd);
 6022}
 6023static inline HRESULT IShellView3_ContextSensitiveHelp(IShellView3* This,WINBOOL fEnterMode) {
 6024    return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
 6025}
 6026/*** IShellView methods ***/
 6027static inline HRESULT IShellView3_TranslateAccelerator(IShellView3* This,MSG *pmsg) {
 6028    return This->lpVtbl->TranslateAccelerator(This,pmsg);
 6029}
 6030static inline HRESULT IShellView3_EnableModeless(IShellView3* This,WINBOOL fEnable) {
 6031    return This->lpVtbl->EnableModeless(This,fEnable);
 6032}
 6033static inline HRESULT IShellView3_UIActivate(IShellView3* This,UINT uState) {
 6034    return This->lpVtbl->UIActivate(This,uState);
 6035}
 6036static inline HRESULT IShellView3_Refresh(IShellView3* This) {
 6037    return This->lpVtbl->Refresh(This);
 6038}
 6039static inline HRESULT IShellView3_CreateViewWindow(IShellView3* This,IShellView *psvPrevious,LPCFOLDERSETTINGS pfs,IShellBrowser *psb,RECT *prcView,HWND *phWnd) {
 6040    return This->lpVtbl->CreateViewWindow(This,psvPrevious,pfs,psb,prcView,phWnd);
 6041}
 6042static inline HRESULT IShellView3_DestroyViewWindow(IShellView3* This) {
 6043    return This->lpVtbl->DestroyViewWindow(This);
 6044}
 6045static inline HRESULT IShellView3_GetCurrentInfo(IShellView3* This,LPFOLDERSETTINGS pfs) {
 6046    return This->lpVtbl->GetCurrentInfo(This,pfs);
 6047}
 6048static inline HRESULT IShellView3_AddPropertySheetPages(IShellView3* This,DWORD dwReserved,LPFNSVADDPROPSHEETPAGE pfn,LPARAM lparam) {
 6049    return This->lpVtbl->AddPropertySheetPages(This,dwReserved,pfn,lparam);
 6050}
 6051static inline HRESULT IShellView3_SaveViewState(IShellView3* This) {
 6052    return This->lpVtbl->SaveViewState(This);
 6053}
 6054static inline HRESULT IShellView3_SelectItem(IShellView3* This,PCUITEMID_CHILD pidlItem,SVSIF uFlags) {
 6055    return This->lpVtbl->SelectItem(This,pidlItem,uFlags);
 6056}
 6057static inline HRESULT IShellView3_GetItemObject(IShellView3* This,UINT uItem,REFIID riid,void **ppv) {
 6058    return This->lpVtbl->GetItemObject(This,uItem,riid,ppv);
 6059}
 6060/*** IShellView2 methods ***/
 6061static inline HRESULT IShellView3_GetView(IShellView3* This,SHELLVIEWID *pvid,ULONG uView) {
 6062    return This->lpVtbl->GetView(This,pvid,uView);
 6063}
 6064static inline HRESULT IShellView3_CreateViewWindow2(IShellView3* This,LPSV2CVW2_PARAMS lpParams) {
 6065    return This->lpVtbl->CreateViewWindow2(This,lpParams);
 6066}
 6067static inline HRESULT IShellView3_HandleRename(IShellView3* This,PCUITEMID_CHILD pidlNew) {
 6068    return This->lpVtbl->HandleRename(This,pidlNew);
 6069}
 6070static inline HRESULT IShellView3_SelectAndPositionItem(IShellView3* This,PCUITEMID_CHILD pidlItem,UINT uFlags,POINT *ppt) {
 6071    return This->lpVtbl->SelectAndPositionItem(This,pidlItem,uFlags,ppt);
 6072}
 6073/*** IShellView3 methods ***/
 6074static inline HRESULT IShellView3_CreateViewWindow3(IShellView3* This,IShellBrowser *psbOwner,IShellView *psvPrev,SV3CVW3_FLAGS dwViewFlags,FOLDERFLAGS dwMask,FOLDERFLAGS dwFlags,FOLDERVIEWMODE fvMode,const SHELLVIEWID *pvid,const RECT *prcView,HWND *phwndView) {
 6075    return This->lpVtbl->CreateViewWindow3(This,psbOwner,psvPrev,dwViewFlags,dwMask,dwFlags,fvMode,pvid,prcView,phwndView);
 6076}
 6077#endif
 6078#endif
 6079
 6080#endif
 6081
 6082
 6083#endif  /* __IShellView3_INTERFACE_DEFINED__ */
 6084
 6085#endif
 6086#ifdef _FIX_ENABLEMODELESS_CONFLICT
 6087#undef EnableModeless
 6088#endif
 6089
 6090/*****************************************************************************
 6091 * IFolderView interface
 6092 */
 6093#ifndef __IFolderView_INTERFACE_DEFINED__
 6094#define __IFolderView_INTERFACE_DEFINED__
 6095
 6096DEFINE_GUID(IID_IFolderView, 0xcde725b0, 0xccc9, 0x4519, 0x91,0x7e, 0x32,0x5d,0x72,0xfa,0xb4,0xce);
 6097#if defined(__cplusplus) && !defined(CINTERFACE)
 6098MIDL_INTERFACE("cde725b0-ccc9-4519-917e-325d72fab4ce")
 6099IFolderView : public IUnknown
 6100{
 6101    virtual HRESULT STDMETHODCALLTYPE GetCurrentViewMode(
 6102        UINT *pViewMode) = 0;
 6103
 6104    virtual HRESULT STDMETHODCALLTYPE SetCurrentViewMode(
 6105        UINT ViewMode) = 0;
 6106
 6107    virtual HRESULT STDMETHODCALLTYPE GetFolder(
 6108        REFIID riid,
 6109        void **ppv) = 0;
 6110
 6111    virtual HRESULT STDMETHODCALLTYPE Item(
 6112        int iItemIndex,
 6113        PITEMID_CHILD *ppidl) = 0;
 6114
 6115    virtual HRESULT STDMETHODCALLTYPE ItemCount(
 6116        UINT uFlags,
 6117        int *pcItems) = 0;
 6118
 6119    virtual HRESULT STDMETHODCALLTYPE Items(
 6120        UINT uFlags,
 6121        REFIID riid,
 6122        void **ppv) = 0;
 6123
 6124    virtual HRESULT STDMETHODCALLTYPE GetSelectionMarkedItem(
 6125        int *piItem) = 0;
 6126
 6127    virtual HRESULT STDMETHODCALLTYPE GetFocusedItem(
 6128        int *piItem) = 0;
 6129
 6130    virtual HRESULT STDMETHODCALLTYPE GetItemPosition(
 6131        PCUITEMID_CHILD pidl,
 6132        POINT *ppt) = 0;
 6133
 6134    virtual HRESULT STDMETHODCALLTYPE GetSpacing(
 6135        POINT *ppt) = 0;
 6136
 6137    virtual HRESULT STDMETHODCALLTYPE GetDefaultSpacing(
 6138        POINT *ppt) = 0;
 6139
 6140    virtual HRESULT STDMETHODCALLTYPE GetAutoArrange(
 6141        ) = 0;
 6142
 6143    virtual HRESULT STDMETHODCALLTYPE SelectItem(
 6144        int iItem,
 6145        DWORD dwFlags) = 0;
 6146
 6147    virtual HRESULT STDMETHODCALLTYPE SelectAndPositionItems(
 6148        UINT cidl,
 6149        PCUITEMID_CHILD_ARRAY apidl,
 6150        POINT *apt,
 6151        DWORD dwFlags) = 0;
 6152
 6153};
 6154#ifdef __CRT_UUID_DECL
 6155__CRT_UUID_DECL(IFolderView, 0xcde725b0, 0xccc9, 0x4519, 0x91,0x7e, 0x32,0x5d,0x72,0xfa,0xb4,0xce)
 6156#endif
 6157#else
 6158typedef struct IFolderViewVtbl {
 6159    BEGIN_INTERFACE
 6160
 6161    /*** IUnknown methods ***/
 6162    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6163        IFolderView *This,
 6164        REFIID riid,
 6165        void **ppvObject);
 6166
 6167    ULONG (STDMETHODCALLTYPE *AddRef)(
 6168        IFolderView *This);
 6169
 6170    ULONG (STDMETHODCALLTYPE *Release)(
 6171        IFolderView *This);
 6172
 6173    /*** IFolderView methods ***/
 6174    HRESULT (STDMETHODCALLTYPE *GetCurrentViewMode)(
 6175        IFolderView *This,
 6176        UINT *pViewMode);
 6177
 6178    HRESULT (STDMETHODCALLTYPE *SetCurrentViewMode)(
 6179        IFolderView *This,
 6180        UINT ViewMode);
 6181
 6182    HRESULT (STDMETHODCALLTYPE *GetFolder)(
 6183        IFolderView *This,
 6184        REFIID riid,
 6185        void **ppv);
 6186
 6187    HRESULT (STDMETHODCALLTYPE *Item)(
 6188        IFolderView *This,
 6189        int iItemIndex,
 6190        PITEMID_CHILD *ppidl);
 6191
 6192    HRESULT (STDMETHODCALLTYPE *ItemCount)(
 6193        IFolderView *This,
 6194        UINT uFlags,
 6195        int *pcItems);
 6196
 6197    HRESULT (STDMETHODCALLTYPE *Items)(
 6198        IFolderView *This,
 6199        UINT uFlags,
 6200        REFIID riid,
 6201        void **ppv);
 6202
 6203    HRESULT (STDMETHODCALLTYPE *GetSelectionMarkedItem)(
 6204        IFolderView *This,
 6205        int *piItem);
 6206
 6207    HRESULT (STDMETHODCALLTYPE *GetFocusedItem)(
 6208        IFolderView *This,
 6209        int *piItem);
 6210
 6211    HRESULT (STDMETHODCALLTYPE *GetItemPosition)(
 6212        IFolderView *This,
 6213        PCUITEMID_CHILD pidl,
 6214        POINT *ppt);
 6215
 6216    HRESULT (STDMETHODCALLTYPE *GetSpacing)(
 6217        IFolderView *This,
 6218        POINT *ppt);
 6219
 6220    HRESULT (STDMETHODCALLTYPE *GetDefaultSpacing)(
 6221        IFolderView *This,
 6222        POINT *ppt);
 6223
 6224    HRESULT (STDMETHODCALLTYPE *GetAutoArrange)(
 6225        IFolderView *This);
 6226
 6227    HRESULT (STDMETHODCALLTYPE *SelectItem)(
 6228        IFolderView *This,
 6229        int iItem,
 6230        DWORD dwFlags);
 6231
 6232    HRESULT (STDMETHODCALLTYPE *SelectAndPositionItems)(
 6233        IFolderView *This,
 6234        UINT cidl,
 6235        PCUITEMID_CHILD_ARRAY apidl,
 6236        POINT *apt,
 6237        DWORD dwFlags);
 6238
 6239    END_INTERFACE
 6240} IFolderViewVtbl;
 6241
 6242interface IFolderView {
 6243    CONST_VTBL IFolderViewVtbl* lpVtbl;
 6244};
 6245
 6246#ifdef COBJMACROS
 6247#ifndef WIDL_C_INLINE_WRAPPERS
 6248/*** IUnknown methods ***/
 6249#define IFolderView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6250#define IFolderView_AddRef(This) (This)->lpVtbl->AddRef(This)
 6251#define IFolderView_Release(This) (This)->lpVtbl->Release(This)
 6252/*** IFolderView methods ***/
 6253#define IFolderView_GetCurrentViewMode(This,pViewMode) (This)->lpVtbl->GetCurrentViewMode(This,pViewMode)
 6254#define IFolderView_SetCurrentViewMode(This,ViewMode) (This)->lpVtbl->SetCurrentViewMode(This,ViewMode)
 6255#define IFolderView_GetFolder(This,riid,ppv) (This)->lpVtbl->GetFolder(This,riid,ppv)
 6256#define IFolderView_Item(This,iItemIndex,ppidl) (This)->lpVtbl->Item(This,iItemIndex,ppidl)
 6257#define IFolderView_ItemCount(This,uFlags,pcItems) (This)->lpVtbl->ItemCount(This,uFlags,pcItems)
 6258#define IFolderView_Items(This,uFlags,riid,ppv) (This)->lpVtbl->Items(This,uFlags,riid,ppv)
 6259#define IFolderView_GetSelectionMarkedItem(This,piItem) (This)->lpVtbl->GetSelectionMarkedItem(This,piItem)
 6260#define IFolderView_GetFocusedItem(This,piItem) (This)->lpVtbl->GetFocusedItem(This,piItem)
 6261#define IFolderView_GetItemPosition(This,pidl,ppt) (This)->lpVtbl->GetItemPosition(This,pidl,ppt)
 6262#define IFolderView_GetSpacing(This,ppt) (This)->lpVtbl->GetSpacing(This,ppt)
 6263#define IFolderView_GetDefaultSpacing(This,ppt) (This)->lpVtbl->GetDefaultSpacing(This,ppt)
 6264#define IFolderView_GetAutoArrange(This) (This)->lpVtbl->GetAutoArrange(This)
 6265#define IFolderView_SelectItem(This,iItem,dwFlags) (This)->lpVtbl->SelectItem(This,iItem,dwFlags)
 6266#define IFolderView_SelectAndPositionItems(This,cidl,apidl,apt,dwFlags) (This)->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags)
 6267#else
 6268/*** IUnknown methods ***/
 6269static inline HRESULT IFolderView_QueryInterface(IFolderView* This,REFIID riid,void **ppvObject) {
 6270    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6271}
 6272static inline ULONG IFolderView_AddRef(IFolderView* This) {
 6273    return This->lpVtbl->AddRef(This);
 6274}
 6275static inline ULONG IFolderView_Release(IFolderView* This) {
 6276    return This->lpVtbl->Release(This);
 6277}
 6278/*** IFolderView methods ***/
 6279static inline HRESULT IFolderView_GetCurrentViewMode(IFolderView* This,UINT *pViewMode) {
 6280    return This->lpVtbl->GetCurrentViewMode(This,pViewMode);
 6281}
 6282static inline HRESULT IFolderView_SetCurrentViewMode(IFolderView* This,UINT ViewMode) {
 6283    return This->lpVtbl->SetCurrentViewMode(This,ViewMode);
 6284}
 6285static inline HRESULT IFolderView_GetFolder(IFolderView* This,REFIID riid,void **ppv) {
 6286    return This->lpVtbl->GetFolder(This,riid,ppv);
 6287}
 6288static inline HRESULT IFolderView_Item(IFolderView* This,int iItemIndex,PITEMID_CHILD *ppidl) {
 6289    return This->lpVtbl->Item(This,iItemIndex,ppidl);
 6290}
 6291static inline HRESULT IFolderView_ItemCount(IFolderView* This,UINT uFlags,int *pcItems) {
 6292    return This->lpVtbl->ItemCount(This,uFlags,pcItems);
 6293}
 6294static inline HRESULT IFolderView_Items(IFolderView* This,UINT uFlags,REFIID riid,void **ppv) {
 6295    return This->lpVtbl->Items(This,uFlags,riid,ppv);
 6296}
 6297static inline HRESULT IFolderView_GetSelectionMarkedItem(IFolderView* This,int *piItem) {
 6298    return This->lpVtbl->GetSelectionMarkedItem(This,piItem);
 6299}
 6300static inline HRESULT IFolderView_GetFocusedItem(IFolderView* This,int *piItem) {
 6301    return This->lpVtbl->GetFocusedItem(This,piItem);
 6302}
 6303static inline HRESULT IFolderView_GetItemPosition(IFolderView* This,PCUITEMID_CHILD pidl,POINT *ppt) {
 6304    return This->lpVtbl->GetItemPosition(This,pidl,ppt);
 6305}
 6306static inline HRESULT IFolderView_GetSpacing(IFolderView* This,POINT *ppt) {
 6307    return This->lpVtbl->GetSpacing(This,ppt);
 6308}
 6309static inline HRESULT IFolderView_GetDefaultSpacing(IFolderView* This,POINT *ppt) {
 6310    return This->lpVtbl->GetDefaultSpacing(This,ppt);
 6311}
 6312static inline HRESULT IFolderView_GetAutoArrange(IFolderView* This) {
 6313    return This->lpVtbl->GetAutoArrange(This);
 6314}
 6315static inline HRESULT IFolderView_SelectItem(IFolderView* This,int iItem,DWORD dwFlags) {
 6316    return This->lpVtbl->SelectItem(This,iItem,dwFlags);
 6317}
 6318static inline HRESULT IFolderView_SelectAndPositionItems(IFolderView* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,POINT *apt,DWORD dwFlags) {
 6319    return This->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags);
 6320}
 6321#endif
 6322#endif
 6323
 6324#endif
 6325
 6326
 6327#endif  /* __IFolderView_INTERFACE_DEFINED__ */
 6328
 6329
 6330#define SID_SFolderView IID_IFolderView
 6331
 6332#if NTDDI_VERSION >= NTDDI_WIN7
 6333/*****************************************************************************
 6334 * ISearchBoxInfo interface
 6335 */
 6336#ifndef __ISearchBoxInfo_INTERFACE_DEFINED__
 6337#define __ISearchBoxInfo_INTERFACE_DEFINED__
 6338
 6339DEFINE_GUID(IID_ISearchBoxInfo, 0x6af6e03f, 0xd664, 0x4ef4, 0x96,0x26, 0xf7,0xe0,0xed,0x36,0x75,0x5e);
 6340#if defined(__cplusplus) && !defined(CINTERFACE)
 6341MIDL_INTERFACE("6af6e03f-d664-4ef4-9626-f7e0ed36755e")
 6342ISearchBoxInfo : public IUnknown
 6343{
 6344    virtual HRESULT STDMETHODCALLTYPE GetCondition(
 6345        REFIID riid,
 6346        void **ppv) = 0;
 6347
 6348    virtual HRESULT STDMETHODCALLTYPE GetText(
 6349        LPWSTR *ppsz) = 0;
 6350
 6351};
 6352#ifdef __CRT_UUID_DECL
 6353__CRT_UUID_DECL(ISearchBoxInfo, 0x6af6e03f, 0xd664, 0x4ef4, 0x96,0x26, 0xf7,0xe0,0xed,0x36,0x75,0x5e)
 6354#endif
 6355#else
 6356typedef struct ISearchBoxInfoVtbl {
 6357    BEGIN_INTERFACE
 6358
 6359    /*** IUnknown methods ***/
 6360    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6361        ISearchBoxInfo *This,
 6362        REFIID riid,
 6363        void **ppvObject);
 6364
 6365    ULONG (STDMETHODCALLTYPE *AddRef)(
 6366        ISearchBoxInfo *This);
 6367
 6368    ULONG (STDMETHODCALLTYPE *Release)(
 6369        ISearchBoxInfo *This);
 6370
 6371    /*** ISearchBoxInfo methods ***/
 6372    HRESULT (STDMETHODCALLTYPE *GetCondition)(
 6373        ISearchBoxInfo *This,
 6374        REFIID riid,
 6375        void **ppv);
 6376
 6377    HRESULT (STDMETHODCALLTYPE *GetText)(
 6378        ISearchBoxInfo *This,
 6379        LPWSTR *ppsz);
 6380
 6381    END_INTERFACE
 6382} ISearchBoxInfoVtbl;
 6383
 6384interface ISearchBoxInfo {
 6385    CONST_VTBL ISearchBoxInfoVtbl* lpVtbl;
 6386};
 6387
 6388#ifdef COBJMACROS
 6389#ifndef WIDL_C_INLINE_WRAPPERS
 6390/*** IUnknown methods ***/
 6391#define ISearchBoxInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6392#define ISearchBoxInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
 6393#define ISearchBoxInfo_Release(This) (This)->lpVtbl->Release(This)
 6394/*** ISearchBoxInfo methods ***/
 6395#define ISearchBoxInfo_GetCondition(This,riid,ppv) (This)->lpVtbl->GetCondition(This,riid,ppv)
 6396#define ISearchBoxInfo_GetText(This,ppsz) (This)->lpVtbl->GetText(This,ppsz)
 6397#else
 6398/*** IUnknown methods ***/
 6399static inline HRESULT ISearchBoxInfo_QueryInterface(ISearchBoxInfo* This,REFIID riid,void **ppvObject) {
 6400    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6401}
 6402static inline ULONG ISearchBoxInfo_AddRef(ISearchBoxInfo* This) {
 6403    return This->lpVtbl->AddRef(This);
 6404}
 6405static inline ULONG ISearchBoxInfo_Release(ISearchBoxInfo* This) {
 6406    return This->lpVtbl->Release(This);
 6407}
 6408/*** ISearchBoxInfo methods ***/
 6409static inline HRESULT ISearchBoxInfo_GetCondition(ISearchBoxInfo* This,REFIID riid,void **ppv) {
 6410    return This->lpVtbl->GetCondition(This,riid,ppv);
 6411}
 6412static inline HRESULT ISearchBoxInfo_GetText(ISearchBoxInfo* This,LPWSTR *ppsz) {
 6413    return This->lpVtbl->GetText(This,ppsz);
 6414}
 6415#endif
 6416#endif
 6417
 6418#endif
 6419
 6420
 6421#endif  /* __ISearchBoxInfo_INTERFACE_DEFINED__ */
 6422
 6423#endif
 6424
 6425#if NTDDI_VERSION >= NTDDI_VISTA || _WIN32_IE >= _WIN32_IE_IE70
 6426#ifndef NO_SHOBJIDL_SORTDIRECTION
 6427enum tagSORTDIRECTION {
 6428    SORT_DESCENDING = -1,
 6429    SORT_ASCENDING = 1
 6430};
 6431#endif
 6432
 6433typedef int SORTDIRECTION;
 6434
 6435typedef struct SORTCOLUMN {
 6436    PROPERTYKEY propkey;
 6437    SORTDIRECTION direction;
 6438} SORTCOLUMN;
 6439
 6440typedef enum FVTEXTTYPE {
 6441    FVST_EMPTYTEXT = 0
 6442} FVTEXTTYPE;
 6443
 6444#ifndef __IShellItemArray_FWD_DEFINED__
 6445#define __IShellItemArray_FWD_DEFINED__
 6446typedef interface IShellItemArray IShellItemArray;
 6447#ifdef __cplusplus
 6448interface IShellItemArray;
 6449#endif /* __cplusplus */
 6450#endif
 6451
 6452
 6453typedef HRESULT DEPRECATED_HRESULT;
 6454
 6455#ifdef __cplusplus
 6456#define DEPRECATED_HRESULT HRESULT
 6457#endif
 6458
 6459/*****************************************************************************
 6460 * IFolderView2 interface
 6461 */
 6462#ifndef __IFolderView2_INTERFACE_DEFINED__
 6463#define __IFolderView2_INTERFACE_DEFINED__
 6464
 6465DEFINE_GUID(IID_IFolderView2, 0x1af3a467, 0x214f, 0x4298, 0x90,0x8e, 0x06,0xb0,0x3e,0x0b,0x39,0xf9);
 6466#if defined(__cplusplus) && !defined(CINTERFACE)
 6467MIDL_INTERFACE("1af3a467-214f-4298-908e-06b03e0b39f9")
 6468IFolderView2 : public IFolderView
 6469{
 6470    virtual HRESULT STDMETHODCALLTYPE SetGroupBy(
 6471        REFPROPERTYKEY key,
 6472        WINBOOL fAscending) = 0;
 6473
 6474    virtual HRESULT STDMETHODCALLTYPE GetGroupBy(
 6475        PROPERTYKEY *pkey,
 6476        WINBOOL *pfAscending) = 0;
 6477
 6478    virtual HRESULT STDMETHODCALLTYPE SetViewProperty(
 6479        PCUITEMID_CHILD pidl,
 6480        REFPROPERTYKEY propkey,
 6481        REFPROPVARIANT propvar) = 0;
 6482
 6483    virtual HRESULT STDMETHODCALLTYPE GetViewProperty(
 6484        PCUITEMID_CHILD pidl,
 6485        REFPROPERTYKEY propkey,
 6486        PROPVARIANT *ppropvar) = 0;
 6487
 6488    virtual HRESULT STDMETHODCALLTYPE SetTileViewProperties(
 6489        PCUITEMID_CHILD pidl,
 6490        LPCWSTR pszPropList) = 0;
 6491
 6492    virtual HRESULT STDMETHODCALLTYPE SetExtendedTileViewProperties(
 6493        PCUITEMID_CHILD pidl,
 6494        LPCWSTR pszPropList) = 0;
 6495
 6496    virtual HRESULT STDMETHODCALLTYPE SetText(
 6497        FVTEXTTYPE iType,
 6498        LPCWSTR pwszText) = 0;
 6499
 6500    virtual HRESULT STDMETHODCALLTYPE SetCurrentFolderFlags(
 6501        DWORD dwMask,
 6502        DWORD dwFlags) = 0;
 6503
 6504    virtual HRESULT STDMETHODCALLTYPE GetCurrentFolderFlags(
 6505        DWORD *pdwFlags) = 0;
 6506
 6507    virtual HRESULT STDMETHODCALLTYPE GetSortColumnCount(
 6508        int *pcColumns) = 0;
 6509
 6510    virtual HRESULT STDMETHODCALLTYPE SetSortColumns(
 6511        const SORTCOLUMN *rgSortColumns,
 6512        int cColumns) = 0;
 6513
 6514    virtual HRESULT STDMETHODCALLTYPE GetSortColumns(
 6515        SORTCOLUMN *rgSortColumns,
 6516        int cColumns) = 0;
 6517
 6518    virtual HRESULT STDMETHODCALLTYPE GetItem(
 6519        int iItem,
 6520        REFIID riid,
 6521        void **ppv) = 0;
 6522
 6523    virtual HRESULT STDMETHODCALLTYPE GetVisibleItem(
 6524        int iStart,
 6525        WINBOOL fPrevious,
 6526        int *piItem) = 0;
 6527
 6528    virtual HRESULT STDMETHODCALLTYPE GetSelectedItem(
 6529        int iStart,
 6530        int *piItem) = 0;
 6531
 6532    virtual HRESULT STDMETHODCALLTYPE GetSelection(
 6533        WINBOOL fNoneImpliesFolder,
 6534        IShellItemArray **ppsia) = 0;
 6535
 6536    virtual HRESULT STDMETHODCALLTYPE GetSelectionState(
 6537        PCUITEMID_CHILD pidl,
 6538        DWORD *pdwFlags) = 0;
 6539
 6540    virtual HRESULT STDMETHODCALLTYPE InvokeVerbOnSelection(
 6541        LPCSTR pszVerb) = 0;
 6542
 6543    virtual HRESULT STDMETHODCALLTYPE SetViewModeAndIconSize(
 6544        FOLDERVIEWMODE uViewMode,
 6545        int iImageSize) = 0;
 6546
 6547    virtual HRESULT STDMETHODCALLTYPE GetViewModeAndIconSize(
 6548        FOLDERVIEWMODE *puViewMode,
 6549        int *piImageSize) = 0;
 6550
 6551    virtual HRESULT STDMETHODCALLTYPE SetGroupSubsetCount(
 6552        UINT cVisibleRows) = 0;
 6553
 6554    virtual HRESULT STDMETHODCALLTYPE GetGroupSubsetCount(
 6555        UINT *pcVisibleRows) = 0;
 6556
 6557    virtual HRESULT STDMETHODCALLTYPE SetRedraw(
 6558        WINBOOL fRedrawOn) = 0;
 6559
 6560    virtual HRESULT STDMETHODCALLTYPE IsMoveInSameFolder(
 6561        ) = 0;
 6562
 6563    virtual HRESULT STDMETHODCALLTYPE DoRename(
 6564        ) = 0;
 6565
 6566};
 6567#ifdef __CRT_UUID_DECL
 6568__CRT_UUID_DECL(IFolderView2, 0x1af3a467, 0x214f, 0x4298, 0x90,0x8e, 0x06,0xb0,0x3e,0x0b,0x39,0xf9)
 6569#endif
 6570#else
 6571typedef struct IFolderView2Vtbl {
 6572    BEGIN_INTERFACE
 6573
 6574    /*** IUnknown methods ***/
 6575    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 6576        IFolderView2 *This,
 6577        REFIID riid,
 6578        void **ppvObject);
 6579
 6580    ULONG (STDMETHODCALLTYPE *AddRef)(
 6581        IFolderView2 *This);
 6582
 6583    ULONG (STDMETHODCALLTYPE *Release)(
 6584        IFolderView2 *This);
 6585
 6586    /*** IFolderView methods ***/
 6587    HRESULT (STDMETHODCALLTYPE *GetCurrentViewMode)(
 6588        IFolderView2 *This,
 6589        UINT *pViewMode);
 6590
 6591    HRESULT (STDMETHODCALLTYPE *SetCurrentViewMode)(
 6592        IFolderView2 *This,
 6593        UINT ViewMode);
 6594
 6595    HRESULT (STDMETHODCALLTYPE *GetFolder)(
 6596        IFolderView2 *This,
 6597        REFIID riid,
 6598        void **ppv);
 6599
 6600    HRESULT (STDMETHODCALLTYPE *Item)(
 6601        IFolderView2 *This,
 6602        int iItemIndex,
 6603        PITEMID_CHILD *ppidl);
 6604
 6605    HRESULT (STDMETHODCALLTYPE *ItemCount)(
 6606        IFolderView2 *This,
 6607        UINT uFlags,
 6608        int *pcItems);
 6609
 6610    HRESULT (STDMETHODCALLTYPE *Items)(
 6611        IFolderView2 *This,
 6612        UINT uFlags,
 6613        REFIID riid,
 6614        void **ppv);
 6615
 6616    HRESULT (STDMETHODCALLTYPE *GetSelectionMarkedItem)(
 6617        IFolderView2 *This,
 6618        int *piItem);
 6619
 6620    HRESULT (STDMETHODCALLTYPE *GetFocusedItem)(
 6621        IFolderView2 *This,
 6622        int *piItem);
 6623
 6624    HRESULT (STDMETHODCALLTYPE *GetItemPosition)(
 6625        IFolderView2 *This,
 6626        PCUITEMID_CHILD pidl,
 6627        POINT *ppt);
 6628
 6629    HRESULT (STDMETHODCALLTYPE *GetSpacing)(
 6630        IFolderView2 *This,
 6631        POINT *ppt);
 6632
 6633    HRESULT (STDMETHODCALLTYPE *GetDefaultSpacing)(
 6634        IFolderView2 *This,
 6635        POINT *ppt);
 6636
 6637    HRESULT (STDMETHODCALLTYPE *GetAutoArrange)(
 6638        IFolderView2 *This);
 6639
 6640    HRESULT (STDMETHODCALLTYPE *SelectItem)(
 6641        IFolderView2 *This,
 6642        int iItem,
 6643        DWORD dwFlags);
 6644
 6645    HRESULT (STDMETHODCALLTYPE *SelectAndPositionItems)(
 6646        IFolderView2 *This,
 6647        UINT cidl,
 6648        PCUITEMID_CHILD_ARRAY apidl,
 6649        POINT *apt,
 6650        DWORD dwFlags);
 6651
 6652    /*** IFolderView2 methods ***/
 6653    HRESULT (STDMETHODCALLTYPE *SetGroupBy)(
 6654        IFolderView2 *This,
 6655        REFPROPERTYKEY key,
 6656        WINBOOL fAscending);
 6657
 6658    HRESULT (STDMETHODCALLTYPE *GetGroupBy)(
 6659        IFolderView2 *This,
 6660        PROPERTYKEY *pkey,
 6661        WINBOOL *pfAscending);
 6662
 6663    HRESULT (STDMETHODCALLTYPE *SetViewProperty)(
 6664        IFolderView2 *This,
 6665        PCUITEMID_CHILD pidl,
 6666        REFPROPERTYKEY propkey,
 6667        REFPROPVARIANT propvar);
 6668
 6669    HRESULT (STDMETHODCALLTYPE *GetViewProperty)(
 6670        IFolderView2 *This,
 6671        PCUITEMID_CHILD pidl,
 6672        REFPROPERTYKEY propkey,
 6673        PROPVARIANT *ppropvar);
 6674
 6675    HRESULT (STDMETHODCALLTYPE *SetTileViewProperties)(
 6676        IFolderView2 *This,
 6677        PCUITEMID_CHILD pidl,
 6678        LPCWSTR pszPropList);
 6679
 6680    HRESULT (STDMETHODCALLTYPE *SetExtendedTileViewProperties)(
 6681        IFolderView2 *This,
 6682        PCUITEMID_CHILD pidl,
 6683        LPCWSTR pszPropList);
 6684
 6685    HRESULT (STDMETHODCALLTYPE *SetText)(
 6686        IFolderView2 *This,
 6687        FVTEXTTYPE iType,
 6688        LPCWSTR pwszText);
 6689
 6690    HRESULT (STDMETHODCALLTYPE *SetCurrentFolderFlags)(
 6691        IFolderView2 *This,
 6692        DWORD dwMask,
 6693        DWORD dwFlags);
 6694
 6695    HRESULT (STDMETHODCALLTYPE *GetCurrentFolderFlags)(
 6696        IFolderView2 *This,
 6697        DWORD *pdwFlags);
 6698
 6699    HRESULT (STDMETHODCALLTYPE *GetSortColumnCount)(
 6700        IFolderView2 *This,
 6701        int *pcColumns);
 6702
 6703    HRESULT (STDMETHODCALLTYPE *SetSortColumns)(
 6704        IFolderView2 *This,
 6705        const SORTCOLUMN *rgSortColumns,
 6706        int cColumns);
 6707
 6708    HRESULT (STDMETHODCALLTYPE *GetSortColumns)(
 6709        IFolderView2 *This,
 6710        SORTCOLUMN *rgSortColumns,
 6711        int cColumns);
 6712
 6713    HRESULT (STDMETHODCALLTYPE *GetItem)(
 6714        IFolderView2 *This,
 6715        int iItem,
 6716        REFIID riid,
 6717        void **ppv);
 6718
 6719    HRESULT (STDMETHODCALLTYPE *GetVisibleItem)(
 6720        IFolderView2 *This,
 6721        int iStart,
 6722        WINBOOL fPrevious,
 6723        int *piItem);
 6724
 6725    HRESULT (STDMETHODCALLTYPE *GetSelectedItem)(
 6726        IFolderView2 *This,
 6727        int iStart,
 6728        int *piItem);
 6729
 6730    HRESULT (STDMETHODCALLTYPE *GetSelection)(
 6731        IFolderView2 *This,
 6732        WINBOOL fNoneImpliesFolder,
 6733        IShellItemArray **ppsia);
 6734
 6735    HRESULT (STDMETHODCALLTYPE *GetSelectionState)(
 6736        IFolderView2 *This,
 6737        PCUITEMID_CHILD pidl,
 6738        DWORD *pdwFlags);
 6739
 6740    HRESULT (STDMETHODCALLTYPE *InvokeVerbOnSelection)(
 6741        IFolderView2 *This,
 6742        LPCSTR pszVerb);
 6743
 6744    HRESULT (STDMETHODCALLTYPE *SetViewModeAndIconSize)(
 6745        IFolderView2 *This,
 6746        FOLDERVIEWMODE uViewMode,
 6747        int iImageSize);
 6748
 6749    HRESULT (STDMETHODCALLTYPE *GetViewModeAndIconSize)(
 6750        IFolderView2 *This,
 6751        FOLDERVIEWMODE *puViewMode,
 6752        int *piImageSize);
 6753
 6754    HRESULT (STDMETHODCALLTYPE *SetGroupSubsetCount)(
 6755        IFolderView2 *This,
 6756        UINT cVisibleRows);
 6757
 6758    HRESULT (STDMETHODCALLTYPE *GetGroupSubsetCount)(
 6759        IFolderView2 *This,
 6760        UINT *pcVisibleRows);
 6761
 6762    HRESULT (STDMETHODCALLTYPE *SetRedraw)(
 6763        IFolderView2 *This,
 6764        WINBOOL fRedrawOn);
 6765
 6766    HRESULT (STDMETHODCALLTYPE *IsMoveInSameFolder)(
 6767        IFolderView2 *This);
 6768
 6769    HRESULT (STDMETHODCALLTYPE *DoRename)(
 6770        IFolderView2 *This);
 6771
 6772    END_INTERFACE
 6773} IFolderView2Vtbl;
 6774
 6775interface IFolderView2 {
 6776    CONST_VTBL IFolderView2Vtbl* lpVtbl;
 6777};
 6778
 6779#ifdef COBJMACROS
 6780#ifndef WIDL_C_INLINE_WRAPPERS
 6781/*** IUnknown methods ***/
 6782#define IFolderView2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 6783#define IFolderView2_AddRef(This) (This)->lpVtbl->AddRef(This)
 6784#define IFolderView2_Release(This) (This)->lpVtbl->Release(This)
 6785/*** IFolderView methods ***/
 6786#define IFolderView2_GetCurrentViewMode(This,pViewMode) (This)->lpVtbl->GetCurrentViewMode(This,pViewMode)
 6787#define IFolderView2_SetCurrentViewMode(This,ViewMode) (This)->lpVtbl->SetCurrentViewMode(This,ViewMode)
 6788#define IFolderView2_GetFolder(This,riid,ppv) (This)->lpVtbl->GetFolder(This,riid,ppv)
 6789#define IFolderView2_Item(This,iItemIndex,ppidl) (This)->lpVtbl->Item(This,iItemIndex,ppidl)
 6790#define IFolderView2_ItemCount(This,uFlags,pcItems) (This)->lpVtbl->ItemCount(This,uFlags,pcItems)
 6791#define IFolderView2_Items(This,uFlags,riid,ppv) (This)->lpVtbl->Items(This,uFlags,riid,ppv)
 6792#define IFolderView2_GetSelectionMarkedItem(This,piItem) (This)->lpVtbl->GetSelectionMarkedItem(This,piItem)
 6793#define IFolderView2_GetFocusedItem(This,piItem) (This)->lpVtbl->GetFocusedItem(This,piItem)
 6794#define IFolderView2_GetItemPosition(This,pidl,ppt) (This)->lpVtbl->GetItemPosition(This,pidl,ppt)
 6795#define IFolderView2_GetSpacing(This,ppt) (This)->lpVtbl->GetSpacing(This,ppt)
 6796#define IFolderView2_GetDefaultSpacing(This,ppt) (This)->lpVtbl->GetDefaultSpacing(This,ppt)
 6797#define IFolderView2_GetAutoArrange(This) (This)->lpVtbl->GetAutoArrange(This)
 6798#define IFolderView2_SelectItem(This,iItem,dwFlags) (This)->lpVtbl->SelectItem(This,iItem,dwFlags)
 6799#define IFolderView2_SelectAndPositionItems(This,cidl,apidl,apt,dwFlags) (This)->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags)
 6800/*** IFolderView2 methods ***/
 6801#define IFolderView2_SetGroupBy(This,key,fAscending) (This)->lpVtbl->SetGroupBy(This,key,fAscending)
 6802#define IFolderView2_GetGroupBy(This,pkey,pfAscending) (This)->lpVtbl->GetGroupBy(This,pkey,pfAscending)
 6803#define IFolderView2_SetViewProperty(This,pidl,propkey,propvar) (This)->lpVtbl->SetViewProperty(This,pidl,propkey,propvar)
 6804#define IFolderView2_GetViewProperty(This,pidl,propkey,ppropvar) (This)->lpVtbl->GetViewProperty(This,pidl,propkey,ppropvar)
 6805#define IFolderView2_SetTileViewProperties(This,pidl,pszPropList) (This)->lpVtbl->SetTileViewProperties(This,pidl,pszPropList)
 6806#define IFolderView2_SetExtendedTileViewProperties(This,pidl,pszPropList) (This)->lpVtbl->SetExtendedTileViewProperties(This,pidl,pszPropList)
 6807#define IFolderView2_SetText(This,iType,pwszText) (This)->lpVtbl->SetText(This,iType,pwszText)
 6808#define IFolderView2_SetCurrentFolderFlags(This,dwMask,dwFlags) (This)->lpVtbl->SetCurrentFolderFlags(This,dwMask,dwFlags)
 6809#define IFolderView2_GetCurrentFolderFlags(This,pdwFlags) (This)->lpVtbl->GetCurrentFolderFlags(This,pdwFlags)
 6810#define IFolderView2_GetSortColumnCount(This,pcColumns) (This)->lpVtbl->GetSortColumnCount(This,pcColumns)
 6811#define IFolderView2_SetSortColumns(This,rgSortColumns,cColumns) (This)->lpVtbl->SetSortColumns(This,rgSortColumns,cColumns)
 6812#define IFolderView2_GetSortColumns(This,rgSortColumns,cColumns) (This)->lpVtbl->GetSortColumns(This,rgSortColumns,cColumns)
 6813#define IFolderView2_GetItem(This,iItem,riid,ppv) (This)->lpVtbl->GetItem(This,iItem,riid,ppv)
 6814#define IFolderView2_GetVisibleItem(This,iStart,fPrevious,piItem) (This)->lpVtbl->GetVisibleItem(This,iStart,fPrevious,piItem)
 6815#define IFolderView2_GetSelectedItem(This,iStart,piItem) (This)->lpVtbl->GetSelectedItem(This,iStart,piItem)
 6816#define IFolderView2_GetSelection(This,fNoneImpliesFolder,ppsia) (This)->lpVtbl->GetSelection(This,fNoneImpliesFolder,ppsia)
 6817#define IFolderView2_GetSelectionState(This,pidl,pdwFlags) (This)->lpVtbl->GetSelectionState(This,pidl,pdwFlags)
 6818#define IFolderView2_InvokeVerbOnSelection(This,pszVerb) (This)->lpVtbl->InvokeVerbOnSelection(This,pszVerb)
 6819#define IFolderView2_SetViewModeAndIconSize(This,uViewMode,iImageSize) (This)->lpVtbl->SetViewModeAndIconSize(This,uViewMode,iImageSize)
 6820#define IFolderView2_GetViewModeAndIconSize(This,puViewMode,piImageSize) (This)->lpVtbl->GetViewModeAndIconSize(This,puViewMode,piImageSize)
 6821#define IFolderView2_SetGroupSubsetCount(This,cVisibleRows) (This)->lpVtbl->SetGroupSubsetCount(This,cVisibleRows)
 6822#define IFolderView2_GetGroupSubsetCount(This,pcVisibleRows) (This)->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows)
 6823#define IFolderView2_SetRedraw(This,fRedrawOn) (This)->lpVtbl->SetRedraw(This,fRedrawOn)
 6824#define IFolderView2_IsMoveInSameFolder(This) (This)->lpVtbl->IsMoveInSameFolder(This)
 6825#define IFolderView2_DoRename(This) (This)->lpVtbl->DoRename(This)
 6826#else
 6827/*** IUnknown methods ***/
 6828static inline HRESULT IFolderView2_QueryInterface(IFolderView2* This,REFIID riid,void **ppvObject) {
 6829    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 6830}
 6831static inline ULONG IFolderView2_AddRef(IFolderView2* This) {
 6832    return This->lpVtbl->AddRef(This);
 6833}
 6834static inline ULONG IFolderView2_Release(IFolderView2* This) {
 6835    return This->lpVtbl->Release(This);
 6836}
 6837/*** IFolderView methods ***/
 6838static inline HRESULT IFolderView2_GetCurrentViewMode(IFolderView2* This,UINT *pViewMode) {
 6839    return This->lpVtbl->GetCurrentViewMode(This,pViewMode);
 6840}
 6841static inline HRESULT IFolderView2_SetCurrentViewMode(IFolderView2* This,UINT ViewMode) {
 6842    return This->lpVtbl->SetCurrentViewMode(This,ViewMode);
 6843}
 6844static inline HRESULT IFolderView2_GetFolder(IFolderView2* This,REFIID riid,void **ppv) {
 6845    return This->lpVtbl->GetFolder(This,riid,ppv);
 6846}
 6847static inline HRESULT IFolderView2_Item(IFolderView2* This,int iItemIndex,PITEMID_CHILD *ppidl) {
 6848    return This->lpVtbl->Item(This,iItemIndex,ppidl);
 6849}
 6850static inline HRESULT IFolderView2_ItemCount(IFolderView2* This,UINT uFlags,int *pcItems) {
 6851    return This->lpVtbl->ItemCount(This,uFlags,pcItems);
 6852}
 6853static inline HRESULT IFolderView2_Items(IFolderView2* This,UINT uFlags,REFIID riid,void **ppv) {
 6854    return This->lpVtbl->Items(This,uFlags,riid,ppv);
 6855}
 6856static inline HRESULT IFolderView2_GetSelectionMarkedItem(IFolderView2* This,int *piItem) {
 6857    return This->lpVtbl->GetSelectionMarkedItem(This,piItem);
 6858}
 6859static inline HRESULT IFolderView2_GetFocusedItem(IFolderView2* This,int *piItem) {
 6860    return This->lpVtbl->GetFocusedItem(This,piItem);
 6861}
 6862static inline HRESULT IFolderView2_GetItemPosition(IFolderView2* This,PCUITEMID_CHILD pidl,POINT *ppt) {
 6863    return This->lpVtbl->GetItemPosition(This,pidl,ppt);
 6864}
 6865static inline HRESULT IFolderView2_GetSpacing(IFolderView2* This,POINT *ppt) {
 6866    return This->lpVtbl->GetSpacing(This,ppt);
 6867}
 6868static inline HRESULT IFolderView2_GetDefaultSpacing(IFolderView2* This,POINT *ppt) {
 6869    return This->lpVtbl->GetDefaultSpacing(This,ppt);
 6870}
 6871static inline HRESULT IFolderView2_GetAutoArrange(IFolderView2* This) {
 6872    return This->lpVtbl->GetAutoArrange(This);
 6873}
 6874static inline HRESULT IFolderView2_SelectItem(IFolderView2* This,int iItem,DWORD dwFlags) {
 6875    return This->lpVtbl->SelectItem(This,iItem,dwFlags);
 6876}
 6877static inline HRESULT IFolderView2_SelectAndPositionItems(IFolderView2* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,POINT *apt,DWORD dwFlags) {
 6878    return This->lpVtbl->SelectAndPositionItems(This,cidl,apidl,apt,dwFlags);
 6879}
 6880/*** IFolderView2 methods ***/
 6881static inline HRESULT IFolderView2_SetGroupBy(IFolderView2* This,REFPROPERTYKEY key,WINBOOL fAscending) {
 6882    return This->lpVtbl->SetGroupBy(This,key,fAscending);
 6883}
 6884static inline HRESULT IFolderView2_GetGroupBy(IFolderView2* This,PROPERTYKEY *pkey,WINBOOL *pfAscending) {
 6885    return This->lpVtbl->GetGroupBy(This,pkey,pfAscending);
 6886}
 6887static inline HRESULT IFolderView2_SetViewProperty(IFolderView2* This,PCUITEMID_CHILD pidl,REFPROPERTYKEY propkey,REFPROPVARIANT propvar) {
 6888    return This->lpVtbl->SetViewProperty(This,pidl,propkey,propvar);
 6889}
 6890static inline HRESULT IFolderView2_GetViewProperty(IFolderView2* This,PCUITEMID_CHILD pidl,REFPROPERTYKEY propkey,PROPVARIANT *ppropvar) {
 6891    return This->lpVtbl->GetViewProperty(This,pidl,propkey,ppropvar);
 6892}
 6893static inline HRESULT IFolderView2_SetTileViewProperties(IFolderView2* This,PCUITEMID_CHILD pidl,LPCWSTR pszPropList) {
 6894    return This->lpVtbl->SetTileViewProperties(This,pidl,pszPropList);
 6895}
 6896static inline HRESULT IFolderView2_SetExtendedTileViewProperties(IFolderView2* This,PCUITEMID_CHILD pidl,LPCWSTR pszPropList) {
 6897    return This->lpVtbl->SetExtendedTileViewProperties(This,pidl,pszPropList);
 6898}
 6899static inline HRESULT IFolderView2_SetText(IFolderView2* This,FVTEXTTYPE iType,LPCWSTR pwszText) {
 6900    return This->lpVtbl->SetText(This,iType,pwszText);
 6901}
 6902static inline HRESULT IFolderView2_SetCurrentFolderFlags(IFolderView2* This,DWORD dwMask,DWORD dwFlags) {
 6903    return This->lpVtbl->SetCurrentFolderFlags(This,dwMask,dwFlags);
 6904}
 6905static inline HRESULT IFolderView2_GetCurrentFolderFlags(IFolderView2* This,DWORD *pdwFlags) {
 6906    return This->lpVtbl->GetCurrentFolderFlags(This,pdwFlags);
 6907}
 6908static inline HRESULT IFolderView2_GetSortColumnCount(IFolderView2* This,int *pcColumns) {
 6909    return This->lpVtbl->GetSortColumnCount(This,pcColumns);
 6910}
 6911static inline HRESULT IFolderView2_SetSortColumns(IFolderView2* This,const SORTCOLUMN *rgSortColumns,int cColumns) {
 6912    return This->lpVtbl->SetSortColumns(This,rgSortColumns,cColumns);
 6913}
 6914static inline HRESULT IFolderView2_GetSortColumns(IFolderView2* This,SORTCOLUMN *rgSortColumns,int cColumns) {
 6915    return This->lpVtbl->GetSortColumns(This,rgSortColumns,cColumns);
 6916}
 6917static inline HRESULT IFolderView2_GetItem(IFolderView2* This,int iItem,REFIID riid,void **ppv) {
 6918    return This->lpVtbl->GetItem(This,iItem,riid,ppv);
 6919}
 6920static inline HRESULT IFolderView2_GetVisibleItem(IFolderView2* This,int iStart,WINBOOL fPrevious,int *piItem) {
 6921    return This->lpVtbl->GetVisibleItem(This,iStart,fPrevious,piItem);
 6922}
 6923static inline HRESULT IFolderView2_GetSelectedItem(IFolderView2* This,int iStart,int *piItem) {
 6924    return This->lpVtbl->GetSelectedItem(This,iStart,piItem);
 6925}
 6926static inline HRESULT IFolderView2_GetSelection(IFolderView2* This,WINBOOL fNoneImpliesFolder,IShellItemArray **ppsia) {
 6927    return This->lpVtbl->GetSelection(This,fNoneImpliesFolder,ppsia);
 6928}
 6929static inline HRESULT IFolderView2_GetSelectionState(IFolderView2* This,PCUITEMID_CHILD pidl,DWORD *pdwFlags) {
 6930    return This->lpVtbl->GetSelectionState(This,pidl,pdwFlags);
 6931}
 6932static inline HRESULT IFolderView2_InvokeVerbOnSelection(IFolderView2* This,LPCSTR pszVerb) {
 6933    return This->lpVtbl->InvokeVerbOnSelection(This,pszVerb);
 6934}
 6935static inline HRESULT IFolderView2_SetViewModeAndIconSize(IFolderView2* This,FOLDERVIEWMODE uViewMode,int iImageSize) {
 6936    return This->lpVtbl->SetViewModeAndIconSize(This,uViewMode,iImageSize);
 6937}
 6938static inline HRESULT IFolderView2_GetViewModeAndIconSize(IFolderView2* This,FOLDERVIEWMODE *puViewMode,int *piImageSize) {
 6939    return This->lpVtbl->GetViewModeAndIconSize(This,puViewMode,piImageSize);
 6940}
 6941static inline HRESULT IFolderView2_SetGroupSubsetCount(IFolderView2* This,UINT cVisibleRows) {
 6942    return This->lpVtbl->SetGroupSubsetCount(This,cVisibleRows);
 6943}
 6944static inline HRESULT IFolderView2_GetGroupSubsetCount(IFolderView2* This,UINT *pcVisibleRows) {
 6945    return This->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows);
 6946}
 6947static inline HRESULT IFolderView2_SetRedraw(IFolderView2* This,WINBOOL fRedrawOn) {
 6948    return This->lpVtbl->SetRedraw(This,fRedrawOn);
 6949}
 6950static inline HRESULT IFolderView2_IsMoveInSameFolder(IFolderView2* This) {
 6951    return This->lpVtbl->IsMoveInSameFolder(This);
 6952}
 6953static inline HRESULT IFolderView2_DoRename(IFolderView2* This) {
 6954    return This->lpVtbl->DoRename(This);
 6955}
 6956#endif
 6957#endif
 6958
 6959#endif
 6960
 6961HRESULT STDMETHODCALLTYPE IFolderView2_RemoteGetGroupBy_Proxy(
 6962    IFolderView2* This,
 6963    PROPERTYKEY *pkey,
 6964    WINBOOL *pfAscending);
 6965void __RPC_STUB IFolderView2_RemoteGetGroupBy_Stub(
 6966    IRpcStubBuffer* This,
 6967    IRpcChannelBuffer* pRpcChannelBuffer,
 6968    PRPC_MESSAGE pRpcMessage,
 6969    DWORD* pdwStubPhase);
 6970HRESULT CALLBACK IFolderView2_GetGroupBy_Proxy(
 6971    IFolderView2* This,
 6972    PROPERTYKEY *pkey,
 6973    WINBOOL *pfAscending);
 6974HRESULT __RPC_STUB IFolderView2_GetGroupBy_Stub(
 6975    IFolderView2* This,
 6976    PROPERTYKEY *pkey,
 6977    WINBOOL *pfAscending);
 6978
 6979#endif  /* __IFolderView2_INTERFACE_DEFINED__ */
 6980
 6981
 6982#if NTDDI_VERSION >= NTDDI_VISTA
 6983/*****************************************************************************
 6984 * IFolderViewSettings interface
 6985 */
 6986#ifndef __IFolderViewSettings_INTERFACE_DEFINED__
 6987#define __IFolderViewSettings_INTERFACE_DEFINED__
 6988
 6989DEFINE_GUID(IID_IFolderViewSettings, 0xae8c987d, 0x8797, 0x4ed3, 0xbe,0x72, 0x2a,0x47,0xdd,0x93,0x8d,0xb0);
 6990#if defined(__cplusplus) && !defined(CINTERFACE)
 6991MIDL_INTERFACE("ae8c987d-8797-4ed3-be72-2a47dd938db0")
 6992IFolderViewSettings : public IUnknown
 6993{
 6994    virtual HRESULT STDMETHODCALLTYPE GetColumnPropertyList(
 6995        REFIID riid,
 6996        void **ppv) = 0;
 6997
 6998    virtual HRESULT STDMETHODCALLTYPE GetGroupByProperty(
 6999        PROPERTYKEY *pkey,
 7000        WINBOOL *pfGroupAscending) = 0;
 7001
 7002    virtual HRESULT STDMETHODCALLTYPE GetViewMode(
 7003        FOLDERLOGICALVIEWMODE *plvm) = 0;
 7004
 7005    virtual HRESULT STDMETHODCALLTYPE GetIconSize(
 7006        UINT *puIconSize) = 0;
 7007
 7008    virtual HRESULT STDMETHODCALLTYPE GetFolderFlags(
 7009        FOLDERFLAGS *pfolderMask,
 7010        FOLDERFLAGS *pfolderFlags) = 0;
 7011
 7012    virtual HRESULT STDMETHODCALLTYPE GetSortColumns(
 7013        SORTCOLUMN *rgSortColumns,
 7014        UINT cColumnsIn,
 7015        UINT *pcColumnsOut) = 0;
 7016
 7017    virtual HRESULT STDMETHODCALLTYPE GetGroupSubsetCount(
 7018        UINT *pcVisibleRows) = 0;
 7019
 7020};
 7021#ifdef __CRT_UUID_DECL
 7022__CRT_UUID_DECL(IFolderViewSettings, 0xae8c987d, 0x8797, 0x4ed3, 0xbe,0x72, 0x2a,0x47,0xdd,0x93,0x8d,0xb0)
 7023#endif
 7024#else
 7025typedef struct IFolderViewSettingsVtbl {
 7026    BEGIN_INTERFACE
 7027
 7028    /*** IUnknown methods ***/
 7029    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7030        IFolderViewSettings *This,
 7031        REFIID riid,
 7032        void **ppvObject);
 7033
 7034    ULONG (STDMETHODCALLTYPE *AddRef)(
 7035        IFolderViewSettings *This);
 7036
 7037    ULONG (STDMETHODCALLTYPE *Release)(
 7038        IFolderViewSettings *This);
 7039
 7040    /*** IFolderViewSettings methods ***/
 7041    HRESULT (STDMETHODCALLTYPE *GetColumnPropertyList)(
 7042        IFolderViewSettings *This,
 7043        REFIID riid,
 7044        void **ppv);
 7045
 7046    HRESULT (STDMETHODCALLTYPE *GetGroupByProperty)(
 7047        IFolderViewSettings *This,
 7048        PROPERTYKEY *pkey,
 7049        WINBOOL *pfGroupAscending);
 7050
 7051    HRESULT (STDMETHODCALLTYPE *GetViewMode)(
 7052        IFolderViewSettings *This,
 7053        FOLDERLOGICALVIEWMODE *plvm);
 7054
 7055    HRESULT (STDMETHODCALLTYPE *GetIconSize)(
 7056        IFolderViewSettings *This,
 7057        UINT *puIconSize);
 7058
 7059    HRESULT (STDMETHODCALLTYPE *GetFolderFlags)(
 7060        IFolderViewSettings *This,
 7061        FOLDERFLAGS *pfolderMask,
 7062        FOLDERFLAGS *pfolderFlags);
 7063
 7064    HRESULT (STDMETHODCALLTYPE *GetSortColumns)(
 7065        IFolderViewSettings *This,
 7066        SORTCOLUMN *rgSortColumns,
 7067        UINT cColumnsIn,
 7068        UINT *pcColumnsOut);
 7069
 7070    HRESULT (STDMETHODCALLTYPE *GetGroupSubsetCount)(
 7071        IFolderViewSettings *This,
 7072        UINT *pcVisibleRows);
 7073
 7074    END_INTERFACE
 7075} IFolderViewSettingsVtbl;
 7076
 7077interface IFolderViewSettings {
 7078    CONST_VTBL IFolderViewSettingsVtbl* lpVtbl;
 7079};
 7080
 7081#ifdef COBJMACROS
 7082#ifndef WIDL_C_INLINE_WRAPPERS
 7083/*** IUnknown methods ***/
 7084#define IFolderViewSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7085#define IFolderViewSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
 7086#define IFolderViewSettings_Release(This) (This)->lpVtbl->Release(This)
 7087/*** IFolderViewSettings methods ***/
 7088#define IFolderViewSettings_GetColumnPropertyList(This,riid,ppv) (This)->lpVtbl->GetColumnPropertyList(This,riid,ppv)
 7089#define IFolderViewSettings_GetGroupByProperty(This,pkey,pfGroupAscending) (This)->lpVtbl->GetGroupByProperty(This,pkey,pfGroupAscending)
 7090#define IFolderViewSettings_GetViewMode(This,plvm) (This)->lpVtbl->GetViewMode(This,plvm)
 7091#define IFolderViewSettings_GetIconSize(This,puIconSize) (This)->lpVtbl->GetIconSize(This,puIconSize)
 7092#define IFolderViewSettings_GetFolderFlags(This,pfolderMask,pfolderFlags) (This)->lpVtbl->GetFolderFlags(This,pfolderMask,pfolderFlags)
 7093#define IFolderViewSettings_GetSortColumns(This,rgSortColumns,cColumnsIn,pcColumnsOut) (This)->lpVtbl->GetSortColumns(This,rgSortColumns,cColumnsIn,pcColumnsOut)
 7094#define IFolderViewSettings_GetGroupSubsetCount(This,pcVisibleRows) (This)->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows)
 7095#else
 7096/*** IUnknown methods ***/
 7097static inline HRESULT IFolderViewSettings_QueryInterface(IFolderViewSettings* This,REFIID riid,void **ppvObject) {
 7098    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7099}
 7100static inline ULONG IFolderViewSettings_AddRef(IFolderViewSettings* This) {
 7101    return This->lpVtbl->AddRef(This);
 7102}
 7103static inline ULONG IFolderViewSettings_Release(IFolderViewSettings* This) {
 7104    return This->lpVtbl->Release(This);
 7105}
 7106/*** IFolderViewSettings methods ***/
 7107static inline HRESULT IFolderViewSettings_GetColumnPropertyList(IFolderViewSettings* This,REFIID riid,void **ppv) {
 7108    return This->lpVtbl->GetColumnPropertyList(This,riid,ppv);
 7109}
 7110static inline HRESULT IFolderViewSettings_GetGroupByProperty(IFolderViewSettings* This,PROPERTYKEY *pkey,WINBOOL *pfGroupAscending) {
 7111    return This->lpVtbl->GetGroupByProperty(This,pkey,pfGroupAscending);
 7112}
 7113static inline HRESULT IFolderViewSettings_GetViewMode(IFolderViewSettings* This,FOLDERLOGICALVIEWMODE *plvm) {
 7114    return This->lpVtbl->GetViewMode(This,plvm);
 7115}
 7116static inline HRESULT IFolderViewSettings_GetIconSize(IFolderViewSettings* This,UINT *puIconSize) {
 7117    return This->lpVtbl->GetIconSize(This,puIconSize);
 7118}
 7119static inline HRESULT IFolderViewSettings_GetFolderFlags(IFolderViewSettings* This,FOLDERFLAGS *pfolderMask,FOLDERFLAGS *pfolderFlags) {
 7120    return This->lpVtbl->GetFolderFlags(This,pfolderMask,pfolderFlags);
 7121}
 7122static inline HRESULT IFolderViewSettings_GetSortColumns(IFolderViewSettings* This,SORTCOLUMN *rgSortColumns,UINT cColumnsIn,UINT *pcColumnsOut) {
 7123    return This->lpVtbl->GetSortColumns(This,rgSortColumns,cColumnsIn,pcColumnsOut);
 7124}
 7125static inline HRESULT IFolderViewSettings_GetGroupSubsetCount(IFolderViewSettings* This,UINT *pcVisibleRows) {
 7126    return This->lpVtbl->GetGroupSubsetCount(This,pcVisibleRows);
 7127}
 7128#endif
 7129#endif
 7130
 7131#endif
 7132
 7133
 7134#endif  /* __IFolderViewSettings_INTERFACE_DEFINED__ */
 7135
 7136#endif
 7137#endif
 7138
 7139#if _WIN32_IE >= _WIN32_IE_IE70
 7140/*****************************************************************************
 7141 * IPreviewHandlerVisuals interface
 7142 */
 7143#ifndef __IPreviewHandlerVisuals_INTERFACE_DEFINED__
 7144#define __IPreviewHandlerVisuals_INTERFACE_DEFINED__
 7145
 7146DEFINE_GUID(IID_IPreviewHandlerVisuals, 0x196bf9a5, 0xb346, 0x4ef0, 0xaa,0x1e, 0x5d,0xcd,0xb7,0x67,0x68,0xb1);
 7147#if defined(__cplusplus) && !defined(CINTERFACE)
 7148MIDL_INTERFACE("196bf9a5-b346-4ef0-aa1e-5dcdb76768b1")
 7149IPreviewHandlerVisuals : public IUnknown
 7150{
 7151    virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor(
 7152        COLORREF color) = 0;
 7153
 7154    virtual HRESULT STDMETHODCALLTYPE SetFont(
 7155        const LOGFONTW *plf) = 0;
 7156
 7157    virtual HRESULT STDMETHODCALLTYPE SetTextColor(
 7158        COLORREF color) = 0;
 7159
 7160};
 7161#ifdef __CRT_UUID_DECL
 7162__CRT_UUID_DECL(IPreviewHandlerVisuals, 0x196bf9a5, 0xb346, 0x4ef0, 0xaa,0x1e, 0x5d,0xcd,0xb7,0x67,0x68,0xb1)
 7163#endif
 7164#else
 7165typedef struct IPreviewHandlerVisualsVtbl {
 7166    BEGIN_INTERFACE
 7167
 7168    /*** IUnknown methods ***/
 7169    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7170        IPreviewHandlerVisuals *This,
 7171        REFIID riid,
 7172        void **ppvObject);
 7173
 7174    ULONG (STDMETHODCALLTYPE *AddRef)(
 7175        IPreviewHandlerVisuals *This);
 7176
 7177    ULONG (STDMETHODCALLTYPE *Release)(
 7178        IPreviewHandlerVisuals *This);
 7179
 7180    /*** IPreviewHandlerVisuals methods ***/
 7181    HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
 7182        IPreviewHandlerVisuals *This,
 7183        COLORREF color);
 7184
 7185    HRESULT (STDMETHODCALLTYPE *SetFont)(
 7186        IPreviewHandlerVisuals *This,
 7187        const LOGFONTW *plf);
 7188
 7189    HRESULT (STDMETHODCALLTYPE *SetTextColor)(
 7190        IPreviewHandlerVisuals *This,
 7191        COLORREF color);
 7192
 7193    END_INTERFACE
 7194} IPreviewHandlerVisualsVtbl;
 7195
 7196interface IPreviewHandlerVisuals {
 7197    CONST_VTBL IPreviewHandlerVisualsVtbl* lpVtbl;
 7198};
 7199
 7200#ifdef COBJMACROS
 7201#ifndef WIDL_C_INLINE_WRAPPERS
 7202/*** IUnknown methods ***/
 7203#define IPreviewHandlerVisuals_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7204#define IPreviewHandlerVisuals_AddRef(This) (This)->lpVtbl->AddRef(This)
 7205#define IPreviewHandlerVisuals_Release(This) (This)->lpVtbl->Release(This)
 7206/*** IPreviewHandlerVisuals methods ***/
 7207#define IPreviewHandlerVisuals_SetBackgroundColor(This,color) (This)->lpVtbl->SetBackgroundColor(This,color)
 7208#define IPreviewHandlerVisuals_SetFont(This,plf) (This)->lpVtbl->SetFont(This,plf)
 7209#define IPreviewHandlerVisuals_SetTextColor(This,color) (This)->lpVtbl->SetTextColor(This,color)
 7210#else
 7211/*** IUnknown methods ***/
 7212static inline HRESULT IPreviewHandlerVisuals_QueryInterface(IPreviewHandlerVisuals* This,REFIID riid,void **ppvObject) {
 7213    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7214}
 7215static inline ULONG IPreviewHandlerVisuals_AddRef(IPreviewHandlerVisuals* This) {
 7216    return This->lpVtbl->AddRef(This);
 7217}
 7218static inline ULONG IPreviewHandlerVisuals_Release(IPreviewHandlerVisuals* This) {
 7219    return This->lpVtbl->Release(This);
 7220}
 7221/*** IPreviewHandlerVisuals methods ***/
 7222static inline HRESULT IPreviewHandlerVisuals_SetBackgroundColor(IPreviewHandlerVisuals* This,COLORREF color) {
 7223    return This->lpVtbl->SetBackgroundColor(This,color);
 7224}
 7225static inline HRESULT IPreviewHandlerVisuals_SetFont(IPreviewHandlerVisuals* This,const LOGFONTW *plf) {
 7226    return This->lpVtbl->SetFont(This,plf);
 7227}
 7228static inline HRESULT IPreviewHandlerVisuals_SetTextColor(IPreviewHandlerVisuals* This,COLORREF color) {
 7229    return This->lpVtbl->SetTextColor(This,color);
 7230}
 7231#endif
 7232#endif
 7233
 7234#endif
 7235
 7236
 7237#endif  /* __IPreviewHandlerVisuals_INTERFACE_DEFINED__ */
 7238
 7239
 7240/*****************************************************************************
 7241 * IVisualProperties interface
 7242 */
 7243#ifndef __IVisualProperties_INTERFACE_DEFINED__
 7244#define __IVisualProperties_INTERFACE_DEFINED__
 7245
 7246typedef enum VPWATERMARKFLAGS {
 7247    VPWF_DEFAULT = 0x0,
 7248    VPWF_ALPHABLEND = 0x1
 7249} VPWATERMARKFLAGS;
 7250
 7251typedef enum VPCOLORFLAGS {
 7252    VPCF_TEXT = 1,
 7253    VPCF_BACKGROUND = 2,
 7254    VPCF_SORTCOLUMN = 3,
 7255    VPCF_SUBTEXT = 4,
 7256    VPCF_TEXTBACKGROUND = 5
 7257} VPCOLORFLAGS;
 7258
 7259DEFINE_ENUM_FLAG_OPERATORS(VPWATERMARKFLAGS)
 7260
 7261DEFINE_GUID(IID_IVisualProperties, 0xe693cf68, 0xd967, 0x4112, 0x87,0x63, 0x99,0x17,0x2a,0xee,0x5e,0x5a);
 7262#if defined(__cplusplus) && !defined(CINTERFACE)
 7263MIDL_INTERFACE("e693cf68-d967-4112-8763-99172aee5e5a")
 7264IVisualProperties : public IUnknown
 7265{
 7266    virtual HRESULT STDMETHODCALLTYPE SetWatermark(
 7267        HBITMAP hbmp,
 7268        VPWATERMARKFLAGS vpwf) = 0;
 7269
 7270    virtual HRESULT STDMETHODCALLTYPE SetColor(
 7271        VPCOLORFLAGS vpcf,
 7272        COLORREF cr) = 0;
 7273
 7274    virtual HRESULT STDMETHODCALLTYPE GetColor(
 7275        VPCOLORFLAGS vpcf,
 7276        COLORREF *pcr) = 0;
 7277
 7278    virtual HRESULT STDMETHODCALLTYPE SetItemHeight(
 7279        int cyItemInPixels) = 0;
 7280
 7281    virtual HRESULT STDMETHODCALLTYPE GetItemHeight(
 7282        int *cyItemInPixels) = 0;
 7283
 7284    virtual HRESULT STDMETHODCALLTYPE SetFont(
 7285        const LOGFONTW *plf,
 7286        WINBOOL bRedraw) = 0;
 7287
 7288    virtual HRESULT STDMETHODCALLTYPE GetFont(
 7289        LOGFONTW *plf) = 0;
 7290
 7291    virtual HRESULT STDMETHODCALLTYPE SetTheme(
 7292        LPCWSTR pszSubAppName,
 7293        LPCWSTR pszSubIdList) = 0;
 7294
 7295};
 7296#ifdef __CRT_UUID_DECL
 7297__CRT_UUID_DECL(IVisualProperties, 0xe693cf68, 0xd967, 0x4112, 0x87,0x63, 0x99,0x17,0x2a,0xee,0x5e,0x5a)
 7298#endif
 7299#else
 7300typedef struct IVisualPropertiesVtbl {
 7301    BEGIN_INTERFACE
 7302
 7303    /*** IUnknown methods ***/
 7304    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7305        IVisualProperties *This,
 7306        REFIID riid,
 7307        void **ppvObject);
 7308
 7309    ULONG (STDMETHODCALLTYPE *AddRef)(
 7310        IVisualProperties *This);
 7311
 7312    ULONG (STDMETHODCALLTYPE *Release)(
 7313        IVisualProperties *This);
 7314
 7315    /*** IVisualProperties methods ***/
 7316    HRESULT (STDMETHODCALLTYPE *SetWatermark)(
 7317        IVisualProperties *This,
 7318        HBITMAP hbmp,
 7319        VPWATERMARKFLAGS vpwf);
 7320
 7321    HRESULT (STDMETHODCALLTYPE *SetColor)(
 7322        IVisualProperties *This,
 7323        VPCOLORFLAGS vpcf,
 7324        COLORREF cr);
 7325
 7326    HRESULT (STDMETHODCALLTYPE *GetColor)(
 7327        IVisualProperties *This,
 7328        VPCOLORFLAGS vpcf,
 7329        COLORREF *pcr);
 7330
 7331    HRESULT (STDMETHODCALLTYPE *SetItemHeight)(
 7332        IVisualProperties *This,
 7333        int cyItemInPixels);
 7334
 7335    HRESULT (STDMETHODCALLTYPE *GetItemHeight)(
 7336        IVisualProperties *This,
 7337        int *cyItemInPixels);
 7338
 7339    HRESULT (STDMETHODCALLTYPE *SetFont)(
 7340        IVisualProperties *This,
 7341        const LOGFONTW *plf,
 7342        WINBOOL bRedraw);
 7343
 7344    HRESULT (STDMETHODCALLTYPE *GetFont)(
 7345        IVisualProperties *This,
 7346        LOGFONTW *plf);
 7347
 7348    HRESULT (STDMETHODCALLTYPE *SetTheme)(
 7349        IVisualProperties *This,
 7350        LPCWSTR pszSubAppName,
 7351        LPCWSTR pszSubIdList);
 7352
 7353    END_INTERFACE
 7354} IVisualPropertiesVtbl;
 7355
 7356interface IVisualProperties {
 7357    CONST_VTBL IVisualPropertiesVtbl* lpVtbl;
 7358};
 7359
 7360#ifdef COBJMACROS
 7361#ifndef WIDL_C_INLINE_WRAPPERS
 7362/*** IUnknown methods ***/
 7363#define IVisualProperties_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7364#define IVisualProperties_AddRef(This) (This)->lpVtbl->AddRef(This)
 7365#define IVisualProperties_Release(This) (This)->lpVtbl->Release(This)
 7366/*** IVisualProperties methods ***/
 7367#define IVisualProperties_SetWatermark(This,hbmp,vpwf) (This)->lpVtbl->SetWatermark(This,hbmp,vpwf)
 7368#define IVisualProperties_SetColor(This,vpcf,cr) (This)->lpVtbl->SetColor(This,vpcf,cr)
 7369#define IVisualProperties_GetColor(This,vpcf,pcr) (This)->lpVtbl->GetColor(This,vpcf,pcr)
 7370#define IVisualProperties_SetItemHeight(This,cyItemInPixels) (This)->lpVtbl->SetItemHeight(This,cyItemInPixels)
 7371#define IVisualProperties_GetItemHeight(This,cyItemInPixels) (This)->lpVtbl->GetItemHeight(This,cyItemInPixels)
 7372#define IVisualProperties_SetFont(This,plf,bRedraw) (This)->lpVtbl->SetFont(This,plf,bRedraw)
 7373#define IVisualProperties_GetFont(This,plf) (This)->lpVtbl->GetFont(This,plf)
 7374#define IVisualProperties_SetTheme(This,pszSubAppName,pszSubIdList) (This)->lpVtbl->SetTheme(This,pszSubAppName,pszSubIdList)
 7375#else
 7376/*** IUnknown methods ***/
 7377static inline HRESULT IVisualProperties_QueryInterface(IVisualProperties* This,REFIID riid,void **ppvObject) {
 7378    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7379}
 7380static inline ULONG IVisualProperties_AddRef(IVisualProperties* This) {
 7381    return This->lpVtbl->AddRef(This);
 7382}
 7383static inline ULONG IVisualProperties_Release(IVisualProperties* This) {
 7384    return This->lpVtbl->Release(This);
 7385}
 7386/*** IVisualProperties methods ***/
 7387static inline HRESULT IVisualProperties_SetWatermark(IVisualProperties* This,HBITMAP hbmp,VPWATERMARKFLAGS vpwf) {
 7388    return This->lpVtbl->SetWatermark(This,hbmp,vpwf);
 7389}
 7390static inline HRESULT IVisualProperties_SetColor(IVisualProperties* This,VPCOLORFLAGS vpcf,COLORREF cr) {
 7391    return This->lpVtbl->SetColor(This,vpcf,cr);
 7392}
 7393static inline HRESULT IVisualProperties_GetColor(IVisualProperties* This,VPCOLORFLAGS vpcf,COLORREF *pcr) {
 7394    return This->lpVtbl->GetColor(This,vpcf,pcr);
 7395}
 7396static inline HRESULT IVisualProperties_SetItemHeight(IVisualProperties* This,int cyItemInPixels) {
 7397    return This->lpVtbl->SetItemHeight(This,cyItemInPixels);
 7398}
 7399static inline HRESULT IVisualProperties_GetItemHeight(IVisualProperties* This,int *cyItemInPixels) {
 7400    return This->lpVtbl->GetItemHeight(This,cyItemInPixels);
 7401}
 7402static inline HRESULT IVisualProperties_SetFont(IVisualProperties* This,const LOGFONTW *plf,WINBOOL bRedraw) {
 7403    return This->lpVtbl->SetFont(This,plf,bRedraw);
 7404}
 7405static inline HRESULT IVisualProperties_GetFont(IVisualProperties* This,LOGFONTW *plf) {
 7406    return This->lpVtbl->GetFont(This,plf);
 7407}
 7408static inline HRESULT IVisualProperties_SetTheme(IVisualProperties* This,LPCWSTR pszSubAppName,LPCWSTR pszSubIdList) {
 7409    return This->lpVtbl->SetTheme(This,pszSubAppName,pszSubIdList);
 7410}
 7411#endif
 7412#endif
 7413
 7414#endif
 7415
 7416
 7417#endif  /* __IVisualProperties_INTERFACE_DEFINED__ */
 7418
 7419#endif
 7420
 7421#define CDBOSC_SETFOCUS 0x00000000
 7422#define CDBOSC_KILLFOCUS 0x00000001
 7423#define CDBOSC_SELCHANGE 0x00000002
 7424#define CDBOSC_RENAME 0x00000003
 7425#define CDBOSC_STATECHANGE 0x00000004
 7426
 7427/*****************************************************************************
 7428 * ICommDlgBrowser interface
 7429 */
 7430#ifndef __ICommDlgBrowser_INTERFACE_DEFINED__
 7431#define __ICommDlgBrowser_INTERFACE_DEFINED__
 7432
 7433DEFINE_GUID(IID_ICommDlgBrowser, 0x000214f1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 7434#if defined(__cplusplus) && !defined(CINTERFACE)
 7435MIDL_INTERFACE("000214f1-0000-0000-c000-000000000046")
 7436ICommDlgBrowser : public IUnknown
 7437{
 7438    virtual HRESULT STDMETHODCALLTYPE OnDefaultCommand(
 7439        IShellView *ppshv) = 0;
 7440
 7441    virtual HRESULT STDMETHODCALLTYPE OnStateChange(
 7442        IShellView *ppshv,
 7443        ULONG uChange) = 0;
 7444
 7445    virtual HRESULT STDMETHODCALLTYPE IncludeObject(
 7446        IShellView *ppshv,
 7447        PCUITEMID_CHILD pidl) = 0;
 7448
 7449};
 7450#ifdef __CRT_UUID_DECL
 7451__CRT_UUID_DECL(ICommDlgBrowser, 0x000214f1, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
 7452#endif
 7453#else
 7454typedef struct ICommDlgBrowserVtbl {
 7455    BEGIN_INTERFACE
 7456
 7457    /*** IUnknown methods ***/
 7458    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7459        ICommDlgBrowser *This,
 7460        REFIID riid,
 7461        void **ppvObject);
 7462
 7463    ULONG (STDMETHODCALLTYPE *AddRef)(
 7464        ICommDlgBrowser *This);
 7465
 7466    ULONG (STDMETHODCALLTYPE *Release)(
 7467        ICommDlgBrowser *This);
 7468
 7469    /*** ICommDlgBrowser methods ***/
 7470    HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
 7471        ICommDlgBrowser *This,
 7472        IShellView *ppshv);
 7473
 7474    HRESULT (STDMETHODCALLTYPE *OnStateChange)(
 7475        ICommDlgBrowser *This,
 7476        IShellView *ppshv,
 7477        ULONG uChange);
 7478
 7479    HRESULT (STDMETHODCALLTYPE *IncludeObject)(
 7480        ICommDlgBrowser *This,
 7481        IShellView *ppshv,
 7482        PCUITEMID_CHILD pidl);
 7483
 7484    END_INTERFACE
 7485} ICommDlgBrowserVtbl;
 7486
 7487interface ICommDlgBrowser {
 7488    CONST_VTBL ICommDlgBrowserVtbl* lpVtbl;
 7489};
 7490
 7491#ifdef COBJMACROS
 7492#ifndef WIDL_C_INLINE_WRAPPERS
 7493/*** IUnknown methods ***/
 7494#define ICommDlgBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7495#define ICommDlgBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
 7496#define ICommDlgBrowser_Release(This) (This)->lpVtbl->Release(This)
 7497/*** ICommDlgBrowser methods ***/
 7498#define ICommDlgBrowser_OnDefaultCommand(This,ppshv) (This)->lpVtbl->OnDefaultCommand(This,ppshv)
 7499#define ICommDlgBrowser_OnStateChange(This,ppshv,uChange) (This)->lpVtbl->OnStateChange(This,ppshv,uChange)
 7500#define ICommDlgBrowser_IncludeObject(This,ppshv,pidl) (This)->lpVtbl->IncludeObject(This,ppshv,pidl)
 7501#else
 7502/*** IUnknown methods ***/
 7503static inline HRESULT ICommDlgBrowser_QueryInterface(ICommDlgBrowser* This,REFIID riid,void **ppvObject) {
 7504    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7505}
 7506static inline ULONG ICommDlgBrowser_AddRef(ICommDlgBrowser* This) {
 7507    return This->lpVtbl->AddRef(This);
 7508}
 7509static inline ULONG ICommDlgBrowser_Release(ICommDlgBrowser* This) {
 7510    return This->lpVtbl->Release(This);
 7511}
 7512/*** ICommDlgBrowser methods ***/
 7513static inline HRESULT ICommDlgBrowser_OnDefaultCommand(ICommDlgBrowser* This,IShellView *ppshv) {
 7514    return This->lpVtbl->OnDefaultCommand(This,ppshv);
 7515}
 7516static inline HRESULT ICommDlgBrowser_OnStateChange(ICommDlgBrowser* This,IShellView *ppshv,ULONG uChange) {
 7517    return This->lpVtbl->OnStateChange(This,ppshv,uChange);
 7518}
 7519static inline HRESULT ICommDlgBrowser_IncludeObject(ICommDlgBrowser* This,IShellView *ppshv,PCUITEMID_CHILD pidl) {
 7520    return This->lpVtbl->IncludeObject(This,ppshv,pidl);
 7521}
 7522#endif
 7523#endif
 7524
 7525#endif
 7526
 7527
 7528#endif  /* __ICommDlgBrowser_INTERFACE_DEFINED__ */
 7529
 7530typedef ICommDlgBrowser *LPCOMMDLGBROWSER;
 7531
 7532#define SID_SExplorerBrowserFrame IID_ICommDlgBrowser
 7533
 7534#define CDB2N_CONTEXTMENU_DONE 0x00000001
 7535#define CDB2N_CONTEXTMENU_START 0x00000002
 7536
 7537#define CDB2GVF_SHOWALLFILES 0x1
 7538#if NTDDI_VERSION >= NTDDI_VISTA
 7539#define CDB2GVF_ISFILESAVE 0x2
 7540#define CDB2GVF_ALLOWPREVIEWPANE 0x4
 7541#define CDB2GVF_NOSELECTVERB 0x8
 7542#define CDB2GVF_NOINCLUDEITEM 0x10
 7543#define CDB2GVF_ISFOLDERPICKER 0x20
 7544#define CDB2GVF_ADDSHIELD 0x40
 7545#endif
 7546
 7547/*****************************************************************************
 7548 * ICommDlgBrowser2 interface
 7549 */
 7550#ifndef __ICommDlgBrowser2_INTERFACE_DEFINED__
 7551#define __ICommDlgBrowser2_INTERFACE_DEFINED__
 7552
 7553DEFINE_GUID(IID_ICommDlgBrowser2, 0x10339516, 0x2894, 0x11d2, 0x90,0x39, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e);
 7554#if defined(__cplusplus) && !defined(CINTERFACE)
 7555MIDL_INTERFACE("10339516-2894-11d2-9039-00c04f8eeb3e")
 7556ICommDlgBrowser2 : public ICommDlgBrowser
 7557{
 7558    virtual HRESULT STDMETHODCALLTYPE Notify(
 7559        IShellView *ppshv,
 7560        DWORD dwNotifyType) = 0;
 7561
 7562    virtual HRESULT STDMETHODCALLTYPE GetDefaultMenuText(
 7563        IShellView *ppshv,
 7564        LPWSTR pszText,
 7565        int cchMax) = 0;
 7566
 7567    virtual HRESULT STDMETHODCALLTYPE GetViewFlags(
 7568        DWORD *pdwFlags) = 0;
 7569
 7570};
 7571#ifdef __CRT_UUID_DECL
 7572__CRT_UUID_DECL(ICommDlgBrowser2, 0x10339516, 0x2894, 0x11d2, 0x90,0x39, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e)
 7573#endif
 7574#else
 7575typedef struct ICommDlgBrowser2Vtbl {
 7576    BEGIN_INTERFACE
 7577
 7578    /*** IUnknown methods ***/
 7579    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7580        ICommDlgBrowser2 *This,
 7581        REFIID riid,
 7582        void **ppvObject);
 7583
 7584    ULONG (STDMETHODCALLTYPE *AddRef)(
 7585        ICommDlgBrowser2 *This);
 7586
 7587    ULONG (STDMETHODCALLTYPE *Release)(
 7588        ICommDlgBrowser2 *This);
 7589
 7590    /*** ICommDlgBrowser methods ***/
 7591    HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
 7592        ICommDlgBrowser2 *This,
 7593        IShellView *ppshv);
 7594
 7595    HRESULT (STDMETHODCALLTYPE *OnStateChange)(
 7596        ICommDlgBrowser2 *This,
 7597        IShellView *ppshv,
 7598        ULONG uChange);
 7599
 7600    HRESULT (STDMETHODCALLTYPE *IncludeObject)(
 7601        ICommDlgBrowser2 *This,
 7602        IShellView *ppshv,
 7603        PCUITEMID_CHILD pidl);
 7604
 7605    /*** ICommDlgBrowser2 methods ***/
 7606    HRESULT (STDMETHODCALLTYPE *Notify)(
 7607        ICommDlgBrowser2 *This,
 7608        IShellView *ppshv,
 7609        DWORD dwNotifyType);
 7610
 7611    HRESULT (STDMETHODCALLTYPE *GetDefaultMenuText)(
 7612        ICommDlgBrowser2 *This,
 7613        IShellView *ppshv,
 7614        LPWSTR pszText,
 7615        int cchMax);
 7616
 7617    HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
 7618        ICommDlgBrowser2 *This,
 7619        DWORD *pdwFlags);
 7620
 7621    END_INTERFACE
 7622} ICommDlgBrowser2Vtbl;
 7623
 7624interface ICommDlgBrowser2 {
 7625    CONST_VTBL ICommDlgBrowser2Vtbl* lpVtbl;
 7626};
 7627
 7628#ifdef COBJMACROS
 7629#ifndef WIDL_C_INLINE_WRAPPERS
 7630/*** IUnknown methods ***/
 7631#define ICommDlgBrowser2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7632#define ICommDlgBrowser2_AddRef(This) (This)->lpVtbl->AddRef(This)
 7633#define ICommDlgBrowser2_Release(This) (This)->lpVtbl->Release(This)
 7634/*** ICommDlgBrowser methods ***/
 7635#define ICommDlgBrowser2_OnDefaultCommand(This,ppshv) (This)->lpVtbl->OnDefaultCommand(This,ppshv)
 7636#define ICommDlgBrowser2_OnStateChange(This,ppshv,uChange) (This)->lpVtbl->OnStateChange(This,ppshv,uChange)
 7637#define ICommDlgBrowser2_IncludeObject(This,ppshv,pidl) (This)->lpVtbl->IncludeObject(This,ppshv,pidl)
 7638/*** ICommDlgBrowser2 methods ***/
 7639#define ICommDlgBrowser2_Notify(This,ppshv,dwNotifyType) (This)->lpVtbl->Notify(This,ppshv,dwNotifyType)
 7640#define ICommDlgBrowser2_GetDefaultMenuText(This,ppshv,pszText,cchMax) (This)->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax)
 7641#define ICommDlgBrowser2_GetViewFlags(This,pdwFlags) (This)->lpVtbl->GetViewFlags(This,pdwFlags)
 7642#else
 7643/*** IUnknown methods ***/
 7644static inline HRESULT ICommDlgBrowser2_QueryInterface(ICommDlgBrowser2* This,REFIID riid,void **ppvObject) {
 7645    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7646}
 7647static inline ULONG ICommDlgBrowser2_AddRef(ICommDlgBrowser2* This) {
 7648    return This->lpVtbl->AddRef(This);
 7649}
 7650static inline ULONG ICommDlgBrowser2_Release(ICommDlgBrowser2* This) {
 7651    return This->lpVtbl->Release(This);
 7652}
 7653/*** ICommDlgBrowser methods ***/
 7654static inline HRESULT ICommDlgBrowser2_OnDefaultCommand(ICommDlgBrowser2* This,IShellView *ppshv) {
 7655    return This->lpVtbl->OnDefaultCommand(This,ppshv);
 7656}
 7657static inline HRESULT ICommDlgBrowser2_OnStateChange(ICommDlgBrowser2* This,IShellView *ppshv,ULONG uChange) {
 7658    return This->lpVtbl->OnStateChange(This,ppshv,uChange);
 7659}
 7660static inline HRESULT ICommDlgBrowser2_IncludeObject(ICommDlgBrowser2* This,IShellView *ppshv,PCUITEMID_CHILD pidl) {
 7661    return This->lpVtbl->IncludeObject(This,ppshv,pidl);
 7662}
 7663/*** ICommDlgBrowser2 methods ***/
 7664static inline HRESULT ICommDlgBrowser2_Notify(ICommDlgBrowser2* This,IShellView *ppshv,DWORD dwNotifyType) {
 7665    return This->lpVtbl->Notify(This,ppshv,dwNotifyType);
 7666}
 7667static inline HRESULT ICommDlgBrowser2_GetDefaultMenuText(ICommDlgBrowser2* This,IShellView *ppshv,LPWSTR pszText,int cchMax) {
 7668    return This->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax);
 7669}
 7670static inline HRESULT ICommDlgBrowser2_GetViewFlags(ICommDlgBrowser2* This,DWORD *pdwFlags) {
 7671    return This->lpVtbl->GetViewFlags(This,pdwFlags);
 7672}
 7673#endif
 7674#endif
 7675
 7676#endif
 7677
 7678
 7679#endif  /* __ICommDlgBrowser2_INTERFACE_DEFINED__ */
 7680
 7681typedef ICommDlgBrowser2 *LPCOMMDLGBROWSER2;
 7682
 7683#if _WIN32_IE >= _WIN32_IE_IE70
 7684/*****************************************************************************
 7685 * ICommDlgBrowser3 interface
 7686 */
 7687#ifndef __ICommDlgBrowser3_INTERFACE_DEFINED__
 7688#define __ICommDlgBrowser3_INTERFACE_DEFINED__
 7689
 7690DEFINE_GUID(IID_ICommDlgBrowser3, 0xc8ad25a1, 0x3294, 0x41ee, 0x81,0x65, 0x71,0x17,0x4b,0xd0,0x1c,0x57);
 7691#if defined(__cplusplus) && !defined(CINTERFACE)
 7692MIDL_INTERFACE("c8ad25a1-3294-41ee-8165-71174bd01c57")
 7693ICommDlgBrowser3 : public ICommDlgBrowser2
 7694{
 7695    virtual HRESULT STDMETHODCALLTYPE OnColumnClicked(
 7696        IShellView *ppshv,
 7697        int iColumn) = 0;
 7698
 7699    virtual HRESULT STDMETHODCALLTYPE GetCurrentFilter(
 7700        LPWSTR pszFileSpec,
 7701        int cchFileSpec) = 0;
 7702
 7703    virtual HRESULT STDMETHODCALLTYPE OnPreViewCreated(
 7704        IShellView *ppshv) = 0;
 7705
 7706};
 7707#ifdef __CRT_UUID_DECL
 7708__CRT_UUID_DECL(ICommDlgBrowser3, 0xc8ad25a1, 0x3294, 0x41ee, 0x81,0x65, 0x71,0x17,0x4b,0xd0,0x1c,0x57)
 7709#endif
 7710#else
 7711typedef struct ICommDlgBrowser3Vtbl {
 7712    BEGIN_INTERFACE
 7713
 7714    /*** IUnknown methods ***/
 7715    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7716        ICommDlgBrowser3 *This,
 7717        REFIID riid,
 7718        void **ppvObject);
 7719
 7720    ULONG (STDMETHODCALLTYPE *AddRef)(
 7721        ICommDlgBrowser3 *This);
 7722
 7723    ULONG (STDMETHODCALLTYPE *Release)(
 7724        ICommDlgBrowser3 *This);
 7725
 7726    /*** ICommDlgBrowser methods ***/
 7727    HRESULT (STDMETHODCALLTYPE *OnDefaultCommand)(
 7728        ICommDlgBrowser3 *This,
 7729        IShellView *ppshv);
 7730
 7731    HRESULT (STDMETHODCALLTYPE *OnStateChange)(
 7732        ICommDlgBrowser3 *This,
 7733        IShellView *ppshv,
 7734        ULONG uChange);
 7735
 7736    HRESULT (STDMETHODCALLTYPE *IncludeObject)(
 7737        ICommDlgBrowser3 *This,
 7738        IShellView *ppshv,
 7739        PCUITEMID_CHILD pidl);
 7740
 7741    /*** ICommDlgBrowser2 methods ***/
 7742    HRESULT (STDMETHODCALLTYPE *Notify)(
 7743        ICommDlgBrowser3 *This,
 7744        IShellView *ppshv,
 7745        DWORD dwNotifyType);
 7746
 7747    HRESULT (STDMETHODCALLTYPE *GetDefaultMenuText)(
 7748        ICommDlgBrowser3 *This,
 7749        IShellView *ppshv,
 7750        LPWSTR pszText,
 7751        int cchMax);
 7752
 7753    HRESULT (STDMETHODCALLTYPE *GetViewFlags)(
 7754        ICommDlgBrowser3 *This,
 7755        DWORD *pdwFlags);
 7756
 7757    /*** ICommDlgBrowser3 methods ***/
 7758    HRESULT (STDMETHODCALLTYPE *OnColumnClicked)(
 7759        ICommDlgBrowser3 *This,
 7760        IShellView *ppshv,
 7761        int iColumn);
 7762
 7763    HRESULT (STDMETHODCALLTYPE *GetCurrentFilter)(
 7764        ICommDlgBrowser3 *This,
 7765        LPWSTR pszFileSpec,
 7766        int cchFileSpec);
 7767
 7768    HRESULT (STDMETHODCALLTYPE *OnPreViewCreated)(
 7769        ICommDlgBrowser3 *This,
 7770        IShellView *ppshv);
 7771
 7772    END_INTERFACE
 7773} ICommDlgBrowser3Vtbl;
 7774
 7775interface ICommDlgBrowser3 {
 7776    CONST_VTBL ICommDlgBrowser3Vtbl* lpVtbl;
 7777};
 7778
 7779#ifdef COBJMACROS
 7780#ifndef WIDL_C_INLINE_WRAPPERS
 7781/*** IUnknown methods ***/
 7782#define ICommDlgBrowser3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7783#define ICommDlgBrowser3_AddRef(This) (This)->lpVtbl->AddRef(This)
 7784#define ICommDlgBrowser3_Release(This) (This)->lpVtbl->Release(This)
 7785/*** ICommDlgBrowser methods ***/
 7786#define ICommDlgBrowser3_OnDefaultCommand(This,ppshv) (This)->lpVtbl->OnDefaultCommand(This,ppshv)
 7787#define ICommDlgBrowser3_OnStateChange(This,ppshv,uChange) (This)->lpVtbl->OnStateChange(This,ppshv,uChange)
 7788#define ICommDlgBrowser3_IncludeObject(This,ppshv,pidl) (This)->lpVtbl->IncludeObject(This,ppshv,pidl)
 7789/*** ICommDlgBrowser2 methods ***/
 7790#define ICommDlgBrowser3_Notify(This,ppshv,dwNotifyType) (This)->lpVtbl->Notify(This,ppshv,dwNotifyType)
 7791#define ICommDlgBrowser3_GetDefaultMenuText(This,ppshv,pszText,cchMax) (This)->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax)
 7792#define ICommDlgBrowser3_GetViewFlags(This,pdwFlags) (This)->lpVtbl->GetViewFlags(This,pdwFlags)
 7793/*** ICommDlgBrowser3 methods ***/
 7794#define ICommDlgBrowser3_OnColumnClicked(This,ppshv,iColumn) (This)->lpVtbl->OnColumnClicked(This,ppshv,iColumn)
 7795#define ICommDlgBrowser3_GetCurrentFilter(This,pszFileSpec,cchFileSpec) (This)->lpVtbl->GetCurrentFilter(This,pszFileSpec,cchFileSpec)
 7796#define ICommDlgBrowser3_OnPreViewCreated(This,ppshv) (This)->lpVtbl->OnPreViewCreated(This,ppshv)
 7797#else
 7798/*** IUnknown methods ***/
 7799static inline HRESULT ICommDlgBrowser3_QueryInterface(ICommDlgBrowser3* This,REFIID riid,void **ppvObject) {
 7800    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7801}
 7802static inline ULONG ICommDlgBrowser3_AddRef(ICommDlgBrowser3* This) {
 7803    return This->lpVtbl->AddRef(This);
 7804}
 7805static inline ULONG ICommDlgBrowser3_Release(ICommDlgBrowser3* This) {
 7806    return This->lpVtbl->Release(This);
 7807}
 7808/*** ICommDlgBrowser methods ***/
 7809static inline HRESULT ICommDlgBrowser3_OnDefaultCommand(ICommDlgBrowser3* This,IShellView *ppshv) {
 7810    return This->lpVtbl->OnDefaultCommand(This,ppshv);
 7811}
 7812static inline HRESULT ICommDlgBrowser3_OnStateChange(ICommDlgBrowser3* This,IShellView *ppshv,ULONG uChange) {
 7813    return This->lpVtbl->OnStateChange(This,ppshv,uChange);
 7814}
 7815static inline HRESULT ICommDlgBrowser3_IncludeObject(ICommDlgBrowser3* This,IShellView *ppshv,PCUITEMID_CHILD pidl) {
 7816    return This->lpVtbl->IncludeObject(This,ppshv,pidl);
 7817}
 7818/*** ICommDlgBrowser2 methods ***/
 7819static inline HRESULT ICommDlgBrowser3_Notify(ICommDlgBrowser3* This,IShellView *ppshv,DWORD dwNotifyType) {
 7820    return This->lpVtbl->Notify(This,ppshv,dwNotifyType);
 7821}
 7822static inline HRESULT ICommDlgBrowser3_GetDefaultMenuText(ICommDlgBrowser3* This,IShellView *ppshv,LPWSTR pszText,int cchMax) {
 7823    return This->lpVtbl->GetDefaultMenuText(This,ppshv,pszText,cchMax);
 7824}
 7825static inline HRESULT ICommDlgBrowser3_GetViewFlags(ICommDlgBrowser3* This,DWORD *pdwFlags) {
 7826    return This->lpVtbl->GetViewFlags(This,pdwFlags);
 7827}
 7828/*** ICommDlgBrowser3 methods ***/
 7829static inline HRESULT ICommDlgBrowser3_OnColumnClicked(ICommDlgBrowser3* This,IShellView *ppshv,int iColumn) {
 7830    return This->lpVtbl->OnColumnClicked(This,ppshv,iColumn);
 7831}
 7832static inline HRESULT ICommDlgBrowser3_GetCurrentFilter(ICommDlgBrowser3* This,LPWSTR pszFileSpec,int cchFileSpec) {
 7833    return This->lpVtbl->GetCurrentFilter(This,pszFileSpec,cchFileSpec);
 7834}
 7835static inline HRESULT ICommDlgBrowser3_OnPreViewCreated(ICommDlgBrowser3* This,IShellView *ppshv) {
 7836    return This->lpVtbl->OnPreViewCreated(This,ppshv);
 7837}
 7838#endif
 7839#endif
 7840
 7841#endif
 7842
 7843
 7844#endif  /* __ICommDlgBrowser3_INTERFACE_DEFINED__ */
 7845
 7846
 7847typedef enum CM_MASK {
 7848    CM_MASK_WIDTH = 0x1,
 7849    CM_MASK_DEFAULTWIDTH = 0x2,
 7850    CM_MASK_IDEALWIDTH = 0x4,
 7851    CM_MASK_NAME = 0x8,
 7852    CM_MASK_STATE = 0x10
 7853} CM_MASK;
 7854
 7855DEFINE_ENUM_FLAG_OPERATORS(CM_MASK)
 7856
 7857typedef enum CM_STATE {
 7858    CM_STATE_NONE = 0x0,
 7859    CM_STATE_VISIBLE = 0x1,
 7860    CM_STATE_FIXEDWIDTH = 0x2,
 7861    CM_STATE_NOSORTBYFOLDERNESS = 0x4,
 7862    CM_STATE_ALWAYSVISIBLE = 0x8
 7863} CM_STATE;
 7864
 7865DEFINE_ENUM_FLAG_OPERATORS(CM_STATE)
 7866
 7867typedef enum CM_ENUM_FLAGS {
 7868    CM_ENUM_ALL = 0x1,
 7869    CM_ENUM_VISIBLE = 0x2
 7870} CM_ENUM_FLAGS;
 7871
 7872DEFINE_ENUM_FLAG_OPERATORS(CM_ENUM_FLAGS)
 7873
 7874typedef enum CM_SET_WIDTH_VALUE {
 7875    CM_WIDTH_USEDEFAULT = -1,
 7876    CM_WIDTH_AUTOSIZE = -2
 7877} CM_SET_WIDTH_VALUE;
 7878
 7879typedef struct CM_COLUMNINFO {
 7880    DWORD cbSize;
 7881    DWORD dwMask;
 7882    DWORD dwState;
 7883    UINT uWidth;
 7884    UINT uDefaultWidth;
 7885    UINT uIdealWidth;
 7886    WCHAR wszName[80];
 7887} CM_COLUMNINFO;
 7888
 7889/*****************************************************************************
 7890 * IColumnManager interface
 7891 */
 7892#ifndef __IColumnManager_INTERFACE_DEFINED__
 7893#define __IColumnManager_INTERFACE_DEFINED__
 7894
 7895DEFINE_GUID(IID_IColumnManager, 0xd8ec27bb, 0x3f3b, 0x4042, 0xb1,0x0a, 0x4a,0xcf,0xd9,0x24,0xd4,0x53);
 7896#if defined(__cplusplus) && !defined(CINTERFACE)
 7897MIDL_INTERFACE("d8ec27bb-3f3b-4042-b10a-4acfd924d453")
 7898IColumnManager : public IUnknown
 7899{
 7900    virtual HRESULT STDMETHODCALLTYPE SetColumnInfo(
 7901        REFPROPERTYKEY propkey,
 7902        const CM_COLUMNINFO *pcmci) = 0;
 7903
 7904    virtual HRESULT STDMETHODCALLTYPE GetColumnInfo(
 7905        REFPROPERTYKEY propkey,
 7906        CM_COLUMNINFO *pcmci) = 0;
 7907
 7908    virtual HRESULT STDMETHODCALLTYPE GetColumnCount(
 7909        CM_ENUM_FLAGS dwFlags,
 7910        UINT *puCount) = 0;
 7911
 7912    virtual HRESULT STDMETHODCALLTYPE GetColumns(
 7913        CM_ENUM_FLAGS dwFlags,
 7914        PROPERTYKEY *rgkeyOrder,
 7915        UINT cColumns) = 0;
 7916
 7917    virtual HRESULT STDMETHODCALLTYPE SetColumns(
 7918        const PROPERTYKEY *rgkeyOrder,
 7919        UINT cVisible) = 0;
 7920
 7921};
 7922#ifdef __CRT_UUID_DECL
 7923__CRT_UUID_DECL(IColumnManager, 0xd8ec27bb, 0x3f3b, 0x4042, 0xb1,0x0a, 0x4a,0xcf,0xd9,0x24,0xd4,0x53)
 7924#endif
 7925#else
 7926typedef struct IColumnManagerVtbl {
 7927    BEGIN_INTERFACE
 7928
 7929    /*** IUnknown methods ***/
 7930    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 7931        IColumnManager *This,
 7932        REFIID riid,
 7933        void **ppvObject);
 7934
 7935    ULONG (STDMETHODCALLTYPE *AddRef)(
 7936        IColumnManager *This);
 7937
 7938    ULONG (STDMETHODCALLTYPE *Release)(
 7939        IColumnManager *This);
 7940
 7941    /*** IColumnManager methods ***/
 7942    HRESULT (STDMETHODCALLTYPE *SetColumnInfo)(
 7943        IColumnManager *This,
 7944        REFPROPERTYKEY propkey,
 7945        const CM_COLUMNINFO *pcmci);
 7946
 7947    HRESULT (STDMETHODCALLTYPE *GetColumnInfo)(
 7948        IColumnManager *This,
 7949        REFPROPERTYKEY propkey,
 7950        CM_COLUMNINFO *pcmci);
 7951
 7952    HRESULT (STDMETHODCALLTYPE *GetColumnCount)(
 7953        IColumnManager *This,
 7954        CM_ENUM_FLAGS dwFlags,
 7955        UINT *puCount);
 7956
 7957    HRESULT (STDMETHODCALLTYPE *GetColumns)(
 7958        IColumnManager *This,
 7959        CM_ENUM_FLAGS dwFlags,
 7960        PROPERTYKEY *rgkeyOrder,
 7961        UINT cColumns);
 7962
 7963    HRESULT (STDMETHODCALLTYPE *SetColumns)(
 7964        IColumnManager *This,
 7965        const PROPERTYKEY *rgkeyOrder,
 7966        UINT cVisible);
 7967
 7968    END_INTERFACE
 7969} IColumnManagerVtbl;
 7970
 7971interface IColumnManager {
 7972    CONST_VTBL IColumnManagerVtbl* lpVtbl;
 7973};
 7974
 7975#ifdef COBJMACROS
 7976#ifndef WIDL_C_INLINE_WRAPPERS
 7977/*** IUnknown methods ***/
 7978#define IColumnManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 7979#define IColumnManager_AddRef(This) (This)->lpVtbl->AddRef(This)
 7980#define IColumnManager_Release(This) (This)->lpVtbl->Release(This)
 7981/*** IColumnManager methods ***/
 7982#define IColumnManager_SetColumnInfo(This,propkey,pcmci) (This)->lpVtbl->SetColumnInfo(This,propkey,pcmci)
 7983#define IColumnManager_GetColumnInfo(This,propkey,pcmci) (This)->lpVtbl->GetColumnInfo(This,propkey,pcmci)
 7984#define IColumnManager_GetColumnCount(This,dwFlags,puCount) (This)->lpVtbl->GetColumnCount(This,dwFlags,puCount)
 7985#define IColumnManager_GetColumns(This,dwFlags,rgkeyOrder,cColumns) (This)->lpVtbl->GetColumns(This,dwFlags,rgkeyOrder,cColumns)
 7986#define IColumnManager_SetColumns(This,rgkeyOrder,cVisible) (This)->lpVtbl->SetColumns(This,rgkeyOrder,cVisible)
 7987#else
 7988/*** IUnknown methods ***/
 7989static inline HRESULT IColumnManager_QueryInterface(IColumnManager* This,REFIID riid,void **ppvObject) {
 7990    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 7991}
 7992static inline ULONG IColumnManager_AddRef(IColumnManager* This) {
 7993    return This->lpVtbl->AddRef(This);
 7994}
 7995static inline ULONG IColumnManager_Release(IColumnManager* This) {
 7996    return This->lpVtbl->Release(This);
 7997}
 7998/*** IColumnManager methods ***/
 7999static inline HRESULT IColumnManager_SetColumnInfo(IColumnManager* This,REFPROPERTYKEY propkey,const CM_COLUMNINFO *pcmci) {
 8000    return This->lpVtbl->SetColumnInfo(This,propkey,pcmci);
 8001}
 8002static inline HRESULT IColumnManager_GetColumnInfo(IColumnManager* This,REFPROPERTYKEY propkey,CM_COLUMNINFO *pcmci) {
 8003    return This->lpVtbl->GetColumnInfo(This,propkey,pcmci);
 8004}
 8005static inline HRESULT IColumnManager_GetColumnCount(IColumnManager* This,CM_ENUM_FLAGS dwFlags,UINT *puCount) {
 8006    return This->lpVtbl->GetColumnCount(This,dwFlags,puCount);
 8007}
 8008static inline HRESULT IColumnManager_GetColumns(IColumnManager* This,CM_ENUM_FLAGS dwFlags,PROPERTYKEY *rgkeyOrder,UINT cColumns) {
 8009    return This->lpVtbl->GetColumns(This,dwFlags,rgkeyOrder,cColumns);
 8010}
 8011static inline HRESULT IColumnManager_SetColumns(IColumnManager* This,const PROPERTYKEY *rgkeyOrder,UINT cVisible) {
 8012    return This->lpVtbl->SetColumns(This,rgkeyOrder,cVisible);
 8013}
 8014#endif
 8015#endif
 8016
 8017#endif
 8018
 8019
 8020#endif  /* __IColumnManager_INTERFACE_DEFINED__ */
 8021
 8022#endif
 8023
 8024/*****************************************************************************
 8025 * IFolderFilterSite interface
 8026 */
 8027#ifndef __IFolderFilterSite_INTERFACE_DEFINED__
 8028#define __IFolderFilterSite_INTERFACE_DEFINED__
 8029
 8030DEFINE_GUID(IID_IFolderFilterSite, 0xc0a651f5, 0xb48b, 0x11d2, 0xb5,0xed, 0x00,0x60,0x97,0xc6,0x86,0xf6);
 8031#if defined(__cplusplus) && !defined(CINTERFACE)
 8032MIDL_INTERFACE("c0a651f5-b48b-11d2-b5ed-006097c686f6")
 8033IFolderFilterSite : public IUnknown
 8034{
 8035    virtual HRESULT STDMETHODCALLTYPE SetFilter(
 8036        IUnknown *punk) = 0;
 8037
 8038};
 8039#ifdef __CRT_UUID_DECL
 8040__CRT_UUID_DECL(IFolderFilterSite, 0xc0a651f5, 0xb48b, 0x11d2, 0xb5,0xed, 0x00,0x60,0x97,0xc6,0x86,0xf6)
 8041#endif
 8042#else
 8043typedef struct IFolderFilterSiteVtbl {
 8044    BEGIN_INTERFACE
 8045
 8046    /*** IUnknown methods ***/
 8047    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8048        IFolderFilterSite *This,
 8049        REFIID riid,
 8050        void **ppvObject);
 8051
 8052    ULONG (STDMETHODCALLTYPE *AddRef)(
 8053        IFolderFilterSite *This);
 8054
 8055    ULONG (STDMETHODCALLTYPE *Release)(
 8056        IFolderFilterSite *This);
 8057
 8058    /*** IFolderFilterSite methods ***/
 8059    HRESULT (STDMETHODCALLTYPE *SetFilter)(
 8060        IFolderFilterSite *This,
 8061        IUnknown *punk);
 8062
 8063    END_INTERFACE
 8064} IFolderFilterSiteVtbl;
 8065
 8066interface IFolderFilterSite {
 8067    CONST_VTBL IFolderFilterSiteVtbl* lpVtbl;
 8068};
 8069
 8070#ifdef COBJMACROS
 8071#ifndef WIDL_C_INLINE_WRAPPERS
 8072/*** IUnknown methods ***/
 8073#define IFolderFilterSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8074#define IFolderFilterSite_AddRef(This) (This)->lpVtbl->AddRef(This)
 8075#define IFolderFilterSite_Release(This) (This)->lpVtbl->Release(This)
 8076/*** IFolderFilterSite methods ***/
 8077#define IFolderFilterSite_SetFilter(This,punk) (This)->lpVtbl->SetFilter(This,punk)
 8078#else
 8079/*** IUnknown methods ***/
 8080static inline HRESULT IFolderFilterSite_QueryInterface(IFolderFilterSite* This,REFIID riid,void **ppvObject) {
 8081    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8082}
 8083static inline ULONG IFolderFilterSite_AddRef(IFolderFilterSite* This) {
 8084    return This->lpVtbl->AddRef(This);
 8085}
 8086static inline ULONG IFolderFilterSite_Release(IFolderFilterSite* This) {
 8087    return This->lpVtbl->Release(This);
 8088}
 8089/*** IFolderFilterSite methods ***/
 8090static inline HRESULT IFolderFilterSite_SetFilter(IFolderFilterSite* This,IUnknown *punk) {
 8091    return This->lpVtbl->SetFilter(This,punk);
 8092}
 8093#endif
 8094#endif
 8095
 8096#endif
 8097
 8098
 8099#endif  /* __IFolderFilterSite_INTERFACE_DEFINED__ */
 8100
 8101
 8102/*****************************************************************************
 8103 * IFolderFilter interface
 8104 */
 8105#ifndef __IFolderFilter_INTERFACE_DEFINED__
 8106#define __IFolderFilter_INTERFACE_DEFINED__
 8107
 8108DEFINE_GUID(IID_IFolderFilter, 0x9cc22886, 0xdc8e, 0x11d2, 0xb1,0xd0, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e);
 8109#if defined(__cplusplus) && !defined(CINTERFACE)
 8110MIDL_INTERFACE("9cc22886-dc8e-11d2-b1d0-00c04f8eeb3e")
 8111IFolderFilter : public IUnknown
 8112{
 8113    virtual HRESULT STDMETHODCALLTYPE ShouldShow(
 8114        IShellFolder *psf,
 8115        PCIDLIST_ABSOLUTE pidlFolder,
 8116        PCUITEMID_CHILD pidlItem) = 0;
 8117
 8118    virtual HRESULT STDMETHODCALLTYPE GetEnumFlags(
 8119        IShellFolder *psf,
 8120        PCIDLIST_ABSOLUTE pidlFolder,
 8121        HWND *phwnd,
 8122        DWORD *pgrfFlags) = 0;
 8123
 8124};
 8125#ifdef __CRT_UUID_DECL
 8126__CRT_UUID_DECL(IFolderFilter, 0x9cc22886, 0xdc8e, 0x11d2, 0xb1,0xd0, 0x00,0xc0,0x4f,0x8e,0xeb,0x3e)
 8127#endif
 8128#else
 8129typedef struct IFolderFilterVtbl {
 8130    BEGIN_INTERFACE
 8131
 8132    /*** IUnknown methods ***/
 8133    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8134        IFolderFilter *This,
 8135        REFIID riid,
 8136        void **ppvObject);
 8137
 8138    ULONG (STDMETHODCALLTYPE *AddRef)(
 8139        IFolderFilter *This);
 8140
 8141    ULONG (STDMETHODCALLTYPE *Release)(
 8142        IFolderFilter *This);
 8143
 8144    /*** IFolderFilter methods ***/
 8145    HRESULT (STDMETHODCALLTYPE *ShouldShow)(
 8146        IFolderFilter *This,
 8147        IShellFolder *psf,
 8148        PCIDLIST_ABSOLUTE pidlFolder,
 8149        PCUITEMID_CHILD pidlItem);
 8150
 8151    HRESULT (STDMETHODCALLTYPE *GetEnumFlags)(
 8152        IFolderFilter *This,
 8153        IShellFolder *psf,
 8154        PCIDLIST_ABSOLUTE pidlFolder,
 8155        HWND *phwnd,
 8156        DWORD *pgrfFlags);
 8157
 8158    END_INTERFACE
 8159} IFolderFilterVtbl;
 8160
 8161interface IFolderFilter {
 8162    CONST_VTBL IFolderFilterVtbl* lpVtbl;
 8163};
 8164
 8165#ifdef COBJMACROS
 8166#ifndef WIDL_C_INLINE_WRAPPERS
 8167/*** IUnknown methods ***/
 8168#define IFolderFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8169#define IFolderFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
 8170#define IFolderFilter_Release(This) (This)->lpVtbl->Release(This)
 8171/*** IFolderFilter methods ***/
 8172#define IFolderFilter_ShouldShow(This,psf,pidlFolder,pidlItem) (This)->lpVtbl->ShouldShow(This,psf,pidlFolder,pidlItem)
 8173#define IFolderFilter_GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags) (This)->lpVtbl->GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags)
 8174#else
 8175/*** IUnknown methods ***/
 8176static inline HRESULT IFolderFilter_QueryInterface(IFolderFilter* This,REFIID riid,void **ppvObject) {
 8177    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8178}
 8179static inline ULONG IFolderFilter_AddRef(IFolderFilter* This) {
 8180    return This->lpVtbl->AddRef(This);
 8181}
 8182static inline ULONG IFolderFilter_Release(IFolderFilter* This) {
 8183    return This->lpVtbl->Release(This);
 8184}
 8185/*** IFolderFilter methods ***/
 8186static inline HRESULT IFolderFilter_ShouldShow(IFolderFilter* This,IShellFolder *psf,PCIDLIST_ABSOLUTE pidlFolder,PCUITEMID_CHILD pidlItem) {
 8187    return This->lpVtbl->ShouldShow(This,psf,pidlFolder,pidlItem);
 8188}
 8189static inline HRESULT IFolderFilter_GetEnumFlags(IFolderFilter* This,IShellFolder *psf,PCIDLIST_ABSOLUTE pidlFolder,HWND *phwnd,DWORD *pgrfFlags) {
 8190    return This->lpVtbl->GetEnumFlags(This,psf,pidlFolder,phwnd,pgrfFlags);
 8191}
 8192#endif
 8193#endif
 8194
 8195#endif
 8196
 8197
 8198#endif  /* __IFolderFilter_INTERFACE_DEFINED__ */
 8199
 8200
 8201/*****************************************************************************
 8202 * IInputObjectSite interface
 8203 */
 8204#ifndef __IInputObjectSite_INTERFACE_DEFINED__
 8205#define __IInputObjectSite_INTERFACE_DEFINED__
 8206
 8207DEFINE_GUID(IID_IInputObjectSite, 0xf1db8392, 0x7331, 0x11d0, 0x8c,0x99, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8);
 8208#if defined(__cplusplus) && !defined(CINTERFACE)
 8209MIDL_INTERFACE("f1db8392-7331-11d0-8c99-00a0c92dbfe8")
 8210IInputObjectSite : public IUnknown
 8211{
 8212    virtual HRESULT STDMETHODCALLTYPE OnFocusChangeIS(
 8213        IUnknown *punkObj,
 8214        WINBOOL fSetFocus) = 0;
 8215
 8216};
 8217#ifdef __CRT_UUID_DECL
 8218__CRT_UUID_DECL(IInputObjectSite, 0xf1db8392, 0x7331, 0x11d0, 0x8c,0x99, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8)
 8219#endif
 8220#else
 8221typedef struct IInputObjectSiteVtbl {
 8222    BEGIN_INTERFACE
 8223
 8224    /*** IUnknown methods ***/
 8225    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8226        IInputObjectSite *This,
 8227        REFIID riid,
 8228        void **ppvObject);
 8229
 8230    ULONG (STDMETHODCALLTYPE *AddRef)(
 8231        IInputObjectSite *This);
 8232
 8233    ULONG (STDMETHODCALLTYPE *Release)(
 8234        IInputObjectSite *This);
 8235
 8236    /*** IInputObjectSite methods ***/
 8237    HRESULT (STDMETHODCALLTYPE *OnFocusChangeIS)(
 8238        IInputObjectSite *This,
 8239        IUnknown *punkObj,
 8240        WINBOOL fSetFocus);
 8241
 8242    END_INTERFACE
 8243} IInputObjectSiteVtbl;
 8244
 8245interface IInputObjectSite {
 8246    CONST_VTBL IInputObjectSiteVtbl* lpVtbl;
 8247};
 8248
 8249#ifdef COBJMACROS
 8250#ifndef WIDL_C_INLINE_WRAPPERS
 8251/*** IUnknown methods ***/
 8252#define IInputObjectSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8253#define IInputObjectSite_AddRef(This) (This)->lpVtbl->AddRef(This)
 8254#define IInputObjectSite_Release(This) (This)->lpVtbl->Release(This)
 8255/*** IInputObjectSite methods ***/
 8256#define IInputObjectSite_OnFocusChangeIS(This,punkObj,fSetFocus) (This)->lpVtbl->OnFocusChangeIS(This,punkObj,fSetFocus)
 8257#else
 8258/*** IUnknown methods ***/
 8259static inline HRESULT IInputObjectSite_QueryInterface(IInputObjectSite* This,REFIID riid,void **ppvObject) {
 8260    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8261}
 8262static inline ULONG IInputObjectSite_AddRef(IInputObjectSite* This) {
 8263    return This->lpVtbl->AddRef(This);
 8264}
 8265static inline ULONG IInputObjectSite_Release(IInputObjectSite* This) {
 8266    return This->lpVtbl->Release(This);
 8267}
 8268/*** IInputObjectSite methods ***/
 8269static inline HRESULT IInputObjectSite_OnFocusChangeIS(IInputObjectSite* This,IUnknown *punkObj,WINBOOL fSetFocus) {
 8270    return This->lpVtbl->OnFocusChangeIS(This,punkObj,fSetFocus);
 8271}
 8272#endif
 8273#endif
 8274
 8275#endif
 8276
 8277
 8278#endif  /* __IInputObjectSite_INTERFACE_DEFINED__ */
 8279
 8280
 8281/*****************************************************************************
 8282 * IInputObject interface
 8283 */
 8284#ifndef __IInputObject_INTERFACE_DEFINED__
 8285#define __IInputObject_INTERFACE_DEFINED__
 8286
 8287DEFINE_GUID(IID_IInputObject, 0x68284faa, 0x6a48, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4);
 8288#if defined(__cplusplus) && !defined(CINTERFACE)
 8289MIDL_INTERFACE("68284faa-6a48-11d0-8c78-00c04fd918b4")
 8290IInputObject : public IUnknown
 8291{
 8292    virtual HRESULT STDMETHODCALLTYPE UIActivateIO(
 8293        WINBOOL fActivate,
 8294        MSG *pMsg) = 0;
 8295
 8296    virtual HRESULT STDMETHODCALLTYPE HasFocusIO(
 8297        ) = 0;
 8298
 8299    virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorIO(
 8300        MSG *pMsg) = 0;
 8301
 8302};
 8303#ifdef __CRT_UUID_DECL
 8304__CRT_UUID_DECL(IInputObject, 0x68284faa, 0x6a48, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4)
 8305#endif
 8306#else
 8307typedef struct IInputObjectVtbl {
 8308    BEGIN_INTERFACE
 8309
 8310    /*** IUnknown methods ***/
 8311    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8312        IInputObject *This,
 8313        REFIID riid,
 8314        void **ppvObject);
 8315
 8316    ULONG (STDMETHODCALLTYPE *AddRef)(
 8317        IInputObject *This);
 8318
 8319    ULONG (STDMETHODCALLTYPE *Release)(
 8320        IInputObject *This);
 8321
 8322    /*** IInputObject methods ***/
 8323    HRESULT (STDMETHODCALLTYPE *UIActivateIO)(
 8324        IInputObject *This,
 8325        WINBOOL fActivate,
 8326        MSG *pMsg);
 8327
 8328    HRESULT (STDMETHODCALLTYPE *HasFocusIO)(
 8329        IInputObject *This);
 8330
 8331    HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorIO)(
 8332        IInputObject *This,
 8333        MSG *pMsg);
 8334
 8335    END_INTERFACE
 8336} IInputObjectVtbl;
 8337
 8338interface IInputObject {
 8339    CONST_VTBL IInputObjectVtbl* lpVtbl;
 8340};
 8341
 8342#ifdef COBJMACROS
 8343#ifndef WIDL_C_INLINE_WRAPPERS
 8344/*** IUnknown methods ***/
 8345#define IInputObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8346#define IInputObject_AddRef(This) (This)->lpVtbl->AddRef(This)
 8347#define IInputObject_Release(This) (This)->lpVtbl->Release(This)
 8348/*** IInputObject methods ***/
 8349#define IInputObject_UIActivateIO(This,fActivate,pMsg) (This)->lpVtbl->UIActivateIO(This,fActivate,pMsg)
 8350#define IInputObject_HasFocusIO(This) (This)->lpVtbl->HasFocusIO(This)
 8351#define IInputObject_TranslateAcceleratorIO(This,pMsg) (This)->lpVtbl->TranslateAcceleratorIO(This,pMsg)
 8352#else
 8353/*** IUnknown methods ***/
 8354static inline HRESULT IInputObject_QueryInterface(IInputObject* This,REFIID riid,void **ppvObject) {
 8355    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8356}
 8357static inline ULONG IInputObject_AddRef(IInputObject* This) {
 8358    return This->lpVtbl->AddRef(This);
 8359}
 8360static inline ULONG IInputObject_Release(IInputObject* This) {
 8361    return This->lpVtbl->Release(This);
 8362}
 8363/*** IInputObject methods ***/
 8364static inline HRESULT IInputObject_UIActivateIO(IInputObject* This,WINBOOL fActivate,MSG *pMsg) {
 8365    return This->lpVtbl->UIActivateIO(This,fActivate,pMsg);
 8366}
 8367static inline HRESULT IInputObject_HasFocusIO(IInputObject* This) {
 8368    return This->lpVtbl->HasFocusIO(This);
 8369}
 8370static inline HRESULT IInputObject_TranslateAcceleratorIO(IInputObject* This,MSG *pMsg) {
 8371    return This->lpVtbl->TranslateAcceleratorIO(This,pMsg);
 8372}
 8373#endif
 8374#endif
 8375
 8376#endif
 8377
 8378
 8379#endif  /* __IInputObject_INTERFACE_DEFINED__ */
 8380
 8381
 8382/*****************************************************************************
 8383 * IInputObject2 interface
 8384 */
 8385#ifndef __IInputObject2_INTERFACE_DEFINED__
 8386#define __IInputObject2_INTERFACE_DEFINED__
 8387
 8388DEFINE_GUID(IID_IInputObject2, 0x6915c085, 0x510b, 0x44cd, 0x94,0xaf, 0x28,0xdf,0xa5,0x6c,0xf9,0x2b);
 8389#if defined(__cplusplus) && !defined(CINTERFACE)
 8390MIDL_INTERFACE("6915c085-510b-44cd-94af-28dfa56cf92b")
 8391IInputObject2 : public IInputObject
 8392{
 8393    virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorGlobal(
 8394        MSG *pMsg) = 0;
 8395
 8396};
 8397#ifdef __CRT_UUID_DECL
 8398__CRT_UUID_DECL(IInputObject2, 0x6915c085, 0x510b, 0x44cd, 0x94,0xaf, 0x28,0xdf,0xa5,0x6c,0xf9,0x2b)
 8399#endif
 8400#else
 8401typedef struct IInputObject2Vtbl {
 8402    BEGIN_INTERFACE
 8403
 8404    /*** IUnknown methods ***/
 8405    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8406        IInputObject2 *This,
 8407        REFIID riid,
 8408        void **ppvObject);
 8409
 8410    ULONG (STDMETHODCALLTYPE *AddRef)(
 8411        IInputObject2 *This);
 8412
 8413    ULONG (STDMETHODCALLTYPE *Release)(
 8414        IInputObject2 *This);
 8415
 8416    /*** IInputObject methods ***/
 8417    HRESULT (STDMETHODCALLTYPE *UIActivateIO)(
 8418        IInputObject2 *This,
 8419        WINBOOL fActivate,
 8420        MSG *pMsg);
 8421
 8422    HRESULT (STDMETHODCALLTYPE *HasFocusIO)(
 8423        IInputObject2 *This);
 8424
 8425    HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorIO)(
 8426        IInputObject2 *This,
 8427        MSG *pMsg);
 8428
 8429    /*** IInputObject2 methods ***/
 8430    HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorGlobal)(
 8431        IInputObject2 *This,
 8432        MSG *pMsg);
 8433
 8434    END_INTERFACE
 8435} IInputObject2Vtbl;
 8436
 8437interface IInputObject2 {
 8438    CONST_VTBL IInputObject2Vtbl* lpVtbl;
 8439};
 8440
 8441#ifdef COBJMACROS
 8442#ifndef WIDL_C_INLINE_WRAPPERS
 8443/*** IUnknown methods ***/
 8444#define IInputObject2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8445#define IInputObject2_AddRef(This) (This)->lpVtbl->AddRef(This)
 8446#define IInputObject2_Release(This) (This)->lpVtbl->Release(This)
 8447/*** IInputObject methods ***/
 8448#define IInputObject2_UIActivateIO(This,fActivate,pMsg) (This)->lpVtbl->UIActivateIO(This,fActivate,pMsg)
 8449#define IInputObject2_HasFocusIO(This) (This)->lpVtbl->HasFocusIO(This)
 8450#define IInputObject2_TranslateAcceleratorIO(This,pMsg) (This)->lpVtbl->TranslateAcceleratorIO(This,pMsg)
 8451/*** IInputObject2 methods ***/
 8452#define IInputObject2_TranslateAcceleratorGlobal(This,pMsg) (This)->lpVtbl->TranslateAcceleratorGlobal(This,pMsg)
 8453#else
 8454/*** IUnknown methods ***/
 8455static inline HRESULT IInputObject2_QueryInterface(IInputObject2* This,REFIID riid,void **ppvObject) {
 8456    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8457}
 8458static inline ULONG IInputObject2_AddRef(IInputObject2* This) {
 8459    return This->lpVtbl->AddRef(This);
 8460}
 8461static inline ULONG IInputObject2_Release(IInputObject2* This) {
 8462    return This->lpVtbl->Release(This);
 8463}
 8464/*** IInputObject methods ***/
 8465static inline HRESULT IInputObject2_UIActivateIO(IInputObject2* This,WINBOOL fActivate,MSG *pMsg) {
 8466    return This->lpVtbl->UIActivateIO(This,fActivate,pMsg);
 8467}
 8468static inline HRESULT IInputObject2_HasFocusIO(IInputObject2* This) {
 8469    return This->lpVtbl->HasFocusIO(This);
 8470}
 8471static inline HRESULT IInputObject2_TranslateAcceleratorIO(IInputObject2* This,MSG *pMsg) {
 8472    return This->lpVtbl->TranslateAcceleratorIO(This,pMsg);
 8473}
 8474/*** IInputObject2 methods ***/
 8475static inline HRESULT IInputObject2_TranslateAcceleratorGlobal(IInputObject2* This,MSG *pMsg) {
 8476    return This->lpVtbl->TranslateAcceleratorGlobal(This,pMsg);
 8477}
 8478#endif
 8479#endif
 8480
 8481#endif
 8482
 8483
 8484#endif  /* __IInputObject2_INTERFACE_DEFINED__ */
 8485
 8486
 8487/*****************************************************************************
 8488 * IShellIcon interface
 8489 */
 8490#ifndef __IShellIcon_INTERFACE_DEFINED__
 8491#define __IShellIcon_INTERFACE_DEFINED__
 8492
 8493DEFINE_GUID(IID_IShellIcon, 0x000214e5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 8494#if defined(__cplusplus) && !defined(CINTERFACE)
 8495MIDL_INTERFACE("000214e5-0000-0000-c000-000000000046")
 8496IShellIcon : public IUnknown
 8497{
 8498    virtual HRESULT STDMETHODCALLTYPE GetIconOf(
 8499        PCUITEMID_CHILD pidl,
 8500        UINT flags,
 8501        int *pIconIndex) = 0;
 8502
 8503};
 8504#ifdef __CRT_UUID_DECL
 8505__CRT_UUID_DECL(IShellIcon, 0x000214e5, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
 8506#endif
 8507#else
 8508typedef struct IShellIconVtbl {
 8509    BEGIN_INTERFACE
 8510
 8511    /*** IUnknown methods ***/
 8512    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8513        IShellIcon *This,
 8514        REFIID riid,
 8515        void **ppvObject);
 8516
 8517    ULONG (STDMETHODCALLTYPE *AddRef)(
 8518        IShellIcon *This);
 8519
 8520    ULONG (STDMETHODCALLTYPE *Release)(
 8521        IShellIcon *This);
 8522
 8523    /*** IShellIcon methods ***/
 8524    HRESULT (STDMETHODCALLTYPE *GetIconOf)(
 8525        IShellIcon *This,
 8526        PCUITEMID_CHILD pidl,
 8527        UINT flags,
 8528        int *pIconIndex);
 8529
 8530    END_INTERFACE
 8531} IShellIconVtbl;
 8532
 8533interface IShellIcon {
 8534    CONST_VTBL IShellIconVtbl* lpVtbl;
 8535};
 8536
 8537#ifdef COBJMACROS
 8538#ifndef WIDL_C_INLINE_WRAPPERS
 8539/*** IUnknown methods ***/
 8540#define IShellIcon_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8541#define IShellIcon_AddRef(This) (This)->lpVtbl->AddRef(This)
 8542#define IShellIcon_Release(This) (This)->lpVtbl->Release(This)
 8543/*** IShellIcon methods ***/
 8544#define IShellIcon_GetIconOf(This,pidl,flags,pIconIndex) (This)->lpVtbl->GetIconOf(This,pidl,flags,pIconIndex)
 8545#else
 8546/*** IUnknown methods ***/
 8547static inline HRESULT IShellIcon_QueryInterface(IShellIcon* This,REFIID riid,void **ppvObject) {
 8548    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8549}
 8550static inline ULONG IShellIcon_AddRef(IShellIcon* This) {
 8551    return This->lpVtbl->AddRef(This);
 8552}
 8553static inline ULONG IShellIcon_Release(IShellIcon* This) {
 8554    return This->lpVtbl->Release(This);
 8555}
 8556/*** IShellIcon methods ***/
 8557static inline HRESULT IShellIcon_GetIconOf(IShellIcon* This,PCUITEMID_CHILD pidl,UINT flags,int *pIconIndex) {
 8558    return This->lpVtbl->GetIconOf(This,pidl,flags,pIconIndex);
 8559}
 8560#endif
 8561#endif
 8562
 8563#endif
 8564
 8565
 8566#endif  /* __IShellIcon_INTERFACE_DEFINED__ */
 8567
 8568
 8569#define SBSP_DEFBROWSER 0x0000
 8570#define SBSP_SAMEBROWSER 0x0001
 8571#define SBSP_NEWBROWSER 0x0002
 8572
 8573#define SBSP_DEFMODE 0x0000
 8574#define SBSP_OPENMODE 0x0010
 8575#define SBSP_EXPLOREMODE 0x0020
 8576#define SBSP_HELPMODE 0x0040
 8577#define SBSP_NOTRANSFERHIST 0x0080
 8578
 8579#define SBSP_ABSOLUTE 0x0000
 8580#define SBSP_RELATIVE 0x1000
 8581#define SBSP_PARENT 0x2000
 8582#define SBSP_NAVIGATEBACK 0x4000
 8583#define SBSP_NAVIGATEFORWARD 0x8000
 8584#define SBSP_ALLOW_AUTONAVIGATE 0x00010000
 8585#if NTDDI_VERSION >= NTDDI_VISTA
 8586#define SBSP_KEEPSAMETEMPLATE 0x00020000
 8587#define SBSP_KEEPWORDWHEELTEXT 0x00040000
 8588#define SBSP_ACTIVATE_NOFOCUS 0x00080000
 8589#define SBSP_CREATENOHISTORY 0x00100000
 8590#define SBSP_PLAYNOSOUND 0x00200000
 8591#endif
 8592#if _WIN32_IE >= _WIN32_IE_IE60SP2
 8593#define SBSP_CALLERUNTRUSTED 0x00800000
 8594#define SBSP_TRUSTFIRSTDOWNLOAD 0x01000000
 8595#define SBSP_UNTRUSTEDFORDOWNLOAD 0x02000000
 8596#endif
 8597#define SBSP_NOAUTOSELECT 0x04000000
 8598#define SBSP_WRITENOHISTORY 0x08000000
 8599#if _WIN32_IE >= _WIN32_IE_IE60SP2
 8600#define SBSP_TRUSTEDFORACTIVEX 0x10000000
 8601#endif
 8602#if _WIN32_IE >= _WIN32_IE_IE70
 8603#define SBSP_FEEDNAVIGATION 0x20000000
 8604#endif
 8605#define SBSP_REDIRECT 0x40000000
 8606#define SBSP_INITIATEDBYHLINKFRAME 0x80000000
 8607
 8608#define FCW_STATUS 0x0001
 8609#define FCW_TOOLBAR 0x0002
 8610#define FCW_TREE 0x0003
 8611#define FCW_INTERNETBAR 0x0006
 8612#define FCW_PROGRESS 0x0008
 8613
 8614#define FCT_MERGE 0x0001
 8615#define FCT_CONFIGABLE 0x0002
 8616#define FCT_ADDTOEND 0x0004
 8617
 8618#if 0
 8619typedef LPARAM LPTBBUTTONSB;
 8620#else
 8621#include <commctrl.h>
 8622
 8623typedef LPTBBUTTON LPTBBUTTONSB;
 8624#endif
 8625
 8626/*****************************************************************************
 8627 * IShellBrowser interface
 8628 */
 8629#ifndef __IShellBrowser_INTERFACE_DEFINED__
 8630#define __IShellBrowser_INTERFACE_DEFINED__
 8631
 8632DEFINE_GUID(IID_IShellBrowser, 0x000214e2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
 8633#if defined(__cplusplus) && !defined(CINTERFACE)
 8634MIDL_INTERFACE("000214e2-0000-0000-c000-000000000046")
 8635IShellBrowser : public IOleWindow
 8636{
 8637    virtual HRESULT STDMETHODCALLTYPE InsertMenusSB(
 8638        HMENU hmenuShared,
 8639        LPOLEMENUGROUPWIDTHS lpMenuWidths) = 0;
 8640
 8641    virtual HRESULT STDMETHODCALLTYPE SetMenuSB(
 8642        HMENU hmenuShared,
 8643        HOLEMENU holemenuRes,
 8644        HWND hwndActiveObject) = 0;
 8645
 8646    virtual HRESULT STDMETHODCALLTYPE RemoveMenusSB(
 8647        HMENU hmenuShared) = 0;
 8648
 8649    virtual HRESULT STDMETHODCALLTYPE SetStatusTextSB(
 8650        LPCWSTR pszStatusText) = 0;
 8651
 8652    virtual HRESULT STDMETHODCALLTYPE EnableModelessSB(
 8653        WINBOOL fEnable) = 0;
 8654
 8655    virtual HRESULT STDMETHODCALLTYPE TranslateAcceleratorSB(
 8656        MSG *pmsg,
 8657        WORD wID) = 0;
 8658
 8659    virtual HRESULT STDMETHODCALLTYPE BrowseObject(
 8660        PCUIDLIST_RELATIVE pidl,
 8661        UINT wFlags) = 0;
 8662
 8663    virtual HRESULT STDMETHODCALLTYPE GetViewStateStream(
 8664        DWORD grfMode,
 8665        IStream **ppStrm) = 0;
 8666
 8667    virtual HRESULT STDMETHODCALLTYPE GetControlWindow(
 8668        UINT id,
 8669        HWND *phwnd) = 0;
 8670
 8671    virtual HRESULT STDMETHODCALLTYPE SendControlMsg(
 8672        UINT id,
 8673        UINT uMsg,
 8674        WPARAM wParam,
 8675        LPARAM lParam,
 8676        LRESULT *pret) = 0;
 8677
 8678    virtual HRESULT STDMETHODCALLTYPE QueryActiveShellView(
 8679        IShellView **ppshv) = 0;
 8680
 8681    virtual HRESULT STDMETHODCALLTYPE OnViewWindowActive(
 8682        IShellView *pshv) = 0;
 8683
 8684    virtual HRESULT STDMETHODCALLTYPE SetToolbarItems(
 8685        LPTBBUTTONSB lpButtons,
 8686        UINT nButtons,
 8687        UINT uFlags) = 0;
 8688
 8689};
 8690#ifdef __CRT_UUID_DECL
 8691__CRT_UUID_DECL(IShellBrowser, 0x000214e2, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
 8692#endif
 8693#else
 8694typedef struct IShellBrowserVtbl {
 8695    BEGIN_INTERFACE
 8696
 8697    /*** IUnknown methods ***/
 8698    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8699        IShellBrowser *This,
 8700        REFIID riid,
 8701        void **ppvObject);
 8702
 8703    ULONG (STDMETHODCALLTYPE *AddRef)(
 8704        IShellBrowser *This);
 8705
 8706    ULONG (STDMETHODCALLTYPE *Release)(
 8707        IShellBrowser *This);
 8708
 8709    /*** IOleWindow methods ***/
 8710    HRESULT (STDMETHODCALLTYPE *GetWindow)(
 8711        IShellBrowser *This,
 8712        HWND *phwnd);
 8713
 8714    HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
 8715        IShellBrowser *This,
 8716        WINBOOL fEnterMode);
 8717
 8718    /*** IShellBrowser methods ***/
 8719    HRESULT (STDMETHODCALLTYPE *InsertMenusSB)(
 8720        IShellBrowser *This,
 8721        HMENU hmenuShared,
 8722        LPOLEMENUGROUPWIDTHS lpMenuWidths);
 8723
 8724    HRESULT (STDMETHODCALLTYPE *SetMenuSB)(
 8725        IShellBrowser *This,
 8726        HMENU hmenuShared,
 8727        HOLEMENU holemenuRes,
 8728        HWND hwndActiveObject);
 8729
 8730    HRESULT (STDMETHODCALLTYPE *RemoveMenusSB)(
 8731        IShellBrowser *This,
 8732        HMENU hmenuShared);
 8733
 8734    HRESULT (STDMETHODCALLTYPE *SetStatusTextSB)(
 8735        IShellBrowser *This,
 8736        LPCWSTR pszStatusText);
 8737
 8738    HRESULT (STDMETHODCALLTYPE *EnableModelessSB)(
 8739        IShellBrowser *This,
 8740        WINBOOL fEnable);
 8741
 8742    HRESULT (STDMETHODCALLTYPE *TranslateAcceleratorSB)(
 8743        IShellBrowser *This,
 8744        MSG *pmsg,
 8745        WORD wID);
 8746
 8747    HRESULT (STDMETHODCALLTYPE *BrowseObject)(
 8748        IShellBrowser *This,
 8749        PCUIDLIST_RELATIVE pidl,
 8750        UINT wFlags);
 8751
 8752    HRESULT (STDMETHODCALLTYPE *GetViewStateStream)(
 8753        IShellBrowser *This,
 8754        DWORD grfMode,
 8755        IStream **ppStrm);
 8756
 8757    HRESULT (STDMETHODCALLTYPE *GetControlWindow)(
 8758        IShellBrowser *This,
 8759        UINT id,
 8760        HWND *phwnd);
 8761
 8762    HRESULT (STDMETHODCALLTYPE *SendControlMsg)(
 8763        IShellBrowser *This,
 8764        UINT id,
 8765        UINT uMsg,
 8766        WPARAM wParam,
 8767        LPARAM lParam,
 8768        LRESULT *pret);
 8769
 8770    HRESULT (STDMETHODCALLTYPE *QueryActiveShellView)(
 8771        IShellBrowser *This,
 8772        IShellView **ppshv);
 8773
 8774    HRESULT (STDMETHODCALLTYPE *OnViewWindowActive)(
 8775        IShellBrowser *This,
 8776        IShellView *pshv);
 8777
 8778    HRESULT (STDMETHODCALLTYPE *SetToolbarItems)(
 8779        IShellBrowser *This,
 8780        LPTBBUTTONSB lpButtons,
 8781        UINT nButtons,
 8782        UINT uFlags);
 8783
 8784    END_INTERFACE
 8785} IShellBrowserVtbl;
 8786
 8787interface IShellBrowser {
 8788    CONST_VTBL IShellBrowserVtbl* lpVtbl;
 8789};
 8790
 8791#ifdef COBJMACROS
 8792#ifndef WIDL_C_INLINE_WRAPPERS
 8793/*** IUnknown methods ***/
 8794#define IShellBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8795#define IShellBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
 8796#define IShellBrowser_Release(This) (This)->lpVtbl->Release(This)
 8797/*** IOleWindow methods ***/
 8798#define IShellBrowser_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
 8799#define IShellBrowser_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
 8800/*** IShellBrowser methods ***/
 8801#define IShellBrowser_InsertMenusSB(This,hmenuShared,lpMenuWidths) (This)->lpVtbl->InsertMenusSB(This,hmenuShared,lpMenuWidths)
 8802#define IShellBrowser_SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject) (This)->lpVtbl->SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject)
 8803#define IShellBrowser_RemoveMenusSB(This,hmenuShared) (This)->lpVtbl->RemoveMenusSB(This,hmenuShared)
 8804#define IShellBrowser_SetStatusTextSB(This,pszStatusText) (This)->lpVtbl->SetStatusTextSB(This,pszStatusText)
 8805#define IShellBrowser_EnableModelessSB(This,fEnable) (This)->lpVtbl->EnableModelessSB(This,fEnable)
 8806#define IShellBrowser_TranslateAcceleratorSB(This,pmsg,wID) (This)->lpVtbl->TranslateAcceleratorSB(This,pmsg,wID)
 8807#define IShellBrowser_BrowseObject(This,pidl,wFlags) (This)->lpVtbl->BrowseObject(This,pidl,wFlags)
 8808#define IShellBrowser_GetViewStateStream(This,grfMode,ppStrm) (This)->lpVtbl->GetViewStateStream(This,grfMode,ppStrm)
 8809#define IShellBrowser_GetControlWindow(This,id,phwnd) (This)->lpVtbl->GetControlWindow(This,id,phwnd)
 8810#define IShellBrowser_SendControlMsg(This,id,uMsg,wParam,lParam,pret) (This)->lpVtbl->SendControlMsg(This,id,uMsg,wParam,lParam,pret)
 8811#define IShellBrowser_QueryActiveShellView(This,ppshv) (This)->lpVtbl->QueryActiveShellView(This,ppshv)
 8812#define IShellBrowser_OnViewWindowActive(This,pshv) (This)->lpVtbl->OnViewWindowActive(This,pshv)
 8813#define IShellBrowser_SetToolbarItems(This,lpButtons,nButtons,uFlags) (This)->lpVtbl->SetToolbarItems(This,lpButtons,nButtons,uFlags)
 8814#else
 8815/*** IUnknown methods ***/
 8816static inline HRESULT IShellBrowser_QueryInterface(IShellBrowser* This,REFIID riid,void **ppvObject) {
 8817    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8818}
 8819static inline ULONG IShellBrowser_AddRef(IShellBrowser* This) {
 8820    return This->lpVtbl->AddRef(This);
 8821}
 8822static inline ULONG IShellBrowser_Release(IShellBrowser* This) {
 8823    return This->lpVtbl->Release(This);
 8824}
 8825/*** IOleWindow methods ***/
 8826static inline HRESULT IShellBrowser_GetWindow(IShellBrowser* This,HWND *phwnd) {
 8827    return This->lpVtbl->GetWindow(This,phwnd);
 8828}
 8829static inline HRESULT IShellBrowser_ContextSensitiveHelp(IShellBrowser* This,WINBOOL fEnterMode) {
 8830    return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
 8831}
 8832/*** IShellBrowser methods ***/
 8833static inline HRESULT IShellBrowser_InsertMenusSB(IShellBrowser* This,HMENU hmenuShared,LPOLEMENUGROUPWIDTHS lpMenuWidths) {
 8834    return This->lpVtbl->InsertMenusSB(This,hmenuShared,lpMenuWidths);
 8835}
 8836static inline HRESULT IShellBrowser_SetMenuSB(IShellBrowser* This,HMENU hmenuShared,HOLEMENU holemenuRes,HWND hwndActiveObject) {
 8837    return This->lpVtbl->SetMenuSB(This,hmenuShared,holemenuRes,hwndActiveObject);
 8838}
 8839static inline HRESULT IShellBrowser_RemoveMenusSB(IShellBrowser* This,HMENU hmenuShared) {
 8840    return This->lpVtbl->RemoveMenusSB(This,hmenuShared);
 8841}
 8842static inline HRESULT IShellBrowser_SetStatusTextSB(IShellBrowser* This,LPCWSTR pszStatusText) {
 8843    return This->lpVtbl->SetStatusTextSB(This,pszStatusText);
 8844}
 8845static inline HRESULT IShellBrowser_EnableModelessSB(IShellBrowser* This,WINBOOL fEnable) {
 8846    return This->lpVtbl->EnableModelessSB(This,fEnable);
 8847}
 8848static inline HRESULT IShellBrowser_TranslateAcceleratorSB(IShellBrowser* This,MSG *pmsg,WORD wID) {
 8849    return This->lpVtbl->TranslateAcceleratorSB(This,pmsg,wID);
 8850}
 8851static inline HRESULT IShellBrowser_BrowseObject(IShellBrowser* This,PCUIDLIST_RELATIVE pidl,UINT wFlags) {
 8852    return This->lpVtbl->BrowseObject(This,pidl,wFlags);
 8853}
 8854static inline HRESULT IShellBrowser_GetViewStateStream(IShellBrowser* This,DWORD grfMode,IStream **ppStrm) {
 8855    return This->lpVtbl->GetViewStateStream(This,grfMode,ppStrm);
 8856}
 8857static inline HRESULT IShellBrowser_GetControlWindow(IShellBrowser* This,UINT id,HWND *phwnd) {
 8858    return This->lpVtbl->GetControlWindow(This,id,phwnd);
 8859}
 8860static inline HRESULT IShellBrowser_SendControlMsg(IShellBrowser* This,UINT id,UINT uMsg,WPARAM wParam,LPARAM lParam,LRESULT *pret) {
 8861    return This->lpVtbl->SendControlMsg(This,id,uMsg,wParam,lParam,pret);
 8862}
 8863static inline HRESULT IShellBrowser_QueryActiveShellView(IShellBrowser* This,IShellView **ppshv) {
 8864    return This->lpVtbl->QueryActiveShellView(This,ppshv);
 8865}
 8866static inline HRESULT IShellBrowser_OnViewWindowActive(IShellBrowser* This,IShellView *pshv) {
 8867    return This->lpVtbl->OnViewWindowActive(This,pshv);
 8868}
 8869static inline HRESULT IShellBrowser_SetToolbarItems(IShellBrowser* This,LPTBBUTTONSB lpButtons,UINT nButtons,UINT uFlags) {
 8870    return This->lpVtbl->SetToolbarItems(This,lpButtons,nButtons,uFlags);
 8871}
 8872#endif
 8873#endif
 8874
 8875#endif
 8876
 8877
 8878#endif  /* __IShellBrowser_INTERFACE_DEFINED__ */
 8879
 8880
 8881typedef IShellBrowser *LPSHELLBROWSER;
 8882
 8883/*****************************************************************************
 8884 * IProfferService interface
 8885 */
 8886#ifndef __IProfferService_INTERFACE_DEFINED__
 8887#define __IProfferService_INTERFACE_DEFINED__
 8888
 8889DEFINE_GUID(IID_IProfferService, 0xcb728b20, 0xf786, 0x11ce, 0x92,0xad, 0x00,0xaa,0x00,0xa7,0x4c,0xd0);
 8890#if defined(__cplusplus) && !defined(CINTERFACE)
 8891MIDL_INTERFACE("cb728b20-f786-11ce-92ad-00aa00a74cd0")
 8892IProfferService : public IUnknown
 8893{
 8894    virtual HRESULT STDMETHODCALLTYPE ProfferService(
 8895        REFGUID guidService,
 8896        IServiceProvider *psp,
 8897        DWORD *pdwCookie) = 0;
 8898
 8899    virtual HRESULT STDMETHODCALLTYPE RevokeService(
 8900        DWORD dwCookie) = 0;
 8901
 8902};
 8903#ifdef __CRT_UUID_DECL
 8904__CRT_UUID_DECL(IProfferService, 0xcb728b20, 0xf786, 0x11ce, 0x92,0xad, 0x00,0xaa,0x00,0xa7,0x4c,0xd0)
 8905#endif
 8906#else
 8907typedef struct IProfferServiceVtbl {
 8908    BEGIN_INTERFACE
 8909
 8910    /*** IUnknown methods ***/
 8911    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 8912        IProfferService *This,
 8913        REFIID riid,
 8914        void **ppvObject);
 8915
 8916    ULONG (STDMETHODCALLTYPE *AddRef)(
 8917        IProfferService *This);
 8918
 8919    ULONG (STDMETHODCALLTYPE *Release)(
 8920        IProfferService *This);
 8921
 8922    /*** IProfferService methods ***/
 8923    HRESULT (STDMETHODCALLTYPE *ProfferService)(
 8924        IProfferService *This,
 8925        REFGUID guidService,
 8926        IServiceProvider *psp,
 8927        DWORD *pdwCookie);
 8928
 8929    HRESULT (STDMETHODCALLTYPE *RevokeService)(
 8930        IProfferService *This,
 8931        DWORD dwCookie);
 8932
 8933    END_INTERFACE
 8934} IProfferServiceVtbl;
 8935
 8936interface IProfferService {
 8937    CONST_VTBL IProfferServiceVtbl* lpVtbl;
 8938};
 8939
 8940#ifdef COBJMACROS
 8941#ifndef WIDL_C_INLINE_WRAPPERS
 8942/*** IUnknown methods ***/
 8943#define IProfferService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 8944#define IProfferService_AddRef(This) (This)->lpVtbl->AddRef(This)
 8945#define IProfferService_Release(This) (This)->lpVtbl->Release(This)
 8946/*** IProfferService methods ***/
 8947#define IProfferService_ProfferService(This,guidService,psp,pdwCookie) (This)->lpVtbl->ProfferService(This,guidService,psp,pdwCookie)
 8948#define IProfferService_RevokeService(This,dwCookie) (This)->lpVtbl->RevokeService(This,dwCookie)
 8949#else
 8950/*** IUnknown methods ***/
 8951static inline HRESULT IProfferService_QueryInterface(IProfferService* This,REFIID riid,void **ppvObject) {
 8952    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 8953}
 8954static inline ULONG IProfferService_AddRef(IProfferService* This) {
 8955    return This->lpVtbl->AddRef(This);
 8956}
 8957static inline ULONG IProfferService_Release(IProfferService* This) {
 8958    return This->lpVtbl->Release(This);
 8959}
 8960/*** IProfferService methods ***/
 8961static inline HRESULT IProfferService_ProfferService(IProfferService* This,REFGUID guidService,IServiceProvider *psp,DWORD *pdwCookie) {
 8962    return This->lpVtbl->ProfferService(This,guidService,psp,pdwCookie);
 8963}
 8964static inline HRESULT IProfferService_RevokeService(IProfferService* This,DWORD dwCookie) {
 8965    return This->lpVtbl->RevokeService(This,dwCookie);
 8966}
 8967#endif
 8968#endif
 8969
 8970#endif
 8971
 8972
 8973#endif  /* __IProfferService_INTERFACE_DEFINED__ */
 8974
 8975
 8976#define SID_SProfferService IID_IProfferService
 8977#define STR_DONT_RESOLVE_LINK L"Don't Resolve Link"
 8978#define STR_GET_ASYNC_HANDLER L"GetAsyncHandler"
 8979
 8980/*****************************************************************************
 8981 * IShellItem interface
 8982 */
 8983#ifndef __IShellItem_INTERFACE_DEFINED__
 8984#define __IShellItem_INTERFACE_DEFINED__
 8985
 8986typedef enum _SIGDN {
 8987    SIGDN_NORMALDISPLAY = 0x0,
 8988    SIGDN_PARENTRELATIVEPARSING = (int)0x80018001,
 8989    SIGDN_DESKTOPABSOLUTEPARSING = (int)0x80028000,
 8990    SIGDN_PARENTRELATIVEEDITING = (int)0x80031001,
 8991    SIGDN_DESKTOPABSOLUTEEDITING = (int)0x8004c000,
 8992    SIGDN_FILESYSPATH = (int)0x80058000,
 8993    SIGDN_URL = (int)0x80068000,
 8994    SIGDN_PARENTRELATIVEFORADDRESSBAR = (int)0x8007c001,
 8995    SIGDN_PARENTRELATIVE = (int)0x80080001,
 8996    SIGDN_PARENTRELATIVEFORUI = (int)0x80094001
 8997} SIGDN;
 8998
 8999enum _SICHINTF {
 9000    SICHINT_DISPLAY = 0x0,
 9001    SICHINT_ALLFIELDS = (int)0x80000000,
 9002    SICHINT_CANONICAL = 0x10000000,
 9003    SICHINT_TEST_FILESYSPATH_IF_NOT_EQUAL = 0x20000000
 9004};
 9005
 9006typedef DWORD SICHINTF;
 9007
 9008DEFINE_GUID(IID_IShellItem, 0x43826d1e, 0xe718, 0x42ee, 0xbc,0x55, 0xa1,0xe2,0x61,0xc3,0x7b,0xfe);
 9009#if defined(__cplusplus) && !defined(CINTERFACE)
 9010MIDL_INTERFACE("43826d1e-e718-42ee-bc55-a1e261c37bfe")
 9011IShellItem : public IUnknown
 9012{
 9013    virtual HRESULT STDMETHODCALLTYPE BindToHandler(
 9014        IBindCtx *pbc,
 9015        REFGUID bhid,
 9016        REFIID riid,
 9017        void **ppv) = 0;
 9018
 9019    virtual HRESULT STDMETHODCALLTYPE GetParent(
 9020        IShellItem **ppsi) = 0;
 9021
 9022    virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
 9023        SIGDN sigdnName,
 9024        LPWSTR *ppszName) = 0;
 9025
 9026    virtual HRESULT STDMETHODCALLTYPE GetAttributes(
 9027        SFGAOF sfgaoMask,
 9028        SFGAOF *psfgaoAttribs) = 0;
 9029
 9030    virtual HRESULT STDMETHODCALLTYPE Compare(
 9031        IShellItem *psi,
 9032        SICHINTF hint,
 9033        int *piOrder) = 0;
 9034
 9035};
 9036#ifdef __CRT_UUID_DECL
 9037__CRT_UUID_DECL(IShellItem, 0x43826d1e, 0xe718, 0x42ee, 0xbc,0x55, 0xa1,0xe2,0x61,0xc3,0x7b,0xfe)
 9038#endif
 9039#else
 9040typedef struct IShellItemVtbl {
 9041    BEGIN_INTERFACE
 9042
 9043    /*** IUnknown methods ***/
 9044    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9045        IShellItem *This,
 9046        REFIID riid,
 9047        void **ppvObject);
 9048
 9049    ULONG (STDMETHODCALLTYPE *AddRef)(
 9050        IShellItem *This);
 9051
 9052    ULONG (STDMETHODCALLTYPE *Release)(
 9053        IShellItem *This);
 9054
 9055    /*** IShellItem methods ***/
 9056    HRESULT (STDMETHODCALLTYPE *BindToHandler)(
 9057        IShellItem *This,
 9058        IBindCtx *pbc,
 9059        REFGUID bhid,
 9060        REFIID riid,
 9061        void **ppv);
 9062
 9063    HRESULT (STDMETHODCALLTYPE *GetParent)(
 9064        IShellItem *This,
 9065        IShellItem **ppsi);
 9066
 9067    HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
 9068        IShellItem *This,
 9069        SIGDN sigdnName,
 9070        LPWSTR *ppszName);
 9071
 9072    HRESULT (STDMETHODCALLTYPE *GetAttributes)(
 9073        IShellItem *This,
 9074        SFGAOF sfgaoMask,
 9075        SFGAOF *psfgaoAttribs);
 9076
 9077    HRESULT (STDMETHODCALLTYPE *Compare)(
 9078        IShellItem *This,
 9079        IShellItem *psi,
 9080        SICHINTF hint,
 9081        int *piOrder);
 9082
 9083    END_INTERFACE
 9084} IShellItemVtbl;
 9085
 9086interface IShellItem {
 9087    CONST_VTBL IShellItemVtbl* lpVtbl;
 9088};
 9089
 9090#ifdef COBJMACROS
 9091#ifndef WIDL_C_INLINE_WRAPPERS
 9092/*** IUnknown methods ***/
 9093#define IShellItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9094#define IShellItem_AddRef(This) (This)->lpVtbl->AddRef(This)
 9095#define IShellItem_Release(This) (This)->lpVtbl->Release(This)
 9096/*** IShellItem methods ***/
 9097#define IShellItem_BindToHandler(This,pbc,bhid,riid,ppv) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv)
 9098#define IShellItem_GetParent(This,ppsi) (This)->lpVtbl->GetParent(This,ppsi)
 9099#define IShellItem_GetDisplayName(This,sigdnName,ppszName) (This)->lpVtbl->GetDisplayName(This,sigdnName,ppszName)
 9100#define IShellItem_GetAttributes(This,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs)
 9101#define IShellItem_Compare(This,psi,hint,piOrder) (This)->lpVtbl->Compare(This,psi,hint,piOrder)
 9102#else
 9103/*** IUnknown methods ***/
 9104static inline HRESULT IShellItem_QueryInterface(IShellItem* This,REFIID riid,void **ppvObject) {
 9105    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9106}
 9107static inline ULONG IShellItem_AddRef(IShellItem* This) {
 9108    return This->lpVtbl->AddRef(This);
 9109}
 9110static inline ULONG IShellItem_Release(IShellItem* This) {
 9111    return This->lpVtbl->Release(This);
 9112}
 9113/*** IShellItem methods ***/
 9114static inline HRESULT IShellItem_BindToHandler(IShellItem* This,IBindCtx *pbc,REFGUID bhid,REFIID riid,void **ppv) {
 9115    return This->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv);
 9116}
 9117static inline HRESULT IShellItem_GetParent(IShellItem* This,IShellItem **ppsi) {
 9118    return This->lpVtbl->GetParent(This,ppsi);
 9119}
 9120static inline HRESULT IShellItem_GetDisplayName(IShellItem* This,SIGDN sigdnName,LPWSTR *ppszName) {
 9121    return This->lpVtbl->GetDisplayName(This,sigdnName,ppszName);
 9122}
 9123static inline HRESULT IShellItem_GetAttributes(IShellItem* This,SFGAOF sfgaoMask,SFGAOF *psfgaoAttribs) {
 9124    return This->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs);
 9125}
 9126static inline HRESULT IShellItem_Compare(IShellItem* This,IShellItem *psi,SICHINTF hint,int *piOrder) {
 9127    return This->lpVtbl->Compare(This,psi,hint,piOrder);
 9128}
 9129#endif
 9130#endif
 9131
 9132#endif
 9133
 9134
 9135#endif  /* __IShellItem_INTERFACE_DEFINED__ */
 9136
 9137
 9138SHSTDAPI_(PIDLIST_ABSOLUTE) SHSimpleIDListFromPath(PCWSTR pszPath);
 9139
 9140#if _WIN32_IE >= _WIN32_IE_IE70
 9141  SHSTDAPI SHCreateItemFromIDList(PCIDLIST_ABSOLUTE pidl, REFIID riid, void **ppv);
 9142  SHSTDAPI SHCreateItemFromParsingName(PCWSTR pszPath, IBindCtx *pbc, REFIID riid, void **ppv);
 9143  SHSTDAPI SHCreateItemWithParent(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psfParent, PCUITEMID_CHILD pidl, REFIID riid, void **ppvItem);
 9144  SHSTDAPI SHCreateItemFromRelativeName(IShellItem *psiParent, PCWSTR pszName, IBindCtx *pbc, REFIID riid, void **ppv);
 9145#endif
 9146#if NTDDI_VERSION >= NTDDI_VISTA
 9147  SHSTDAPI SHCreateItemInKnownFolder(REFKNOWNFOLDERID kfid, DWORD dwKFFlags, PCWSTR pszItem, REFIID riid, void **ppv);
 9148  SHSTDAPI SHGetIDListFromObject(IUnknown *punk, PIDLIST_ABSOLUTE *ppidl);
 9149  SHSTDAPI SHGetItemFromObject(IUnknown *punk, REFIID riid, void **ppv);
 9150  SHSTDAPI SHGetPropertyStoreFromIDList(PCIDLIST_ABSOLUTE pidl, GETPROPERTYSTOREFLAGS flags, REFIID riid, void **ppv);
 9151  SHSTDAPI SHGetPropertyStoreFromParsingName(PCWSTR pszPath, IBindCtx *pbc, GETPROPERTYSTOREFLAGS flags, REFIID riid, void **ppv);
 9152  SHSTDAPI SHGetNameFromIDList(PCIDLIST_ABSOLUTE pidl, SIGDN sigdnName, PWSTR *ppszName);
 9153#endif
 9154#if NTDDI_VERSION >= NTDDI_WIN7
 9155typedef enum DATAOBJ_GET_ITEM_FLAGS {
 9156    DOGIF_DEFAULT = 0x0,
 9157    DOGIF_TRAVERSE_LINK = 0x1,
 9158    DOGIF_NO_HDROP = 0x2,
 9159    DOGIF_NO_URL = 0x4,
 9160    DOGIF_ONLY_IF_ONE = 0x8
 9161} DATAOBJ_GET_ITEM_FLAGS;
 9162
 9163DEFINE_ENUM_FLAG_OPERATORS(DATAOBJ_GET_ITEM_FLAGS)
 9164
 9165  STDAPI SHGetItemFromDataObject(IDataObject *pdtobj, DATAOBJ_GET_ITEM_FLAGS dwFlags, REFIID riid, void **ppv);
 9166#endif
 9167
 9168#define STR_GPS_HANDLERPROPERTIESONLY L"GPS_HANDLERPROPERTIESONLY"
 9169#define STR_GPS_FASTPROPERTIESONLY L"GPS_FASTPROPERTIESONLY"
 9170#define STR_GPS_OPENSLOWITEM L"GPS_OPENSLOWITEM"
 9171#define STR_GPS_DELAYCREATION L"GPS_DELAYCREATION"
 9172#define STR_GPS_BESTEFFORT L"GPS_BESTEFFORT"
 9173#define STR_GPS_NO_OPLOCK L"GPS_NO_OPLOCK"
 9174
 9175/*****************************************************************************
 9176 * IShellItem2 interface
 9177 */
 9178#ifndef __IShellItem2_INTERFACE_DEFINED__
 9179#define __IShellItem2_INTERFACE_DEFINED__
 9180
 9181DEFINE_GUID(IID_IShellItem2, 0x7e9fb0d3, 0x919f, 0x4307, 0xab,0x2e, 0x9b,0x18,0x60,0x31,0x0c,0x93);
 9182#if defined(__cplusplus) && !defined(CINTERFACE)
 9183MIDL_INTERFACE("7e9fb0d3-919f-4307-ab2e-9b1860310c93")
 9184IShellItem2 : public IShellItem
 9185{
 9186    virtual HRESULT STDMETHODCALLTYPE GetPropertyStore(
 9187        GETPROPERTYSTOREFLAGS flags,
 9188        REFIID riid,
 9189        void **ppv) = 0;
 9190
 9191    virtual HRESULT STDMETHODCALLTYPE GetPropertyStoreWithCreateObject(
 9192        GETPROPERTYSTOREFLAGS flags,
 9193        IUnknown *punkCreateObject,
 9194        REFIID riid,
 9195        void **ppv) = 0;
 9196
 9197    virtual HRESULT STDMETHODCALLTYPE GetPropertyStoreForKeys(
 9198        const PROPERTYKEY *rgKeys,
 9199        UINT cKeys,
 9200        GETPROPERTYSTOREFLAGS flags,
 9201        REFIID riid,
 9202        void **ppv) = 0;
 9203
 9204    virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionList(
 9205        REFPROPERTYKEY keyType,
 9206        REFIID riid,
 9207        void **ppv) = 0;
 9208
 9209    virtual HRESULT STDMETHODCALLTYPE Update(
 9210        IBindCtx *pbc) = 0;
 9211
 9212    virtual HRESULT STDMETHODCALLTYPE GetProperty(
 9213        REFPROPERTYKEY key,
 9214        PROPVARIANT *ppropvar) = 0;
 9215
 9216    virtual HRESULT STDMETHODCALLTYPE GetCLSID(
 9217        REFPROPERTYKEY key,
 9218        CLSID *pclsid) = 0;
 9219
 9220    virtual HRESULT STDMETHODCALLTYPE GetFileTime(
 9221        REFPROPERTYKEY key,
 9222        FILETIME *pft) = 0;
 9223
 9224    virtual HRESULT STDMETHODCALLTYPE GetInt32(
 9225        REFPROPERTYKEY key,
 9226        int *pi) = 0;
 9227
 9228    virtual HRESULT STDMETHODCALLTYPE GetString(
 9229        REFPROPERTYKEY key,
 9230        LPWSTR *ppsz) = 0;
 9231
 9232    virtual HRESULT STDMETHODCALLTYPE GetUInt32(
 9233        REFPROPERTYKEY key,
 9234        ULONG *pui) = 0;
 9235
 9236    virtual HRESULT STDMETHODCALLTYPE GetUInt64(
 9237        REFPROPERTYKEY key,
 9238        ULONGLONG *pull) = 0;
 9239
 9240    virtual HRESULT STDMETHODCALLTYPE GetBool(
 9241        REFPROPERTYKEY key,
 9242        WINBOOL *pf) = 0;
 9243
 9244};
 9245#ifdef __CRT_UUID_DECL
 9246__CRT_UUID_DECL(IShellItem2, 0x7e9fb0d3, 0x919f, 0x4307, 0xab,0x2e, 0x9b,0x18,0x60,0x31,0x0c,0x93)
 9247#endif
 9248#else
 9249typedef struct IShellItem2Vtbl {
 9250    BEGIN_INTERFACE
 9251
 9252    /*** IUnknown methods ***/
 9253    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9254        IShellItem2 *This,
 9255        REFIID riid,
 9256        void **ppvObject);
 9257
 9258    ULONG (STDMETHODCALLTYPE *AddRef)(
 9259        IShellItem2 *This);
 9260
 9261    ULONG (STDMETHODCALLTYPE *Release)(
 9262        IShellItem2 *This);
 9263
 9264    /*** IShellItem methods ***/
 9265    HRESULT (STDMETHODCALLTYPE *BindToHandler)(
 9266        IShellItem2 *This,
 9267        IBindCtx *pbc,
 9268        REFGUID bhid,
 9269        REFIID riid,
 9270        void **ppv);
 9271
 9272    HRESULT (STDMETHODCALLTYPE *GetParent)(
 9273        IShellItem2 *This,
 9274        IShellItem **ppsi);
 9275
 9276    HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
 9277        IShellItem2 *This,
 9278        SIGDN sigdnName,
 9279        LPWSTR *ppszName);
 9280
 9281    HRESULT (STDMETHODCALLTYPE *GetAttributes)(
 9282        IShellItem2 *This,
 9283        SFGAOF sfgaoMask,
 9284        SFGAOF *psfgaoAttribs);
 9285
 9286    HRESULT (STDMETHODCALLTYPE *Compare)(
 9287        IShellItem2 *This,
 9288        IShellItem *psi,
 9289        SICHINTF hint,
 9290        int *piOrder);
 9291
 9292    /*** IShellItem2 methods ***/
 9293    HRESULT (STDMETHODCALLTYPE *GetPropertyStore)(
 9294        IShellItem2 *This,
 9295        GETPROPERTYSTOREFLAGS flags,
 9296        REFIID riid,
 9297        void **ppv);
 9298
 9299    HRESULT (STDMETHODCALLTYPE *GetPropertyStoreWithCreateObject)(
 9300        IShellItem2 *This,
 9301        GETPROPERTYSTOREFLAGS flags,
 9302        IUnknown *punkCreateObject,
 9303        REFIID riid,
 9304        void **ppv);
 9305
 9306    HRESULT (STDMETHODCALLTYPE *GetPropertyStoreForKeys)(
 9307        IShellItem2 *This,
 9308        const PROPERTYKEY *rgKeys,
 9309        UINT cKeys,
 9310        GETPROPERTYSTOREFLAGS flags,
 9311        REFIID riid,
 9312        void **ppv);
 9313
 9314    HRESULT (STDMETHODCALLTYPE *GetPropertyDescriptionList)(
 9315        IShellItem2 *This,
 9316        REFPROPERTYKEY keyType,
 9317        REFIID riid,
 9318        void **ppv);
 9319
 9320    HRESULT (STDMETHODCALLTYPE *Update)(
 9321        IShellItem2 *This,
 9322        IBindCtx *pbc);
 9323
 9324    HRESULT (STDMETHODCALLTYPE *GetProperty)(
 9325        IShellItem2 *This,
 9326        REFPROPERTYKEY key,
 9327        PROPVARIANT *ppropvar);
 9328
 9329    HRESULT (STDMETHODCALLTYPE *GetCLSID)(
 9330        IShellItem2 *This,
 9331        REFPROPERTYKEY key,
 9332        CLSID *pclsid);
 9333
 9334    HRESULT (STDMETHODCALLTYPE *GetFileTime)(
 9335        IShellItem2 *This,
 9336        REFPROPERTYKEY key,
 9337        FILETIME *pft);
 9338
 9339    HRESULT (STDMETHODCALLTYPE *GetInt32)(
 9340        IShellItem2 *This,
 9341        REFPROPERTYKEY key,
 9342        int *pi);
 9343
 9344    HRESULT (STDMETHODCALLTYPE *GetString)(
 9345        IShellItem2 *This,
 9346        REFPROPERTYKEY key,
 9347        LPWSTR *ppsz);
 9348
 9349    HRESULT (STDMETHODCALLTYPE *GetUInt32)(
 9350        IShellItem2 *This,
 9351        REFPROPERTYKEY key,
 9352        ULONG *pui);
 9353
 9354    HRESULT (STDMETHODCALLTYPE *GetUInt64)(
 9355        IShellItem2 *This,
 9356        REFPROPERTYKEY key,
 9357        ULONGLONG *pull);
 9358
 9359    HRESULT (STDMETHODCALLTYPE *GetBool)(
 9360        IShellItem2 *This,
 9361        REFPROPERTYKEY key,
 9362        WINBOOL *pf);
 9363
 9364    END_INTERFACE
 9365} IShellItem2Vtbl;
 9366
 9367interface IShellItem2 {
 9368    CONST_VTBL IShellItem2Vtbl* lpVtbl;
 9369};
 9370
 9371#ifdef COBJMACROS
 9372#ifndef WIDL_C_INLINE_WRAPPERS
 9373/*** IUnknown methods ***/
 9374#define IShellItem2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9375#define IShellItem2_AddRef(This) (This)->lpVtbl->AddRef(This)
 9376#define IShellItem2_Release(This) (This)->lpVtbl->Release(This)
 9377/*** IShellItem methods ***/
 9378#define IShellItem2_BindToHandler(This,pbc,bhid,riid,ppv) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv)
 9379#define IShellItem2_GetParent(This,ppsi) (This)->lpVtbl->GetParent(This,ppsi)
 9380#define IShellItem2_GetDisplayName(This,sigdnName,ppszName) (This)->lpVtbl->GetDisplayName(This,sigdnName,ppszName)
 9381#define IShellItem2_GetAttributes(This,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs)
 9382#define IShellItem2_Compare(This,psi,hint,piOrder) (This)->lpVtbl->Compare(This,psi,hint,piOrder)
 9383/*** IShellItem2 methods ***/
 9384#define IShellItem2_GetPropertyStore(This,flags,riid,ppv) (This)->lpVtbl->GetPropertyStore(This,flags,riid,ppv)
 9385#define IShellItem2_GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv) (This)->lpVtbl->GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv)
 9386#define IShellItem2_GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv) (This)->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv)
 9387#define IShellItem2_GetPropertyDescriptionList(This,keyType,riid,ppv) (This)->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv)
 9388#define IShellItem2_Update(This,pbc) (This)->lpVtbl->Update(This,pbc)
 9389#define IShellItem2_GetProperty(This,key,ppropvar) (This)->lpVtbl->GetProperty(This,key,ppropvar)
 9390#define IShellItem2_GetCLSID(This,key,pclsid) (This)->lpVtbl->GetCLSID(This,key,pclsid)
 9391#define IShellItem2_GetFileTime(This,key,pft) (This)->lpVtbl->GetFileTime(This,key,pft)
 9392#define IShellItem2_GetInt32(This,key,pi) (This)->lpVtbl->GetInt32(This,key,pi)
 9393#define IShellItem2_GetString(This,key,ppsz) (This)->lpVtbl->GetString(This,key,ppsz)
 9394#define IShellItem2_GetUInt32(This,key,pui) (This)->lpVtbl->GetUInt32(This,key,pui)
 9395#define IShellItem2_GetUInt64(This,key,pull) (This)->lpVtbl->GetUInt64(This,key,pull)
 9396#define IShellItem2_GetBool(This,key,pf) (This)->lpVtbl->GetBool(This,key,pf)
 9397#else
 9398/*** IUnknown methods ***/
 9399static inline HRESULT IShellItem2_QueryInterface(IShellItem2* This,REFIID riid,void **ppvObject) {
 9400    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9401}
 9402static inline ULONG IShellItem2_AddRef(IShellItem2* This) {
 9403    return This->lpVtbl->AddRef(This);
 9404}
 9405static inline ULONG IShellItem2_Release(IShellItem2* This) {
 9406    return This->lpVtbl->Release(This);
 9407}
 9408/*** IShellItem methods ***/
 9409static inline HRESULT IShellItem2_BindToHandler(IShellItem2* This,IBindCtx *pbc,REFGUID bhid,REFIID riid,void **ppv) {
 9410    return This->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppv);
 9411}
 9412static inline HRESULT IShellItem2_GetParent(IShellItem2* This,IShellItem **ppsi) {
 9413    return This->lpVtbl->GetParent(This,ppsi);
 9414}
 9415static inline HRESULT IShellItem2_GetDisplayName(IShellItem2* This,SIGDN sigdnName,LPWSTR *ppszName) {
 9416    return This->lpVtbl->GetDisplayName(This,sigdnName,ppszName);
 9417}
 9418static inline HRESULT IShellItem2_GetAttributes(IShellItem2* This,SFGAOF sfgaoMask,SFGAOF *psfgaoAttribs) {
 9419    return This->lpVtbl->GetAttributes(This,sfgaoMask,psfgaoAttribs);
 9420}
 9421static inline HRESULT IShellItem2_Compare(IShellItem2* This,IShellItem *psi,SICHINTF hint,int *piOrder) {
 9422    return This->lpVtbl->Compare(This,psi,hint,piOrder);
 9423}
 9424/*** IShellItem2 methods ***/
 9425static inline HRESULT IShellItem2_GetPropertyStore(IShellItem2* This,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
 9426    return This->lpVtbl->GetPropertyStore(This,flags,riid,ppv);
 9427}
 9428static inline HRESULT IShellItem2_GetPropertyStoreWithCreateObject(IShellItem2* This,GETPROPERTYSTOREFLAGS flags,IUnknown *punkCreateObject,REFIID riid,void **ppv) {
 9429    return This->lpVtbl->GetPropertyStoreWithCreateObject(This,flags,punkCreateObject,riid,ppv);
 9430}
 9431static inline HRESULT IShellItem2_GetPropertyStoreForKeys(IShellItem2* This,const PROPERTYKEY *rgKeys,UINT cKeys,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
 9432    return This->lpVtbl->GetPropertyStoreForKeys(This,rgKeys,cKeys,flags,riid,ppv);
 9433}
 9434static inline HRESULT IShellItem2_GetPropertyDescriptionList(IShellItem2* This,REFPROPERTYKEY keyType,REFIID riid,void **ppv) {
 9435    return This->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv);
 9436}
 9437static inline HRESULT IShellItem2_Update(IShellItem2* This,IBindCtx *pbc) {
 9438    return This->lpVtbl->Update(This,pbc);
 9439}
 9440static inline HRESULT IShellItem2_GetProperty(IShellItem2* This,REFPROPERTYKEY key,PROPVARIANT *ppropvar) {
 9441    return This->lpVtbl->GetProperty(This,key,ppropvar);
 9442}
 9443static inline HRESULT IShellItem2_GetCLSID(IShellItem2* This,REFPROPERTYKEY key,CLSID *pclsid) {
 9444    return This->lpVtbl->GetCLSID(This,key,pclsid);
 9445}
 9446static inline HRESULT IShellItem2_GetFileTime(IShellItem2* This,REFPROPERTYKEY key,FILETIME *pft) {
 9447    return This->lpVtbl->GetFileTime(This,key,pft);
 9448}
 9449static inline HRESULT IShellItem2_GetInt32(IShellItem2* This,REFPROPERTYKEY key,int *pi) {
 9450    return This->lpVtbl->GetInt32(This,key,pi);
 9451}
 9452static inline HRESULT IShellItem2_GetString(IShellItem2* This,REFPROPERTYKEY key,LPWSTR *ppsz) {
 9453    return This->lpVtbl->GetString(This,key,ppsz);
 9454}
 9455static inline HRESULT IShellItem2_GetUInt32(IShellItem2* This,REFPROPERTYKEY key,ULONG *pui) {
 9456    return This->lpVtbl->GetUInt32(This,key,pui);
 9457}
 9458static inline HRESULT IShellItem2_GetUInt64(IShellItem2* This,REFPROPERTYKEY key,ULONGLONG *pull) {
 9459    return This->lpVtbl->GetUInt64(This,key,pull);
 9460}
 9461static inline HRESULT IShellItem2_GetBool(IShellItem2* This,REFPROPERTYKEY key,WINBOOL *pf) {
 9462    return This->lpVtbl->GetBool(This,key,pf);
 9463}
 9464#endif
 9465#endif
 9466
 9467#endif
 9468
 9469
 9470#endif  /* __IShellItem2_INTERFACE_DEFINED__ */
 9471
 9472
 9473enum _SIIGBF {
 9474    SIIGBF_RESIZETOFIT = 0x0,
 9475    SIIGBF_BIGGERSIZEOK = 0x1,
 9476    SIIGBF_MEMORYONLY = 0x2,
 9477    SIIGBF_ICONONLY = 0x4,
 9478    SIIGBF_THUMBNAILONLY = 0x8,
 9479    SIIGBF_INCACHEONLY = 0x10,
 9480    SIIGBF_CROPTOSQUARE = 0x20,
 9481    SIIGBF_WIDETHUMBNAILS = 0x40,
 9482    SIIGBF_ICONBACKGROUND = 0x80,
 9483    SIIGBF_SCALEUP = 0x100
 9484};
 9485
 9486typedef int SIIGBF;
 9487
 9488/*****************************************************************************
 9489 * IShellItemImageFactory interface
 9490 */
 9491#ifndef __IShellItemImageFactory_INTERFACE_DEFINED__
 9492#define __IShellItemImageFactory_INTERFACE_DEFINED__
 9493
 9494DEFINE_GUID(IID_IShellItemImageFactory, 0xbcc18b79, 0xba16, 0x442f, 0x80,0xc4, 0x8a,0x59,0xc3,0x0c,0x46,0x3b);
 9495#if defined(__cplusplus) && !defined(CINTERFACE)
 9496MIDL_INTERFACE("bcc18b79-ba16-442f-80c4-8a59c30c463b")
 9497IShellItemImageFactory : public IUnknown
 9498{
 9499    virtual HRESULT STDMETHODCALLTYPE GetImage(
 9500        SIZE size,
 9501        SIIGBF flags,
 9502        HBITMAP *phbm) = 0;
 9503
 9504};
 9505#ifdef __CRT_UUID_DECL
 9506__CRT_UUID_DECL(IShellItemImageFactory, 0xbcc18b79, 0xba16, 0x442f, 0x80,0xc4, 0x8a,0x59,0xc3,0x0c,0x46,0x3b)
 9507#endif
 9508#else
 9509typedef struct IShellItemImageFactoryVtbl {
 9510    BEGIN_INTERFACE
 9511
 9512    /*** IUnknown methods ***/
 9513    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9514        IShellItemImageFactory *This,
 9515        REFIID riid,
 9516        void **ppvObject);
 9517
 9518    ULONG (STDMETHODCALLTYPE *AddRef)(
 9519        IShellItemImageFactory *This);
 9520
 9521    ULONG (STDMETHODCALLTYPE *Release)(
 9522        IShellItemImageFactory *This);
 9523
 9524    /*** IShellItemImageFactory methods ***/
 9525    HRESULT (STDMETHODCALLTYPE *GetImage)(
 9526        IShellItemImageFactory *This,
 9527        SIZE size,
 9528        SIIGBF flags,
 9529        HBITMAP *phbm);
 9530
 9531    END_INTERFACE
 9532} IShellItemImageFactoryVtbl;
 9533
 9534interface IShellItemImageFactory {
 9535    CONST_VTBL IShellItemImageFactoryVtbl* lpVtbl;
 9536};
 9537
 9538#ifdef COBJMACROS
 9539#ifndef WIDL_C_INLINE_WRAPPERS
 9540/*** IUnknown methods ***/
 9541#define IShellItemImageFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9542#define IShellItemImageFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
 9543#define IShellItemImageFactory_Release(This) (This)->lpVtbl->Release(This)
 9544/*** IShellItemImageFactory methods ***/
 9545#define IShellItemImageFactory_GetImage(This,size,flags,phbm) (This)->lpVtbl->GetImage(This,size,flags,phbm)
 9546#else
 9547/*** IUnknown methods ***/
 9548static inline HRESULT IShellItemImageFactory_QueryInterface(IShellItemImageFactory* This,REFIID riid,void **ppvObject) {
 9549    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9550}
 9551static inline ULONG IShellItemImageFactory_AddRef(IShellItemImageFactory* This) {
 9552    return This->lpVtbl->AddRef(This);
 9553}
 9554static inline ULONG IShellItemImageFactory_Release(IShellItemImageFactory* This) {
 9555    return This->lpVtbl->Release(This);
 9556}
 9557/*** IShellItemImageFactory methods ***/
 9558static inline HRESULT IShellItemImageFactory_GetImage(IShellItemImageFactory* This,SIZE size,SIIGBF flags,HBITMAP *phbm) {
 9559    return This->lpVtbl->GetImage(This,size,flags,phbm);
 9560}
 9561#endif
 9562#endif
 9563
 9564#endif
 9565
 9566
 9567#endif  /* __IShellItemImageFactory_INTERFACE_DEFINED__ */
 9568
 9569
 9570/*****************************************************************************
 9571 * IUserAccountChangeCallback interface
 9572 */
 9573#ifndef __IUserAccountChangeCallback_INTERFACE_DEFINED__
 9574#define __IUserAccountChangeCallback_INTERFACE_DEFINED__
 9575
 9576DEFINE_GUID(IID_IUserAccountChangeCallback, 0xa561e69a, 0xb4b8, 0x4113, 0x91,0xa5, 0x64,0xc6,0xbc,0xca,0x34,0x30);
 9577#if defined(__cplusplus) && !defined(CINTERFACE)
 9578MIDL_INTERFACE("a561e69a-b4b8-4113-91a5-64c6bcca3430")
 9579IUserAccountChangeCallback : public IUnknown
 9580{
 9581    virtual HRESULT STDMETHODCALLTYPE OnPictureChange(
 9582        LPCWSTR pszUserName) = 0;
 9583
 9584};
 9585#ifdef __CRT_UUID_DECL
 9586__CRT_UUID_DECL(IUserAccountChangeCallback, 0xa561e69a, 0xb4b8, 0x4113, 0x91,0xa5, 0x64,0xc6,0xbc,0xca,0x34,0x30)
 9587#endif
 9588#else
 9589typedef struct IUserAccountChangeCallbackVtbl {
 9590    BEGIN_INTERFACE
 9591
 9592    /*** IUnknown methods ***/
 9593    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9594        IUserAccountChangeCallback *This,
 9595        REFIID riid,
 9596        void **ppvObject);
 9597
 9598    ULONG (STDMETHODCALLTYPE *AddRef)(
 9599        IUserAccountChangeCallback *This);
 9600
 9601    ULONG (STDMETHODCALLTYPE *Release)(
 9602        IUserAccountChangeCallback *This);
 9603
 9604    /*** IUserAccountChangeCallback methods ***/
 9605    HRESULT (STDMETHODCALLTYPE *OnPictureChange)(
 9606        IUserAccountChangeCallback *This,
 9607        LPCWSTR pszUserName);
 9608
 9609    END_INTERFACE
 9610} IUserAccountChangeCallbackVtbl;
 9611
 9612interface IUserAccountChangeCallback {
 9613    CONST_VTBL IUserAccountChangeCallbackVtbl* lpVtbl;
 9614};
 9615
 9616#ifdef COBJMACROS
 9617#ifndef WIDL_C_INLINE_WRAPPERS
 9618/*** IUnknown methods ***/
 9619#define IUserAccountChangeCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9620#define IUserAccountChangeCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
 9621#define IUserAccountChangeCallback_Release(This) (This)->lpVtbl->Release(This)
 9622/*** IUserAccountChangeCallback methods ***/
 9623#define IUserAccountChangeCallback_OnPictureChange(This,pszUserName) (This)->lpVtbl->OnPictureChange(This,pszUserName)
 9624#else
 9625/*** IUnknown methods ***/
 9626static inline HRESULT IUserAccountChangeCallback_QueryInterface(IUserAccountChangeCallback* This,REFIID riid,void **ppvObject) {
 9627    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9628}
 9629static inline ULONG IUserAccountChangeCallback_AddRef(IUserAccountChangeCallback* This) {
 9630    return This->lpVtbl->AddRef(This);
 9631}
 9632static inline ULONG IUserAccountChangeCallback_Release(IUserAccountChangeCallback* This) {
 9633    return This->lpVtbl->Release(This);
 9634}
 9635/*** IUserAccountChangeCallback methods ***/
 9636static inline HRESULT IUserAccountChangeCallback_OnPictureChange(IUserAccountChangeCallback* This,LPCWSTR pszUserName) {
 9637    return This->lpVtbl->OnPictureChange(This,pszUserName);
 9638}
 9639#endif
 9640#endif
 9641
 9642#endif
 9643
 9644
 9645#endif  /* __IUserAccountChangeCallback_INTERFACE_DEFINED__ */
 9646
 9647
 9648/*****************************************************************************
 9649 * IEnumShellItems interface
 9650 */
 9651#ifndef __IEnumShellItems_INTERFACE_DEFINED__
 9652#define __IEnumShellItems_INTERFACE_DEFINED__
 9653
 9654DEFINE_GUID(IID_IEnumShellItems, 0x70629033, 0xe363, 0x4a28, 0xa5,0x67, 0x0d,0xb7,0x80,0x06,0xe6,0xd7);
 9655#if defined(__cplusplus) && !defined(CINTERFACE)
 9656MIDL_INTERFACE("70629033-e363-4a28-a567-0db78006e6d7")
 9657IEnumShellItems : public IUnknown
 9658{
 9659    virtual HRESULT STDMETHODCALLTYPE Next(
 9660        ULONG celt,
 9661        IShellItem **rgelt,
 9662        ULONG *pceltFetched) = 0;
 9663
 9664    virtual HRESULT STDMETHODCALLTYPE Skip(
 9665        ULONG celt) = 0;
 9666
 9667    virtual HRESULT STDMETHODCALLTYPE Reset(
 9668        ) = 0;
 9669
 9670    virtual HRESULT STDMETHODCALLTYPE Clone(
 9671        IEnumShellItems **ppenum) = 0;
 9672
 9673};
 9674#ifdef __CRT_UUID_DECL
 9675__CRT_UUID_DECL(IEnumShellItems, 0x70629033, 0xe363, 0x4a28, 0xa5,0x67, 0x0d,0xb7,0x80,0x06,0xe6,0xd7)
 9676#endif
 9677#else
 9678typedef struct IEnumShellItemsVtbl {
 9679    BEGIN_INTERFACE
 9680
 9681    /*** IUnknown methods ***/
 9682    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9683        IEnumShellItems *This,
 9684        REFIID riid,
 9685        void **ppvObject);
 9686
 9687    ULONG (STDMETHODCALLTYPE *AddRef)(
 9688        IEnumShellItems *This);
 9689
 9690    ULONG (STDMETHODCALLTYPE *Release)(
 9691        IEnumShellItems *This);
 9692
 9693    /*** IEnumShellItems methods ***/
 9694    HRESULT (STDMETHODCALLTYPE *Next)(
 9695        IEnumShellItems *This,
 9696        ULONG celt,
 9697        IShellItem **rgelt,
 9698        ULONG *pceltFetched);
 9699
 9700    HRESULT (STDMETHODCALLTYPE *Skip)(
 9701        IEnumShellItems *This,
 9702        ULONG celt);
 9703
 9704    HRESULT (STDMETHODCALLTYPE *Reset)(
 9705        IEnumShellItems *This);
 9706
 9707    HRESULT (STDMETHODCALLTYPE *Clone)(
 9708        IEnumShellItems *This,
 9709        IEnumShellItems **ppenum);
 9710
 9711    END_INTERFACE
 9712} IEnumShellItemsVtbl;
 9713
 9714interface IEnumShellItems {
 9715    CONST_VTBL IEnumShellItemsVtbl* lpVtbl;
 9716};
 9717
 9718#ifdef COBJMACROS
 9719#ifndef WIDL_C_INLINE_WRAPPERS
 9720/*** IUnknown methods ***/
 9721#define IEnumShellItems_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9722#define IEnumShellItems_AddRef(This) (This)->lpVtbl->AddRef(This)
 9723#define IEnumShellItems_Release(This) (This)->lpVtbl->Release(This)
 9724/*** IEnumShellItems methods ***/
 9725#define IEnumShellItems_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
 9726#define IEnumShellItems_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
 9727#define IEnumShellItems_Reset(This) (This)->lpVtbl->Reset(This)
 9728#define IEnumShellItems_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
 9729#else
 9730/*** IUnknown methods ***/
 9731static inline HRESULT IEnumShellItems_QueryInterface(IEnumShellItems* This,REFIID riid,void **ppvObject) {
 9732    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9733}
 9734static inline ULONG IEnumShellItems_AddRef(IEnumShellItems* This) {
 9735    return This->lpVtbl->AddRef(This);
 9736}
 9737static inline ULONG IEnumShellItems_Release(IEnumShellItems* This) {
 9738    return This->lpVtbl->Release(This);
 9739}
 9740/*** IEnumShellItems methods ***/
 9741static inline HRESULT IEnumShellItems_Next(IEnumShellItems* This,ULONG celt,IShellItem **rgelt,ULONG *pceltFetched) {
 9742    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
 9743}
 9744static inline HRESULT IEnumShellItems_Skip(IEnumShellItems* This,ULONG celt) {
 9745    return This->lpVtbl->Skip(This,celt);
 9746}
 9747static inline HRESULT IEnumShellItems_Reset(IEnumShellItems* This) {
 9748    return This->lpVtbl->Reset(This);
 9749}
 9750static inline HRESULT IEnumShellItems_Clone(IEnumShellItems* This,IEnumShellItems **ppenum) {
 9751    return This->lpVtbl->Clone(This,ppenum);
 9752}
 9753#endif
 9754#endif
 9755
 9756#endif
 9757
 9758HRESULT STDMETHODCALLTYPE IEnumShellItems_RemoteNext_Proxy(
 9759    IEnumShellItems* This,
 9760    ULONG celt,
 9761    IShellItem **rgelt,
 9762    ULONG *pceltFetched);
 9763void __RPC_STUB IEnumShellItems_RemoteNext_Stub(
 9764    IRpcStubBuffer* This,
 9765    IRpcChannelBuffer* pRpcChannelBuffer,
 9766    PRPC_MESSAGE pRpcMessage,
 9767    DWORD* pdwStubPhase);
 9768HRESULT CALLBACK IEnumShellItems_Next_Proxy(
 9769    IEnumShellItems* This,
 9770    ULONG celt,
 9771    IShellItem **rgelt,
 9772    ULONG *pceltFetched);
 9773HRESULT __RPC_STUB IEnumShellItems_Next_Stub(
 9774    IEnumShellItems* This,
 9775    ULONG celt,
 9776    IShellItem **rgelt,
 9777    ULONG *pceltFetched);
 9778
 9779#endif  /* __IEnumShellItems_INTERFACE_DEFINED__ */
 9780
 9781
 9782typedef GUID STGTRANSCONFIRMATION;
 9783typedef GUID *LPSTGTRANSCONFIRMATION;
 9784
 9785typedef enum STGOP {
 9786    STGOP_MOVE = 1,
 9787    STGOP_COPY = 2,
 9788    STGOP_SYNC = 3,
 9789    STGOP_REMOVE = 5,
 9790    STGOP_RENAME = 6,
 9791    STGOP_APPLYPROPERTIES = 8,
 9792    STGOP_NEW = 10
 9793} STGOP;
 9794
 9795enum _TRANSFER_SOURCE_FLAGS {
 9796    TSF_NORMAL = 0x0,
 9797    TSF_FAIL_EXIST = 0x0,
 9798    TSF_RENAME_EXIST = 0x1,
 9799    TSF_OVERWRITE_EXIST = 0x2,
 9800    TSF_ALLOW_DECRYPTION = 0x4,
 9801    TSF_NO_SECURITY = 0x8,
 9802    TSF_COPY_CREATION_TIME = 0x10,
 9803    TSF_COPY_WRITE_TIME = 0x20,
 9804    TSF_USE_FULL_ACCESS = 0x40,
 9805    TSF_DELETE_RECYCLE_IF_POSSIBLE = 0x80,
 9806    TSF_COPY_HARD_LINK = 0x100,
 9807    TSF_COPY_LOCALIZED_NAME = 0x200,
 9808    TSF_MOVE_AS_COPY_DELETE = 0x400,
 9809    TSF_SUSPEND_SHELLEVENTS = 0x800
 9810};
 9811
 9812typedef DWORD TRANSFER_SOURCE_FLAGS;
 9813
 9814#if _WIN32_IE >= _WIN32_IE_IE70
 9815/*****************************************************************************
 9816 * ITransferAdviseSink interface
 9817 */
 9818#ifndef __ITransferAdviseSink_INTERFACE_DEFINED__
 9819#define __ITransferAdviseSink_INTERFACE_DEFINED__
 9820
 9821enum _TRANSFER_ADVISE_STATE {
 9822    TS_NONE = 0x0,
 9823    TS_PERFORMING = 0x1,
 9824    TS_PREPARING = 0x2,
 9825    TS_INDETERMINATE = 0x4
 9826};
 9827
 9828typedef DWORD TRANSFER_ADVISE_STATE;
 9829
 9830DEFINE_GUID(IID_ITransferAdviseSink, 0xd594d0d8, 0x8da7, 0x457b, 0xb3,0xb4, 0xce,0x5d,0xba,0xac,0x0b,0x88);
 9831#if defined(__cplusplus) && !defined(CINTERFACE)
 9832MIDL_INTERFACE("d594d0d8-8da7-457b-b3b4-ce5dbaac0b88")
 9833ITransferAdviseSink : public IUnknown
 9834{
 9835    virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
 9836        ULONGLONG ullSizeCurrent,
 9837        ULONGLONG ullSizeTotal,
 9838        int nFilesCurrent,
 9839        int nFilesTotal,
 9840        int nFoldersCurrent,
 9841        int nFoldersTotal) = 0;
 9842
 9843    virtual HRESULT STDMETHODCALLTYPE UpdateTransferState(
 9844        TRANSFER_ADVISE_STATE ts) = 0;
 9845
 9846    virtual HRESULT STDMETHODCALLTYPE ConfirmOverwrite(
 9847        IShellItem *psiSource,
 9848        IShellItem *psiDestParent,
 9849        LPCWSTR pszName) = 0;
 9850
 9851    virtual HRESULT STDMETHODCALLTYPE ConfirmEncryptionLoss(
 9852        IShellItem *psiSource) = 0;
 9853
 9854    virtual HRESULT STDMETHODCALLTYPE FileFailure(
 9855        IShellItem *psi,
 9856        LPCWSTR pszItem,
 9857        HRESULT hrError,
 9858        LPWSTR pszRename,
 9859        ULONG cchRename) = 0;
 9860
 9861    virtual HRESULT STDMETHODCALLTYPE SubStreamFailure(
 9862        IShellItem *psi,
 9863        LPCWSTR pszStreamName,
 9864        HRESULT hrError) = 0;
 9865
 9866    virtual HRESULT STDMETHODCALLTYPE PropertyFailure(
 9867        IShellItem *psi,
 9868        const PROPERTYKEY *pkey,
 9869        HRESULT hrError) = 0;
 9870
 9871};
 9872#ifdef __CRT_UUID_DECL
 9873__CRT_UUID_DECL(ITransferAdviseSink, 0xd594d0d8, 0x8da7, 0x457b, 0xb3,0xb4, 0xce,0x5d,0xba,0xac,0x0b,0x88)
 9874#endif
 9875#else
 9876typedef struct ITransferAdviseSinkVtbl {
 9877    BEGIN_INTERFACE
 9878
 9879    /*** IUnknown methods ***/
 9880    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
 9881        ITransferAdviseSink *This,
 9882        REFIID riid,
 9883        void **ppvObject);
 9884
 9885    ULONG (STDMETHODCALLTYPE *AddRef)(
 9886        ITransferAdviseSink *This);
 9887
 9888    ULONG (STDMETHODCALLTYPE *Release)(
 9889        ITransferAdviseSink *This);
 9890
 9891    /*** ITransferAdviseSink methods ***/
 9892    HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
 9893        ITransferAdviseSink *This,
 9894        ULONGLONG ullSizeCurrent,
 9895        ULONGLONG ullSizeTotal,
 9896        int nFilesCurrent,
 9897        int nFilesTotal,
 9898        int nFoldersCurrent,
 9899        int nFoldersTotal);
 9900
 9901    HRESULT (STDMETHODCALLTYPE *UpdateTransferState)(
 9902        ITransferAdviseSink *This,
 9903        TRANSFER_ADVISE_STATE ts);
 9904
 9905    HRESULT (STDMETHODCALLTYPE *ConfirmOverwrite)(
 9906        ITransferAdviseSink *This,
 9907        IShellItem *psiSource,
 9908        IShellItem *psiDestParent,
 9909        LPCWSTR pszName);
 9910
 9911    HRESULT (STDMETHODCALLTYPE *ConfirmEncryptionLoss)(
 9912        ITransferAdviseSink *This,
 9913        IShellItem *psiSource);
 9914
 9915    HRESULT (STDMETHODCALLTYPE *FileFailure)(
 9916        ITransferAdviseSink *This,
 9917        IShellItem *psi,
 9918        LPCWSTR pszItem,
 9919        HRESULT hrError,
 9920        LPWSTR pszRename,
 9921        ULONG cchRename);
 9922
 9923    HRESULT (STDMETHODCALLTYPE *SubStreamFailure)(
 9924        ITransferAdviseSink *This,
 9925        IShellItem *psi,
 9926        LPCWSTR pszStreamName,
 9927        HRESULT hrError);
 9928
 9929    HRESULT (STDMETHODCALLTYPE *PropertyFailure)(
 9930        ITransferAdviseSink *This,
 9931        IShellItem *psi,
 9932        const PROPERTYKEY *pkey,
 9933        HRESULT hrError);
 9934
 9935    END_INTERFACE
 9936} ITransferAdviseSinkVtbl;
 9937
 9938interface ITransferAdviseSink {
 9939    CONST_VTBL ITransferAdviseSinkVtbl* lpVtbl;
 9940};
 9941
 9942#ifdef COBJMACROS
 9943#ifndef WIDL_C_INLINE_WRAPPERS
 9944/*** IUnknown methods ***/
 9945#define ITransferAdviseSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
 9946#define ITransferAdviseSink_AddRef(This) (This)->lpVtbl->AddRef(This)
 9947#define ITransferAdviseSink_Release(This) (This)->lpVtbl->Release(This)
 9948/*** ITransferAdviseSink methods ***/
 9949#define ITransferAdviseSink_UpdateProgress(This,ullSizeCurrent,ullSizeTotal,nFilesCurrent,nFilesTotal,nFoldersCurrent,nFoldersTotal) (This)->lpVtbl->UpdateProgress(This,ullSizeCurrent,ullSizeTotal,nFilesCurrent,nFilesTotal,nFoldersCurrent,nFoldersTotal)
 9950#define ITransferAdviseSink_UpdateTransferState(This,ts) (This)->lpVtbl->UpdateTransferState(This,ts)
 9951#define ITransferAdviseSink_ConfirmOverwrite(This,psiSource,psiDestParent,pszName) (This)->lpVtbl->ConfirmOverwrite(This,psiSource,psiDestParent,pszName)
 9952#define ITransferAdviseSink_ConfirmEncryptionLoss(This,psiSource) (This)->lpVtbl->ConfirmEncryptionLoss(This,psiSource)
 9953#define ITransferAdviseSink_FileFailure(This,psi,pszItem,hrError,pszRename,cchRename) (This)->lpVtbl->FileFailure(This,psi,pszItem,hrError,pszRename,cchRename)
 9954#define ITransferAdviseSink_SubStreamFailure(This,psi,pszStreamName,hrError) (This)->lpVtbl->SubStreamFailure(This,psi,pszStreamName,hrError)
 9955#define ITransferAdviseSink_PropertyFailure(This,psi,pkey,hrError) (This)->lpVtbl->PropertyFailure(This,psi,pkey,hrError)
 9956#else
 9957/*** IUnknown methods ***/
 9958static inline HRESULT ITransferAdviseSink_QueryInterface(ITransferAdviseSink* This,REFIID riid,void **ppvObject) {
 9959    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
 9960}
 9961static inline ULONG ITransferAdviseSink_AddRef(ITransferAdviseSink* This) {
 9962    return This->lpVtbl->AddRef(This);
 9963}
 9964static inline ULONG ITransferAdviseSink_Release(ITransferAdviseSink* This) {
 9965    return This->lpVtbl->Release(This);
 9966}
 9967/*** ITransferAdviseSink methods ***/
 9968static inline HRESULT ITransferAdviseSink_UpdateProgress(ITransferAdviseSink* This,ULONGLONG ullSizeCurrent,ULONGLONG ullSizeTotal,int nFilesCurrent,int nFilesTotal,int nFoldersCurrent,int nFoldersTotal) {
 9969    return This->lpVtbl->UpdateProgress(This,ullSizeCurrent,ullSizeTotal,nFilesCurrent,nFilesTotal,nFoldersCurrent,nFoldersTotal);
 9970}
 9971static inline HRESULT ITransferAdviseSink_UpdateTransferState(ITransferAdviseSink* This,TRANSFER_ADVISE_STATE ts) {
 9972    return This->lpVtbl->UpdateTransferState(This,ts);
 9973}
 9974static inline HRESULT ITransferAdviseSink_ConfirmOverwrite(ITransferAdviseSink* This,IShellItem *psiSource,IShellItem *psiDestParent,LPCWSTR pszName) {
 9975    return This->lpVtbl->ConfirmOverwrite(This,psiSource,psiDestParent,pszName);
 9976}
 9977static inline HRESULT ITransferAdviseSink_ConfirmEncryptionLoss(ITransferAdviseSink* This,IShellItem *psiSource) {
 9978    return This->lpVtbl->ConfirmEncryptionLoss(This,psiSource);
 9979}
 9980static inline HRESULT ITransferAdviseSink_FileFailure(ITransferAdviseSink* This,IShellItem *psi,LPCWSTR pszItem,HRESULT hrError,LPWSTR pszRename,ULONG cchRename) {
 9981    return This->lpVtbl->FileFailure(This,psi,pszItem,hrError,pszRename,cchRename);
 9982}
 9983static inline HRESULT ITransferAdviseSink_SubStreamFailure(ITransferAdviseSink* This,IShellItem *psi,LPCWSTR pszStreamName,HRESULT hrError) {
 9984    return This->lpVtbl->SubStreamFailure(This,psi,pszStreamName,hrError);
 9985}
 9986static inline HRESULT ITransferAdviseSink_PropertyFailure(ITransferAdviseSink* This,IShellItem *psi,const PROPERTYKEY *pkey,HRESULT hrError) {
 9987    return This->lpVtbl->PropertyFailure(This,psi,pkey,hrError);
 9988}
 9989#endif
 9990#endif
 9991
 9992#endif
 9993
 9994
 9995#endif  /* __ITransferAdviseSink_INTERFACE_DEFINED__ */
 9996
 9997#endif
 9998
 9999#if NTDDI_VERSION >= NTDDI_VISTA
10000/*****************************************************************************
10001 * ITransferSource interface
10002 */
10003#ifndef __ITransferSource_INTERFACE_DEFINED__
10004#define __ITransferSource_INTERFACE_DEFINED__
10005
10006DEFINE_GUID(IID_ITransferSource, 0x00adb003, 0xbde9, 0x45c6, 0x8e,0x29, 0xd0,0x9f,0x93,0x53,0xe1,0x08);
10007#if defined(__cplusplus) && !defined(CINTERFACE)
10008MIDL_INTERFACE("00adb003-bde9-45c6-8e29-d09f9353e108")
10009ITransferSource : public IUnknown
10010{
10011    virtual HRESULT STDMETHODCALLTYPE Advise(
10012        ITransferAdviseSink *psink,
10013        DWORD *pdwCookie) = 0;
10014
10015    virtual HRESULT STDMETHODCALLTYPE Unadvise(
10016        DWORD dwCookie) = 0;
10017
10018    virtual HRESULT STDMETHODCALLTYPE SetProperties(
10019        IPropertyChangeArray *pproparray) = 0;
10020
10021    virtual HRESULT STDMETHODCALLTYPE OpenItem(
10022        IShellItem *psi,
10023        TRANSFER_SOURCE_FLAGS flags,
10024        REFIID riid,
10025        void **ppv) = 0;
10026
10027    virtual HRESULT STDMETHODCALLTYPE MoveItem(
10028        IShellItem *psi,
10029        IShellItem *psiParentDst,
10030        LPCWSTR pszNameDst,
10031        TRANSFER_SOURCE_FLAGS flags,
10032        IShellItem **ppsiNew) = 0;
10033
10034    virtual HRESULT STDMETHODCALLTYPE RecycleItem(
10035        IShellItem *psiSource,
10036        IShellItem *psiParentDest,
10037        TRANSFER_SOURCE_FLAGS flags,
10038        IShellItem **ppsiNewDest) = 0;
10039
10040    virtual HRESULT STDMETHODCALLTYPE RemoveItem(
10041        IShellItem *psiSource,
10042        TRANSFER_SOURCE_FLAGS flags) = 0;
10043
10044    virtual HRESULT STDMETHODCALLTYPE RenameItem(
10045        IShellItem *psiSource,
10046        LPCWSTR pszNewName,
10047        TRANSFER_SOURCE_FLAGS flags,
10048        IShellItem **ppsiNewDest) = 0;
10049
10050    virtual HRESULT STDMETHODCALLTYPE LinkItem(
10051        IShellItem *psiSource,
10052        IShellItem *psiParentDest,
10053        LPCWSTR pszNewName,
10054        TRANSFER_SOURCE_FLAGS flags,
10055        IShellItem **ppsiNewDest) = 0;
10056
10057    virtual HRESULT STDMETHODCALLTYPE ApplyPropertiesToItem(
10058        IShellItem *psiSource,
10059        IShellItem **ppsiNew) = 0;
10060
10061    virtual HRESULT STDMETHODCALLTYPE GetDefaultDestinationName(
10062        IShellItem *psiSource,
10063        IShellItem *psiParentDest,
10064        LPWSTR *ppszDestinationName) = 0;
10065
10066    virtual HRESULT STDMETHODCALLTYPE EnterFolder(
10067        IShellItem *psiChildFolderDest) = 0;
10068
10069    virtual HRESULT STDMETHODCALLTYPE LeaveFolder(
10070        IShellItem *psiChildFolderDest) = 0;
10071
10072};
10073#ifdef __CRT_UUID_DECL
10074__CRT_UUID_DECL(ITransferSource, 0x00adb003, 0xbde9, 0x45c6, 0x8e,0x29, 0xd0,0x9f,0x93,0x53,0xe1,0x08)
10075#endif
10076#else
10077typedef struct ITransferSourceVtbl {
10078    BEGIN_INTERFACE
10079
10080    /*** IUnknown methods ***/
10081    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10082        ITransferSource *This,
10083        REFIID riid,
10084        void **ppvObject);
10085
10086    ULONG (STDMETHODCALLTYPE *AddRef)(
10087        ITransferSource *This);
10088
10089    ULONG (STDMETHODCALLTYPE *Release)(
10090        ITransferSource *This);
10091
10092    /*** ITransferSource methods ***/
10093    HRESULT (STDMETHODCALLTYPE *Advise)(
10094        ITransferSource *This,
10095        ITransferAdviseSink *psink,
10096        DWORD *pdwCookie);
10097
10098    HRESULT (STDMETHODCALLTYPE *Unadvise)(
10099        ITransferSource *This,
10100        DWORD dwCookie);
10101
10102    HRESULT (STDMETHODCALLTYPE *SetProperties)(
10103        ITransferSource *This,
10104        IPropertyChangeArray *pproparray);
10105
10106    HRESULT (STDMETHODCALLTYPE *OpenItem)(
10107        ITransferSource *This,
10108        IShellItem *psi,
10109        TRANSFER_SOURCE_FLAGS flags,
10110        REFIID riid,
10111        void **ppv);
10112
10113    HRESULT (STDMETHODCALLTYPE *MoveItem)(
10114        ITransferSource *This,
10115        IShellItem *psi,
10116        IShellItem *psiParentDst,
10117        LPCWSTR pszNameDst,
10118        TRANSFER_SOURCE_FLAGS flags,
10119        IShellItem **ppsiNew);
10120
10121    HRESULT (STDMETHODCALLTYPE *RecycleItem)(
10122        ITransferSource *This,
10123        IShellItem *psiSource,
10124        IShellItem *psiParentDest,
10125        TRANSFER_SOURCE_FLAGS flags,
10126        IShellItem **ppsiNewDest);
10127
10128    HRESULT (STDMETHODCALLTYPE *RemoveItem)(
10129        ITransferSource *This,
10130        IShellItem *psiSource,
10131        TRANSFER_SOURCE_FLAGS flags);
10132
10133    HRESULT (STDMETHODCALLTYPE *RenameItem)(
10134        ITransferSource *This,
10135        IShellItem *psiSource,
10136        LPCWSTR pszNewName,
10137        TRANSFER_SOURCE_FLAGS flags,
10138        IShellItem **ppsiNewDest);
10139
10140    HRESULT (STDMETHODCALLTYPE *LinkItem)(
10141        ITransferSource *This,
10142        IShellItem *psiSource,
10143        IShellItem *psiParentDest,
10144        LPCWSTR pszNewName,
10145        TRANSFER_SOURCE_FLAGS flags,
10146        IShellItem **ppsiNewDest);
10147
10148    HRESULT (STDMETHODCALLTYPE *ApplyPropertiesToItem)(
10149        ITransferSource *This,
10150        IShellItem *psiSource,
10151        IShellItem **ppsiNew);
10152
10153    HRESULT (STDMETHODCALLTYPE *GetDefaultDestinationName)(
10154        ITransferSource *This,
10155        IShellItem *psiSource,
10156        IShellItem *psiParentDest,
10157        LPWSTR *ppszDestinationName);
10158
10159    HRESULT (STDMETHODCALLTYPE *EnterFolder)(
10160        ITransferSource *This,
10161        IShellItem *psiChildFolderDest);
10162
10163    HRESULT (STDMETHODCALLTYPE *LeaveFolder)(
10164        ITransferSource *This,
10165        IShellItem *psiChildFolderDest);
10166
10167    END_INTERFACE
10168} ITransferSourceVtbl;
10169
10170interface ITransferSource {
10171    CONST_VTBL ITransferSourceVtbl* lpVtbl;
10172};
10173
10174#ifdef COBJMACROS
10175#ifndef WIDL_C_INLINE_WRAPPERS
10176/*** IUnknown methods ***/
10177#define ITransferSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10178#define ITransferSource_AddRef(This) (This)->lpVtbl->AddRef(This)
10179#define ITransferSource_Release(This) (This)->lpVtbl->Release(This)
10180/*** ITransferSource methods ***/
10181#define ITransferSource_Advise(This,psink,pdwCookie) (This)->lpVtbl->Advise(This,psink,pdwCookie)
10182#define ITransferSource_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
10183#define ITransferSource_SetProperties(This,pproparray) (This)->lpVtbl->SetProperties(This,pproparray)
10184#define ITransferSource_OpenItem(This,psi,flags,riid,ppv) (This)->lpVtbl->OpenItem(This,psi,flags,riid,ppv)
10185#define ITransferSource_MoveItem(This,psi,psiParentDst,pszNameDst,flags,ppsiNew) (This)->lpVtbl->MoveItem(This,psi,psiParentDst,pszNameDst,flags,ppsiNew)
10186#define ITransferSource_RecycleItem(This,psiSource,psiParentDest,flags,ppsiNewDest) (This)->lpVtbl->RecycleItem(This,psiSource,psiParentDest,flags,ppsiNewDest)
10187#define ITransferSource_RemoveItem(This,psiSource,flags) (This)->lpVtbl->RemoveItem(This,psiSource,flags)
10188#define ITransferSource_RenameItem(This,psiSource,pszNewName,flags,ppsiNewDest) (This)->lpVtbl->RenameItem(This,psiSource,pszNewName,flags,ppsiNewDest)
10189#define ITransferSource_LinkItem(This,psiSource,psiParentDest,pszNewName,flags,ppsiNewDest) (This)->lpVtbl->LinkItem(This,psiSource,psiParentDest,pszNewName,flags,ppsiNewDest)
10190#define ITransferSource_ApplyPropertiesToItem(This,psiSource,ppsiNew) (This)->lpVtbl->ApplyPropertiesToItem(This,psiSource,ppsiNew)
10191#define ITransferSource_GetDefaultDestinationName(This,psiSource,psiParentDest,ppszDestinationName) (This)->lpVtbl->GetDefaultDestinationName(This,psiSource,psiParentDest,ppszDestinationName)
10192#define ITransferSource_EnterFolder(This,psiChildFolderDest) (This)->lpVtbl->EnterFolder(This,psiChildFolderDest)
10193#define ITransferSource_LeaveFolder(This,psiChildFolderDest) (This)->lpVtbl->LeaveFolder(This,psiChildFolderDest)
10194#else
10195/*** IUnknown methods ***/
10196static inline HRESULT ITransferSource_QueryInterface(ITransferSource* This,REFIID riid,void **ppvObject) {
10197    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10198}
10199static inline ULONG ITransferSource_AddRef(ITransferSource* This) {
10200    return This->lpVtbl->AddRef(This);
10201}
10202static inline ULONG ITransferSource_Release(ITransferSource* This) {
10203    return This->lpVtbl->Release(This);
10204}
10205/*** ITransferSource methods ***/
10206static inline HRESULT ITransferSource_Advise(ITransferSource* This,ITransferAdviseSink *psink,DWORD *pdwCookie) {
10207    return This->lpVtbl->Advise(This,psink,pdwCookie);
10208}
10209static inline HRESULT ITransferSource_Unadvise(ITransferSource* This,DWORD dwCookie) {
10210    return This->lpVtbl->Unadvise(This,dwCookie);
10211}
10212static inline HRESULT ITransferSource_SetProperties(ITransferSource* This,IPropertyChangeArray *pproparray) {
10213    return This->lpVtbl->SetProperties(This,pproparray);
10214}
10215static inline HRESULT ITransferSource_OpenItem(ITransferSource* This,IShellItem *psi,TRANSFER_SOURCE_FLAGS flags,REFIID riid,void **ppv) {
10216    return This->lpVtbl->OpenItem(This,psi,flags,riid,ppv);
10217}
10218static inline HRESULT ITransferSource_MoveItem(ITransferSource* This,IShellItem *psi,IShellItem *psiParentDst,LPCWSTR pszNameDst,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNew) {
10219    return This->lpVtbl->MoveItem(This,psi,psiParentDst,pszNameDst,flags,ppsiNew);
10220}
10221static inline HRESULT ITransferSource_RecycleItem(ITransferSource* This,IShellItem *psiSource,IShellItem *psiParentDest,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNewDest) {
10222    return This->lpVtbl->RecycleItem(This,psiSource,psiParentDest,flags,ppsiNewDest);
10223}
10224static inline HRESULT ITransferSource_RemoveItem(ITransferSource* This,IShellItem *psiSource,TRANSFER_SOURCE_FLAGS flags) {
10225    return This->lpVtbl->RemoveItem(This,psiSource,flags);
10226}
10227static inline HRESULT ITransferSource_RenameItem(ITransferSource* This,IShellItem *psiSource,LPCWSTR pszNewName,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNewDest) {
10228    return This->lpVtbl->RenameItem(This,psiSource,pszNewName,flags,ppsiNewDest);
10229}
10230static inline HRESULT ITransferSource_LinkItem(ITransferSource* This,IShellItem *psiSource,IShellItem *psiParentDest,LPCWSTR pszNewName,TRANSFER_SOURCE_FLAGS flags,IShellItem **ppsiNewDest) {
10231    return This->lpVtbl->LinkItem(This,psiSource,psiParentDest,pszNewName,flags,ppsiNewDest);
10232}
10233static inline HRESULT ITransferSource_ApplyPropertiesToItem(ITransferSource* This,IShellItem *psiSource,IShellItem **ppsiNew) {
10234    return This->lpVtbl->ApplyPropertiesToItem(This,psiSource,ppsiNew);
10235}
10236static inline HRESULT ITransferSource_GetDefaultDestinationName(ITransferSource* This,IShellItem *psiSource,IShellItem *psiParentDest,LPWSTR *ppszDestinationName) {
10237    return This->lpVtbl->GetDefaultDestinationName(This,psiSource,psiParentDest,ppszDestinationName);
10238}
10239static inline HRESULT ITransferSource_EnterFolder(ITransferSource* This,IShellItem *psiChildFolderDest) {
10240    return This->lpVtbl->EnterFolder(This,psiChildFolderDest);
10241}
10242static inline HRESULT ITransferSource_LeaveFolder(ITransferSource* This,IShellItem *psiChildFolderDest) {
10243    return This->lpVtbl->LeaveFolder(This,psiChildFolderDest);
10244}
10245#endif
10246#endif
10247
10248#endif
10249
10250
10251#endif  /* __ITransferSource_INTERFACE_DEFINED__ */
10252
10253#endif
10254
10255typedef struct SHELL_ITEM_RESOURCE {
10256    GUID guidType;
10257    WCHAR szName[260];
10258} SHELL_ITEM_RESOURCE;
10259
10260/*****************************************************************************
10261 * IEnumResources interface
10262 */
10263#ifndef __IEnumResources_INTERFACE_DEFINED__
10264#define __IEnumResources_INTERFACE_DEFINED__
10265
10266DEFINE_GUID(IID_IEnumResources, 0x2dd81fe3, 0xa83c, 0x4da9, 0xa3,0x30, 0x47,0x24,0x9d,0x34,0x5b,0xa1);
10267#if defined(__cplusplus) && !defined(CINTERFACE)
10268MIDL_INTERFACE("2dd81fe3-a83c-4da9-a330-47249d345ba1")
10269IEnumResources : public IUnknown
10270{
10271    virtual HRESULT STDMETHODCALLTYPE Next(
10272        ULONG celt,
10273        SHELL_ITEM_RESOURCE *psir,
10274        ULONG *pceltFetched) = 0;
10275
10276    virtual HRESULT STDMETHODCALLTYPE Skip(
10277        ULONG celt) = 0;
10278
10279    virtual HRESULT STDMETHODCALLTYPE Reset(
10280        ) = 0;
10281
10282    virtual HRESULT STDMETHODCALLTYPE Clone(
10283        IEnumResources **ppenumr) = 0;
10284
10285};
10286#ifdef __CRT_UUID_DECL
10287__CRT_UUID_DECL(IEnumResources, 0x2dd81fe3, 0xa83c, 0x4da9, 0xa3,0x30, 0x47,0x24,0x9d,0x34,0x5b,0xa1)
10288#endif
10289#else
10290typedef struct IEnumResourcesVtbl {
10291    BEGIN_INTERFACE
10292
10293    /*** IUnknown methods ***/
10294    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10295        IEnumResources *This,
10296        REFIID riid,
10297        void **ppvObject);
10298
10299    ULONG (STDMETHODCALLTYPE *AddRef)(
10300        IEnumResources *This);
10301
10302    ULONG (STDMETHODCALLTYPE *Release)(
10303        IEnumResources *This);
10304
10305    /*** IEnumResources methods ***/
10306    HRESULT (STDMETHODCALLTYPE *Next)(
10307        IEnumResources *This,
10308        ULONG celt,
10309        SHELL_ITEM_RESOURCE *psir,
10310        ULONG *pceltFetched);
10311
10312    HRESULT (STDMETHODCALLTYPE *Skip)(
10313        IEnumResources *This,
10314        ULONG celt);
10315
10316    HRESULT (STDMETHODCALLTYPE *Reset)(
10317        IEnumResources *This);
10318
10319    HRESULT (STDMETHODCALLTYPE *Clone)(
10320        IEnumResources *This,
10321        IEnumResources **ppenumr);
10322
10323    END_INTERFACE
10324} IEnumResourcesVtbl;
10325
10326interface IEnumResources {
10327    CONST_VTBL IEnumResourcesVtbl* lpVtbl;
10328};
10329
10330#ifdef COBJMACROS
10331#ifndef WIDL_C_INLINE_WRAPPERS
10332/*** IUnknown methods ***/
10333#define IEnumResources_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10334#define IEnumResources_AddRef(This) (This)->lpVtbl->AddRef(This)
10335#define IEnumResources_Release(This) (This)->lpVtbl->Release(This)
10336/*** IEnumResources methods ***/
10337#define IEnumResources_Next(This,celt,psir,pceltFetched) (This)->lpVtbl->Next(This,celt,psir,pceltFetched)
10338#define IEnumResources_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
10339#define IEnumResources_Reset(This) (This)->lpVtbl->Reset(This)
10340#define IEnumResources_Clone(This,ppenumr) (This)->lpVtbl->Clone(This,ppenumr)
10341#else
10342/*** IUnknown methods ***/
10343static inline HRESULT IEnumResources_QueryInterface(IEnumResources* This,REFIID riid,void **ppvObject) {
10344    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10345}
10346static inline ULONG IEnumResources_AddRef(IEnumResources* This) {
10347    return This->lpVtbl->AddRef(This);
10348}
10349static inline ULONG IEnumResources_Release(IEnumResources* This) {
10350    return This->lpVtbl->Release(This);
10351}
10352/*** IEnumResources methods ***/
10353static inline HRESULT IEnumResources_Next(IEnumResources* This,ULONG celt,SHELL_ITEM_RESOURCE *psir,ULONG *pceltFetched) {
10354    return This->lpVtbl->Next(This,celt,psir,pceltFetched);
10355}
10356static inline HRESULT IEnumResources_Skip(IEnumResources* This,ULONG celt) {
10357    return This->lpVtbl->Skip(This,celt);
10358}
10359static inline HRESULT IEnumResources_Reset(IEnumResources* This) {
10360    return This->lpVtbl->Reset(This);
10361}
10362static inline HRESULT IEnumResources_Clone(IEnumResources* This,IEnumResources **ppenumr) {
10363    return This->lpVtbl->Clone(This,ppenumr);
10364}
10365#endif
10366#endif
10367
10368#endif
10369
10370
10371#endif  /* __IEnumResources_INTERFACE_DEFINED__ */
10372
10373
10374/*****************************************************************************
10375 * IShellItemResources interface
10376 */
10377#ifndef __IShellItemResources_INTERFACE_DEFINED__
10378#define __IShellItemResources_INTERFACE_DEFINED__
10379
10380DEFINE_GUID(IID_IShellItemResources, 0xff5693be, 0x2ce0, 0x4d48, 0xb5,0xc5, 0x40,0x81,0x7d,0x1a,0xcd,0xb9);
10381#if defined(__cplusplus) && !defined(CINTERFACE)
10382MIDL_INTERFACE("ff5693be-2ce0-4d48-b5c5-40817d1acdb9")
10383IShellItemResources : public IUnknown
10384{
10385    virtual HRESULT STDMETHODCALLTYPE GetAttributes(
10386        DWORD *pdwAttributes) = 0;
10387
10388    virtual HRESULT STDMETHODCALLTYPE GetSize(
10389        ULONGLONG *pullSize) = 0;
10390
10391    virtual HRESULT STDMETHODCALLTYPE GetTimes(
10392        FILETIME *pftCreation,
10393        FILETIME *pftWrite,
10394        FILETIME *pftAccess) = 0;
10395
10396    virtual HRESULT STDMETHODCALLTYPE SetTimes(
10397        const FILETIME *pftCreation,
10398        const FILETIME *pftWrite,
10399        const FILETIME *pftAccess) = 0;
10400
10401    virtual HRESULT STDMETHODCALLTYPE GetResourceDescription(
10402        const SHELL_ITEM_RESOURCE *pcsir,
10403        LPWSTR *ppszDescription) = 0;
10404
10405    virtual HRESULT STDMETHODCALLTYPE EnumResources(
10406        IEnumResources **ppenumr) = 0;
10407
10408    virtual HRESULT STDMETHODCALLTYPE SupportsResource(
10409        const SHELL_ITEM_RESOURCE *pcsir) = 0;
10410
10411    virtual HRESULT STDMETHODCALLTYPE OpenResource(
10412        const SHELL_ITEM_RESOURCE *pcsir,
10413        REFIID riid,
10414        void **ppv) = 0;
10415
10416    virtual HRESULT STDMETHODCALLTYPE CreateResource(
10417        const SHELL_ITEM_RESOURCE *pcsir,
10418        REFIID riid,
10419        void **ppv) = 0;
10420
10421    virtual HRESULT STDMETHODCALLTYPE MarkForDelete(
10422        ) = 0;
10423
10424};
10425#ifdef __CRT_UUID_DECL
10426__CRT_UUID_DECL(IShellItemResources, 0xff5693be, 0x2ce0, 0x4d48, 0xb5,0xc5, 0x40,0x81,0x7d,0x1a,0xcd,0xb9)
10427#endif
10428#else
10429typedef struct IShellItemResourcesVtbl {
10430    BEGIN_INTERFACE
10431
10432    /*** IUnknown methods ***/
10433    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10434        IShellItemResources *This,
10435        REFIID riid,
10436        void **ppvObject);
10437
10438    ULONG (STDMETHODCALLTYPE *AddRef)(
10439        IShellItemResources *This);
10440
10441    ULONG (STDMETHODCALLTYPE *Release)(
10442        IShellItemResources *This);
10443
10444    /*** IShellItemResources methods ***/
10445    HRESULT (STDMETHODCALLTYPE *GetAttributes)(
10446        IShellItemResources *This,
10447        DWORD *pdwAttributes);
10448
10449    HRESULT (STDMETHODCALLTYPE *GetSize)(
10450        IShellItemResources *This,
10451        ULONGLONG *pullSize);
10452
10453    HRESULT (STDMETHODCALLTYPE *GetTimes)(
10454        IShellItemResources *This,
10455        FILETIME *pftCreation,
10456        FILETIME *pftWrite,
10457        FILETIME *pftAccess);
10458
10459    HRESULT (STDMETHODCALLTYPE *SetTimes)(
10460        IShellItemResources *This,
10461        const FILETIME *pftCreation,
10462        const FILETIME *pftWrite,
10463        const FILETIME *pftAccess);
10464
10465    HRESULT (STDMETHODCALLTYPE *GetResourceDescription)(
10466        IShellItemResources *This,
10467        const SHELL_ITEM_RESOURCE *pcsir,
10468        LPWSTR *ppszDescription);
10469
10470    HRESULT (STDMETHODCALLTYPE *EnumResources)(
10471        IShellItemResources *This,
10472        IEnumResources **ppenumr);
10473
10474    HRESULT (STDMETHODCALLTYPE *SupportsResource)(
10475        IShellItemResources *This,
10476        const SHELL_ITEM_RESOURCE *pcsir);
10477
10478    HRESULT (STDMETHODCALLTYPE *OpenResource)(
10479        IShellItemResources *This,
10480        const SHELL_ITEM_RESOURCE *pcsir,
10481        REFIID riid,
10482        void **ppv);
10483
10484    HRESULT (STDMETHODCALLTYPE *CreateResource)(
10485        IShellItemResources *This,
10486        const SHELL_ITEM_RESOURCE *pcsir,
10487        REFIID riid,
10488        void **ppv);
10489
10490    HRESULT (STDMETHODCALLTYPE *MarkForDelete)(
10491        IShellItemResources *This);
10492
10493    END_INTERFACE
10494} IShellItemResourcesVtbl;
10495
10496interface IShellItemResources {
10497    CONST_VTBL IShellItemResourcesVtbl* lpVtbl;
10498};
10499
10500#ifdef COBJMACROS
10501#ifndef WIDL_C_INLINE_WRAPPERS
10502/*** IUnknown methods ***/
10503#define IShellItemResources_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10504#define IShellItemResources_AddRef(This) (This)->lpVtbl->AddRef(This)
10505#define IShellItemResources_Release(This) (This)->lpVtbl->Release(This)
10506/*** IShellItemResources methods ***/
10507#define IShellItemResources_GetAttributes(This,pdwAttributes) (This)->lpVtbl->GetAttributes(This,pdwAttributes)
10508#define IShellItemResources_GetSize(This,pullSize) (This)->lpVtbl->GetSize(This,pullSize)
10509#define IShellItemResources_GetTimes(This,pftCreation,pftWrite,pftAccess) (This)->lpVtbl->GetTimes(This,pftCreation,pftWrite,pftAccess)
10510#define IShellItemResources_SetTimes(This,pftCreation,pftWrite,pftAccess) (This)->lpVtbl->SetTimes(This,pftCreation,pftWrite,pftAccess)
10511#define IShellItemResources_GetResourceDescription(This,pcsir,ppszDescription) (This)->lpVtbl->GetResourceDescription(This,pcsir,ppszDescription)
10512#define IShellItemResources_EnumResources(This,ppenumr) (This)->lpVtbl->EnumResources(This,ppenumr)
10513#define IShellItemResources_SupportsResource(This,pcsir) (This)->lpVtbl->SupportsResource(This,pcsir)
10514#define IShellItemResources_OpenResource(This,pcsir,riid,ppv) (This)->lpVtbl->OpenResource(This,pcsir,riid,ppv)
10515#define IShellItemResources_CreateResource(This,pcsir,riid,ppv) (This)->lpVtbl->CreateResource(This,pcsir,riid,ppv)
10516#define IShellItemResources_MarkForDelete(This) (This)->lpVtbl->MarkForDelete(This)
10517#else
10518/*** IUnknown methods ***/
10519static inline HRESULT IShellItemResources_QueryInterface(IShellItemResources* This,REFIID riid,void **ppvObject) {
10520    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10521}
10522static inline ULONG IShellItemResources_AddRef(IShellItemResources* This) {
10523    return This->lpVtbl->AddRef(This);
10524}
10525static inline ULONG IShellItemResources_Release(IShellItemResources* This) {
10526    return This->lpVtbl->Release(This);
10527}
10528/*** IShellItemResources methods ***/
10529static inline HRESULT IShellItemResources_GetAttributes(IShellItemResources* This,DWORD *pdwAttributes) {
10530    return This->lpVtbl->GetAttributes(This,pdwAttributes);
10531}
10532static inline HRESULT IShellItemResources_GetSize(IShellItemResources* This,ULONGLONG *pullSize) {
10533    return This->lpVtbl->GetSize(This,pullSize);
10534}
10535static inline HRESULT IShellItemResources_GetTimes(IShellItemResources* This,FILETIME *pftCreation,FILETIME *pftWrite,FILETIME *pftAccess) {
10536    return This->lpVtbl->GetTimes(This,pftCreation,pftWrite,pftAccess);
10537}
10538static inline HRESULT IShellItemResources_SetTimes(IShellItemResources* This,const FILETIME *pftCreation,const FILETIME *pftWrite,const FILETIME *pftAccess) {
10539    return This->lpVtbl->SetTimes(This,pftCreation,pftWrite,pftAccess);
10540}
10541static inline HRESULT IShellItemResources_GetResourceDescription(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir,LPWSTR *ppszDescription) {
10542    return This->lpVtbl->GetResourceDescription(This,pcsir,ppszDescription);
10543}
10544static inline HRESULT IShellItemResources_EnumResources(IShellItemResources* This,IEnumResources **ppenumr) {
10545    return This->lpVtbl->EnumResources(This,ppenumr);
10546}
10547static inline HRESULT IShellItemResources_SupportsResource(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir) {
10548    return This->lpVtbl->SupportsResource(This,pcsir);
10549}
10550static inline HRESULT IShellItemResources_OpenResource(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir,REFIID riid,void **ppv) {
10551    return This->lpVtbl->OpenResource(This,pcsir,riid,ppv);
10552}
10553static inline HRESULT IShellItemResources_CreateResource(IShellItemResources* This,const SHELL_ITEM_RESOURCE *pcsir,REFIID riid,void **ppv) {
10554    return This->lpVtbl->CreateResource(This,pcsir,riid,ppv);
10555}
10556static inline HRESULT IShellItemResources_MarkForDelete(IShellItemResources* This) {
10557    return This->lpVtbl->MarkForDelete(This);
10558}
10559#endif
10560#endif
10561
10562#endif
10563
10564
10565#endif  /* __IShellItemResources_INTERFACE_DEFINED__ */
10566
10567
10568/*****************************************************************************
10569 * ITransferDestination interface
10570 */
10571#ifndef __ITransferDestination_INTERFACE_DEFINED__
10572#define __ITransferDestination_INTERFACE_DEFINED__
10573
10574DEFINE_GUID(IID_ITransferDestination, 0x48addd32, 0x3ca5, 0x4124, 0xab,0xe3, 0xb5,0xa7,0x25,0x31,0xb2,0x07);
10575#if defined(__cplusplus) && !defined(CINTERFACE)
10576MIDL_INTERFACE("48addd32-3ca5-4124-abe3-b5a72531b207")
10577ITransferDestination : public IUnknown
10578{
10579    virtual HRESULT STDMETHODCALLTYPE Advise(
10580        ITransferAdviseSink *psink,
10581        DWORD *pdwCookie) = 0;
10582
10583    virtual HRESULT STDMETHODCALLTYPE Unadvise(
10584        DWORD dwCookie) = 0;
10585
10586    virtual HRESULT STDMETHODCALLTYPE CreateItem(
10587        LPCWSTR pszName,
10588        DWORD dwAttributes,
10589        ULONGLONG ullSize,
10590        TRANSFER_SOURCE_FLAGS flags,
10591        REFIID riidItem,
10592        void **ppvItem,
10593        REFIID riidResources,
10594        void **ppvResources) = 0;
10595
10596};
10597#ifdef __CRT_UUID_DECL
10598__CRT_UUID_DECL(ITransferDestination, 0x48addd32, 0x3ca5, 0x4124, 0xab,0xe3, 0xb5,0xa7,0x25,0x31,0xb2,0x07)
10599#endif
10600#else
10601typedef struct ITransferDestinationVtbl {
10602    BEGIN_INTERFACE
10603
10604    /*** IUnknown methods ***/
10605    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10606        ITransferDestination *This,
10607        REFIID riid,
10608        void **ppvObject);
10609
10610    ULONG (STDMETHODCALLTYPE *AddRef)(
10611        ITransferDestination *This);
10612
10613    ULONG (STDMETHODCALLTYPE *Release)(
10614        ITransferDestination *This);
10615
10616    /*** ITransferDestination methods ***/
10617    HRESULT (STDMETHODCALLTYPE *Advise)(
10618        ITransferDestination *This,
10619        ITransferAdviseSink *psink,
10620        DWORD *pdwCookie);
10621
10622    HRESULT (STDMETHODCALLTYPE *Unadvise)(
10623        ITransferDestination *This,
10624        DWORD dwCookie);
10625
10626    HRESULT (STDMETHODCALLTYPE *CreateItem)(
10627        ITransferDestination *This,
10628        LPCWSTR pszName,
10629        DWORD dwAttributes,
10630        ULONGLONG ullSize,
10631        TRANSFER_SOURCE_FLAGS flags,
10632        REFIID riidItem,
10633        void **ppvItem,
10634        REFIID riidResources,
10635        void **ppvResources);
10636
10637    END_INTERFACE
10638} ITransferDestinationVtbl;
10639
10640interface ITransferDestination {
10641    CONST_VTBL ITransferDestinationVtbl* lpVtbl;
10642};
10643
10644#ifdef COBJMACROS
10645#ifndef WIDL_C_INLINE_WRAPPERS
10646/*** IUnknown methods ***/
10647#define ITransferDestination_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10648#define ITransferDestination_AddRef(This) (This)->lpVtbl->AddRef(This)
10649#define ITransferDestination_Release(This) (This)->lpVtbl->Release(This)
10650/*** ITransferDestination methods ***/
10651#define ITransferDestination_Advise(This,psink,pdwCookie) (This)->lpVtbl->Advise(This,psink,pdwCookie)
10652#define ITransferDestination_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
10653#define ITransferDestination_CreateItem(This,pszName,dwAttributes,ullSize,flags,riidItem,ppvItem,riidResources,ppvResources) (This)->lpVtbl->CreateItem(This,pszName,dwAttributes,ullSize,flags,riidItem,ppvItem,riidResources,ppvResources)
10654#else
10655/*** IUnknown methods ***/
10656static inline HRESULT ITransferDestination_QueryInterface(ITransferDestination* This,REFIID riid,void **ppvObject) {
10657    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10658}
10659static inline ULONG ITransferDestination_AddRef(ITransferDestination* This) {
10660    return This->lpVtbl->AddRef(This);
10661}
10662static inline ULONG ITransferDestination_Release(ITransferDestination* This) {
10663    return This->lpVtbl->Release(This);
10664}
10665/*** ITransferDestination methods ***/
10666static inline HRESULT ITransferDestination_Advise(ITransferDestination* This,ITransferAdviseSink *psink,DWORD *pdwCookie) {
10667    return This->lpVtbl->Advise(This,psink,pdwCookie);
10668}
10669static inline HRESULT ITransferDestination_Unadvise(ITransferDestination* This,DWORD dwCookie) {
10670    return This->lpVtbl->Unadvise(This,dwCookie);
10671}
10672static inline HRESULT ITransferDestination_CreateItem(ITransferDestination* This,LPCWSTR pszName,DWORD dwAttributes,ULONGLONG ullSize,TRANSFER_SOURCE_FLAGS flags,REFIID riidItem,void **ppvItem,REFIID riidResources,void **ppvResources) {
10673    return This->lpVtbl->CreateItem(This,pszName,dwAttributes,ullSize,flags,riidItem,ppvItem,riidResources,ppvResources);
10674}
10675#endif
10676#endif
10677
10678#endif
10679
10680
10681#endif  /* __ITransferDestination_INTERFACE_DEFINED__ */
10682
10683#if 0
10684typedef struct _OVERLAPPED {
10685    ULONG_PTR Internal;
10686    ULONG_PTR InternalHigh;
10687    __C89_NAMELESS union {
10688        __C89_NAMELESS struct {
10689            DWORD Offset;
10690            DWORD OffsetHigh;
10691        } __C89_NAMELESSSTRUCTNAME;
10692        PVOID Pointer;
10693    } __C89_NAMELESSUNIONNAME;
10694    HANDLE hEvent;
10695} OVERLAPPED;
10696typedef struct _OVERLAPPED *LPOVERLAPPED;
10697#endif
10698
10699/*****************************************************************************
10700 * IStreamAsync interface
10701 */
10702#ifndef __IStreamAsync_INTERFACE_DEFINED__
10703#define __IStreamAsync_INTERFACE_DEFINED__
10704
10705DEFINE_GUID(IID_IStreamAsync, 0xfe0b6665, 0xe0ca, 0x49b9, 0xa1,0x78, 0x2b,0x5c,0xb4,0x8d,0x92,0xa5);
10706#if defined(__cplusplus) && !defined(CINTERFACE)
10707MIDL_INTERFACE("fe0b6665-e0ca-49b9-a178-2b5cb48d92a5")
10708IStreamAsync : public IStream
10709{
10710    virtual HRESULT STDMETHODCALLTYPE ReadAsync(
10711        void *pv,
10712        DWORD cb,
10713        LPDWORD pcbRead,
10714        LPOVERLAPPED lpOverlapped) = 0;
10715
10716    virtual HRESULT STDMETHODCALLTYPE WriteAsync(
10717        const void *lpBuffer,
10718        DWORD cb,
10719        LPDWORD pcbWritten,
10720        LPOVERLAPPED lpOverlapped) = 0;
10721
10722    virtual HRESULT STDMETHODCALLTYPE OverlappedResult(
10723        LPOVERLAPPED lpOverlapped,
10724        LPDWORD lpNumberOfBytesTransferred,
10725        WINBOOL bWait) = 0;
10726
10727    virtual HRESULT STDMETHODCALLTYPE CancelIo(
10728        ) = 0;
10729
10730};
10731#ifdef __CRT_UUID_DECL
10732__CRT_UUID_DECL(IStreamAsync, 0xfe0b6665, 0xe0ca, 0x49b9, 0xa1,0x78, 0x2b,0x5c,0xb4,0x8d,0x92,0xa5)
10733#endif
10734#else
10735typedef struct IStreamAsyncVtbl {
10736    BEGIN_INTERFACE
10737
10738    /*** IUnknown methods ***/
10739    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10740        IStreamAsync *This,
10741        REFIID riid,
10742        void **ppvObject);
10743
10744    ULONG (STDMETHODCALLTYPE *AddRef)(
10745        IStreamAsync *This);
10746
10747    ULONG (STDMETHODCALLTYPE *Release)(
10748        IStreamAsync *This);
10749
10750    /*** ISequentialStream methods ***/
10751    HRESULT (STDMETHODCALLTYPE *Read)(
10752        IStreamAsync *This,
10753        void *pv,
10754        ULONG cb,
10755        ULONG *pcbRead);
10756
10757    HRESULT (STDMETHODCALLTYPE *Write)(
10758        IStreamAsync *This,
10759        const void *pv,
10760        ULONG cb,
10761        ULONG *pcbWritten);
10762
10763    /*** IStream methods ***/
10764    HRESULT (STDMETHODCALLTYPE *Seek)(
10765        IStreamAsync *This,
10766        LARGE_INTEGER dlibMove,
10767        DWORD dwOrigin,
10768        ULARGE_INTEGER *plibNewPosition);
10769
10770    HRESULT (STDMETHODCALLTYPE *SetSize)(
10771        IStreamAsync *This,
10772        ULARGE_INTEGER libNewSize);
10773
10774    HRESULT (STDMETHODCALLTYPE *CopyTo)(
10775        IStreamAsync *This,
10776        IStream *pstm,
10777        ULARGE_INTEGER cb,
10778        ULARGE_INTEGER *pcbRead,
10779        ULARGE_INTEGER *pcbWritten);
10780
10781    HRESULT (STDMETHODCALLTYPE *Commit)(
10782        IStreamAsync *This,
10783        DWORD grfCommitFlags);
10784
10785    HRESULT (STDMETHODCALLTYPE *Revert)(
10786        IStreamAsync *This);
10787
10788    HRESULT (STDMETHODCALLTYPE *LockRegion)(
10789        IStreamAsync *This,
10790        ULARGE_INTEGER libOffset,
10791        ULARGE_INTEGER cb,
10792        DWORD dwLockType);
10793
10794    HRESULT (STDMETHODCALLTYPE *UnlockRegion)(
10795        IStreamAsync *This,
10796        ULARGE_INTEGER libOffset,
10797        ULARGE_INTEGER cb,
10798        DWORD dwLockType);
10799
10800    HRESULT (STDMETHODCALLTYPE *Stat)(
10801        IStreamAsync *This,
10802        STATSTG *pstatstg,
10803        DWORD grfStatFlag);
10804
10805    HRESULT (STDMETHODCALLTYPE *Clone)(
10806        IStreamAsync *This,
10807        IStream **ppstm);
10808
10809    /*** IStreamAsync methods ***/
10810    HRESULT (STDMETHODCALLTYPE *ReadAsync)(
10811        IStreamAsync *This,
10812        void *pv,
10813        DWORD cb,
10814        LPDWORD pcbRead,
10815        LPOVERLAPPED lpOverlapped);
10816
10817    HRESULT (STDMETHODCALLTYPE *WriteAsync)(
10818        IStreamAsync *This,
10819        const void *lpBuffer,
10820        DWORD cb,
10821        LPDWORD pcbWritten,
10822        LPOVERLAPPED lpOverlapped);
10823
10824    HRESULT (STDMETHODCALLTYPE *OverlappedResult)(
10825        IStreamAsync *This,
10826        LPOVERLAPPED lpOverlapped,
10827        LPDWORD lpNumberOfBytesTransferred,
10828        WINBOOL bWait);
10829
10830    HRESULT (STDMETHODCALLTYPE *CancelIo)(
10831        IStreamAsync *This);
10832
10833    END_INTERFACE
10834} IStreamAsyncVtbl;
10835
10836interface IStreamAsync {
10837    CONST_VTBL IStreamAsyncVtbl* lpVtbl;
10838};
10839
10840#ifdef COBJMACROS
10841#ifndef WIDL_C_INLINE_WRAPPERS
10842/*** IUnknown methods ***/
10843#define IStreamAsync_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10844#define IStreamAsync_AddRef(This) (This)->lpVtbl->AddRef(This)
10845#define IStreamAsync_Release(This) (This)->lpVtbl->Release(This)
10846/*** ISequentialStream methods ***/
10847#define IStreamAsync_Read(This,pv,cb,pcbRead) (This)->lpVtbl->Read(This,pv,cb,pcbRead)
10848#define IStreamAsync_Write(This,pv,cb,pcbWritten) (This)->lpVtbl->Write(This,pv,cb,pcbWritten)
10849/*** IStream methods ***/
10850#define IStreamAsync_Seek(This,dlibMove,dwOrigin,plibNewPosition) (This)->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition)
10851#define IStreamAsync_SetSize(This,libNewSize) (This)->lpVtbl->SetSize(This,libNewSize)
10852#define IStreamAsync_CopyTo(This,pstm,cb,pcbRead,pcbWritten) (This)->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten)
10853#define IStreamAsync_Commit(This,grfCommitFlags) (This)->lpVtbl->Commit(This,grfCommitFlags)
10854#define IStreamAsync_Revert(This) (This)->lpVtbl->Revert(This)
10855#define IStreamAsync_LockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->LockRegion(This,libOffset,cb,dwLockType)
10856#define IStreamAsync_UnlockRegion(This,libOffset,cb,dwLockType) (This)->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType)
10857#define IStreamAsync_Stat(This,pstatstg,grfStatFlag) (This)->lpVtbl->Stat(This,pstatstg,grfStatFlag)
10858#define IStreamAsync_Clone(This,ppstm) (This)->lpVtbl->Clone(This,ppstm)
10859/*** IStreamAsync methods ***/
10860#define IStreamAsync_ReadAsync(This,pv,cb,pcbRead,lpOverlapped) (This)->lpVtbl->ReadAsync(This,pv,cb,pcbRead,lpOverlapped)
10861#define IStreamAsync_WriteAsync(This,lpBuffer,cb,pcbWritten,lpOverlapped) (This)->lpVtbl->WriteAsync(This,lpBuffer,cb,pcbWritten,lpOverlapped)
10862#define IStreamAsync_OverlappedResult(This,lpOverlapped,lpNumberOfBytesTransferred,bWait) (This)->lpVtbl->OverlappedResult(This,lpOverlapped,lpNumberOfBytesTransferred,bWait)
10863#define IStreamAsync_CancelIo(This) (This)->lpVtbl->CancelIo(This)
10864#else
10865/*** IUnknown methods ***/
10866static inline HRESULT IStreamAsync_QueryInterface(IStreamAsync* This,REFIID riid,void **ppvObject) {
10867    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10868}
10869static inline ULONG IStreamAsync_AddRef(IStreamAsync* This) {
10870    return This->lpVtbl->AddRef(This);
10871}
10872static inline ULONG IStreamAsync_Release(IStreamAsync* This) {
10873    return This->lpVtbl->Release(This);
10874}
10875/*** ISequentialStream methods ***/
10876static inline HRESULT IStreamAsync_Read(IStreamAsync* This,void *pv,ULONG cb,ULONG *pcbRead) {
10877    return This->lpVtbl->Read(This,pv,cb,pcbRead);
10878}
10879static inline HRESULT IStreamAsync_Write(IStreamAsync* This,const void *pv,ULONG cb,ULONG *pcbWritten) {
10880    return This->lpVtbl->Write(This,pv,cb,pcbWritten);
10881}
10882/*** IStream methods ***/
10883static inline HRESULT IStreamAsync_Seek(IStreamAsync* This,LARGE_INTEGER dlibMove,DWORD dwOrigin,ULARGE_INTEGER *plibNewPosition) {
10884    return This->lpVtbl->Seek(This,dlibMove,dwOrigin,plibNewPosition);
10885}
10886static inline HRESULT IStreamAsync_SetSize(IStreamAsync* This,ULARGE_INTEGER libNewSize) {
10887    return This->lpVtbl->SetSize(This,libNewSize);
10888}
10889static inline HRESULT IStreamAsync_CopyTo(IStreamAsync* This,IStream *pstm,ULARGE_INTEGER cb,ULARGE_INTEGER *pcbRead,ULARGE_INTEGER *pcbWritten) {
10890    return This->lpVtbl->CopyTo(This,pstm,cb,pcbRead,pcbWritten);
10891}
10892static inline HRESULT IStreamAsync_Commit(IStreamAsync* This,DWORD grfCommitFlags) {
10893    return This->lpVtbl->Commit(This,grfCommitFlags);
10894}
10895static inline HRESULT IStreamAsync_Revert(IStreamAsync* This) {
10896    return This->lpVtbl->Revert(This);
10897}
10898static inline HRESULT IStreamAsync_LockRegion(IStreamAsync* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
10899    return This->lpVtbl->LockRegion(This,libOffset,cb,dwLockType);
10900}
10901static inline HRESULT IStreamAsync_UnlockRegion(IStreamAsync* This,ULARGE_INTEGER libOffset,ULARGE_INTEGER cb,DWORD dwLockType) {
10902    return This->lpVtbl->UnlockRegion(This,libOffset,cb,dwLockType);
10903}
10904static inline HRESULT IStreamAsync_Stat(IStreamAsync* This,STATSTG *pstatstg,DWORD grfStatFlag) {
10905    return This->lpVtbl->Stat(This,pstatstg,grfStatFlag);
10906}
10907static inline HRESULT IStreamAsync_Clone(IStreamAsync* This,IStream **ppstm) {
10908    return This->lpVtbl->Clone(This,ppstm);
10909}
10910/*** IStreamAsync methods ***/
10911static inline HRESULT IStreamAsync_ReadAsync(IStreamAsync* This,void *pv,DWORD cb,LPDWORD pcbRead,LPOVERLAPPED lpOverlapped) {
10912    return This->lpVtbl->ReadAsync(This,pv,cb,pcbRead,lpOverlapped);
10913}
10914static inline HRESULT IStreamAsync_WriteAsync(IStreamAsync* This,const void *lpBuffer,DWORD cb,LPDWORD pcbWritten,LPOVERLAPPED lpOverlapped) {
10915    return This->lpVtbl->WriteAsync(This,lpBuffer,cb,pcbWritten,lpOverlapped);
10916}
10917static inline HRESULT IStreamAsync_OverlappedResult(IStreamAsync* This,LPOVERLAPPED lpOverlapped,LPDWORD lpNumberOfBytesTransferred,WINBOOL bWait) {
10918    return This->lpVtbl->OverlappedResult(This,lpOverlapped,lpNumberOfBytesTransferred,bWait);
10919}
10920static inline HRESULT IStreamAsync_CancelIo(IStreamAsync* This) {
10921    return This->lpVtbl->CancelIo(This);
10922}
10923#endif
10924#endif
10925
10926#endif
10927
10928
10929#endif  /* __IStreamAsync_INTERFACE_DEFINED__ */
10930
10931
10932/*****************************************************************************
10933 * IStreamUnbufferedInfo interface
10934 */
10935#ifndef __IStreamUnbufferedInfo_INTERFACE_DEFINED__
10936#define __IStreamUnbufferedInfo_INTERFACE_DEFINED__
10937
10938DEFINE_GUID(IID_IStreamUnbufferedInfo, 0x8a68fdda, 0x1fdc, 0x4c20, 0x8c,0xeb, 0x41,0x66,0x43,0xb5,0xa6,0x25);
10939#if defined(__cplusplus) && !defined(CINTERFACE)
10940MIDL_INTERFACE("8a68fdda-1fdc-4c20-8ceb-416643b5a625")
10941IStreamUnbufferedInfo : public IUnknown
10942{
10943    virtual HRESULT STDMETHODCALLTYPE GetSectorSize(
10944        ULONG *pcbSectorSize) = 0;
10945
10946};
10947#ifdef __CRT_UUID_DECL
10948__CRT_UUID_DECL(IStreamUnbufferedInfo, 0x8a68fdda, 0x1fdc, 0x4c20, 0x8c,0xeb, 0x41,0x66,0x43,0xb5,0xa6,0x25)
10949#endif
10950#else
10951typedef struct IStreamUnbufferedInfoVtbl {
10952    BEGIN_INTERFACE
10953
10954    /*** IUnknown methods ***/
10955    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
10956        IStreamUnbufferedInfo *This,
10957        REFIID riid,
10958        void **ppvObject);
10959
10960    ULONG (STDMETHODCALLTYPE *AddRef)(
10961        IStreamUnbufferedInfo *This);
10962
10963    ULONG (STDMETHODCALLTYPE *Release)(
10964        IStreamUnbufferedInfo *This);
10965
10966    /*** IStreamUnbufferedInfo methods ***/
10967    HRESULT (STDMETHODCALLTYPE *GetSectorSize)(
10968        IStreamUnbufferedInfo *This,
10969        ULONG *pcbSectorSize);
10970
10971    END_INTERFACE
10972} IStreamUnbufferedInfoVtbl;
10973
10974interface IStreamUnbufferedInfo {
10975    CONST_VTBL IStreamUnbufferedInfoVtbl* lpVtbl;
10976};
10977
10978#ifdef COBJMACROS
10979#ifndef WIDL_C_INLINE_WRAPPERS
10980/*** IUnknown methods ***/
10981#define IStreamUnbufferedInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
10982#define IStreamUnbufferedInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
10983#define IStreamUnbufferedInfo_Release(This) (This)->lpVtbl->Release(This)
10984/*** IStreamUnbufferedInfo methods ***/
10985#define IStreamUnbufferedInfo_GetSectorSize(This,pcbSectorSize) (This)->lpVtbl->GetSectorSize(This,pcbSectorSize)
10986#else
10987/*** IUnknown methods ***/
10988static inline HRESULT IStreamUnbufferedInfo_QueryInterface(IStreamUnbufferedInfo* This,REFIID riid,void **ppvObject) {
10989    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
10990}
10991static inline ULONG IStreamUnbufferedInfo_AddRef(IStreamUnbufferedInfo* This) {
10992    return This->lpVtbl->AddRef(This);
10993}
10994static inline ULONG IStreamUnbufferedInfo_Release(IStreamUnbufferedInfo* This) {
10995    return This->lpVtbl->Release(This);
10996}
10997/*** IStreamUnbufferedInfo methods ***/
10998static inline HRESULT IStreamUnbufferedInfo_GetSectorSize(IStreamUnbufferedInfo* This,ULONG *pcbSectorSize) {
10999    return This->lpVtbl->GetSectorSize(This,pcbSectorSize);
11000}
11001#endif
11002#endif
11003
11004#endif
11005
11006
11007#endif  /* __IStreamUnbufferedInfo_INTERFACE_DEFINED__ */
11008
11009
11010#if _WIN32_IE >= _WIN32_IE_IE70
11011/*****************************************************************************
11012 * IFileOperationProgressSink interface
11013 */
11014#ifndef __IFileOperationProgressSink_INTERFACE_DEFINED__
11015#define __IFileOperationProgressSink_INTERFACE_DEFINED__
11016
11017DEFINE_GUID(IID_IFileOperationProgressSink, 0x04b0f1a7, 0x9490, 0x44bc, 0x96,0xe1, 0x42,0x96,0xa3,0x12,0x52,0xe2);
11018#if defined(__cplusplus) && !defined(CINTERFACE)
11019MIDL_INTERFACE("04b0f1a7-9490-44bc-96e1-4296a31252e2")
11020IFileOperationProgressSink : public IUnknown
11021{
11022    virtual HRESULT STDMETHODCALLTYPE StartOperations(
11023        ) = 0;
11024
11025    virtual HRESULT STDMETHODCALLTYPE FinishOperations(
11026        HRESULT hrResult) = 0;
11027
11028    virtual HRESULT STDMETHODCALLTYPE PreRenameItem(
11029        DWORD dwFlags,
11030        IShellItem *psiItem,
11031        LPCWSTR pszNewName) = 0;
11032
11033    virtual HRESULT STDMETHODCALLTYPE PostRenameItem(
11034        DWORD dwFlags,
11035        IShellItem *psiItem,
11036        LPCWSTR pszNewName,
11037        HRESULT hrRename,
11038        IShellItem *psiNewlyCreated) = 0;
11039
11040    virtual HRESULT STDMETHODCALLTYPE PreMoveItem(
11041        DWORD dwFlags,
11042        IShellItem *psiItem,
11043        IShellItem *psiDestinationFolder,
11044        LPCWSTR pszNewName) = 0;
11045
11046    virtual HRESULT STDMETHODCALLTYPE PostMoveItem(
11047        DWORD dwFlags,
11048        IShellItem *psiItem,
11049        IShellItem *psiDestinationFolder,
11050        LPCWSTR pszNewName,
11051        HRESULT hrMove,
11052        IShellItem *psiNewlyCreated) = 0;
11053
11054    virtual HRESULT STDMETHODCALLTYPE PreCopyItem(
11055        DWORD dwFlags,
11056        IShellItem *psiItem,
11057        IShellItem *psiDestinationFolder,
11058        LPCWSTR pszNewName) = 0;
11059
11060    virtual HRESULT STDMETHODCALLTYPE PostCopyItem(
11061        DWORD dwFlags,
11062        IShellItem *psiItem,
11063        IShellItem *psiDestinationFolder,
11064        LPCWSTR pszNewName,
11065        HRESULT hrCopy,
11066        IShellItem *psiNewlyCreated) = 0;
11067
11068    virtual HRESULT STDMETHODCALLTYPE PreDeleteItem(
11069        DWORD dwFlags,
11070        IShellItem *psiItem) = 0;
11071
11072    virtual HRESULT STDMETHODCALLTYPE PostDeleteItem(
11073        DWORD dwFlags,
11074        IShellItem *psiItem,
11075        HRESULT hrDelete,
11076        IShellItem *psiNewlyCreated) = 0;
11077
11078    virtual HRESULT STDMETHODCALLTYPE PreNewItem(
11079        DWORD dwFlags,
11080        IShellItem *psiDestinationFolder,
11081        LPCWSTR pszNewName) = 0;
11082
11083    virtual HRESULT STDMETHODCALLTYPE PostNewItem(
11084        DWORD dwFlags,
11085        IShellItem *psiDestinationFolder,
11086        LPCWSTR pszNewName,
11087        LPCWSTR pszTemplateName,
11088        DWORD dwFileAttributes,
11089        HRESULT hrNew,
11090        IShellItem *psiNewItem) = 0;
11091
11092    virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
11093        UINT iWorkTotal,
11094        UINT iWorkSoFar) = 0;
11095
11096    virtual HRESULT STDMETHODCALLTYPE ResetTimer(
11097        ) = 0;
11098
11099    virtual HRESULT STDMETHODCALLTYPE PauseTimer(
11100        ) = 0;
11101
11102    virtual HRESULT STDMETHODCALLTYPE ResumeTimer(
11103        ) = 0;
11104
11105};
11106#ifdef __CRT_UUID_DECL
11107__CRT_UUID_DECL(IFileOperationProgressSink, 0x04b0f1a7, 0x9490, 0x44bc, 0x96,0xe1, 0x42,0x96,0xa3,0x12,0x52,0xe2)
11108#endif
11109#else
11110typedef struct IFileOperationProgressSinkVtbl {
11111    BEGIN_INTERFACE
11112
11113    /*** IUnknown methods ***/
11114    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11115        IFileOperationProgressSink *This,
11116        REFIID riid,
11117        void **ppvObject);
11118
11119    ULONG (STDMETHODCALLTYPE *AddRef)(
11120        IFileOperationProgressSink *This);
11121
11122    ULONG (STDMETHODCALLTYPE *Release)(
11123        IFileOperationProgressSink *This);
11124
11125    /*** IFileOperationProgressSink methods ***/
11126    HRESULT (STDMETHODCALLTYPE *StartOperations)(
11127        IFileOperationProgressSink *This);
11128
11129    HRESULT (STDMETHODCALLTYPE *FinishOperations)(
11130        IFileOperationProgressSink *This,
11131        HRESULT hrResult);
11132
11133    HRESULT (STDMETHODCALLTYPE *PreRenameItem)(
11134        IFileOperationProgressSink *This,
11135        DWORD dwFlags,
11136        IShellItem *psiItem,
11137        LPCWSTR pszNewName);
11138
11139    HRESULT (STDMETHODCALLTYPE *PostRenameItem)(
11140        IFileOperationProgressSink *This,
11141        DWORD dwFlags,
11142        IShellItem *psiItem,
11143        LPCWSTR pszNewName,
11144        HRESULT hrRename,
11145        IShellItem *psiNewlyCreated);
11146
11147    HRESULT (STDMETHODCALLTYPE *PreMoveItem)(
11148        IFileOperationProgressSink *This,
11149        DWORD dwFlags,
11150        IShellItem *psiItem,
11151        IShellItem *psiDestinationFolder,
11152        LPCWSTR pszNewName);
11153
11154    HRESULT (STDMETHODCALLTYPE *PostMoveItem)(
11155        IFileOperationProgressSink *This,
11156        DWORD dwFlags,
11157        IShellItem *psiItem,
11158        IShellItem *psiDestinationFolder,
11159        LPCWSTR pszNewName,
11160        HRESULT hrMove,
11161        IShellItem *psiNewlyCreated);
11162
11163    HRESULT (STDMETHODCALLTYPE *PreCopyItem)(
11164        IFileOperationProgressSink *This,
11165        DWORD dwFlags,
11166        IShellItem *psiItem,
11167        IShellItem *psiDestinationFolder,
11168        LPCWSTR pszNewName);
11169
11170    HRESULT (STDMETHODCALLTYPE *PostCopyItem)(
11171        IFileOperationProgressSink *This,
11172        DWORD dwFlags,
11173        IShellItem *psiItem,
11174        IShellItem *psiDestinationFolder,
11175        LPCWSTR pszNewName,
11176        HRESULT hrCopy,
11177        IShellItem *psiNewlyCreated);
11178
11179    HRESULT (STDMETHODCALLTYPE *PreDeleteItem)(
11180        IFileOperationProgressSink *This,
11181        DWORD dwFlags,
11182        IShellItem *psiItem);
11183
11184    HRESULT (STDMETHODCALLTYPE *PostDeleteItem)(
11185        IFileOperationProgressSink *This,
11186        DWORD dwFlags,
11187        IShellItem *psiItem,
11188        HRESULT hrDelete,
11189        IShellItem *psiNewlyCreated);
11190
11191    HRESULT (STDMETHODCALLTYPE *PreNewItem)(
11192        IFileOperationProgressSink *This,
11193        DWORD dwFlags,
11194        IShellItem *psiDestinationFolder,
11195        LPCWSTR pszNewName);
11196
11197    HRESULT (STDMETHODCALLTYPE *PostNewItem)(
11198        IFileOperationProgressSink *This,
11199        DWORD dwFlags,
11200        IShellItem *psiDestinationFolder,
11201        LPCWSTR pszNewName,
11202        LPCWSTR pszTemplateName,
11203        DWORD dwFileAttributes,
11204        HRESULT hrNew,
11205        IShellItem *psiNewItem);
11206
11207    HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
11208        IFileOperationProgressSink *This,
11209        UINT iWorkTotal,
11210        UINT iWorkSoFar);
11211
11212    HRESULT (STDMETHODCALLTYPE *ResetTimer)(
11213        IFileOperationProgressSink *This);
11214
11215    HRESULT (STDMETHODCALLTYPE *PauseTimer)(
11216        IFileOperationProgressSink *This);
11217
11218    HRESULT (STDMETHODCALLTYPE *ResumeTimer)(
11219        IFileOperationProgressSink *This);
11220
11221    END_INTERFACE
11222} IFileOperationProgressSinkVtbl;
11223
11224interface IFileOperationProgressSink {
11225    CONST_VTBL IFileOperationProgressSinkVtbl* lpVtbl;
11226};
11227
11228#ifdef COBJMACROS
11229#ifndef WIDL_C_INLINE_WRAPPERS
11230/*** IUnknown methods ***/
11231#define IFileOperationProgressSink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11232#define IFileOperationProgressSink_AddRef(This) (This)->lpVtbl->AddRef(This)
11233#define IFileOperationProgressSink_Release(This) (This)->lpVtbl->Release(This)
11234/*** IFileOperationProgressSink methods ***/
11235#define IFileOperationProgressSink_StartOperations(This) (This)->lpVtbl->StartOperations(This)
11236#define IFileOperationProgressSink_FinishOperations(This,hrResult) (This)->lpVtbl->FinishOperations(This,hrResult)
11237#define IFileOperationProgressSink_PreRenameItem(This,dwFlags,psiItem,pszNewName) (This)->lpVtbl->PreRenameItem(This,dwFlags,psiItem,pszNewName)
11238#define IFileOperationProgressSink_PostRenameItem(This,dwFlags,psiItem,pszNewName,hrRename,psiNewlyCreated) (This)->lpVtbl->PostRenameItem(This,dwFlags,psiItem,pszNewName,hrRename,psiNewlyCreated)
11239#define IFileOperationProgressSink_PreMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName) (This)->lpVtbl->PreMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName)
11240#define IFileOperationProgressSink_PostMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrMove,psiNewlyCreated) (This)->lpVtbl->PostMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrMove,psiNewlyCreated)
11241#define IFileOperationProgressSink_PreCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName) (This)->lpVtbl->PreCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName)
11242#define IFileOperationProgressSink_PostCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrCopy,psiNewlyCreated) (This)->lpVtbl->PostCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrCopy,psiNewlyCreated)
11243#define IFileOperationProgressSink_PreDeleteItem(This,dwFlags,psiItem) (This)->lpVtbl->PreDeleteItem(This,dwFlags,psiItem)
11244#define IFileOperationProgressSink_PostDeleteItem(This,dwFlags,psiItem,hrDelete,psiNewlyCreated) (This)->lpVtbl->PostDeleteItem(This,dwFlags,psiItem,hrDelete,psiNewlyCreated)
11245#define IFileOperationProgressSink_PreNewItem(This,dwFlags,psiDestinationFolder,pszNewName) (This)->lpVtbl->PreNewItem(This,dwFlags,psiDestinationFolder,pszNewName)
11246#define IFileOperationProgressSink_PostNewItem(This,dwFlags,psiDestinationFolder,pszNewName,pszTemplateName,dwFileAttributes,hrNew,psiNewItem) (This)->lpVtbl->PostNewItem(This,dwFlags,psiDestinationFolder,pszNewName,pszTemplateName,dwFileAttributes,hrNew,psiNewItem)
11247#define IFileOperationProgressSink_UpdateProgress(This,iWorkTotal,iWorkSoFar) (This)->lpVtbl->UpdateProgress(This,iWorkTotal,iWorkSoFar)
11248#define IFileOperationProgressSink_ResetTimer(This) (This)->lpVtbl->ResetTimer(This)
11249#define IFileOperationProgressSink_PauseTimer(This) (This)->lpVtbl->PauseTimer(This)
11250#define IFileOperationProgressSink_ResumeTimer(This) (This)->lpVtbl->ResumeTimer(This)
11251#else
11252/*** IUnknown methods ***/
11253static inline HRESULT IFileOperationProgressSink_QueryInterface(IFileOperationProgressSink* This,REFIID riid,void **ppvObject) {
11254    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11255}
11256static inline ULONG IFileOperationProgressSink_AddRef(IFileOperationProgressSink* This) {
11257    return This->lpVtbl->AddRef(This);
11258}
11259static inline ULONG IFileOperationProgressSink_Release(IFileOperationProgressSink* This) {
11260    return This->lpVtbl->Release(This);
11261}
11262/*** IFileOperationProgressSink methods ***/
11263static inline HRESULT IFileOperationProgressSink_StartOperations(IFileOperationProgressSink* This) {
11264    return This->lpVtbl->StartOperations(This);
11265}
11266static inline HRESULT IFileOperationProgressSink_FinishOperations(IFileOperationProgressSink* This,HRESULT hrResult) {
11267    return This->lpVtbl->FinishOperations(This,hrResult);
11268}
11269static inline HRESULT IFileOperationProgressSink_PreRenameItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,LPCWSTR pszNewName) {
11270    return This->lpVtbl->PreRenameItem(This,dwFlags,psiItem,pszNewName);
11271}
11272static inline HRESULT IFileOperationProgressSink_PostRenameItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,LPCWSTR pszNewName,HRESULT hrRename,IShellItem *psiNewlyCreated) {
11273    return This->lpVtbl->PostRenameItem(This,dwFlags,psiItem,pszNewName,hrRename,psiNewlyCreated);
11274}
11275static inline HRESULT IFileOperationProgressSink_PreMoveItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName) {
11276    return This->lpVtbl->PreMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName);
11277}
11278static inline HRESULT IFileOperationProgressSink_PostMoveItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,HRESULT hrMove,IShellItem *psiNewlyCreated) {
11279    return This->lpVtbl->PostMoveItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrMove,psiNewlyCreated);
11280}
11281static inline HRESULT IFileOperationProgressSink_PreCopyItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName) {
11282    return This->lpVtbl->PreCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName);
11283}
11284static inline HRESULT IFileOperationProgressSink_PostCopyItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,HRESULT hrCopy,IShellItem *psiNewlyCreated) {
11285    return This->lpVtbl->PostCopyItem(This,dwFlags,psiItem,psiDestinationFolder,pszNewName,hrCopy,psiNewlyCreated);
11286}
11287static inline HRESULT IFileOperationProgressSink_PreDeleteItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem) {
11288    return This->lpVtbl->PreDeleteItem(This,dwFlags,psiItem);
11289}
11290static inline HRESULT IFileOperationProgressSink_PostDeleteItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiItem,HRESULT hrDelete,IShellItem *psiNewlyCreated) {
11291    return This->lpVtbl->PostDeleteItem(This,dwFlags,psiItem,hrDelete,psiNewlyCreated);
11292}
11293static inline HRESULT IFileOperationProgressSink_PreNewItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiDestinationFolder,LPCWSTR pszNewName) {
11294    return This->lpVtbl->PreNewItem(This,dwFlags,psiDestinationFolder,pszNewName);
11295}
11296static inline HRESULT IFileOperationProgressSink_PostNewItem(IFileOperationProgressSink* This,DWORD dwFlags,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,LPCWSTR pszTemplateName,DWORD dwFileAttributes,HRESULT hrNew,IShellItem *psiNewItem) {
11297    return This->lpVtbl->PostNewItem(This,dwFlags,psiDestinationFolder,pszNewName,pszTemplateName,dwFileAttributes,hrNew,psiNewItem);
11298}
11299static inline HRESULT IFileOperationProgressSink_UpdateProgress(IFileOperationProgressSink* This,UINT iWorkTotal,UINT iWorkSoFar) {
11300    return This->lpVtbl->UpdateProgress(This,iWorkTotal,iWorkSoFar);
11301}
11302static inline HRESULT IFileOperationProgressSink_ResetTimer(IFileOperationProgressSink* This) {
11303    return This->lpVtbl->ResetTimer(This);
11304}
11305static inline HRESULT IFileOperationProgressSink_PauseTimer(IFileOperationProgressSink* This) {
11306    return This->lpVtbl->PauseTimer(This);
11307}
11308static inline HRESULT IFileOperationProgressSink_ResumeTimer(IFileOperationProgressSink* This) {
11309    return This->lpVtbl->ResumeTimer(This);
11310}
11311#endif
11312#endif
11313
11314#endif
11315
11316
11317#endif  /* __IFileOperationProgressSink_INTERFACE_DEFINED__ */
11318
11319#endif
11320
11321/*****************************************************************************
11322 * IShellItemArray interface
11323 */
11324#ifndef __IShellItemArray_INTERFACE_DEFINED__
11325#define __IShellItemArray_INTERFACE_DEFINED__
11326
11327typedef enum SIATTRIBFLAGS {
11328    SIATTRIBFLAGS_AND = 0x1,
11329    SIATTRIBFLAGS_OR = 0x2,
11330    SIATTRIBFLAGS_APPCOMPAT = 0x3,
11331    SIATTRIBFLAGS_MASK = 0x3,
11332    SIATTRIBFLAGS_ALLITEMS = 0x4000
11333} SIATTRIBFLAGS;
11334
11335DEFINE_ENUM_FLAG_OPERATORS(SIATTRIBFLAGS)
11336
11337DEFINE_GUID(IID_IShellItemArray, 0xb63ea76d, 0x1f85, 0x456f, 0xa1,0x9c, 0x48,0x15,0x9e,0xfa,0x85,0x8b);
11338#if defined(__cplusplus) && !defined(CINTERFACE)
11339MIDL_INTERFACE("b63ea76d-1f85-456f-a19c-48159efa858b")
11340IShellItemArray : public IUnknown
11341{
11342    virtual HRESULT STDMETHODCALLTYPE BindToHandler(
11343        IBindCtx *pbc,
11344        REFGUID bhid,
11345        REFIID riid,
11346        void **ppvOut) = 0;
11347
11348    virtual HRESULT STDMETHODCALLTYPE GetPropertyStore(
11349        GETPROPERTYSTOREFLAGS flags,
11350        REFIID riid,
11351        void **ppv) = 0;
11352
11353    virtual HRESULT STDMETHODCALLTYPE GetPropertyDescriptionList(
11354        REFPROPERTYKEY keyType,
11355        REFIID riid,
11356        void **ppv) = 0;
11357
11358    virtual HRESULT STDMETHODCALLTYPE GetAttributes(
11359        SIATTRIBFLAGS AttribFlags,
11360        SFGAOF sfgaoMask,
11361        SFGAOF *psfgaoAttribs) = 0;
11362
11363    virtual HRESULT STDMETHODCALLTYPE GetCount(
11364        DWORD *pdwNumItems) = 0;
11365
11366    virtual HRESULT STDMETHODCALLTYPE GetItemAt(
11367        DWORD dwIndex,
11368        IShellItem **ppsi) = 0;
11369
11370    virtual HRESULT STDMETHODCALLTYPE EnumItems(
11371        IEnumShellItems **ppenumShellItems) = 0;
11372
11373};
11374#ifdef __CRT_UUID_DECL
11375__CRT_UUID_DECL(IShellItemArray, 0xb63ea76d, 0x1f85, 0x456f, 0xa1,0x9c, 0x48,0x15,0x9e,0xfa,0x85,0x8b)
11376#endif
11377#else
11378typedef struct IShellItemArrayVtbl {
11379    BEGIN_INTERFACE
11380
11381    /*** IUnknown methods ***/
11382    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11383        IShellItemArray *This,
11384        REFIID riid,
11385        void **ppvObject);
11386
11387    ULONG (STDMETHODCALLTYPE *AddRef)(
11388        IShellItemArray *This);
11389
11390    ULONG (STDMETHODCALLTYPE *Release)(
11391        IShellItemArray *This);
11392
11393    /*** IShellItemArray methods ***/
11394    HRESULT (STDMETHODCALLTYPE *BindToHandler)(
11395        IShellItemArray *This,
11396        IBindCtx *pbc,
11397        REFGUID bhid,
11398        REFIID riid,
11399        void **ppvOut);
11400
11401    HRESULT (STDMETHODCALLTYPE *GetPropertyStore)(
11402        IShellItemArray *This,
11403        GETPROPERTYSTOREFLAGS flags,
11404        REFIID riid,
11405        void **ppv);
11406
11407    HRESULT (STDMETHODCALLTYPE *GetPropertyDescriptionList)(
11408        IShellItemArray *This,
11409        REFPROPERTYKEY keyType,
11410        REFIID riid,
11411        void **ppv);
11412
11413    HRESULT (STDMETHODCALLTYPE *GetAttributes)(
11414        IShellItemArray *This,
11415        SIATTRIBFLAGS AttribFlags,
11416        SFGAOF sfgaoMask,
11417        SFGAOF *psfgaoAttribs);
11418
11419    HRESULT (STDMETHODCALLTYPE *GetCount)(
11420        IShellItemArray *This,
11421        DWORD *pdwNumItems);
11422
11423    HRESULT (STDMETHODCALLTYPE *GetItemAt)(
11424        IShellItemArray *This,
11425        DWORD dwIndex,
11426        IShellItem **ppsi);
11427
11428    HRESULT (STDMETHODCALLTYPE *EnumItems)(
11429        IShellItemArray *This,
11430        IEnumShellItems **ppenumShellItems);
11431
11432    END_INTERFACE
11433} IShellItemArrayVtbl;
11434
11435interface IShellItemArray {
11436    CONST_VTBL IShellItemArrayVtbl* lpVtbl;
11437};
11438
11439#ifdef COBJMACROS
11440#ifndef WIDL_C_INLINE_WRAPPERS
11441/*** IUnknown methods ***/
11442#define IShellItemArray_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11443#define IShellItemArray_AddRef(This) (This)->lpVtbl->AddRef(This)
11444#define IShellItemArray_Release(This) (This)->lpVtbl->Release(This)
11445/*** IShellItemArray methods ***/
11446#define IShellItemArray_BindToHandler(This,pbc,bhid,riid,ppvOut) (This)->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppvOut)
11447#define IShellItemArray_GetPropertyStore(This,flags,riid,ppv) (This)->lpVtbl->GetPropertyStore(This,flags,riid,ppv)
11448#define IShellItemArray_GetPropertyDescriptionList(This,keyType,riid,ppv) (This)->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv)
11449#define IShellItemArray_GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs) (This)->lpVtbl->GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs)
11450#define IShellItemArray_GetCount(This,pdwNumItems) (This)->lpVtbl->GetCount(This,pdwNumItems)
11451#define IShellItemArray_GetItemAt(This,dwIndex,ppsi) (This)->lpVtbl->GetItemAt(This,dwIndex,ppsi)
11452#define IShellItemArray_EnumItems(This,ppenumShellItems) (This)->lpVtbl->EnumItems(This,ppenumShellItems)
11453#else
11454/*** IUnknown methods ***/
11455static inline HRESULT IShellItemArray_QueryInterface(IShellItemArray* This,REFIID riid,void **ppvObject) {
11456    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11457}
11458static inline ULONG IShellItemArray_AddRef(IShellItemArray* This) {
11459    return This->lpVtbl->AddRef(This);
11460}
11461static inline ULONG IShellItemArray_Release(IShellItemArray* This) {
11462    return This->lpVtbl->Release(This);
11463}
11464/*** IShellItemArray methods ***/
11465static inline HRESULT IShellItemArray_BindToHandler(IShellItemArray* This,IBindCtx *pbc,REFGUID bhid,REFIID riid,void **ppvOut) {
11466    return This->lpVtbl->BindToHandler(This,pbc,bhid,riid,ppvOut);
11467}
11468static inline HRESULT IShellItemArray_GetPropertyStore(IShellItemArray* This,GETPROPERTYSTOREFLAGS flags,REFIID riid,void **ppv) {
11469    return This->lpVtbl->GetPropertyStore(This,flags,riid,ppv);
11470}
11471static inline HRESULT IShellItemArray_GetPropertyDescriptionList(IShellItemArray* This,REFPROPERTYKEY keyType,REFIID riid,void **ppv) {
11472    return This->lpVtbl->GetPropertyDescriptionList(This,keyType,riid,ppv);
11473}
11474static inline HRESULT IShellItemArray_GetAttributes(IShellItemArray* This,SIATTRIBFLAGS AttribFlags,SFGAOF sfgaoMask,SFGAOF *psfgaoAttribs) {
11475    return This->lpVtbl->GetAttributes(This,AttribFlags,sfgaoMask,psfgaoAttribs);
11476}
11477static inline HRESULT IShellItemArray_GetCount(IShellItemArray* This,DWORD *pdwNumItems) {
11478    return This->lpVtbl->GetCount(This,pdwNumItems);
11479}
11480static inline HRESULT IShellItemArray_GetItemAt(IShellItemArray* This,DWORD dwIndex,IShellItem **ppsi) {
11481    return This->lpVtbl->GetItemAt(This,dwIndex,ppsi);
11482}
11483static inline HRESULT IShellItemArray_EnumItems(IShellItemArray* This,IEnumShellItems **ppenumShellItems) {
11484    return This->lpVtbl->EnumItems(This,ppenumShellItems);
11485}
11486#endif
11487#endif
11488
11489#endif
11490
11491
11492#endif  /* __IShellItemArray_INTERFACE_DEFINED__ */
11493
11494
11495#if _WIN32_IE >= _WIN32_IE_IE70
11496  SHSTDAPI SHCreateShellItemArray(PCIDLIST_ABSOLUTE pidlParent, IShellFolder *psf, UINT cidl, PCUITEMID_CHILD_ARRAY ppidl, IShellItemArray **ppsiItemArray);
11497  SHSTDAPI SHCreateShellItemArrayFromDataObject(IDataObject *pdo, REFIID riid, void **ppv);
11498  SHSTDAPI SHCreateShellItemArrayFromIDLists(UINT cidl, PCIDLIST_ABSOLUTE_ARRAY rgpidl, IShellItemArray **ppsiItemArray);
11499  SHSTDAPI SHCreateShellItemArrayFromShellItem(IShellItem *psi, REFIID riid, void **ppv);
11500#endif
11501
11502/*****************************************************************************
11503 * IInitializeWithItem interface
11504 */
11505#ifndef __IInitializeWithItem_INTERFACE_DEFINED__
11506#define __IInitializeWithItem_INTERFACE_DEFINED__
11507
11508DEFINE_GUID(IID_IInitializeWithItem, 0x7f73be3f, 0xfb79, 0x493c, 0xa6,0xc7, 0x7e,0xe1,0x4e,0x24,0x58,0x41);
11509#if defined(__cplusplus) && !defined(CINTERFACE)
11510MIDL_INTERFACE("7f73be3f-fb79-493c-a6c7-7ee14e245841")
11511IInitializeWithItem : public IUnknown
11512{
11513    virtual HRESULT STDMETHODCALLTYPE Initialize(
11514        IShellItem *psi,
11515        DWORD grfMode) = 0;
11516
11517};
11518#ifdef __CRT_UUID_DECL
11519__CRT_UUID_DECL(IInitializeWithItem, 0x7f73be3f, 0xfb79, 0x493c, 0xa6,0xc7, 0x7e,0xe1,0x4e,0x24,0x58,0x41)
11520#endif
11521#else
11522typedef struct IInitializeWithItemVtbl {
11523    BEGIN_INTERFACE
11524
11525    /*** IUnknown methods ***/
11526    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11527        IInitializeWithItem *This,
11528        REFIID riid,
11529        void **ppvObject);
11530
11531    ULONG (STDMETHODCALLTYPE *AddRef)(
11532        IInitializeWithItem *This);
11533
11534    ULONG (STDMETHODCALLTYPE *Release)(
11535        IInitializeWithItem *This);
11536
11537    /*** IInitializeWithItem methods ***/
11538    HRESULT (STDMETHODCALLTYPE *Initialize)(
11539        IInitializeWithItem *This,
11540        IShellItem *psi,
11541        DWORD grfMode);
11542
11543    END_INTERFACE
11544} IInitializeWithItemVtbl;
11545
11546interface IInitializeWithItem {
11547    CONST_VTBL IInitializeWithItemVtbl* lpVtbl;
11548};
11549
11550#ifdef COBJMACROS
11551#ifndef WIDL_C_INLINE_WRAPPERS
11552/*** IUnknown methods ***/
11553#define IInitializeWithItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11554#define IInitializeWithItem_AddRef(This) (This)->lpVtbl->AddRef(This)
11555#define IInitializeWithItem_Release(This) (This)->lpVtbl->Release(This)
11556/*** IInitializeWithItem methods ***/
11557#define IInitializeWithItem_Initialize(This,psi,grfMode) (This)->lpVtbl->Initialize(This,psi,grfMode)
11558#else
11559/*** IUnknown methods ***/
11560static inline HRESULT IInitializeWithItem_QueryInterface(IInitializeWithItem* This,REFIID riid,void **ppvObject) {
11561    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11562}
11563static inline ULONG IInitializeWithItem_AddRef(IInitializeWithItem* This) {
11564    return This->lpVtbl->AddRef(This);
11565}
11566static inline ULONG IInitializeWithItem_Release(IInitializeWithItem* This) {
11567    return This->lpVtbl->Release(This);
11568}
11569/*** IInitializeWithItem methods ***/
11570static inline HRESULT IInitializeWithItem_Initialize(IInitializeWithItem* This,IShellItem *psi,DWORD grfMode) {
11571    return This->lpVtbl->Initialize(This,psi,grfMode);
11572}
11573#endif
11574#endif
11575
11576#endif
11577
11578
11579#endif  /* __IInitializeWithItem_INTERFACE_DEFINED__ */
11580
11581
11582/*****************************************************************************
11583 * IObjectWithSelection interface
11584 */
11585#ifndef __IObjectWithSelection_INTERFACE_DEFINED__
11586#define __IObjectWithSelection_INTERFACE_DEFINED__
11587
11588DEFINE_GUID(IID_IObjectWithSelection, 0x1c9cd5bb, 0x98e9, 0x4491, 0xa6,0x0f, 0x31,0xaa,0xcc,0x72,0xb8,0x3c);
11589#if defined(__cplusplus) && !defined(CINTERFACE)
11590MIDL_INTERFACE("1c9cd5bb-98e9-4491-a60f-31aacc72b83c")
11591IObjectWithSelection : public IUnknown
11592{
11593    virtual HRESULT STDMETHODCALLTYPE SetSelection(
11594        IShellItemArray *psia) = 0;
11595
11596    virtual HRESULT STDMETHODCALLTYPE GetSelection(
11597        REFIID riid,
11598        void **ppv) = 0;
11599
11600};
11601#ifdef __CRT_UUID_DECL
11602__CRT_UUID_DECL(IObjectWithSelection, 0x1c9cd5bb, 0x98e9, 0x4491, 0xa6,0x0f, 0x31,0xaa,0xcc,0x72,0xb8,0x3c)
11603#endif
11604#else
11605typedef struct IObjectWithSelectionVtbl {
11606    BEGIN_INTERFACE
11607
11608    /*** IUnknown methods ***/
11609    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11610        IObjectWithSelection *This,
11611        REFIID riid,
11612        void **ppvObject);
11613
11614    ULONG (STDMETHODCALLTYPE *AddRef)(
11615        IObjectWithSelection *This);
11616
11617    ULONG (STDMETHODCALLTYPE *Release)(
11618        IObjectWithSelection *This);
11619
11620    /*** IObjectWithSelection methods ***/
11621    HRESULT (STDMETHODCALLTYPE *SetSelection)(
11622        IObjectWithSelection *This,
11623        IShellItemArray *psia);
11624
11625    HRESULT (STDMETHODCALLTYPE *GetSelection)(
11626        IObjectWithSelection *This,
11627        REFIID riid,
11628        void **ppv);
11629
11630    END_INTERFACE
11631} IObjectWithSelectionVtbl;
11632
11633interface IObjectWithSelection {
11634    CONST_VTBL IObjectWithSelectionVtbl* lpVtbl;
11635};
11636
11637#ifdef COBJMACROS
11638#ifndef WIDL_C_INLINE_WRAPPERS
11639/*** IUnknown methods ***/
11640#define IObjectWithSelection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11641#define IObjectWithSelection_AddRef(This) (This)->lpVtbl->AddRef(This)
11642#define IObjectWithSelection_Release(This) (This)->lpVtbl->Release(This)
11643/*** IObjectWithSelection methods ***/
11644#define IObjectWithSelection_SetSelection(This,psia) (This)->lpVtbl->SetSelection(This,psia)
11645#define IObjectWithSelection_GetSelection(This,riid,ppv) (This)->lpVtbl->GetSelection(This,riid,ppv)
11646#else
11647/*** IUnknown methods ***/
11648static inline HRESULT IObjectWithSelection_QueryInterface(IObjectWithSelection* This,REFIID riid,void **ppvObject) {
11649    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11650}
11651static inline ULONG IObjectWithSelection_AddRef(IObjectWithSelection* This) {
11652    return This->lpVtbl->AddRef(This);
11653}
11654static inline ULONG IObjectWithSelection_Release(IObjectWithSelection* This) {
11655    return This->lpVtbl->Release(This);
11656}
11657/*** IObjectWithSelection methods ***/
11658static inline HRESULT IObjectWithSelection_SetSelection(IObjectWithSelection* This,IShellItemArray *psia) {
11659    return This->lpVtbl->SetSelection(This,psia);
11660}
11661static inline HRESULT IObjectWithSelection_GetSelection(IObjectWithSelection* This,REFIID riid,void **ppv) {
11662    return This->lpVtbl->GetSelection(This,riid,ppv);
11663}
11664#endif
11665#endif
11666
11667#endif
11668
11669
11670#endif  /* __IObjectWithSelection_INTERFACE_DEFINED__ */
11671
11672
11673/*****************************************************************************
11674 * IObjectWithBackReferences interface
11675 */
11676#ifndef __IObjectWithBackReferences_INTERFACE_DEFINED__
11677#define __IObjectWithBackReferences_INTERFACE_DEFINED__
11678
11679DEFINE_GUID(IID_IObjectWithBackReferences, 0x321a6a6a, 0xd61f, 0x4bf3, 0x97,0xae, 0x14,0xbe,0x29,0x86,0xbb,0x36);
11680#if defined(__cplusplus) && !defined(CINTERFACE)
11681MIDL_INTERFACE("321a6a6a-d61f-4bf3-97ae-14be2986bb36")
11682IObjectWithBackReferences : public IUnknown
11683{
11684    virtual HRESULT STDMETHODCALLTYPE RemoveBackReferences(
11685        ) = 0;
11686
11687};
11688#ifdef __CRT_UUID_DECL
11689__CRT_UUID_DECL(IObjectWithBackReferences, 0x321a6a6a, 0xd61f, 0x4bf3, 0x97,0xae, 0x14,0xbe,0x29,0x86,0xbb,0x36)
11690#endif
11691#else
11692typedef struct IObjectWithBackReferencesVtbl {
11693    BEGIN_INTERFACE
11694
11695    /*** IUnknown methods ***/
11696    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11697        IObjectWithBackReferences *This,
11698        REFIID riid,
11699        void **ppvObject);
11700
11701    ULONG (STDMETHODCALLTYPE *AddRef)(
11702        IObjectWithBackReferences *This);
11703
11704    ULONG (STDMETHODCALLTYPE *Release)(
11705        IObjectWithBackReferences *This);
11706
11707    /*** IObjectWithBackReferences methods ***/
11708    HRESULT (STDMETHODCALLTYPE *RemoveBackReferences)(
11709        IObjectWithBackReferences *This);
11710
11711    END_INTERFACE
11712} IObjectWithBackReferencesVtbl;
11713
11714interface IObjectWithBackReferences {
11715    CONST_VTBL IObjectWithBackReferencesVtbl* lpVtbl;
11716};
11717
11718#ifdef COBJMACROS
11719#ifndef WIDL_C_INLINE_WRAPPERS
11720/*** IUnknown methods ***/
11721#define IObjectWithBackReferences_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11722#define IObjectWithBackReferences_AddRef(This) (This)->lpVtbl->AddRef(This)
11723#define IObjectWithBackReferences_Release(This) (This)->lpVtbl->Release(This)
11724/*** IObjectWithBackReferences methods ***/
11725#define IObjectWithBackReferences_RemoveBackReferences(This) (This)->lpVtbl->RemoveBackReferences(This)
11726#else
11727/*** IUnknown methods ***/
11728static inline HRESULT IObjectWithBackReferences_QueryInterface(IObjectWithBackReferences* This,REFIID riid,void **ppvObject) {
11729    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11730}
11731static inline ULONG IObjectWithBackReferences_AddRef(IObjectWithBackReferences* This) {
11732    return This->lpVtbl->AddRef(This);
11733}
11734static inline ULONG IObjectWithBackReferences_Release(IObjectWithBackReferences* This) {
11735    return This->lpVtbl->Release(This);
11736}
11737/*** IObjectWithBackReferences methods ***/
11738static inline HRESULT IObjectWithBackReferences_RemoveBackReferences(IObjectWithBackReferences* This) {
11739    return This->lpVtbl->RemoveBackReferences(This);
11740}
11741#endif
11742#endif
11743
11744#endif
11745
11746
11747#endif  /* __IObjectWithBackReferences_INTERFACE_DEFINED__ */
11748
11749
11750enum _PROPERTYUI_NAME_FLAGS {
11751    PUIFNF_DEFAULT = 0x0,
11752    PUIFNF_MNEMONIC = 0x1
11753};
11754
11755typedef DWORD PROPERTYUI_NAME_FLAGS;
11756
11757enum _PROPERTYUI_FLAGS {
11758    PUIF_DEFAULT = 0x0,
11759    PUIF_RIGHTALIGN = 0x1,
11760    PUIF_NOLABELININFOTIP = 0x2
11761};
11762
11763typedef DWORD PROPERTYUI_FLAGS;
11764
11765enum _PROPERTYUI_FORMAT_FLAGS {
11766    PUIFFDF_DEFAULT = 0x0,
11767    PUIFFDF_RIGHTTOLEFT = 0x1,
11768    PUIFFDF_SHORTFORMAT = 0x2,
11769    PUIFFDF_NOTIME = 0x4,
11770    PUIFFDF_FRIENDLYDATE = 0x8
11771};
11772
11773typedef DWORD PROPERTYUI_FORMAT_FLAGS;
11774
11775/*****************************************************************************
11776 * IPropertyUI interface
11777 */
11778#ifndef __IPropertyUI_INTERFACE_DEFINED__
11779#define __IPropertyUI_INTERFACE_DEFINED__
11780
11781DEFINE_GUID(IID_IPropertyUI, 0x757a7d9f, 0x919a, 0x4118, 0x99,0xd7, 0xdb,0xb2,0x08,0xc8,0xcc,0x66);
11782#if defined(__cplusplus) && !defined(CINTERFACE)
11783MIDL_INTERFACE("757a7d9f-919a-4118-99d7-dbb208c8cc66")
11784IPropertyUI : public IUnknown
11785{
11786    virtual HRESULT STDMETHODCALLTYPE ParsePropertyName(
11787        LPCWSTR pszName,
11788        FMTID *pfmtid,
11789        PROPID *ppid,
11790        ULONG *pchEaten) = 0;
11791
11792    virtual HRESULT STDMETHODCALLTYPE GetCannonicalName(
11793        REFFMTID fmtid,
11794        PROPID pid,
11795        LPWSTR pwszText,
11796        DWORD cchText) = 0;
11797
11798    virtual HRESULT STDMETHODCALLTYPE GetDisplayName(
11799        REFFMTID fmtid,
11800        PROPID pid,
11801        PROPERTYUI_NAME_FLAGS flags,
11802        LPWSTR pwszText,
11803        DWORD cchText) = 0;
11804
11805    virtual HRESULT STDMETHODCALLTYPE GetPropertyDescription(
11806        REFFMTID fmtid,
11807        PROPID pid,
11808        LPWSTR pwszText,
11809        DWORD cchText) = 0;
11810
11811    virtual HRESULT STDMETHODCALLTYPE GetDefaultWidth(
11812        REFFMTID fmtid,
11813        PROPID pid,
11814        ULONG *pcxChars) = 0;
11815
11816    virtual HRESULT STDMETHODCALLTYPE GetFlags(
11817        REFFMTID fmtid,
11818        PROPID pid,
11819        PROPERTYUI_FLAGS *pflags) = 0;
11820
11821    virtual HRESULT STDMETHODCALLTYPE FormatForDisplay(
11822        REFFMTID fmtid,
11823        PROPID pid,
11824        const PROPVARIANT *ppropvar,
11825        PROPERTYUI_FORMAT_FLAGS puiff,
11826        LPWSTR pwszText,
11827        DWORD cchText) = 0;
11828
11829    virtual HRESULT STDMETHODCALLTYPE GetHelpInfo(
11830        REFFMTID fmtid,
11831        PROPID pid,
11832        LPWSTR pwszHelpFile,
11833        DWORD cch,
11834        UINT *puHelpID) = 0;
11835
11836};
11837#ifdef __CRT_UUID_DECL
11838__CRT_UUID_DECL(IPropertyUI, 0x757a7d9f, 0x919a, 0x4118, 0x99,0xd7, 0xdb,0xb2,0x08,0xc8,0xcc,0x66)
11839#endif
11840#else
11841typedef struct IPropertyUIVtbl {
11842    BEGIN_INTERFACE
11843
11844    /*** IUnknown methods ***/
11845    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
11846        IPropertyUI *This,
11847        REFIID riid,
11848        void **ppvObject);
11849
11850    ULONG (STDMETHODCALLTYPE *AddRef)(
11851        IPropertyUI *This);
11852
11853    ULONG (STDMETHODCALLTYPE *Release)(
11854        IPropertyUI *This);
11855
11856    /*** IPropertyUI methods ***/
11857    HRESULT (STDMETHODCALLTYPE *ParsePropertyName)(
11858        IPropertyUI *This,
11859        LPCWSTR pszName,
11860        FMTID *pfmtid,
11861        PROPID *ppid,
11862        ULONG *pchEaten);
11863
11864    HRESULT (STDMETHODCALLTYPE *GetCannonicalName)(
11865        IPropertyUI *This,
11866        REFFMTID fmtid,
11867        PROPID pid,
11868        LPWSTR pwszText,
11869        DWORD cchText);
11870
11871    HRESULT (STDMETHODCALLTYPE *GetDisplayName)(
11872        IPropertyUI *This,
11873        REFFMTID fmtid,
11874        PROPID pid,
11875        PROPERTYUI_NAME_FLAGS flags,
11876        LPWSTR pwszText,
11877        DWORD cchText);
11878
11879    HRESULT (STDMETHODCALLTYPE *GetPropertyDescription)(
11880        IPropertyUI *This,
11881        REFFMTID fmtid,
11882        PROPID pid,
11883        LPWSTR pwszText,
11884        DWORD cchText);
11885
11886    HRESULT (STDMETHODCALLTYPE *GetDefaultWidth)(
11887        IPropertyUI *This,
11888        REFFMTID fmtid,
11889        PROPID pid,
11890        ULONG *pcxChars);
11891
11892    HRESULT (STDMETHODCALLTYPE *GetFlags)(
11893        IPropertyUI *This,
11894        REFFMTID fmtid,
11895        PROPID pid,
11896        PROPERTYUI_FLAGS *pflags);
11897
11898    HRESULT (STDMETHODCALLTYPE *FormatForDisplay)(
11899        IPropertyUI *This,
11900        REFFMTID fmtid,
11901        PROPID pid,
11902        const PROPVARIANT *ppropvar,
11903        PROPERTYUI_FORMAT_FLAGS puiff,
11904        LPWSTR pwszText,
11905        DWORD cchText);
11906
11907    HRESULT (STDMETHODCALLTYPE *GetHelpInfo)(
11908        IPropertyUI *This,
11909        REFFMTID fmtid,
11910        PROPID pid,
11911        LPWSTR pwszHelpFile,
11912        DWORD cch,
11913        UINT *puHelpID);
11914
11915    END_INTERFACE
11916} IPropertyUIVtbl;
11917
11918interface IPropertyUI {
11919    CONST_VTBL IPropertyUIVtbl* lpVtbl;
11920};
11921
11922#ifdef COBJMACROS
11923#ifndef WIDL_C_INLINE_WRAPPERS
11924/*** IUnknown methods ***/
11925#define IPropertyUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
11926#define IPropertyUI_AddRef(This) (This)->lpVtbl->AddRef(This)
11927#define IPropertyUI_Release(This) (This)->lpVtbl->Release(This)
11928/*** IPropertyUI methods ***/
11929#define IPropertyUI_ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten) (This)->lpVtbl->ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten)
11930#define IPropertyUI_GetCannonicalName(This,fmtid,pid,pwszText,cchText) (This)->lpVtbl->GetCannonicalName(This,fmtid,pid,pwszText,cchText)
11931#define IPropertyUI_GetDisplayName(This,fmtid,pid,flags,pwszText,cchText) (This)->lpVtbl->GetDisplayName(This,fmtid,pid,flags,pwszText,cchText)
11932#define IPropertyUI_GetPropertyDescription(This,fmtid,pid,pwszText,cchText) (This)->lpVtbl->GetPropertyDescription(This,fmtid,pid,pwszText,cchText)
11933#define IPropertyUI_GetDefaultWidth(This,fmtid,pid,pcxChars) (This)->lpVtbl->GetDefaultWidth(This,fmtid,pid,pcxChars)
11934#define IPropertyUI_GetFlags(This,fmtid,pid,pflags) (This)->lpVtbl->GetFlags(This,fmtid,pid,pflags)
11935#define IPropertyUI_FormatForDisplay(This,fmtid,pid,ppropvar,puiff,pwszText,cchText) (This)->lpVtbl->FormatForDisplay(This,fmtid,pid,ppropvar,puiff,pwszText,cchText)
11936#define IPropertyUI_GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID) (This)->lpVtbl->GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID)
11937#else
11938/*** IUnknown methods ***/
11939static inline HRESULT IPropertyUI_QueryInterface(IPropertyUI* This,REFIID riid,void **ppvObject) {
11940    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
11941}
11942static inline ULONG IPropertyUI_AddRef(IPropertyUI* This) {
11943    return This->lpVtbl->AddRef(This);
11944}
11945static inline ULONG IPropertyUI_Release(IPropertyUI* This) {
11946    return This->lpVtbl->Release(This);
11947}
11948/*** IPropertyUI methods ***/
11949static inline HRESULT IPropertyUI_ParsePropertyName(IPropertyUI* This,LPCWSTR pszName,FMTID *pfmtid,PROPID *ppid,ULONG *pchEaten) {
11950    return This->lpVtbl->ParsePropertyName(This,pszName,pfmtid,ppid,pchEaten);
11951}
11952static inline HRESULT IPropertyUI_GetCannonicalName(IPropertyUI* This,REFFMTID fmtid,PROPID pid,LPWSTR pwszText,DWORD cchText) {
11953    return This->lpVtbl->GetCannonicalName(This,fmtid,pid,pwszText,cchText);
11954}
11955static inline HRESULT IPropertyUI_GetDisplayName(IPropertyUI* This,REFFMTID fmtid,PROPID pid,PROPERTYUI_NAME_FLAGS flags,LPWSTR pwszText,DWORD cchText) {
11956    return This->lpVtbl->GetDisplayName(This,fmtid,pid,flags,pwszText,cchText);
11957}
11958static inline HRESULT IPropertyUI_GetPropertyDescription(IPropertyUI* This,REFFMTID fmtid,PROPID pid,LPWSTR pwszText,DWORD cchText) {
11959    return This->lpVtbl->GetPropertyDescription(This,fmtid,pid,pwszText,cchText);
11960}
11961static inline HRESULT IPropertyUI_GetDefaultWidth(IPropertyUI* This,REFFMTID fmtid,PROPID pid,ULONG *pcxChars) {
11962    return This->lpVtbl->GetDefaultWidth(This,fmtid,pid,pcxChars);
11963}
11964static inline HRESULT IPropertyUI_GetFlags(IPropertyUI* This,REFFMTID fmtid,PROPID pid,PROPERTYUI_FLAGS *pflags) {
11965    return This->lpVtbl->GetFlags(This,fmtid,pid,pflags);
11966}
11967static inline HRESULT IPropertyUI_FormatForDisplay(IPropertyUI* This,REFFMTID fmtid,PROPID pid,const PROPVARIANT *ppropvar,PROPERTYUI_FORMAT_FLAGS puiff,LPWSTR pwszText,DWORD cchText) {
11968    return This->lpVtbl->FormatForDisplay(This,fmtid,pid,ppropvar,puiff,pwszText,cchText);
11969}
11970static inline HRESULT IPropertyUI_GetHelpInfo(IPropertyUI* This,REFFMTID fmtid,PROPID pid,LPWSTR pwszHelpFile,DWORD cch,UINT *puHelpID) {
11971    return This->lpVtbl->GetHelpInfo(This,fmtid,pid,pwszHelpFile,cch,puHelpID);
11972}
11973#endif
11974#endif
11975
11976#endif
11977
11978
11979#endif  /* __IPropertyUI_INTERFACE_DEFINED__ */
11980
11981
11982#if _WIN32_IE >= _WIN32_IE_IE70
11983  SHSTDAPI SHRemovePersonalPropertyValues(IShellItemArray *psia);
11984  SHSTDAPI SHAddDefaultPropertiesByExt(PCWSTR pszExt, IPropertyStore *pPropStore);
11985  SHSTDAPI SHCreateDefaultPropertiesOp(IShellItem *psi, IFileOperation **ppFileOp);
11986  SHSTDAPI SHSetDefaultProperties(HWND hwnd, IShellItem *psi, DWORD dwFileOpFlags, IFileOperationProgressSink *pfops);
11987#endif
11988
11989/*****************************************************************************
11990 * ICategoryProvider interface
11991 */
11992#ifndef __ICategoryProvider_INTERFACE_DEFINED__
11993#define __ICategoryProvider_INTERFACE_DEFINED__
11994
11995DEFINE_GUID(IID_ICategoryProvider, 0x9af64809, 0x5864, 0x4c26, 0xa7,0x20, 0xc1,0xf7,0x8c,0x08,0x6e,0xe3);
11996#if defined(__cplusplus) && !defined(CINTERFACE)
11997MIDL_INTERFACE("9af64809-5864-4c26-a720-c1f78c086ee3")
11998ICategoryProvider : public IUnknown
11999{
12000    virtual HRESULT STDMETHODCALLTYPE CanCategorizeOnSCID(
12001        const SHCOLUMNID *pscid) = 0;
12002
12003    virtual HRESULT STDMETHODCALLTYPE GetDefaultCategory(
12004        GUID *pguid,
12005        SHCOLUMNID *pscid) = 0;
12006
12007    virtual HRESULT STDMETHODCALLTYPE GetCategoryForSCID(
12008        const SHCOLUMNID *pscid,
12009        GUID *pguid) = 0;
12010
12011    virtual HRESULT STDMETHODCALLTYPE EnumCategories(
12012        IEnumGUID **penum) = 0;
12013
12014    virtual HRESULT STDMETHODCALLTYPE GetCategoryName(
12015        const GUID *pguid,
12016        LPWSTR pszName,
12017        UINT cch) = 0;
12018
12019    virtual HRESULT STDMETHODCALLTYPE CreateCategory(
12020        const GUID *pguid,
12021        REFIID riid,
12022        void **ppv) = 0;
12023
12024};
12025#ifdef __CRT_UUID_DECL
12026__CRT_UUID_DECL(ICategoryProvider, 0x9af64809, 0x5864, 0x4c26, 0xa7,0x20, 0xc1,0xf7,0x8c,0x08,0x6e,0xe3)
12027#endif
12028#else
12029typedef struct ICategoryProviderVtbl {
12030    BEGIN_INTERFACE
12031
12032    /*** IUnknown methods ***/
12033    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12034        ICategoryProvider *This,
12035        REFIID riid,
12036        void **ppvObject);
12037
12038    ULONG (STDMETHODCALLTYPE *AddRef)(
12039        ICategoryProvider *This);
12040
12041    ULONG (STDMETHODCALLTYPE *Release)(
12042        ICategoryProvider *This);
12043
12044    /*** ICategoryProvider methods ***/
12045    HRESULT (STDMETHODCALLTYPE *CanCategorizeOnSCID)(
12046        ICategoryProvider *This,
12047        const SHCOLUMNID *pscid);
12048
12049    HRESULT (STDMETHODCALLTYPE *GetDefaultCategory)(
12050        ICategoryProvider *This,
12051        GUID *pguid,
12052        SHCOLUMNID *pscid);
12053
12054    HRESULT (STDMETHODCALLTYPE *GetCategoryForSCID)(
12055        ICategoryProvider *This,
12056        const SHCOLUMNID *pscid,
12057        GUID *pguid);
12058
12059    HRESULT (STDMETHODCALLTYPE *EnumCategories)(
12060        ICategoryProvider *This,
12061        IEnumGUID **penum);
12062
12063    HRESULT (STDMETHODCALLTYPE *GetCategoryName)(
12064        ICategoryProvider *This,
12065        const GUID *pguid,
12066        LPWSTR pszName,
12067        UINT cch);
12068
12069    HRESULT (STDMETHODCALLTYPE *CreateCategory)(
12070        ICategoryProvider *This,
12071        const GUID *pguid,
12072        REFIID riid,
12073        void **ppv);
12074
12075    END_INTERFACE
12076} ICategoryProviderVtbl;
12077
12078interface ICategoryProvider {
12079    CONST_VTBL ICategoryProviderVtbl* lpVtbl;
12080};
12081
12082#ifdef COBJMACROS
12083#ifndef WIDL_C_INLINE_WRAPPERS
12084/*** IUnknown methods ***/
12085#define ICategoryProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12086#define ICategoryProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
12087#define ICategoryProvider_Release(This) (This)->lpVtbl->Release(This)
12088/*** ICategoryProvider methods ***/
12089#define ICategoryProvider_CanCategorizeOnSCID(This,pscid) (This)->lpVtbl->CanCategorizeOnSCID(This,pscid)
12090#define ICategoryProvider_GetDefaultCategory(This,pguid,pscid) (This)->lpVtbl->GetDefaultCategory(This,pguid,pscid)
12091#define ICategoryProvider_GetCategoryForSCID(This,pscid,pguid) (This)->lpVtbl->GetCategoryForSCID(This,pscid,pguid)
12092#define ICategoryProvider_EnumCategories(This,penum) (This)->lpVtbl->EnumCategories(This,penum)
12093#define ICategoryProvider_GetCategoryName(This,pguid,pszName,cch) (This)->lpVtbl->GetCategoryName(This,pguid,pszName,cch)
12094#define ICategoryProvider_CreateCategory(This,pguid,riid,ppv) (This)->lpVtbl->CreateCategory(This,pguid,riid,ppv)
12095#else
12096/*** IUnknown methods ***/
12097static inline HRESULT ICategoryProvider_QueryInterface(ICategoryProvider* This,REFIID riid,void **ppvObject) {
12098    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12099}
12100static inline ULONG ICategoryProvider_AddRef(ICategoryProvider* This) {
12101    return This->lpVtbl->AddRef(This);
12102}
12103static inline ULONG ICategoryProvider_Release(ICategoryProvider* This) {
12104    return This->lpVtbl->Release(This);
12105}
12106/*** ICategoryProvider methods ***/
12107static inline HRESULT ICategoryProvider_CanCategorizeOnSCID(ICategoryProvider* This,const SHCOLUMNID *pscid) {
12108    return This->lpVtbl->CanCategorizeOnSCID(This,pscid);
12109}
12110static inline HRESULT ICategoryProvider_GetDefaultCategory(ICategoryProvider* This,GUID *pguid,SHCOLUMNID *pscid) {
12111    return This->lpVtbl->GetDefaultCategory(This,pguid,pscid);
12112}
12113static inline HRESULT ICategoryProvider_GetCategoryForSCID(ICategoryProvider* This,const SHCOLUMNID *pscid,GUID *pguid) {
12114    return This->lpVtbl->GetCategoryForSCID(This,pscid,pguid);
12115}
12116static inline HRESULT ICategoryProvider_EnumCategories(ICategoryProvider* This,IEnumGUID **penum) {
12117    return This->lpVtbl->EnumCategories(This,penum);
12118}
12119static inline HRESULT ICategoryProvider_GetCategoryName(ICategoryProvider* This,const GUID *pguid,LPWSTR pszName,UINT cch) {
12120    return This->lpVtbl->GetCategoryName(This,pguid,pszName,cch);
12121}
12122static inline HRESULT ICategoryProvider_CreateCategory(ICategoryProvider* This,const GUID *pguid,REFIID riid,void **ppv) {
12123    return This->lpVtbl->CreateCategory(This,pguid,riid,ppv);
12124}
12125#endif
12126#endif
12127
12128#endif
12129
12130
12131#endif  /* __ICategoryProvider_INTERFACE_DEFINED__ */
12132
12133
12134typedef enum CATEGORYINFO_FLAGS {
12135    CATINFO_NORMAL = 0x0,
12136    CATINFO_COLLAPSED = 0x1,
12137    CATINFO_HIDDEN = 0x2,
12138    CATINFO_EXPANDED = 0x4,
12139    CATINFO_NOHEADER = 0x8,
12140    CATINFO_NOTCOLLAPSIBLE = 0x10,
12141    CATINFO_NOHEADERCOUNT = 0x20,
12142    CATINFO_SUBSETTED = 0x40
12143} CATEGORYINFO_FLAGS;
12144
12145DEFINE_ENUM_FLAG_OPERATORS(CATEGORYINFO_FLAGS)
12146
12147typedef enum CATSORT_FLAGS {
12148    CATSORT_DEFAULT = 0x0,
12149    CATSORT_NAME = 0x1
12150} CATSORT_FLAGS;
12151
12152DEFINE_ENUM_FLAG_OPERATORS(CATSORT_FLAGS)
12153
12154typedef struct CATEGORY_INFO {
12155    CATEGORYINFO_FLAGS cif;
12156    WCHAR wszName[260];
12157} CATEGORY_INFO;
12158
12159/*****************************************************************************
12160 * ICategorizer interface
12161 */
12162#ifndef __ICategorizer_INTERFACE_DEFINED__
12163#define __ICategorizer_INTERFACE_DEFINED__
12164
12165DEFINE_GUID(IID_ICategorizer, 0xa3b14589, 0x9174, 0x49a8, 0x89,0xa3, 0x06,0xa1,0xae,0x2b,0x9b,0xa7);
12166#if defined(__cplusplus) && !defined(CINTERFACE)
12167MIDL_INTERFACE("a3b14589-9174-49a8-89a3-06a1ae2b9ba7")
12168ICategorizer : public IUnknown
12169{
12170    virtual HRESULT STDMETHODCALLTYPE GetDescription(
12171        LPWSTR pszDesc,
12172        UINT cch) = 0;
12173
12174    virtual HRESULT STDMETHODCALLTYPE GetCategory(
12175        UINT cidl,
12176        PCUITEMID_CHILD_ARRAY apidl,
12177        DWORD *rgCategoryIds) = 0;
12178
12179    virtual HRESULT STDMETHODCALLTYPE GetCategoryInfo(
12180        DWORD dwCategoryId,
12181        CATEGORY_INFO *pci) = 0;
12182
12183    virtual HRESULT STDMETHODCALLTYPE CompareCategory(
12184        CATSORT_FLAGS csfFlags,
12185        DWORD dwCategoryId1,
12186        DWORD dwCategoryId2) = 0;
12187
12188};
12189#ifdef __CRT_UUID_DECL
12190__CRT_UUID_DECL(ICategorizer, 0xa3b14589, 0x9174, 0x49a8, 0x89,0xa3, 0x06,0xa1,0xae,0x2b,0x9b,0xa7)
12191#endif
12192#else
12193typedef struct ICategorizerVtbl {
12194    BEGIN_INTERFACE
12195
12196    /*** IUnknown methods ***/
12197    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12198        ICategorizer *This,
12199        REFIID riid,
12200        void **ppvObject);
12201
12202    ULONG (STDMETHODCALLTYPE *AddRef)(
12203        ICategorizer *This);
12204
12205    ULONG (STDMETHODCALLTYPE *Release)(
12206        ICategorizer *This);
12207
12208    /*** ICategorizer methods ***/
12209    HRESULT (STDMETHODCALLTYPE *GetDescription)(
12210        ICategorizer *This,
12211        LPWSTR pszDesc,
12212        UINT cch);
12213
12214    HRESULT (STDMETHODCALLTYPE *GetCategory)(
12215        ICategorizer *This,
12216        UINT cidl,
12217        PCUITEMID_CHILD_ARRAY apidl,
12218        DWORD *rgCategoryIds);
12219
12220    HRESULT (STDMETHODCALLTYPE *GetCategoryInfo)(
12221        ICategorizer *This,
12222        DWORD dwCategoryId,
12223        CATEGORY_INFO *pci);
12224
12225    HRESULT (STDMETHODCALLTYPE *CompareCategory)(
12226        ICategorizer *This,
12227        CATSORT_FLAGS csfFlags,
12228        DWORD dwCategoryId1,
12229        DWORD dwCategoryId2);
12230
12231    END_INTERFACE
12232} ICategorizerVtbl;
12233
12234interface ICategorizer {
12235    CONST_VTBL ICategorizerVtbl* lpVtbl;
12236};
12237
12238#ifdef COBJMACROS
12239#ifndef WIDL_C_INLINE_WRAPPERS
12240/*** IUnknown methods ***/
12241#define ICategorizer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12242#define ICategorizer_AddRef(This) (This)->lpVtbl->AddRef(This)
12243#define ICategorizer_Release(This) (This)->lpVtbl->Release(This)
12244/*** ICategorizer methods ***/
12245#define ICategorizer_GetDescription(This,pszDesc,cch) (This)->lpVtbl->GetDescription(This,pszDesc,cch)
12246#define ICategorizer_GetCategory(This,cidl,apidl,rgCategoryIds) (This)->lpVtbl->GetCategory(This,cidl,apidl,rgCategoryIds)
12247#define ICategorizer_GetCategoryInfo(This,dwCategoryId,pci) (This)->lpVtbl->GetCategoryInfo(This,dwCategoryId,pci)
12248#define ICategorizer_CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2) (This)->lpVtbl->CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2)
12249#else
12250/*** IUnknown methods ***/
12251static inline HRESULT ICategorizer_QueryInterface(ICategorizer* This,REFIID riid,void **ppvObject) {
12252    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12253}
12254static inline ULONG ICategorizer_AddRef(ICategorizer* This) {
12255    return This->lpVtbl->AddRef(This);
12256}
12257static inline ULONG ICategorizer_Release(ICategorizer* This) {
12258    return This->lpVtbl->Release(This);
12259}
12260/*** ICategorizer methods ***/
12261static inline HRESULT ICategorizer_GetDescription(ICategorizer* This,LPWSTR pszDesc,UINT cch) {
12262    return This->lpVtbl->GetDescription(This,pszDesc,cch);
12263}
12264static inline HRESULT ICategorizer_GetCategory(ICategorizer* This,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,DWORD *rgCategoryIds) {
12265    return This->lpVtbl->GetCategory(This,cidl,apidl,rgCategoryIds);
12266}
12267static inline HRESULT ICategorizer_GetCategoryInfo(ICategorizer* This,DWORD dwCategoryId,CATEGORY_INFO *pci) {
12268    return This->lpVtbl->GetCategoryInfo(This,dwCategoryId,pci);
12269}
12270static inline HRESULT ICategorizer_CompareCategory(ICategorizer* This,CATSORT_FLAGS csfFlags,DWORD dwCategoryId1,DWORD dwCategoryId2) {
12271    return This->lpVtbl->CompareCategory(This,csfFlags,dwCategoryId1,dwCategoryId2);
12272}
12273#endif
12274#endif
12275
12276#endif
12277
12278
12279#endif  /* __ICategorizer_INTERFACE_DEFINED__ */
12280
12281
12282#include <pshpack8.h>
12283typedef struct SHDRAGIMAGE {
12284    SIZE sizeDragImage;
12285    POINT ptOffset;
12286    HBITMAP hbmpDragImage;
12287    COLORREF crColorKey;
12288} SHDRAGIMAGE;
12289typedef struct SHDRAGIMAGE *LPSHDRAGIMAGE;
12290#include <poppack.h>
12291
12292#define DI_GETDRAGIMAGE     TEXT("ShellGetDragImage")
12293
12294/*****************************************************************************
12295 * IDropTargetHelper interface
12296 */
12297#ifndef __IDropTargetHelper_INTERFACE_DEFINED__
12298#define __IDropTargetHelper_INTERFACE_DEFINED__
12299
12300DEFINE_GUID(IID_IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83,0x9a, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
12301#if defined(__cplusplus) && !defined(CINTERFACE)
12302MIDL_INTERFACE("4657278b-411b-11d2-839a-00c04fd918d0")
12303IDropTargetHelper : public IUnknown
12304{
12305    virtual HRESULT STDMETHODCALLTYPE DragEnter(
12306        HWND hwndTarget,
12307        IDataObject *pDataObject,
12308        POINT *ppt,
12309        DWORD dwEffect) = 0;
12310
12311    virtual HRESULT STDMETHODCALLTYPE DragLeave(
12312        ) = 0;
12313
12314    virtual HRESULT STDMETHODCALLTYPE DragOver(
12315        POINT *ppt,
12316        DWORD dwEffect) = 0;
12317
12318    virtual HRESULT STDMETHODCALLTYPE Drop(
12319        IDataObject *pDataObject,
12320        POINT *ppt,
12321        DWORD dwEffect) = 0;
12322
12323    virtual HRESULT STDMETHODCALLTYPE Show(
12324        WINBOOL fShow) = 0;
12325
12326};
12327#ifdef __CRT_UUID_DECL
12328__CRT_UUID_DECL(IDropTargetHelper, 0x4657278b, 0x411b, 0x11d2, 0x83,0x9a, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
12329#endif
12330#else
12331typedef struct IDropTargetHelperVtbl {
12332    BEGIN_INTERFACE
12333
12334    /*** IUnknown methods ***/
12335    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12336        IDropTargetHelper *This,
12337        REFIID riid,
12338        void **ppvObject);
12339
12340    ULONG (STDMETHODCALLTYPE *AddRef)(
12341        IDropTargetHelper *This);
12342
12343    ULONG (STDMETHODCALLTYPE *Release)(
12344        IDropTargetHelper *This);
12345
12346    /*** IDropTargetHelper methods ***/
12347    HRESULT (STDMETHODCALLTYPE *DragEnter)(
12348        IDropTargetHelper *This,
12349        HWND hwndTarget,
12350        IDataObject *pDataObject,
12351        POINT *ppt,
12352        DWORD dwEffect);
12353
12354    HRESULT (STDMETHODCALLTYPE *DragLeave)(
12355        IDropTargetHelper *This);
12356
12357    HRESULT (STDMETHODCALLTYPE *DragOver)(
12358        IDropTargetHelper *This,
12359        POINT *ppt,
12360        DWORD dwEffect);
12361
12362    HRESULT (STDMETHODCALLTYPE *Drop)(
12363        IDropTargetHelper *This,
12364        IDataObject *pDataObject,
12365        POINT *ppt,
12366        DWORD dwEffect);
12367
12368    HRESULT (STDMETHODCALLTYPE *Show)(
12369        IDropTargetHelper *This,
12370        WINBOOL fShow);
12371
12372    END_INTERFACE
12373} IDropTargetHelperVtbl;
12374
12375interface IDropTargetHelper {
12376    CONST_VTBL IDropTargetHelperVtbl* lpVtbl;
12377};
12378
12379#ifdef COBJMACROS
12380#ifndef WIDL_C_INLINE_WRAPPERS
12381/*** IUnknown methods ***/
12382#define IDropTargetHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12383#define IDropTargetHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
12384#define IDropTargetHelper_Release(This) (This)->lpVtbl->Release(This)
12385/*** IDropTargetHelper methods ***/
12386#define IDropTargetHelper_DragEnter(This,hwndTarget,pDataObject,ppt,dwEffect) (This)->lpVtbl->DragEnter(This,hwndTarget,pDataObject,ppt,dwEffect)
12387#define IDropTargetHelper_DragLeave(This) (This)->lpVtbl->DragLeave(This)
12388#define IDropTargetHelper_DragOver(This,ppt,dwEffect) (This)->lpVtbl->DragOver(This,ppt,dwEffect)
12389#define IDropTargetHelper_Drop(This,pDataObject,ppt,dwEffect) (This)->lpVtbl->Drop(This,pDataObject,ppt,dwEffect)
12390#define IDropTargetHelper_Show(This,fShow) (This)->lpVtbl->Show(This,fShow)
12391#else
12392/*** IUnknown methods ***/
12393static inline HRESULT IDropTargetHelper_QueryInterface(IDropTargetHelper* This,REFIID riid,void **ppvObject) {
12394    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12395}
12396static inline ULONG IDropTargetHelper_AddRef(IDropTargetHelper* This) {
12397    return This->lpVtbl->AddRef(This);
12398}
12399static inline ULONG IDropTargetHelper_Release(IDropTargetHelper* This) {
12400    return This->lpVtbl->Release(This);
12401}
12402/*** IDropTargetHelper methods ***/
12403static inline HRESULT IDropTargetHelper_DragEnter(IDropTargetHelper* This,HWND hwndTarget,IDataObject *pDataObject,POINT *ppt,DWORD dwEffect) {
12404    return This->lpVtbl->DragEnter(This,hwndTarget,pDataObject,ppt,dwEffect);
12405}
12406static inline HRESULT IDropTargetHelper_DragLeave(IDropTargetHelper* This) {
12407    return This->lpVtbl->DragLeave(This);
12408}
12409static inline HRESULT IDropTargetHelper_DragOver(IDropTargetHelper* This,POINT *ppt,DWORD dwEffect) {
12410    return This->lpVtbl->DragOver(This,ppt,dwEffect);
12411}
12412static inline HRESULT IDropTargetHelper_Drop(IDropTargetHelper* This,IDataObject *pDataObject,POINT *ppt,DWORD dwEffect) {
12413    return This->lpVtbl->Drop(This,pDataObject,ppt,dwEffect);
12414}
12415static inline HRESULT IDropTargetHelper_Show(IDropTargetHelper* This,WINBOOL fShow) {
12416    return This->lpVtbl->Show(This,fShow);
12417}
12418#endif
12419#endif
12420
12421#endif
12422
12423
12424#endif  /* __IDropTargetHelper_INTERFACE_DEFINED__ */
12425
12426
12427/*****************************************************************************
12428 * IDragSourceHelper interface
12429 */
12430#ifndef __IDragSourceHelper_INTERFACE_DEFINED__
12431#define __IDragSourceHelper_INTERFACE_DEFINED__
12432
12433DEFINE_GUID(IID_IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83,0x9d, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
12434#if defined(__cplusplus) && !defined(CINTERFACE)
12435MIDL_INTERFACE("de5bf786-477a-11d2-839d-00c04fd918d0")
12436IDragSourceHelper : public IUnknown
12437{
12438    virtual HRESULT STDMETHODCALLTYPE InitializeFromBitmap(
12439        LPSHDRAGIMAGE pshdi,
12440        IDataObject *pDataObject) = 0;
12441
12442    virtual HRESULT STDMETHODCALLTYPE InitializeFromWindow(
12443        HWND hwnd,
12444        POINT *ppt,
12445        IDataObject *pDataObject) = 0;
12446
12447};
12448#ifdef __CRT_UUID_DECL
12449__CRT_UUID_DECL(IDragSourceHelper, 0xde5bf786, 0x477a, 0x11d2, 0x83,0x9d, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
12450#endif
12451#else
12452typedef struct IDragSourceHelperVtbl {
12453    BEGIN_INTERFACE
12454
12455    /*** IUnknown methods ***/
12456    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12457        IDragSourceHelper *This,
12458        REFIID riid,
12459        void **ppvObject);
12460
12461    ULONG (STDMETHODCALLTYPE *AddRef)(
12462        IDragSourceHelper *This);
12463
12464    ULONG (STDMETHODCALLTYPE *Release)(
12465        IDragSourceHelper *This);
12466
12467    /*** IDragSourceHelper methods ***/
12468    HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
12469        IDragSourceHelper *This,
12470        LPSHDRAGIMAGE pshdi,
12471        IDataObject *pDataObject);
12472
12473    HRESULT (STDMETHODCALLTYPE *InitializeFromWindow)(
12474        IDragSourceHelper *This,
12475        HWND hwnd,
12476        POINT *ppt,
12477        IDataObject *pDataObject);
12478
12479    END_INTERFACE
12480} IDragSourceHelperVtbl;
12481
12482interface IDragSourceHelper {
12483    CONST_VTBL IDragSourceHelperVtbl* lpVtbl;
12484};
12485
12486#ifdef COBJMACROS
12487#ifndef WIDL_C_INLINE_WRAPPERS
12488/*** IUnknown methods ***/
12489#define IDragSourceHelper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12490#define IDragSourceHelper_AddRef(This) (This)->lpVtbl->AddRef(This)
12491#define IDragSourceHelper_Release(This) (This)->lpVtbl->Release(This)
12492/*** IDragSourceHelper methods ***/
12493#define IDragSourceHelper_InitializeFromBitmap(This,pshdi,pDataObject) (This)->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject)
12494#define IDragSourceHelper_InitializeFromWindow(This,hwnd,ppt,pDataObject) (This)->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject)
12495#else
12496/*** IUnknown methods ***/
12497static inline HRESULT IDragSourceHelper_QueryInterface(IDragSourceHelper* This,REFIID riid,void **ppvObject) {
12498    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12499}
12500static inline ULONG IDragSourceHelper_AddRef(IDragSourceHelper* This) {
12501    return This->lpVtbl->AddRef(This);
12502}
12503static inline ULONG IDragSourceHelper_Release(IDragSourceHelper* This) {
12504    return This->lpVtbl->Release(This);
12505}
12506/*** IDragSourceHelper methods ***/
12507static inline HRESULT IDragSourceHelper_InitializeFromBitmap(IDragSourceHelper* This,LPSHDRAGIMAGE pshdi,IDataObject *pDataObject) {
12508    return This->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject);
12509}
12510static inline HRESULT IDragSourceHelper_InitializeFromWindow(IDragSourceHelper* This,HWND hwnd,POINT *ppt,IDataObject *pDataObject) {
12511    return This->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject);
12512}
12513#endif
12514#endif
12515
12516#endif
12517
12518
12519#endif  /* __IDragSourceHelper_INTERFACE_DEFINED__ */
12520
12521
12522#if NTDDI_VERSION >= NTDDI_VISTA
12523typedef enum DSH_FLAGS {
12524    DSH_ALLOWDROPDESCRIPTIONTEXT = 0x1
12525} DSH_FLAGS;
12526
12527DEFINE_ENUM_FLAG_OPERATORS(DSH_FLAGS)
12528
12529/*****************************************************************************
12530 * IDragSourceHelper2 interface
12531 */
12532#ifndef __IDragSourceHelper2_INTERFACE_DEFINED__
12533#define __IDragSourceHelper2_INTERFACE_DEFINED__
12534
12535DEFINE_GUID(IID_IDragSourceHelper2, 0x83e07d0d, 0x0c5f, 0x4163, 0xbf,0x1a, 0x60,0xb2,0x74,0x05,0x1e,0x40);
12536#if defined(__cplusplus) && !defined(CINTERFACE)
12537MIDL_INTERFACE("83e07d0d-0c5f-4163-bf1a-60b274051e40")
12538IDragSourceHelper2 : public IDragSourceHelper
12539{
12540    virtual HRESULT STDMETHODCALLTYPE SetFlags(
12541        DWORD dwFlags) = 0;
12542
12543};
12544#ifdef __CRT_UUID_DECL
12545__CRT_UUID_DECL(IDragSourceHelper2, 0x83e07d0d, 0x0c5f, 0x4163, 0xbf,0x1a, 0x60,0xb2,0x74,0x05,0x1e,0x40)
12546#endif
12547#else
12548typedef struct IDragSourceHelper2Vtbl {
12549    BEGIN_INTERFACE
12550
12551    /*** IUnknown methods ***/
12552    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12553        IDragSourceHelper2 *This,
12554        REFIID riid,
12555        void **ppvObject);
12556
12557    ULONG (STDMETHODCALLTYPE *AddRef)(
12558        IDragSourceHelper2 *This);
12559
12560    ULONG (STDMETHODCALLTYPE *Release)(
12561        IDragSourceHelper2 *This);
12562
12563    /*** IDragSourceHelper methods ***/
12564    HRESULT (STDMETHODCALLTYPE *InitializeFromBitmap)(
12565        IDragSourceHelper2 *This,
12566        LPSHDRAGIMAGE pshdi,
12567        IDataObject *pDataObject);
12568
12569    HRESULT (STDMETHODCALLTYPE *InitializeFromWindow)(
12570        IDragSourceHelper2 *This,
12571        HWND hwnd,
12572        POINT *ppt,
12573        IDataObject *pDataObject);
12574
12575    /*** IDragSourceHelper2 methods ***/
12576    HRESULT (STDMETHODCALLTYPE *SetFlags)(
12577        IDragSourceHelper2 *This,
12578        DWORD dwFlags);
12579
12580    END_INTERFACE
12581} IDragSourceHelper2Vtbl;
12582
12583interface IDragSourceHelper2 {
12584    CONST_VTBL IDragSourceHelper2Vtbl* lpVtbl;
12585};
12586
12587#ifdef COBJMACROS
12588#ifndef WIDL_C_INLINE_WRAPPERS
12589/*** IUnknown methods ***/
12590#define IDragSourceHelper2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12591#define IDragSourceHelper2_AddRef(This) (This)->lpVtbl->AddRef(This)
12592#define IDragSourceHelper2_Release(This) (This)->lpVtbl->Release(This)
12593/*** IDragSourceHelper methods ***/
12594#define IDragSourceHelper2_InitializeFromBitmap(This,pshdi,pDataObject) (This)->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject)
12595#define IDragSourceHelper2_InitializeFromWindow(This,hwnd,ppt,pDataObject) (This)->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject)
12596/*** IDragSourceHelper2 methods ***/
12597#define IDragSourceHelper2_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
12598#else
12599/*** IUnknown methods ***/
12600static inline HRESULT IDragSourceHelper2_QueryInterface(IDragSourceHelper2* This,REFIID riid,void **ppvObject) {
12601    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12602}
12603static inline ULONG IDragSourceHelper2_AddRef(IDragSourceHelper2* This) {
12604    return This->lpVtbl->AddRef(This);
12605}
12606static inline ULONG IDragSourceHelper2_Release(IDragSourceHelper2* This) {
12607    return This->lpVtbl->Release(This);
12608}
12609/*** IDragSourceHelper methods ***/
12610static inline HRESULT IDragSourceHelper2_InitializeFromBitmap(IDragSourceHelper2* This,LPSHDRAGIMAGE pshdi,IDataObject *pDataObject) {
12611    return This->lpVtbl->InitializeFromBitmap(This,pshdi,pDataObject);
12612}
12613static inline HRESULT IDragSourceHelper2_InitializeFromWindow(IDragSourceHelper2* This,HWND hwnd,POINT *ppt,IDataObject *pDataObject) {
12614    return This->lpVtbl->InitializeFromWindow(This,hwnd,ppt,pDataObject);
12615}
12616/*** IDragSourceHelper2 methods ***/
12617static inline HRESULT IDragSourceHelper2_SetFlags(IDragSourceHelper2* This,DWORD dwFlags) {
12618    return This->lpVtbl->SetFlags(This,dwFlags);
12619}
12620#endif
12621#endif
12622
12623#endif
12624
12625
12626#endif  /* __IDragSourceHelper2_INTERFACE_DEFINED__ */
12627
12628#endif
12629
12630#define IShellLink __MINGW_NAME_AW(IShellLink)
12631
12632typedef enum SLR_FLAGS {
12633    SLR_NO_UI = 0x1,
12634    SLR_ANY_MATCH = 0x2,
12635    SLR_UPDATE = 0x4,
12636    SLR_NOUPDATE = 0x8,
12637    SLR_NOSEARCH = 0x10,
12638    SLR_NOTRACK = 0x20,
12639    SLR_NOLINKINFO = 0x40,
12640    SLR_INVOKE_MSI = 0x80,
12641    SLR_NO_UI_WITH_MSG_PUMP = 0x101,
12642    SLR_OFFER_DELETE_WITHOUT_FILE = 0x200,
12643    SLR_KNOWNFOLDER = 0x400,
12644    SLR_MACHINE_IN_LOCAL_TARGET = 0x800,
12645    SLR_UPDATE_MACHINE_AND_SID = 0x1000
12646} SLR_FLAGS;
12647
12648DEFINE_ENUM_FLAG_OPERATORS(SLR_FLAGS)
12649
12650typedef enum SLGP_FLAGS {
12651    SLGP_SHORTPATH = 0x1,
12652    SLGP_UNCPRIORITY = 0x2,
12653    SLGP_RAWPATH = 0x4,
12654    SLGP_RELATIVEPRIORITY = 0x8
12655} SLGP_FLAGS;
12656
12657DEFINE_ENUM_FLAG_OPERATORS(SLGP_FLAGS)
12658
12659/*****************************************************************************
12660 * IShellLinkA interface
12661 */
12662#ifndef __IShellLinkA_INTERFACE_DEFINED__
12663#define __IShellLinkA_INTERFACE_DEFINED__
12664
12665DEFINE_GUID(IID_IShellLinkA, 0x000214ee, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12666#if defined(__cplusplus) && !defined(CINTERFACE)
12667MIDL_INTERFACE("000214ee-0000-0000-c000-000000000046")
12668IShellLinkA : public IUnknown
12669{
12670    virtual HRESULT STDMETHODCALLTYPE GetPath(
12671        LPSTR pszFile,
12672        int cch,
12673        WIN32_FIND_DATAA *pfd,
12674        DWORD fFlags) = 0;
12675
12676    virtual HRESULT STDMETHODCALLTYPE GetIDList(
12677        PIDLIST_ABSOLUTE *ppidl) = 0;
12678
12679    virtual HRESULT STDMETHODCALLTYPE SetIDList(
12680        PCIDLIST_ABSOLUTE pidl) = 0;
12681
12682    virtual HRESULT STDMETHODCALLTYPE GetDescription(
12683        LPSTR pszName,
12684        int cch) = 0;
12685
12686    virtual HRESULT STDMETHODCALLTYPE SetDescription(
12687        LPCSTR pszName) = 0;
12688
12689    virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
12690        LPSTR pszDir,
12691        int cch) = 0;
12692
12693    virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
12694        LPCSTR pszDir) = 0;
12695
12696    virtual HRESULT STDMETHODCALLTYPE GetArguments(
12697        LPSTR pszArgs,
12698        int cch) = 0;
12699
12700    virtual HRESULT STDMETHODCALLTYPE SetArguments(
12701        LPCSTR pszArgs) = 0;
12702
12703    virtual HRESULT STDMETHODCALLTYPE GetHotkey(
12704        WORD *pwHotkey) = 0;
12705
12706    virtual HRESULT STDMETHODCALLTYPE SetHotkey(
12707        WORD wHotkey) = 0;
12708
12709    virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
12710        int *piShowCmd) = 0;
12711
12712    virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
12713        int iShowCmd) = 0;
12714
12715    virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
12716        LPSTR pszIconPath,
12717        int cch,
12718        int *piIcon) = 0;
12719
12720    virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
12721        LPCSTR pszIconPath,
12722        int iIcon) = 0;
12723
12724    virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
12725        LPCSTR pszPathRel,
12726        DWORD dwReserved) = 0;
12727
12728    virtual HRESULT STDMETHODCALLTYPE Resolve(
12729        HWND hwnd,
12730        DWORD fFlags) = 0;
12731
12732    virtual HRESULT STDMETHODCALLTYPE SetPath(
12733        LPCSTR pszFile) = 0;
12734
12735};
12736#ifdef __CRT_UUID_DECL
12737__CRT_UUID_DECL(IShellLinkA, 0x000214ee, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
12738#endif
12739#else
12740typedef struct IShellLinkAVtbl {
12741    BEGIN_INTERFACE
12742
12743    /*** IUnknown methods ***/
12744    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
12745        IShellLinkA *This,
12746        REFIID riid,
12747        void **ppvObject);
12748
12749    ULONG (STDMETHODCALLTYPE *AddRef)(
12750        IShellLinkA *This);
12751
12752    ULONG (STDMETHODCALLTYPE *Release)(
12753        IShellLinkA *This);
12754
12755    /*** IShellLinkA methods ***/
12756    HRESULT (STDMETHODCALLTYPE *GetPath)(
12757        IShellLinkA *This,
12758        LPSTR pszFile,
12759        int cch,
12760        WIN32_FIND_DATAA *pfd,
12761        DWORD fFlags);
12762
12763    HRESULT (STDMETHODCALLTYPE *GetIDList)(
12764        IShellLinkA *This,
12765        PIDLIST_ABSOLUTE *ppidl);
12766
12767    HRESULT (STDMETHODCALLTYPE *SetIDList)(
12768        IShellLinkA *This,
12769        PCIDLIST_ABSOLUTE pidl);
12770
12771    HRESULT (STDMETHODCALLTYPE *GetDescription)(
12772        IShellLinkA *This,
12773        LPSTR pszName,
12774        int cch);
12775
12776    HRESULT (STDMETHODCALLTYPE *SetDescription)(
12777        IShellLinkA *This,
12778        LPCSTR pszName);
12779
12780    HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
12781        IShellLinkA *This,
12782        LPSTR pszDir,
12783        int cch);
12784
12785    HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
12786        IShellLinkA *This,
12787        LPCSTR pszDir);
12788
12789    HRESULT (STDMETHODCALLTYPE *GetArguments)(
12790        IShellLinkA *This,
12791        LPSTR pszArgs,
12792        int cch);
12793
12794    HRESULT (STDMETHODCALLTYPE *SetArguments)(
12795        IShellLinkA *This,
12796        LPCSTR pszArgs);
12797
12798    HRESULT (STDMETHODCALLTYPE *GetHotkey)(
12799        IShellLinkA *This,
12800        WORD *pwHotkey);
12801
12802    HRESULT (STDMETHODCALLTYPE *SetHotkey)(
12803        IShellLinkA *This,
12804        WORD wHotkey);
12805
12806    HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
12807        IShellLinkA *This,
12808        int *piShowCmd);
12809
12810    HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
12811        IShellLinkA *This,
12812        int iShowCmd);
12813
12814    HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
12815        IShellLinkA *This,
12816        LPSTR pszIconPath,
12817        int cch,
12818        int *piIcon);
12819
12820    HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
12821        IShellLinkA *This,
12822        LPCSTR pszIconPath,
12823        int iIcon);
12824
12825    HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
12826        IShellLinkA *This,
12827        LPCSTR pszPathRel,
12828        DWORD dwReserved);
12829
12830    HRESULT (STDMETHODCALLTYPE *Resolve)(
12831        IShellLinkA *This,
12832        HWND hwnd,
12833        DWORD fFlags);
12834
12835    HRESULT (STDMETHODCALLTYPE *SetPath)(
12836        IShellLinkA *This,
12837        LPCSTR pszFile);
12838
12839    END_INTERFACE
12840} IShellLinkAVtbl;
12841
12842interface IShellLinkA {
12843    CONST_VTBL IShellLinkAVtbl* lpVtbl;
12844};
12845
12846#ifdef COBJMACROS
12847#ifndef WIDL_C_INLINE_WRAPPERS
12848/*** IUnknown methods ***/
12849#define IShellLinkA_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
12850#define IShellLinkA_AddRef(This) (This)->lpVtbl->AddRef(This)
12851#define IShellLinkA_Release(This) (This)->lpVtbl->Release(This)
12852/*** IShellLinkA methods ***/
12853#define IShellLinkA_GetPath(This,pszFile,cch,pfd,fFlags) (This)->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags)
12854#define IShellLinkA_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
12855#define IShellLinkA_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
12856#define IShellLinkA_GetDescription(This,pszName,cch) (This)->lpVtbl->GetDescription(This,pszName,cch)
12857#define IShellLinkA_SetDescription(This,pszName) (This)->lpVtbl->SetDescription(This,pszName)
12858#define IShellLinkA_GetWorkingDirectory(This,pszDir,cch) (This)->lpVtbl->GetWorkingDirectory(This,pszDir,cch)
12859#define IShellLinkA_SetWorkingDirectory(This,pszDir) (This)->lpVtbl->SetWorkingDirectory(This,pszDir)
12860#define IShellLinkA_GetArguments(This,pszArgs,cch) (This)->lpVtbl->GetArguments(This,pszArgs,cch)
12861#define IShellLinkA_SetArguments(This,pszArgs) (This)->lpVtbl->SetArguments(This,pszArgs)
12862#define IShellLinkA_GetHotkey(This,pwHotkey) (This)->lpVtbl->GetHotkey(This,pwHotkey)
12863#define IShellLinkA_SetHotkey(This,wHotkey) (This)->lpVtbl->SetHotkey(This,wHotkey)
12864#define IShellLinkA_GetShowCmd(This,piShowCmd) (This)->lpVtbl->GetShowCmd(This,piShowCmd)
12865#define IShellLinkA_SetShowCmd(This,iShowCmd) (This)->lpVtbl->SetShowCmd(This,iShowCmd)
12866#define IShellLinkA_GetIconLocation(This,pszIconPath,cch,piIcon) (This)->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon)
12867#define IShellLinkA_SetIconLocation(This,pszIconPath,iIcon) (This)->lpVtbl->SetIconLocation(This,pszIconPath,iIcon)
12868#define IShellLinkA_SetRelativePath(This,pszPathRel,dwReserved) (This)->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved)
12869#define IShellLinkA_Resolve(This,hwnd,fFlags) (This)->lpVtbl->Resolve(This,hwnd,fFlags)
12870#define IShellLinkA_SetPath(This,pszFile) (This)->lpVtbl->SetPath(This,pszFile)
12871#else
12872/*** IUnknown methods ***/
12873static inline HRESULT IShellLinkA_QueryInterface(IShellLinkA* This,REFIID riid,void **ppvObject) {
12874    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
12875}
12876static inline ULONG IShellLinkA_AddRef(IShellLinkA* This) {
12877    return This->lpVtbl->AddRef(This);
12878}
12879static inline ULONG IShellLinkA_Release(IShellLinkA* This) {
12880    return This->lpVtbl->Release(This);
12881}
12882/*** IShellLinkA methods ***/
12883static inline HRESULT IShellLinkA_GetPath(IShellLinkA* This,LPSTR pszFile,int cch,WIN32_FIND_DATAA *pfd,DWORD fFlags) {
12884    return This->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags);
12885}
12886static inline HRESULT IShellLinkA_GetIDList(IShellLinkA* This,PIDLIST_ABSOLUTE *ppidl) {
12887    return This->lpVtbl->GetIDList(This,ppidl);
12888}
12889static inline HRESULT IShellLinkA_SetIDList(IShellLinkA* This,PCIDLIST_ABSOLUTE pidl) {
12890    return This->lpVtbl->SetIDList(This,pidl);
12891}
12892static inline HRESULT IShellLinkA_GetDescription(IShellLinkA* This,LPSTR pszName,int cch) {
12893    return This->lpVtbl->GetDescription(This,pszName,cch);
12894}
12895static inline HRESULT IShellLinkA_SetDescription(IShellLinkA* This,LPCSTR pszName) {
12896    return This->lpVtbl->SetDescription(This,pszName);
12897}
12898static inline HRESULT IShellLinkA_GetWorkingDirectory(IShellLinkA* This,LPSTR pszDir,int cch) {
12899    return This->lpVtbl->GetWorkingDirectory(This,pszDir,cch);
12900}
12901static inline HRESULT IShellLinkA_SetWorkingDirectory(IShellLinkA* This,LPCSTR pszDir) {
12902    return This->lpVtbl->SetWorkingDirectory(This,pszDir);
12903}
12904static inline HRESULT IShellLinkA_GetArguments(IShellLinkA* This,LPSTR pszArgs,int cch) {
12905    return This->lpVtbl->GetArguments(This,pszArgs,cch);
12906}
12907static inline HRESULT IShellLinkA_SetArguments(IShellLinkA* This,LPCSTR pszArgs) {
12908    return This->lpVtbl->SetArguments(This,pszArgs);
12909}
12910static inline HRESULT IShellLinkA_GetHotkey(IShellLinkA* This,WORD *pwHotkey) {
12911    return This->lpVtbl->GetHotkey(This,pwHotkey);
12912}
12913static inline HRESULT IShellLinkA_SetHotkey(IShellLinkA* This,WORD wHotkey) {
12914    return This->lpVtbl->SetHotkey(This,wHotkey);
12915}
12916static inline HRESULT IShellLinkA_GetShowCmd(IShellLinkA* This,int *piShowCmd) {
12917    return This->lpVtbl->GetShowCmd(This,piShowCmd);
12918}
12919static inline HRESULT IShellLinkA_SetShowCmd(IShellLinkA* This,int iShowCmd) {
12920    return This->lpVtbl->SetShowCmd(This,iShowCmd);
12921}
12922static inline HRESULT IShellLinkA_GetIconLocation(IShellLinkA* This,LPSTR pszIconPath,int cch,int *piIcon) {
12923    return This->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon);
12924}
12925static inline HRESULT IShellLinkA_SetIconLocation(IShellLinkA* This,LPCSTR pszIconPath,int iIcon) {
12926    return This->lpVtbl->SetIconLocation(This,pszIconPath,iIcon);
12927}
12928static inline HRESULT IShellLinkA_SetRelativePath(IShellLinkA* This,LPCSTR pszPathRel,DWORD dwReserved) {
12929    return This->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved);
12930}
12931static inline HRESULT IShellLinkA_Resolve(IShellLinkA* This,HWND hwnd,DWORD fFlags) {
12932    return This->lpVtbl->Resolve(This,hwnd,fFlags);
12933}
12934static inline HRESULT IShellLinkA_SetPath(IShellLinkA* This,LPCSTR pszFile) {
12935    return This->lpVtbl->SetPath(This,pszFile);
12936}
12937#endif
12938#endif
12939
12940#endif
12941
12942
12943#endif  /* __IShellLinkA_INTERFACE_DEFINED__ */
12944
12945
12946/*****************************************************************************
12947 * IShellLinkW interface
12948 */
12949#ifndef __IShellLinkW_INTERFACE_DEFINED__
12950#define __IShellLinkW_INTERFACE_DEFINED__
12951
12952DEFINE_GUID(IID_IShellLinkW, 0x000214f9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
12953#if defined(__cplusplus) && !defined(CINTERFACE)
12954MIDL_INTERFACE("000214f9-0000-0000-c000-000000000046")
12955IShellLinkW : public IUnknown
12956{
12957    virtual HRESULT STDMETHODCALLTYPE GetPath(
12958        LPWSTR pszFile,
12959        int cch,
12960        WIN32_FIND_DATAW *pfd,
12961        DWORD fFlags) = 0;
12962
12963    virtual HRESULT STDMETHODCALLTYPE GetIDList(
12964        PIDLIST_ABSOLUTE *ppidl) = 0;
12965
12966    virtual HRESULT STDMETHODCALLTYPE SetIDList(
12967        PCIDLIST_ABSOLUTE pidl) = 0;
12968
12969    virtual HRESULT STDMETHODCALLTYPE GetDescription(
12970        LPWSTR pszName,
12971        int cch) = 0;
12972
12973    virtual HRESULT STDMETHODCALLTYPE SetDescription(
12974        LPCWSTR pszName) = 0;
12975
12976    virtual HRESULT STDMETHODCALLTYPE GetWorkingDirectory(
12977        LPWSTR pszDir,
12978        int cch) = 0;
12979
12980    virtual HRESULT STDMETHODCALLTYPE SetWorkingDirectory(
12981        LPCWSTR pszDir) = 0;
12982
12983    virtual HRESULT STDMETHODCALLTYPE GetArguments(
12984        LPWSTR pszArgs,
12985        int cch) = 0;
12986
12987    virtual HRESULT STDMETHODCALLTYPE SetArguments(
12988        LPCWSTR pszArgs) = 0;
12989
12990    virtual HRESULT STDMETHODCALLTYPE GetHotkey(
12991        WORD *pwHotkey) = 0;
12992
12993    virtual HRESULT STDMETHODCALLTYPE SetHotkey(
12994        WORD wHotkey) = 0;
12995
12996    virtual HRESULT STDMETHODCALLTYPE GetShowCmd(
12997        int *piShowCmd) = 0;
12998
12999    virtual HRESULT STDMETHODCALLTYPE SetShowCmd(
13000        int iShowCmd) = 0;
13001
13002    virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
13003        LPWSTR pszIconPath,
13004        int cch,
13005        int *piIcon) = 0;
13006
13007    virtual HRESULT STDMETHODCALLTYPE SetIconLocation(
13008        LPCWSTR pszIconPath,
13009        int iIcon) = 0;
13010
13011    virtual HRESULT STDMETHODCALLTYPE SetRelativePath(
13012        LPCWSTR pszPathRel,
13013        DWORD dwReserved) = 0;
13014
13015    virtual HRESULT STDMETHODCALLTYPE Resolve(
13016        HWND hwnd,
13017        DWORD fFlags) = 0;
13018
13019    virtual HRESULT STDMETHODCALLTYPE SetPath(
13020        LPCWSTR pszFile) = 0;
13021
13022};
13023#ifdef __CRT_UUID_DECL
13024__CRT_UUID_DECL(IShellLinkW, 0x000214f9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
13025#endif
13026#else
13027typedef struct IShellLinkWVtbl {
13028    BEGIN_INTERFACE
13029
13030    /*** IUnknown methods ***/
13031    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13032        IShellLinkW *This,
13033        REFIID riid,
13034        void **ppvObject);
13035
13036    ULONG (STDMETHODCALLTYPE *AddRef)(
13037        IShellLinkW *This);
13038
13039    ULONG (STDMETHODCALLTYPE *Release)(
13040        IShellLinkW *This);
13041
13042    /*** IShellLinkW methods ***/
13043    HRESULT (STDMETHODCALLTYPE *GetPath)(
13044        IShellLinkW *This,
13045        LPWSTR pszFile,
13046        int cch,
13047        WIN32_FIND_DATAW *pfd,
13048        DWORD fFlags);
13049
13050    HRESULT (STDMETHODCALLTYPE *GetIDList)(
13051        IShellLinkW *This,
13052        PIDLIST_ABSOLUTE *ppidl);
13053
13054    HRESULT (STDMETHODCALLTYPE *SetIDList)(
13055        IShellLinkW *This,
13056        PCIDLIST_ABSOLUTE pidl);
13057
13058    HRESULT (STDMETHODCALLTYPE *GetDescription)(
13059        IShellLinkW *This,
13060        LPWSTR pszName,
13061        int cch);
13062
13063    HRESULT (STDMETHODCALLTYPE *SetDescription)(
13064        IShellLinkW *This,
13065        LPCWSTR pszName);
13066
13067    HRESULT (STDMETHODCALLTYPE *GetWorkingDirectory)(
13068        IShellLinkW *This,
13069        LPWSTR pszDir,
13070        int cch);
13071
13072    HRESULT (STDMETHODCALLTYPE *SetWorkingDirectory)(
13073        IShellLinkW *This,
13074        LPCWSTR pszDir);
13075
13076    HRESULT (STDMETHODCALLTYPE *GetArguments)(
13077        IShellLinkW *This,
13078        LPWSTR pszArgs,
13079        int cch);
13080
13081    HRESULT (STDMETHODCALLTYPE *SetArguments)(
13082        IShellLinkW *This,
13083        LPCWSTR pszArgs);
13084
13085    HRESULT (STDMETHODCALLTYPE *GetHotkey)(
13086        IShellLinkW *This,
13087        WORD *pwHotkey);
13088
13089    HRESULT (STDMETHODCALLTYPE *SetHotkey)(
13090        IShellLinkW *This,
13091        WORD wHotkey);
13092
13093    HRESULT (STDMETHODCALLTYPE *GetShowCmd)(
13094        IShellLinkW *This,
13095        int *piShowCmd);
13096
13097    HRESULT (STDMETHODCALLTYPE *SetShowCmd)(
13098        IShellLinkW *This,
13099        int iShowCmd);
13100
13101    HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
13102        IShellLinkW *This,
13103        LPWSTR pszIconPath,
13104        int cch,
13105        int *piIcon);
13106
13107    HRESULT (STDMETHODCALLTYPE *SetIconLocation)(
13108        IShellLinkW *This,
13109        LPCWSTR pszIconPath,
13110        int iIcon);
13111
13112    HRESULT (STDMETHODCALLTYPE *SetRelativePath)(
13113        IShellLinkW *This,
13114        LPCWSTR pszPathRel,
13115        DWORD dwReserved);
13116
13117    HRESULT (STDMETHODCALLTYPE *Resolve)(
13118        IShellLinkW *This,
13119        HWND hwnd,
13120        DWORD fFlags);
13121
13122    HRESULT (STDMETHODCALLTYPE *SetPath)(
13123        IShellLinkW *This,
13124        LPCWSTR pszFile);
13125
13126    END_INTERFACE
13127} IShellLinkWVtbl;
13128
13129interface IShellLinkW {
13130    CONST_VTBL IShellLinkWVtbl* lpVtbl;
13131};
13132
13133#ifdef COBJMACROS
13134#ifndef WIDL_C_INLINE_WRAPPERS
13135/*** IUnknown methods ***/
13136#define IShellLinkW_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13137#define IShellLinkW_AddRef(This) (This)->lpVtbl->AddRef(This)
13138#define IShellLinkW_Release(This) (This)->lpVtbl->Release(This)
13139/*** IShellLinkW methods ***/
13140#define IShellLinkW_GetPath(This,pszFile,cch,pfd,fFlags) (This)->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags)
13141#define IShellLinkW_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
13142#define IShellLinkW_SetIDList(This,pidl) (This)->lpVtbl->SetIDList(This,pidl)
13143#define IShellLinkW_GetDescription(This,pszName,cch) (This)->lpVtbl->GetDescription(This,pszName,cch)
13144#define IShellLinkW_SetDescription(This,pszName) (This)->lpVtbl->SetDescription(This,pszName)
13145#define IShellLinkW_GetWorkingDirectory(This,pszDir,cch) (This)->lpVtbl->GetWorkingDirectory(This,pszDir,cch)
13146#define IShellLinkW_SetWorkingDirectory(This,pszDir) (This)->lpVtbl->SetWorkingDirectory(This,pszDir)
13147#define IShellLinkW_GetArguments(This,pszArgs,cch) (This)->lpVtbl->GetArguments(This,pszArgs,cch)
13148#define IShellLinkW_SetArguments(This,pszArgs) (This)->lpVtbl->SetArguments(This,pszArgs)
13149#define IShellLinkW_GetHotkey(This,pwHotkey) (This)->lpVtbl->GetHotkey(This,pwHotkey)
13150#define IShellLinkW_SetHotkey(This,wHotkey) (This)->lpVtbl->SetHotkey(This,wHotkey)
13151#define IShellLinkW_GetShowCmd(This,piShowCmd) (This)->lpVtbl->GetShowCmd(This,piShowCmd)
13152#define IShellLinkW_SetShowCmd(This,iShowCmd) (This)->lpVtbl->SetShowCmd(This,iShowCmd)
13153#define IShellLinkW_GetIconLocation(This,pszIconPath,cch,piIcon) (This)->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon)
13154#define IShellLinkW_SetIconLocation(This,pszIconPath,iIcon) (This)->lpVtbl->SetIconLocation(This,pszIconPath,iIcon)
13155#define IShellLinkW_SetRelativePath(This,pszPathRel,dwReserved) (This)->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved)
13156#define IShellLinkW_Resolve(This,hwnd,fFlags) (This)->lpVtbl->Resolve(This,hwnd,fFlags)
13157#define IShellLinkW_SetPath(This,pszFile) (This)->lpVtbl->SetPath(This,pszFile)
13158#else
13159/*** IUnknown methods ***/
13160static inline HRESULT IShellLinkW_QueryInterface(IShellLinkW* This,REFIID riid,void **ppvObject) {
13161    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13162}
13163static inline ULONG IShellLinkW_AddRef(IShellLinkW* This) {
13164    return This->lpVtbl->AddRef(This);
13165}
13166static inline ULONG IShellLinkW_Release(IShellLinkW* This) {
13167    return This->lpVtbl->Release(This);
13168}
13169/*** IShellLinkW methods ***/
13170static inline HRESULT IShellLinkW_GetPath(IShellLinkW* This,LPWSTR pszFile,int cch,WIN32_FIND_DATAW *pfd,DWORD fFlags) {
13171    return This->lpVtbl->GetPath(This,pszFile,cch,pfd,fFlags);
13172}
13173static inline HRESULT IShellLinkW_GetIDList(IShellLinkW* This,PIDLIST_ABSOLUTE *ppidl) {
13174    return This->lpVtbl->GetIDList(This,ppidl);
13175}
13176static inline HRESULT IShellLinkW_SetIDList(IShellLinkW* This,PCIDLIST_ABSOLUTE pidl) {
13177    return This->lpVtbl->SetIDList(This,pidl);
13178}
13179static inline HRESULT IShellLinkW_GetDescription(IShellLinkW* This,LPWSTR pszName,int cch) {
13180    return This->lpVtbl->GetDescription(This,pszName,cch);
13181}
13182static inline HRESULT IShellLinkW_SetDescription(IShellLinkW* This,LPCWSTR pszName) {
13183    return This->lpVtbl->SetDescription(This,pszName);
13184}
13185static inline HRESULT IShellLinkW_GetWorkingDirectory(IShellLinkW* This,LPWSTR pszDir,int cch) {
13186    return This->lpVtbl->GetWorkingDirectory(This,pszDir,cch);
13187}
13188static inline HRESULT IShellLinkW_SetWorkingDirectory(IShellLinkW* This,LPCWSTR pszDir) {
13189    return This->lpVtbl->SetWorkingDirectory(This,pszDir);
13190}
13191static inline HRESULT IShellLinkW_GetArguments(IShellLinkW* This,LPWSTR pszArgs,int cch) {
13192    return This->lpVtbl->GetArguments(This,pszArgs,cch);
13193}
13194static inline HRESULT IShellLinkW_SetArguments(IShellLinkW* This,LPCWSTR pszArgs) {
13195    return This->lpVtbl->SetArguments(This,pszArgs);
13196}
13197static inline HRESULT IShellLinkW_GetHotkey(IShellLinkW* This,WORD *pwHotkey) {
13198    return This->lpVtbl->GetHotkey(This,pwHotkey);
13199}
13200static inline HRESULT IShellLinkW_SetHotkey(IShellLinkW* This,WORD wHotkey) {
13201    return This->lpVtbl->SetHotkey(This,wHotkey);
13202}
13203static inline HRESULT IShellLinkW_GetShowCmd(IShellLinkW* This,int *piShowCmd) {
13204    return This->lpVtbl->GetShowCmd(This,piShowCmd);
13205}
13206static inline HRESULT IShellLinkW_SetShowCmd(IShellLinkW* This,int iShowCmd) {
13207    return This->lpVtbl->SetShowCmd(This,iShowCmd);
13208}
13209static inline HRESULT IShellLinkW_GetIconLocation(IShellLinkW* This,LPWSTR pszIconPath,int cch,int *piIcon) {
13210    return This->lpVtbl->GetIconLocation(This,pszIconPath,cch,piIcon);
13211}
13212static inline HRESULT IShellLinkW_SetIconLocation(IShellLinkW* This,LPCWSTR pszIconPath,int iIcon) {
13213    return This->lpVtbl->SetIconLocation(This,pszIconPath,iIcon);
13214}
13215static inline HRESULT IShellLinkW_SetRelativePath(IShellLinkW* This,LPCWSTR pszPathRel,DWORD dwReserved) {
13216    return This->lpVtbl->SetRelativePath(This,pszPathRel,dwReserved);
13217}
13218static inline HRESULT IShellLinkW_Resolve(IShellLinkW* This,HWND hwnd,DWORD fFlags) {
13219    return This->lpVtbl->Resolve(This,hwnd,fFlags);
13220}
13221static inline HRESULT IShellLinkW_SetPath(IShellLinkW* This,LPCWSTR pszFile) {
13222    return This->lpVtbl->SetPath(This,pszFile);
13223}
13224#endif
13225#endif
13226
13227#endif
13228
13229
13230#endif  /* __IShellLinkW_INTERFACE_DEFINED__ */
13231
13232
13233/*****************************************************************************
13234 * IShellLinkDataList interface
13235 */
13236#ifndef __IShellLinkDataList_INTERFACE_DEFINED__
13237#define __IShellLinkDataList_INTERFACE_DEFINED__
13238
13239DEFINE_GUID(IID_IShellLinkDataList, 0x45e2b4ae, 0xb1c3, 0x11d0, 0xb9,0x2f, 0x00,0xa0,0xc9,0x03,0x12,0xe1);
13240#if defined(__cplusplus) && !defined(CINTERFACE)
13241MIDL_INTERFACE("45e2b4ae-b1c3-11d0-b92f-00a0c90312e1")
13242IShellLinkDataList : public IUnknown
13243{
13244    virtual HRESULT STDMETHODCALLTYPE AddDataBlock(
13245        void *pDataBlock) = 0;
13246
13247    virtual HRESULT STDMETHODCALLTYPE CopyDataBlock(
13248        DWORD dwSig,
13249        void **ppDataBlock) = 0;
13250
13251    virtual HRESULT STDMETHODCALLTYPE RemoveDataBlock(
13252        DWORD dwSig) = 0;
13253
13254    virtual HRESULT STDMETHODCALLTYPE GetFlags(
13255        DWORD *pdwFlags) = 0;
13256
13257    virtual HRESULT STDMETHODCALLTYPE SetFlags(
13258        DWORD dwFlags) = 0;
13259
13260};
13261#ifdef __CRT_UUID_DECL
13262__CRT_UUID_DECL(IShellLinkDataList, 0x45e2b4ae, 0xb1c3, 0x11d0, 0xb9,0x2f, 0x00,0xa0,0xc9,0x03,0x12,0xe1)
13263#endif
13264#else
13265typedef struct IShellLinkDataListVtbl {
13266    BEGIN_INTERFACE
13267
13268    /*** IUnknown methods ***/
13269    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13270        IShellLinkDataList *This,
13271        REFIID riid,
13272        void **ppvObject);
13273
13274    ULONG (STDMETHODCALLTYPE *AddRef)(
13275        IShellLinkDataList *This);
13276
13277    ULONG (STDMETHODCALLTYPE *Release)(
13278        IShellLinkDataList *This);
13279
13280    /*** IShellLinkDataList methods ***/
13281    HRESULT (STDMETHODCALLTYPE *AddDataBlock)(
13282        IShellLinkDataList *This,
13283        void *pDataBlock);
13284
13285    HRESULT (STDMETHODCALLTYPE *CopyDataBlock)(
13286        IShellLinkDataList *This,
13287        DWORD dwSig,
13288        void **ppDataBlock);
13289
13290    HRESULT (STDMETHODCALLTYPE *RemoveDataBlock)(
13291        IShellLinkDataList *This,
13292        DWORD dwSig);
13293
13294    HRESULT (STDMETHODCALLTYPE *GetFlags)(
13295        IShellLinkDataList *This,
13296        DWORD *pdwFlags);
13297
13298    HRESULT (STDMETHODCALLTYPE *SetFlags)(
13299        IShellLinkDataList *This,
13300        DWORD dwFlags);
13301
13302    END_INTERFACE
13303} IShellLinkDataListVtbl;
13304
13305interface IShellLinkDataList {
13306    CONST_VTBL IShellLinkDataListVtbl* lpVtbl;
13307};
13308
13309#ifdef COBJMACROS
13310#ifndef WIDL_C_INLINE_WRAPPERS
13311/*** IUnknown methods ***/
13312#define IShellLinkDataList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13313#define IShellLinkDataList_AddRef(This) (This)->lpVtbl->AddRef(This)
13314#define IShellLinkDataList_Release(This) (This)->lpVtbl->Release(This)
13315/*** IShellLinkDataList methods ***/
13316#define IShellLinkDataList_AddDataBlock(This,pDataBlock) (This)->lpVtbl->AddDataBlock(This,pDataBlock)
13317#define IShellLinkDataList_CopyDataBlock(This,dwSig,ppDataBlock) (This)->lpVtbl->CopyDataBlock(This,dwSig,ppDataBlock)
13318#define IShellLinkDataList_RemoveDataBlock(This,dwSig) (This)->lpVtbl->RemoveDataBlock(This,dwSig)
13319#define IShellLinkDataList_GetFlags(This,pdwFlags) (This)->lpVtbl->GetFlags(This,pdwFlags)
13320#define IShellLinkDataList_SetFlags(This,dwFlags) (This)->lpVtbl->SetFlags(This,dwFlags)
13321#else
13322/*** IUnknown methods ***/
13323static inline HRESULT IShellLinkDataList_QueryInterface(IShellLinkDataList* This,REFIID riid,void **ppvObject) {
13324    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13325}
13326static inline ULONG IShellLinkDataList_AddRef(IShellLinkDataList* This) {
13327    return This->lpVtbl->AddRef(This);
13328}
13329static inline ULONG IShellLinkDataList_Release(IShellLinkDataList* This) {
13330    return This->lpVtbl->Release(This);
13331}
13332/*** IShellLinkDataList methods ***/
13333static inline HRESULT IShellLinkDataList_AddDataBlock(IShellLinkDataList* This,void *pDataBlock) {
13334    return This->lpVtbl->AddDataBlock(This,pDataBlock);
13335}
13336static inline HRESULT IShellLinkDataList_CopyDataBlock(IShellLinkDataList* This,DWORD dwSig,void **ppDataBlock) {
13337    return This->lpVtbl->CopyDataBlock(This,dwSig,ppDataBlock);
13338}
13339static inline HRESULT IShellLinkDataList_RemoveDataBlock(IShellLinkDataList* This,DWORD dwSig) {
13340    return This->lpVtbl->RemoveDataBlock(This,dwSig);
13341}
13342static inline HRESULT IShellLinkDataList_GetFlags(IShellLinkDataList* This,DWORD *pdwFlags) {
13343    return This->lpVtbl->GetFlags(This,pdwFlags);
13344}
13345static inline HRESULT IShellLinkDataList_SetFlags(IShellLinkDataList* This,DWORD dwFlags) {
13346    return This->lpVtbl->SetFlags(This,dwFlags);
13347}
13348#endif
13349#endif
13350
13351#endif
13352
13353
13354#endif  /* __IShellLinkDataList_INTERFACE_DEFINED__ */
13355
13356
13357/*****************************************************************************
13358 * IResolveShellLink interface
13359 */
13360#ifndef __IResolveShellLink_INTERFACE_DEFINED__
13361#define __IResolveShellLink_INTERFACE_DEFINED__
13362
13363DEFINE_GUID(IID_IResolveShellLink, 0x5cd52983, 0x9449, 0x11d2, 0x96,0x3a, 0x00,0xc0,0x4f,0x79,0xad,0xf0);
13364#if defined(__cplusplus) && !defined(CINTERFACE)
13365MIDL_INTERFACE("5cd52983-9449-11d2-963a-00c04f79adf0")
13366IResolveShellLink : public IUnknown
13367{
13368    virtual HRESULT STDMETHODCALLTYPE ResolveShellLink(
13369        IUnknown *punkLink,
13370        HWND hwnd,
13371        DWORD fFlags) = 0;
13372
13373};
13374#ifdef __CRT_UUID_DECL
13375__CRT_UUID_DECL(IResolveShellLink, 0x5cd52983, 0x9449, 0x11d2, 0x96,0x3a, 0x00,0xc0,0x4f,0x79,0xad,0xf0)
13376#endif
13377#else
13378typedef struct IResolveShellLinkVtbl {
13379    BEGIN_INTERFACE
13380
13381    /*** IUnknown methods ***/
13382    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13383        IResolveShellLink *This,
13384        REFIID riid,
13385        void **ppvObject);
13386
13387    ULONG (STDMETHODCALLTYPE *AddRef)(
13388        IResolveShellLink *This);
13389
13390    ULONG (STDMETHODCALLTYPE *Release)(
13391        IResolveShellLink *This);
13392
13393    /*** IResolveShellLink methods ***/
13394    HRESULT (STDMETHODCALLTYPE *ResolveShellLink)(
13395        IResolveShellLink *This,
13396        IUnknown *punkLink,
13397        HWND hwnd,
13398        DWORD fFlags);
13399
13400    END_INTERFACE
13401} IResolveShellLinkVtbl;
13402
13403interface IResolveShellLink {
13404    CONST_VTBL IResolveShellLinkVtbl* lpVtbl;
13405};
13406
13407#ifdef COBJMACROS
13408#ifndef WIDL_C_INLINE_WRAPPERS
13409/*** IUnknown methods ***/
13410#define IResolveShellLink_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13411#define IResolveShellLink_AddRef(This) (This)->lpVtbl->AddRef(This)
13412#define IResolveShellLink_Release(This) (This)->lpVtbl->Release(This)
13413/*** IResolveShellLink methods ***/
13414#define IResolveShellLink_ResolveShellLink(This,punkLink,hwnd,fFlags) (This)->lpVtbl->ResolveShellLink(This,punkLink,hwnd,fFlags)
13415#else
13416/*** IUnknown methods ***/
13417static inline HRESULT IResolveShellLink_QueryInterface(IResolveShellLink* This,REFIID riid,void **ppvObject) {
13418    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13419}
13420static inline ULONG IResolveShellLink_AddRef(IResolveShellLink* This) {
13421    return This->lpVtbl->AddRef(This);
13422}
13423static inline ULONG IResolveShellLink_Release(IResolveShellLink* This) {
13424    return This->lpVtbl->Release(This);
13425}
13426/*** IResolveShellLink methods ***/
13427static inline HRESULT IResolveShellLink_ResolveShellLink(IResolveShellLink* This,IUnknown *punkLink,HWND hwnd,DWORD fFlags) {
13428    return This->lpVtbl->ResolveShellLink(This,punkLink,hwnd,fFlags);
13429}
13430#endif
13431#endif
13432
13433#endif
13434
13435
13436#endif  /* __IResolveShellLink_INTERFACE_DEFINED__ */
13437
13438
13439/*****************************************************************************
13440 * IActionProgressDialog interface
13441 */
13442#ifndef __IActionProgressDialog_INTERFACE_DEFINED__
13443#define __IActionProgressDialog_INTERFACE_DEFINED__
13444
13445enum _SPINITF {
13446    SPINITF_NORMAL = 0x0,
13447    SPINITF_MODAL = 0x1,
13448    SPINITF_NOMINIMIZE = 0x8
13449};
13450
13451typedef DWORD SPINITF;
13452
13453DEFINE_GUID(IID_IActionProgressDialog, 0x49ff1172, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c);
13454#if defined(__cplusplus) && !defined(CINTERFACE)
13455MIDL_INTERFACE("49ff1172-eadc-446d-9285-156453a6431c")
13456IActionProgressDialog : public IUnknown
13457{
13458    virtual HRESULT STDMETHODCALLTYPE Initialize(
13459        SPINITF flags,
13460        LPCWSTR pszTitle,
13461        LPCWSTR pszCancel) = 0;
13462
13463    virtual HRESULT STDMETHODCALLTYPE Stop(
13464        ) = 0;
13465
13466};
13467#ifdef __CRT_UUID_DECL
13468__CRT_UUID_DECL(IActionProgressDialog, 0x49ff1172, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c)
13469#endif
13470#else
13471typedef struct IActionProgressDialogVtbl {
13472    BEGIN_INTERFACE
13473
13474    /*** IUnknown methods ***/
13475    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13476        IActionProgressDialog *This,
13477        REFIID riid,
13478        void **ppvObject);
13479
13480    ULONG (STDMETHODCALLTYPE *AddRef)(
13481        IActionProgressDialog *This);
13482
13483    ULONG (STDMETHODCALLTYPE *Release)(
13484        IActionProgressDialog *This);
13485
13486    /*** IActionProgressDialog methods ***/
13487    HRESULT (STDMETHODCALLTYPE *Initialize)(
13488        IActionProgressDialog *This,
13489        SPINITF flags,
13490        LPCWSTR pszTitle,
13491        LPCWSTR pszCancel);
13492
13493    HRESULT (STDMETHODCALLTYPE *Stop)(
13494        IActionProgressDialog *This);
13495
13496    END_INTERFACE
13497} IActionProgressDialogVtbl;
13498
13499interface IActionProgressDialog {
13500    CONST_VTBL IActionProgressDialogVtbl* lpVtbl;
13501};
13502
13503#ifdef COBJMACROS
13504#ifndef WIDL_C_INLINE_WRAPPERS
13505/*** IUnknown methods ***/
13506#define IActionProgressDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13507#define IActionProgressDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
13508#define IActionProgressDialog_Release(This) (This)->lpVtbl->Release(This)
13509/*** IActionProgressDialog methods ***/
13510#define IActionProgressDialog_Initialize(This,flags,pszTitle,pszCancel) (This)->lpVtbl->Initialize(This,flags,pszTitle,pszCancel)
13511#define IActionProgressDialog_Stop(This) (This)->lpVtbl->Stop(This)
13512#else
13513/*** IUnknown methods ***/
13514static inline HRESULT IActionProgressDialog_QueryInterface(IActionProgressDialog* This,REFIID riid,void **ppvObject) {
13515    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13516}
13517static inline ULONG IActionProgressDialog_AddRef(IActionProgressDialog* This) {
13518    return This->lpVtbl->AddRef(This);
13519}
13520static inline ULONG IActionProgressDialog_Release(IActionProgressDialog* This) {
13521    return This->lpVtbl->Release(This);
13522}
13523/*** IActionProgressDialog methods ***/
13524static inline HRESULT IActionProgressDialog_Initialize(IActionProgressDialog* This,SPINITF flags,LPCWSTR pszTitle,LPCWSTR pszCancel) {
13525    return This->lpVtbl->Initialize(This,flags,pszTitle,pszCancel);
13526}
13527static inline HRESULT IActionProgressDialog_Stop(IActionProgressDialog* This) {
13528    return This->lpVtbl->Stop(This);
13529}
13530#endif
13531#endif
13532
13533#endif
13534
13535
13536#endif  /* __IActionProgressDialog_INTERFACE_DEFINED__ */
13537
13538
13539/*****************************************************************************
13540 * IHWEventHandler interface
13541 */
13542#ifndef __IHWEventHandler_INTERFACE_DEFINED__
13543#define __IHWEventHandler_INTERFACE_DEFINED__
13544
13545DEFINE_GUID(IID_IHWEventHandler, 0xc1fb73d0, 0xec3a, 0x4ba2, 0xb5,0x12, 0x8c,0xdb,0x91,0x87,0xb6,0xd1);
13546#if defined(__cplusplus) && !defined(CINTERFACE)
13547MIDL_INTERFACE("c1fb73d0-ec3a-4ba2-b512-8cdb9187b6d1")
13548IHWEventHandler : public IUnknown
13549{
13550    virtual HRESULT STDMETHODCALLTYPE Initialize(
13551        LPCWSTR pszParams) = 0;
13552
13553    virtual HRESULT STDMETHODCALLTYPE HandleEvent(
13554        LPCWSTR pszDeviceID,
13555        LPCWSTR pszAltDeviceID,
13556        LPCWSTR pszEventType) = 0;
13557
13558    virtual HRESULT STDMETHODCALLTYPE HandleEventWithContent(
13559        LPCWSTR pszDeviceID,
13560        LPCWSTR pszAltDeviceID,
13561        LPCWSTR pszEventType,
13562        LPCWSTR pszContentTypeHandler,
13563        IDataObject *pdataobject) = 0;
13564
13565};
13566#ifdef __CRT_UUID_DECL
13567__CRT_UUID_DECL(IHWEventHandler, 0xc1fb73d0, 0xec3a, 0x4ba2, 0xb5,0x12, 0x8c,0xdb,0x91,0x87,0xb6,0xd1)
13568#endif
13569#else
13570typedef struct IHWEventHandlerVtbl {
13571    BEGIN_INTERFACE
13572
13573    /*** IUnknown methods ***/
13574    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13575        IHWEventHandler *This,
13576        REFIID riid,
13577        void **ppvObject);
13578
13579    ULONG (STDMETHODCALLTYPE *AddRef)(
13580        IHWEventHandler *This);
13581
13582    ULONG (STDMETHODCALLTYPE *Release)(
13583        IHWEventHandler *This);
13584
13585    /*** IHWEventHandler methods ***/
13586    HRESULT (STDMETHODCALLTYPE *Initialize)(
13587        IHWEventHandler *This,
13588        LPCWSTR pszParams);
13589
13590    HRESULT (STDMETHODCALLTYPE *HandleEvent)(
13591        IHWEventHandler *This,
13592        LPCWSTR pszDeviceID,
13593        LPCWSTR pszAltDeviceID,
13594        LPCWSTR pszEventType);
13595
13596    HRESULT (STDMETHODCALLTYPE *HandleEventWithContent)(
13597        IHWEventHandler *This,
13598        LPCWSTR pszDeviceID,
13599        LPCWSTR pszAltDeviceID,
13600        LPCWSTR pszEventType,
13601        LPCWSTR pszContentTypeHandler,
13602        IDataObject *pdataobject);
13603
13604    END_INTERFACE
13605} IHWEventHandlerVtbl;
13606
13607interface IHWEventHandler {
13608    CONST_VTBL IHWEventHandlerVtbl* lpVtbl;
13609};
13610
13611#ifdef COBJMACROS
13612#ifndef WIDL_C_INLINE_WRAPPERS
13613/*** IUnknown methods ***/
13614#define IHWEventHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13615#define IHWEventHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
13616#define IHWEventHandler_Release(This) (This)->lpVtbl->Release(This)
13617/*** IHWEventHandler methods ***/
13618#define IHWEventHandler_Initialize(This,pszParams) (This)->lpVtbl->Initialize(This,pszParams)
13619#define IHWEventHandler_HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType) (This)->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType)
13620#define IHWEventHandler_HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject) (This)->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject)
13621#else
13622/*** IUnknown methods ***/
13623static inline HRESULT IHWEventHandler_QueryInterface(IHWEventHandler* This,REFIID riid,void **ppvObject) {
13624    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13625}
13626static inline ULONG IHWEventHandler_AddRef(IHWEventHandler* This) {
13627    return This->lpVtbl->AddRef(This);
13628}
13629static inline ULONG IHWEventHandler_Release(IHWEventHandler* This) {
13630    return This->lpVtbl->Release(This);
13631}
13632/*** IHWEventHandler methods ***/
13633static inline HRESULT IHWEventHandler_Initialize(IHWEventHandler* This,LPCWSTR pszParams) {
13634    return This->lpVtbl->Initialize(This,pszParams);
13635}
13636static inline HRESULT IHWEventHandler_HandleEvent(IHWEventHandler* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType) {
13637    return This->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType);
13638}
13639static inline HRESULT IHWEventHandler_HandleEventWithContent(IHWEventHandler* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,LPCWSTR pszContentTypeHandler,IDataObject *pdataobject) {
13640    return This->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject);
13641}
13642#endif
13643#endif
13644
13645#endif
13646
13647
13648#endif  /* __IHWEventHandler_INTERFACE_DEFINED__ */
13649
13650
13651/*****************************************************************************
13652 * IHWEventHandler2 interface
13653 */
13654#ifndef __IHWEventHandler2_INTERFACE_DEFINED__
13655#define __IHWEventHandler2_INTERFACE_DEFINED__
13656
13657DEFINE_GUID(IID_IHWEventHandler2, 0xcfcc809f, 0x295d, 0x42e8, 0x9f,0xfc, 0x42,0x4b,0x33,0xc4,0x87,0xe6);
13658#if defined(__cplusplus) && !defined(CINTERFACE)
13659MIDL_INTERFACE("cfcc809f-295d-42e8-9ffc-424b33c487e6")
13660IHWEventHandler2 : public IHWEventHandler
13661{
13662    virtual HRESULT STDMETHODCALLTYPE HandleEventWithHWND(
13663        LPCWSTR pszDeviceID,
13664        LPCWSTR pszAltDeviceID,
13665        LPCWSTR pszEventType,
13666        HWND hwndOwner) = 0;
13667
13668};
13669#ifdef __CRT_UUID_DECL
13670__CRT_UUID_DECL(IHWEventHandler2, 0xcfcc809f, 0x295d, 0x42e8, 0x9f,0xfc, 0x42,0x4b,0x33,0xc4,0x87,0xe6)
13671#endif
13672#else
13673typedef struct IHWEventHandler2Vtbl {
13674    BEGIN_INTERFACE
13675
13676    /*** IUnknown methods ***/
13677    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13678        IHWEventHandler2 *This,
13679        REFIID riid,
13680        void **ppvObject);
13681
13682    ULONG (STDMETHODCALLTYPE *AddRef)(
13683        IHWEventHandler2 *This);
13684
13685    ULONG (STDMETHODCALLTYPE *Release)(
13686        IHWEventHandler2 *This);
13687
13688    /*** IHWEventHandler methods ***/
13689    HRESULT (STDMETHODCALLTYPE *Initialize)(
13690        IHWEventHandler2 *This,
13691        LPCWSTR pszParams);
13692
13693    HRESULT (STDMETHODCALLTYPE *HandleEvent)(
13694        IHWEventHandler2 *This,
13695        LPCWSTR pszDeviceID,
13696        LPCWSTR pszAltDeviceID,
13697        LPCWSTR pszEventType);
13698
13699    HRESULT (STDMETHODCALLTYPE *HandleEventWithContent)(
13700        IHWEventHandler2 *This,
13701        LPCWSTR pszDeviceID,
13702        LPCWSTR pszAltDeviceID,
13703        LPCWSTR pszEventType,
13704        LPCWSTR pszContentTypeHandler,
13705        IDataObject *pdataobject);
13706
13707    /*** IHWEventHandler2 methods ***/
13708    HRESULT (STDMETHODCALLTYPE *HandleEventWithHWND)(
13709        IHWEventHandler2 *This,
13710        LPCWSTR pszDeviceID,
13711        LPCWSTR pszAltDeviceID,
13712        LPCWSTR pszEventType,
13713        HWND hwndOwner);
13714
13715    END_INTERFACE
13716} IHWEventHandler2Vtbl;
13717
13718interface IHWEventHandler2 {
13719    CONST_VTBL IHWEventHandler2Vtbl* lpVtbl;
13720};
13721
13722#ifdef COBJMACROS
13723#ifndef WIDL_C_INLINE_WRAPPERS
13724/*** IUnknown methods ***/
13725#define IHWEventHandler2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13726#define IHWEventHandler2_AddRef(This) (This)->lpVtbl->AddRef(This)
13727#define IHWEventHandler2_Release(This) (This)->lpVtbl->Release(This)
13728/*** IHWEventHandler methods ***/
13729#define IHWEventHandler2_Initialize(This,pszParams) (This)->lpVtbl->Initialize(This,pszParams)
13730#define IHWEventHandler2_HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType) (This)->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType)
13731#define IHWEventHandler2_HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject) (This)->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject)
13732/*** IHWEventHandler2 methods ***/
13733#define IHWEventHandler2_HandleEventWithHWND(This,pszDeviceID,pszAltDeviceID,pszEventType,hwndOwner) (This)->lpVtbl->HandleEventWithHWND(This,pszDeviceID,pszAltDeviceID,pszEventType,hwndOwner)
13734#else
13735/*** IUnknown methods ***/
13736static inline HRESULT IHWEventHandler2_QueryInterface(IHWEventHandler2* This,REFIID riid,void **ppvObject) {
13737    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13738}
13739static inline ULONG IHWEventHandler2_AddRef(IHWEventHandler2* This) {
13740    return This->lpVtbl->AddRef(This);
13741}
13742static inline ULONG IHWEventHandler2_Release(IHWEventHandler2* This) {
13743    return This->lpVtbl->Release(This);
13744}
13745/*** IHWEventHandler methods ***/
13746static inline HRESULT IHWEventHandler2_Initialize(IHWEventHandler2* This,LPCWSTR pszParams) {
13747    return This->lpVtbl->Initialize(This,pszParams);
13748}
13749static inline HRESULT IHWEventHandler2_HandleEvent(IHWEventHandler2* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType) {
13750    return This->lpVtbl->HandleEvent(This,pszDeviceID,pszAltDeviceID,pszEventType);
13751}
13752static inline HRESULT IHWEventHandler2_HandleEventWithContent(IHWEventHandler2* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,LPCWSTR pszContentTypeHandler,IDataObject *pdataobject) {
13753    return This->lpVtbl->HandleEventWithContent(This,pszDeviceID,pszAltDeviceID,pszEventType,pszContentTypeHandler,pdataobject);
13754}
13755/*** IHWEventHandler2 methods ***/
13756static inline HRESULT IHWEventHandler2_HandleEventWithHWND(IHWEventHandler2* This,LPCWSTR pszDeviceID,LPCWSTR pszAltDeviceID,LPCWSTR pszEventType,HWND hwndOwner) {
13757    return This->lpVtbl->HandleEventWithHWND(This,pszDeviceID,pszAltDeviceID,pszEventType,hwndOwner);
13758}
13759#endif
13760#endif
13761
13762#endif
13763
13764
13765#endif  /* __IHWEventHandler2_INTERFACE_DEFINED__ */
13766
13767
13768#define ARCONTENT_AUTORUNINF 0x00000002
13769#define ARCONTENT_AUDIOCD 0x00000004
13770#define ARCONTENT_DVDMOVIE 0x00000008
13771#define ARCONTENT_BLANKCD 0x00000010
13772#define ARCONTENT_BLANKDVD 0x00000020
13773#define ARCONTENT_UNKNOWNCONTENT 0x00000040
13774#define ARCONTENT_AUTOPLAYPIX 0x00000080
13775#define ARCONTENT_AUTOPLAYMUSIC 0x00000100
13776#define ARCONTENT_AUTOPLAYVIDEO 0x00000200
13777
13778#if NTDDI_VERSION >= NTDDI_VISTA
13779#define ARCONTENT_VCD 0x00000400
13780#define ARCONTENT_SVCD 0x00000800
13781#define ARCONTENT_DVDAUDIO 0x00001000
13782#define ARCONTENT_BLANKBD 0x00002000
13783#define ARCONTENT_BLURAY 0x00004000
13784#define ARCONTENT_CAMERASTORAGE 0x00008000
13785#define ARCONTENT_CUSTOMEVENT 0x00010000
13786#define ARCONTENT_NONE 0x00000000
13787#define ARCONTENT_MASK 0x0001FFFE
13788
13789#define ARCONTENT_PHASE_UNKNOWN 0x00000000
13790#define ARCONTENT_PHASE_PRESNIFF 0x10000000
13791#define ARCONTENT_PHASE_SNIFFING 0x20000000
13792#define ARCONTENT_PHASE_FINAL 0x40000000
13793#define ARCONTENT_PHASE_MASK 0x70000000
13794#endif
13795
13796/*****************************************************************************
13797 * IQueryCancelAutoPlay interface
13798 */
13799#ifndef __IQueryCancelAutoPlay_INTERFACE_DEFINED__
13800#define __IQueryCancelAutoPlay_INTERFACE_DEFINED__
13801
13802DEFINE_GUID(IID_IQueryCancelAutoPlay, 0xddefe873, 0x6997, 0x4e68, 0xbe,0x26, 0x39,0xb6,0x33,0xad,0xbe,0x12);
13803#if defined(__cplusplus) && !defined(CINTERFACE)
13804MIDL_INTERFACE("ddefe873-6997-4e68-be26-39b633adbe12")
13805IQueryCancelAutoPlay : public IUnknown
13806{
13807    virtual HRESULT STDMETHODCALLTYPE AllowAutoPlay(
13808        LPCWSTR pszPath,
13809        DWORD dwContentType,
13810        LPCWSTR pszLabel,
13811        DWORD dwSerialNumber) = 0;
13812
13813};
13814#ifdef __CRT_UUID_DECL
13815__CRT_UUID_DECL(IQueryCancelAutoPlay, 0xddefe873, 0x6997, 0x4e68, 0xbe,0x26, 0x39,0xb6,0x33,0xad,0xbe,0x12)
13816#endif
13817#else
13818typedef struct IQueryCancelAutoPlayVtbl {
13819    BEGIN_INTERFACE
13820
13821    /*** IUnknown methods ***/
13822    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13823        IQueryCancelAutoPlay *This,
13824        REFIID riid,
13825        void **ppvObject);
13826
13827    ULONG (STDMETHODCALLTYPE *AddRef)(
13828        IQueryCancelAutoPlay *This);
13829
13830    ULONG (STDMETHODCALLTYPE *Release)(
13831        IQueryCancelAutoPlay *This);
13832
13833    /*** IQueryCancelAutoPlay methods ***/
13834    HRESULT (STDMETHODCALLTYPE *AllowAutoPlay)(
13835        IQueryCancelAutoPlay *This,
13836        LPCWSTR pszPath,
13837        DWORD dwContentType,
13838        LPCWSTR pszLabel,
13839        DWORD dwSerialNumber);
13840
13841    END_INTERFACE
13842} IQueryCancelAutoPlayVtbl;
13843
13844interface IQueryCancelAutoPlay {
13845    CONST_VTBL IQueryCancelAutoPlayVtbl* lpVtbl;
13846};
13847
13848#ifdef COBJMACROS
13849#ifndef WIDL_C_INLINE_WRAPPERS
13850/*** IUnknown methods ***/
13851#define IQueryCancelAutoPlay_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13852#define IQueryCancelAutoPlay_AddRef(This) (This)->lpVtbl->AddRef(This)
13853#define IQueryCancelAutoPlay_Release(This) (This)->lpVtbl->Release(This)
13854/*** IQueryCancelAutoPlay methods ***/
13855#define IQueryCancelAutoPlay_AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber) (This)->lpVtbl->AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber)
13856#else
13857/*** IUnknown methods ***/
13858static inline HRESULT IQueryCancelAutoPlay_QueryInterface(IQueryCancelAutoPlay* This,REFIID riid,void **ppvObject) {
13859    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13860}
13861static inline ULONG IQueryCancelAutoPlay_AddRef(IQueryCancelAutoPlay* This) {
13862    return This->lpVtbl->AddRef(This);
13863}
13864static inline ULONG IQueryCancelAutoPlay_Release(IQueryCancelAutoPlay* This) {
13865    return This->lpVtbl->Release(This);
13866}
13867/*** IQueryCancelAutoPlay methods ***/
13868static inline HRESULT IQueryCancelAutoPlay_AllowAutoPlay(IQueryCancelAutoPlay* This,LPCWSTR pszPath,DWORD dwContentType,LPCWSTR pszLabel,DWORD dwSerialNumber) {
13869    return This->lpVtbl->AllowAutoPlay(This,pszPath,dwContentType,pszLabel,dwSerialNumber);
13870}
13871#endif
13872#endif
13873
13874#endif
13875
13876
13877#endif  /* __IQueryCancelAutoPlay_INTERFACE_DEFINED__ */
13878
13879
13880#if NTDDI_VERSION >= NTDDI_VISTA
13881/*****************************************************************************
13882 * IDynamicHWHandler interface
13883 */
13884#ifndef __IDynamicHWHandler_INTERFACE_DEFINED__
13885#define __IDynamicHWHandler_INTERFACE_DEFINED__
13886
13887DEFINE_GUID(IID_IDynamicHWHandler, 0xdc2601d7, 0x059e, 0x42fc, 0xa0,0x9d, 0x2a,0xfd,0x21,0xb6,0xd5,0xf7);
13888#if defined(__cplusplus) && !defined(CINTERFACE)
13889MIDL_INTERFACE("dc2601d7-059e-42fc-a09d-2afd21b6d5f7")
13890IDynamicHWHandler : public IUnknown
13891{
13892    virtual HRESULT STDMETHODCALLTYPE GetDynamicInfo(
13893        LPCWSTR pszDeviceID,
13894        DWORD dwContentType,
13895        LPWSTR *ppszAction) = 0;
13896
13897};
13898#ifdef __CRT_UUID_DECL
13899__CRT_UUID_DECL(IDynamicHWHandler, 0xdc2601d7, 0x059e, 0x42fc, 0xa0,0x9d, 0x2a,0xfd,0x21,0xb6,0xd5,0xf7)
13900#endif
13901#else
13902typedef struct IDynamicHWHandlerVtbl {
13903    BEGIN_INTERFACE
13904
13905    /*** IUnknown methods ***/
13906    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
13907        IDynamicHWHandler *This,
13908        REFIID riid,
13909        void **ppvObject);
13910
13911    ULONG (STDMETHODCALLTYPE *AddRef)(
13912        IDynamicHWHandler *This);
13913
13914    ULONG (STDMETHODCALLTYPE *Release)(
13915        IDynamicHWHandler *This);
13916
13917    /*** IDynamicHWHandler methods ***/
13918    HRESULT (STDMETHODCALLTYPE *GetDynamicInfo)(
13919        IDynamicHWHandler *This,
13920        LPCWSTR pszDeviceID,
13921        DWORD dwContentType,
13922        LPWSTR *ppszAction);
13923
13924    END_INTERFACE
13925} IDynamicHWHandlerVtbl;
13926
13927interface IDynamicHWHandler {
13928    CONST_VTBL IDynamicHWHandlerVtbl* lpVtbl;
13929};
13930
13931#ifdef COBJMACROS
13932#ifndef WIDL_C_INLINE_WRAPPERS
13933/*** IUnknown methods ***/
13934#define IDynamicHWHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
13935#define IDynamicHWHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
13936#define IDynamicHWHandler_Release(This) (This)->lpVtbl->Release(This)
13937/*** IDynamicHWHandler methods ***/
13938#define IDynamicHWHandler_GetDynamicInfo(This,pszDeviceID,dwContentType,ppszAction) (This)->lpVtbl->GetDynamicInfo(This,pszDeviceID,dwContentType,ppszAction)
13939#else
13940/*** IUnknown methods ***/
13941static inline HRESULT IDynamicHWHandler_QueryInterface(IDynamicHWHandler* This,REFIID riid,void **ppvObject) {
13942    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
13943}
13944static inline ULONG IDynamicHWHandler_AddRef(IDynamicHWHandler* This) {
13945    return This->lpVtbl->AddRef(This);
13946}
13947static inline ULONG IDynamicHWHandler_Release(IDynamicHWHandler* This) {
13948    return This->lpVtbl->Release(This);
13949}
13950/*** IDynamicHWHandler methods ***/
13951static inline HRESULT IDynamicHWHandler_GetDynamicInfo(IDynamicHWHandler* This,LPCWSTR pszDeviceID,DWORD dwContentType,LPWSTR *ppszAction) {
13952    return This->lpVtbl->GetDynamicInfo(This,pszDeviceID,dwContentType,ppszAction);
13953}
13954#endif
13955#endif
13956
13957#endif
13958
13959
13960#endif  /* __IDynamicHWHandler_INTERFACE_DEFINED__ */
13961
13962#endif
13963
13964/*****************************************************************************
13965 * IActionProgress interface
13966 */
13967#ifndef __IActionProgress_INTERFACE_DEFINED__
13968#define __IActionProgress_INTERFACE_DEFINED__
13969
13970enum _SPBEGINF {
13971    SPBEGINF_NORMAL = 0x0,
13972    SPBEGINF_AUTOTIME = 0x2,
13973    SPBEGINF_NOPROGRESSBAR = 0x10,
13974    SPBEGINF_MARQUEEPROGRESS = 0x20,
13975    SPBEGINF_NOCANCELBUTTON = 0x40
13976};
13977
13978typedef DWORD SPBEGINF;
13979
13980typedef enum _SPACTION {
13981    SPACTION_NONE = 0,
13982    SPACTION_MOVING = 1,
13983    SPACTION_COPYING = 2,
13984    SPACTION_RECYCLING = 3,
13985    SPACTION_APPLYINGATTRIBS = 4,
13986    SPACTION_DOWNLOADING = 5,
13987    SPACTION_SEARCHING_INTERNET = 6,
13988    SPACTION_CALCULATING = 7,
13989    SPACTION_UPLOADING = 8,
13990    SPACTION_SEARCHING_FILES = 9,
13991    SPACTION_DELETING = 10,
13992    SPACTION_RENAMING = 11,
13993    SPACTION_FORMATTING = 12,
13994    SPACTION_COPY_MOVING = 13
13995} SPACTION;
13996
13997typedef enum _SPTEXT {
13998    SPTEXT_ACTIONDESCRIPTION = 1,
13999    SPTEXT_ACTIONDETAIL = 2
14000} SPTEXT;
14001
14002DEFINE_GUID(IID_IActionProgress, 0x49ff1173, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c);
14003#if defined(__cplusplus) && !defined(CINTERFACE)
14004MIDL_INTERFACE("49ff1173-eadc-446d-9285-156453a6431c")
14005IActionProgress : public IUnknown
14006{
14007    virtual HRESULT STDMETHODCALLTYPE Begin(
14008        SPACTION action,
14009        SPBEGINF flags) = 0;
14010
14011    virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
14012        ULONGLONG ulCompleted,
14013        ULONGLONG ulTotal) = 0;
14014
14015    virtual HRESULT STDMETHODCALLTYPE UpdateText(
14016        SPTEXT sptext,
14017        LPCWSTR pszText,
14018        WINBOOL fMayCompact) = 0;
14019
14020    virtual HRESULT STDMETHODCALLTYPE QueryCancel(
14021        WINBOOL *pfCancelled) = 0;
14022
14023    virtual HRESULT STDMETHODCALLTYPE ResetCancel(
14024        ) = 0;
14025
14026    virtual HRESULT STDMETHODCALLTYPE End(
14027        ) = 0;
14028
14029};
14030#ifdef __CRT_UUID_DECL
14031__CRT_UUID_DECL(IActionProgress, 0x49ff1173, 0xeadc, 0x446d, 0x92,0x85, 0x15,0x64,0x53,0xa6,0x43,0x1c)
14032#endif
14033#else
14034typedef struct IActionProgressVtbl {
14035    BEGIN_INTERFACE
14036
14037    /*** IUnknown methods ***/
14038    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14039        IActionProgress *This,
14040        REFIID riid,
14041        void **ppvObject);
14042
14043    ULONG (STDMETHODCALLTYPE *AddRef)(
14044        IActionProgress *This);
14045
14046    ULONG (STDMETHODCALLTYPE *Release)(
14047        IActionProgress *This);
14048
14049    /*** IActionProgress methods ***/
14050    HRESULT (STDMETHODCALLTYPE *Begin)(
14051        IActionProgress *This,
14052        SPACTION action,
14053        SPBEGINF flags);
14054
14055    HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
14056        IActionProgress *This,
14057        ULONGLONG ulCompleted,
14058        ULONGLONG ulTotal);
14059
14060    HRESULT (STDMETHODCALLTYPE *UpdateText)(
14061        IActionProgress *This,
14062        SPTEXT sptext,
14063        LPCWSTR pszText,
14064        WINBOOL fMayCompact);
14065
14066    HRESULT (STDMETHODCALLTYPE *QueryCancel)(
14067        IActionProgress *This,
14068        WINBOOL *pfCancelled);
14069
14070    HRESULT (STDMETHODCALLTYPE *ResetCancel)(
14071        IActionProgress *This);
14072
14073    HRESULT (STDMETHODCALLTYPE *End)(
14074        IActionProgress *This);
14075
14076    END_INTERFACE
14077} IActionProgressVtbl;
14078
14079interface IActionProgress {
14080    CONST_VTBL IActionProgressVtbl* lpVtbl;
14081};
14082
14083#ifdef COBJMACROS
14084#ifndef WIDL_C_INLINE_WRAPPERS
14085/*** IUnknown methods ***/
14086#define IActionProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14087#define IActionProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
14088#define IActionProgress_Release(This) (This)->lpVtbl->Release(This)
14089/*** IActionProgress methods ***/
14090#define IActionProgress_Begin(This,action,flags) (This)->lpVtbl->Begin(This,action,flags)
14091#define IActionProgress_UpdateProgress(This,ulCompleted,ulTotal) (This)->lpVtbl->UpdateProgress(This,ulCompleted,ulTotal)
14092#define IActionProgress_UpdateText(This,sptext,pszText,fMayCompact) (This)->lpVtbl->UpdateText(This,sptext,pszText,fMayCompact)
14093#define IActionProgress_QueryCancel(This,pfCancelled) (This)->lpVtbl->QueryCancel(This,pfCancelled)
14094#define IActionProgress_ResetCancel(This) (This)->lpVtbl->ResetCancel(This)
14095#define IActionProgress_End(This) (This)->lpVtbl->End(This)
14096#else
14097/*** IUnknown methods ***/
14098static inline HRESULT IActionProgress_QueryInterface(IActionProgress* This,REFIID riid,void **ppvObject) {
14099    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14100}
14101static inline ULONG IActionProgress_AddRef(IActionProgress* This) {
14102    return This->lpVtbl->AddRef(This);
14103}
14104static inline ULONG IActionProgress_Release(IActionProgress* This) {
14105    return This->lpVtbl->Release(This);
14106}
14107/*** IActionProgress methods ***/
14108static inline HRESULT IActionProgress_Begin(IActionProgress* This,SPACTION action,SPBEGINF flags) {
14109    return This->lpVtbl->Begin(This,action,flags);
14110}
14111static inline HRESULT IActionProgress_UpdateProgress(IActionProgress* This,ULONGLONG ulCompleted,ULONGLONG ulTotal) {
14112    return This->lpVtbl->UpdateProgress(This,ulCompleted,ulTotal);
14113}
14114static inline HRESULT IActionProgress_UpdateText(IActionProgress* This,SPTEXT sptext,LPCWSTR pszText,WINBOOL fMayCompact) {
14115    return This->lpVtbl->UpdateText(This,sptext,pszText,fMayCompact);
14116}
14117static inline HRESULT IActionProgress_QueryCancel(IActionProgress* This,WINBOOL *pfCancelled) {
14118    return This->lpVtbl->QueryCancel(This,pfCancelled);
14119}
14120static inline HRESULT IActionProgress_ResetCancel(IActionProgress* This) {
14121    return This->lpVtbl->ResetCancel(This);
14122}
14123static inline HRESULT IActionProgress_End(IActionProgress* This) {
14124    return This->lpVtbl->End(This);
14125}
14126#endif
14127#endif
14128
14129#endif
14130
14131
14132#endif  /* __IActionProgress_INTERFACE_DEFINED__ */
14133
14134
14135/*****************************************************************************
14136 * IShellExtInit interface
14137 */
14138#ifndef __IShellExtInit_INTERFACE_DEFINED__
14139#define __IShellExtInit_INTERFACE_DEFINED__
14140
14141DEFINE_GUID(IID_IShellExtInit, 0x000214e8, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
14142#if defined(__cplusplus) && !defined(CINTERFACE)
14143MIDL_INTERFACE("000214e8-0000-0000-c000-000000000046")
14144IShellExtInit : public IUnknown
14145{
14146    virtual HRESULT STDMETHODCALLTYPE Initialize(
14147        PCIDLIST_ABSOLUTE pidlFolder,
14148        IDataObject *pdtobj,
14149        HKEY hkeyProgID) = 0;
14150
14151};
14152#ifdef __CRT_UUID_DECL
14153__CRT_UUID_DECL(IShellExtInit, 0x000214e8, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
14154#endif
14155#else
14156typedef struct IShellExtInitVtbl {
14157    BEGIN_INTERFACE
14158
14159    /*** IUnknown methods ***/
14160    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14161        IShellExtInit *This,
14162        REFIID riid,
14163        void **ppvObject);
14164
14165    ULONG (STDMETHODCALLTYPE *AddRef)(
14166        IShellExtInit *This);
14167
14168    ULONG (STDMETHODCALLTYPE *Release)(
14169        IShellExtInit *This);
14170
14171    /*** IShellExtInit methods ***/
14172    HRESULT (STDMETHODCALLTYPE *Initialize)(
14173        IShellExtInit *This,
14174        PCIDLIST_ABSOLUTE pidlFolder,
14175        IDataObject *pdtobj,
14176        HKEY hkeyProgID);
14177
14178    END_INTERFACE
14179} IShellExtInitVtbl;
14180
14181interface IShellExtInit {
14182    CONST_VTBL IShellExtInitVtbl* lpVtbl;
14183};
14184
14185#ifdef COBJMACROS
14186#ifndef WIDL_C_INLINE_WRAPPERS
14187/*** IUnknown methods ***/
14188#define IShellExtInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14189#define IShellExtInit_AddRef(This) (This)->lpVtbl->AddRef(This)
14190#define IShellExtInit_Release(This) (This)->lpVtbl->Release(This)
14191/*** IShellExtInit methods ***/
14192#define IShellExtInit_Initialize(This,pidlFolder,pdtobj,hkeyProgID) (This)->lpVtbl->Initialize(This,pidlFolder,pdtobj,hkeyProgID)
14193#else
14194/*** IUnknown methods ***/
14195static inline HRESULT IShellExtInit_QueryInterface(IShellExtInit* This,REFIID riid,void **ppvObject) {
14196    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14197}
14198static inline ULONG IShellExtInit_AddRef(IShellExtInit* This) {
14199    return This->lpVtbl->AddRef(This);
14200}
14201static inline ULONG IShellExtInit_Release(IShellExtInit* This) {
14202    return This->lpVtbl->Release(This);
14203}
14204/*** IShellExtInit methods ***/
14205static inline HRESULT IShellExtInit_Initialize(IShellExtInit* This,PCIDLIST_ABSOLUTE pidlFolder,IDataObject *pdtobj,HKEY hkeyProgID) {
14206    return This->lpVtbl->Initialize(This,pidlFolder,pdtobj,hkeyProgID);
14207}
14208#endif
14209#endif
14210
14211#endif
14212
14213
14214#endif  /* __IShellExtInit_INTERFACE_DEFINED__ */
14215
14216typedef IShellExtInit *LPSHELLEXTINIT;
14217
14218/*****************************************************************************
14219 * IShellPropSheetExt interface
14220 */
14221#ifndef __IShellPropSheetExt_INTERFACE_DEFINED__
14222#define __IShellPropSheetExt_INTERFACE_DEFINED__
14223
14224enum _EXPPS {
14225    EXPPS_FILETYPES = 0x1
14226};
14227
14228typedef UINT EXPPS;
14229
14230DEFINE_GUID(IID_IShellPropSheetExt, 0x000214e9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
14231#if defined(__cplusplus) && !defined(CINTERFACE)
14232MIDL_INTERFACE("000214e9-0000-0000-c000-000000000046")
14233IShellPropSheetExt : public IUnknown
14234{
14235    virtual HRESULT STDMETHODCALLTYPE AddPages(
14236        LPFNSVADDPROPSHEETPAGE pfnAddPage,
14237        LPARAM lParam) = 0;
14238
14239    virtual HRESULT STDMETHODCALLTYPE ReplacePage(
14240        EXPPS uPageID,
14241        LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
14242        LPARAM lParam) = 0;
14243
14244};
14245#ifdef __CRT_UUID_DECL
14246__CRT_UUID_DECL(IShellPropSheetExt, 0x000214e9, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
14247#endif
14248#else
14249typedef struct IShellPropSheetExtVtbl {
14250    BEGIN_INTERFACE
14251
14252    /*** IUnknown methods ***/
14253    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14254        IShellPropSheetExt *This,
14255        REFIID riid,
14256        void **ppvObject);
14257
14258    ULONG (STDMETHODCALLTYPE *AddRef)(
14259        IShellPropSheetExt *This);
14260
14261    ULONG (STDMETHODCALLTYPE *Release)(
14262        IShellPropSheetExt *This);
14263
14264    /*** IShellPropSheetExt methods ***/
14265    HRESULT (STDMETHODCALLTYPE *AddPages)(
14266        IShellPropSheetExt *This,
14267        LPFNSVADDPROPSHEETPAGE pfnAddPage,
14268        LPARAM lParam);
14269
14270    HRESULT (STDMETHODCALLTYPE *ReplacePage)(
14271        IShellPropSheetExt *This,
14272        EXPPS uPageID,
14273        LPFNSVADDPROPSHEETPAGE pfnReplaceWith,
14274        LPARAM lParam);
14275
14276    END_INTERFACE
14277} IShellPropSheetExtVtbl;
14278
14279interface IShellPropSheetExt {
14280    CONST_VTBL IShellPropSheetExtVtbl* lpVtbl;
14281};
14282
14283#ifdef COBJMACROS
14284#ifndef WIDL_C_INLINE_WRAPPERS
14285/*** IUnknown methods ***/
14286#define IShellPropSheetExt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14287#define IShellPropSheetExt_AddRef(This) (This)->lpVtbl->AddRef(This)
14288#define IShellPropSheetExt_Release(This) (This)->lpVtbl->Release(This)
14289/*** IShellPropSheetExt methods ***/
14290#define IShellPropSheetExt_AddPages(This,pfnAddPage,lParam) (This)->lpVtbl->AddPages(This,pfnAddPage,lParam)
14291#define IShellPropSheetExt_ReplacePage(This,uPageID,pfnReplaceWith,lParam) (This)->lpVtbl->ReplacePage(This,uPageID,pfnReplaceWith,lParam)
14292#else
14293/*** IUnknown methods ***/
14294static inline HRESULT IShellPropSheetExt_QueryInterface(IShellPropSheetExt* This,REFIID riid,void **ppvObject) {
14295    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14296}
14297static inline ULONG IShellPropSheetExt_AddRef(IShellPropSheetExt* This) {
14298    return This->lpVtbl->AddRef(This);
14299}
14300static inline ULONG IShellPropSheetExt_Release(IShellPropSheetExt* This) {
14301    return This->lpVtbl->Release(This);
14302}
14303/*** IShellPropSheetExt methods ***/
14304static inline HRESULT IShellPropSheetExt_AddPages(IShellPropSheetExt* This,LPFNSVADDPROPSHEETPAGE pfnAddPage,LPARAM lParam) {
14305    return This->lpVtbl->AddPages(This,pfnAddPage,lParam);
14306}
14307static inline HRESULT IShellPropSheetExt_ReplacePage(IShellPropSheetExt* This,EXPPS uPageID,LPFNSVADDPROPSHEETPAGE pfnReplaceWith,LPARAM lParam) {
14308    return This->lpVtbl->ReplacePage(This,uPageID,pfnReplaceWith,lParam);
14309}
14310#endif
14311#endif
14312
14313#endif
14314
14315
14316#endif  /* __IShellPropSheetExt_INTERFACE_DEFINED__ */
14317
14318typedef IShellPropSheetExt *LPSHELLPROPSHEETEXT;
14319
14320/*****************************************************************************
14321 * IRemoteComputer interface
14322 */
14323#ifndef __IRemoteComputer_INTERFACE_DEFINED__
14324#define __IRemoteComputer_INTERFACE_DEFINED__
14325
14326DEFINE_GUID(IID_IRemoteComputer, 0x000214fe, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
14327#if defined(__cplusplus) && !defined(CINTERFACE)
14328MIDL_INTERFACE("000214fe-0000-0000-c000-000000000046")
14329IRemoteComputer : public IUnknown
14330{
14331    virtual HRESULT STDMETHODCALLTYPE Initialize(
14332        LPCWSTR pszMachine,
14333        WINBOOL bEnumerating) = 0;
14334
14335};
14336#ifdef __CRT_UUID_DECL
14337__CRT_UUID_DECL(IRemoteComputer, 0x000214fe, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
14338#endif
14339#else
14340typedef struct IRemoteComputerVtbl {
14341    BEGIN_INTERFACE
14342
14343    /*** IUnknown methods ***/
14344    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14345        IRemoteComputer *This,
14346        REFIID riid,
14347        void **ppvObject);
14348
14349    ULONG (STDMETHODCALLTYPE *AddRef)(
14350        IRemoteComputer *This);
14351
14352    ULONG (STDMETHODCALLTYPE *Release)(
14353        IRemoteComputer *This);
14354
14355    /*** IRemoteComputer methods ***/
14356    HRESULT (STDMETHODCALLTYPE *Initialize)(
14357        IRemoteComputer *This,
14358        LPCWSTR pszMachine,
14359        WINBOOL bEnumerating);
14360
14361    END_INTERFACE
14362} IRemoteComputerVtbl;
14363
14364interface IRemoteComputer {
14365    CONST_VTBL IRemoteComputerVtbl* lpVtbl;
14366};
14367
14368#ifdef COBJMACROS
14369#ifndef WIDL_C_INLINE_WRAPPERS
14370/*** IUnknown methods ***/
14371#define IRemoteComputer_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14372#define IRemoteComputer_AddRef(This) (This)->lpVtbl->AddRef(This)
14373#define IRemoteComputer_Release(This) (This)->lpVtbl->Release(This)
14374/*** IRemoteComputer methods ***/
14375#define IRemoteComputer_Initialize(This,pszMachine,bEnumerating) (This)->lpVtbl->Initialize(This,pszMachine,bEnumerating)
14376#else
14377/*** IUnknown methods ***/
14378static inline HRESULT IRemoteComputer_QueryInterface(IRemoteComputer* This,REFIID riid,void **ppvObject) {
14379    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14380}
14381static inline ULONG IRemoteComputer_AddRef(IRemoteComputer* This) {
14382    return This->lpVtbl->AddRef(This);
14383}
14384static inline ULONG IRemoteComputer_Release(IRemoteComputer* This) {
14385    return This->lpVtbl->Release(This);
14386}
14387/*** IRemoteComputer methods ***/
14388static inline HRESULT IRemoteComputer_Initialize(IRemoteComputer* This,LPCWSTR pszMachine,WINBOOL bEnumerating) {
14389    return This->lpVtbl->Initialize(This,pszMachine,bEnumerating);
14390}
14391#endif
14392#endif
14393
14394#endif
14395
14396
14397#endif  /* __IRemoteComputer_INTERFACE_DEFINED__ */
14398
14399
14400/*****************************************************************************
14401 * IQueryContinue interface
14402 */
14403#ifndef __IQueryContinue_INTERFACE_DEFINED__
14404#define __IQueryContinue_INTERFACE_DEFINED__
14405
14406DEFINE_GUID(IID_IQueryContinue, 0x7307055c, 0xb24a, 0x486b, 0x9f,0x25, 0x16,0x3e,0x59,0x7a,0x28,0xa9);
14407#if defined(__cplusplus) && !defined(CINTERFACE)
14408MIDL_INTERFACE("7307055c-b24a-486b-9f25-163e597a28a9")
14409IQueryContinue : public IUnknown
14410{
14411    virtual HRESULT STDMETHODCALLTYPE QueryContinue(
14412        ) = 0;
14413
14414};
14415#ifdef __CRT_UUID_DECL
14416__CRT_UUID_DECL(IQueryContinue, 0x7307055c, 0xb24a, 0x486b, 0x9f,0x25, 0x16,0x3e,0x59,0x7a,0x28,0xa9)
14417#endif
14418#else
14419typedef struct IQueryContinueVtbl {
14420    BEGIN_INTERFACE
14421
14422    /*** IUnknown methods ***/
14423    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14424        IQueryContinue *This,
14425        REFIID riid,
14426        void **ppvObject);
14427
14428    ULONG (STDMETHODCALLTYPE *AddRef)(
14429        IQueryContinue *This);
14430
14431    ULONG (STDMETHODCALLTYPE *Release)(
14432        IQueryContinue *This);
14433
14434    /*** IQueryContinue methods ***/
14435    HRESULT (STDMETHODCALLTYPE *QueryContinue)(
14436        IQueryContinue *This);
14437
14438    END_INTERFACE
14439} IQueryContinueVtbl;
14440
14441interface IQueryContinue {
14442    CONST_VTBL IQueryContinueVtbl* lpVtbl;
14443};
14444
14445#ifdef COBJMACROS
14446#ifndef WIDL_C_INLINE_WRAPPERS
14447/*** IUnknown methods ***/
14448#define IQueryContinue_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14449#define IQueryContinue_AddRef(This) (This)->lpVtbl->AddRef(This)
14450#define IQueryContinue_Release(This) (This)->lpVtbl->Release(This)
14451/*** IQueryContinue methods ***/
14452#define IQueryContinue_QueryContinue(This) (This)->lpVtbl->QueryContinue(This)
14453#else
14454/*** IUnknown methods ***/
14455static inline HRESULT IQueryContinue_QueryInterface(IQueryContinue* This,REFIID riid,void **ppvObject) {
14456    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14457}
14458static inline ULONG IQueryContinue_AddRef(IQueryContinue* This) {
14459    return This->lpVtbl->AddRef(This);
14460}
14461static inline ULONG IQueryContinue_Release(IQueryContinue* This) {
14462    return This->lpVtbl->Release(This);
14463}
14464/*** IQueryContinue methods ***/
14465static inline HRESULT IQueryContinue_QueryContinue(IQueryContinue* This) {
14466    return This->lpVtbl->QueryContinue(This);
14467}
14468#endif
14469#endif
14470
14471#endif
14472
14473
14474#endif  /* __IQueryContinue_INTERFACE_DEFINED__ */
14475
14476
14477/*****************************************************************************
14478 * IObjectWithCancelEvent interface
14479 */
14480#ifndef __IObjectWithCancelEvent_INTERFACE_DEFINED__
14481#define __IObjectWithCancelEvent_INTERFACE_DEFINED__
14482
14483DEFINE_GUID(IID_IObjectWithCancelEvent, 0xf279b885, 0x0ae9, 0x4b85, 0xac,0x06, 0xdd,0xec,0xf9,0x40,0x89,0x41);
14484#if defined(__cplusplus) && !defined(CINTERFACE)
14485MIDL_INTERFACE("f279b885-0ae9-4b85-ac06-ddecf9408941")
14486IObjectWithCancelEvent : public IUnknown
14487{
14488    virtual HRESULT STDMETHODCALLTYPE GetCancelEvent(
14489        HANDLE *phEvent) = 0;
14490
14491};
14492#ifdef __CRT_UUID_DECL
14493__CRT_UUID_DECL(IObjectWithCancelEvent, 0xf279b885, 0x0ae9, 0x4b85, 0xac,0x06, 0xdd,0xec,0xf9,0x40,0x89,0x41)
14494#endif
14495#else
14496typedef struct IObjectWithCancelEventVtbl {
14497    BEGIN_INTERFACE
14498
14499    /*** IUnknown methods ***/
14500    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14501        IObjectWithCancelEvent *This,
14502        REFIID riid,
14503        void **ppvObject);
14504
14505    ULONG (STDMETHODCALLTYPE *AddRef)(
14506        IObjectWithCancelEvent *This);
14507
14508    ULONG (STDMETHODCALLTYPE *Release)(
14509        IObjectWithCancelEvent *This);
14510
14511    /*** IObjectWithCancelEvent methods ***/
14512    HRESULT (STDMETHODCALLTYPE *GetCancelEvent)(
14513        IObjectWithCancelEvent *This,
14514        HANDLE *phEvent);
14515
14516    END_INTERFACE
14517} IObjectWithCancelEventVtbl;
14518
14519interface IObjectWithCancelEvent {
14520    CONST_VTBL IObjectWithCancelEventVtbl* lpVtbl;
14521};
14522
14523#ifdef COBJMACROS
14524#ifndef WIDL_C_INLINE_WRAPPERS
14525/*** IUnknown methods ***/
14526#define IObjectWithCancelEvent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14527#define IObjectWithCancelEvent_AddRef(This) (This)->lpVtbl->AddRef(This)
14528#define IObjectWithCancelEvent_Release(This) (This)->lpVtbl->Release(This)
14529/*** IObjectWithCancelEvent methods ***/
14530#define IObjectWithCancelEvent_GetCancelEvent(This,phEvent) (This)->lpVtbl->GetCancelEvent(This,phEvent)
14531#else
14532/*** IUnknown methods ***/
14533static inline HRESULT IObjectWithCancelEvent_QueryInterface(IObjectWithCancelEvent* This,REFIID riid,void **ppvObject) {
14534    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14535}
14536static inline ULONG IObjectWithCancelEvent_AddRef(IObjectWithCancelEvent* This) {
14537    return This->lpVtbl->AddRef(This);
14538}
14539static inline ULONG IObjectWithCancelEvent_Release(IObjectWithCancelEvent* This) {
14540    return This->lpVtbl->Release(This);
14541}
14542/*** IObjectWithCancelEvent methods ***/
14543static inline HRESULT IObjectWithCancelEvent_GetCancelEvent(IObjectWithCancelEvent* This,HANDLE *phEvent) {
14544    return This->lpVtbl->GetCancelEvent(This,phEvent);
14545}
14546#endif
14547#endif
14548
14549#endif
14550
14551
14552#endif  /* __IObjectWithCancelEvent_INTERFACE_DEFINED__ */
14553
14554
14555/*****************************************************************************
14556 * IUserNotification interface
14557 */
14558#ifndef __IUserNotification_INTERFACE_DEFINED__
14559#define __IUserNotification_INTERFACE_DEFINED__
14560
14561DEFINE_GUID(IID_IUserNotification, 0xba9711ba, 0x5893, 0x4787, 0xa7,0xe1, 0x41,0x27,0x71,0x51,0x55,0x0b);
14562#if defined(__cplusplus) && !defined(CINTERFACE)
14563MIDL_INTERFACE("ba9711ba-5893-4787-a7e1-41277151550b")
14564IUserNotification : public IUnknown
14565{
14566    virtual HRESULT STDMETHODCALLTYPE SetBalloonInfo(
14567        LPCWSTR pszTitle,
14568        LPCWSTR pszText,
14569        DWORD dwInfoFlags) = 0;
14570
14571    virtual HRESULT STDMETHODCALLTYPE SetBalloonRetry(
14572        DWORD dwShowTime,
14573        DWORD dwInterval,
14574        UINT cRetryCount) = 0;
14575
14576    virtual HRESULT STDMETHODCALLTYPE SetIconInfo(
14577        HICON hIcon,
14578        LPCWSTR pszToolTip) = 0;
14579
14580    virtual HRESULT STDMETHODCALLTYPE Show(
14581        IQueryContinue *pqc,
14582        DWORD dwContinuePollInterval) = 0;
14583
14584    virtual HRESULT STDMETHODCALLTYPE PlaySound(
14585        LPCWSTR pszSoundName) = 0;
14586
14587};
14588#ifdef __CRT_UUID_DECL
14589__CRT_UUID_DECL(IUserNotification, 0xba9711ba, 0x5893, 0x4787, 0xa7,0xe1, 0x41,0x27,0x71,0x51,0x55,0x0b)
14590#endif
14591#else
14592typedef struct IUserNotificationVtbl {
14593    BEGIN_INTERFACE
14594
14595    /*** IUnknown methods ***/
14596    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14597        IUserNotification *This,
14598        REFIID riid,
14599        void **ppvObject);
14600
14601    ULONG (STDMETHODCALLTYPE *AddRef)(
14602        IUserNotification *This);
14603
14604    ULONG (STDMETHODCALLTYPE *Release)(
14605        IUserNotification *This);
14606
14607    /*** IUserNotification methods ***/
14608    HRESULT (STDMETHODCALLTYPE *SetBalloonInfo)(
14609        IUserNotification *This,
14610        LPCWSTR pszTitle,
14611        LPCWSTR pszText,
14612        DWORD dwInfoFlags);
14613
14614    HRESULT (STDMETHODCALLTYPE *SetBalloonRetry)(
14615        IUserNotification *This,
14616        DWORD dwShowTime,
14617        DWORD dwInterval,
14618        UINT cRetryCount);
14619
14620    HRESULT (STDMETHODCALLTYPE *SetIconInfo)(
14621        IUserNotification *This,
14622        HICON hIcon,
14623        LPCWSTR pszToolTip);
14624
14625    HRESULT (STDMETHODCALLTYPE *Show)(
14626        IUserNotification *This,
14627        IQueryContinue *pqc,
14628        DWORD dwContinuePollInterval);
14629
14630    HRESULT (STDMETHODCALLTYPE *PlaySound)(
14631        IUserNotification *This,
14632        LPCWSTR pszSoundName);
14633
14634    END_INTERFACE
14635} IUserNotificationVtbl;
14636
14637interface IUserNotification {
14638    CONST_VTBL IUserNotificationVtbl* lpVtbl;
14639};
14640
14641#ifdef COBJMACROS
14642#ifndef WIDL_C_INLINE_WRAPPERS
14643/*** IUnknown methods ***/
14644#define IUserNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14645#define IUserNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
14646#define IUserNotification_Release(This) (This)->lpVtbl->Release(This)
14647/*** IUserNotification methods ***/
14648#define IUserNotification_SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags) (This)->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags)
14649#define IUserNotification_SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount) (This)->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount)
14650#define IUserNotification_SetIconInfo(This,hIcon,pszToolTip) (This)->lpVtbl->SetIconInfo(This,hIcon,pszToolTip)
14651#define IUserNotification_Show(This,pqc,dwContinuePollInterval) (This)->lpVtbl->Show(This,pqc,dwContinuePollInterval)
14652#define IUserNotification_PlaySound(This,pszSoundName) (This)->lpVtbl->PlaySound(This,pszSoundName)
14653#else
14654/*** IUnknown methods ***/
14655static inline HRESULT IUserNotification_QueryInterface(IUserNotification* This,REFIID riid,void **ppvObject) {
14656    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14657}
14658static inline ULONG IUserNotification_AddRef(IUserNotification* This) {
14659    return This->lpVtbl->AddRef(This);
14660}
14661static inline ULONG IUserNotification_Release(IUserNotification* This) {
14662    return This->lpVtbl->Release(This);
14663}
14664/*** IUserNotification methods ***/
14665static inline HRESULT IUserNotification_SetBalloonInfo(IUserNotification* This,LPCWSTR pszTitle,LPCWSTR pszText,DWORD dwInfoFlags) {
14666    return This->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags);
14667}
14668static inline HRESULT IUserNotification_SetBalloonRetry(IUserNotification* This,DWORD dwShowTime,DWORD dwInterval,UINT cRetryCount) {
14669    return This->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount);
14670}
14671static inline HRESULT IUserNotification_SetIconInfo(IUserNotification* This,HICON hIcon,LPCWSTR pszToolTip) {
14672    return This->lpVtbl->SetIconInfo(This,hIcon,pszToolTip);
14673}
14674static inline HRESULT IUserNotification_Show(IUserNotification* This,IQueryContinue *pqc,DWORD dwContinuePollInterval) {
14675    return This->lpVtbl->Show(This,pqc,dwContinuePollInterval);
14676}
14677static inline HRESULT IUserNotification_PlaySound(IUserNotification* This,LPCWSTR pszSoundName) {
14678    return This->lpVtbl->PlaySound(This,pszSoundName);
14679}
14680#endif
14681#endif
14682
14683#endif
14684
14685
14686#endif  /* __IUserNotification_INTERFACE_DEFINED__ */
14687
14688
14689/*****************************************************************************
14690 * IUserNotificationCallback interface
14691 */
14692#ifndef __IUserNotificationCallback_INTERFACE_DEFINED__
14693#define __IUserNotificationCallback_INTERFACE_DEFINED__
14694
14695DEFINE_GUID(IID_IUserNotificationCallback, 0x19108294, 0x0441, 0x4aff, 0x80,0x13, 0xfa,0x0a,0x73,0x0b,0x0b,0xea);
14696#if defined(__cplusplus) && !defined(CINTERFACE)
14697MIDL_INTERFACE("19108294-0441-4aff-8013-fa0a730b0bea")
14698IUserNotificationCallback : public IUnknown
14699{
14700    virtual HRESULT STDMETHODCALLTYPE OnBalloonUserClick(
14701        POINT *pt) = 0;
14702
14703    virtual HRESULT STDMETHODCALLTYPE OnLeftClick(
14704        POINT *pt) = 0;
14705
14706    virtual HRESULT STDMETHODCALLTYPE OnContextMenu(
14707        POINT *pt) = 0;
14708
14709};
14710#ifdef __CRT_UUID_DECL
14711__CRT_UUID_DECL(IUserNotificationCallback, 0x19108294, 0x0441, 0x4aff, 0x80,0x13, 0xfa,0x0a,0x73,0x0b,0x0b,0xea)
14712#endif
14713#else
14714typedef struct IUserNotificationCallbackVtbl {
14715    BEGIN_INTERFACE
14716
14717    /*** IUnknown methods ***/
14718    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14719        IUserNotificationCallback *This,
14720        REFIID riid,
14721        void **ppvObject);
14722
14723    ULONG (STDMETHODCALLTYPE *AddRef)(
14724        IUserNotificationCallback *This);
14725
14726    ULONG (STDMETHODCALLTYPE *Release)(
14727        IUserNotificationCallback *This);
14728
14729    /*** IUserNotificationCallback methods ***/
14730    HRESULT (STDMETHODCALLTYPE *OnBalloonUserClick)(
14731        IUserNotificationCallback *This,
14732        POINT *pt);
14733
14734    HRESULT (STDMETHODCALLTYPE *OnLeftClick)(
14735        IUserNotificationCallback *This,
14736        POINT *pt);
14737
14738    HRESULT (STDMETHODCALLTYPE *OnContextMenu)(
14739        IUserNotificationCallback *This,
14740        POINT *pt);
14741
14742    END_INTERFACE
14743} IUserNotificationCallbackVtbl;
14744
14745interface IUserNotificationCallback {
14746    CONST_VTBL IUserNotificationCallbackVtbl* lpVtbl;
14747};
14748
14749#ifdef COBJMACROS
14750#ifndef WIDL_C_INLINE_WRAPPERS
14751/*** IUnknown methods ***/
14752#define IUserNotificationCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14753#define IUserNotificationCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
14754#define IUserNotificationCallback_Release(This) (This)->lpVtbl->Release(This)
14755/*** IUserNotificationCallback methods ***/
14756#define IUserNotificationCallback_OnBalloonUserClick(This,pt) (This)->lpVtbl->OnBalloonUserClick(This,pt)
14757#define IUserNotificationCallback_OnLeftClick(This,pt) (This)->lpVtbl->OnLeftClick(This,pt)
14758#define IUserNotificationCallback_OnContextMenu(This,pt) (This)->lpVtbl->OnContextMenu(This,pt)
14759#else
14760/*** IUnknown methods ***/
14761static inline HRESULT IUserNotificationCallback_QueryInterface(IUserNotificationCallback* This,REFIID riid,void **ppvObject) {
14762    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14763}
14764static inline ULONG IUserNotificationCallback_AddRef(IUserNotificationCallback* This) {
14765    return This->lpVtbl->AddRef(This);
14766}
14767static inline ULONG IUserNotificationCallback_Release(IUserNotificationCallback* This) {
14768    return This->lpVtbl->Release(This);
14769}
14770/*** IUserNotificationCallback methods ***/
14771static inline HRESULT IUserNotificationCallback_OnBalloonUserClick(IUserNotificationCallback* This,POINT *pt) {
14772    return This->lpVtbl->OnBalloonUserClick(This,pt);
14773}
14774static inline HRESULT IUserNotificationCallback_OnLeftClick(IUserNotificationCallback* This,POINT *pt) {
14775    return This->lpVtbl->OnLeftClick(This,pt);
14776}
14777static inline HRESULT IUserNotificationCallback_OnContextMenu(IUserNotificationCallback* This,POINT *pt) {
14778    return This->lpVtbl->OnContextMenu(This,pt);
14779}
14780#endif
14781#endif
14782
14783#endif
14784
14785
14786#endif  /* __IUserNotificationCallback_INTERFACE_DEFINED__ */
14787
14788
14789/*****************************************************************************
14790 * IUserNotification2 interface
14791 */
14792#ifndef __IUserNotification2_INTERFACE_DEFINED__
14793#define __IUserNotification2_INTERFACE_DEFINED__
14794
14795DEFINE_GUID(IID_IUserNotification2, 0x215913cc, 0x57eb, 0x4fab, 0xab,0x5a, 0xe5,0xfa,0x7b,0xea,0x2a,0x6c);
14796#if defined(__cplusplus) && !defined(CINTERFACE)
14797MIDL_INTERFACE("215913cc-57eb-4fab-ab5a-e5fa7bea2a6c")
14798IUserNotification2 : public IUnknown
14799{
14800    virtual HRESULT STDMETHODCALLTYPE SetBalloonInfo(
14801        LPCWSTR pszTitle,
14802        LPCWSTR pszText,
14803        DWORD dwInfoFlags) = 0;
14804
14805    virtual HRESULT STDMETHODCALLTYPE SetBalloonRetry(
14806        DWORD dwShowTime,
14807        DWORD dwInterval,
14808        UINT cRetryCount) = 0;
14809
14810    virtual HRESULT STDMETHODCALLTYPE SetIconInfo(
14811        HICON hIcon,
14812        LPCWSTR pszToolTip) = 0;
14813
14814    virtual HRESULT STDMETHODCALLTYPE Show(
14815        IQueryContinue *pqc,
14816        DWORD dwContinuePollInterval,
14817        IUserNotificationCallback *pSink) = 0;
14818
14819    virtual HRESULT STDMETHODCALLTYPE PlaySound(
14820        LPCWSTR pszSoundName) = 0;
14821
14822};
14823#ifdef __CRT_UUID_DECL
14824__CRT_UUID_DECL(IUserNotification2, 0x215913cc, 0x57eb, 0x4fab, 0xab,0x5a, 0xe5,0xfa,0x7b,0xea,0x2a,0x6c)
14825#endif
14826#else
14827typedef struct IUserNotification2Vtbl {
14828    BEGIN_INTERFACE
14829
14830    /*** IUnknown methods ***/
14831    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14832        IUserNotification2 *This,
14833        REFIID riid,
14834        void **ppvObject);
14835
14836    ULONG (STDMETHODCALLTYPE *AddRef)(
14837        IUserNotification2 *This);
14838
14839    ULONG (STDMETHODCALLTYPE *Release)(
14840        IUserNotification2 *This);
14841
14842    /*** IUserNotification2 methods ***/
14843    HRESULT (STDMETHODCALLTYPE *SetBalloonInfo)(
14844        IUserNotification2 *This,
14845        LPCWSTR pszTitle,
14846        LPCWSTR pszText,
14847        DWORD dwInfoFlags);
14848
14849    HRESULT (STDMETHODCALLTYPE *SetBalloonRetry)(
14850        IUserNotification2 *This,
14851        DWORD dwShowTime,
14852        DWORD dwInterval,
14853        UINT cRetryCount);
14854
14855    HRESULT (STDMETHODCALLTYPE *SetIconInfo)(
14856        IUserNotification2 *This,
14857        HICON hIcon,
14858        LPCWSTR pszToolTip);
14859
14860    HRESULT (STDMETHODCALLTYPE *Show)(
14861        IUserNotification2 *This,
14862        IQueryContinue *pqc,
14863        DWORD dwContinuePollInterval,
14864        IUserNotificationCallback *pSink);
14865
14866    HRESULT (STDMETHODCALLTYPE *PlaySound)(
14867        IUserNotification2 *This,
14868        LPCWSTR pszSoundName);
14869
14870    END_INTERFACE
14871} IUserNotification2Vtbl;
14872
14873interface IUserNotification2 {
14874    CONST_VTBL IUserNotification2Vtbl* lpVtbl;
14875};
14876
14877#ifdef COBJMACROS
14878#ifndef WIDL_C_INLINE_WRAPPERS
14879/*** IUnknown methods ***/
14880#define IUserNotification2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14881#define IUserNotification2_AddRef(This) (This)->lpVtbl->AddRef(This)
14882#define IUserNotification2_Release(This) (This)->lpVtbl->Release(This)
14883/*** IUserNotification2 methods ***/
14884#define IUserNotification2_SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags) (This)->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags)
14885#define IUserNotification2_SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount) (This)->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount)
14886#define IUserNotification2_SetIconInfo(This,hIcon,pszToolTip) (This)->lpVtbl->SetIconInfo(This,hIcon,pszToolTip)
14887#define IUserNotification2_Show(This,pqc,dwContinuePollInterval,pSink) (This)->lpVtbl->Show(This,pqc,dwContinuePollInterval,pSink)
14888#define IUserNotification2_PlaySound(This,pszSoundName) (This)->lpVtbl->PlaySound(This,pszSoundName)
14889#else
14890/*** IUnknown methods ***/
14891static inline HRESULT IUserNotification2_QueryInterface(IUserNotification2* This,REFIID riid,void **ppvObject) {
14892    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14893}
14894static inline ULONG IUserNotification2_AddRef(IUserNotification2* This) {
14895    return This->lpVtbl->AddRef(This);
14896}
14897static inline ULONG IUserNotification2_Release(IUserNotification2* This) {
14898    return This->lpVtbl->Release(This);
14899}
14900/*** IUserNotification2 methods ***/
14901static inline HRESULT IUserNotification2_SetBalloonInfo(IUserNotification2* This,LPCWSTR pszTitle,LPCWSTR pszText,DWORD dwInfoFlags) {
14902    return This->lpVtbl->SetBalloonInfo(This,pszTitle,pszText,dwInfoFlags);
14903}
14904static inline HRESULT IUserNotification2_SetBalloonRetry(IUserNotification2* This,DWORD dwShowTime,DWORD dwInterval,UINT cRetryCount) {
14905    return This->lpVtbl->SetBalloonRetry(This,dwShowTime,dwInterval,cRetryCount);
14906}
14907static inline HRESULT IUserNotification2_SetIconInfo(IUserNotification2* This,HICON hIcon,LPCWSTR pszToolTip) {
14908    return This->lpVtbl->SetIconInfo(This,hIcon,pszToolTip);
14909}
14910static inline HRESULT IUserNotification2_Show(IUserNotification2* This,IQueryContinue *pqc,DWORD dwContinuePollInterval,IUserNotificationCallback *pSink) {
14911    return This->lpVtbl->Show(This,pqc,dwContinuePollInterval,pSink);
14912}
14913static inline HRESULT IUserNotification2_PlaySound(IUserNotification2* This,LPCWSTR pszSoundName) {
14914    return This->lpVtbl->PlaySound(This,pszSoundName);
14915}
14916#endif
14917#endif
14918
14919#endif
14920
14921
14922#endif  /* __IUserNotification2_INTERFACE_DEFINED__ */
14923
14924
14925/*****************************************************************************
14926 * IItemNameLimits interface
14927 */
14928#ifndef __IItemNameLimits_INTERFACE_DEFINED__
14929#define __IItemNameLimits_INTERFACE_DEFINED__
14930
14931DEFINE_GUID(IID_IItemNameLimits, 0x1df0d7f1, 0xb267, 0x4d28, 0x8b,0x10, 0x12,0xe2,0x32,0x02,0xa5,0xc4);
14932#if defined(__cplusplus) && !defined(CINTERFACE)
14933MIDL_INTERFACE("1df0d7f1-b267-4d28-8b10-12e23202a5c4")
14934IItemNameLimits : public IUnknown
14935{
14936    virtual HRESULT STDMETHODCALLTYPE GetValidCharacters(
14937        LPWSTR *ppwszValidChars,
14938        LPWSTR *ppwszInvalidChars) = 0;
14939
14940    virtual HRESULT STDMETHODCALLTYPE GetMaxLength(
14941        LPCWSTR pszName,
14942        int *piMaxNameLen) = 0;
14943
14944};
14945#ifdef __CRT_UUID_DECL
14946__CRT_UUID_DECL(IItemNameLimits, 0x1df0d7f1, 0xb267, 0x4d28, 0x8b,0x10, 0x12,0xe2,0x32,0x02,0xa5,0xc4)
14947#endif
14948#else
14949typedef struct IItemNameLimitsVtbl {
14950    BEGIN_INTERFACE
14951
14952    /*** IUnknown methods ***/
14953    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
14954        IItemNameLimits *This,
14955        REFIID riid,
14956        void **ppvObject);
14957
14958    ULONG (STDMETHODCALLTYPE *AddRef)(
14959        IItemNameLimits *This);
14960
14961    ULONG (STDMETHODCALLTYPE *Release)(
14962        IItemNameLimits *This);
14963
14964    /*** IItemNameLimits methods ***/
14965    HRESULT (STDMETHODCALLTYPE *GetValidCharacters)(
14966        IItemNameLimits *This,
14967        LPWSTR *ppwszValidChars,
14968        LPWSTR *ppwszInvalidChars);
14969
14970    HRESULT (STDMETHODCALLTYPE *GetMaxLength)(
14971        IItemNameLimits *This,
14972        LPCWSTR pszName,
14973        int *piMaxNameLen);
14974
14975    END_INTERFACE
14976} IItemNameLimitsVtbl;
14977
14978interface IItemNameLimits {
14979    CONST_VTBL IItemNameLimitsVtbl* lpVtbl;
14980};
14981
14982#ifdef COBJMACROS
14983#ifndef WIDL_C_INLINE_WRAPPERS
14984/*** IUnknown methods ***/
14985#define IItemNameLimits_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
14986#define IItemNameLimits_AddRef(This) (This)->lpVtbl->AddRef(This)
14987#define IItemNameLimits_Release(This) (This)->lpVtbl->Release(This)
14988/*** IItemNameLimits methods ***/
14989#define IItemNameLimits_GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars) (This)->lpVtbl->GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars)
14990#define IItemNameLimits_GetMaxLength(This,pszName,piMaxNameLen) (This)->lpVtbl->GetMaxLength(This,pszName,piMaxNameLen)
14991#else
14992/*** IUnknown methods ***/
14993static inline HRESULT IItemNameLimits_QueryInterface(IItemNameLimits* This,REFIID riid,void **ppvObject) {
14994    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
14995}
14996static inline ULONG IItemNameLimits_AddRef(IItemNameLimits* This) {
14997    return This->lpVtbl->AddRef(This);
14998}
14999static inline ULONG IItemNameLimits_Release(IItemNameLimits* This) {
15000    return This->lpVtbl->Release(This);
15001}
15002/*** IItemNameLimits methods ***/
15003static inline HRESULT IItemNameLimits_GetValidCharacters(IItemNameLimits* This,LPWSTR *ppwszValidChars,LPWSTR *ppwszInvalidChars) {
15004    return This->lpVtbl->GetValidCharacters(This,ppwszValidChars,ppwszInvalidChars);
15005}
15006static inline HRESULT IItemNameLimits_GetMaxLength(IItemNameLimits* This,LPCWSTR pszName,int *piMaxNameLen) {
15007    return This->lpVtbl->GetMaxLength(This,pszName,piMaxNameLen);
15008}
15009#endif
15010#endif
15011
15012#endif
15013
15014
15015#endif  /* __IItemNameLimits_INTERFACE_DEFINED__ */
15016
15017
15018#if NTDDI_VERSION >= NTDDI_VISTA
15019#ifndef __ICondition_FWD_DEFINED__
15020#define __ICondition_FWD_DEFINED__
15021typedef interface ICondition ICondition;
15022#ifdef __cplusplus
15023interface ICondition;
15024#endif /* __cplusplus */
15025#endif
15026
15027
15028/*****************************************************************************
15029 * ISearchFolderItemFactory interface
15030 */
15031#ifndef __ISearchFolderItemFactory_INTERFACE_DEFINED__
15032#define __ISearchFolderItemFactory_INTERFACE_DEFINED__
15033
15034DEFINE_GUID(IID_ISearchFolderItemFactory, 0xa0ffbc28, 0x5482, 0x4366, 0xbe,0x27, 0x3e,0x81,0xe7,0x8e,0x06,0xc2);
15035#if defined(__cplusplus) && !defined(CINTERFACE)
15036MIDL_INTERFACE("a0ffbc28-5482-4366-be27-3e81e78e06c2")
15037ISearchFolderItemFactory : public IUnknown
15038{
15039    virtual HRESULT STDMETHODCALLTYPE SetDisplayName(
15040        LPCWSTR pszDisplayName) = 0;
15041
15042    virtual HRESULT STDMETHODCALLTYPE SetFolderTypeID(
15043        FOLDERTYPEID ftid) = 0;
15044
15045    virtual HRESULT STDMETHODCALLTYPE SetFolderLogicalViewMode(
15046        FOLDERLOGICALVIEWMODE flvm) = 0;
15047
15048    virtual HRESULT STDMETHODCALLTYPE SetIconSize(
15049        int iIconSize) = 0;
15050
15051    virtual HRESULT STDMETHODCALLTYPE SetVisibleColumns(
15052        UINT cVisibleColumns,
15053        PROPERTYKEY *rgKey) = 0;
15054
15055    virtual HRESULT STDMETHODCALLTYPE SetSortColumns(
15056        UINT cSortColumns,
15057        SORTCOLUMN *rgSortColumns) = 0;
15058
15059    virtual HRESULT STDMETHODCALLTYPE SetGroupColumn(
15060        REFPROPERTYKEY keyGroup) = 0;
15061
15062    virtual HRESULT STDMETHODCALLTYPE SetStacks(
15063        UINT cStackKeys,
15064        PROPERTYKEY *rgStackKeys) = 0;
15065
15066    virtual HRESULT STDMETHODCALLTYPE SetScope(
15067        IShellItemArray *psiaScope) = 0;
15068
15069    virtual HRESULT STDMETHODCALLTYPE SetCondition(
15070        ICondition *pCondition) = 0;
15071
15072    virtual HRESULT STDMETHODCALLTYPE GetShellItem(
15073        REFIID riid,
15074        void **ppv) = 0;
15075
15076    virtual HRESULT STDMETHODCALLTYPE GetIDList(
15077        PIDLIST_ABSOLUTE *ppidl) = 0;
15078
15079};
15080#ifdef __CRT_UUID_DECL
15081__CRT_UUID_DECL(ISearchFolderItemFactory, 0xa0ffbc28, 0x5482, 0x4366, 0xbe,0x27, 0x3e,0x81,0xe7,0x8e,0x06,0xc2)
15082#endif
15083#else
15084typedef struct ISearchFolderItemFactoryVtbl {
15085    BEGIN_INTERFACE
15086
15087    /*** IUnknown methods ***/
15088    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15089        ISearchFolderItemFactory *This,
15090        REFIID riid,
15091        void **ppvObject);
15092
15093    ULONG (STDMETHODCALLTYPE *AddRef)(
15094        ISearchFolderItemFactory *This);
15095
15096    ULONG (STDMETHODCALLTYPE *Release)(
15097        ISearchFolderItemFactory *This);
15098
15099    /*** ISearchFolderItemFactory methods ***/
15100    HRESULT (STDMETHODCALLTYPE *SetDisplayName)(
15101        ISearchFolderItemFactory *This,
15102        LPCWSTR pszDisplayName);
15103
15104    HRESULT (STDMETHODCALLTYPE *SetFolderTypeID)(
15105        ISearchFolderItemFactory *This,
15106        FOLDERTYPEID ftid);
15107
15108    HRESULT (STDMETHODCALLTYPE *SetFolderLogicalViewMode)(
15109        ISearchFolderItemFactory *This,
15110        FOLDERLOGICALVIEWMODE flvm);
15111
15112    HRESULT (STDMETHODCALLTYPE *SetIconSize)(
15113        ISearchFolderItemFactory *This,
15114        int iIconSize);
15115
15116    HRESULT (STDMETHODCALLTYPE *SetVisibleColumns)(
15117        ISearchFolderItemFactory *This,
15118        UINT cVisibleColumns,
15119        PROPERTYKEY *rgKey);
15120
15121    HRESULT (STDMETHODCALLTYPE *SetSortColumns)(
15122        ISearchFolderItemFactory *This,
15123        UINT cSortColumns,
15124        SORTCOLUMN *rgSortColumns);
15125
15126    HRESULT (STDMETHODCALLTYPE *SetGroupColumn)(
15127        ISearchFolderItemFactory *This,
15128        REFPROPERTYKEY keyGroup);
15129
15130    HRESULT (STDMETHODCALLTYPE *SetStacks)(
15131        ISearchFolderItemFactory *This,
15132        UINT cStackKeys,
15133        PROPERTYKEY *rgStackKeys);
15134
15135    HRESULT (STDMETHODCALLTYPE *SetScope)(
15136        ISearchFolderItemFactory *This,
15137        IShellItemArray *psiaScope);
15138
15139    HRESULT (STDMETHODCALLTYPE *SetCondition)(
15140        ISearchFolderItemFactory *This,
15141        ICondition *pCondition);
15142
15143    HRESULT (STDMETHODCALLTYPE *GetShellItem)(
15144        ISearchFolderItemFactory *This,
15145        REFIID riid,
15146        void **ppv);
15147
15148    HRESULT (STDMETHODCALLTYPE *GetIDList)(
15149        ISearchFolderItemFactory *This,
15150        PIDLIST_ABSOLUTE *ppidl);
15151
15152    END_INTERFACE
15153} ISearchFolderItemFactoryVtbl;
15154
15155interface ISearchFolderItemFactory {
15156    CONST_VTBL ISearchFolderItemFactoryVtbl* lpVtbl;
15157};
15158
15159#ifdef COBJMACROS
15160#ifndef WIDL_C_INLINE_WRAPPERS
15161/*** IUnknown methods ***/
15162#define ISearchFolderItemFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15163#define ISearchFolderItemFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
15164#define ISearchFolderItemFactory_Release(This) (This)->lpVtbl->Release(This)
15165/*** ISearchFolderItemFactory methods ***/
15166#define ISearchFolderItemFactory_SetDisplayName(This,pszDisplayName) (This)->lpVtbl->SetDisplayName(This,pszDisplayName)
15167#define ISearchFolderItemFactory_SetFolderTypeID(This,ftid) (This)->lpVtbl->SetFolderTypeID(This,ftid)
15168#define ISearchFolderItemFactory_SetFolderLogicalViewMode(This,flvm) (This)->lpVtbl->SetFolderLogicalViewMode(This,flvm)
15169#define ISearchFolderItemFactory_SetIconSize(This,iIconSize) (This)->lpVtbl->SetIconSize(This,iIconSize)
15170#define ISearchFolderItemFactory_SetVisibleColumns(This,cVisibleColumns,rgKey) (This)->lpVtbl->SetVisibleColumns(This,cVisibleColumns,rgKey)
15171#define ISearchFolderItemFactory_SetSortColumns(This,cSortColumns,rgSortColumns) (This)->lpVtbl->SetSortColumns(This,cSortColumns,rgSortColumns)
15172#define ISearchFolderItemFactory_SetGroupColumn(This,keyGroup) (This)->lpVtbl->SetGroupColumn(This,keyGroup)
15173#define ISearchFolderItemFactory_SetStacks(This,cStackKeys,rgStackKeys) (This)->lpVtbl->SetStacks(This,cStackKeys,rgStackKeys)
15174#define ISearchFolderItemFactory_SetScope(This,psiaScope) (This)->lpVtbl->SetScope(This,psiaScope)
15175#define ISearchFolderItemFactory_SetCondition(This,pCondition) (This)->lpVtbl->SetCondition(This,pCondition)
15176#define ISearchFolderItemFactory_GetShellItem(This,riid,ppv) (This)->lpVtbl->GetShellItem(This,riid,ppv)
15177#define ISearchFolderItemFactory_GetIDList(This,ppidl) (This)->lpVtbl->GetIDList(This,ppidl)
15178#else
15179/*** IUnknown methods ***/
15180static inline HRESULT ISearchFolderItemFactory_QueryInterface(ISearchFolderItemFactory* This,REFIID riid,void **ppvObject) {
15181    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15182}
15183static inline ULONG ISearchFolderItemFactory_AddRef(ISearchFolderItemFactory* This) {
15184    return This->lpVtbl->AddRef(This);
15185}
15186static inline ULONG ISearchFolderItemFactory_Release(ISearchFolderItemFactory* This) {
15187    return This->lpVtbl->Release(This);
15188}
15189/*** ISearchFolderItemFactory methods ***/
15190static inline HRESULT ISearchFolderItemFactory_SetDisplayName(ISearchFolderItemFactory* This,LPCWSTR pszDisplayName) {
15191    return This->lpVtbl->SetDisplayName(This,pszDisplayName);
15192}
15193static inline HRESULT ISearchFolderItemFactory_SetFolderTypeID(ISearchFolderItemFactory* This,FOLDERTYPEID ftid) {
15194    return This->lpVtbl->SetFolderTypeID(This,ftid);
15195}
15196static inline HRESULT ISearchFolderItemFactory_SetFolderLogicalViewMode(ISearchFolderItemFactory* This,FOLDERLOGICALVIEWMODE flvm) {
15197    return This->lpVtbl->SetFolderLogicalViewMode(This,flvm);
15198}
15199static inline HRESULT ISearchFolderItemFactory_SetIconSize(ISearchFolderItemFactory* This,int iIconSize) {
15200    return This->lpVtbl->SetIconSize(This,iIconSize);
15201}
15202static inline HRESULT ISearchFolderItemFactory_SetVisibleColumns(ISearchFolderItemFactory* This,UINT cVisibleColumns,PROPERTYKEY *rgKey) {
15203    return This->lpVtbl->SetVisibleColumns(This,cVisibleColumns,rgKey);
15204}
15205static inline HRESULT ISearchFolderItemFactory_SetSortColumns(ISearchFolderItemFactory* This,UINT cSortColumns,SORTCOLUMN *rgSortColumns) {
15206    return This->lpVtbl->SetSortColumns(This,cSortColumns,rgSortColumns);
15207}
15208static inline HRESULT ISearchFolderItemFactory_SetGroupColumn(ISearchFolderItemFactory* This,REFPROPERTYKEY keyGroup) {
15209    return This->lpVtbl->SetGroupColumn(This,keyGroup);
15210}
15211static inline HRESULT ISearchFolderItemFactory_SetStacks(ISearchFolderItemFactory* This,UINT cStackKeys,PROPERTYKEY *rgStackKeys) {
15212    return This->lpVtbl->SetStacks(This,cStackKeys,rgStackKeys);
15213}
15214static inline HRESULT ISearchFolderItemFactory_SetScope(ISearchFolderItemFactory* This,IShellItemArray *psiaScope) {
15215    return This->lpVtbl->SetScope(This,psiaScope);
15216}
15217static inline HRESULT ISearchFolderItemFactory_SetCondition(ISearchFolderItemFactory* This,ICondition *pCondition) {
15218    return This->lpVtbl->SetCondition(This,pCondition);
15219}
15220static inline HRESULT ISearchFolderItemFactory_GetShellItem(ISearchFolderItemFactory* This,REFIID riid,void **ppv) {
15221    return This->lpVtbl->GetShellItem(This,riid,ppv);
15222}
15223static inline HRESULT ISearchFolderItemFactory_GetIDList(ISearchFolderItemFactory* This,PIDLIST_ABSOLUTE *ppidl) {
15224    return This->lpVtbl->GetIDList(This,ppidl);
15225}
15226#endif
15227#endif
15228
15229#endif
15230
15231
15232#endif  /* __ISearchFolderItemFactory_INTERFACE_DEFINED__ */
15233
15234#endif
15235
15236#define IEI_PRIORITY_MAX ITSAT_MAX_PRIORITY
15237#define IEI_PRIORITY_MIN ITSAT_MIN_PRIORITY
15238#define IEIT_PRIORITY_NORMAL ITSAT_DEFAULT_PRIORITY
15239
15240#define IEIFLAG_ASYNC 0x0001
15241#define IEIFLAG_CACHE 0x0002
15242#define IEIFLAG_ASPECT 0x0004
15243#define IEIFLAG_OFFLINE 0x0008
15244#define IEIFLAG_GLEAM 0x0010
15245#define IEIFLAG_SCREEN 0x0020
15246#define IEIFLAG_ORIGSIZE 0x0040
15247#define IEIFLAG_NOSTAMP 0x0080
15248#define IEIFLAG_NOBORDER 0x0100
15249#define IEIFLAG_QUALITY 0x0200
15250#define IEIFLAG_REFRESH 0x0400
15251
15252/*****************************************************************************
15253 * IExtractImage interface
15254 */
15255#ifndef __IExtractImage_INTERFACE_DEFINED__
15256#define __IExtractImage_INTERFACE_DEFINED__
15257
15258DEFINE_GUID(IID_IExtractImage, 0xbb2e617c, 0x0920, 0x11d1, 0x9a,0x0b, 0x00,0xc0,0x4f,0xc2,0xd6,0xc1);
15259#if defined(__cplusplus) && !defined(CINTERFACE)
15260MIDL_INTERFACE("bb2e617c-0920-11d1-9a0b-00c04fc2d6c1")
15261IExtractImage : public IUnknown
15262{
15263    virtual HRESULT STDMETHODCALLTYPE GetLocation(
15264        LPWSTR pszPathBuffer,
15265        DWORD cch,
15266        DWORD *pdwPriority,
15267        const SIZE *prgSize,
15268        DWORD dwRecClrDepth,
15269        DWORD *pdwFlags) = 0;
15270
15271    virtual HRESULT STDMETHODCALLTYPE Extract(
15272        HBITMAP *phBmpThumbnail) = 0;
15273
15274};
15275#ifdef __CRT_UUID_DECL
15276__CRT_UUID_DECL(IExtractImage, 0xbb2e617c, 0x0920, 0x11d1, 0x9a,0x0b, 0x00,0xc0,0x4f,0xc2,0xd6,0xc1)
15277#endif
15278#else
15279typedef struct IExtractImageVtbl {
15280    BEGIN_INTERFACE
15281
15282    /*** IUnknown methods ***/
15283    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15284        IExtractImage *This,
15285        REFIID riid,
15286        void **ppvObject);
15287
15288    ULONG (STDMETHODCALLTYPE *AddRef)(
15289        IExtractImage *This);
15290
15291    ULONG (STDMETHODCALLTYPE *Release)(
15292        IExtractImage *This);
15293
15294    /*** IExtractImage methods ***/
15295    HRESULT (STDMETHODCALLTYPE *GetLocation)(
15296        IExtractImage *This,
15297        LPWSTR pszPathBuffer,
15298        DWORD cch,
15299        DWORD *pdwPriority,
15300        const SIZE *prgSize,
15301        DWORD dwRecClrDepth,
15302        DWORD *pdwFlags);
15303
15304    HRESULT (STDMETHODCALLTYPE *Extract)(
15305        IExtractImage *This,
15306        HBITMAP *phBmpThumbnail);
15307
15308    END_INTERFACE
15309} IExtractImageVtbl;
15310
15311interface IExtractImage {
15312    CONST_VTBL IExtractImageVtbl* lpVtbl;
15313};
15314
15315#ifdef COBJMACROS
15316#ifndef WIDL_C_INLINE_WRAPPERS
15317/*** IUnknown methods ***/
15318#define IExtractImage_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15319#define IExtractImage_AddRef(This) (This)->lpVtbl->AddRef(This)
15320#define IExtractImage_Release(This) (This)->lpVtbl->Release(This)
15321/*** IExtractImage methods ***/
15322#define IExtractImage_GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags) (This)->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags)
15323#define IExtractImage_Extract(This,phBmpThumbnail) (This)->lpVtbl->Extract(This,phBmpThumbnail)
15324#else
15325/*** IUnknown methods ***/
15326static inline HRESULT IExtractImage_QueryInterface(IExtractImage* This,REFIID riid,void **ppvObject) {
15327    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15328}
15329static inline ULONG IExtractImage_AddRef(IExtractImage* This) {
15330    return This->lpVtbl->AddRef(This);
15331}
15332static inline ULONG IExtractImage_Release(IExtractImage* This) {
15333    return This->lpVtbl->Release(This);
15334}
15335/*** IExtractImage methods ***/
15336static inline HRESULT IExtractImage_GetLocation(IExtractImage* This,LPWSTR pszPathBuffer,DWORD cch,DWORD *pdwPriority,const SIZE *prgSize,DWORD dwRecClrDepth,DWORD *pdwFlags) {
15337    return This->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags);
15338}
15339static inline HRESULT IExtractImage_Extract(IExtractImage* This,HBITMAP *phBmpThumbnail) {
15340    return This->lpVtbl->Extract(This,phBmpThumbnail);
15341}
15342#endif
15343#endif
15344
15345#endif
15346
15347
15348#endif  /* __IExtractImage_INTERFACE_DEFINED__ */
15349
15350typedef IExtractImage *LPEXTRACTIMAGE;
15351
15352/*****************************************************************************
15353 * IExtractImage2 interface
15354 */
15355#ifndef __IExtractImage2_INTERFACE_DEFINED__
15356#define __IExtractImage2_INTERFACE_DEFINED__
15357
15358DEFINE_GUID(IID_IExtractImage2, 0x953bb1ee, 0x93b4, 0x11d1, 0x98,0xa3, 0x00,0xc0,0x4f,0xb6,0x87,0xda);
15359#if defined(__cplusplus) && !defined(CINTERFACE)
15360MIDL_INTERFACE("953bb1ee-93b4-11d1-98a3-00c04fb687da")
15361IExtractImage2 : public IExtractImage
15362{
15363    virtual HRESULT STDMETHODCALLTYPE GetDateStamp(
15364        FILETIME *pDateStamp) = 0;
15365
15366};
15367#ifdef __CRT_UUID_DECL
15368__CRT_UUID_DECL(IExtractImage2, 0x953bb1ee, 0x93b4, 0x11d1, 0x98,0xa3, 0x00,0xc0,0x4f,0xb6,0x87,0xda)
15369#endif
15370#else
15371typedef struct IExtractImage2Vtbl {
15372    BEGIN_INTERFACE
15373
15374    /*** IUnknown methods ***/
15375    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15376        IExtractImage2 *This,
15377        REFIID riid,
15378        void **ppvObject);
15379
15380    ULONG (STDMETHODCALLTYPE *AddRef)(
15381        IExtractImage2 *This);
15382
15383    ULONG (STDMETHODCALLTYPE *Release)(
15384        IExtractImage2 *This);
15385
15386    /*** IExtractImage methods ***/
15387    HRESULT (STDMETHODCALLTYPE *GetLocation)(
15388        IExtractImage2 *This,
15389        LPWSTR pszPathBuffer,
15390        DWORD cch,
15391        DWORD *pdwPriority,
15392        const SIZE *prgSize,
15393        DWORD dwRecClrDepth,
15394        DWORD *pdwFlags);
15395
15396    HRESULT (STDMETHODCALLTYPE *Extract)(
15397        IExtractImage2 *This,
15398        HBITMAP *phBmpThumbnail);
15399
15400    /*** IExtractImage2 methods ***/
15401    HRESULT (STDMETHODCALLTYPE *GetDateStamp)(
15402        IExtractImage2 *This,
15403        FILETIME *pDateStamp);
15404
15405    END_INTERFACE
15406} IExtractImage2Vtbl;
15407
15408interface IExtractImage2 {
15409    CONST_VTBL IExtractImage2Vtbl* lpVtbl;
15410};
15411
15412#ifdef COBJMACROS
15413#ifndef WIDL_C_INLINE_WRAPPERS
15414/*** IUnknown methods ***/
15415#define IExtractImage2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15416#define IExtractImage2_AddRef(This) (This)->lpVtbl->AddRef(This)
15417#define IExtractImage2_Release(This) (This)->lpVtbl->Release(This)
15418/*** IExtractImage methods ***/
15419#define IExtractImage2_GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags) (This)->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags)
15420#define IExtractImage2_Extract(This,phBmpThumbnail) (This)->lpVtbl->Extract(This,phBmpThumbnail)
15421/*** IExtractImage2 methods ***/
15422#define IExtractImage2_GetDateStamp(This,pDateStamp) (This)->lpVtbl->GetDateStamp(This,pDateStamp)
15423#else
15424/*** IUnknown methods ***/
15425static inline HRESULT IExtractImage2_QueryInterface(IExtractImage2* This,REFIID riid,void **ppvObject) {
15426    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15427}
15428static inline ULONG IExtractImage2_AddRef(IExtractImage2* This) {
15429    return This->lpVtbl->AddRef(This);
15430}
15431static inline ULONG IExtractImage2_Release(IExtractImage2* This) {
15432    return This->lpVtbl->Release(This);
15433}
15434/*** IExtractImage methods ***/
15435static inline HRESULT IExtractImage2_GetLocation(IExtractImage2* This,LPWSTR pszPathBuffer,DWORD cch,DWORD *pdwPriority,const SIZE *prgSize,DWORD dwRecClrDepth,DWORD *pdwFlags) {
15436    return This->lpVtbl->GetLocation(This,pszPathBuffer,cch,pdwPriority,prgSize,dwRecClrDepth,pdwFlags);
15437}
15438static inline HRESULT IExtractImage2_Extract(IExtractImage2* This,HBITMAP *phBmpThumbnail) {
15439    return This->lpVtbl->Extract(This,phBmpThumbnail);
15440}
15441/*** IExtractImage2 methods ***/
15442static inline HRESULT IExtractImage2_GetDateStamp(IExtractImage2* This,FILETIME *pDateStamp) {
15443    return This->lpVtbl->GetDateStamp(This,pDateStamp);
15444}
15445#endif
15446#endif
15447
15448#endif
15449
15450
15451#endif  /* __IExtractImage2_INTERFACE_DEFINED__ */
15452
15453typedef IExtractImage2 *LPEXTRACTIMAGE2;
15454
15455/*****************************************************************************
15456 * IThumbnailHandlerFactory interface
15457 */
15458#ifndef __IThumbnailHandlerFactory_INTERFACE_DEFINED__
15459#define __IThumbnailHandlerFactory_INTERFACE_DEFINED__
15460
15461DEFINE_GUID(IID_IThumbnailHandlerFactory, 0xe35b4b2e, 0x00da, 0x4bc1, 0x9f,0x13, 0x38,0xbc,0x11,0xf5,0xd4,0x17);
15462#if defined(__cplusplus) && !defined(CINTERFACE)
15463MIDL_INTERFACE("e35b4b2e-00da-4bc1-9f13-38bc11f5d417")
15464IThumbnailHandlerFactory : public IUnknown
15465{
15466    virtual HRESULT STDMETHODCALLTYPE GetThumbnailHandler(
15467        PCUITEMID_CHILD pidlChild,
15468        IBindCtx *pbc,
15469        REFIID riid,
15470        void **ppv) = 0;
15471
15472};
15473#ifdef __CRT_UUID_DECL
15474__CRT_UUID_DECL(IThumbnailHandlerFactory, 0xe35b4b2e, 0x00da, 0x4bc1, 0x9f,0x13, 0x38,0xbc,0x11,0xf5,0xd4,0x17)
15475#endif
15476#else
15477typedef struct IThumbnailHandlerFactoryVtbl {
15478    BEGIN_INTERFACE
15479
15480    /*** IUnknown methods ***/
15481    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15482        IThumbnailHandlerFactory *This,
15483        REFIID riid,
15484        void **ppvObject);
15485
15486    ULONG (STDMETHODCALLTYPE *AddRef)(
15487        IThumbnailHandlerFactory *This);
15488
15489    ULONG (STDMETHODCALLTYPE *Release)(
15490        IThumbnailHandlerFactory *This);
15491
15492    /*** IThumbnailHandlerFactory methods ***/
15493    HRESULT (STDMETHODCALLTYPE *GetThumbnailHandler)(
15494        IThumbnailHandlerFactory *This,
15495        PCUITEMID_CHILD pidlChild,
15496        IBindCtx *pbc,
15497        REFIID riid,
15498        void **ppv);
15499
15500    END_INTERFACE
15501} IThumbnailHandlerFactoryVtbl;
15502
15503interface IThumbnailHandlerFactory {
15504    CONST_VTBL IThumbnailHandlerFactoryVtbl* lpVtbl;
15505};
15506
15507#ifdef COBJMACROS
15508#ifndef WIDL_C_INLINE_WRAPPERS
15509/*** IUnknown methods ***/
15510#define IThumbnailHandlerFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15511#define IThumbnailHandlerFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
15512#define IThumbnailHandlerFactory_Release(This) (This)->lpVtbl->Release(This)
15513/*** IThumbnailHandlerFactory methods ***/
15514#define IThumbnailHandlerFactory_GetThumbnailHandler(This,pidlChild,pbc,riid,ppv) (This)->lpVtbl->GetThumbnailHandler(This,pidlChild,pbc,riid,ppv)
15515#else
15516/*** IUnknown methods ***/
15517static inline HRESULT IThumbnailHandlerFactory_QueryInterface(IThumbnailHandlerFactory* This,REFIID riid,void **ppvObject) {
15518    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15519}
15520static inline ULONG IThumbnailHandlerFactory_AddRef(IThumbnailHandlerFactory* This) {
15521    return This->lpVtbl->AddRef(This);
15522}
15523static inline ULONG IThumbnailHandlerFactory_Release(IThumbnailHandlerFactory* This) {
15524    return This->lpVtbl->Release(This);
15525}
15526/*** IThumbnailHandlerFactory methods ***/
15527static inline HRESULT IThumbnailHandlerFactory_GetThumbnailHandler(IThumbnailHandlerFactory* This,PCUITEMID_CHILD pidlChild,IBindCtx *pbc,REFIID riid,void **ppv) {
15528    return This->lpVtbl->GetThumbnailHandler(This,pidlChild,pbc,riid,ppv);
15529}
15530#endif
15531#endif
15532
15533#endif
15534
15535
15536#endif  /* __IThumbnailHandlerFactory_INTERFACE_DEFINED__ */
15537
15538
15539/*****************************************************************************
15540 * IParentAndItem interface
15541 */
15542#ifndef __IParentAndItem_INTERFACE_DEFINED__
15543#define __IParentAndItem_INTERFACE_DEFINED__
15544
15545DEFINE_GUID(IID_IParentAndItem, 0xb3a4b685, 0xb685, 0x4805, 0x99,0xd9, 0x5d,0xea,0xd2,0x87,0x32,0x36);
15546#if defined(__cplusplus) && !defined(CINTERFACE)
15547MIDL_INTERFACE("b3a4b685-b685-4805-99d9-5dead2873236")
15548IParentAndItem : public IUnknown
15549{
15550    virtual HRESULT STDMETHODCALLTYPE SetParentAndItem(
15551        PCIDLIST_ABSOLUTE pidlParent,
15552        IShellFolder *psf,
15553        PCUITEMID_CHILD pidlChild) = 0;
15554
15555    virtual HRESULT STDMETHODCALLTYPE GetParentAndItem(
15556        PIDLIST_ABSOLUTE *ppidlParent,
15557        IShellFolder **ppsf,
15558        PITEMID_CHILD *ppidlChild) = 0;
15559
15560};
15561#ifdef __CRT_UUID_DECL
15562__CRT_UUID_DECL(IParentAndItem, 0xb3a4b685, 0xb685, 0x4805, 0x99,0xd9, 0x5d,0xea,0xd2,0x87,0x32,0x36)
15563#endif
15564#else
15565typedef struct IParentAndItemVtbl {
15566    BEGIN_INTERFACE
15567
15568    /*** IUnknown methods ***/
15569    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15570        IParentAndItem *This,
15571        REFIID riid,
15572        void **ppvObject);
15573
15574    ULONG (STDMETHODCALLTYPE *AddRef)(
15575        IParentAndItem *This);
15576
15577    ULONG (STDMETHODCALLTYPE *Release)(
15578        IParentAndItem *This);
15579
15580    /*** IParentAndItem methods ***/
15581    HRESULT (STDMETHODCALLTYPE *SetParentAndItem)(
15582        IParentAndItem *This,
15583        PCIDLIST_ABSOLUTE pidlParent,
15584        IShellFolder *psf,
15585        PCUITEMID_CHILD pidlChild);
15586
15587    HRESULT (STDMETHODCALLTYPE *GetParentAndItem)(
15588        IParentAndItem *This,
15589        PIDLIST_ABSOLUTE *ppidlParent,
15590        IShellFolder **ppsf,
15591        PITEMID_CHILD *ppidlChild);
15592
15593    END_INTERFACE
15594} IParentAndItemVtbl;
15595
15596interface IParentAndItem {
15597    CONST_VTBL IParentAndItemVtbl* lpVtbl;
15598};
15599
15600#ifdef COBJMACROS
15601#ifndef WIDL_C_INLINE_WRAPPERS
15602/*** IUnknown methods ***/
15603#define IParentAndItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15604#define IParentAndItem_AddRef(This) (This)->lpVtbl->AddRef(This)
15605#define IParentAndItem_Release(This) (This)->lpVtbl->Release(This)
15606/*** IParentAndItem methods ***/
15607#define IParentAndItem_SetParentAndItem(This,pidlParent,psf,pidlChild) (This)->lpVtbl->SetParentAndItem(This,pidlParent,psf,pidlChild)
15608#define IParentAndItem_GetParentAndItem(This,ppidlParent,ppsf,ppidlChild) (This)->lpVtbl->GetParentAndItem(This,ppidlParent,ppsf,ppidlChild)
15609#else
15610/*** IUnknown methods ***/
15611static inline HRESULT IParentAndItem_QueryInterface(IParentAndItem* This,REFIID riid,void **ppvObject) {
15612    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15613}
15614static inline ULONG IParentAndItem_AddRef(IParentAndItem* This) {
15615    return This->lpVtbl->AddRef(This);
15616}
15617static inline ULONG IParentAndItem_Release(IParentAndItem* This) {
15618    return This->lpVtbl->Release(This);
15619}
15620/*** IParentAndItem methods ***/
15621static inline HRESULT IParentAndItem_SetParentAndItem(IParentAndItem* This,PCIDLIST_ABSOLUTE pidlParent,IShellFolder *psf,PCUITEMID_CHILD pidlChild) {
15622    return This->lpVtbl->SetParentAndItem(This,pidlParent,psf,pidlChild);
15623}
15624static inline HRESULT IParentAndItem_GetParentAndItem(IParentAndItem* This,PIDLIST_ABSOLUTE *ppidlParent,IShellFolder **ppsf,PITEMID_CHILD *ppidlChild) {
15625    return This->lpVtbl->GetParentAndItem(This,ppidlParent,ppsf,ppidlChild);
15626}
15627#endif
15628#endif
15629
15630#endif
15631
15632HRESULT STDMETHODCALLTYPE IParentAndItem_RemoteGetParentAndItem_Proxy(
15633    IParentAndItem* This,
15634    PIDLIST_ABSOLUTE *ppidlParent,
15635    IShellFolder **ppsf,
15636    PITEMID_CHILD *ppidlChild);
15637void __RPC_STUB IParentAndItem_RemoteGetParentAndItem_Stub(
15638    IRpcStubBuffer* This,
15639    IRpcChannelBuffer* pRpcChannelBuffer,
15640    PRPC_MESSAGE pRpcMessage,
15641    DWORD* pdwStubPhase);
15642HRESULT CALLBACK IParentAndItem_GetParentAndItem_Proxy(
15643    IParentAndItem* This,
15644    PIDLIST_ABSOLUTE *ppidlParent,
15645    IShellFolder **ppsf,
15646    PITEMID_CHILD *ppidlChild);
15647HRESULT __RPC_STUB IParentAndItem_GetParentAndItem_Stub(
15648    IParentAndItem* This,
15649    PIDLIST_ABSOLUTE *ppidlParent,
15650    IShellFolder **ppsf,
15651    PITEMID_CHILD *ppidlChild);
15652
15653#endif  /* __IParentAndItem_INTERFACE_DEFINED__ */
15654
15655
15656/*****************************************************************************
15657 * IDockingWindow interface
15658 */
15659#ifndef __IDockingWindow_INTERFACE_DEFINED__
15660#define __IDockingWindow_INTERFACE_DEFINED__
15661
15662DEFINE_GUID(IID_IDockingWindow, 0x012dd920, 0x7b26, 0x11d0, 0x8c,0xa9, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8);
15663#if defined(__cplusplus) && !defined(CINTERFACE)
15664MIDL_INTERFACE("012dd920-7b26-11d0-8ca9-00a0c92dbfe8")
15665IDockingWindow : public IOleWindow
15666{
15667    virtual HRESULT STDMETHODCALLTYPE ShowDW(
15668        WINBOOL fShow) = 0;
15669
15670    virtual HRESULT STDMETHODCALLTYPE CloseDW(
15671        DWORD dwReserved) = 0;
15672
15673    virtual HRESULT STDMETHODCALLTYPE ResizeBorderDW(
15674        LPCRECT prcBorder,
15675        IUnknown *punkToolbarSite,
15676        WINBOOL fReserved) = 0;
15677
15678};
15679#ifdef __CRT_UUID_DECL
15680__CRT_UUID_DECL(IDockingWindow, 0x012dd920, 0x7b26, 0x11d0, 0x8c,0xa9, 0x00,0xa0,0xc9,0x2d,0xbf,0xe8)
15681#endif
15682#else
15683typedef struct IDockingWindowVtbl {
15684    BEGIN_INTERFACE
15685
15686    /*** IUnknown methods ***/
15687    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15688        IDockingWindow *This,
15689        REFIID riid,
15690        void **ppvObject);
15691
15692    ULONG (STDMETHODCALLTYPE *AddRef)(
15693        IDockingWindow *This);
15694
15695    ULONG (STDMETHODCALLTYPE *Release)(
15696        IDockingWindow *This);
15697
15698    /*** IOleWindow methods ***/
15699    HRESULT (STDMETHODCALLTYPE *GetWindow)(
15700        IDockingWindow *This,
15701        HWND *phwnd);
15702
15703    HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
15704        IDockingWindow *This,
15705        WINBOOL fEnterMode);
15706
15707    /*** IDockingWindow methods ***/
15708    HRESULT (STDMETHODCALLTYPE *ShowDW)(
15709        IDockingWindow *This,
15710        WINBOOL fShow);
15711
15712    HRESULT (STDMETHODCALLTYPE *CloseDW)(
15713        IDockingWindow *This,
15714        DWORD dwReserved);
15715
15716    HRESULT (STDMETHODCALLTYPE *ResizeBorderDW)(
15717        IDockingWindow *This,
15718        LPCRECT prcBorder,
15719        IUnknown *punkToolbarSite,
15720        WINBOOL fReserved);
15721
15722    END_INTERFACE
15723} IDockingWindowVtbl;
15724
15725interface IDockingWindow {
15726    CONST_VTBL IDockingWindowVtbl* lpVtbl;
15727};
15728
15729#ifdef COBJMACROS
15730#ifndef WIDL_C_INLINE_WRAPPERS
15731/*** IUnknown methods ***/
15732#define IDockingWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15733#define IDockingWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
15734#define IDockingWindow_Release(This) (This)->lpVtbl->Release(This)
15735/*** IOleWindow methods ***/
15736#define IDockingWindow_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
15737#define IDockingWindow_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
15738/*** IDockingWindow methods ***/
15739#define IDockingWindow_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
15740#define IDockingWindow_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
15741#define IDockingWindow_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
15742#else
15743/*** IUnknown methods ***/
15744static inline HRESULT IDockingWindow_QueryInterface(IDockingWindow* This,REFIID riid,void **ppvObject) {
15745    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15746}
15747static inline ULONG IDockingWindow_AddRef(IDockingWindow* This) {
15748    return This->lpVtbl->AddRef(This);
15749}
15750static inline ULONG IDockingWindow_Release(IDockingWindow* This) {
15751    return This->lpVtbl->Release(This);
15752}
15753/*** IOleWindow methods ***/
15754static inline HRESULT IDockingWindow_GetWindow(IDockingWindow* This,HWND *phwnd) {
15755    return This->lpVtbl->GetWindow(This,phwnd);
15756}
15757static inline HRESULT IDockingWindow_ContextSensitiveHelp(IDockingWindow* This,WINBOOL fEnterMode) {
15758    return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
15759}
15760/*** IDockingWindow methods ***/
15761static inline HRESULT IDockingWindow_ShowDW(IDockingWindow* This,WINBOOL fShow) {
15762    return This->lpVtbl->ShowDW(This,fShow);
15763}
15764static inline HRESULT IDockingWindow_CloseDW(IDockingWindow* This,DWORD dwReserved) {
15765    return This->lpVtbl->CloseDW(This,dwReserved);
15766}
15767static inline HRESULT IDockingWindow_ResizeBorderDW(IDockingWindow* This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved) {
15768    return This->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved);
15769}
15770#endif
15771#endif
15772
15773#endif
15774
15775
15776#endif  /* __IDockingWindow_INTERFACE_DEFINED__ */
15777
15778
15779#define DBIM_MINSIZE 0x0001
15780#define DBIM_MAXSIZE 0x0002
15781#define DBIM_INTEGRAL 0x0004
15782#define DBIM_ACTUAL 0x0008
15783#define DBIM_TITLE 0x0010
15784#define DBIM_MODEFLAGS 0x0020
15785#define DBIM_BKCOLOR 0x0040
15786
15787#include <pshpack8.h>
15788typedef struct DESKBANDINFO {
15789    DWORD dwMask;
15790    POINTL ptMinSize;
15791    POINTL ptMaxSize;
15792    POINTL ptIntegral;
15793    POINTL ptActual;
15794    WCHAR wszTitle[256];
15795    DWORD dwModeFlags;
15796    COLORREF crBkgnd;
15797} DESKBANDINFO;
15798#include <poppack.h>
15799
15800#define DBIMF_NORMAL 0x0000
15801#define DBIMF_FIXED 0x0001
15802#define DBIMF_FIXEDBMP 0x0004
15803#define DBIMF_VARIABLEHEIGHT 0x0008
15804#define DBIMF_UNDELETEABLE 0x0010
15805#define DBIMF_DEBOSSED 0x0020
15806#define DBIMF_BKCOLOR 0x0040
15807#define DBIMF_USECHEVRON 0x0080
15808#define DBIMF_BREAK 0x0100
15809#define DBIMF_ADDTOFRONT 0x0200
15810#define DBIMF_TOPALIGN 0x0400
15811#if NTDDI_VERSION >= NTDDI_VISTA
15812#define DBIMF_NOGRIPPER 0x0800
15813#define DBIMF_ALWAYSGRIPPER 0x1000
15814#define DBIMF_NOMARGINS 0x2000
15815#endif
15816
15817#define DBIF_VIEWMODE_NORMAL 0x0000
15818#define DBIF_VIEWMODE_VERTICAL 0x0001
15819#define DBIF_VIEWMODE_FLOATING 0x0002
15820#define DBIF_VIEWMODE_TRANSPARENT 0x0004
15821
15822enum tagDESKBANDCID {
15823    DBID_BANDINFOCHANGED = 0,
15824    DBID_SHOWONLY = 1,
15825    DBID_MAXIMIZEBAND = 2,
15826    DBID_PUSHCHEVRON = 3,
15827    DBID_DELAYINIT = 4,
15828    DBID_FINISHINIT = 5,
15829    DBID_SETWINDOWTHEME = 6,
15830    DBID_PERMITAUTOHIDE = 7
15831};
15832
15833#define DBPC_SELECTFIRST    (DWORD)-1
15834#define DBPC_SELECTLAST     (DWORD)-2
15835
15836#define CGID_DeskBand IID_IDeskBand
15837
15838/*****************************************************************************
15839 * IDeskBand interface
15840 */
15841#ifndef __IDeskBand_INTERFACE_DEFINED__
15842#define __IDeskBand_INTERFACE_DEFINED__
15843
15844DEFINE_GUID(IID_IDeskBand, 0xeb0fe172, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac);
15845#if defined(__cplusplus) && !defined(CINTERFACE)
15846MIDL_INTERFACE("eb0fe172-1a3a-11d0-89b3-00a0c90a90ac")
15847IDeskBand : public IDockingWindow
15848{
15849    virtual HRESULT STDMETHODCALLTYPE GetBandInfo(
15850        DWORD dwBandID,
15851        DWORD dwViewMode,
15852        DESKBANDINFO *pdbi) = 0;
15853
15854};
15855#ifdef __CRT_UUID_DECL
15856__CRT_UUID_DECL(IDeskBand, 0xeb0fe172, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac)
15857#endif
15858#else
15859typedef struct IDeskBandVtbl {
15860    BEGIN_INTERFACE
15861
15862    /*** IUnknown methods ***/
15863    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15864        IDeskBand *This,
15865        REFIID riid,
15866        void **ppvObject);
15867
15868    ULONG (STDMETHODCALLTYPE *AddRef)(
15869        IDeskBand *This);
15870
15871    ULONG (STDMETHODCALLTYPE *Release)(
15872        IDeskBand *This);
15873
15874    /*** IOleWindow methods ***/
15875    HRESULT (STDMETHODCALLTYPE *GetWindow)(
15876        IDeskBand *This,
15877        HWND *phwnd);
15878
15879    HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
15880        IDeskBand *This,
15881        WINBOOL fEnterMode);
15882
15883    /*** IDockingWindow methods ***/
15884    HRESULT (STDMETHODCALLTYPE *ShowDW)(
15885        IDeskBand *This,
15886        WINBOOL fShow);
15887
15888    HRESULT (STDMETHODCALLTYPE *CloseDW)(
15889        IDeskBand *This,
15890        DWORD dwReserved);
15891
15892    HRESULT (STDMETHODCALLTYPE *ResizeBorderDW)(
15893        IDeskBand *This,
15894        LPCRECT prcBorder,
15895        IUnknown *punkToolbarSite,
15896        WINBOOL fReserved);
15897
15898    /*** IDeskBand methods ***/
15899    HRESULT (STDMETHODCALLTYPE *GetBandInfo)(
15900        IDeskBand *This,
15901        DWORD dwBandID,
15902        DWORD dwViewMode,
15903        DESKBANDINFO *pdbi);
15904
15905    END_INTERFACE
15906} IDeskBandVtbl;
15907
15908interface IDeskBand {
15909    CONST_VTBL IDeskBandVtbl* lpVtbl;
15910};
15911
15912#ifdef COBJMACROS
15913#ifndef WIDL_C_INLINE_WRAPPERS
15914/*** IUnknown methods ***/
15915#define IDeskBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
15916#define IDeskBand_AddRef(This) (This)->lpVtbl->AddRef(This)
15917#define IDeskBand_Release(This) (This)->lpVtbl->Release(This)
15918/*** IOleWindow methods ***/
15919#define IDeskBand_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
15920#define IDeskBand_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
15921/*** IDockingWindow methods ***/
15922#define IDeskBand_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
15923#define IDeskBand_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
15924#define IDeskBand_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
15925/*** IDeskBand methods ***/
15926#define IDeskBand_GetBandInfo(This,dwBandID,dwViewMode,pdbi) (This)->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi)
15927#else
15928/*** IUnknown methods ***/
15929static inline HRESULT IDeskBand_QueryInterface(IDeskBand* This,REFIID riid,void **ppvObject) {
15930    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
15931}
15932static inline ULONG IDeskBand_AddRef(IDeskBand* This) {
15933    return This->lpVtbl->AddRef(This);
15934}
15935static inline ULONG IDeskBand_Release(IDeskBand* This) {
15936    return This->lpVtbl->Release(This);
15937}
15938/*** IOleWindow methods ***/
15939static inline HRESULT IDeskBand_GetWindow(IDeskBand* This,HWND *phwnd) {
15940    return This->lpVtbl->GetWindow(This,phwnd);
15941}
15942static inline HRESULT IDeskBand_ContextSensitiveHelp(IDeskBand* This,WINBOOL fEnterMode) {
15943    return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
15944}
15945/*** IDockingWindow methods ***/
15946static inline HRESULT IDeskBand_ShowDW(IDeskBand* This,WINBOOL fShow) {
15947    return This->lpVtbl->ShowDW(This,fShow);
15948}
15949static inline HRESULT IDeskBand_CloseDW(IDeskBand* This,DWORD dwReserved) {
15950    return This->lpVtbl->CloseDW(This,dwReserved);
15951}
15952static inline HRESULT IDeskBand_ResizeBorderDW(IDeskBand* This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved) {
15953    return This->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved);
15954}
15955/*** IDeskBand methods ***/
15956static inline HRESULT IDeskBand_GetBandInfo(IDeskBand* This,DWORD dwBandID,DWORD dwViewMode,DESKBANDINFO *pdbi) {
15957    return This->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi);
15958}
15959#endif
15960#endif
15961
15962#endif
15963
15964
15965#endif  /* __IDeskBand_INTERFACE_DEFINED__ */
15966
15967
15968#if NTDDI_VERSION >= NTDDI_VISTA
15969/*****************************************************************************
15970 * IDeskBandInfo interface
15971 */
15972#ifndef __IDeskBandInfo_INTERFACE_DEFINED__
15973#define __IDeskBandInfo_INTERFACE_DEFINED__
15974
15975DEFINE_GUID(IID_IDeskBandInfo, 0x77e425fc, 0xcbf9, 0x4307, 0xba,0x6a, 0xbb,0x57,0x27,0x74,0x56,0x61);
15976#if defined(__cplusplus) && !defined(CINTERFACE)
15977MIDL_INTERFACE("77e425fc-cbf9-4307-ba6a-bb5727745661")
15978IDeskBandInfo : public IUnknown
15979{
15980    virtual HRESULT STDMETHODCALLTYPE GetDefaultBandWidth(
15981        DWORD dwBandID,
15982        DWORD dwViewMode,
15983        int *pnWidth) = 0;
15984
15985};
15986#ifdef __CRT_UUID_DECL
15987__CRT_UUID_DECL(IDeskBandInfo, 0x77e425fc, 0xcbf9, 0x4307, 0xba,0x6a, 0xbb,0x57,0x27,0x74,0x56,0x61)
15988#endif
15989#else
15990typedef struct IDeskBandInfoVtbl {
15991    BEGIN_INTERFACE
15992
15993    /*** IUnknown methods ***/
15994    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
15995        IDeskBandInfo *This,
15996        REFIID riid,
15997        void **ppvObject);
15998
15999    ULONG (STDMETHODCALLTYPE *AddRef)(
16000        IDeskBandInfo *This);
16001
16002    ULONG (STDMETHODCALLTYPE *Release)(
16003        IDeskBandInfo *This);
16004
16005    /*** IDeskBandInfo methods ***/
16006    HRESULT (STDMETHODCALLTYPE *GetDefaultBandWidth)(
16007        IDeskBandInfo *This,
16008        DWORD dwBandID,
16009        DWORD dwViewMode,
16010        int *pnWidth);
16011
16012    END_INTERFACE
16013} IDeskBandInfoVtbl;
16014
16015interface IDeskBandInfo {
16016    CONST_VTBL IDeskBandInfoVtbl* lpVtbl;
16017};
16018
16019#ifdef COBJMACROS
16020#ifndef WIDL_C_INLINE_WRAPPERS
16021/*** IUnknown methods ***/
16022#define IDeskBandInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16023#define IDeskBandInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
16024#define IDeskBandInfo_Release(This) (This)->lpVtbl->Release(This)
16025/*** IDeskBandInfo methods ***/
16026#define IDeskBandInfo_GetDefaultBandWidth(This,dwBandID,dwViewMode,pnWidth) (This)->lpVtbl->GetDefaultBandWidth(This,dwBandID,dwViewMode,pnWidth)
16027#else
16028/*** IUnknown methods ***/
16029static inline HRESULT IDeskBandInfo_QueryInterface(IDeskBandInfo* This,REFIID riid,void **ppvObject) {
16030    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16031}
16032static inline ULONG IDeskBandInfo_AddRef(IDeskBandInfo* This) {
16033    return This->lpVtbl->AddRef(This);
16034}
16035static inline ULONG IDeskBandInfo_Release(IDeskBandInfo* This) {
16036    return This->lpVtbl->Release(This);
16037}
16038/*** IDeskBandInfo methods ***/
16039static inline HRESULT IDeskBandInfo_GetDefaultBandWidth(IDeskBandInfo* This,DWORD dwBandID,DWORD dwViewMode,int *pnWidth) {
16040    return This->lpVtbl->GetDefaultBandWidth(This,dwBandID,dwViewMode,pnWidth);
16041}
16042#endif
16043#endif
16044
16045#endif
16046
16047
16048#endif  /* __IDeskBandInfo_INTERFACE_DEFINED__ */
16049
16050
16051/*****************************************************************************
16052 * IDeskBand2 interface
16053 */
16054#ifndef __IDeskBand2_INTERFACE_DEFINED__
16055#define __IDeskBand2_INTERFACE_DEFINED__
16056
16057DEFINE_GUID(IID_IDeskBand2, 0x79d16de4, 0xabee, 0x4021, 0x8d,0x9d, 0x91,0x69,0xb2,0x61,0xd6,0x57);
16058#if defined(__cplusplus) && !defined(CINTERFACE)
16059MIDL_INTERFACE("79d16de4-abee-4021-8d9d-9169b261d657")
16060IDeskBand2 : public IDeskBand
16061{
16062    virtual HRESULT STDMETHODCALLTYPE CanRenderComposited(
16063        WINBOOL *pfCanRenderComposited) = 0;
16064
16065    virtual HRESULT STDMETHODCALLTYPE SetCompositionState(
16066        WINBOOL fCompositionEnabled) = 0;
16067
16068    virtual HRESULT STDMETHODCALLTYPE GetCompositionState(
16069        WINBOOL *pfCompositionEnabled) = 0;
16070
16071};
16072#ifdef __CRT_UUID_DECL
16073__CRT_UUID_DECL(IDeskBand2, 0x79d16de4, 0xabee, 0x4021, 0x8d,0x9d, 0x91,0x69,0xb2,0x61,0xd6,0x57)
16074#endif
16075#else
16076typedef struct IDeskBand2Vtbl {
16077    BEGIN_INTERFACE
16078
16079    /*** IUnknown methods ***/
16080    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16081        IDeskBand2 *This,
16082        REFIID riid,
16083        void **ppvObject);
16084
16085    ULONG (STDMETHODCALLTYPE *AddRef)(
16086        IDeskBand2 *This);
16087
16088    ULONG (STDMETHODCALLTYPE *Release)(
16089        IDeskBand2 *This);
16090
16091    /*** IOleWindow methods ***/
16092    HRESULT (STDMETHODCALLTYPE *GetWindow)(
16093        IDeskBand2 *This,
16094        HWND *phwnd);
16095
16096    HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
16097        IDeskBand2 *This,
16098        WINBOOL fEnterMode);
16099
16100    /*** IDockingWindow methods ***/
16101    HRESULT (STDMETHODCALLTYPE *ShowDW)(
16102        IDeskBand2 *This,
16103        WINBOOL fShow);
16104
16105    HRESULT (STDMETHODCALLTYPE *CloseDW)(
16106        IDeskBand2 *This,
16107        DWORD dwReserved);
16108
16109    HRESULT (STDMETHODCALLTYPE *ResizeBorderDW)(
16110        IDeskBand2 *This,
16111        LPCRECT prcBorder,
16112        IUnknown *punkToolbarSite,
16113        WINBOOL fReserved);
16114
16115    /*** IDeskBand methods ***/
16116    HRESULT (STDMETHODCALLTYPE *GetBandInfo)(
16117        IDeskBand2 *This,
16118        DWORD dwBandID,
16119        DWORD dwViewMode,
16120        DESKBANDINFO *pdbi);
16121
16122    /*** IDeskBand2 methods ***/
16123    HRESULT (STDMETHODCALLTYPE *CanRenderComposited)(
16124        IDeskBand2 *This,
16125        WINBOOL *pfCanRenderComposited);
16126
16127    HRESULT (STDMETHODCALLTYPE *SetCompositionState)(
16128        IDeskBand2 *This,
16129        WINBOOL fCompositionEnabled);
16130
16131    HRESULT (STDMETHODCALLTYPE *GetCompositionState)(
16132        IDeskBand2 *This,
16133        WINBOOL *pfCompositionEnabled);
16134
16135    END_INTERFACE
16136} IDeskBand2Vtbl;
16137
16138interface IDeskBand2 {
16139    CONST_VTBL IDeskBand2Vtbl* lpVtbl;
16140};
16141
16142#ifdef COBJMACROS
16143#ifndef WIDL_C_INLINE_WRAPPERS
16144/*** IUnknown methods ***/
16145#define IDeskBand2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16146#define IDeskBand2_AddRef(This) (This)->lpVtbl->AddRef(This)
16147#define IDeskBand2_Release(This) (This)->lpVtbl->Release(This)
16148/*** IOleWindow methods ***/
16149#define IDeskBand2_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
16150#define IDeskBand2_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
16151/*** IDockingWindow methods ***/
16152#define IDeskBand2_ShowDW(This,fShow) (This)->lpVtbl->ShowDW(This,fShow)
16153#define IDeskBand2_CloseDW(This,dwReserved) (This)->lpVtbl->CloseDW(This,dwReserved)
16154#define IDeskBand2_ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved) (This)->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved)
16155/*** IDeskBand methods ***/
16156#define IDeskBand2_GetBandInfo(This,dwBandID,dwViewMode,pdbi) (This)->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi)
16157/*** IDeskBand2 methods ***/
16158#define IDeskBand2_CanRenderComposited(This,pfCanRenderComposited) (This)->lpVtbl->CanRenderComposited(This,pfCanRenderComposited)
16159#define IDeskBand2_SetCompositionState(This,fCompositionEnabled) (This)->lpVtbl->SetCompositionState(This,fCompositionEnabled)
16160#define IDeskBand2_GetCompositionState(This,pfCompositionEnabled) (This)->lpVtbl->GetCompositionState(This,pfCompositionEnabled)
16161#else
16162/*** IUnknown methods ***/
16163static inline HRESULT IDeskBand2_QueryInterface(IDeskBand2* This,REFIID riid,void **ppvObject) {
16164    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16165}
16166static inline ULONG IDeskBand2_AddRef(IDeskBand2* This) {
16167    return This->lpVtbl->AddRef(This);
16168}
16169static inline ULONG IDeskBand2_Release(IDeskBand2* This) {
16170    return This->lpVtbl->Release(This);
16171}
16172/*** IOleWindow methods ***/
16173static inline HRESULT IDeskBand2_GetWindow(IDeskBand2* This,HWND *phwnd) {
16174    return This->lpVtbl->GetWindow(This,phwnd);
16175}
16176static inline HRESULT IDeskBand2_ContextSensitiveHelp(IDeskBand2* This,WINBOOL fEnterMode) {
16177    return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
16178}
16179/*** IDockingWindow methods ***/
16180static inline HRESULT IDeskBand2_ShowDW(IDeskBand2* This,WINBOOL fShow) {
16181    return This->lpVtbl->ShowDW(This,fShow);
16182}
16183static inline HRESULT IDeskBand2_CloseDW(IDeskBand2* This,DWORD dwReserved) {
16184    return This->lpVtbl->CloseDW(This,dwReserved);
16185}
16186static inline HRESULT IDeskBand2_ResizeBorderDW(IDeskBand2* This,LPCRECT prcBorder,IUnknown *punkToolbarSite,WINBOOL fReserved) {
16187    return This->lpVtbl->ResizeBorderDW(This,prcBorder,punkToolbarSite,fReserved);
16188}
16189/*** IDeskBand methods ***/
16190static inline HRESULT IDeskBand2_GetBandInfo(IDeskBand2* This,DWORD dwBandID,DWORD dwViewMode,DESKBANDINFO *pdbi) {
16191    return This->lpVtbl->GetBandInfo(This,dwBandID,dwViewMode,pdbi);
16192}
16193/*** IDeskBand2 methods ***/
16194static inline HRESULT IDeskBand2_CanRenderComposited(IDeskBand2* This,WINBOOL *pfCanRenderComposited) {
16195    return This->lpVtbl->CanRenderComposited(This,pfCanRenderComposited);
16196}
16197static inline HRESULT IDeskBand2_SetCompositionState(IDeskBand2* This,WINBOOL fCompositionEnabled) {
16198    return This->lpVtbl->SetCompositionState(This,fCompositionEnabled);
16199}
16200static inline HRESULT IDeskBand2_GetCompositionState(IDeskBand2* This,WINBOOL *pfCompositionEnabled) {
16201    return This->lpVtbl->GetCompositionState(This,pfCompositionEnabled);
16202}
16203#endif
16204#endif
16205
16206#endif
16207
16208
16209#endif  /* __IDeskBand2_INTERFACE_DEFINED__ */
16210
16211#endif
16212
16213/*****************************************************************************
16214 * ITaskbarList interface
16215 */
16216#ifndef __ITaskbarList_INTERFACE_DEFINED__
16217#define __ITaskbarList_INTERFACE_DEFINED__
16218
16219DEFINE_GUID(IID_ITaskbarList, 0x56fdf342, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90);
16220#if defined(__cplusplus) && !defined(CINTERFACE)
16221MIDL_INTERFACE("56fdf342-fd6d-11d0-958a-006097c9a090")
16222ITaskbarList : public IUnknown
16223{
16224    virtual HRESULT STDMETHODCALLTYPE HrInit(
16225        ) = 0;
16226
16227    virtual HRESULT STDMETHODCALLTYPE AddTab(
16228        HWND hwnd) = 0;
16229
16230    virtual HRESULT STDMETHODCALLTYPE DeleteTab(
16231        HWND hwnd) = 0;
16232
16233    virtual HRESULT STDMETHODCALLTYPE ActivateTab(
16234        HWND hwnd) = 0;
16235
16236    virtual HRESULT STDMETHODCALLTYPE SetActiveAlt(
16237        HWND hwnd) = 0;
16238
16239};
16240#ifdef __CRT_UUID_DECL
16241__CRT_UUID_DECL(ITaskbarList, 0x56fdf342, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90)
16242#endif
16243#else
16244typedef struct ITaskbarListVtbl {
16245    BEGIN_INTERFACE
16246
16247    /*** IUnknown methods ***/
16248    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16249        ITaskbarList *This,
16250        REFIID riid,
16251        void **ppvObject);
16252
16253    ULONG (STDMETHODCALLTYPE *AddRef)(
16254        ITaskbarList *This);
16255
16256    ULONG (STDMETHODCALLTYPE *Release)(
16257        ITaskbarList *This);
16258
16259    /*** ITaskbarList methods ***/
16260    HRESULT (STDMETHODCALLTYPE *HrInit)(
16261        ITaskbarList *This);
16262
16263    HRESULT (STDMETHODCALLTYPE *AddTab)(
16264        ITaskbarList *This,
16265        HWND hwnd);
16266
16267    HRESULT (STDMETHODCALLTYPE *DeleteTab)(
16268        ITaskbarList *This,
16269        HWND hwnd);
16270
16271    HRESULT (STDMETHODCALLTYPE *ActivateTab)(
16272        ITaskbarList *This,
16273        HWND hwnd);
16274
16275    HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
16276        ITaskbarList *This,
16277        HWND hwnd);
16278
16279    END_INTERFACE
16280} ITaskbarListVtbl;
16281
16282interface ITaskbarList {
16283    CONST_VTBL ITaskbarListVtbl* lpVtbl;
16284};
16285
16286#ifdef COBJMACROS
16287#ifndef WIDL_C_INLINE_WRAPPERS
16288/*** IUnknown methods ***/
16289#define ITaskbarList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16290#define ITaskbarList_AddRef(This) (This)->lpVtbl->AddRef(This)
16291#define ITaskbarList_Release(This) (This)->lpVtbl->Release(This)
16292/*** ITaskbarList methods ***/
16293#define ITaskbarList_HrInit(This) (This)->lpVtbl->HrInit(This)
16294#define ITaskbarList_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
16295#define ITaskbarList_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
16296#define ITaskbarList_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
16297#define ITaskbarList_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
16298#else
16299/*** IUnknown methods ***/
16300static inline HRESULT ITaskbarList_QueryInterface(ITaskbarList* This,REFIID riid,void **ppvObject) {
16301    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16302}
16303static inline ULONG ITaskbarList_AddRef(ITaskbarList* This) {
16304    return This->lpVtbl->AddRef(This);
16305}
16306static inline ULONG ITaskbarList_Release(ITaskbarList* This) {
16307    return This->lpVtbl->Release(This);
16308}
16309/*** ITaskbarList methods ***/
16310static inline HRESULT ITaskbarList_HrInit(ITaskbarList* This) {
16311    return This->lpVtbl->HrInit(This);
16312}
16313static inline HRESULT ITaskbarList_AddTab(ITaskbarList* This,HWND hwnd) {
16314    return This->lpVtbl->AddTab(This,hwnd);
16315}
16316static inline HRESULT ITaskbarList_DeleteTab(ITaskbarList* This,HWND hwnd) {
16317    return This->lpVtbl->DeleteTab(This,hwnd);
16318}
16319static inline HRESULT ITaskbarList_ActivateTab(ITaskbarList* This,HWND hwnd) {
16320    return This->lpVtbl->ActivateTab(This,hwnd);
16321}
16322static inline HRESULT ITaskbarList_SetActiveAlt(ITaskbarList* This,HWND hwnd) {
16323    return This->lpVtbl->SetActiveAlt(This,hwnd);
16324}
16325#endif
16326#endif
16327
16328#endif
16329
16330
16331#endif  /* __ITaskbarList_INTERFACE_DEFINED__ */
16332
16333
16334/*****************************************************************************
16335 * ITaskbarList2 interface
16336 */
16337#ifndef __ITaskbarList2_INTERFACE_DEFINED__
16338#define __ITaskbarList2_INTERFACE_DEFINED__
16339
16340DEFINE_GUID(IID_ITaskbarList2, 0x602d4995, 0xb13a, 0x429b, 0xa6,0x6e, 0x19,0x35,0xe4,0x4f,0x43,0x17);
16341#if defined(__cplusplus) && !defined(CINTERFACE)
16342MIDL_INTERFACE("602d4995-b13a-429b-a66e-1935e44f4317")
16343ITaskbarList2 : public ITaskbarList
16344{
16345    virtual HRESULT STDMETHODCALLTYPE MarkFullscreenWindow(
16346        HWND hwnd,
16347        WINBOOL fFullscreen) = 0;
16348
16349};
16350#ifdef __CRT_UUID_DECL
16351__CRT_UUID_DECL(ITaskbarList2, 0x602d4995, 0xb13a, 0x429b, 0xa6,0x6e, 0x19,0x35,0xe4,0x4f,0x43,0x17)
16352#endif
16353#else
16354typedef struct ITaskbarList2Vtbl {
16355    BEGIN_INTERFACE
16356
16357    /*** IUnknown methods ***/
16358    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16359        ITaskbarList2 *This,
16360        REFIID riid,
16361        void **ppvObject);
16362
16363    ULONG (STDMETHODCALLTYPE *AddRef)(
16364        ITaskbarList2 *This);
16365
16366    ULONG (STDMETHODCALLTYPE *Release)(
16367        ITaskbarList2 *This);
16368
16369    /*** ITaskbarList methods ***/
16370    HRESULT (STDMETHODCALLTYPE *HrInit)(
16371        ITaskbarList2 *This);
16372
16373    HRESULT (STDMETHODCALLTYPE *AddTab)(
16374        ITaskbarList2 *This,
16375        HWND hwnd);
16376
16377    HRESULT (STDMETHODCALLTYPE *DeleteTab)(
16378        ITaskbarList2 *This,
16379        HWND hwnd);
16380
16381    HRESULT (STDMETHODCALLTYPE *ActivateTab)(
16382        ITaskbarList2 *This,
16383        HWND hwnd);
16384
16385    HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
16386        ITaskbarList2 *This,
16387        HWND hwnd);
16388
16389    /*** ITaskbarList2 methods ***/
16390    HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
16391        ITaskbarList2 *This,
16392        HWND hwnd,
16393        WINBOOL fFullscreen);
16394
16395    END_INTERFACE
16396} ITaskbarList2Vtbl;
16397
16398interface ITaskbarList2 {
16399    CONST_VTBL ITaskbarList2Vtbl* lpVtbl;
16400};
16401
16402#ifdef COBJMACROS
16403#ifndef WIDL_C_INLINE_WRAPPERS
16404/*** IUnknown methods ***/
16405#define ITaskbarList2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16406#define ITaskbarList2_AddRef(This) (This)->lpVtbl->AddRef(This)
16407#define ITaskbarList2_Release(This) (This)->lpVtbl->Release(This)
16408/*** ITaskbarList methods ***/
16409#define ITaskbarList2_HrInit(This) (This)->lpVtbl->HrInit(This)
16410#define ITaskbarList2_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
16411#define ITaskbarList2_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
16412#define ITaskbarList2_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
16413#define ITaskbarList2_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
16414/*** ITaskbarList2 methods ***/
16415#define ITaskbarList2_MarkFullscreenWindow(This,hwnd,fFullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen)
16416#else
16417/*** IUnknown methods ***/
16418static inline HRESULT ITaskbarList2_QueryInterface(ITaskbarList2* This,REFIID riid,void **ppvObject) {
16419    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16420}
16421static inline ULONG ITaskbarList2_AddRef(ITaskbarList2* This) {
16422    return This->lpVtbl->AddRef(This);
16423}
16424static inline ULONG ITaskbarList2_Release(ITaskbarList2* This) {
16425    return This->lpVtbl->Release(This);
16426}
16427/*** ITaskbarList methods ***/
16428static inline HRESULT ITaskbarList2_HrInit(ITaskbarList2* This) {
16429    return This->lpVtbl->HrInit(This);
16430}
16431static inline HRESULT ITaskbarList2_AddTab(ITaskbarList2* This,HWND hwnd) {
16432    return This->lpVtbl->AddTab(This,hwnd);
16433}
16434static inline HRESULT ITaskbarList2_DeleteTab(ITaskbarList2* This,HWND hwnd) {
16435    return This->lpVtbl->DeleteTab(This,hwnd);
16436}
16437static inline HRESULT ITaskbarList2_ActivateTab(ITaskbarList2* This,HWND hwnd) {
16438    return This->lpVtbl->ActivateTab(This,hwnd);
16439}
16440static inline HRESULT ITaskbarList2_SetActiveAlt(ITaskbarList2* This,HWND hwnd) {
16441    return This->lpVtbl->SetActiveAlt(This,hwnd);
16442}
16443/*** ITaskbarList2 methods ***/
16444static inline HRESULT ITaskbarList2_MarkFullscreenWindow(ITaskbarList2* This,HWND hwnd,WINBOOL fFullscreen) {
16445    return This->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen);
16446}
16447#endif
16448#endif
16449
16450#endif
16451
16452
16453#endif  /* __ITaskbarList2_INTERFACE_DEFINED__ */
16454
16455
16456#if 0
16457typedef IUnknown *HIMAGELIST;
16458#endif
16459
16460typedef enum THUMBBUTTONFLAGS {
16461    THBF_ENABLED = 0x0,
16462    THBF_DISABLED = 0x1,
16463    THBF_DISMISSONCLICK = 0x2,
16464    THBF_NOBACKGROUND = 0x4,
16465    THBF_HIDDEN = 0x8,
16466    THBF_NONINTERACTIVE = 0x10
16467} THUMBBUTTONFLAGS;
16468
16469DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONFLAGS)
16470
16471
16472typedef enum THUMBBUTTONMASK {
16473    THB_BITMAP = 0x1,
16474    THB_ICON = 0x2,
16475    THB_TOOLTIP = 0x4,
16476    THB_FLAGS = 0x8
16477} THUMBBUTTONMASK;
16478
16479DEFINE_ENUM_FLAG_OPERATORS(THUMBBUTTONMASK)
16480
16481#include <pshpack8.h>
16482typedef struct THUMBBUTTON {
16483    THUMBBUTTONMASK dwMask;
16484    UINT iId;
16485    UINT iBitmap;
16486    HICON hIcon;
16487    WCHAR szTip[260];
16488    THUMBBUTTONFLAGS dwFlags;
16489} THUMBBUTTON;
16490typedef struct THUMBBUTTON *LPTHUMBBUTTON;
16491#include <poppack.h>
16492
16493#define THBN_CLICKED 0x1800
16494
16495/*****************************************************************************
16496 * ITaskbarList3 interface
16497 */
16498#ifndef __ITaskbarList3_INTERFACE_DEFINED__
16499#define __ITaskbarList3_INTERFACE_DEFINED__
16500
16501typedef enum TBPFLAG {
16502    TBPF_NOPROGRESS = 0x0,
16503    TBPF_INDETERMINATE = 0x1,
16504    TBPF_NORMAL = 0x2,
16505    TBPF_ERROR = 0x4,
16506    TBPF_PAUSED = 0x8
16507} TBPFLAG;
16508
16509DEFINE_ENUM_FLAG_OPERATORS(TBPFLAG)
16510
16511DEFINE_GUID(IID_ITaskbarList3, 0xea1afb91, 0x9e28, 0x4b86, 0x90,0xe9, 0x9e,0x9f,0x8a,0x5e,0xef,0xaf);
16512#if defined(__cplusplus) && !defined(CINTERFACE)
16513MIDL_INTERFACE("ea1afb91-9e28-4b86-90e9-9e9f8a5eefaf")
16514ITaskbarList3 : public ITaskbarList2
16515{
16516    virtual HRESULT STDMETHODCALLTYPE SetProgressValue(
16517        HWND hwnd,
16518        ULONGLONG ullCompleted,
16519        ULONGLONG ullTotal) = 0;
16520
16521    virtual HRESULT STDMETHODCALLTYPE SetProgressState(
16522        HWND hwnd,
16523        TBPFLAG tbpFlags) = 0;
16524
16525    virtual HRESULT STDMETHODCALLTYPE RegisterTab(
16526        HWND hwndTab,
16527        HWND hwndMDI) = 0;
16528
16529    virtual HRESULT STDMETHODCALLTYPE UnregisterTab(
16530        HWND hwndTab) = 0;
16531
16532    virtual HRESULT STDMETHODCALLTYPE SetTabOrder(
16533        HWND hwndTab,
16534        HWND hwndInsertBefore) = 0;
16535
16536    virtual HRESULT STDMETHODCALLTYPE SetTabActive(
16537        HWND hwndTab,
16538        HWND hwndMDI,
16539        DWORD dwReserved) = 0;
16540
16541    virtual HRESULT STDMETHODCALLTYPE ThumbBarAddButtons(
16542        HWND hwnd,
16543        UINT cButtons,
16544        LPTHUMBBUTTON pButton) = 0;
16545
16546    virtual HRESULT STDMETHODCALLTYPE ThumbBarUpdateButtons(
16547        HWND hwnd,
16548        UINT cButtons,
16549        LPTHUMBBUTTON pButton) = 0;
16550
16551    virtual HRESULT STDMETHODCALLTYPE ThumbBarSetImageList(
16552        HWND hwnd,
16553        HIMAGELIST himl) = 0;
16554
16555    virtual HRESULT STDMETHODCALLTYPE SetOverlayIcon(
16556        HWND hwnd,
16557        HICON hIcon,
16558        LPCWSTR pszDescription) = 0;
16559
16560    virtual HRESULT STDMETHODCALLTYPE SetThumbnailTooltip(
16561        HWND hwnd,
16562        LPCWSTR pszTip) = 0;
16563
16564    virtual HRESULT STDMETHODCALLTYPE SetThumbnailClip(
16565        HWND hwnd,
16566        RECT *prcClip) = 0;
16567
16568};
16569#ifdef __CRT_UUID_DECL
16570__CRT_UUID_DECL(ITaskbarList3, 0xea1afb91, 0x9e28, 0x4b86, 0x90,0xe9, 0x9e,0x9f,0x8a,0x5e,0xef,0xaf)
16571#endif
16572#else
16573typedef struct ITaskbarList3Vtbl {
16574    BEGIN_INTERFACE
16575
16576    /*** IUnknown methods ***/
16577    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16578        ITaskbarList3 *This,
16579        REFIID riid,
16580        void **ppvObject);
16581
16582    ULONG (STDMETHODCALLTYPE *AddRef)(
16583        ITaskbarList3 *This);
16584
16585    ULONG (STDMETHODCALLTYPE *Release)(
16586        ITaskbarList3 *This);
16587
16588    /*** ITaskbarList methods ***/
16589    HRESULT (STDMETHODCALLTYPE *HrInit)(
16590        ITaskbarList3 *This);
16591
16592    HRESULT (STDMETHODCALLTYPE *AddTab)(
16593        ITaskbarList3 *This,
16594        HWND hwnd);
16595
16596    HRESULT (STDMETHODCALLTYPE *DeleteTab)(
16597        ITaskbarList3 *This,
16598        HWND hwnd);
16599
16600    HRESULT (STDMETHODCALLTYPE *ActivateTab)(
16601        ITaskbarList3 *This,
16602        HWND hwnd);
16603
16604    HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
16605        ITaskbarList3 *This,
16606        HWND hwnd);
16607
16608    /*** ITaskbarList2 methods ***/
16609    HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
16610        ITaskbarList3 *This,
16611        HWND hwnd,
16612        WINBOOL fFullscreen);
16613
16614    /*** ITaskbarList3 methods ***/
16615    HRESULT (STDMETHODCALLTYPE *SetProgressValue)(
16616        ITaskbarList3 *This,
16617        HWND hwnd,
16618        ULONGLONG ullCompleted,
16619        ULONGLONG ullTotal);
16620
16621    HRESULT (STDMETHODCALLTYPE *SetProgressState)(
16622        ITaskbarList3 *This,
16623        HWND hwnd,
16624        TBPFLAG tbpFlags);
16625
16626    HRESULT (STDMETHODCALLTYPE *RegisterTab)(
16627        ITaskbarList3 *This,
16628        HWND hwndTab,
16629        HWND hwndMDI);
16630
16631    HRESULT (STDMETHODCALLTYPE *UnregisterTab)(
16632        ITaskbarList3 *This,
16633        HWND hwndTab);
16634
16635    HRESULT (STDMETHODCALLTYPE *SetTabOrder)(
16636        ITaskbarList3 *This,
16637        HWND hwndTab,
16638        HWND hwndInsertBefore);
16639
16640    HRESULT (STDMETHODCALLTYPE *SetTabActive)(
16641        ITaskbarList3 *This,
16642        HWND hwndTab,
16643        HWND hwndMDI,
16644        DWORD dwReserved);
16645
16646    HRESULT (STDMETHODCALLTYPE *ThumbBarAddButtons)(
16647        ITaskbarList3 *This,
16648        HWND hwnd,
16649        UINT cButtons,
16650        LPTHUMBBUTTON pButton);
16651
16652    HRESULT (STDMETHODCALLTYPE *ThumbBarUpdateButtons)(
16653        ITaskbarList3 *This,
16654        HWND hwnd,
16655        UINT cButtons,
16656        LPTHUMBBUTTON pButton);
16657
16658    HRESULT (STDMETHODCALLTYPE *ThumbBarSetImageList)(
16659        ITaskbarList3 *This,
16660        HWND hwnd,
16661        HIMAGELIST himl);
16662
16663    HRESULT (STDMETHODCALLTYPE *SetOverlayIcon)(
16664        ITaskbarList3 *This,
16665        HWND hwnd,
16666        HICON hIcon,
16667        LPCWSTR pszDescription);
16668
16669    HRESULT (STDMETHODCALLTYPE *SetThumbnailTooltip)(
16670        ITaskbarList3 *This,
16671        HWND hwnd,
16672        LPCWSTR pszTip);
16673
16674    HRESULT (STDMETHODCALLTYPE *SetThumbnailClip)(
16675        ITaskbarList3 *This,
16676        HWND hwnd,
16677        RECT *prcClip);
16678
16679    END_INTERFACE
16680} ITaskbarList3Vtbl;
16681
16682interface ITaskbarList3 {
16683    CONST_VTBL ITaskbarList3Vtbl* lpVtbl;
16684};
16685
16686#ifdef COBJMACROS
16687#ifndef WIDL_C_INLINE_WRAPPERS
16688/*** IUnknown methods ***/
16689#define ITaskbarList3_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16690#define ITaskbarList3_AddRef(This) (This)->lpVtbl->AddRef(This)
16691#define ITaskbarList3_Release(This) (This)->lpVtbl->Release(This)
16692/*** ITaskbarList methods ***/
16693#define ITaskbarList3_HrInit(This) (This)->lpVtbl->HrInit(This)
16694#define ITaskbarList3_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
16695#define ITaskbarList3_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
16696#define ITaskbarList3_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
16697#define ITaskbarList3_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
16698/*** ITaskbarList2 methods ***/
16699#define ITaskbarList3_MarkFullscreenWindow(This,hwnd,fFullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen)
16700/*** ITaskbarList3 methods ***/
16701#define ITaskbarList3_SetProgressValue(This,hwnd,ullCompleted,ullTotal) (This)->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal)
16702#define ITaskbarList3_SetProgressState(This,hwnd,tbpFlags) (This)->lpVtbl->SetProgressState(This,hwnd,tbpFlags)
16703#define ITaskbarList3_RegisterTab(This,hwndTab,hwndMDI) (This)->lpVtbl->RegisterTab(This,hwndTab,hwndMDI)
16704#define ITaskbarList3_UnregisterTab(This,hwndTab) (This)->lpVtbl->UnregisterTab(This,hwndTab)
16705#define ITaskbarList3_SetTabOrder(This,hwndTab,hwndInsertBefore) (This)->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore)
16706#define ITaskbarList3_SetTabActive(This,hwndTab,hwndMDI,dwReserved) (This)->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved)
16707#define ITaskbarList3_ThumbBarAddButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton)
16708#define ITaskbarList3_ThumbBarUpdateButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton)
16709#define ITaskbarList3_ThumbBarSetImageList(This,hwnd,himl) (This)->lpVtbl->ThumbBarSetImageList(This,hwnd,himl)
16710#define ITaskbarList3_SetOverlayIcon(This,hwnd,hIcon,pszDescription) (This)->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription)
16711#define ITaskbarList3_SetThumbnailTooltip(This,hwnd,pszTip) (This)->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip)
16712#define ITaskbarList3_SetThumbnailClip(This,hwnd,prcClip) (This)->lpVtbl->SetThumbnailClip(This,hwnd,prcClip)
16713#else
16714/*** IUnknown methods ***/
16715static inline HRESULT ITaskbarList3_QueryInterface(ITaskbarList3* This,REFIID riid,void **ppvObject) {
16716    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16717}
16718static inline ULONG ITaskbarList3_AddRef(ITaskbarList3* This) {
16719    return This->lpVtbl->AddRef(This);
16720}
16721static inline ULONG ITaskbarList3_Release(ITaskbarList3* This) {
16722    return This->lpVtbl->Release(This);
16723}
16724/*** ITaskbarList methods ***/
16725static inline HRESULT ITaskbarList3_HrInit(ITaskbarList3* This) {
16726    return This->lpVtbl->HrInit(This);
16727}
16728static inline HRESULT ITaskbarList3_AddTab(ITaskbarList3* This,HWND hwnd) {
16729    return This->lpVtbl->AddTab(This,hwnd);
16730}
16731static inline HRESULT ITaskbarList3_DeleteTab(ITaskbarList3* This,HWND hwnd) {
16732    return This->lpVtbl->DeleteTab(This,hwnd);
16733}
16734static inline HRESULT ITaskbarList3_ActivateTab(ITaskbarList3* This,HWND hwnd) {
16735    return This->lpVtbl->ActivateTab(This,hwnd);
16736}
16737static inline HRESULT ITaskbarList3_SetActiveAlt(ITaskbarList3* This,HWND hwnd) {
16738    return This->lpVtbl->SetActiveAlt(This,hwnd);
16739}
16740/*** ITaskbarList2 methods ***/
16741static inline HRESULT ITaskbarList3_MarkFullscreenWindow(ITaskbarList3* This,HWND hwnd,WINBOOL fFullscreen) {
16742    return This->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen);
16743}
16744/*** ITaskbarList3 methods ***/
16745static inline HRESULT ITaskbarList3_SetProgressValue(ITaskbarList3* This,HWND hwnd,ULONGLONG ullCompleted,ULONGLONG ullTotal) {
16746    return This->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal);
16747}
16748static inline HRESULT ITaskbarList3_SetProgressState(ITaskbarList3* This,HWND hwnd,TBPFLAG tbpFlags) {
16749    return This->lpVtbl->SetProgressState(This,hwnd,tbpFlags);
16750}
16751static inline HRESULT ITaskbarList3_RegisterTab(ITaskbarList3* This,HWND hwndTab,HWND hwndMDI) {
16752    return This->lpVtbl->RegisterTab(This,hwndTab,hwndMDI);
16753}
16754static inline HRESULT ITaskbarList3_UnregisterTab(ITaskbarList3* This,HWND hwndTab) {
16755    return This->lpVtbl->UnregisterTab(This,hwndTab);
16756}
16757static inline HRESULT ITaskbarList3_SetTabOrder(ITaskbarList3* This,HWND hwndTab,HWND hwndInsertBefore) {
16758    return This->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore);
16759}
16760static inline HRESULT ITaskbarList3_SetTabActive(ITaskbarList3* This,HWND hwndTab,HWND hwndMDI,DWORD dwReserved) {
16761    return This->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved);
16762}
16763static inline HRESULT ITaskbarList3_ThumbBarAddButtons(ITaskbarList3* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
16764    return This->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton);
16765}
16766static inline HRESULT ITaskbarList3_ThumbBarUpdateButtons(ITaskbarList3* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
16767    return This->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton);
16768}
16769static inline HRESULT ITaskbarList3_ThumbBarSetImageList(ITaskbarList3* This,HWND hwnd,HIMAGELIST himl) {
16770    return This->lpVtbl->ThumbBarSetImageList(This,hwnd,himl);
16771}
16772static inline HRESULT ITaskbarList3_SetOverlayIcon(ITaskbarList3* This,HWND hwnd,HICON hIcon,LPCWSTR pszDescription) {
16773    return This->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription);
16774}
16775static inline HRESULT ITaskbarList3_SetThumbnailTooltip(ITaskbarList3* This,HWND hwnd,LPCWSTR pszTip) {
16776    return This->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip);
16777}
16778static inline HRESULT ITaskbarList3_SetThumbnailClip(ITaskbarList3* This,HWND hwnd,RECT *prcClip) {
16779    return This->lpVtbl->SetThumbnailClip(This,hwnd,prcClip);
16780}
16781#endif
16782#endif
16783
16784#endif
16785
16786
16787#endif  /* __ITaskbarList3_INTERFACE_DEFINED__ */
16788
16789
16790/*****************************************************************************
16791 * ITaskbarList4 interface
16792 */
16793#ifndef __ITaskbarList4_INTERFACE_DEFINED__
16794#define __ITaskbarList4_INTERFACE_DEFINED__
16795
16796typedef enum STPFLAG {
16797    STPF_NONE = 0x0,
16798    STPF_USEAPPTHUMBNAILALWAYS = 0x1,
16799    STPF_USEAPPTHUMBNAILWHENACTIVE = 0x2,
16800    STPF_USEAPPPEEKALWAYS = 0x4,
16801    STPF_USEAPPPEEKWHENACTIVE = 0x8
16802} STPFLAG;
16803
16804DEFINE_ENUM_FLAG_OPERATORS(STPFLAG)
16805
16806DEFINE_GUID(IID_ITaskbarList4, 0xc43dc798, 0x95d1, 0x4bea, 0x90,0x30, 0xbb,0x99,0xe2,0x98,0x3a,0x1a);
16807#if defined(__cplusplus) && !defined(CINTERFACE)
16808MIDL_INTERFACE("c43dc798-95d1-4bea-9030-bb99e2983a1a")
16809ITaskbarList4 : public ITaskbarList3
16810{
16811    virtual HRESULT STDMETHODCALLTYPE SetTabProperties(
16812        HWND hwndTab,
16813        STPFLAG stpFlags) = 0;
16814
16815};
16816#ifdef __CRT_UUID_DECL
16817__CRT_UUID_DECL(ITaskbarList4, 0xc43dc798, 0x95d1, 0x4bea, 0x90,0x30, 0xbb,0x99,0xe2,0x98,0x3a,0x1a)
16818#endif
16819#else
16820typedef struct ITaskbarList4Vtbl {
16821    BEGIN_INTERFACE
16822
16823    /*** IUnknown methods ***/
16824    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
16825        ITaskbarList4 *This,
16826        REFIID riid,
16827        void **ppvObject);
16828
16829    ULONG (STDMETHODCALLTYPE *AddRef)(
16830        ITaskbarList4 *This);
16831
16832    ULONG (STDMETHODCALLTYPE *Release)(
16833        ITaskbarList4 *This);
16834
16835    /*** ITaskbarList methods ***/
16836    HRESULT (STDMETHODCALLTYPE *HrInit)(
16837        ITaskbarList4 *This);
16838
16839    HRESULT (STDMETHODCALLTYPE *AddTab)(
16840        ITaskbarList4 *This,
16841        HWND hwnd);
16842
16843    HRESULT (STDMETHODCALLTYPE *DeleteTab)(
16844        ITaskbarList4 *This,
16845        HWND hwnd);
16846
16847    HRESULT (STDMETHODCALLTYPE *ActivateTab)(
16848        ITaskbarList4 *This,
16849        HWND hwnd);
16850
16851    HRESULT (STDMETHODCALLTYPE *SetActiveAlt)(
16852        ITaskbarList4 *This,
16853        HWND hwnd);
16854
16855    /*** ITaskbarList2 methods ***/
16856    HRESULT (STDMETHODCALLTYPE *MarkFullscreenWindow)(
16857        ITaskbarList4 *This,
16858        HWND hwnd,
16859        WINBOOL fFullscreen);
16860
16861    /*** ITaskbarList3 methods ***/
16862    HRESULT (STDMETHODCALLTYPE *SetProgressValue)(
16863        ITaskbarList4 *This,
16864        HWND hwnd,
16865        ULONGLONG ullCompleted,
16866        ULONGLONG ullTotal);
16867
16868    HRESULT (STDMETHODCALLTYPE *SetProgressState)(
16869        ITaskbarList4 *This,
16870        HWND hwnd,
16871        TBPFLAG tbpFlags);
16872
16873    HRESULT (STDMETHODCALLTYPE *RegisterTab)(
16874        ITaskbarList4 *This,
16875        HWND hwndTab,
16876        HWND hwndMDI);
16877
16878    HRESULT (STDMETHODCALLTYPE *UnregisterTab)(
16879        ITaskbarList4 *This,
16880        HWND hwndTab);
16881
16882    HRESULT (STDMETHODCALLTYPE *SetTabOrder)(
16883        ITaskbarList4 *This,
16884        HWND hwndTab,
16885        HWND hwndInsertBefore);
16886
16887    HRESULT (STDMETHODCALLTYPE *SetTabActive)(
16888        ITaskbarList4 *This,
16889        HWND hwndTab,
16890        HWND hwndMDI,
16891        DWORD dwReserved);
16892
16893    HRESULT (STDMETHODCALLTYPE *ThumbBarAddButtons)(
16894        ITaskbarList4 *This,
16895        HWND hwnd,
16896        UINT cButtons,
16897        LPTHUMBBUTTON pButton);
16898
16899    HRESULT (STDMETHODCALLTYPE *ThumbBarUpdateButtons)(
16900        ITaskbarList4 *This,
16901        HWND hwnd,
16902        UINT cButtons,
16903        LPTHUMBBUTTON pButton);
16904
16905    HRESULT (STDMETHODCALLTYPE *ThumbBarSetImageList)(
16906        ITaskbarList4 *This,
16907        HWND hwnd,
16908        HIMAGELIST himl);
16909
16910    HRESULT (STDMETHODCALLTYPE *SetOverlayIcon)(
16911        ITaskbarList4 *This,
16912        HWND hwnd,
16913        HICON hIcon,
16914        LPCWSTR pszDescription);
16915
16916    HRESULT (STDMETHODCALLTYPE *SetThumbnailTooltip)(
16917        ITaskbarList4 *This,
16918        HWND hwnd,
16919        LPCWSTR pszTip);
16920
16921    HRESULT (STDMETHODCALLTYPE *SetThumbnailClip)(
16922        ITaskbarList4 *This,
16923        HWND hwnd,
16924        RECT *prcClip);
16925
16926    /*** ITaskbarList4 methods ***/
16927    HRESULT (STDMETHODCALLTYPE *SetTabProperties)(
16928        ITaskbarList4 *This,
16929        HWND hwndTab,
16930        STPFLAG stpFlags);
16931
16932    END_INTERFACE
16933} ITaskbarList4Vtbl;
16934
16935interface ITaskbarList4 {
16936    CONST_VTBL ITaskbarList4Vtbl* lpVtbl;
16937};
16938
16939#ifdef COBJMACROS
16940#ifndef WIDL_C_INLINE_WRAPPERS
16941/*** IUnknown methods ***/
16942#define ITaskbarList4_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
16943#define ITaskbarList4_AddRef(This) (This)->lpVtbl->AddRef(This)
16944#define ITaskbarList4_Release(This) (This)->lpVtbl->Release(This)
16945/*** ITaskbarList methods ***/
16946#define ITaskbarList4_HrInit(This) (This)->lpVtbl->HrInit(This)
16947#define ITaskbarList4_AddTab(This,hwnd) (This)->lpVtbl->AddTab(This,hwnd)
16948#define ITaskbarList4_DeleteTab(This,hwnd) (This)->lpVtbl->DeleteTab(This,hwnd)
16949#define ITaskbarList4_ActivateTab(This,hwnd) (This)->lpVtbl->ActivateTab(This,hwnd)
16950#define ITaskbarList4_SetActiveAlt(This,hwnd) (This)->lpVtbl->SetActiveAlt(This,hwnd)
16951/*** ITaskbarList2 methods ***/
16952#define ITaskbarList4_MarkFullscreenWindow(This,hwnd,fFullscreen) (This)->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen)
16953/*** ITaskbarList3 methods ***/
16954#define ITaskbarList4_SetProgressValue(This,hwnd,ullCompleted,ullTotal) (This)->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal)
16955#define ITaskbarList4_SetProgressState(This,hwnd,tbpFlags) (This)->lpVtbl->SetProgressState(This,hwnd,tbpFlags)
16956#define ITaskbarList4_RegisterTab(This,hwndTab,hwndMDI) (This)->lpVtbl->RegisterTab(This,hwndTab,hwndMDI)
16957#define ITaskbarList4_UnregisterTab(This,hwndTab) (This)->lpVtbl->UnregisterTab(This,hwndTab)
16958#define ITaskbarList4_SetTabOrder(This,hwndTab,hwndInsertBefore) (This)->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore)
16959#define ITaskbarList4_SetTabActive(This,hwndTab,hwndMDI,dwReserved) (This)->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved)
16960#define ITaskbarList4_ThumbBarAddButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton)
16961#define ITaskbarList4_ThumbBarUpdateButtons(This,hwnd,cButtons,pButton) (This)->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton)
16962#define ITaskbarList4_ThumbBarSetImageList(This,hwnd,himl) (This)->lpVtbl->ThumbBarSetImageList(This,hwnd,himl)
16963#define ITaskbarList4_SetOverlayIcon(This,hwnd,hIcon,pszDescription) (This)->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription)
16964#define ITaskbarList4_SetThumbnailTooltip(This,hwnd,pszTip) (This)->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip)
16965#define ITaskbarList4_SetThumbnailClip(This,hwnd,prcClip) (This)->lpVtbl->SetThumbnailClip(This,hwnd,prcClip)
16966/*** ITaskbarList4 methods ***/
16967#define ITaskbarList4_SetTabProperties(This,hwndTab,stpFlags) (This)->lpVtbl->SetTabProperties(This,hwndTab,stpFlags)
16968#else
16969/*** IUnknown methods ***/
16970static inline HRESULT ITaskbarList4_QueryInterface(ITaskbarList4* This,REFIID riid,void **ppvObject) {
16971    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
16972}
16973static inline ULONG ITaskbarList4_AddRef(ITaskbarList4* This) {
16974    return This->lpVtbl->AddRef(This);
16975}
16976static inline ULONG ITaskbarList4_Release(ITaskbarList4* This) {
16977    return This->lpVtbl->Release(This);
16978}
16979/*** ITaskbarList methods ***/
16980static inline HRESULT ITaskbarList4_HrInit(ITaskbarList4* This) {
16981    return This->lpVtbl->HrInit(This);
16982}
16983static inline HRESULT ITaskbarList4_AddTab(ITaskbarList4* This,HWND hwnd) {
16984    return This->lpVtbl->AddTab(This,hwnd);
16985}
16986static inline HRESULT ITaskbarList4_DeleteTab(ITaskbarList4* This,HWND hwnd) {
16987    return This->lpVtbl->DeleteTab(This,hwnd);
16988}
16989static inline HRESULT ITaskbarList4_ActivateTab(ITaskbarList4* This,HWND hwnd) {
16990    return This->lpVtbl->ActivateTab(This,hwnd);
16991}
16992static inline HRESULT ITaskbarList4_SetActiveAlt(ITaskbarList4* This,HWND hwnd) {
16993    return This->lpVtbl->SetActiveAlt(This,hwnd);
16994}
16995/*** ITaskbarList2 methods ***/
16996static inline HRESULT ITaskbarList4_MarkFullscreenWindow(ITaskbarList4* This,HWND hwnd,WINBOOL fFullscreen) {
16997    return This->lpVtbl->MarkFullscreenWindow(This,hwnd,fFullscreen);
16998}
16999/*** ITaskbarList3 methods ***/
17000static inline HRESULT ITaskbarList4_SetProgressValue(ITaskbarList4* This,HWND hwnd,ULONGLONG ullCompleted,ULONGLONG ullTotal) {
17001    return This->lpVtbl->SetProgressValue(This,hwnd,ullCompleted,ullTotal);
17002}
17003static inline HRESULT ITaskbarList4_SetProgressState(ITaskbarList4* This,HWND hwnd,TBPFLAG tbpFlags) {
17004    return This->lpVtbl->SetProgressState(This,hwnd,tbpFlags);
17005}
17006static inline HRESULT ITaskbarList4_RegisterTab(ITaskbarList4* This,HWND hwndTab,HWND hwndMDI) {
17007    return This->lpVtbl->RegisterTab(This,hwndTab,hwndMDI);
17008}
17009static inline HRESULT ITaskbarList4_UnregisterTab(ITaskbarList4* This,HWND hwndTab) {
17010    return This->lpVtbl->UnregisterTab(This,hwndTab);
17011}
17012static inline HRESULT ITaskbarList4_SetTabOrder(ITaskbarList4* This,HWND hwndTab,HWND hwndInsertBefore) {
17013    return This->lpVtbl->SetTabOrder(This,hwndTab,hwndInsertBefore);
17014}
17015static inline HRESULT ITaskbarList4_SetTabActive(ITaskbarList4* This,HWND hwndTab,HWND hwndMDI,DWORD dwReserved) {
17016    return This->lpVtbl->SetTabActive(This,hwndTab,hwndMDI,dwReserved);
17017}
17018static inline HRESULT ITaskbarList4_ThumbBarAddButtons(ITaskbarList4* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
17019    return This->lpVtbl->ThumbBarAddButtons(This,hwnd,cButtons,pButton);
17020}
17021static inline HRESULT ITaskbarList4_ThumbBarUpdateButtons(ITaskbarList4* This,HWND hwnd,UINT cButtons,LPTHUMBBUTTON pButton) {
17022    return This->lpVtbl->ThumbBarUpdateButtons(This,hwnd,cButtons,pButton);
17023}
17024static inline HRESULT ITaskbarList4_ThumbBarSetImageList(ITaskbarList4* This,HWND hwnd,HIMAGELIST himl) {
17025    return This->lpVtbl->ThumbBarSetImageList(This,hwnd,himl);
17026}
17027static inline HRESULT ITaskbarList4_SetOverlayIcon(ITaskbarList4* This,HWND hwnd,HICON hIcon,LPCWSTR pszDescription) {
17028    return This->lpVtbl->SetOverlayIcon(This,hwnd,hIcon,pszDescription);
17029}
17030static inline HRESULT ITaskbarList4_SetThumbnailTooltip(ITaskbarList4* This,HWND hwnd,LPCWSTR pszTip) {
17031    return This->lpVtbl->SetThumbnailTooltip(This,hwnd,pszTip);
17032}
17033static inline HRESULT ITaskbarList4_SetThumbnailClip(ITaskbarList4* This,HWND hwnd,RECT *prcClip) {
17034    return This->lpVtbl->SetThumbnailClip(This,hwnd,prcClip);
17035}
17036/*** ITaskbarList4 methods ***/
17037static inline HRESULT ITaskbarList4_SetTabProperties(ITaskbarList4* This,HWND hwndTab,STPFLAG stpFlags) {
17038    return This->lpVtbl->SetTabProperties(This,hwndTab,stpFlags);
17039}
17040#endif
17041#endif
17042
17043#endif
17044
17045
17046#endif  /* __ITaskbarList4_INTERFACE_DEFINED__ */
17047
17048
17049/*****************************************************************************
17050 * IStartMenuPinnedList interface
17051 */
17052#ifndef __IStartMenuPinnedList_INTERFACE_DEFINED__
17053#define __IStartMenuPinnedList_INTERFACE_DEFINED__
17054
17055DEFINE_GUID(IID_IStartMenuPinnedList, 0x4cd19ada, 0x25a5, 0x4a32, 0xb3,0xb7, 0x34,0x7b,0xee,0x5b,0xe3,0x6b);
17056#if defined(__cplusplus) && !defined(CINTERFACE)
17057MIDL_INTERFACE("4cd19ada-25a5-4a32-b3b7-347bee5be36b")
17058IStartMenuPinnedList : public IUnknown
17059{
17060    virtual HRESULT STDMETHODCALLTYPE RemoveFromList(
17061        IShellItem *pitem) = 0;
17062
17063};
17064#ifdef __CRT_UUID_DECL
17065__CRT_UUID_DECL(IStartMenuPinnedList, 0x4cd19ada, 0x25a5, 0x4a32, 0xb3,0xb7, 0x34,0x7b,0xee,0x5b,0xe3,0x6b)
17066#endif
17067#else
17068typedef struct IStartMenuPinnedListVtbl {
17069    BEGIN_INTERFACE
17070
17071    /*** IUnknown methods ***/
17072    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17073        IStartMenuPinnedList *This,
17074        REFIID riid,
17075        void **ppvObject);
17076
17077    ULONG (STDMETHODCALLTYPE *AddRef)(
17078        IStartMenuPinnedList *This);
17079
17080    ULONG (STDMETHODCALLTYPE *Release)(
17081        IStartMenuPinnedList *This);
17082
17083    /*** IStartMenuPinnedList methods ***/
17084    HRESULT (STDMETHODCALLTYPE *RemoveFromList)(
17085        IStartMenuPinnedList *This,
17086        IShellItem *pitem);
17087
17088    END_INTERFACE
17089} IStartMenuPinnedListVtbl;
17090
17091interface IStartMenuPinnedList {
17092    CONST_VTBL IStartMenuPinnedListVtbl* lpVtbl;
17093};
17094
17095#ifdef COBJMACROS
17096#ifndef WIDL_C_INLINE_WRAPPERS
17097/*** IUnknown methods ***/
17098#define IStartMenuPinnedList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17099#define IStartMenuPinnedList_AddRef(This) (This)->lpVtbl->AddRef(This)
17100#define IStartMenuPinnedList_Release(This) (This)->lpVtbl->Release(This)
17101/*** IStartMenuPinnedList methods ***/
17102#define IStartMenuPinnedList_RemoveFromList(This,pitem) (This)->lpVtbl->RemoveFromList(This,pitem)
17103#else
17104/*** IUnknown methods ***/
17105static inline HRESULT IStartMenuPinnedList_QueryInterface(IStartMenuPinnedList* This,REFIID riid,void **ppvObject) {
17106    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17107}
17108static inline ULONG IStartMenuPinnedList_AddRef(IStartMenuPinnedList* This) {
17109    return This->lpVtbl->AddRef(This);
17110}
17111static inline ULONG IStartMenuPinnedList_Release(IStartMenuPinnedList* This) {
17112    return This->lpVtbl->Release(This);
17113}
17114/*** IStartMenuPinnedList methods ***/
17115static inline HRESULT IStartMenuPinnedList_RemoveFromList(IStartMenuPinnedList* This,IShellItem *pitem) {
17116    return This->lpVtbl->RemoveFromList(This,pitem);
17117}
17118#endif
17119#endif
17120
17121#endif
17122
17123
17124#endif  /* __IStartMenuPinnedList_INTERFACE_DEFINED__ */
17125
17126
17127/*****************************************************************************
17128 * ICDBurn interface
17129 */
17130#ifndef __ICDBurn_INTERFACE_DEFINED__
17131#define __ICDBurn_INTERFACE_DEFINED__
17132
17133DEFINE_GUID(IID_ICDBurn, 0x3d73a659, 0xe5d0, 0x4d42, 0xaf,0xc0, 0x51,0x21,0xba,0x42,0x5c,0x8d);
17134#if defined(__cplusplus) && !defined(CINTERFACE)
17135MIDL_INTERFACE("3d73a659-e5d0-4d42-afc0-5121ba425c8d")
17136ICDBurn : public IUnknown
17137{
17138    virtual HRESULT STDMETHODCALLTYPE GetRecorderDriveLetter(
17139        LPWSTR pszDrive,
17140        UINT cch) = 0;
17141
17142    virtual HRESULT STDMETHODCALLTYPE Burn(
17143        HWND hwnd) = 0;
17144
17145    virtual HRESULT STDMETHODCALLTYPE HasRecordableDrive(
17146        WINBOOL *pfHasRecorder) = 0;
17147
17148};
17149#ifdef __CRT_UUID_DECL
17150__CRT_UUID_DECL(ICDBurn, 0x3d73a659, 0xe5d0, 0x4d42, 0xaf,0xc0, 0x51,0x21,0xba,0x42,0x5c,0x8d)
17151#endif
17152#else
17153typedef struct ICDBurnVtbl {
17154    BEGIN_INTERFACE
17155
17156    /*** IUnknown methods ***/
17157    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17158        ICDBurn *This,
17159        REFIID riid,
17160        void **ppvObject);
17161
17162    ULONG (STDMETHODCALLTYPE *AddRef)(
17163        ICDBurn *This);
17164
17165    ULONG (STDMETHODCALLTYPE *Release)(
17166        ICDBurn *This);
17167
17168    /*** ICDBurn methods ***/
17169    HRESULT (STDMETHODCALLTYPE *GetRecorderDriveLetter)(
17170        ICDBurn *This,
17171        LPWSTR pszDrive,
17172        UINT cch);
17173
17174    HRESULT (STDMETHODCALLTYPE *Burn)(
17175        ICDBurn *This,
17176        HWND hwnd);
17177
17178    HRESULT (STDMETHODCALLTYPE *HasRecordableDrive)(
17179        ICDBurn *This,
17180        WINBOOL *pfHasRecorder);
17181
17182    END_INTERFACE
17183} ICDBurnVtbl;
17184
17185interface ICDBurn {
17186    CONST_VTBL ICDBurnVtbl* lpVtbl;
17187};
17188
17189#ifdef COBJMACROS
17190#ifndef WIDL_C_INLINE_WRAPPERS
17191/*** IUnknown methods ***/
17192#define ICDBurn_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17193#define ICDBurn_AddRef(This) (This)->lpVtbl->AddRef(This)
17194#define ICDBurn_Release(This) (This)->lpVtbl->Release(This)
17195/*** ICDBurn methods ***/
17196#define ICDBurn_GetRecorderDriveLetter(This,pszDrive,cch) (This)->lpVtbl->GetRecorderDriveLetter(This,pszDrive,cch)
17197#define ICDBurn_Burn(This,hwnd) (This)->lpVtbl->Burn(This,hwnd)
17198#define ICDBurn_HasRecordableDrive(This,pfHasRecorder) (This)->lpVtbl->HasRecordableDrive(This,pfHasRecorder)
17199#else
17200/*** IUnknown methods ***/
17201static inline HRESULT ICDBurn_QueryInterface(ICDBurn* This,REFIID riid,void **ppvObject) {
17202    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17203}
17204static inline ULONG ICDBurn_AddRef(ICDBurn* This) {
17205    return This->lpVtbl->AddRef(This);
17206}
17207static inline ULONG ICDBurn_Release(ICDBurn* This) {
17208    return This->lpVtbl->Release(This);
17209}
17210/*** ICDBurn methods ***/
17211static inline HRESULT ICDBurn_GetRecorderDriveLetter(ICDBurn* This,LPWSTR pszDrive,UINT cch) {
17212    return This->lpVtbl->GetRecorderDriveLetter(This,pszDrive,cch);
17213}
17214static inline HRESULT ICDBurn_Burn(ICDBurn* This,HWND hwnd) {
17215    return This->lpVtbl->Burn(This,hwnd);
17216}
17217static inline HRESULT ICDBurn_HasRecordableDrive(ICDBurn* This,WINBOOL *pfHasRecorder) {
17218    return This->lpVtbl->HasRecordableDrive(This,pfHasRecorder);
17219}
17220#endif
17221#endif
17222
17223#endif
17224
17225
17226#endif  /* __ICDBurn_INTERFACE_DEFINED__ */
17227
17228
17229#define IDD_WIZEXTN_FIRST 0x5000
17230#define IDD_WIZEXTN_LAST 0x5100
17231
17232/*****************************************************************************
17233 * IWizardSite interface
17234 */
17235#ifndef __IWizardSite_INTERFACE_DEFINED__
17236#define __IWizardSite_INTERFACE_DEFINED__
17237
17238DEFINE_GUID(IID_IWizardSite, 0x88960f5b, 0x422f, 0x4e7b, 0x80,0x13, 0x73,0x41,0x53,0x81,0xc3,0xc3);
17239#if defined(__cplusplus) && !defined(CINTERFACE)
17240MIDL_INTERFACE("88960f5b-422f-4e7b-8013-73415381c3c3")
17241IWizardSite : public IUnknown
17242{
17243    virtual HRESULT STDMETHODCALLTYPE GetPreviousPage(
17244        HPROPSHEETPAGE *phpage) = 0;
17245
17246    virtual HRESULT STDMETHODCALLTYPE GetNextPage(
17247        HPROPSHEETPAGE *phpage) = 0;
17248
17249    virtual HRESULT STDMETHODCALLTYPE GetCancelledPage(
17250        HPROPSHEETPAGE *phpage) = 0;
17251
17252};
17253#ifdef __CRT_UUID_DECL
17254__CRT_UUID_DECL(IWizardSite, 0x88960f5b, 0x422f, 0x4e7b, 0x80,0x13, 0x73,0x41,0x53,0x81,0xc3,0xc3)
17255#endif
17256#else
17257typedef struct IWizardSiteVtbl {
17258    BEGIN_INTERFACE
17259
17260    /*** IUnknown methods ***/
17261    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17262        IWizardSite *This,
17263        REFIID riid,
17264        void **ppvObject);
17265
17266    ULONG (STDMETHODCALLTYPE *AddRef)(
17267        IWizardSite *This);
17268
17269    ULONG (STDMETHODCALLTYPE *Release)(
17270        IWizardSite *This);
17271
17272    /*** IWizardSite methods ***/
17273    HRESULT (STDMETHODCALLTYPE *GetPreviousPage)(
17274        IWizardSite *This,
17275        HPROPSHEETPAGE *phpage);
17276
17277    HRESULT (STDMETHODCALLTYPE *GetNextPage)(
17278        IWizardSite *This,
17279        HPROPSHEETPAGE *phpage);
17280
17281    HRESULT (STDMETHODCALLTYPE *GetCancelledPage)(
17282        IWizardSite *This,
17283        HPROPSHEETPAGE *phpage);
17284
17285    END_INTERFACE
17286} IWizardSiteVtbl;
17287
17288interface IWizardSite {
17289    CONST_VTBL IWizardSiteVtbl* lpVtbl;
17290};
17291
17292#ifdef COBJMACROS
17293#ifndef WIDL_C_INLINE_WRAPPERS
17294/*** IUnknown methods ***/
17295#define IWizardSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17296#define IWizardSite_AddRef(This) (This)->lpVtbl->AddRef(This)
17297#define IWizardSite_Release(This) (This)->lpVtbl->Release(This)
17298/*** IWizardSite methods ***/
17299#define IWizardSite_GetPreviousPage(This,phpage) (This)->lpVtbl->GetPreviousPage(This,phpage)
17300#define IWizardSite_GetNextPage(This,phpage) (This)->lpVtbl->GetNextPage(This,phpage)
17301#define IWizardSite_GetCancelledPage(This,phpage) (This)->lpVtbl->GetCancelledPage(This,phpage)
17302#else
17303/*** IUnknown methods ***/
17304static inline HRESULT IWizardSite_QueryInterface(IWizardSite* This,REFIID riid,void **ppvObject) {
17305    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17306}
17307static inline ULONG IWizardSite_AddRef(IWizardSite* This) {
17308    return This->lpVtbl->AddRef(This);
17309}
17310static inline ULONG IWizardSite_Release(IWizardSite* This) {
17311    return This->lpVtbl->Release(This);
17312}
17313/*** IWizardSite methods ***/
17314static inline HRESULT IWizardSite_GetPreviousPage(IWizardSite* This,HPROPSHEETPAGE *phpage) {
17315    return This->lpVtbl->GetPreviousPage(This,phpage);
17316}
17317static inline HRESULT IWizardSite_GetNextPage(IWizardSite* This,HPROPSHEETPAGE *phpage) {
17318    return This->lpVtbl->GetNextPage(This,phpage);
17319}
17320static inline HRESULT IWizardSite_GetCancelledPage(IWizardSite* This,HPROPSHEETPAGE *phpage) {
17321    return This->lpVtbl->GetCancelledPage(This,phpage);
17322}
17323#endif
17324#endif
17325
17326#endif
17327
17328
17329#endif  /* __IWizardSite_INTERFACE_DEFINED__ */
17330
17331
17332#define SID_WizardSite IID_IWizardSite
17333
17334/*****************************************************************************
17335 * IWizardExtension interface
17336 */
17337#ifndef __IWizardExtension_INTERFACE_DEFINED__
17338#define __IWizardExtension_INTERFACE_DEFINED__
17339
17340DEFINE_GUID(IID_IWizardExtension, 0xc02ea696, 0x86cc, 0x491e, 0x9b,0x23, 0x74,0x39,0x4a,0x04,0x44,0xa8);
17341#if defined(__cplusplus) && !defined(CINTERFACE)
17342MIDL_INTERFACE("c02ea696-86cc-491e-9b23-74394a0444a8")
17343IWizardExtension : public IUnknown
17344{
17345    virtual HRESULT STDMETHODCALLTYPE AddPages(
17346        HPROPSHEETPAGE *aPages,
17347        UINT cPages,
17348        UINT *pnPagesAdded) = 0;
17349
17350    virtual HRESULT STDMETHODCALLTYPE GetFirstPage(
17351        HPROPSHEETPAGE *phpage) = 0;
17352
17353    virtual HRESULT STDMETHODCALLTYPE GetLastPage(
17354        HPROPSHEETPAGE *phpage) = 0;
17355
17356};
17357#ifdef __CRT_UUID_DECL
17358__CRT_UUID_DECL(IWizardExtension, 0xc02ea696, 0x86cc, 0x491e, 0x9b,0x23, 0x74,0x39,0x4a,0x04,0x44,0xa8)
17359#endif
17360#else
17361typedef struct IWizardExtensionVtbl {
17362    BEGIN_INTERFACE
17363
17364    /*** IUnknown methods ***/
17365    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17366        IWizardExtension *This,
17367        REFIID riid,
17368        void **ppvObject);
17369
17370    ULONG (STDMETHODCALLTYPE *AddRef)(
17371        IWizardExtension *This);
17372
17373    ULONG (STDMETHODCALLTYPE *Release)(
17374        IWizardExtension *This);
17375
17376    /*** IWizardExtension methods ***/
17377    HRESULT (STDMETHODCALLTYPE *AddPages)(
17378        IWizardExtension *This,
17379        HPROPSHEETPAGE *aPages,
17380        UINT cPages,
17381        UINT *pnPagesAdded);
17382
17383    HRESULT (STDMETHODCALLTYPE *GetFirstPage)(
17384        IWizardExtension *This,
17385        HPROPSHEETPAGE *phpage);
17386
17387    HRESULT (STDMETHODCALLTYPE *GetLastPage)(
17388        IWizardExtension *This,
17389        HPROPSHEETPAGE *phpage);
17390
17391    END_INTERFACE
17392} IWizardExtensionVtbl;
17393
17394interface IWizardExtension {
17395    CONST_VTBL IWizardExtensionVtbl* lpVtbl;
17396};
17397
17398#ifdef COBJMACROS
17399#ifndef WIDL_C_INLINE_WRAPPERS
17400/*** IUnknown methods ***/
17401#define IWizardExtension_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17402#define IWizardExtension_AddRef(This) (This)->lpVtbl->AddRef(This)
17403#define IWizardExtension_Release(This) (This)->lpVtbl->Release(This)
17404/*** IWizardExtension methods ***/
17405#define IWizardExtension_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
17406#define IWizardExtension_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
17407#define IWizardExtension_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
17408#else
17409/*** IUnknown methods ***/
17410static inline HRESULT IWizardExtension_QueryInterface(IWizardExtension* This,REFIID riid,void **ppvObject) {
17411    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17412}
17413static inline ULONG IWizardExtension_AddRef(IWizardExtension* This) {
17414    return This->lpVtbl->AddRef(This);
17415}
17416static inline ULONG IWizardExtension_Release(IWizardExtension* This) {
17417    return This->lpVtbl->Release(This);
17418}
17419/*** IWizardExtension methods ***/
17420static inline HRESULT IWizardExtension_AddPages(IWizardExtension* This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded) {
17421    return This->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded);
17422}
17423static inline HRESULT IWizardExtension_GetFirstPage(IWizardExtension* This,HPROPSHEETPAGE *phpage) {
17424    return This->lpVtbl->GetFirstPage(This,phpage);
17425}
17426static inline HRESULT IWizardExtension_GetLastPage(IWizardExtension* This,HPROPSHEETPAGE *phpage) {
17427    return This->lpVtbl->GetLastPage(This,phpage);
17428}
17429#endif
17430#endif
17431
17432#endif
17433
17434
17435#endif  /* __IWizardExtension_INTERFACE_DEFINED__ */
17436
17437
17438/*****************************************************************************
17439 * IWebWizardExtension interface
17440 */
17441#ifndef __IWebWizardExtension_INTERFACE_DEFINED__
17442#define __IWebWizardExtension_INTERFACE_DEFINED__
17443
17444DEFINE_GUID(IID_IWebWizardExtension, 0x0e6b3f66, 0x98d1, 0x48c0, 0xa2,0x22, 0xfb,0xde,0x74,0xe2,0xfb,0xc5);
17445#if defined(__cplusplus) && !defined(CINTERFACE)
17446MIDL_INTERFACE("0e6b3f66-98d1-48c0-a222-fbde74e2fbc5")
17447IWebWizardExtension : public IWizardExtension
17448{
17449    virtual HRESULT STDMETHODCALLTYPE SetInitialURL(
17450        LPCWSTR pszURL) = 0;
17451
17452    virtual HRESULT STDMETHODCALLTYPE SetErrorURL(
17453        LPCWSTR pszErrorURL) = 0;
17454
17455};
17456#ifdef __CRT_UUID_DECL
17457__CRT_UUID_DECL(IWebWizardExtension, 0x0e6b3f66, 0x98d1, 0x48c0, 0xa2,0x22, 0xfb,0xde,0x74,0xe2,0xfb,0xc5)
17458#endif
17459#else
17460typedef struct IWebWizardExtensionVtbl {
17461    BEGIN_INTERFACE
17462
17463    /*** IUnknown methods ***/
17464    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17465        IWebWizardExtension *This,
17466        REFIID riid,
17467        void **ppvObject);
17468
17469    ULONG (STDMETHODCALLTYPE *AddRef)(
17470        IWebWizardExtension *This);
17471
17472    ULONG (STDMETHODCALLTYPE *Release)(
17473        IWebWizardExtension *This);
17474
17475    /*** IWizardExtension methods ***/
17476    HRESULT (STDMETHODCALLTYPE *AddPages)(
17477        IWebWizardExtension *This,
17478        HPROPSHEETPAGE *aPages,
17479        UINT cPages,
17480        UINT *pnPagesAdded);
17481
17482    HRESULT (STDMETHODCALLTYPE *GetFirstPage)(
17483        IWebWizardExtension *This,
17484        HPROPSHEETPAGE *phpage);
17485
17486    HRESULT (STDMETHODCALLTYPE *GetLastPage)(
17487        IWebWizardExtension *This,
17488        HPROPSHEETPAGE *phpage);
17489
17490    /*** IWebWizardExtension methods ***/
17491    HRESULT (STDMETHODCALLTYPE *SetInitialURL)(
17492        IWebWizardExtension *This,
17493        LPCWSTR pszURL);
17494
17495    HRESULT (STDMETHODCALLTYPE *SetErrorURL)(
17496        IWebWizardExtension *This,
17497        LPCWSTR pszErrorURL);
17498
17499    END_INTERFACE
17500} IWebWizardExtensionVtbl;
17501
17502interface IWebWizardExtension {
17503    CONST_VTBL IWebWizardExtensionVtbl* lpVtbl;
17504};
17505
17506#ifdef COBJMACROS
17507#ifndef WIDL_C_INLINE_WRAPPERS
17508/*** IUnknown methods ***/
17509#define IWebWizardExtension_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17510#define IWebWizardExtension_AddRef(This) (This)->lpVtbl->AddRef(This)
17511#define IWebWizardExtension_Release(This) (This)->lpVtbl->Release(This)
17512/*** IWizardExtension methods ***/
17513#define IWebWizardExtension_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
17514#define IWebWizardExtension_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
17515#define IWebWizardExtension_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
17516/*** IWebWizardExtension methods ***/
17517#define IWebWizardExtension_SetInitialURL(This,pszURL) (This)->lpVtbl->SetInitialURL(This,pszURL)
17518#define IWebWizardExtension_SetErrorURL(This,pszErrorURL) (This)->lpVtbl->SetErrorURL(This,pszErrorURL)
17519#else
17520/*** IUnknown methods ***/
17521static inline HRESULT IWebWizardExtension_QueryInterface(IWebWizardExtension* This,REFIID riid,void **ppvObject) {
17522    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17523}
17524static inline ULONG IWebWizardExtension_AddRef(IWebWizardExtension* This) {
17525    return This->lpVtbl->AddRef(This);
17526}
17527static inline ULONG IWebWizardExtension_Release(IWebWizardExtension* This) {
17528    return This->lpVtbl->Release(This);
17529}
17530/*** IWizardExtension methods ***/
17531static inline HRESULT IWebWizardExtension_AddPages(IWebWizardExtension* This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded) {
17532    return This->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded);
17533}
17534static inline HRESULT IWebWizardExtension_GetFirstPage(IWebWizardExtension* This,HPROPSHEETPAGE *phpage) {
17535    return This->lpVtbl->GetFirstPage(This,phpage);
17536}
17537static inline HRESULT IWebWizardExtension_GetLastPage(IWebWizardExtension* This,HPROPSHEETPAGE *phpage) {
17538    return This->lpVtbl->GetLastPage(This,phpage);
17539}
17540/*** IWebWizardExtension methods ***/
17541static inline HRESULT IWebWizardExtension_SetInitialURL(IWebWizardExtension* This,LPCWSTR pszURL) {
17542    return This->lpVtbl->SetInitialURL(This,pszURL);
17543}
17544static inline HRESULT IWebWizardExtension_SetErrorURL(IWebWizardExtension* This,LPCWSTR pszErrorURL) {
17545    return This->lpVtbl->SetErrorURL(This,pszErrorURL);
17546}
17547#endif
17548#endif
17549
17550#endif
17551
17552
17553#endif  /* __IWebWizardExtension_INTERFACE_DEFINED__ */
17554
17555
17556#define SID_WebWizardHost IID_IWebWizardExtension
17557
17558#define SHPWHF_NORECOMPRESS 0x00000001
17559#define SHPWHF_NONETPLACECREATE 0x00000002
17560#define SHPWHF_NOFILESELECTOR 0x00000004
17561#define SHPWHF_USEMRU 0x00000008
17562#if NTDDI_VERSION >= NTDDI_VISTA
17563#define SHPWHF_ANYLOCATION 0x00000100
17564#endif
17565#define SHPWHF_VALIDATEVIAWEBFOLDERS 0x00010000
17566
17567#ifndef __IXMLDOMDocument_FWD_DEFINED__
17568#define __IXMLDOMDocument_FWD_DEFINED__
17569typedef interface IXMLDOMDocument IXMLDOMDocument;
17570#ifdef __cplusplus
17571interface IXMLDOMDocument;
17572#endif /* __cplusplus */
17573#endif
17574
17575
17576/*****************************************************************************
17577 * IPublishingWizard interface
17578 */
17579#ifndef __IPublishingWizard_INTERFACE_DEFINED__
17580#define __IPublishingWizard_INTERFACE_DEFINED__
17581
17582DEFINE_GUID(IID_IPublishingWizard, 0xaa9198bb, 0xccec, 0x472d, 0xbe,0xed, 0x19,0xa4,0xf6,0x73,0x3f,0x7a);
17583#if defined(__cplusplus) && !defined(CINTERFACE)
17584MIDL_INTERFACE("aa9198bb-ccec-472d-beed-19a4f6733f7a")
17585IPublishingWizard : public IWizardExtension
17586{
17587    virtual HRESULT STDMETHODCALLTYPE Initialize(
17588        IDataObject *pdo,
17589        DWORD dwOptions,
17590        LPCWSTR pszServiceScope) = 0;
17591
17592    virtual HRESULT STDMETHODCALLTYPE GetTransferManifest(
17593        HRESULT *phrFromTransfer,
17594        IXMLDOMDocument **pdocManifest) = 0;
17595
17596};
17597#ifdef __CRT_UUID_DECL
17598__CRT_UUID_DECL(IPublishingWizard, 0xaa9198bb, 0xccec, 0x472d, 0xbe,0xed, 0x19,0xa4,0xf6,0x73,0x3f,0x7a)
17599#endif
17600#else
17601typedef struct IPublishingWizardVtbl {
17602    BEGIN_INTERFACE
17603
17604    /*** IUnknown methods ***/
17605    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17606        IPublishingWizard *This,
17607        REFIID riid,
17608        void **ppvObject);
17609
17610    ULONG (STDMETHODCALLTYPE *AddRef)(
17611        IPublishingWizard *This);
17612
17613    ULONG (STDMETHODCALLTYPE *Release)(
17614        IPublishingWizard *This);
17615
17616    /*** IWizardExtension methods ***/
17617    HRESULT (STDMETHODCALLTYPE *AddPages)(
17618        IPublishingWizard *This,
17619        HPROPSHEETPAGE *aPages,
17620        UINT cPages,
17621        UINT *pnPagesAdded);
17622
17623    HRESULT (STDMETHODCALLTYPE *GetFirstPage)(
17624        IPublishingWizard *This,
17625        HPROPSHEETPAGE *phpage);
17626
17627    HRESULT (STDMETHODCALLTYPE *GetLastPage)(
17628        IPublishingWizard *This,
17629        HPROPSHEETPAGE *phpage);
17630
17631    /*** IPublishingWizard methods ***/
17632    HRESULT (STDMETHODCALLTYPE *Initialize)(
17633        IPublishingWizard *This,
17634        IDataObject *pdo,
17635        DWORD dwOptions,
17636        LPCWSTR pszServiceScope);
17637
17638    HRESULT (STDMETHODCALLTYPE *GetTransferManifest)(
17639        IPublishingWizard *This,
17640        HRESULT *phrFromTransfer,
17641        IXMLDOMDocument **pdocManifest);
17642
17643    END_INTERFACE
17644} IPublishingWizardVtbl;
17645
17646interface IPublishingWizard {
17647    CONST_VTBL IPublishingWizardVtbl* lpVtbl;
17648};
17649
17650#ifdef COBJMACROS
17651#ifndef WIDL_C_INLINE_WRAPPERS
17652/*** IUnknown methods ***/
17653#define IPublishingWizard_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17654#define IPublishingWizard_AddRef(This) (This)->lpVtbl->AddRef(This)
17655#define IPublishingWizard_Release(This) (This)->lpVtbl->Release(This)
17656/*** IWizardExtension methods ***/
17657#define IPublishingWizard_AddPages(This,aPages,cPages,pnPagesAdded) (This)->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded)
17658#define IPublishingWizard_GetFirstPage(This,phpage) (This)->lpVtbl->GetFirstPage(This,phpage)
17659#define IPublishingWizard_GetLastPage(This,phpage) (This)->lpVtbl->GetLastPage(This,phpage)
17660/*** IPublishingWizard methods ***/
17661#define IPublishingWizard_Initialize(This,pdo,dwOptions,pszServiceScope) (This)->lpVtbl->Initialize(This,pdo,dwOptions,pszServiceScope)
17662#define IPublishingWizard_GetTransferManifest(This,phrFromTransfer,pdocManifest) (This)->lpVtbl->GetTransferManifest(This,phrFromTransfer,pdocManifest)
17663#else
17664/*** IUnknown methods ***/
17665static inline HRESULT IPublishingWizard_QueryInterface(IPublishingWizard* This,REFIID riid,void **ppvObject) {
17666    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17667}
17668static inline ULONG IPublishingWizard_AddRef(IPublishingWizard* This) {
17669    return This->lpVtbl->AddRef(This);
17670}
17671static inline ULONG IPublishingWizard_Release(IPublishingWizard* This) {
17672    return This->lpVtbl->Release(This);
17673}
17674/*** IWizardExtension methods ***/
17675static inline HRESULT IPublishingWizard_AddPages(IPublishingWizard* This,HPROPSHEETPAGE *aPages,UINT cPages,UINT *pnPagesAdded) {
17676    return This->lpVtbl->AddPages(This,aPages,cPages,pnPagesAdded);
17677}
17678static inline HRESULT IPublishingWizard_GetFirstPage(IPublishingWizard* This,HPROPSHEETPAGE *phpage) {
17679    return This->lpVtbl->GetFirstPage(This,phpage);
17680}
17681static inline HRESULT IPublishingWizard_GetLastPage(IPublishingWizard* This,HPROPSHEETPAGE *phpage) {
17682    return This->lpVtbl->GetLastPage(This,phpage);
17683}
17684/*** IPublishingWizard methods ***/
17685static inline HRESULT IPublishingWizard_Initialize(IPublishingWizard* This,IDataObject *pdo,DWORD dwOptions,LPCWSTR pszServiceScope) {
17686    return This->lpVtbl->Initialize(This,pdo,dwOptions,pszServiceScope);
17687}
17688static inline HRESULT IPublishingWizard_GetTransferManifest(IPublishingWizard* This,HRESULT *phrFromTransfer,IXMLDOMDocument **pdocManifest) {
17689    return This->lpVtbl->GetTransferManifest(This,phrFromTransfer,pdocManifest);
17690}
17691#endif
17692#endif
17693
17694#endif
17695
17696
17697#endif  /* __IPublishingWizard_INTERFACE_DEFINED__ */
17698
17699
17700/*****************************************************************************
17701 * IFolderViewHost interface
17702 */
17703#ifndef __IFolderViewHost_INTERFACE_DEFINED__
17704#define __IFolderViewHost_INTERFACE_DEFINED__
17705
17706DEFINE_GUID(IID_IFolderViewHost, 0x1ea58f02, 0xd55a, 0x411d, 0xb0,0x9e, 0x9e,0x65,0xac,0x21,0x60,0x5b);
17707#if defined(__cplusplus) && !defined(CINTERFACE)
17708MIDL_INTERFACE("1ea58f02-d55a-411d-b09e-9e65ac21605b")
17709IFolderViewHost : public IUnknown
17710{
17711    virtual HRESULT STDMETHODCALLTYPE Initialize(
17712        HWND hwndParent,
17713        IDataObject *pdo,
17714        RECT *prc) = 0;
17715
17716};
17717#ifdef __CRT_UUID_DECL
17718__CRT_UUID_DECL(IFolderViewHost, 0x1ea58f02, 0xd55a, 0x411d, 0xb0,0x9e, 0x9e,0x65,0xac,0x21,0x60,0x5b)
17719#endif
17720#else
17721typedef struct IFolderViewHostVtbl {
17722    BEGIN_INTERFACE
17723
17724    /*** IUnknown methods ***/
17725    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17726        IFolderViewHost *This,
17727        REFIID riid,
17728        void **ppvObject);
17729
17730    ULONG (STDMETHODCALLTYPE *AddRef)(
17731        IFolderViewHost *This);
17732
17733    ULONG (STDMETHODCALLTYPE *Release)(
17734        IFolderViewHost *This);
17735
17736    /*** IFolderViewHost methods ***/
17737    HRESULT (STDMETHODCALLTYPE *Initialize)(
17738        IFolderViewHost *This,
17739        HWND hwndParent,
17740        IDataObject *pdo,
17741        RECT *prc);
17742
17743    END_INTERFACE
17744} IFolderViewHostVtbl;
17745
17746interface IFolderViewHost {
17747    CONST_VTBL IFolderViewHostVtbl* lpVtbl;
17748};
17749
17750#ifdef COBJMACROS
17751#ifndef WIDL_C_INLINE_WRAPPERS
17752/*** IUnknown methods ***/
17753#define IFolderViewHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17754#define IFolderViewHost_AddRef(This) (This)->lpVtbl->AddRef(This)
17755#define IFolderViewHost_Release(This) (This)->lpVtbl->Release(This)
17756/*** IFolderViewHost methods ***/
17757#define IFolderViewHost_Initialize(This,hwndParent,pdo,prc) (This)->lpVtbl->Initialize(This,hwndParent,pdo,prc)
17758#else
17759/*** IUnknown methods ***/
17760static inline HRESULT IFolderViewHost_QueryInterface(IFolderViewHost* This,REFIID riid,void **ppvObject) {
17761    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17762}
17763static inline ULONG IFolderViewHost_AddRef(IFolderViewHost* This) {
17764    return This->lpVtbl->AddRef(This);
17765}
17766static inline ULONG IFolderViewHost_Release(IFolderViewHost* This) {
17767    return This->lpVtbl->Release(This);
17768}
17769/*** IFolderViewHost methods ***/
17770static inline HRESULT IFolderViewHost_Initialize(IFolderViewHost* This,HWND hwndParent,IDataObject *pdo,RECT *prc) {
17771    return This->lpVtbl->Initialize(This,hwndParent,pdo,prc);
17772}
17773#endif
17774#endif
17775
17776#endif
17777
17778
17779#endif  /* __IFolderViewHost_INTERFACE_DEFINED__ */
17780
17781
17782#if _WIN32_IE >= _WIN32_IE_IE70
17783/*****************************************************************************
17784 * IExplorerBrowserEvents interface
17785 */
17786#ifndef __IExplorerBrowserEvents_INTERFACE_DEFINED__
17787#define __IExplorerBrowserEvents_INTERFACE_DEFINED__
17788
17789DEFINE_GUID(IID_IExplorerBrowserEvents, 0x361bbdc7, 0xe6ee, 0x4e13, 0xbe,0x58, 0x58,0xe2,0x24,0x0c,0x81,0x0f);
17790#if defined(__cplusplus) && !defined(CINTERFACE)
17791MIDL_INTERFACE("361bbdc7-e6ee-4e13-be58-58e2240c810f")
17792IExplorerBrowserEvents : public IUnknown
17793{
17794    virtual HRESULT STDMETHODCALLTYPE OnNavigationPending(
17795        PCIDLIST_ABSOLUTE pidlFolder) = 0;
17796
17797    virtual HRESULT STDMETHODCALLTYPE OnViewCreated(
17798        IShellView *psv) = 0;
17799
17800    virtual HRESULT STDMETHODCALLTYPE OnNavigationComplete(
17801        PCIDLIST_ABSOLUTE pidlFolder) = 0;
17802
17803    virtual HRESULT STDMETHODCALLTYPE OnNavigationFailed(
17804        PCIDLIST_ABSOLUTE pidlFolder) = 0;
17805
17806};
17807#ifdef __CRT_UUID_DECL
17808__CRT_UUID_DECL(IExplorerBrowserEvents, 0x361bbdc7, 0xe6ee, 0x4e13, 0xbe,0x58, 0x58,0xe2,0x24,0x0c,0x81,0x0f)
17809#endif
17810#else
17811typedef struct IExplorerBrowserEventsVtbl {
17812    BEGIN_INTERFACE
17813
17814    /*** IUnknown methods ***/
17815    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17816        IExplorerBrowserEvents *This,
17817        REFIID riid,
17818        void **ppvObject);
17819
17820    ULONG (STDMETHODCALLTYPE *AddRef)(
17821        IExplorerBrowserEvents *This);
17822
17823    ULONG (STDMETHODCALLTYPE *Release)(
17824        IExplorerBrowserEvents *This);
17825
17826    /*** IExplorerBrowserEvents methods ***/
17827    HRESULT (STDMETHODCALLTYPE *OnNavigationPending)(
17828        IExplorerBrowserEvents *This,
17829        PCIDLIST_ABSOLUTE pidlFolder);
17830
17831    HRESULT (STDMETHODCALLTYPE *OnViewCreated)(
17832        IExplorerBrowserEvents *This,
17833        IShellView *psv);
17834
17835    HRESULT (STDMETHODCALLTYPE *OnNavigationComplete)(
17836        IExplorerBrowserEvents *This,
17837        PCIDLIST_ABSOLUTE pidlFolder);
17838
17839    HRESULT (STDMETHODCALLTYPE *OnNavigationFailed)(
17840        IExplorerBrowserEvents *This,
17841        PCIDLIST_ABSOLUTE pidlFolder);
17842
17843    END_INTERFACE
17844} IExplorerBrowserEventsVtbl;
17845
17846interface IExplorerBrowserEvents {
17847    CONST_VTBL IExplorerBrowserEventsVtbl* lpVtbl;
17848};
17849
17850#ifdef COBJMACROS
17851#ifndef WIDL_C_INLINE_WRAPPERS
17852/*** IUnknown methods ***/
17853#define IExplorerBrowserEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
17854#define IExplorerBrowserEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
17855#define IExplorerBrowserEvents_Release(This) (This)->lpVtbl->Release(This)
17856/*** IExplorerBrowserEvents methods ***/
17857#define IExplorerBrowserEvents_OnNavigationPending(This,pidlFolder) (This)->lpVtbl->OnNavigationPending(This,pidlFolder)
17858#define IExplorerBrowserEvents_OnViewCreated(This,psv) (This)->lpVtbl->OnViewCreated(This,psv)
17859#define IExplorerBrowserEvents_OnNavigationComplete(This,pidlFolder) (This)->lpVtbl->OnNavigationComplete(This,pidlFolder)
17860#define IExplorerBrowserEvents_OnNavigationFailed(This,pidlFolder) (This)->lpVtbl->OnNavigationFailed(This,pidlFolder)
17861#else
17862/*** IUnknown methods ***/
17863static inline HRESULT IExplorerBrowserEvents_QueryInterface(IExplorerBrowserEvents* This,REFIID riid,void **ppvObject) {
17864    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
17865}
17866static inline ULONG IExplorerBrowserEvents_AddRef(IExplorerBrowserEvents* This) {
17867    return This->lpVtbl->AddRef(This);
17868}
17869static inline ULONG IExplorerBrowserEvents_Release(IExplorerBrowserEvents* This) {
17870    return This->lpVtbl->Release(This);
17871}
17872/*** IExplorerBrowserEvents methods ***/
17873static inline HRESULT IExplorerBrowserEvents_OnNavigationPending(IExplorerBrowserEvents* This,PCIDLIST_ABSOLUTE pidlFolder) {
17874    return This->lpVtbl->OnNavigationPending(This,pidlFolder);
17875}
17876static inline HRESULT IExplorerBrowserEvents_OnViewCreated(IExplorerBrowserEvents* This,IShellView *psv) {
17877    return This->lpVtbl->OnViewCreated(This,psv);
17878}
17879static inline HRESULT IExplorerBrowserEvents_OnNavigationComplete(IExplorerBrowserEvents* This,PCIDLIST_ABSOLUTE pidlFolder) {
17880    return This->lpVtbl->OnNavigationComplete(This,pidlFolder);
17881}
17882static inline HRESULT IExplorerBrowserEvents_OnNavigationFailed(IExplorerBrowserEvents* This,PCIDLIST_ABSOLUTE pidlFolder) {
17883    return This->lpVtbl->OnNavigationFailed(This,pidlFolder);
17884}
17885#endif
17886#endif
17887
17888#endif
17889
17890
17891#endif  /* __IExplorerBrowserEvents_INTERFACE_DEFINED__ */
17892
17893
17894typedef enum EXPLORER_BROWSER_OPTIONS {
17895    EBO_NONE = 0x0,
17896    EBO_NAVIGATEONCE = 0x1,
17897    EBO_SHOWFRAMES = 0x2,
17898    EBO_ALWAYSNAVIGATE = 0x4,
17899    EBO_NOTRAVELLOG = 0x8,
17900    EBO_NOWRAPPERWINDOW = 0x10,
17901    EBO_HTMLSHAREPOINTVIEW = 0x20,
17902    EBO_NOBORDER = 0x40,
17903    EBO_NOPERSISTVIEWSTATE = 0x80
17904} EXPLORER_BROWSER_OPTIONS;
17905
17906DEFINE_ENUM_FLAG_OPERATORS(EXPLORER_BROWSER_OPTIONS)
17907
17908typedef enum EXPLORER_BROWSER_FILL_FLAGS {
17909    EBF_NONE = 0x0,
17910    EBF_SELECTFROMDATAOBJECT = 0x100,
17911    EBF_NODROPTARGET = 0x200
17912} EXPLORER_BROWSER_FILL_FLAGS;
17913
17914DEFINE_ENUM_FLAG_OPERATORS(EXPLORER_BROWSER_FILL_FLAGS)
17915
17916/*****************************************************************************
17917 * IExplorerBrowser interface
17918 */
17919#ifndef __IExplorerBrowser_INTERFACE_DEFINED__
17920#define __IExplorerBrowser_INTERFACE_DEFINED__
17921
17922DEFINE_GUID(IID_IExplorerBrowser, 0xdfd3b6b5, 0xc10c, 0x4be9, 0x85,0xf6, 0xa6,0x69,0x69,0xf4,0x02,0xf6);
17923#if defined(__cplusplus) && !defined(CINTERFACE)
17924MIDL_INTERFACE("dfd3b6b5-c10c-4be9-85f6-a66969f402f6")
17925IExplorerBrowser : public IUnknown
17926{
17927    virtual HRESULT STDMETHODCALLTYPE Initialize(
17928        HWND hwndParent,
17929        const RECT *prc,
17930        const FOLDERSETTINGS *pfs) = 0;
17931
17932    virtual HRESULT STDMETHODCALLTYPE Destroy(
17933        ) = 0;
17934
17935    virtual HRESULT STDMETHODCALLTYPE SetRect(
17936        HDWP *phdwp,
17937        RECT rcBrowser) = 0;
17938
17939    virtual HRESULT STDMETHODCALLTYPE SetPropertyBag(
17940        LPCWSTR pszPropertyBag) = 0;
17941
17942    virtual HRESULT STDMETHODCALLTYPE SetEmptyText(
17943        LPCWSTR pszEmptyText) = 0;
17944
17945    virtual HRESULT STDMETHODCALLTYPE SetFolderSettings(
17946        const FOLDERSETTINGS *pfs) = 0;
17947
17948    virtual HRESULT STDMETHODCALLTYPE Advise(
17949        IExplorerBrowserEvents *psbe,
17950        DWORD *pdwCookie) = 0;
17951
17952    virtual HRESULT STDMETHODCALLTYPE Unadvise(
17953        DWORD dwCookie) = 0;
17954
17955    virtual HRESULT STDMETHODCALLTYPE SetOptions(
17956        EXPLORER_BROWSER_OPTIONS dwFlag) = 0;
17957
17958    virtual HRESULT STDMETHODCALLTYPE GetOptions(
17959        EXPLORER_BROWSER_OPTIONS *pdwFlag) = 0;
17960
17961    virtual HRESULT STDMETHODCALLTYPE BrowseToIDList(
17962        PCUIDLIST_RELATIVE pidl,
17963        UINT uFlags) = 0;
17964
17965    virtual HRESULT STDMETHODCALLTYPE BrowseToObject(
17966        IUnknown *punk,
17967        UINT uFlags) = 0;
17968
17969    virtual HRESULT STDMETHODCALLTYPE FillFromObject(
17970        IUnknown *punk,
17971        EXPLORER_BROWSER_FILL_FLAGS dwFlags) = 0;
17972
17973    virtual HRESULT STDMETHODCALLTYPE RemoveAll(
17974        ) = 0;
17975
17976    virtual HRESULT STDMETHODCALLTYPE GetCurrentView(
17977        REFIID riid,
17978        void **ppv) = 0;
17979
17980};
17981#ifdef __CRT_UUID_DECL
17982__CRT_UUID_DECL(IExplorerBrowser, 0xdfd3b6b5, 0xc10c, 0x4be9, 0x85,0xf6, 0xa6,0x69,0x69,0xf4,0x02,0xf6)
17983#endif
17984#else
17985typedef struct IExplorerBrowserVtbl {
17986    BEGIN_INTERFACE
17987
17988    /*** IUnknown methods ***/
17989    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
17990        IExplorerBrowser *This,
17991        REFIID riid,
17992        void **ppvObject);
17993
17994    ULONG (STDMETHODCALLTYPE *AddRef)(
17995        IExplorerBrowser *This);
17996
17997    ULONG (STDMETHODCALLTYPE *Release)(
17998        IExplorerBrowser *This);
17999
18000    /*** IExplorerBrowser methods ***/
18001    HRESULT (STDMETHODCALLTYPE *Initialize)(
18002        IExplorerBrowser *This,
18003        HWND hwndParent,
18004        const RECT *prc,
18005        const FOLDERSETTINGS *pfs);
18006
18007    HRESULT (STDMETHODCALLTYPE *Destroy)(
18008        IExplorerBrowser *This);
18009
18010    HRESULT (STDMETHODCALLTYPE *SetRect)(
18011        IExplorerBrowser *This,
18012        HDWP *phdwp,
18013        RECT rcBrowser);
18014
18015    HRESULT (STDMETHODCALLTYPE *SetPropertyBag)(
18016        IExplorerBrowser *This,
18017        LPCWSTR pszPropertyBag);
18018
18019    HRESULT (STDMETHODCALLTYPE *SetEmptyText)(
18020        IExplorerBrowser *This,
18021        LPCWSTR pszEmptyText);
18022
18023    HRESULT (STDMETHODCALLTYPE *SetFolderSettings)(
18024        IExplorerBrowser *This,
18025        const FOLDERSETTINGS *pfs);
18026
18027    HRESULT (STDMETHODCALLTYPE *Advise)(
18028        IExplorerBrowser *This,
18029        IExplorerBrowserEvents *psbe,
18030        DWORD *pdwCookie);
18031
18032    HRESULT (STDMETHODCALLTYPE *Unadvise)(
18033        IExplorerBrowser *This,
18034        DWORD dwCookie);
18035
18036    HRESULT (STDMETHODCALLTYPE *SetOptions)(
18037        IExplorerBrowser *This,
18038        EXPLORER_BROWSER_OPTIONS dwFlag);
18039
18040    HRESULT (STDMETHODCALLTYPE *GetOptions)(
18041        IExplorerBrowser *This,
18042        EXPLORER_BROWSER_OPTIONS *pdwFlag);
18043
18044    HRESULT (STDMETHODCALLTYPE *BrowseToIDList)(
18045        IExplorerBrowser *This,
18046        PCUIDLIST_RELATIVE pidl,
18047        UINT uFlags);
18048
18049    HRESULT (STDMETHODCALLTYPE *BrowseToObject)(
18050        IExplorerBrowser *This,
18051        IUnknown *punk,
18052        UINT uFlags);
18053
18054    HRESULT (STDMETHODCALLTYPE *FillFromObject)(
18055        IExplorerBrowser *This,
18056        IUnknown *punk,
18057        EXPLORER_BROWSER_FILL_FLAGS dwFlags);
18058
18059    HRESULT (STDMETHODCALLTYPE *RemoveAll)(
18060        IExplorerBrowser *This);
18061
18062    HRESULT (STDMETHODCALLTYPE *GetCurrentView)(
18063        IExplorerBrowser *This,
18064        REFIID riid,
18065        void **ppv);
18066
18067    END_INTERFACE
18068} IExplorerBrowserVtbl;
18069
18070interface IExplorerBrowser {
18071    CONST_VTBL IExplorerBrowserVtbl* lpVtbl;
18072};
18073
18074#ifdef COBJMACROS
18075#ifndef WIDL_C_INLINE_WRAPPERS
18076/*** IUnknown methods ***/
18077#define IExplorerBrowser_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18078#define IExplorerBrowser_AddRef(This) (This)->lpVtbl->AddRef(This)
18079#define IExplorerBrowser_Release(This) (This)->lpVtbl->Release(This)
18080/*** IExplorerBrowser methods ***/
18081#define IExplorerBrowser_Initialize(This,hwndParent,prc,pfs) (This)->lpVtbl->Initialize(This,hwndParent,prc,pfs)
18082#define IExplorerBrowser_Destroy(This) (This)->lpVtbl->Destroy(This)
18083#define IExplorerBrowser_SetRect(This,phdwp,rcBrowser) (This)->lpVtbl->SetRect(This,phdwp,rcBrowser)
18084#define IExplorerBrowser_SetPropertyBag(This,pszPropertyBag) (This)->lpVtbl->SetPropertyBag(This,pszPropertyBag)
18085#define IExplorerBrowser_SetEmptyText(This,pszEmptyText) (This)->lpVtbl->SetEmptyText(This,pszEmptyText)
18086#define IExplorerBrowser_SetFolderSettings(This,pfs) (This)->lpVtbl->SetFolderSettings(This,pfs)
18087#define IExplorerBrowser_Advise(This,psbe,pdwCookie) (This)->lpVtbl->Advise(This,psbe,pdwCookie)
18088#define IExplorerBrowser_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
18089#define IExplorerBrowser_SetOptions(This,dwFlag) (This)->lpVtbl->SetOptions(This,dwFlag)
18090#define IExplorerBrowser_GetOptions(This,pdwFlag) (This)->lpVtbl->GetOptions(This,pdwFlag)
18091#define IExplorerBrowser_BrowseToIDList(This,pidl,uFlags) (This)->lpVtbl->BrowseToIDList(This,pidl,uFlags)
18092#define IExplorerBrowser_BrowseToObject(This,punk,uFlags) (This)->lpVtbl->BrowseToObject(This,punk,uFlags)
18093#define IExplorerBrowser_FillFromObject(This,punk,dwFlags) (This)->lpVtbl->FillFromObject(This,punk,dwFlags)
18094#define IExplorerBrowser_RemoveAll(This) (This)->lpVtbl->RemoveAll(This)
18095#define IExplorerBrowser_GetCurrentView(This,riid,ppv) (This)->lpVtbl->GetCurrentView(This,riid,ppv)
18096#else
18097/*** IUnknown methods ***/
18098static inline HRESULT IExplorerBrowser_QueryInterface(IExplorerBrowser* This,REFIID riid,void **ppvObject) {
18099    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18100}
18101static inline ULONG IExplorerBrowser_AddRef(IExplorerBrowser* This) {
18102    return This->lpVtbl->AddRef(This);
18103}
18104static inline ULONG IExplorerBrowser_Release(IExplorerBrowser* This) {
18105    return This->lpVtbl->Release(This);
18106}
18107/*** IExplorerBrowser methods ***/
18108static inline HRESULT IExplorerBrowser_Initialize(IExplorerBrowser* This,HWND hwndParent,const RECT *prc,const FOLDERSETTINGS *pfs) {
18109    return This->lpVtbl->Initialize(This,hwndParent,prc,pfs);
18110}
18111static inline HRESULT IExplorerBrowser_Destroy(IExplorerBrowser* This) {
18112    return This->lpVtbl->Destroy(This);
18113}
18114static inline HRESULT IExplorerBrowser_SetRect(IExplorerBrowser* This,HDWP *phdwp,RECT rcBrowser) {
18115    return This->lpVtbl->SetRect(This,phdwp,rcBrowser);
18116}
18117static inline HRESULT IExplorerBrowser_SetPropertyBag(IExplorerBrowser* This,LPCWSTR pszPropertyBag) {
18118    return This->lpVtbl->SetPropertyBag(This,pszPropertyBag);
18119}
18120static inline HRESULT IExplorerBrowser_SetEmptyText(IExplorerBrowser* This,LPCWSTR pszEmptyText) {
18121    return This->lpVtbl->SetEmptyText(This,pszEmptyText);
18122}
18123static inline HRESULT IExplorerBrowser_SetFolderSettings(IExplorerBrowser* This,const FOLDERSETTINGS *pfs) {
18124    return This->lpVtbl->SetFolderSettings(This,pfs);
18125}
18126static inline HRESULT IExplorerBrowser_Advise(IExplorerBrowser* This,IExplorerBrowserEvents *psbe,DWORD *pdwCookie) {
18127    return This->lpVtbl->Advise(This,psbe,pdwCookie);
18128}
18129static inline HRESULT IExplorerBrowser_Unadvise(IExplorerBrowser* This,DWORD dwCookie) {
18130    return This->lpVtbl->Unadvise(This,dwCookie);
18131}
18132static inline HRESULT IExplorerBrowser_SetOptions(IExplorerBrowser* This,EXPLORER_BROWSER_OPTIONS dwFlag) {
18133    return This->lpVtbl->SetOptions(This,dwFlag);
18134}
18135static inline HRESULT IExplorerBrowser_GetOptions(IExplorerBrowser* This,EXPLORER_BROWSER_OPTIONS *pdwFlag) {
18136    return This->lpVtbl->GetOptions(This,pdwFlag);
18137}
18138static inline HRESULT IExplorerBrowser_BrowseToIDList(IExplorerBrowser* This,PCUIDLIST_RELATIVE pidl,UINT uFlags) {
18139    return This->lpVtbl->BrowseToIDList(This,pidl,uFlags);
18140}
18141static inline HRESULT IExplorerBrowser_BrowseToObject(IExplorerBrowser* This,IUnknown *punk,UINT uFlags) {
18142    return This->lpVtbl->BrowseToObject(This,punk,uFlags);
18143}
18144static inline HRESULT IExplorerBrowser_FillFromObject(IExplorerBrowser* This,IUnknown *punk,EXPLORER_BROWSER_FILL_FLAGS dwFlags) {
18145    return This->lpVtbl->FillFromObject(This,punk,dwFlags);
18146}
18147static inline HRESULT IExplorerBrowser_RemoveAll(IExplorerBrowser* This) {
18148    return This->lpVtbl->RemoveAll(This);
18149}
18150static inline HRESULT IExplorerBrowser_GetCurrentView(IExplorerBrowser* This,REFIID riid,void **ppv) {
18151    return This->lpVtbl->GetCurrentView(This,riid,ppv);
18152}
18153#endif
18154#endif
18155
18156#endif
18157
18158
18159#endif  /* __IExplorerBrowser_INTERFACE_DEFINED__ */
18160
18161
18162/*****************************************************************************
18163 * IAccessibleObject interface
18164 */
18165#ifndef __IAccessibleObject_INTERFACE_DEFINED__
18166#define __IAccessibleObject_INTERFACE_DEFINED__
18167
18168DEFINE_GUID(IID_IAccessibleObject, 0x95a391c5, 0x9ed4, 0x4c28, 0x84,0x01, 0xab,0x9e,0x06,0x71,0x9e,0x11);
18169#if defined(__cplusplus) && !defined(CINTERFACE)
18170MIDL_INTERFACE("95a391c5-9ed4-4c28-8401-ab9e06719e11")
18171IAccessibleObject : public IUnknown
18172{
18173    virtual HRESULT STDMETHODCALLTYPE SetAccessibleName(
18174        LPCWSTR pszName) = 0;
18175
18176};
18177#ifdef __CRT_UUID_DECL
18178__CRT_UUID_DECL(IAccessibleObject, 0x95a391c5, 0x9ed4, 0x4c28, 0x84,0x01, 0xab,0x9e,0x06,0x71,0x9e,0x11)
18179#endif
18180#else
18181typedef struct IAccessibleObjectVtbl {
18182    BEGIN_INTERFACE
18183
18184    /*** IUnknown methods ***/
18185    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18186        IAccessibleObject *This,
18187        REFIID riid,
18188        void **ppvObject);
18189
18190    ULONG (STDMETHODCALLTYPE *AddRef)(
18191        IAccessibleObject *This);
18192
18193    ULONG (STDMETHODCALLTYPE *Release)(
18194        IAccessibleObject *This);
18195
18196    /*** IAccessibleObject methods ***/
18197    HRESULT (STDMETHODCALLTYPE *SetAccessibleName)(
18198        IAccessibleObject *This,
18199        LPCWSTR pszName);
18200
18201    END_INTERFACE
18202} IAccessibleObjectVtbl;
18203
18204interface IAccessibleObject {
18205    CONST_VTBL IAccessibleObjectVtbl* lpVtbl;
18206};
18207
18208#ifdef COBJMACROS
18209#ifndef WIDL_C_INLINE_WRAPPERS
18210/*** IUnknown methods ***/
18211#define IAccessibleObject_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18212#define IAccessibleObject_AddRef(This) (This)->lpVtbl->AddRef(This)
18213#define IAccessibleObject_Release(This) (This)->lpVtbl->Release(This)
18214/*** IAccessibleObject methods ***/
18215#define IAccessibleObject_SetAccessibleName(This,pszName) (This)->lpVtbl->SetAccessibleName(This,pszName)
18216#else
18217/*** IUnknown methods ***/
18218static inline HRESULT IAccessibleObject_QueryInterface(IAccessibleObject* This,REFIID riid,void **ppvObject) {
18219    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18220}
18221static inline ULONG IAccessibleObject_AddRef(IAccessibleObject* This) {
18222    return This->lpVtbl->AddRef(This);
18223}
18224static inline ULONG IAccessibleObject_Release(IAccessibleObject* This) {
18225    return This->lpVtbl->Release(This);
18226}
18227/*** IAccessibleObject methods ***/
18228static inline HRESULT IAccessibleObject_SetAccessibleName(IAccessibleObject* This,LPCWSTR pszName) {
18229    return This->lpVtbl->SetAccessibleName(This,pszName);
18230}
18231#endif
18232#endif
18233
18234#endif
18235
18236
18237#endif  /* __IAccessibleObject_INTERFACE_DEFINED__ */
18238
18239#endif
18240
18241/*****************************************************************************
18242 * IResultsFolder interface
18243 */
18244#ifndef __IResultsFolder_INTERFACE_DEFINED__
18245#define __IResultsFolder_INTERFACE_DEFINED__
18246
18247DEFINE_GUID(IID_IResultsFolder, 0x96e5ae6d, 0x6ae1, 0x4b1c, 0x90,0x0c, 0xc6,0x48,0x0e,0xaa,0x88,0x28);
18248#if defined(__cplusplus) && !defined(CINTERFACE)
18249MIDL_INTERFACE("96e5ae6d-6ae1-4b1c-900c-c6480eaa8828")
18250IResultsFolder : public IUnknown
18251{
18252    virtual HRESULT STDMETHODCALLTYPE AddItem(
18253        IShellItem *psi) = 0;
18254
18255    virtual HRESULT STDMETHODCALLTYPE AddIDList(
18256        PCIDLIST_ABSOLUTE pidl,
18257        PITEMID_CHILD *ppidlAdded) = 0;
18258
18259    virtual HRESULT STDMETHODCALLTYPE RemoveItem(
18260        IShellItem *psi) = 0;
18261
18262    virtual HRESULT STDMETHODCALLTYPE RemoveIDList(
18263        PCIDLIST_ABSOLUTE pidl) = 0;
18264
18265    virtual HRESULT STDMETHODCALLTYPE RemoveAll(
18266        ) = 0;
18267
18268};
18269#ifdef __CRT_UUID_DECL
18270__CRT_UUID_DECL(IResultsFolder, 0x96e5ae6d, 0x6ae1, 0x4b1c, 0x90,0x0c, 0xc6,0x48,0x0e,0xaa,0x88,0x28)
18271#endif
18272#else
18273typedef struct IResultsFolderVtbl {
18274    BEGIN_INTERFACE
18275
18276    /*** IUnknown methods ***/
18277    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18278        IResultsFolder *This,
18279        REFIID riid,
18280        void **ppvObject);
18281
18282    ULONG (STDMETHODCALLTYPE *AddRef)(
18283        IResultsFolder *This);
18284
18285    ULONG (STDMETHODCALLTYPE *Release)(
18286        IResultsFolder *This);
18287
18288    /*** IResultsFolder methods ***/
18289    HRESULT (STDMETHODCALLTYPE *AddItem)(
18290        IResultsFolder *This,
18291        IShellItem *psi);
18292
18293    HRESULT (STDMETHODCALLTYPE *AddIDList)(
18294        IResultsFolder *This,
18295        PCIDLIST_ABSOLUTE pidl,
18296        PITEMID_CHILD *ppidlAdded);
18297
18298    HRESULT (STDMETHODCALLTYPE *RemoveItem)(
18299        IResultsFolder *This,
18300        IShellItem *psi);
18301
18302    HRESULT (STDMETHODCALLTYPE *RemoveIDList)(
18303        IResultsFolder *This,
18304        PCIDLIST_ABSOLUTE pidl);
18305
18306    HRESULT (STDMETHODCALLTYPE *RemoveAll)(
18307        IResultsFolder *This);
18308
18309    END_INTERFACE
18310} IResultsFolderVtbl;
18311
18312interface IResultsFolder {
18313    CONST_VTBL IResultsFolderVtbl* lpVtbl;
18314};
18315
18316#ifdef COBJMACROS
18317#ifndef WIDL_C_INLINE_WRAPPERS
18318/*** IUnknown methods ***/
18319#define IResultsFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18320#define IResultsFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
18321#define IResultsFolder_Release(This) (This)->lpVtbl->Release(This)
18322/*** IResultsFolder methods ***/
18323#define IResultsFolder_AddItem(This,psi) (This)->lpVtbl->AddItem(This,psi)
18324#define IResultsFolder_AddIDList(This,pidl,ppidlAdded) (This)->lpVtbl->AddIDList(This,pidl,ppidlAdded)
18325#define IResultsFolder_RemoveItem(This,psi) (This)->lpVtbl->RemoveItem(This,psi)
18326#define IResultsFolder_RemoveIDList(This,pidl) (This)->lpVtbl->RemoveIDList(This,pidl)
18327#define IResultsFolder_RemoveAll(This) (This)->lpVtbl->RemoveAll(This)
18328#else
18329/*** IUnknown methods ***/
18330static inline HRESULT IResultsFolder_QueryInterface(IResultsFolder* This,REFIID riid,void **ppvObject) {
18331    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18332}
18333static inline ULONG IResultsFolder_AddRef(IResultsFolder* This) {
18334    return This->lpVtbl->AddRef(This);
18335}
18336static inline ULONG IResultsFolder_Release(IResultsFolder* This) {
18337    return This->lpVtbl->Release(This);
18338}
18339/*** IResultsFolder methods ***/
18340static inline HRESULT IResultsFolder_AddItem(IResultsFolder* This,IShellItem *psi) {
18341    return This->lpVtbl->AddItem(This,psi);
18342}
18343static inline HRESULT IResultsFolder_AddIDList(IResultsFolder* This,PCIDLIST_ABSOLUTE pidl,PITEMID_CHILD *ppidlAdded) {
18344    return This->lpVtbl->AddIDList(This,pidl,ppidlAdded);
18345}
18346static inline HRESULT IResultsFolder_RemoveItem(IResultsFolder* This,IShellItem *psi) {
18347    return This->lpVtbl->RemoveItem(This,psi);
18348}
18349static inline HRESULT IResultsFolder_RemoveIDList(IResultsFolder* This,PCIDLIST_ABSOLUTE pidl) {
18350    return This->lpVtbl->RemoveIDList(This,pidl);
18351}
18352static inline HRESULT IResultsFolder_RemoveAll(IResultsFolder* This) {
18353    return This->lpVtbl->RemoveAll(This);
18354}
18355#endif
18356#endif
18357
18358#endif
18359
18360HRESULT STDMETHODCALLTYPE IResultsFolder_RemoteAddIDList_Proxy(
18361    IResultsFolder* This,
18362    PCIDLIST_ABSOLUTE pidl,
18363    PITEMID_CHILD *ppidlAdded);
18364void __RPC_STUB IResultsFolder_RemoteAddIDList_Stub(
18365    IRpcStubBuffer* This,
18366    IRpcChannelBuffer* pRpcChannelBuffer,
18367    PRPC_MESSAGE pRpcMessage,
18368    DWORD* pdwStubPhase);
18369HRESULT CALLBACK IResultsFolder_AddIDList_Proxy(
18370    IResultsFolder* This,
18371    PCIDLIST_ABSOLUTE pidl,
18372    PITEMID_CHILD *ppidlAdded);
18373HRESULT __RPC_STUB IResultsFolder_AddIDList_Stub(
18374    IResultsFolder* This,
18375    PCIDLIST_ABSOLUTE pidl,
18376    PITEMID_CHILD *ppidlAdded);
18377
18378#endif  /* __IResultsFolder_INTERFACE_DEFINED__ */
18379
18380#if _WIN32_IE >= _WIN32_IE_IE70
18381/*****************************************************************************
18382 * IEnumObjects interface
18383 */
18384#ifndef __IEnumObjects_INTERFACE_DEFINED__
18385#define __IEnumObjects_INTERFACE_DEFINED__
18386
18387DEFINE_GUID(IID_IEnumObjects, 0x2c1c7e2e, 0x2d0e, 0x4059, 0x83,0x1e, 0x1e,0x6f,0x82,0x33,0x5c,0x2e);
18388#if defined(__cplusplus) && !defined(CINTERFACE)
18389MIDL_INTERFACE("2c1c7e2e-2d0e-4059-831e-1e6f82335c2e")
18390IEnumObjects : public IUnknown
18391{
18392    virtual HRESULT STDMETHODCALLTYPE Next(
18393        ULONG celt,
18394        REFIID riid,
18395        void **rgelt,
18396        ULONG *pceltFetched) = 0;
18397
18398    virtual HRESULT STDMETHODCALLTYPE Skip(
18399        ULONG celt) = 0;
18400
18401    virtual HRESULT STDMETHODCALLTYPE Reset(
18402        ) = 0;
18403
18404    virtual HRESULT STDMETHODCALLTYPE Clone(
18405        IEnumObjects **ppenum) = 0;
18406
18407};
18408#ifdef __CRT_UUID_DECL
18409__CRT_UUID_DECL(IEnumObjects, 0x2c1c7e2e, 0x2d0e, 0x4059, 0x83,0x1e, 0x1e,0x6f,0x82,0x33,0x5c,0x2e)
18410#endif
18411#else
18412typedef struct IEnumObjectsVtbl {
18413    BEGIN_INTERFACE
18414
18415    /*** IUnknown methods ***/
18416    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18417        IEnumObjects *This,
18418        REFIID riid,
18419        void **ppvObject);
18420
18421    ULONG (STDMETHODCALLTYPE *AddRef)(
18422        IEnumObjects *This);
18423
18424    ULONG (STDMETHODCALLTYPE *Release)(
18425        IEnumObjects *This);
18426
18427    /*** IEnumObjects methods ***/
18428    HRESULT (STDMETHODCALLTYPE *Next)(
18429        IEnumObjects *This,
18430        ULONG celt,
18431        REFIID riid,
18432        void **rgelt,
18433        ULONG *pceltFetched);
18434
18435    HRESULT (STDMETHODCALLTYPE *Skip)(
18436        IEnumObjects *This,
18437        ULONG celt);
18438
18439    HRESULT (STDMETHODCALLTYPE *Reset)(
18440        IEnumObjects *This);
18441
18442    HRESULT (STDMETHODCALLTYPE *Clone)(
18443        IEnumObjects *This,
18444        IEnumObjects **ppenum);
18445
18446    END_INTERFACE
18447} IEnumObjectsVtbl;
18448
18449interface IEnumObjects {
18450    CONST_VTBL IEnumObjectsVtbl* lpVtbl;
18451};
18452
18453#ifdef COBJMACROS
18454#ifndef WIDL_C_INLINE_WRAPPERS
18455/*** IUnknown methods ***/
18456#define IEnumObjects_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18457#define IEnumObjects_AddRef(This) (This)->lpVtbl->AddRef(This)
18458#define IEnumObjects_Release(This) (This)->lpVtbl->Release(This)
18459/*** IEnumObjects methods ***/
18460#define IEnumObjects_Next(This,celt,riid,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,riid,rgelt,pceltFetched)
18461#define IEnumObjects_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
18462#define IEnumObjects_Reset(This) (This)->lpVtbl->Reset(This)
18463#define IEnumObjects_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
18464#else
18465/*** IUnknown methods ***/
18466static inline HRESULT IEnumObjects_QueryInterface(IEnumObjects* This,REFIID riid,void **ppvObject) {
18467    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18468}
18469static inline ULONG IEnumObjects_AddRef(IEnumObjects* This) {
18470    return This->lpVtbl->AddRef(This);
18471}
18472static inline ULONG IEnumObjects_Release(IEnumObjects* This) {
18473    return This->lpVtbl->Release(This);
18474}
18475/*** IEnumObjects methods ***/
18476static inline HRESULT IEnumObjects_Next(IEnumObjects* This,ULONG celt,REFIID riid,void **rgelt,ULONG *pceltFetched) {
18477    return This->lpVtbl->Next(This,celt,riid,rgelt,pceltFetched);
18478}
18479static inline HRESULT IEnumObjects_Skip(IEnumObjects* This,ULONG celt) {
18480    return This->lpVtbl->Skip(This,celt);
18481}
18482static inline HRESULT IEnumObjects_Reset(IEnumObjects* This) {
18483    return This->lpVtbl->Reset(This);
18484}
18485static inline HRESULT IEnumObjects_Clone(IEnumObjects* This,IEnumObjects **ppenum) {
18486    return This->lpVtbl->Clone(This,ppenum);
18487}
18488#endif
18489#endif
18490
18491#endif
18492
18493HRESULT STDMETHODCALLTYPE IEnumObjects_RemoteNext_Proxy(
18494    IEnumObjects* This,
18495    ULONG celt,
18496    REFIID riid,
18497    void **rgelt,
18498    ULONG *pceltFetched);
18499void __RPC_STUB IEnumObjects_RemoteNext_Stub(
18500    IRpcStubBuffer* This,
18501    IRpcChannelBuffer* pRpcChannelBuffer,
18502    PRPC_MESSAGE pRpcMessage,
18503    DWORD* pdwStubPhase);
18504HRESULT CALLBACK IEnumObjects_Next_Proxy(
18505    IEnumObjects* This,
18506    ULONG celt,
18507    REFIID riid,
18508    void **rgelt,
18509    ULONG *pceltFetched);
18510HRESULT __RPC_STUB IEnumObjects_Next_Stub(
18511    IEnumObjects* This,
18512    ULONG celt,
18513    REFIID riid,
18514    void **rgelt,
18515    ULONG *pceltFetched);
18516
18517#endif  /* __IEnumObjects_INTERFACE_DEFINED__ */
18518
18519
18520enum _OPPROGDLGF {
18521    OPPROGDLG_DEFAULT = 0x0,
18522    OPPROGDLG_ENABLEPAUSE = 0x80,
18523    OPPROGDLG_ALLOWUNDO = 0x100,
18524    OPPROGDLG_DONTDISPLAYSOURCEPATH = 0x200,
18525    OPPROGDLG_DONTDISPLAYDESTPATH = 0x400,
18526    OPPROGDLG_NOMULTIDAYESTIMATES = 0x800,
18527    OPPROGDLG_DONTDISPLAYLOCATIONS = 0x1000
18528};
18529
18530typedef DWORD OPPROGDLGF;
18531
18532/*****************************************************************************
18533 * IOperationsProgressDialog interface
18534 */
18535#ifndef __IOperationsProgressDialog_INTERFACE_DEFINED__
18536#define __IOperationsProgressDialog_INTERFACE_DEFINED__
18537
18538enum _PDMODE {
18539    PDM_DEFAULT = 0x0,
18540    PDM_RUN = 0x1,
18541    PDM_PREFLIGHT = 0x2,
18542    PDM_UNDOING = 0x4,
18543    PDM_ERRORSBLOCKING = 0x8,
18544    PDM_INDETERMINATE = 0x10
18545};
18546
18547typedef DWORD PDMODE;
18548
18549typedef enum PDOPSTATUS {
18550    PDOPS_RUNNING = 1,
18551    PDOPS_PAUSED = 2,
18552    PDOPS_CANCELLED = 3,
18553    PDOPS_STOPPED = 4,
18554    PDOPS_ERRORS = 5
18555} PDOPSTATUS;
18556
18557DEFINE_GUID(IID_IOperationsProgressDialog, 0x0c9fb851, 0xe5c9, 0x43eb, 0xa3,0x70, 0xf0,0x67,0x7b,0x13,0x87,0x4c);
18558#if defined(__cplusplus) && !defined(CINTERFACE)
18559MIDL_INTERFACE("0c9fb851-e5c9-43eb-a370-f0677b13874c")
18560IOperationsProgressDialog : public IUnknown
18561{
18562    virtual HRESULT STDMETHODCALLTYPE StartProgressDialog(
18563        HWND hwndOwner,
18564        OPPROGDLGF flags) = 0;
18565
18566    virtual HRESULT STDMETHODCALLTYPE StopProgressDialog(
18567        ) = 0;
18568
18569    virtual HRESULT STDMETHODCALLTYPE SetOperation(
18570        SPACTION action) = 0;
18571
18572    virtual HRESULT STDMETHODCALLTYPE SetMode(
18573        PDMODE mode) = 0;
18574
18575    virtual HRESULT STDMETHODCALLTYPE UpdateProgress(
18576        ULONGLONG ullPointsCurrent,
18577        ULONGLONG ullPointsTotal,
18578        ULONGLONG ullSizeCurrent,
18579        ULONGLONG ullSizeTotal,
18580        ULONGLONG ullItemsCurrent,
18581        ULONGLONG ullItemsTotal) = 0;
18582
18583    virtual HRESULT STDMETHODCALLTYPE UpdateLocations(
18584        IShellItem *psiSource,
18585        IShellItem *psiTarget,
18586        IShellItem *psiItem) = 0;
18587
18588    virtual HRESULT STDMETHODCALLTYPE ResetTimer(
18589        ) = 0;
18590
18591    virtual HRESULT STDMETHODCALLTYPE PauseTimer(
18592        ) = 0;
18593
18594    virtual HRESULT STDMETHODCALLTYPE ResumeTimer(
18595        ) = 0;
18596
18597    virtual HRESULT STDMETHODCALLTYPE GetMilliseconds(
18598        ULONGLONG *pullElapsed,
18599        ULONGLONG *pullRemaining) = 0;
18600
18601    virtual HRESULT STDMETHODCALLTYPE GetOperationStatus(
18602        PDOPSTATUS *popstatus) = 0;
18603
18604};
18605#ifdef __CRT_UUID_DECL
18606__CRT_UUID_DECL(IOperationsProgressDialog, 0x0c9fb851, 0xe5c9, 0x43eb, 0xa3,0x70, 0xf0,0x67,0x7b,0x13,0x87,0x4c)
18607#endif
18608#else
18609typedef struct IOperationsProgressDialogVtbl {
18610    BEGIN_INTERFACE
18611
18612    /*** IUnknown methods ***/
18613    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18614        IOperationsProgressDialog *This,
18615        REFIID riid,
18616        void **ppvObject);
18617
18618    ULONG (STDMETHODCALLTYPE *AddRef)(
18619        IOperationsProgressDialog *This);
18620
18621    ULONG (STDMETHODCALLTYPE *Release)(
18622        IOperationsProgressDialog *This);
18623
18624    /*** IOperationsProgressDialog methods ***/
18625    HRESULT (STDMETHODCALLTYPE *StartProgressDialog)(
18626        IOperationsProgressDialog *This,
18627        HWND hwndOwner,
18628        OPPROGDLGF flags);
18629
18630    HRESULT (STDMETHODCALLTYPE *StopProgressDialog)(
18631        IOperationsProgressDialog *This);
18632
18633    HRESULT (STDMETHODCALLTYPE *SetOperation)(
18634        IOperationsProgressDialog *This,
18635        SPACTION action);
18636
18637    HRESULT (STDMETHODCALLTYPE *SetMode)(
18638        IOperationsProgressDialog *This,
18639        PDMODE mode);
18640
18641    HRESULT (STDMETHODCALLTYPE *UpdateProgress)(
18642        IOperationsProgressDialog *This,
18643        ULONGLONG ullPointsCurrent,
18644        ULONGLONG ullPointsTotal,
18645        ULONGLONG ullSizeCurrent,
18646        ULONGLONG ullSizeTotal,
18647        ULONGLONG ullItemsCurrent,
18648        ULONGLONG ullItemsTotal);
18649
18650    HRESULT (STDMETHODCALLTYPE *UpdateLocations)(
18651        IOperationsProgressDialog *This,
18652        IShellItem *psiSource,
18653        IShellItem *psiTarget,
18654        IShellItem *psiItem);
18655
18656    HRESULT (STDMETHODCALLTYPE *ResetTimer)(
18657        IOperationsProgressDialog *This);
18658
18659    HRESULT (STDMETHODCALLTYPE *PauseTimer)(
18660        IOperationsProgressDialog *This);
18661
18662    HRESULT (STDMETHODCALLTYPE *ResumeTimer)(
18663        IOperationsProgressDialog *This);
18664
18665    HRESULT (STDMETHODCALLTYPE *GetMilliseconds)(
18666        IOperationsProgressDialog *This,
18667        ULONGLONG *pullElapsed,
18668        ULONGLONG *pullRemaining);
18669
18670    HRESULT (STDMETHODCALLTYPE *GetOperationStatus)(
18671        IOperationsProgressDialog *This,
18672        PDOPSTATUS *popstatus);
18673
18674    END_INTERFACE
18675} IOperationsProgressDialogVtbl;
18676
18677interface IOperationsProgressDialog {
18678    CONST_VTBL IOperationsProgressDialogVtbl* lpVtbl;
18679};
18680
18681#ifdef COBJMACROS
18682#ifndef WIDL_C_INLINE_WRAPPERS
18683/*** IUnknown methods ***/
18684#define IOperationsProgressDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18685#define IOperationsProgressDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
18686#define IOperationsProgressDialog_Release(This) (This)->lpVtbl->Release(This)
18687/*** IOperationsProgressDialog methods ***/
18688#define IOperationsProgressDialog_StartProgressDialog(This,hwndOwner,flags) (This)->lpVtbl->StartProgressDialog(This,hwndOwner,flags)
18689#define IOperationsProgressDialog_StopProgressDialog(This) (This)->lpVtbl->StopProgressDialog(This)
18690#define IOperationsProgressDialog_SetOperation(This,action) (This)->lpVtbl->SetOperation(This,action)
18691#define IOperationsProgressDialog_SetMode(This,mode) (This)->lpVtbl->SetMode(This,mode)
18692#define IOperationsProgressDialog_UpdateProgress(This,ullPointsCurrent,ullPointsTotal,ullSizeCurrent,ullSizeTotal,ullItemsCurrent,ullItemsTotal) (This)->lpVtbl->UpdateProgress(This,ullPointsCurrent,ullPointsTotal,ullSizeCurrent,ullSizeTotal,ullItemsCurrent,ullItemsTotal)
18693#define IOperationsProgressDialog_UpdateLocations(This,psiSource,psiTarget,psiItem) (This)->lpVtbl->UpdateLocations(This,psiSource,psiTarget,psiItem)
18694#define IOperationsProgressDialog_ResetTimer(This) (This)->lpVtbl->ResetTimer(This)
18695#define IOperationsProgressDialog_PauseTimer(This) (This)->lpVtbl->PauseTimer(This)
18696#define IOperationsProgressDialog_ResumeTimer(This) (This)->lpVtbl->ResumeTimer(This)
18697#define IOperationsProgressDialog_GetMilliseconds(This,pullElapsed,pullRemaining) (This)->lpVtbl->GetMilliseconds(This,pullElapsed,pullRemaining)
18698#define IOperationsProgressDialog_GetOperationStatus(This,popstatus) (This)->lpVtbl->GetOperationStatus(This,popstatus)
18699#else
18700/*** IUnknown methods ***/
18701static inline HRESULT IOperationsProgressDialog_QueryInterface(IOperationsProgressDialog* This,REFIID riid,void **ppvObject) {
18702    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18703}
18704static inline ULONG IOperationsProgressDialog_AddRef(IOperationsProgressDialog* This) {
18705    return This->lpVtbl->AddRef(This);
18706}
18707static inline ULONG IOperationsProgressDialog_Release(IOperationsProgressDialog* This) {
18708    return This->lpVtbl->Release(This);
18709}
18710/*** IOperationsProgressDialog methods ***/
18711static inline HRESULT IOperationsProgressDialog_StartProgressDialog(IOperationsProgressDialog* This,HWND hwndOwner,OPPROGDLGF flags) {
18712    return This->lpVtbl->StartProgressDialog(This,hwndOwner,flags);
18713}
18714static inline HRESULT IOperationsProgressDialog_StopProgressDialog(IOperationsProgressDialog* This) {
18715    return This->lpVtbl->StopProgressDialog(This);
18716}
18717static inline HRESULT IOperationsProgressDialog_SetOperation(IOperationsProgressDialog* This,SPACTION action) {
18718    return This->lpVtbl->SetOperation(This,action);
18719}
18720static inline HRESULT IOperationsProgressDialog_SetMode(IOperationsProgressDialog* This,PDMODE mode) {
18721    return This->lpVtbl->SetMode(This,mode);
18722}
18723static inline HRESULT IOperationsProgressDialog_UpdateProgress(IOperationsProgressDialog* This,ULONGLONG ullPointsCurrent,ULONGLONG ullPointsTotal,ULONGLONG ullSizeCurrent,ULONGLONG ullSizeTotal,ULONGLONG ullItemsCurrent,ULONGLONG ullItemsTotal) {
18724    return This->lpVtbl->UpdateProgress(This,ullPointsCurrent,ullPointsTotal,ullSizeCurrent,ullSizeTotal,ullItemsCurrent,ullItemsTotal);
18725}
18726static inline HRESULT IOperationsProgressDialog_UpdateLocations(IOperationsProgressDialog* This,IShellItem *psiSource,IShellItem *psiTarget,IShellItem *psiItem) {
18727    return This->lpVtbl->UpdateLocations(This,psiSource,psiTarget,psiItem);
18728}
18729static inline HRESULT IOperationsProgressDialog_ResetTimer(IOperationsProgressDialog* This) {
18730    return This->lpVtbl->ResetTimer(This);
18731}
18732static inline HRESULT IOperationsProgressDialog_PauseTimer(IOperationsProgressDialog* This) {
18733    return This->lpVtbl->PauseTimer(This);
18734}
18735static inline HRESULT IOperationsProgressDialog_ResumeTimer(IOperationsProgressDialog* This) {
18736    return This->lpVtbl->ResumeTimer(This);
18737}
18738static inline HRESULT IOperationsProgressDialog_GetMilliseconds(IOperationsProgressDialog* This,ULONGLONG *pullElapsed,ULONGLONG *pullRemaining) {
18739    return This->lpVtbl->GetMilliseconds(This,pullElapsed,pullRemaining);
18740}
18741static inline HRESULT IOperationsProgressDialog_GetOperationStatus(IOperationsProgressDialog* This,PDOPSTATUS *popstatus) {
18742    return This->lpVtbl->GetOperationStatus(This,popstatus);
18743}
18744#endif
18745#endif
18746
18747#endif
18748
18749
18750#endif  /* __IOperationsProgressDialog_INTERFACE_DEFINED__ */
18751
18752
18753/*****************************************************************************
18754 * IIOCancelInformation interface
18755 */
18756#ifndef __IIOCancelInformation_INTERFACE_DEFINED__
18757#define __IIOCancelInformation_INTERFACE_DEFINED__
18758
18759DEFINE_GUID(IID_IIOCancelInformation, 0xf5b0bf81, 0x8cb5, 0x4b1b, 0x94,0x49, 0x1a,0x15,0x9e,0x0c,0x73,0x3c);
18760#if defined(__cplusplus) && !defined(CINTERFACE)
18761MIDL_INTERFACE("f5b0bf81-8cb5-4b1b-9449-1a159e0c733c")
18762IIOCancelInformation : public IUnknown
18763{
18764    virtual HRESULT STDMETHODCALLTYPE SetCancelInformation(
18765        DWORD dwThreadID,
18766        UINT uMsgCancel) = 0;
18767
18768    virtual HRESULT STDMETHODCALLTYPE GetCancelInformation(
18769        DWORD *pdwThreadID,
18770        UINT *puMsgCancel) = 0;
18771
18772};
18773#ifdef __CRT_UUID_DECL
18774__CRT_UUID_DECL(IIOCancelInformation, 0xf5b0bf81, 0x8cb5, 0x4b1b, 0x94,0x49, 0x1a,0x15,0x9e,0x0c,0x73,0x3c)
18775#endif
18776#else
18777typedef struct IIOCancelInformationVtbl {
18778    BEGIN_INTERFACE
18779
18780    /*** IUnknown methods ***/
18781    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18782        IIOCancelInformation *This,
18783        REFIID riid,
18784        void **ppvObject);
18785
18786    ULONG (STDMETHODCALLTYPE *AddRef)(
18787        IIOCancelInformation *This);
18788
18789    ULONG (STDMETHODCALLTYPE *Release)(
18790        IIOCancelInformation *This);
18791
18792    /*** IIOCancelInformation methods ***/
18793    HRESULT (STDMETHODCALLTYPE *SetCancelInformation)(
18794        IIOCancelInformation *This,
18795        DWORD dwThreadID,
18796        UINT uMsgCancel);
18797
18798    HRESULT (STDMETHODCALLTYPE *GetCancelInformation)(
18799        IIOCancelInformation *This,
18800        DWORD *pdwThreadID,
18801        UINT *puMsgCancel);
18802
18803    END_INTERFACE
18804} IIOCancelInformationVtbl;
18805
18806interface IIOCancelInformation {
18807    CONST_VTBL IIOCancelInformationVtbl* lpVtbl;
18808};
18809
18810#ifdef COBJMACROS
18811#ifndef WIDL_C_INLINE_WRAPPERS
18812/*** IUnknown methods ***/
18813#define IIOCancelInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
18814#define IIOCancelInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
18815#define IIOCancelInformation_Release(This) (This)->lpVtbl->Release(This)
18816/*** IIOCancelInformation methods ***/
18817#define IIOCancelInformation_SetCancelInformation(This,dwThreadID,uMsgCancel) (This)->lpVtbl->SetCancelInformation(This,dwThreadID,uMsgCancel)
18818#define IIOCancelInformation_GetCancelInformation(This,pdwThreadID,puMsgCancel) (This)->lpVtbl->GetCancelInformation(This,pdwThreadID,puMsgCancel)
18819#else
18820/*** IUnknown methods ***/
18821static inline HRESULT IIOCancelInformation_QueryInterface(IIOCancelInformation* This,REFIID riid,void **ppvObject) {
18822    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
18823}
18824static inline ULONG IIOCancelInformation_AddRef(IIOCancelInformation* This) {
18825    return This->lpVtbl->AddRef(This);
18826}
18827static inline ULONG IIOCancelInformation_Release(IIOCancelInformation* This) {
18828    return This->lpVtbl->Release(This);
18829}
18830/*** IIOCancelInformation methods ***/
18831static inline HRESULT IIOCancelInformation_SetCancelInformation(IIOCancelInformation* This,DWORD dwThreadID,UINT uMsgCancel) {
18832    return This->lpVtbl->SetCancelInformation(This,dwThreadID,uMsgCancel);
18833}
18834static inline HRESULT IIOCancelInformation_GetCancelInformation(IIOCancelInformation* This,DWORD *pdwThreadID,UINT *puMsgCancel) {
18835    return This->lpVtbl->GetCancelInformation(This,pdwThreadID,puMsgCancel);
18836}
18837#endif
18838#endif
18839
18840#endif
18841
18842
18843#endif  /* __IIOCancelInformation_INTERFACE_DEFINED__ */
18844
18845
18846#define FOFX_NOSKIPJUNCTIONS 0x00010000
18847#define FOFX_PREFERHARDLINK 0x00020000
18848#define FOFX_SHOWELEVATIONPROMPT 0x00040000
18849#define FOFX_RECYCLEONDELETE 0x00080000
18850#define FOFX_EARLYFAILURE 0x00100000
18851#define FOFX_PRESERVEFILEEXTENSIONS 0x00200000
18852#define FOFX_KEEPNEWERFILE 0x00400000
18853#define FOFX_NOCOPYHOOKS 0x00800000
18854#define FOFX_NOMINIMIZEBOX 0x01000000
18855#define FOFX_MOVEACLSACROSSVOLUMES 0x02000000
18856#define FOFX_DONTDISPLAYSOURCEPATH 0x04000000
18857#define FOFX_DONTDISPLAYDESTPATH 0x08000000
18858#define FOFX_REQUIREELEVATION 0x10000000
18859#define FOFX_ADDUNDORECORD 0x20000000
18860#define FOFX_COPYASDOWNLOAD 0x40000000
18861#define FOFX_DONTDISPLAYLOCATIONS 0x80000000
18862
18863/*****************************************************************************
18864 * IFileOperation interface
18865 */
18866#ifndef __IFileOperation_INTERFACE_DEFINED__
18867#define __IFileOperation_INTERFACE_DEFINED__
18868
18869DEFINE_GUID(IID_IFileOperation, 0x947aab5f, 0x0a5c, 0x4c13, 0xb4,0xd6, 0x4b,0xf7,0x83,0x6f,0xc9,0xf8);
18870#if defined(__cplusplus) && !defined(CINTERFACE)
18871MIDL_INTERFACE("947aab5f-0a5c-4c13-b4d6-4bf7836fc9f8")
18872IFileOperation : public IUnknown
18873{
18874    virtual HRESULT STDMETHODCALLTYPE Advise(
18875        IFileOperationProgressSink *pfops,
18876        DWORD *pdwCookie) = 0;
18877
18878    virtual HRESULT STDMETHODCALLTYPE Unadvise(
18879        DWORD dwCookie) = 0;
18880
18881    virtual HRESULT STDMETHODCALLTYPE SetOperationFlags(
18882        DWORD dwOperationFlags) = 0;
18883
18884    virtual HRESULT STDMETHODCALLTYPE SetProgressMessage(
18885        LPCWSTR pszMessage) = 0;
18886
18887    virtual HRESULT STDMETHODCALLTYPE SetProgressDialog(
18888        IOperationsProgressDialog *popd) = 0;
18889
18890    virtual HRESULT STDMETHODCALLTYPE SetProperties(
18891        IPropertyChangeArray *pproparray) = 0;
18892
18893    virtual HRESULT STDMETHODCALLTYPE SetOwnerWindow(
18894        HWND hwndOwner) = 0;
18895
18896    virtual HRESULT STDMETHODCALLTYPE ApplyPropertiesToItem(
18897        IShellItem *psiItem) = 0;
18898
18899    virtual HRESULT STDMETHODCALLTYPE ApplyPropertiesToItems(
18900        IUnknown *punkItems) = 0;
18901
18902    virtual HRESULT STDMETHODCALLTYPE RenameItem(
18903        IShellItem *psiItem,
18904        LPCWSTR pszNewName,
18905        IFileOperationProgressSink *pfopsItem) = 0;
18906
18907    virtual HRESULT STDMETHODCALLTYPE RenameItems(
18908        IUnknown *pUnkItems,
18909        LPCWSTR pszNewName) = 0;
18910
18911    virtual HRESULT STDMETHODCALLTYPE MoveItem(
18912        IShellItem *psiItem,
18913        IShellItem *psiDestinationFolder,
18914        LPCWSTR pszNewName,
18915        IFileOperationProgressSink *pfopsItem) = 0;
18916
18917    virtual HRESULT STDMETHODCALLTYPE MoveItems(
18918        IUnknown *punkItems,
18919        IShellItem *psiDestinationFolder) = 0;
18920
18921    virtual HRESULT STDMETHODCALLTYPE CopyItem(
18922        IShellItem *psiItem,
18923        IShellItem *psiDestinationFolder,
18924        LPCWSTR pszCopyName,
18925        IFileOperationProgressSink *pfopsItem) = 0;
18926
18927    virtual HRESULT STDMETHODCALLTYPE CopyItems(
18928        IUnknown *punkItems,
18929        IShellItem *psiDestinationFolder) = 0;
18930
18931    virtual HRESULT STDMETHODCALLTYPE DeleteItem(
18932        IShellItem *psiItem,
18933        IFileOperationProgressSink *pfopsItem) = 0;
18934
18935    virtual HRESULT STDMETHODCALLTYPE DeleteItems(
18936        IUnknown *punkItems) = 0;
18937
18938    virtual HRESULT STDMETHODCALLTYPE NewItem(
18939        IShellItem *psiDestinationFolder,
18940        DWORD dwFileAttributes,
18941        LPCWSTR pszName,
18942        LPCWSTR pszTemplateName,
18943        IFileOperationProgressSink *pfopsItem) = 0;
18944
18945    virtual HRESULT STDMETHODCALLTYPE PerformOperations(
18946        ) = 0;
18947
18948    virtual HRESULT STDMETHODCALLTYPE GetAnyOperationsAborted(
18949        WINBOOL *pfAnyOperationsAborted) = 0;
18950
18951};
18952#ifdef __CRT_UUID_DECL
18953__CRT_UUID_DECL(IFileOperation, 0x947aab5f, 0x0a5c, 0x4c13, 0xb4,0xd6, 0x4b,0xf7,0x83,0x6f,0xc9,0xf8)
18954#endif
18955#else
18956typedef struct IFileOperationVtbl {
18957    BEGIN_INTERFACE
18958
18959    /*** IUnknown methods ***/
18960    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
18961        IFileOperation *This,
18962        REFIID riid,
18963        void **ppvObject);
18964
18965    ULONG (STDMETHODCALLTYPE *AddRef)(
18966        IFileOperation *This);
18967
18968    ULONG (STDMETHODCALLTYPE *Release)(
18969        IFileOperation *This);
18970
18971    /*** IFileOperation methods ***/
18972    HRESULT (STDMETHODCALLTYPE *Advise)(
18973        IFileOperation *This,
18974        IFileOperationProgressSink *pfops,
18975        DWORD *pdwCookie);
18976
18977    HRESULT (STDMETHODCALLTYPE *Unadvise)(
18978        IFileOperation *This,
18979        DWORD dwCookie);
18980
18981    HRESULT (STDMETHODCALLTYPE *SetOperationFlags)(
18982        IFileOperation *This,
18983        DWORD dwOperationFlags);
18984
18985    HRESULT (STDMETHODCALLTYPE *SetProgressMessage)(
18986        IFileOperation *This,
18987        LPCWSTR pszMessage);
18988
18989    HRESULT (STDMETHODCALLTYPE *SetProgressDialog)(
18990        IFileOperation *This,
18991        IOperationsProgressDialog *popd);
18992
18993    HRESULT (STDMETHODCALLTYPE *SetProperties)(
18994        IFileOperation *This,
18995        IPropertyChangeArray *pproparray);
18996
18997    HRESULT (STDMETHODCALLTYPE *SetOwnerWindow)(
18998        IFileOperation *This,
18999        HWND hwndOwner);
19000
19001    HRESULT (STDMETHODCALLTYPE *ApplyPropertiesToItem)(
19002        IFileOperation *This,
19003        IShellItem *psiItem);
19004
19005    HRESULT (STDMETHODCALLTYPE *ApplyPropertiesToItems)(
19006        IFileOperation *This,
19007        IUnknown *punkItems);
19008
19009    HRESULT (STDMETHODCALLTYPE *RenameItem)(
19010        IFileOperation *This,
19011        IShellItem *psiItem,
19012        LPCWSTR pszNewName,
19013        IFileOperationProgressSink *pfopsItem);
19014
19015    HRESULT (STDMETHODCALLTYPE *RenameItems)(
19016        IFileOperation *This,
19017        IUnknown *pUnkItems,
19018        LPCWSTR pszNewName);
19019
19020    HRESULT (STDMETHODCALLTYPE *MoveItem)(
19021        IFileOperation *This,
19022        IShellItem *psiItem,
19023        IShellItem *psiDestinationFolder,
19024        LPCWSTR pszNewName,
19025        IFileOperationProgressSink *pfopsItem);
19026
19027    HRESULT (STDMETHODCALLTYPE *MoveItems)(
19028        IFileOperation *This,
19029        IUnknown *punkItems,
19030        IShellItem *psiDestinationFolder);
19031
19032    HRESULT (STDMETHODCALLTYPE *CopyItem)(
19033        IFileOperation *This,
19034        IShellItem *psiItem,
19035        IShellItem *psiDestinationFolder,
19036        LPCWSTR pszCopyName,
19037        IFileOperationProgressSink *pfopsItem);
19038
19039    HRESULT (STDMETHODCALLTYPE *CopyItems)(
19040        IFileOperation *This,
19041        IUnknown *punkItems,
19042        IShellItem *psiDestinationFolder);
19043
19044    HRESULT (STDMETHODCALLTYPE *DeleteItem)(
19045        IFileOperation *This,
19046        IShellItem *psiItem,
19047        IFileOperationProgressSink *pfopsItem);
19048
19049    HRESULT (STDMETHODCALLTYPE *DeleteItems)(
19050        IFileOperation *This,
19051        IUnknown *punkItems);
19052
19053    HRESULT (STDMETHODCALLTYPE *NewItem)(
19054        IFileOperation *This,
19055        IShellItem *psiDestinationFolder,
19056        DWORD dwFileAttributes,
19057        LPCWSTR pszName,
19058        LPCWSTR pszTemplateName,
19059        IFileOperationProgressSink *pfopsItem);
19060
19061    HRESULT (STDMETHODCALLTYPE *PerformOperations)(
19062        IFileOperation *This);
19063
19064    HRESULT (STDMETHODCALLTYPE *GetAnyOperationsAborted)(
19065        IFileOperation *This,
19066        WINBOOL *pfAnyOperationsAborted);
19067
19068    END_INTERFACE
19069} IFileOperationVtbl;
19070
19071interface IFileOperation {
19072    CONST_VTBL IFileOperationVtbl* lpVtbl;
19073};
19074
19075#ifdef COBJMACROS
19076#ifndef WIDL_C_INLINE_WRAPPERS
19077/*** IUnknown methods ***/
19078#define IFileOperation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19079#define IFileOperation_AddRef(This) (This)->lpVtbl->AddRef(This)
19080#define IFileOperation_Release(This) (This)->lpVtbl->Release(This)
19081/*** IFileOperation methods ***/
19082#define IFileOperation_Advise(This,pfops,pdwCookie) (This)->lpVtbl->Advise(This,pfops,pdwCookie)
19083#define IFileOperation_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
19084#define IFileOperation_SetOperationFlags(This,dwOperationFlags) (This)->lpVtbl->SetOperationFlags(This,dwOperationFlags)
19085#define IFileOperation_SetProgressMessage(This,pszMessage) (This)->lpVtbl->SetProgressMessage(This,pszMessage)
19086#define IFileOperation_SetProgressDialog(This,popd) (This)->lpVtbl->SetProgressDialog(This,popd)
19087#define IFileOperation_SetProperties(This,pproparray) (This)->lpVtbl->SetProperties(This,pproparray)
19088#define IFileOperation_SetOwnerWindow(This,hwndOwner) (This)->lpVtbl->SetOwnerWindow(This,hwndOwner)
19089#define IFileOperation_ApplyPropertiesToItem(This,psiItem) (This)->lpVtbl->ApplyPropertiesToItem(This,psiItem)
19090#define IFileOperation_ApplyPropertiesToItems(This,punkItems) (This)->lpVtbl->ApplyPropertiesToItems(This,punkItems)
19091#define IFileOperation_RenameItem(This,psiItem,pszNewName,pfopsItem) (This)->lpVtbl->RenameItem(This,psiItem,pszNewName,pfopsItem)
19092#define IFileOperation_RenameItems(This,pUnkItems,pszNewName) (This)->lpVtbl->RenameItems(This,pUnkItems,pszNewName)
19093#define IFileOperation_MoveItem(This,psiItem,psiDestinationFolder,pszNewName,pfopsItem) (This)->lpVtbl->MoveItem(This,psiItem,psiDestinationFolder,pszNewName,pfopsItem)
19094#define IFileOperation_MoveItems(This,punkItems,psiDestinationFolder) (This)->lpVtbl->MoveItems(This,punkItems,psiDestinationFolder)
19095#define IFileOperation_CopyItem(This,psiItem,psiDestinationFolder,pszCopyName,pfopsItem) (This)->lpVtbl->CopyItem(This,psiItem,psiDestinationFolder,pszCopyName,pfopsItem)
19096#define IFileOperation_CopyItems(This,punkItems,psiDestinationFolder) (This)->lpVtbl->CopyItems(This,punkItems,psiDestinationFolder)
19097#define IFileOperation_DeleteItem(This,psiItem,pfopsItem) (This)->lpVtbl->DeleteItem(This,psiItem,pfopsItem)
19098#define IFileOperation_DeleteItems(This,punkItems) (This)->lpVtbl->DeleteItems(This,punkItems)
19099#define IFileOperation_NewItem(This,psiDestinationFolder,dwFileAttributes,pszName,pszTemplateName,pfopsItem) (This)->lpVtbl->NewItem(This,psiDestinationFolder,dwFileAttributes,pszName,pszTemplateName,pfopsItem)
19100#define IFileOperation_PerformOperations(This) (This)->lpVtbl->PerformOperations(This)
19101#define IFileOperation_GetAnyOperationsAborted(This,pfAnyOperationsAborted) (This)->lpVtbl->GetAnyOperationsAborted(This,pfAnyOperationsAborted)
19102#else
19103/*** IUnknown methods ***/
19104static inline HRESULT IFileOperation_QueryInterface(IFileOperation* This,REFIID riid,void **ppvObject) {
19105    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19106}
19107static inline ULONG IFileOperation_AddRef(IFileOperation* This) {
19108    return This->lpVtbl->AddRef(This);
19109}
19110static inline ULONG IFileOperation_Release(IFileOperation* This) {
19111    return This->lpVtbl->Release(This);
19112}
19113/*** IFileOperation methods ***/
19114static inline HRESULT IFileOperation_Advise(IFileOperation* This,IFileOperationProgressSink *pfops,DWORD *pdwCookie) {
19115    return This->lpVtbl->Advise(This,pfops,pdwCookie);
19116}
19117static inline HRESULT IFileOperation_Unadvise(IFileOperation* This,DWORD dwCookie) {
19118    return This->lpVtbl->Unadvise(This,dwCookie);
19119}
19120static inline HRESULT IFileOperation_SetOperationFlags(IFileOperation* This,DWORD dwOperationFlags) {
19121    return This->lpVtbl->SetOperationFlags(This,dwOperationFlags);
19122}
19123static inline HRESULT IFileOperation_SetProgressMessage(IFileOperation* This,LPCWSTR pszMessage) {
19124    return This->lpVtbl->SetProgressMessage(This,pszMessage);
19125}
19126static inline HRESULT IFileOperation_SetProgressDialog(IFileOperation* This,IOperationsProgressDialog *popd) {
19127    return This->lpVtbl->SetProgressDialog(This,popd);
19128}
19129static inline HRESULT IFileOperation_SetProperties(IFileOperation* This,IPropertyChangeArray *pproparray) {
19130    return This->lpVtbl->SetProperties(This,pproparray);
19131}
19132static inline HRESULT IFileOperation_SetOwnerWindow(IFileOperation* This,HWND hwndOwner) {
19133    return This->lpVtbl->SetOwnerWindow(This,hwndOwner);
19134}
19135static inline HRESULT IFileOperation_ApplyPropertiesToItem(IFileOperation* This,IShellItem *psiItem) {
19136    return This->lpVtbl->ApplyPropertiesToItem(This,psiItem);
19137}
19138static inline HRESULT IFileOperation_ApplyPropertiesToItems(IFileOperation* This,IUnknown *punkItems) {
19139    return This->lpVtbl->ApplyPropertiesToItems(This,punkItems);
19140}
19141static inline HRESULT IFileOperation_RenameItem(IFileOperation* This,IShellItem *psiItem,LPCWSTR pszNewName,IFileOperationProgressSink *pfopsItem) {
19142    return This->lpVtbl->RenameItem(This,psiItem,pszNewName,pfopsItem);
19143}
19144static inline HRESULT IFileOperation_RenameItems(IFileOperation* This,IUnknown *pUnkItems,LPCWSTR pszNewName) {
19145    return This->lpVtbl->RenameItems(This,pUnkItems,pszNewName);
19146}
19147static inline HRESULT IFileOperation_MoveItem(IFileOperation* This,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszNewName,IFileOperationProgressSink *pfopsItem) {
19148    return This->lpVtbl->MoveItem(This,psiItem,psiDestinationFolder,pszNewName,pfopsItem);
19149}
19150static inline HRESULT IFileOperation_MoveItems(IFileOperation* This,IUnknown *punkItems,IShellItem *psiDestinationFolder) {
19151    return This->lpVtbl->MoveItems(This,punkItems,psiDestinationFolder);
19152}
19153static inline HRESULT IFileOperation_CopyItem(IFileOperation* This,IShellItem *psiItem,IShellItem *psiDestinationFolder,LPCWSTR pszCopyName,IFileOperationProgressSink *pfopsItem) {
19154    return This->lpVtbl->CopyItem(This,psiItem,psiDestinationFolder,pszCopyName,pfopsItem);
19155}
19156static inline HRESULT IFileOperation_CopyItems(IFileOperation* This,IUnknown *punkItems,IShellItem *psiDestinationFolder) {
19157    return This->lpVtbl->CopyItems(This,punkItems,psiDestinationFolder);
19158}
19159static inline HRESULT IFileOperation_DeleteItem(IFileOperation* This,IShellItem *psiItem,IFileOperationProgressSink *pfopsItem) {
19160    return This->lpVtbl->DeleteItem(This,psiItem,pfopsItem);
19161}
19162static inline HRESULT IFileOperation_DeleteItems(IFileOperation* This,IUnknown *punkItems) {
19163    return This->lpVtbl->DeleteItems(This,punkItems);
19164}
19165static inline HRESULT IFileOperation_NewItem(IFileOperation* This,IShellItem *psiDestinationFolder,DWORD dwFileAttributes,LPCWSTR pszName,LPCWSTR pszTemplateName,IFileOperationProgressSink *pfopsItem) {
19166    return This->lpVtbl->NewItem(This,psiDestinationFolder,dwFileAttributes,pszName,pszTemplateName,pfopsItem);
19167}
19168static inline HRESULT IFileOperation_PerformOperations(IFileOperation* This) {
19169    return This->lpVtbl->PerformOperations(This);
19170}
19171static inline HRESULT IFileOperation_GetAnyOperationsAborted(IFileOperation* This,WINBOOL *pfAnyOperationsAborted) {
19172    return This->lpVtbl->GetAnyOperationsAborted(This,pfAnyOperationsAborted);
19173}
19174#endif
19175#endif
19176
19177#endif
19178
19179
19180#endif  /* __IFileOperation_INTERFACE_DEFINED__ */
19181
19182
19183/*****************************************************************************
19184 * IObjectProvider interface
19185 */
19186#ifndef __IObjectProvider_INTERFACE_DEFINED__
19187#define __IObjectProvider_INTERFACE_DEFINED__
19188
19189DEFINE_GUID(IID_IObjectProvider, 0xa6087428, 0x3be3, 0x4d73, 0xb3,0x08, 0x7c,0x04,0xa5,0x40,0xbf,0x1a);
19190#if defined(__cplusplus) && !defined(CINTERFACE)
19191MIDL_INTERFACE("a6087428-3be3-4d73-b308-7c04a540bf1a")
19192IObjectProvider : public IUnknown
19193{
19194    virtual HRESULT STDMETHODCALLTYPE QueryObject(
19195        REFGUID guidObject,
19196        REFIID riid,
19197        void **ppvOut) = 0;
19198
19199};
19200#ifdef __CRT_UUID_DECL
19201__CRT_UUID_DECL(IObjectProvider, 0xa6087428, 0x3be3, 0x4d73, 0xb3,0x08, 0x7c,0x04,0xa5,0x40,0xbf,0x1a)
19202#endif
19203#else
19204typedef struct IObjectProviderVtbl {
19205    BEGIN_INTERFACE
19206
19207    /*** IUnknown methods ***/
19208    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19209        IObjectProvider *This,
19210        REFIID riid,
19211        void **ppvObject);
19212
19213    ULONG (STDMETHODCALLTYPE *AddRef)(
19214        IObjectProvider *This);
19215
19216    ULONG (STDMETHODCALLTYPE *Release)(
19217        IObjectProvider *This);
19218
19219    /*** IObjectProvider methods ***/
19220    HRESULT (STDMETHODCALLTYPE *QueryObject)(
19221        IObjectProvider *This,
19222        REFGUID guidObject,
19223        REFIID riid,
19224        void **ppvOut);
19225
19226    END_INTERFACE
19227} IObjectProviderVtbl;
19228
19229interface IObjectProvider {
19230    CONST_VTBL IObjectProviderVtbl* lpVtbl;
19231};
19232
19233#ifdef COBJMACROS
19234#ifndef WIDL_C_INLINE_WRAPPERS
19235/*** IUnknown methods ***/
19236#define IObjectProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19237#define IObjectProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
19238#define IObjectProvider_Release(This) (This)->lpVtbl->Release(This)
19239/*** IObjectProvider methods ***/
19240#define IObjectProvider_QueryObject(This,guidObject,riid,ppvOut) (This)->lpVtbl->QueryObject(This,guidObject,riid,ppvOut)
19241#else
19242/*** IUnknown methods ***/
19243static inline HRESULT IObjectProvider_QueryInterface(IObjectProvider* This,REFIID riid,void **ppvObject) {
19244    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19245}
19246static inline ULONG IObjectProvider_AddRef(IObjectProvider* This) {
19247    return This->lpVtbl->AddRef(This);
19248}
19249static inline ULONG IObjectProvider_Release(IObjectProvider* This) {
19250    return This->lpVtbl->Release(This);
19251}
19252/*** IObjectProvider methods ***/
19253static inline HRESULT IObjectProvider_QueryObject(IObjectProvider* This,REFGUID guidObject,REFIID riid,void **ppvOut) {
19254    return This->lpVtbl->QueryObject(This,guidObject,riid,ppvOut);
19255}
19256#endif
19257#endif
19258
19259#endif
19260
19261
19262#endif  /* __IObjectProvider_INTERFACE_DEFINED__ */
19263
19264#endif
19265
19266/*****************************************************************************
19267 * INamespaceWalkCB interface
19268 */
19269#ifndef __INamespaceWalkCB_INTERFACE_DEFINED__
19270#define __INamespaceWalkCB_INTERFACE_DEFINED__
19271
19272DEFINE_GUID(IID_INamespaceWalkCB, 0xd92995f8, 0xcf5e, 0x4a76, 0xbf,0x59, 0xea,0xd3,0x9e,0xa2,0xb9,0x7e);
19273#if defined(__cplusplus) && !defined(CINTERFACE)
19274MIDL_INTERFACE("d92995f8-cf5e-4a76-bf59-ead39ea2b97e")
19275INamespaceWalkCB : public IUnknown
19276{
19277    virtual HRESULT STDMETHODCALLTYPE FoundItem(
19278        IShellFolder *psf,
19279        PCUITEMID_CHILD pidl) = 0;
19280
19281    virtual HRESULT STDMETHODCALLTYPE EnterFolder(
19282        IShellFolder *psf,
19283        PCUITEMID_CHILD pidl) = 0;
19284
19285    virtual HRESULT STDMETHODCALLTYPE LeaveFolder(
19286        IShellFolder *psf,
19287        PCUITEMID_CHILD pidl) = 0;
19288
19289    virtual HRESULT STDMETHODCALLTYPE InitializeProgressDialog(
19290        LPWSTR *ppszTitle,
19291        LPWSTR *ppszCancel) = 0;
19292
19293};
19294#ifdef __CRT_UUID_DECL
19295__CRT_UUID_DECL(INamespaceWalkCB, 0xd92995f8, 0xcf5e, 0x4a76, 0xbf,0x59, 0xea,0xd3,0x9e,0xa2,0xb9,0x7e)
19296#endif
19297#else
19298typedef struct INamespaceWalkCBVtbl {
19299    BEGIN_INTERFACE
19300
19301    /*** IUnknown methods ***/
19302    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19303        INamespaceWalkCB *This,
19304        REFIID riid,
19305        void **ppvObject);
19306
19307    ULONG (STDMETHODCALLTYPE *AddRef)(
19308        INamespaceWalkCB *This);
19309
19310    ULONG (STDMETHODCALLTYPE *Release)(
19311        INamespaceWalkCB *This);
19312
19313    /*** INamespaceWalkCB methods ***/
19314    HRESULT (STDMETHODCALLTYPE *FoundItem)(
19315        INamespaceWalkCB *This,
19316        IShellFolder *psf,
19317        PCUITEMID_CHILD pidl);
19318
19319    HRESULT (STDMETHODCALLTYPE *EnterFolder)(
19320        INamespaceWalkCB *This,
19321        IShellFolder *psf,
19322        PCUITEMID_CHILD pidl);
19323
19324    HRESULT (STDMETHODCALLTYPE *LeaveFolder)(
19325        INamespaceWalkCB *This,
19326        IShellFolder *psf,
19327        PCUITEMID_CHILD pidl);
19328
19329    HRESULT (STDMETHODCALLTYPE *InitializeProgressDialog)(
19330        INamespaceWalkCB *This,
19331        LPWSTR *ppszTitle,
19332        LPWSTR *ppszCancel);
19333
19334    END_INTERFACE
19335} INamespaceWalkCBVtbl;
19336
19337interface INamespaceWalkCB {
19338    CONST_VTBL INamespaceWalkCBVtbl* lpVtbl;
19339};
19340
19341#ifdef COBJMACROS
19342#ifndef WIDL_C_INLINE_WRAPPERS
19343/*** IUnknown methods ***/
19344#define INamespaceWalkCB_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19345#define INamespaceWalkCB_AddRef(This) (This)->lpVtbl->AddRef(This)
19346#define INamespaceWalkCB_Release(This) (This)->lpVtbl->Release(This)
19347/*** INamespaceWalkCB methods ***/
19348#define INamespaceWalkCB_FoundItem(This,psf,pidl) (This)->lpVtbl->FoundItem(This,psf,pidl)
19349#define INamespaceWalkCB_EnterFolder(This,psf,pidl) (This)->lpVtbl->EnterFolder(This,psf,pidl)
19350#define INamespaceWalkCB_LeaveFolder(This,psf,pidl) (This)->lpVtbl->LeaveFolder(This,psf,pidl)
19351#define INamespaceWalkCB_InitializeProgressDialog(This,ppszTitle,ppszCancel) (This)->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel)
19352#else
19353/*** IUnknown methods ***/
19354static inline HRESULT INamespaceWalkCB_QueryInterface(INamespaceWalkCB* This,REFIID riid,void **ppvObject) {
19355    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19356}
19357static inline ULONG INamespaceWalkCB_AddRef(INamespaceWalkCB* This) {
19358    return This->lpVtbl->AddRef(This);
19359}
19360static inline ULONG INamespaceWalkCB_Release(INamespaceWalkCB* This) {
19361    return This->lpVtbl->Release(This);
19362}
19363/*** INamespaceWalkCB methods ***/
19364static inline HRESULT INamespaceWalkCB_FoundItem(INamespaceWalkCB* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
19365    return This->lpVtbl->FoundItem(This,psf,pidl);
19366}
19367static inline HRESULT INamespaceWalkCB_EnterFolder(INamespaceWalkCB* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
19368    return This->lpVtbl->EnterFolder(This,psf,pidl);
19369}
19370static inline HRESULT INamespaceWalkCB_LeaveFolder(INamespaceWalkCB* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
19371    return This->lpVtbl->LeaveFolder(This,psf,pidl);
19372}
19373static inline HRESULT INamespaceWalkCB_InitializeProgressDialog(INamespaceWalkCB* This,LPWSTR *ppszTitle,LPWSTR *ppszCancel) {
19374    return This->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel);
19375}
19376#endif
19377#endif
19378
19379#endif
19380
19381
19382#endif  /* __INamespaceWalkCB_INTERFACE_DEFINED__ */
19383
19384
19385#if _WIN32_IE >= _WIN32_IE_IE70
19386/*****************************************************************************
19387 * INamespaceWalkCB2 interface
19388 */
19389#ifndef __INamespaceWalkCB2_INTERFACE_DEFINED__
19390#define __INamespaceWalkCB2_INTERFACE_DEFINED__
19391
19392DEFINE_GUID(IID_INamespaceWalkCB2, 0x7ac7492b, 0xc38e, 0x438a, 0x87,0xdb, 0x68,0x73,0x78,0x44,0xff,0x70);
19393#if defined(__cplusplus) && !defined(CINTERFACE)
19394MIDL_INTERFACE("7ac7492b-c38e-438a-87db-68737844ff70")
19395INamespaceWalkCB2 : public INamespaceWalkCB
19396{
19397    virtual HRESULT STDMETHODCALLTYPE WalkComplete(
19398        HRESULT hr) = 0;
19399
19400};
19401#ifdef __CRT_UUID_DECL
19402__CRT_UUID_DECL(INamespaceWalkCB2, 0x7ac7492b, 0xc38e, 0x438a, 0x87,0xdb, 0x68,0x73,0x78,0x44,0xff,0x70)
19403#endif
19404#else
19405typedef struct INamespaceWalkCB2Vtbl {
19406    BEGIN_INTERFACE
19407
19408    /*** IUnknown methods ***/
19409    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19410        INamespaceWalkCB2 *This,
19411        REFIID riid,
19412        void **ppvObject);
19413
19414    ULONG (STDMETHODCALLTYPE *AddRef)(
19415        INamespaceWalkCB2 *This);
19416
19417    ULONG (STDMETHODCALLTYPE *Release)(
19418        INamespaceWalkCB2 *This);
19419
19420    /*** INamespaceWalkCB methods ***/
19421    HRESULT (STDMETHODCALLTYPE *FoundItem)(
19422        INamespaceWalkCB2 *This,
19423        IShellFolder *psf,
19424        PCUITEMID_CHILD pidl);
19425
19426    HRESULT (STDMETHODCALLTYPE *EnterFolder)(
19427        INamespaceWalkCB2 *This,
19428        IShellFolder *psf,
19429        PCUITEMID_CHILD pidl);
19430
19431    HRESULT (STDMETHODCALLTYPE *LeaveFolder)(
19432        INamespaceWalkCB2 *This,
19433        IShellFolder *psf,
19434        PCUITEMID_CHILD pidl);
19435
19436    HRESULT (STDMETHODCALLTYPE *InitializeProgressDialog)(
19437        INamespaceWalkCB2 *This,
19438        LPWSTR *ppszTitle,
19439        LPWSTR *ppszCancel);
19440
19441    /*** INamespaceWalkCB2 methods ***/
19442    HRESULT (STDMETHODCALLTYPE *WalkComplete)(
19443        INamespaceWalkCB2 *This,
19444        HRESULT hr);
19445
19446    END_INTERFACE
19447} INamespaceWalkCB2Vtbl;
19448
19449interface INamespaceWalkCB2 {
19450    CONST_VTBL INamespaceWalkCB2Vtbl* lpVtbl;
19451};
19452
19453#ifdef COBJMACROS
19454#ifndef WIDL_C_INLINE_WRAPPERS
19455/*** IUnknown methods ***/
19456#define INamespaceWalkCB2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19457#define INamespaceWalkCB2_AddRef(This) (This)->lpVtbl->AddRef(This)
19458#define INamespaceWalkCB2_Release(This) (This)->lpVtbl->Release(This)
19459/*** INamespaceWalkCB methods ***/
19460#define INamespaceWalkCB2_FoundItem(This,psf,pidl) (This)->lpVtbl->FoundItem(This,psf,pidl)
19461#define INamespaceWalkCB2_EnterFolder(This,psf,pidl) (This)->lpVtbl->EnterFolder(This,psf,pidl)
19462#define INamespaceWalkCB2_LeaveFolder(This,psf,pidl) (This)->lpVtbl->LeaveFolder(This,psf,pidl)
19463#define INamespaceWalkCB2_InitializeProgressDialog(This,ppszTitle,ppszCancel) (This)->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel)
19464/*** INamespaceWalkCB2 methods ***/
19465#define INamespaceWalkCB2_WalkComplete(This,hr) (This)->lpVtbl->WalkComplete(This,hr)
19466#else
19467/*** IUnknown methods ***/
19468static inline HRESULT INamespaceWalkCB2_QueryInterface(INamespaceWalkCB2* This,REFIID riid,void **ppvObject) {
19469    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19470}
19471static inline ULONG INamespaceWalkCB2_AddRef(INamespaceWalkCB2* This) {
19472    return This->lpVtbl->AddRef(This);
19473}
19474static inline ULONG INamespaceWalkCB2_Release(INamespaceWalkCB2* This) {
19475    return This->lpVtbl->Release(This);
19476}
19477/*** INamespaceWalkCB methods ***/
19478static inline HRESULT INamespaceWalkCB2_FoundItem(INamespaceWalkCB2* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
19479    return This->lpVtbl->FoundItem(This,psf,pidl);
19480}
19481static inline HRESULT INamespaceWalkCB2_EnterFolder(INamespaceWalkCB2* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
19482    return This->lpVtbl->EnterFolder(This,psf,pidl);
19483}
19484static inline HRESULT INamespaceWalkCB2_LeaveFolder(INamespaceWalkCB2* This,IShellFolder *psf,PCUITEMID_CHILD pidl) {
19485    return This->lpVtbl->LeaveFolder(This,psf,pidl);
19486}
19487static inline HRESULT INamespaceWalkCB2_InitializeProgressDialog(INamespaceWalkCB2* This,LPWSTR *ppszTitle,LPWSTR *ppszCancel) {
19488    return This->lpVtbl->InitializeProgressDialog(This,ppszTitle,ppszCancel);
19489}
19490/*** INamespaceWalkCB2 methods ***/
19491static inline HRESULT INamespaceWalkCB2_WalkComplete(INamespaceWalkCB2* This,HRESULT hr) {
19492    return This->lpVtbl->WalkComplete(This,hr);
19493}
19494#endif
19495#endif
19496
19497#endif
19498
19499
19500#endif  /* __INamespaceWalkCB2_INTERFACE_DEFINED__ */
19501
19502#endif
19503
19504/*****************************************************************************
19505 * INamespaceWalk interface
19506 */
19507#ifndef __INamespaceWalk_INTERFACE_DEFINED__
19508#define __INamespaceWalk_INTERFACE_DEFINED__
19509
19510typedef enum NAMESPACEWALKFLAG {
19511    NSWF_DEFAULT = 0x0,
19512    NSWF_NONE_IMPLIES_ALL = 0x1,
19513    NSWF_ONE_IMPLIES_ALL = 0x2,
19514    NSWF_DONT_TRAVERSE_LINKS = 0x4,
19515    NSWF_DONT_ACCUMULATE_RESULT = 0x8,
19516    NSWF_TRAVERSE_STREAM_JUNCTIONS = 0x10,
19517    NSWF_FILESYSTEM_ONLY = 0x20,
19518    NSWF_SHOW_PROGRESS = 0x40,
19519    NSWF_FLAG_VIEWORDER = 0x80,
19520    NSWF_IGNORE_AUTOPLAY_HIDA = 0x100,
19521    NSWF_ASYNC = 0x200,
19522    NSWF_DONT_RESOLVE_LINKS = 0x400,
19523    NSWF_ACCUMULATE_FOLDERS = 0x800,
19524    NSWF_DONT_SORT = 0x1000,
19525    NSWF_USE_TRANSFER_MEDIUM = 0x2000,
19526    NSWF_DONT_TRAVERSE_STREAM_JUNCTIONS = 0x4000,
19527    NSWF_ANY_IMPLIES_ALL = 0x8000
19528} NAMESPACEWALKFLAG;
19529
19530#define NSWF_ENUMERATE_BEST_EFFORT 0x00010000
19531#define NSWF_TRAVERSE_ONLY_STORAGE 0x00020000
19532
19533DEFINE_ENUM_FLAG_OPERATORS(NAMESPACEWALKFLAG)
19534
19535DEFINE_GUID(IID_INamespaceWalk, 0x57ced8a7, 0x3f4a, 0x432c, 0x93,0x50, 0x30,0xf2,0x44,0x83,0xf7,0x4f);
19536#if defined(__cplusplus) && !defined(CINTERFACE)
19537MIDL_INTERFACE("57ced8a7-3f4a-432c-9350-30f24483f74f")
19538INamespaceWalk : public IUnknown
19539{
19540    virtual HRESULT STDMETHODCALLTYPE Walk(
19541        IUnknown *punkToWalk,
19542        DWORD dwFlags,
19543        int cDepth,
19544        INamespaceWalkCB *pnswcb) = 0;
19545
19546    virtual HRESULT STDMETHODCALLTYPE GetIDArrayResult(
19547        UINT *pcItems,
19548        PIDLIST_ABSOLUTE **prgpidl) = 0;
19549
19550};
19551#ifdef __CRT_UUID_DECL
19552__CRT_UUID_DECL(INamespaceWalk, 0x57ced8a7, 0x3f4a, 0x432c, 0x93,0x50, 0x30,0xf2,0x44,0x83,0xf7,0x4f)
19553#endif
19554#else
19555typedef struct INamespaceWalkVtbl {
19556    BEGIN_INTERFACE
19557
19558    /*** IUnknown methods ***/
19559    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19560        INamespaceWalk *This,
19561        REFIID riid,
19562        void **ppvObject);
19563
19564    ULONG (STDMETHODCALLTYPE *AddRef)(
19565        INamespaceWalk *This);
19566
19567    ULONG (STDMETHODCALLTYPE *Release)(
19568        INamespaceWalk *This);
19569
19570    /*** INamespaceWalk methods ***/
19571    HRESULT (STDMETHODCALLTYPE *Walk)(
19572        INamespaceWalk *This,
19573        IUnknown *punkToWalk,
19574        DWORD dwFlags,
19575        int cDepth,
19576        INamespaceWalkCB *pnswcb);
19577
19578    HRESULT (STDMETHODCALLTYPE *GetIDArrayResult)(
19579        INamespaceWalk *This,
19580        UINT *pcItems,
19581        PIDLIST_ABSOLUTE **prgpidl);
19582
19583    END_INTERFACE
19584} INamespaceWalkVtbl;
19585
19586interface INamespaceWalk {
19587    CONST_VTBL INamespaceWalkVtbl* lpVtbl;
19588};
19589
19590#ifdef COBJMACROS
19591#ifndef WIDL_C_INLINE_WRAPPERS
19592/*** IUnknown methods ***/
19593#define INamespaceWalk_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19594#define INamespaceWalk_AddRef(This) (This)->lpVtbl->AddRef(This)
19595#define INamespaceWalk_Release(This) (This)->lpVtbl->Release(This)
19596/*** INamespaceWalk methods ***/
19597#define INamespaceWalk_Walk(This,punkToWalk,dwFlags,cDepth,pnswcb) (This)->lpVtbl->Walk(This,punkToWalk,dwFlags,cDepth,pnswcb)
19598#define INamespaceWalk_GetIDArrayResult(This,pcItems,prgpidl) (This)->lpVtbl->GetIDArrayResult(This,pcItems,prgpidl)
19599#else
19600/*** IUnknown methods ***/
19601static inline HRESULT INamespaceWalk_QueryInterface(INamespaceWalk* This,REFIID riid,void **ppvObject) {
19602    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19603}
19604static inline ULONG INamespaceWalk_AddRef(INamespaceWalk* This) {
19605    return This->lpVtbl->AddRef(This);
19606}
19607static inline ULONG INamespaceWalk_Release(INamespaceWalk* This) {
19608    return This->lpVtbl->Release(This);
19609}
19610/*** INamespaceWalk methods ***/
19611static inline HRESULT INamespaceWalk_Walk(INamespaceWalk* This,IUnknown *punkToWalk,DWORD dwFlags,int cDepth,INamespaceWalkCB *pnswcb) {
19612    return This->lpVtbl->Walk(This,punkToWalk,dwFlags,cDepth,pnswcb);
19613}
19614static inline HRESULT INamespaceWalk_GetIDArrayResult(INamespaceWalk* This,UINT *pcItems,PIDLIST_ABSOLUTE **prgpidl) {
19615    return This->lpVtbl->GetIDArrayResult(This,pcItems,prgpidl);
19616}
19617#endif
19618#endif
19619
19620#endif
19621
19622
19623#endif  /* __INamespaceWalk_INTERFACE_DEFINED__ */
19624
19625
19626  __forceinline void FreeIDListArray(PIDLIST_RELATIVE *ppidls, UINT cItems) {
19627    UINT i;
19628    for (i = 0; i < cItems; i++) {
19629      CoTaskMemFree(ppidls[i]);
19630    }
19631    CoTaskMemFree(ppidls);
19632  }
19633#if defined(STRICT_TYPED_ITEMIDS) && defined(__cplusplus)
19634  __forceinline void FreeIDListArrayFull(PIDLIST_ABSOLUTE *ppidls, UINT cItems) {
19635    UINT i;
19636    for (i = 0; i < cItems; i++)
19637      CoTaskMemFree(ppidls[i]);
19638    CoTaskMemFree(ppidls);
19639  }
19640  __forceinline void FreeIDListArrayChild(PITEMID_CHILD *ppidls, UINT cItems) {
19641    UINT i;
19642    for (i = 0; i < cItems; i++)
19643      CoTaskMemFree(ppidls[i]);
19644    CoTaskMemFree(ppidls);
19645  }
19646#else
19647#define FreeIDListArrayFull FreeIDListArray
19648#define FreeIDListArrayChild FreeIDListArray
19649#endif
19650
19651#define ACDD_VISIBLE 0x1
19652
19653/*****************************************************************************
19654 * IAutoCompleteDropDown interface
19655 */
19656#ifndef __IAutoCompleteDropDown_INTERFACE_DEFINED__
19657#define __IAutoCompleteDropDown_INTERFACE_DEFINED__
19658
19659DEFINE_GUID(IID_IAutoCompleteDropDown, 0x3cd141f4, 0x3c6a, 0x11d2, 0xbc,0xaa, 0x00,0xc0,0x4f,0xd9,0x29,0xdb);
19660#if defined(__cplusplus) && !defined(CINTERFACE)
19661MIDL_INTERFACE("3cd141f4-3c6a-11d2-bcaa-00c04fd929db")
19662IAutoCompleteDropDown : public IUnknown
19663{
19664    virtual HRESULT STDMETHODCALLTYPE GetDropDownStatus(
19665        DWORD *pdwFlags,
19666        LPWSTR *ppwszString) = 0;
19667
19668    virtual HRESULT STDMETHODCALLTYPE ResetEnumerator(
19669        ) = 0;
19670
19671};
19672#ifdef __CRT_UUID_DECL
19673__CRT_UUID_DECL(IAutoCompleteDropDown, 0x3cd141f4, 0x3c6a, 0x11d2, 0xbc,0xaa, 0x00,0xc0,0x4f,0xd9,0x29,0xdb)
19674#endif
19675#else
19676typedef struct IAutoCompleteDropDownVtbl {
19677    BEGIN_INTERFACE
19678
19679    /*** IUnknown methods ***/
19680    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19681        IAutoCompleteDropDown *This,
19682        REFIID riid,
19683        void **ppvObject);
19684
19685    ULONG (STDMETHODCALLTYPE *AddRef)(
19686        IAutoCompleteDropDown *This);
19687
19688    ULONG (STDMETHODCALLTYPE *Release)(
19689        IAutoCompleteDropDown *This);
19690
19691    /*** IAutoCompleteDropDown methods ***/
19692    HRESULT (STDMETHODCALLTYPE *GetDropDownStatus)(
19693        IAutoCompleteDropDown *This,
19694        DWORD *pdwFlags,
19695        LPWSTR *ppwszString);
19696
19697    HRESULT (STDMETHODCALLTYPE *ResetEnumerator)(
19698        IAutoCompleteDropDown *This);
19699
19700    END_INTERFACE
19701} IAutoCompleteDropDownVtbl;
19702
19703interface IAutoCompleteDropDown {
19704    CONST_VTBL IAutoCompleteDropDownVtbl* lpVtbl;
19705};
19706
19707#ifdef COBJMACROS
19708#ifndef WIDL_C_INLINE_WRAPPERS
19709/*** IUnknown methods ***/
19710#define IAutoCompleteDropDown_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19711#define IAutoCompleteDropDown_AddRef(This) (This)->lpVtbl->AddRef(This)
19712#define IAutoCompleteDropDown_Release(This) (This)->lpVtbl->Release(This)
19713/*** IAutoCompleteDropDown methods ***/
19714#define IAutoCompleteDropDown_GetDropDownStatus(This,pdwFlags,ppwszString) (This)->lpVtbl->GetDropDownStatus(This,pdwFlags,ppwszString)
19715#define IAutoCompleteDropDown_ResetEnumerator(This) (This)->lpVtbl->ResetEnumerator(This)
19716#else
19717/*** IUnknown methods ***/
19718static inline HRESULT IAutoCompleteDropDown_QueryInterface(IAutoCompleteDropDown* This,REFIID riid,void **ppvObject) {
19719    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19720}
19721static inline ULONG IAutoCompleteDropDown_AddRef(IAutoCompleteDropDown* This) {
19722    return This->lpVtbl->AddRef(This);
19723}
19724static inline ULONG IAutoCompleteDropDown_Release(IAutoCompleteDropDown* This) {
19725    return This->lpVtbl->Release(This);
19726}
19727/*** IAutoCompleteDropDown methods ***/
19728static inline HRESULT IAutoCompleteDropDown_GetDropDownStatus(IAutoCompleteDropDown* This,DWORD *pdwFlags,LPWSTR *ppwszString) {
19729    return This->lpVtbl->GetDropDownStatus(This,pdwFlags,ppwszString);
19730}
19731static inline HRESULT IAutoCompleteDropDown_ResetEnumerator(IAutoCompleteDropDown* This) {
19732    return This->lpVtbl->ResetEnumerator(This);
19733}
19734#endif
19735#endif
19736
19737#endif
19738
19739
19740#endif  /* __IAutoCompleteDropDown_INTERFACE_DEFINED__ */
19741
19742
19743#include <pshpack8.h>
19744typedef struct tagBANDSITEINFO {
19745    DWORD dwMask;
19746    DWORD dwState;
19747    DWORD dwStyle;
19748} BANDSITEINFO;
19749#include <poppack.h>
19750enum tagBANDSITECID {
19751    BSID_BANDADDED = 0,
19752    BSID_BANDREMOVED = 1
19753};
19754
19755#define BSIM_STATE 0x00000001
19756#define BSIM_STYLE 0x00000002
19757
19758#define BSSF_VISIBLE 0x00000001
19759#define BSSF_NOTITLE 0x00000002
19760#define BSSF_UNDELETEABLE 0x00001000
19761
19762#define BSIS_AUTOGRIPPER 0x00000000
19763#define BSIS_NOGRIPPER 0x00000001
19764#define BSIS_ALWAYSGRIPPER 0x00000002
19765#define BSIS_LEFTALIGN 0x00000004
19766#define BSIS_SINGLECLICK 0x00000008
19767#define BSIS_NOCONTEXTMENU 0x00000010
19768#define BSIS_NODROPTARGET 0x00000020
19769#define BSIS_NOCAPTION 0x00000040
19770#define BSIS_PREFERNOLINEBREAK 0x00000080
19771#define BSIS_LOCKED 0x00000100
19772#if _WIN32_IE >= _WIN32_IE_IE70
19773#define BSIS_PRESERVEORDERDURINGLAYOUT 0x00000200
19774#define BSIS_FIXEDORDER 0x00000400
19775#endif
19776
19777#define SID_SBandSite IID_IBandSite
19778#define CGID_BandSite IID_IBandSite
19779
19780/*****************************************************************************
19781 * IBandSite interface
19782 */
19783#ifndef __IBandSite_INTERFACE_DEFINED__
19784#define __IBandSite_INTERFACE_DEFINED__
19785
19786DEFINE_GUID(IID_IBandSite, 0x4cf504b0, 0xde96, 0x11d0, 0x8b,0x3f, 0x00,0xa0,0xc9,0x11,0xe8,0xe5);
19787#if defined(__cplusplus) && !defined(CINTERFACE)
19788MIDL_INTERFACE("4cf504b0-de96-11d0-8b3f-00a0c911e8e5")
19789IBandSite : public IUnknown
19790{
19791    virtual HRESULT STDMETHODCALLTYPE AddBand(
19792        IUnknown *punk) = 0;
19793
19794    virtual HRESULT STDMETHODCALLTYPE EnumBands(
19795        UINT uBand,
19796        DWORD *pdwBandID) = 0;
19797
19798    virtual HRESULT STDMETHODCALLTYPE QueryBand(
19799        DWORD dwBandID,
19800        IDeskBand **ppstb,
19801        DWORD *pdwState,
19802        LPWSTR pszName,
19803        int cchName) = 0;
19804
19805    virtual HRESULT STDMETHODCALLTYPE SetBandState(
19806        DWORD dwBandID,
19807        DWORD dwMask,
19808        DWORD dwState) = 0;
19809
19810    virtual HRESULT STDMETHODCALLTYPE RemoveBand(
19811        DWORD dwBandID) = 0;
19812
19813    virtual HRESULT STDMETHODCALLTYPE GetBandObject(
19814        DWORD dwBandID,
19815        REFIID riid,
19816        void **ppv) = 0;
19817
19818    virtual HRESULT STDMETHODCALLTYPE SetBandSiteInfo(
19819        const BANDSITEINFO *pbsinfo) = 0;
19820
19821    virtual HRESULT STDMETHODCALLTYPE GetBandSiteInfo(
19822        BANDSITEINFO *pbsinfo) = 0;
19823
19824};
19825#ifdef __CRT_UUID_DECL
19826__CRT_UUID_DECL(IBandSite, 0x4cf504b0, 0xde96, 0x11d0, 0x8b,0x3f, 0x00,0xa0,0xc9,0x11,0xe8,0xe5)
19827#endif
19828#else
19829typedef struct IBandSiteVtbl {
19830    BEGIN_INTERFACE
19831
19832    /*** IUnknown methods ***/
19833    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
19834        IBandSite *This,
19835        REFIID riid,
19836        void **ppvObject);
19837
19838    ULONG (STDMETHODCALLTYPE *AddRef)(
19839        IBandSite *This);
19840
19841    ULONG (STDMETHODCALLTYPE *Release)(
19842        IBandSite *This);
19843
19844    /*** IBandSite methods ***/
19845    HRESULT (STDMETHODCALLTYPE *AddBand)(
19846        IBandSite *This,
19847        IUnknown *punk);
19848
19849    HRESULT (STDMETHODCALLTYPE *EnumBands)(
19850        IBandSite *This,
19851        UINT uBand,
19852        DWORD *pdwBandID);
19853
19854    HRESULT (STDMETHODCALLTYPE *QueryBand)(
19855        IBandSite *This,
19856        DWORD dwBandID,
19857        IDeskBand **ppstb,
19858        DWORD *pdwState,
19859        LPWSTR pszName,
19860        int cchName);
19861
19862    HRESULT (STDMETHODCALLTYPE *SetBandState)(
19863        IBandSite *This,
19864        DWORD dwBandID,
19865        DWORD dwMask,
19866        DWORD dwState);
19867
19868    HRESULT (STDMETHODCALLTYPE *RemoveBand)(
19869        IBandSite *This,
19870        DWORD dwBandID);
19871
19872    HRESULT (STDMETHODCALLTYPE *GetBandObject)(
19873        IBandSite *This,
19874        DWORD dwBandID,
19875        REFIID riid,
19876        void **ppv);
19877
19878    HRESULT (STDMETHODCALLTYPE *SetBandSiteInfo)(
19879        IBandSite *This,
19880        const BANDSITEINFO *pbsinfo);
19881
19882    HRESULT (STDMETHODCALLTYPE *GetBandSiteInfo)(
19883        IBandSite *This,
19884        BANDSITEINFO *pbsinfo);
19885
19886    END_INTERFACE
19887} IBandSiteVtbl;
19888
19889interface IBandSite {
19890    CONST_VTBL IBandSiteVtbl* lpVtbl;
19891};
19892
19893#ifdef COBJMACROS
19894#ifndef WIDL_C_INLINE_WRAPPERS
19895/*** IUnknown methods ***/
19896#define IBandSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
19897#define IBandSite_AddRef(This) (This)->lpVtbl->AddRef(This)
19898#define IBandSite_Release(This) (This)->lpVtbl->Release(This)
19899/*** IBandSite methods ***/
19900#define IBandSite_AddBand(This,punk) (This)->lpVtbl->AddBand(This,punk)
19901#define IBandSite_EnumBands(This,uBand,pdwBandID) (This)->lpVtbl->EnumBands(This,uBand,pdwBandID)
19902#define IBandSite_QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName) (This)->lpVtbl->QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName)
19903#define IBandSite_SetBandState(This,dwBandID,dwMask,dwState) (This)->lpVtbl->SetBandState(This,dwBandID,dwMask,dwState)
19904#define IBandSite_RemoveBand(This,dwBandID) (This)->lpVtbl->RemoveBand(This,dwBandID)
19905#define IBandSite_GetBandObject(This,dwBandID,riid,ppv) (This)->lpVtbl->GetBandObject(This,dwBandID,riid,ppv)
19906#define IBandSite_SetBandSiteInfo(This,pbsinfo) (This)->lpVtbl->SetBandSiteInfo(This,pbsinfo)
19907#define IBandSite_GetBandSiteInfo(This,pbsinfo) (This)->lpVtbl->GetBandSiteInfo(This,pbsinfo)
19908#else
19909/*** IUnknown methods ***/
19910static inline HRESULT IBandSite_QueryInterface(IBandSite* This,REFIID riid,void **ppvObject) {
19911    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
19912}
19913static inline ULONG IBandSite_AddRef(IBandSite* This) {
19914    return This->lpVtbl->AddRef(This);
19915}
19916static inline ULONG IBandSite_Release(IBandSite* This) {
19917    return This->lpVtbl->Release(This);
19918}
19919/*** IBandSite methods ***/
19920static inline HRESULT IBandSite_AddBand(IBandSite* This,IUnknown *punk) {
19921    return This->lpVtbl->AddBand(This,punk);
19922}
19923static inline HRESULT IBandSite_EnumBands(IBandSite* This,UINT uBand,DWORD *pdwBandID) {
19924    return This->lpVtbl->EnumBands(This,uBand,pdwBandID);
19925}
19926static inline HRESULT IBandSite_QueryBand(IBandSite* This,DWORD dwBandID,IDeskBand **ppstb,DWORD *pdwState,LPWSTR pszName,int cchName) {
19927    return This->lpVtbl->QueryBand(This,dwBandID,ppstb,pdwState,pszName,cchName);
19928}
19929static inline HRESULT IBandSite_SetBandState(IBandSite* This,DWORD dwBandID,DWORD dwMask,DWORD dwState) {
19930    return This->lpVtbl->SetBandState(This,dwBandID,dwMask,dwState);
19931}
19932static inline HRESULT IBandSite_RemoveBand(IBandSite* This,DWORD dwBandID) {
19933    return This->lpVtbl->RemoveBand(This,dwBandID);
19934}
19935static inline HRESULT IBandSite_GetBandObject(IBandSite* This,DWORD dwBandID,REFIID riid,void **ppv) {
19936    return This->lpVtbl->GetBandObject(This,dwBandID,riid,ppv);
19937}
19938static inline HRESULT IBandSite_SetBandSiteInfo(IBandSite* This,const BANDSITEINFO *pbsinfo) {
19939    return This->lpVtbl->SetBandSiteInfo(This,pbsinfo);
19940}
19941static inline HRESULT IBandSite_GetBandSiteInfo(IBandSite* This,BANDSITEINFO *pbsinfo) {
19942    return This->lpVtbl->GetBandSiteInfo(This,pbsinfo);
19943}
19944#endif
19945#endif
19946
19947#endif
19948
19949HRESULT STDMETHODCALLTYPE IBandSite_RemoteQueryBand_Proxy(
19950    IBandSite* This,
19951    DWORD dwBandID,
19952    IDeskBand **ppstb,
19953    DWORD *pdwState,
19954    LPWSTR pszName,
19955    int cchName);
19956void __RPC_STUB IBandSite_RemoteQueryBand_Stub(
19957    IRpcStubBuffer* This,
19958    IRpcChannelBuffer* pRpcChannelBuffer,
19959    PRPC_MESSAGE pRpcMessage,
19960    DWORD* pdwStubPhase);
19961HRESULT CALLBACK IBandSite_QueryBand_Proxy(
19962    IBandSite* This,
19963    DWORD dwBandID,
19964    IDeskBand **ppstb,
19965    DWORD *pdwState,
19966    LPWSTR pszName,
19967    int cchName);
19968HRESULT __RPC_STUB IBandSite_QueryBand_Stub(
19969    IBandSite* This,
19970    DWORD dwBandID,
19971    IDeskBand **ppstb,
19972    DWORD *pdwState,
19973    LPWSTR pszName,
19974    int cchName);
19975
19976#endif  /* __IBandSite_INTERFACE_DEFINED__ */
19977
19978
19979/*****************************************************************************
19980 * IModalWindow interface
19981 */
19982#ifndef __IModalWindow_INTERFACE_DEFINED__
19983#define __IModalWindow_INTERFACE_DEFINED__
19984
19985DEFINE_GUID(IID_IModalWindow, 0xb4db1657, 0x70d7, 0x485e, 0x8e,0x3e, 0x6f,0xcb,0x5a,0x5c,0x18,0x02);
19986#if defined(__cplusplus) && !defined(CINTERFACE)
19987MIDL_INTERFACE("b4db1657-70d7-485e-8e3e-6fcb5a5c1802")
19988IModalWindow : public IUnknown
19989{
19990    virtual HRESULT STDMETHODCALLTYPE Show(
19991        HWND hwndOwner) = 0;
19992
19993};
19994#ifdef __CRT_UUID_DECL
19995__CRT_UUID_DECL(IModalWindow, 0xb4db1657, 0x70d7, 0x485e, 0x8e,0x3e, 0x6f,0xcb,0x5a,0x5c,0x18,0x02)
19996#endif
19997#else
19998typedef struct IModalWindowVtbl {
19999    BEGIN_INTERFACE
20000
20001    /*** IUnknown methods ***/
20002    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20003        IModalWindow *This,
20004        REFIID riid,
20005        void **ppvObject);
20006
20007    ULONG (STDMETHODCALLTYPE *AddRef)(
20008        IModalWindow *This);
20009
20010    ULONG (STDMETHODCALLTYPE *Release)(
20011        IModalWindow *This);
20012
20013    /*** IModalWindow methods ***/
20014    HRESULT (STDMETHODCALLTYPE *Show)(
20015        IModalWindow *This,
20016        HWND hwndOwner);
20017
20018    END_INTERFACE
20019} IModalWindowVtbl;
20020
20021interface IModalWindow {
20022    CONST_VTBL IModalWindowVtbl* lpVtbl;
20023};
20024
20025#ifdef COBJMACROS
20026#ifndef WIDL_C_INLINE_WRAPPERS
20027/*** IUnknown methods ***/
20028#define IModalWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20029#define IModalWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
20030#define IModalWindow_Release(This) (This)->lpVtbl->Release(This)
20031/*** IModalWindow methods ***/
20032#define IModalWindow_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
20033#else
20034/*** IUnknown methods ***/
20035static inline HRESULT IModalWindow_QueryInterface(IModalWindow* This,REFIID riid,void **ppvObject) {
20036    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20037}
20038static inline ULONG IModalWindow_AddRef(IModalWindow* This) {
20039    return This->lpVtbl->AddRef(This);
20040}
20041static inline ULONG IModalWindow_Release(IModalWindow* This) {
20042    return This->lpVtbl->Release(This);
20043}
20044/*** IModalWindow methods ***/
20045static inline HRESULT IModalWindow_Show(IModalWindow* This,HWND hwndOwner) {
20046    return This->lpVtbl->Show(This,hwndOwner);
20047}
20048#endif
20049#endif
20050
20051#endif
20052
20053HRESULT STDMETHODCALLTYPE IModalWindow_RemoteShow_Proxy(
20054    IModalWindow* This,
20055    HWND hwndOwner);
20056void __RPC_STUB IModalWindow_RemoteShow_Stub(
20057    IRpcStubBuffer* This,
20058    IRpcChannelBuffer* pRpcChannelBuffer,
20059    PRPC_MESSAGE pRpcMessage,
20060    DWORD* pdwStubPhase);
20061HRESULT CALLBACK IModalWindow_Show_Proxy(
20062    IModalWindow* This,
20063    HWND hwndOwner);
20064HRESULT __RPC_STUB IModalWindow_Show_Stub(
20065    IModalWindow* This,
20066    HWND hwndOwner);
20067
20068#endif  /* __IModalWindow_INTERFACE_DEFINED__ */
20069
20070
20071#define PROPSTR_EXTENSIONCOMPLETIONSTATE L"ExtensionCompletionState"
20072
20073enum tagCDBURNINGEXTENSIONRET {
20074    CDBE_RET_DEFAULT = 0x0,
20075    CDBE_RET_DONTRUNOTHEREXTS = 0x1,
20076    CDBE_RET_STOPWIZARD = 0x2
20077};
20078
20079#define SID_CDWizardHost IID_ICDBurnExt
20080
20081enum _CDBE_ACTIONS {
20082    CDBE_TYPE_MUSIC = 0x1,
20083    CDBE_TYPE_DATA = 0x2,
20084    CDBE_TYPE_ALL = (int)0xffffffff
20085};
20086
20087typedef DWORD CDBE_ACTIONS;
20088
20089/*****************************************************************************
20090 * ICDBurnExt interface
20091 */
20092#ifndef __ICDBurnExt_INTERFACE_DEFINED__
20093#define __ICDBurnExt_INTERFACE_DEFINED__
20094
20095DEFINE_GUID(IID_ICDBurnExt, 0x2271dcca, 0x74fc, 0x4414, 0x8f,0xb7, 0xc5,0x6b,0x05,0xac,0xe2,0xd7);
20096#if defined(__cplusplus) && !defined(CINTERFACE)
20097MIDL_INTERFACE("2271dcca-74fc-4414-8fb7-c56b05ace2d7")
20098ICDBurnExt : public IUnknown
20099{
20100    virtual HRESULT STDMETHODCALLTYPE GetSupportedActionTypes(
20101        CDBE_ACTIONS *pdwActions) = 0;
20102
20103};
20104#ifdef __CRT_UUID_DECL
20105__CRT_UUID_DECL(ICDBurnExt, 0x2271dcca, 0x74fc, 0x4414, 0x8f,0xb7, 0xc5,0x6b,0x05,0xac,0xe2,0xd7)
20106#endif
20107#else
20108typedef struct ICDBurnExtVtbl {
20109    BEGIN_INTERFACE
20110
20111    /*** IUnknown methods ***/
20112    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20113        ICDBurnExt *This,
20114        REFIID riid,
20115        void **ppvObject);
20116
20117    ULONG (STDMETHODCALLTYPE *AddRef)(
20118        ICDBurnExt *This);
20119
20120    ULONG (STDMETHODCALLTYPE *Release)(
20121        ICDBurnExt *This);
20122
20123    /*** ICDBurnExt methods ***/
20124    HRESULT (STDMETHODCALLTYPE *GetSupportedActionTypes)(
20125        ICDBurnExt *This,
20126        CDBE_ACTIONS *pdwActions);
20127
20128    END_INTERFACE
20129} ICDBurnExtVtbl;
20130
20131interface ICDBurnExt {
20132    CONST_VTBL ICDBurnExtVtbl* lpVtbl;
20133};
20134
20135#ifdef COBJMACROS
20136#ifndef WIDL_C_INLINE_WRAPPERS
20137/*** IUnknown methods ***/
20138#define ICDBurnExt_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20139#define ICDBurnExt_AddRef(This) (This)->lpVtbl->AddRef(This)
20140#define ICDBurnExt_Release(This) (This)->lpVtbl->Release(This)
20141/*** ICDBurnExt methods ***/
20142#define ICDBurnExt_GetSupportedActionTypes(This,pdwActions) (This)->lpVtbl->GetSupportedActionTypes(This,pdwActions)
20143#else
20144/*** IUnknown methods ***/
20145static inline HRESULT ICDBurnExt_QueryInterface(ICDBurnExt* This,REFIID riid,void **ppvObject) {
20146    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20147}
20148static inline ULONG ICDBurnExt_AddRef(ICDBurnExt* This) {
20149    return This->lpVtbl->AddRef(This);
20150}
20151static inline ULONG ICDBurnExt_Release(ICDBurnExt* This) {
20152    return This->lpVtbl->Release(This);
20153}
20154/*** ICDBurnExt methods ***/
20155static inline HRESULT ICDBurnExt_GetSupportedActionTypes(ICDBurnExt* This,CDBE_ACTIONS *pdwActions) {
20156    return This->lpVtbl->GetSupportedActionTypes(This,pdwActions);
20157}
20158#endif
20159#endif
20160
20161#endif
20162
20163
20164#endif  /* __ICDBurnExt_INTERFACE_DEFINED__ */
20165
20166
20167/*****************************************************************************
20168 * IContextMenuSite interface
20169 */
20170#ifndef __IContextMenuSite_INTERFACE_DEFINED__
20171#define __IContextMenuSite_INTERFACE_DEFINED__
20172
20173DEFINE_GUID(IID_IContextMenuSite, 0x0811aebe, 0x0b87, 0x4c54, 0x9e,0x72, 0x54,0x8c,0xf6,0x49,0x01,0x6b);
20174#if defined(__cplusplus) && !defined(CINTERFACE)
20175MIDL_INTERFACE("0811aebe-0b87-4c54-9e72-548cf649016b")
20176IContextMenuSite : public IUnknown
20177{
20178    virtual HRESULT STDMETHODCALLTYPE DoContextMenuPopup(
20179        IUnknown *punkContextMenu,
20180        UINT fFlags,
20181        POINT pt) = 0;
20182
20183};
20184#ifdef __CRT_UUID_DECL
20185__CRT_UUID_DECL(IContextMenuSite, 0x0811aebe, 0x0b87, 0x4c54, 0x9e,0x72, 0x54,0x8c,0xf6,0x49,0x01,0x6b)
20186#endif
20187#else
20188typedef struct IContextMenuSiteVtbl {
20189    BEGIN_INTERFACE
20190
20191    /*** IUnknown methods ***/
20192    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20193        IContextMenuSite *This,
20194        REFIID riid,
20195        void **ppvObject);
20196
20197    ULONG (STDMETHODCALLTYPE *AddRef)(
20198        IContextMenuSite *This);
20199
20200    ULONG (STDMETHODCALLTYPE *Release)(
20201        IContextMenuSite *This);
20202
20203    /*** IContextMenuSite methods ***/
20204    HRESULT (STDMETHODCALLTYPE *DoContextMenuPopup)(
20205        IContextMenuSite *This,
20206        IUnknown *punkContextMenu,
20207        UINT fFlags,
20208        POINT pt);
20209
20210    END_INTERFACE
20211} IContextMenuSiteVtbl;
20212
20213interface IContextMenuSite {
20214    CONST_VTBL IContextMenuSiteVtbl* lpVtbl;
20215};
20216
20217#ifdef COBJMACROS
20218#ifndef WIDL_C_INLINE_WRAPPERS
20219/*** IUnknown methods ***/
20220#define IContextMenuSite_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20221#define IContextMenuSite_AddRef(This) (This)->lpVtbl->AddRef(This)
20222#define IContextMenuSite_Release(This) (This)->lpVtbl->Release(This)
20223/*** IContextMenuSite methods ***/
20224#define IContextMenuSite_DoContextMenuPopup(This,punkContextMenu,fFlags,pt) (This)->lpVtbl->DoContextMenuPopup(This,punkContextMenu,fFlags,pt)
20225#else
20226/*** IUnknown methods ***/
20227static inline HRESULT IContextMenuSite_QueryInterface(IContextMenuSite* This,REFIID riid,void **ppvObject) {
20228    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20229}
20230static inline ULONG IContextMenuSite_AddRef(IContextMenuSite* This) {
20231    return This->lpVtbl->AddRef(This);
20232}
20233static inline ULONG IContextMenuSite_Release(IContextMenuSite* This) {
20234    return This->lpVtbl->Release(This);
20235}
20236/*** IContextMenuSite methods ***/
20237static inline HRESULT IContextMenuSite_DoContextMenuPopup(IContextMenuSite* This,IUnknown *punkContextMenu,UINT fFlags,POINT pt) {
20238    return This->lpVtbl->DoContextMenuPopup(This,punkContextMenu,fFlags,pt);
20239}
20240#endif
20241#endif
20242
20243#endif
20244
20245
20246#endif  /* __IContextMenuSite_INTERFACE_DEFINED__ */
20247
20248
20249/*****************************************************************************
20250 * IEnumReadyCallback interface
20251 */
20252#ifndef __IEnumReadyCallback_INTERFACE_DEFINED__
20253#define __IEnumReadyCallback_INTERFACE_DEFINED__
20254
20255DEFINE_GUID(IID_IEnumReadyCallback, 0x61e00d45, 0x8fff, 0x4e60, 0x92,0x4e, 0x65,0x37,0xb6,0x16,0x12,0xdd);
20256#if defined(__cplusplus) && !defined(CINTERFACE)
20257MIDL_INTERFACE("61e00d45-8fff-4e60-924e-6537b61612dd")
20258IEnumReadyCallback : public IUnknown
20259{
20260    virtual HRESULT STDMETHODCALLTYPE EnumReady(
20261        ) = 0;
20262
20263};
20264#ifdef __CRT_UUID_DECL
20265__CRT_UUID_DECL(IEnumReadyCallback, 0x61e00d45, 0x8fff, 0x4e60, 0x92,0x4e, 0x65,0x37,0xb6,0x16,0x12,0xdd)
20266#endif
20267#else
20268typedef struct IEnumReadyCallbackVtbl {
20269    BEGIN_INTERFACE
20270
20271    /*** IUnknown methods ***/
20272    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20273        IEnumReadyCallback *This,
20274        REFIID riid,
20275        void **ppvObject);
20276
20277    ULONG (STDMETHODCALLTYPE *AddRef)(
20278        IEnumReadyCallback *This);
20279
20280    ULONG (STDMETHODCALLTYPE *Release)(
20281        IEnumReadyCallback *This);
20282
20283    /*** IEnumReadyCallback methods ***/
20284    HRESULT (STDMETHODCALLTYPE *EnumReady)(
20285        IEnumReadyCallback *This);
20286
20287    END_INTERFACE
20288} IEnumReadyCallbackVtbl;
20289
20290interface IEnumReadyCallback {
20291    CONST_VTBL IEnumReadyCallbackVtbl* lpVtbl;
20292};
20293
20294#ifdef COBJMACROS
20295#ifndef WIDL_C_INLINE_WRAPPERS
20296/*** IUnknown methods ***/
20297#define IEnumReadyCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20298#define IEnumReadyCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
20299#define IEnumReadyCallback_Release(This) (This)->lpVtbl->Release(This)
20300/*** IEnumReadyCallback methods ***/
20301#define IEnumReadyCallback_EnumReady(This) (This)->lpVtbl->EnumReady(This)
20302#else
20303/*** IUnknown methods ***/
20304static inline HRESULT IEnumReadyCallback_QueryInterface(IEnumReadyCallback* This,REFIID riid,void **ppvObject) {
20305    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20306}
20307static inline ULONG IEnumReadyCallback_AddRef(IEnumReadyCallback* This) {
20308    return This->lpVtbl->AddRef(This);
20309}
20310static inline ULONG IEnumReadyCallback_Release(IEnumReadyCallback* This) {
20311    return This->lpVtbl->Release(This);
20312}
20313/*** IEnumReadyCallback methods ***/
20314static inline HRESULT IEnumReadyCallback_EnumReady(IEnumReadyCallback* This) {
20315    return This->lpVtbl->EnumReady(This);
20316}
20317#endif
20318#endif
20319
20320#endif
20321
20322
20323#endif  /* __IEnumReadyCallback_INTERFACE_DEFINED__ */
20324
20325
20326/*****************************************************************************
20327 * IEnumerableView interface
20328 */
20329#ifndef __IEnumerableView_INTERFACE_DEFINED__
20330#define __IEnumerableView_INTERFACE_DEFINED__
20331
20332DEFINE_GUID(IID_IEnumerableView, 0x8c8bf236, 0x1aec, 0x495f, 0x98,0x94, 0x91,0xd5,0x7c,0x3c,0x68,0x6f);
20333#if defined(__cplusplus) && !defined(CINTERFACE)
20334MIDL_INTERFACE("8c8bf236-1aec-495f-9894-91d57c3c686f")
20335IEnumerableView : public IUnknown
20336{
20337    virtual HRESULT STDMETHODCALLTYPE SetEnumReadyCallback(
20338        IEnumReadyCallback *percb) = 0;
20339
20340    virtual HRESULT STDMETHODCALLTYPE CreateEnumIDListFromContents(
20341        PCIDLIST_ABSOLUTE pidlFolder,
20342        DWORD dwEnumFlags,
20343        IEnumIDList **ppEnumIDList) = 0;
20344
20345};
20346#ifdef __CRT_UUID_DECL
20347__CRT_UUID_DECL(IEnumerableView, 0x8c8bf236, 0x1aec, 0x495f, 0x98,0x94, 0x91,0xd5,0x7c,0x3c,0x68,0x6f)
20348#endif
20349#else
20350typedef struct IEnumerableViewVtbl {
20351    BEGIN_INTERFACE
20352
20353    /*** IUnknown methods ***/
20354    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20355        IEnumerableView *This,
20356        REFIID riid,
20357        void **ppvObject);
20358
20359    ULONG (STDMETHODCALLTYPE *AddRef)(
20360        IEnumerableView *This);
20361
20362    ULONG (STDMETHODCALLTYPE *Release)(
20363        IEnumerableView *This);
20364
20365    /*** IEnumerableView methods ***/
20366    HRESULT (STDMETHODCALLTYPE *SetEnumReadyCallback)(
20367        IEnumerableView *This,
20368        IEnumReadyCallback *percb);
20369
20370    HRESULT (STDMETHODCALLTYPE *CreateEnumIDListFromContents)(
20371        IEnumerableView *This,
20372        PCIDLIST_ABSOLUTE pidlFolder,
20373        DWORD dwEnumFlags,
20374        IEnumIDList **ppEnumIDList);
20375
20376    END_INTERFACE
20377} IEnumerableViewVtbl;
20378
20379interface IEnumerableView {
20380    CONST_VTBL IEnumerableViewVtbl* lpVtbl;
20381};
20382
20383#ifdef COBJMACROS
20384#ifndef WIDL_C_INLINE_WRAPPERS
20385/*** IUnknown methods ***/
20386#define IEnumerableView_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20387#define IEnumerableView_AddRef(This) (This)->lpVtbl->AddRef(This)
20388#define IEnumerableView_Release(This) (This)->lpVtbl->Release(This)
20389/*** IEnumerableView methods ***/
20390#define IEnumerableView_SetEnumReadyCallback(This,percb) (This)->lpVtbl->SetEnumReadyCallback(This,percb)
20391#define IEnumerableView_CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList) (This)->lpVtbl->CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList)
20392#else
20393/*** IUnknown methods ***/
20394static inline HRESULT IEnumerableView_QueryInterface(IEnumerableView* This,REFIID riid,void **ppvObject) {
20395    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20396}
20397static inline ULONG IEnumerableView_AddRef(IEnumerableView* This) {
20398    return This->lpVtbl->AddRef(This);
20399}
20400static inline ULONG IEnumerableView_Release(IEnumerableView* This) {
20401    return This->lpVtbl->Release(This);
20402}
20403/*** IEnumerableView methods ***/
20404static inline HRESULT IEnumerableView_SetEnumReadyCallback(IEnumerableView* This,IEnumReadyCallback *percb) {
20405    return This->lpVtbl->SetEnumReadyCallback(This,percb);
20406}
20407static inline HRESULT IEnumerableView_CreateEnumIDListFromContents(IEnumerableView* This,PCIDLIST_ABSOLUTE pidlFolder,DWORD dwEnumFlags,IEnumIDList **ppEnumIDList) {
20408    return This->lpVtbl->CreateEnumIDListFromContents(This,pidlFolder,dwEnumFlags,ppEnumIDList);
20409}
20410#endif
20411#endif
20412
20413#endif
20414
20415
20416#endif  /* __IEnumerableView_INTERFACE_DEFINED__ */
20417
20418
20419#define SID_EnumerableView IID_IEnumerableView
20420
20421/*****************************************************************************
20422 * IInsertItem interface
20423 */
20424#ifndef __IInsertItem_INTERFACE_DEFINED__
20425#define __IInsertItem_INTERFACE_DEFINED__
20426
20427DEFINE_GUID(IID_IInsertItem, 0xd2b57227, 0x3d23, 0x4b95, 0x93,0xc0, 0x49,0x2b,0xd4,0x54,0xc3,0x56);
20428#if defined(__cplusplus) && !defined(CINTERFACE)
20429MIDL_INTERFACE("d2b57227-3d23-4b95-93c0-492bd454c356")
20430IInsertItem : public IUnknown
20431{
20432    virtual HRESULT STDMETHODCALLTYPE InsertItem(
20433        PCUIDLIST_RELATIVE pidl) = 0;
20434
20435};
20436#ifdef __CRT_UUID_DECL
20437__CRT_UUID_DECL(IInsertItem, 0xd2b57227, 0x3d23, 0x4b95, 0x93,0xc0, 0x49,0x2b,0xd4,0x54,0xc3,0x56)
20438#endif
20439#else
20440typedef struct IInsertItemVtbl {
20441    BEGIN_INTERFACE
20442
20443    /*** IUnknown methods ***/
20444    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20445        IInsertItem *This,
20446        REFIID riid,
20447        void **ppvObject);
20448
20449    ULONG (STDMETHODCALLTYPE *AddRef)(
20450        IInsertItem *This);
20451
20452    ULONG (STDMETHODCALLTYPE *Release)(
20453        IInsertItem *This);
20454
20455    /*** IInsertItem methods ***/
20456    HRESULT (STDMETHODCALLTYPE *InsertItem)(
20457        IInsertItem *This,
20458        PCUIDLIST_RELATIVE pidl);
20459
20460    END_INTERFACE
20461} IInsertItemVtbl;
20462
20463interface IInsertItem {
20464    CONST_VTBL IInsertItemVtbl* lpVtbl;
20465};
20466
20467#ifdef COBJMACROS
20468#ifndef WIDL_C_INLINE_WRAPPERS
20469/*** IUnknown methods ***/
20470#define IInsertItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20471#define IInsertItem_AddRef(This) (This)->lpVtbl->AddRef(This)
20472#define IInsertItem_Release(This) (This)->lpVtbl->Release(This)
20473/*** IInsertItem methods ***/
20474#define IInsertItem_InsertItem(This,pidl) (This)->lpVtbl->InsertItem(This,pidl)
20475#else
20476/*** IUnknown methods ***/
20477static inline HRESULT IInsertItem_QueryInterface(IInsertItem* This,REFIID riid,void **ppvObject) {
20478    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20479}
20480static inline ULONG IInsertItem_AddRef(IInsertItem* This) {
20481    return This->lpVtbl->AddRef(This);
20482}
20483static inline ULONG IInsertItem_Release(IInsertItem* This) {
20484    return This->lpVtbl->Release(This);
20485}
20486/*** IInsertItem methods ***/
20487static inline HRESULT IInsertItem_InsertItem(IInsertItem* This,PCUIDLIST_RELATIVE pidl) {
20488    return This->lpVtbl->InsertItem(This,pidl);
20489}
20490#endif
20491#endif
20492
20493#endif
20494
20495
20496#endif  /* __IInsertItem_INTERFACE_DEFINED__ */
20497
20498
20499/*****************************************************************************
20500 * IMenuBand interface
20501 */
20502#ifndef __IMenuBand_INTERFACE_DEFINED__
20503#define __IMenuBand_INTERFACE_DEFINED__
20504
20505enum tagMENUBANDHANDLERCID {
20506    MBHANDCID_PIDLSELECT = 0
20507};
20508
20509DEFINE_GUID(IID_IMenuBand, 0x568804cd, 0xcbd7, 0x11d0, 0x98,0x16, 0x00,0xc0,0x4f,0xd9,0x19,0x72);
20510#if defined(__cplusplus) && !defined(CINTERFACE)
20511MIDL_INTERFACE("568804cd-cbd7-11d0-9816-00c04fd91972")
20512IMenuBand : public IUnknown
20513{
20514    virtual HRESULT STDMETHODCALLTYPE IsMenuMessage(
20515        MSG *pmsg) = 0;
20516
20517    virtual HRESULT STDMETHODCALLTYPE TranslateMenuMessage(
20518        MSG *pmsg,
20519        LRESULT *plRet) = 0;
20520
20521};
20522#ifdef __CRT_UUID_DECL
20523__CRT_UUID_DECL(IMenuBand, 0x568804cd, 0xcbd7, 0x11d0, 0x98,0x16, 0x00,0xc0,0x4f,0xd9,0x19,0x72)
20524#endif
20525#else
20526typedef struct IMenuBandVtbl {
20527    BEGIN_INTERFACE
20528
20529    /*** IUnknown methods ***/
20530    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20531        IMenuBand *This,
20532        REFIID riid,
20533        void **ppvObject);
20534
20535    ULONG (STDMETHODCALLTYPE *AddRef)(
20536        IMenuBand *This);
20537
20538    ULONG (STDMETHODCALLTYPE *Release)(
20539        IMenuBand *This);
20540
20541    /*** IMenuBand methods ***/
20542    HRESULT (STDMETHODCALLTYPE *IsMenuMessage)(
20543        IMenuBand *This,
20544        MSG *pmsg);
20545
20546    HRESULT (STDMETHODCALLTYPE *TranslateMenuMessage)(
20547        IMenuBand *This,
20548        MSG *pmsg,
20549        LRESULT *plRet);
20550
20551    END_INTERFACE
20552} IMenuBandVtbl;
20553
20554interface IMenuBand {
20555    CONST_VTBL IMenuBandVtbl* lpVtbl;
20556};
20557
20558#ifdef COBJMACROS
20559#ifndef WIDL_C_INLINE_WRAPPERS
20560/*** IUnknown methods ***/
20561#define IMenuBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20562#define IMenuBand_AddRef(This) (This)->lpVtbl->AddRef(This)
20563#define IMenuBand_Release(This) (This)->lpVtbl->Release(This)
20564/*** IMenuBand methods ***/
20565#define IMenuBand_IsMenuMessage(This,pmsg) (This)->lpVtbl->IsMenuMessage(This,pmsg)
20566#define IMenuBand_TranslateMenuMessage(This,pmsg,plRet) (This)->lpVtbl->TranslateMenuMessage(This,pmsg,plRet)
20567#else
20568/*** IUnknown methods ***/
20569static inline HRESULT IMenuBand_QueryInterface(IMenuBand* This,REFIID riid,void **ppvObject) {
20570    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20571}
20572static inline ULONG IMenuBand_AddRef(IMenuBand* This) {
20573    return This->lpVtbl->AddRef(This);
20574}
20575static inline ULONG IMenuBand_Release(IMenuBand* This) {
20576    return This->lpVtbl->Release(This);
20577}
20578/*** IMenuBand methods ***/
20579static inline HRESULT IMenuBand_IsMenuMessage(IMenuBand* This,MSG *pmsg) {
20580    return This->lpVtbl->IsMenuMessage(This,pmsg);
20581}
20582static inline HRESULT IMenuBand_TranslateMenuMessage(IMenuBand* This,MSG *pmsg,LRESULT *plRet) {
20583    return This->lpVtbl->TranslateMenuMessage(This,pmsg,plRet);
20584}
20585#endif
20586#endif
20587
20588#endif
20589
20590
20591#endif  /* __IMenuBand_INTERFACE_DEFINED__ */
20592
20593
20594/*****************************************************************************
20595 * IFolderBandPriv interface
20596 */
20597#ifndef __IFolderBandPriv_INTERFACE_DEFINED__
20598#define __IFolderBandPriv_INTERFACE_DEFINED__
20599
20600DEFINE_GUID(IID_IFolderBandPriv, 0x47c01f95, 0xe185, 0x412c, 0xb5,0xc5, 0x4f,0x27,0xdf,0x96,0x5a,0xea);
20601#if defined(__cplusplus) && !defined(CINTERFACE)
20602MIDL_INTERFACE("47c01f95-e185-412c-b5c5-4f27df965aea")
20603IFolderBandPriv : public IUnknown
20604{
20605    virtual HRESULT STDMETHODCALLTYPE SetCascade(
20606        WINBOOL fCascade) = 0;
20607
20608    virtual HRESULT STDMETHODCALLTYPE SetAccelerators(
20609        WINBOOL fAccelerators) = 0;
20610
20611    virtual HRESULT STDMETHODCALLTYPE SetNoIcons(
20612        WINBOOL fNoIcons) = 0;
20613
20614    virtual HRESULT STDMETHODCALLTYPE SetNoText(
20615        WINBOOL fNoText) = 0;
20616
20617};
20618#ifdef __CRT_UUID_DECL
20619__CRT_UUID_DECL(IFolderBandPriv, 0x47c01f95, 0xe185, 0x412c, 0xb5,0xc5, 0x4f,0x27,0xdf,0x96,0x5a,0xea)
20620#endif
20621#else
20622typedef struct IFolderBandPrivVtbl {
20623    BEGIN_INTERFACE
20624
20625    /*** IUnknown methods ***/
20626    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20627        IFolderBandPriv *This,
20628        REFIID riid,
20629        void **ppvObject);
20630
20631    ULONG (STDMETHODCALLTYPE *AddRef)(
20632        IFolderBandPriv *This);
20633
20634    ULONG (STDMETHODCALLTYPE *Release)(
20635        IFolderBandPriv *This);
20636
20637    /*** IFolderBandPriv methods ***/
20638    HRESULT (STDMETHODCALLTYPE *SetCascade)(
20639        IFolderBandPriv *This,
20640        WINBOOL fCascade);
20641
20642    HRESULT (STDMETHODCALLTYPE *SetAccelerators)(
20643        IFolderBandPriv *This,
20644        WINBOOL fAccelerators);
20645
20646    HRESULT (STDMETHODCALLTYPE *SetNoIcons)(
20647        IFolderBandPriv *This,
20648        WINBOOL fNoIcons);
20649
20650    HRESULT (STDMETHODCALLTYPE *SetNoText)(
20651        IFolderBandPriv *This,
20652        WINBOOL fNoText);
20653
20654    END_INTERFACE
20655} IFolderBandPrivVtbl;
20656
20657interface IFolderBandPriv {
20658    CONST_VTBL IFolderBandPrivVtbl* lpVtbl;
20659};
20660
20661#ifdef COBJMACROS
20662#ifndef WIDL_C_INLINE_WRAPPERS
20663/*** IUnknown methods ***/
20664#define IFolderBandPriv_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20665#define IFolderBandPriv_AddRef(This) (This)->lpVtbl->AddRef(This)
20666#define IFolderBandPriv_Release(This) (This)->lpVtbl->Release(This)
20667/*** IFolderBandPriv methods ***/
20668#define IFolderBandPriv_SetCascade(This,fCascade) (This)->lpVtbl->SetCascade(This,fCascade)
20669#define IFolderBandPriv_SetAccelerators(This,fAccelerators) (This)->lpVtbl->SetAccelerators(This,fAccelerators)
20670#define IFolderBandPriv_SetNoIcons(This,fNoIcons) (This)->lpVtbl->SetNoIcons(This,fNoIcons)
20671#define IFolderBandPriv_SetNoText(This,fNoText) (This)->lpVtbl->SetNoText(This,fNoText)
20672#else
20673/*** IUnknown methods ***/
20674static inline HRESULT IFolderBandPriv_QueryInterface(IFolderBandPriv* This,REFIID riid,void **ppvObject) {
20675    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20676}
20677static inline ULONG IFolderBandPriv_AddRef(IFolderBandPriv* This) {
20678    return This->lpVtbl->AddRef(This);
20679}
20680static inline ULONG IFolderBandPriv_Release(IFolderBandPriv* This) {
20681    return This->lpVtbl->Release(This);
20682}
20683/*** IFolderBandPriv methods ***/
20684static inline HRESULT IFolderBandPriv_SetCascade(IFolderBandPriv* This,WINBOOL fCascade) {
20685    return This->lpVtbl->SetCascade(This,fCascade);
20686}
20687static inline HRESULT IFolderBandPriv_SetAccelerators(IFolderBandPriv* This,WINBOOL fAccelerators) {
20688    return This->lpVtbl->SetAccelerators(This,fAccelerators);
20689}
20690static inline HRESULT IFolderBandPriv_SetNoIcons(IFolderBandPriv* This,WINBOOL fNoIcons) {
20691    return This->lpVtbl->SetNoIcons(This,fNoIcons);
20692}
20693static inline HRESULT IFolderBandPriv_SetNoText(IFolderBandPriv* This,WINBOOL fNoText) {
20694    return This->lpVtbl->SetNoText(This,fNoText);
20695}
20696#endif
20697#endif
20698
20699#endif
20700
20701
20702#endif  /* __IFolderBandPriv_INTERFACE_DEFINED__ */
20703
20704
20705/*****************************************************************************
20706 * IRegTreeItem interface
20707 */
20708#ifndef __IRegTreeItem_INTERFACE_DEFINED__
20709#define __IRegTreeItem_INTERFACE_DEFINED__
20710
20711DEFINE_GUID(IID_IRegTreeItem, 0xa9521922, 0x0812, 0x4d44, 0x9e,0xc3, 0x7f,0xd3,0x8c,0x72,0x6f,0x3d);
20712#if defined(__cplusplus) && !defined(CINTERFACE)
20713MIDL_INTERFACE("a9521922-0812-4d44-9ec3-7fd38c726f3d")
20714IRegTreeItem : public IUnknown
20715{
20716    virtual HRESULT STDMETHODCALLTYPE GetCheckState(
20717        WINBOOL *pbCheck) = 0;
20718
20719    virtual HRESULT STDMETHODCALLTYPE SetCheckState(
20720        WINBOOL bCheck) = 0;
20721
20722};
20723#ifdef __CRT_UUID_DECL
20724__CRT_UUID_DECL(IRegTreeItem, 0xa9521922, 0x0812, 0x4d44, 0x9e,0xc3, 0x7f,0xd3,0x8c,0x72,0x6f,0x3d)
20725#endif
20726#else
20727typedef struct IRegTreeItemVtbl {
20728    BEGIN_INTERFACE
20729
20730    /*** IUnknown methods ***/
20731    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20732        IRegTreeItem *This,
20733        REFIID riid,
20734        void **ppvObject);
20735
20736    ULONG (STDMETHODCALLTYPE *AddRef)(
20737        IRegTreeItem *This);
20738
20739    ULONG (STDMETHODCALLTYPE *Release)(
20740        IRegTreeItem *This);
20741
20742    /*** IRegTreeItem methods ***/
20743    HRESULT (STDMETHODCALLTYPE *GetCheckState)(
20744        IRegTreeItem *This,
20745        WINBOOL *pbCheck);
20746
20747    HRESULT (STDMETHODCALLTYPE *SetCheckState)(
20748        IRegTreeItem *This,
20749        WINBOOL bCheck);
20750
20751    END_INTERFACE
20752} IRegTreeItemVtbl;
20753
20754interface IRegTreeItem {
20755    CONST_VTBL IRegTreeItemVtbl* lpVtbl;
20756};
20757
20758#ifdef COBJMACROS
20759#ifndef WIDL_C_INLINE_WRAPPERS
20760/*** IUnknown methods ***/
20761#define IRegTreeItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20762#define IRegTreeItem_AddRef(This) (This)->lpVtbl->AddRef(This)
20763#define IRegTreeItem_Release(This) (This)->lpVtbl->Release(This)
20764/*** IRegTreeItem methods ***/
20765#define IRegTreeItem_GetCheckState(This,pbCheck) (This)->lpVtbl->GetCheckState(This,pbCheck)
20766#define IRegTreeItem_SetCheckState(This,bCheck) (This)->lpVtbl->SetCheckState(This,bCheck)
20767#else
20768/*** IUnknown methods ***/
20769static inline HRESULT IRegTreeItem_QueryInterface(IRegTreeItem* This,REFIID riid,void **ppvObject) {
20770    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20771}
20772static inline ULONG IRegTreeItem_AddRef(IRegTreeItem* This) {
20773    return This->lpVtbl->AddRef(This);
20774}
20775static inline ULONG IRegTreeItem_Release(IRegTreeItem* This) {
20776    return This->lpVtbl->Release(This);
20777}
20778/*** IRegTreeItem methods ***/
20779static inline HRESULT IRegTreeItem_GetCheckState(IRegTreeItem* This,WINBOOL *pbCheck) {
20780    return This->lpVtbl->GetCheckState(This,pbCheck);
20781}
20782static inline HRESULT IRegTreeItem_SetCheckState(IRegTreeItem* This,WINBOOL bCheck) {
20783    return This->lpVtbl->SetCheckState(This,bCheck);
20784}
20785#endif
20786#endif
20787
20788#endif
20789
20790
20791#endif  /* __IRegTreeItem_INTERFACE_DEFINED__ */
20792
20793
20794/*****************************************************************************
20795 * IImageRecompress interface
20796 */
20797#ifndef __IImageRecompress_INTERFACE_DEFINED__
20798#define __IImageRecompress_INTERFACE_DEFINED__
20799
20800DEFINE_GUID(IID_IImageRecompress, 0x505f1513, 0x6b3e, 0x4892, 0xa2,0x72, 0x59,0xf8,0x88,0x9a,0x4d,0x3e);
20801#if defined(__cplusplus) && !defined(CINTERFACE)
20802MIDL_INTERFACE("505f1513-6b3e-4892-a272-59f8889a4d3e")
20803IImageRecompress : public IUnknown
20804{
20805    virtual HRESULT STDMETHODCALLTYPE RecompressImage(
20806        IShellItem *psi,
20807        int cx,
20808        int cy,
20809        int iQuality,
20810        IStorage *pstg,
20811        IStream **ppstrmOut) = 0;
20812
20813};
20814#ifdef __CRT_UUID_DECL
20815__CRT_UUID_DECL(IImageRecompress, 0x505f1513, 0x6b3e, 0x4892, 0xa2,0x72, 0x59,0xf8,0x88,0x9a,0x4d,0x3e)
20816#endif
20817#else
20818typedef struct IImageRecompressVtbl {
20819    BEGIN_INTERFACE
20820
20821    /*** IUnknown methods ***/
20822    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20823        IImageRecompress *This,
20824        REFIID riid,
20825        void **ppvObject);
20826
20827    ULONG (STDMETHODCALLTYPE *AddRef)(
20828        IImageRecompress *This);
20829
20830    ULONG (STDMETHODCALLTYPE *Release)(
20831        IImageRecompress *This);
20832
20833    /*** IImageRecompress methods ***/
20834    HRESULT (STDMETHODCALLTYPE *RecompressImage)(
20835        IImageRecompress *This,
20836        IShellItem *psi,
20837        int cx,
20838        int cy,
20839        int iQuality,
20840        IStorage *pstg,
20841        IStream **ppstrmOut);
20842
20843    END_INTERFACE
20844} IImageRecompressVtbl;
20845
20846interface IImageRecompress {
20847    CONST_VTBL IImageRecompressVtbl* lpVtbl;
20848};
20849
20850#ifdef COBJMACROS
20851#ifndef WIDL_C_INLINE_WRAPPERS
20852/*** IUnknown methods ***/
20853#define IImageRecompress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20854#define IImageRecompress_AddRef(This) (This)->lpVtbl->AddRef(This)
20855#define IImageRecompress_Release(This) (This)->lpVtbl->Release(This)
20856/*** IImageRecompress methods ***/
20857#define IImageRecompress_RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut) (This)->lpVtbl->RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut)
20858#else
20859/*** IUnknown methods ***/
20860static inline HRESULT IImageRecompress_QueryInterface(IImageRecompress* This,REFIID riid,void **ppvObject) {
20861    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20862}
20863static inline ULONG IImageRecompress_AddRef(IImageRecompress* This) {
20864    return This->lpVtbl->AddRef(This);
20865}
20866static inline ULONG IImageRecompress_Release(IImageRecompress* This) {
20867    return This->lpVtbl->Release(This);
20868}
20869/*** IImageRecompress methods ***/
20870static inline HRESULT IImageRecompress_RecompressImage(IImageRecompress* This,IShellItem *psi,int cx,int cy,int iQuality,IStorage *pstg,IStream **ppstrmOut) {
20871    return This->lpVtbl->RecompressImage(This,psi,cx,cy,iQuality,pstg,ppstrmOut);
20872}
20873#endif
20874#endif
20875
20876#endif
20877
20878
20879#endif  /* __IImageRecompress_INTERFACE_DEFINED__ */
20880
20881
20882#if _WIN32_IE >= _WIN32_IE_IE60
20883/*****************************************************************************
20884 * IDeskBar interface
20885 */
20886#ifndef __IDeskBar_INTERFACE_DEFINED__
20887#define __IDeskBar_INTERFACE_DEFINED__
20888
20889DEFINE_GUID(IID_IDeskBar, 0xeb0fe173, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac);
20890#if defined(__cplusplus) && !defined(CINTERFACE)
20891MIDL_INTERFACE("eb0fe173-1a3a-11d0-89b3-00a0c90a90ac")
20892IDeskBar : public IOleWindow
20893{
20894    virtual HRESULT STDMETHODCALLTYPE SetClient(
20895        IUnknown *punkClient) = 0;
20896
20897    virtual HRESULT STDMETHODCALLTYPE GetClient(
20898        IUnknown **ppunkClient) = 0;
20899
20900    virtual HRESULT STDMETHODCALLTYPE OnPosRectChangeDB(
20901        RECT *prc) = 0;
20902
20903};
20904#ifdef __CRT_UUID_DECL
20905__CRT_UUID_DECL(IDeskBar, 0xeb0fe173, 0x1a3a, 0x11d0, 0x89,0xb3, 0x00,0xa0,0xc9,0x0a,0x90,0xac)
20906#endif
20907#else
20908typedef struct IDeskBarVtbl {
20909    BEGIN_INTERFACE
20910
20911    /*** IUnknown methods ***/
20912    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
20913        IDeskBar *This,
20914        REFIID riid,
20915        void **ppvObject);
20916
20917    ULONG (STDMETHODCALLTYPE *AddRef)(
20918        IDeskBar *This);
20919
20920    ULONG (STDMETHODCALLTYPE *Release)(
20921        IDeskBar *This);
20922
20923    /*** IOleWindow methods ***/
20924    HRESULT (STDMETHODCALLTYPE *GetWindow)(
20925        IDeskBar *This,
20926        HWND *phwnd);
20927
20928    HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
20929        IDeskBar *This,
20930        WINBOOL fEnterMode);
20931
20932    /*** IDeskBar methods ***/
20933    HRESULT (STDMETHODCALLTYPE *SetClient)(
20934        IDeskBar *This,
20935        IUnknown *punkClient);
20936
20937    HRESULT (STDMETHODCALLTYPE *GetClient)(
20938        IDeskBar *This,
20939        IUnknown **ppunkClient);
20940
20941    HRESULT (STDMETHODCALLTYPE *OnPosRectChangeDB)(
20942        IDeskBar *This,
20943        RECT *prc);
20944
20945    END_INTERFACE
20946} IDeskBarVtbl;
20947
20948interface IDeskBar {
20949    CONST_VTBL IDeskBarVtbl* lpVtbl;
20950};
20951
20952#ifdef COBJMACROS
20953#ifndef WIDL_C_INLINE_WRAPPERS
20954/*** IUnknown methods ***/
20955#define IDeskBar_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
20956#define IDeskBar_AddRef(This) (This)->lpVtbl->AddRef(This)
20957#define IDeskBar_Release(This) (This)->lpVtbl->Release(This)
20958/*** IOleWindow methods ***/
20959#define IDeskBar_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
20960#define IDeskBar_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
20961/*** IDeskBar methods ***/
20962#define IDeskBar_SetClient(This,punkClient) (This)->lpVtbl->SetClient(This,punkClient)
20963#define IDeskBar_GetClient(This,ppunkClient) (This)->lpVtbl->GetClient(This,ppunkClient)
20964#define IDeskBar_OnPosRectChangeDB(This,prc) (This)->lpVtbl->OnPosRectChangeDB(This,prc)
20965#else
20966/*** IUnknown methods ***/
20967static inline HRESULT IDeskBar_QueryInterface(IDeskBar* This,REFIID riid,void **ppvObject) {
20968    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
20969}
20970static inline ULONG IDeskBar_AddRef(IDeskBar* This) {
20971    return This->lpVtbl->AddRef(This);
20972}
20973static inline ULONG IDeskBar_Release(IDeskBar* This) {
20974    return This->lpVtbl->Release(This);
20975}
20976/*** IOleWindow methods ***/
20977static inline HRESULT IDeskBar_GetWindow(IDeskBar* This,HWND *phwnd) {
20978    return This->lpVtbl->GetWindow(This,phwnd);
20979}
20980static inline HRESULT IDeskBar_ContextSensitiveHelp(IDeskBar* This,WINBOOL fEnterMode) {
20981    return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
20982}
20983/*** IDeskBar methods ***/
20984static inline HRESULT IDeskBar_SetClient(IDeskBar* This,IUnknown *punkClient) {
20985    return This->lpVtbl->SetClient(This,punkClient);
20986}
20987static inline HRESULT IDeskBar_GetClient(IDeskBar* This,IUnknown **ppunkClient) {
20988    return This->lpVtbl->GetClient(This,ppunkClient);
20989}
20990static inline HRESULT IDeskBar_OnPosRectChangeDB(IDeskBar* This,RECT *prc) {
20991    return This->lpVtbl->OnPosRectChangeDB(This,prc);
20992}
20993#endif
20994#endif
20995
20996#endif
20997
20998
20999#endif  /* __IDeskBar_INTERFACE_DEFINED__ */
21000
21001
21002/*****************************************************************************
21003 * IMenuPopup interface
21004 */
21005#ifndef __IMenuPopup_INTERFACE_DEFINED__
21006#define __IMenuPopup_INTERFACE_DEFINED__
21007
21008enum tagMENUPOPUPSELECT {
21009    MPOS_EXECUTE = 0,
21010    MPOS_FULLCANCEL = 1,
21011    MPOS_CANCELLEVEL = 2,
21012    MPOS_SELECTLEFT = 3,
21013    MPOS_SELECTRIGHT = 4,
21014    MPOS_CHILDTRACKING = 5
21015};
21016
21017enum tagMENUPOPUPPOPUPFLAGS {
21018    MPPF_SETFOCUS = 0x1,
21019    MPPF_INITIALSELECT = 0x2,
21020    MPPF_NOANIMATE = 0x4,
21021    MPPF_KEYBOARD = 0x10,
21022    MPPF_REPOSITION = 0x20,
21023    MPPF_FORCEZORDER = 0x40,
21024    MPPF_FINALSELECT = 0x80,
21025    MPPF_TOP = 0x20000000,
21026    MPPF_LEFT = 0x40000000,
21027    MPPF_RIGHT = 0x60000000,
21028    MPPF_BOTTOM = (int)0x80000000,
21029    MPPF_POS_MASK = (int)0xe0000000,
21030    MPPF_ALIGN_LEFT = 0x2000000,
21031    MPPF_ALIGN_RIGHT = 0x4000000
21032};
21033
21034typedef int MP_POPUPFLAGS;
21035
21036DEFINE_GUID(IID_IMenuPopup, 0xd1e7afeb, 0x6a2e, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4);
21037#if defined(__cplusplus) && !defined(CINTERFACE)
21038MIDL_INTERFACE("d1e7afeb-6a2e-11d0-8c78-00c04fd918b4")
21039IMenuPopup : public IDeskBar
21040{
21041    virtual HRESULT STDMETHODCALLTYPE Popup(
21042        POINTL *ppt,
21043        RECTL *prcExclude,
21044        MP_POPUPFLAGS dwFlags) = 0;
21045
21046    virtual HRESULT STDMETHODCALLTYPE OnSelect(
21047        DWORD dwSelectType) = 0;
21048
21049    virtual HRESULT STDMETHODCALLTYPE SetSubMenu(
21050        IMenuPopup *pmp,
21051        WINBOOL fSet) = 0;
21052
21053};
21054#ifdef __CRT_UUID_DECL
21055__CRT_UUID_DECL(IMenuPopup, 0xd1e7afeb, 0x6a2e, 0x11d0, 0x8c,0x78, 0x00,0xc0,0x4f,0xd9,0x18,0xb4)
21056#endif
21057#else
21058typedef struct IMenuPopupVtbl {
21059    BEGIN_INTERFACE
21060
21061    /*** IUnknown methods ***/
21062    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21063        IMenuPopup *This,
21064        REFIID riid,
21065        void **ppvObject);
21066
21067    ULONG (STDMETHODCALLTYPE *AddRef)(
21068        IMenuPopup *This);
21069
21070    ULONG (STDMETHODCALLTYPE *Release)(
21071        IMenuPopup *This);
21072
21073    /*** IOleWindow methods ***/
21074    HRESULT (STDMETHODCALLTYPE *GetWindow)(
21075        IMenuPopup *This,
21076        HWND *phwnd);
21077
21078    HRESULT (STDMETHODCALLTYPE *ContextSensitiveHelp)(
21079        IMenuPopup *This,
21080        WINBOOL fEnterMode);
21081
21082    /*** IDeskBar methods ***/
21083    HRESULT (STDMETHODCALLTYPE *SetClient)(
21084        IMenuPopup *This,
21085        IUnknown *punkClient);
21086
21087    HRESULT (STDMETHODCALLTYPE *GetClient)(
21088        IMenuPopup *This,
21089        IUnknown **ppunkClient);
21090
21091    HRESULT (STDMETHODCALLTYPE *OnPosRectChangeDB)(
21092        IMenuPopup *This,
21093        RECT *prc);
21094
21095    /*** IMenuPopup methods ***/
21096    HRESULT (STDMETHODCALLTYPE *Popup)(
21097        IMenuPopup *This,
21098        POINTL *ppt,
21099        RECTL *prcExclude,
21100        MP_POPUPFLAGS dwFlags);
21101
21102    HRESULT (STDMETHODCALLTYPE *OnSelect)(
21103        IMenuPopup *This,
21104        DWORD dwSelectType);
21105
21106    HRESULT (STDMETHODCALLTYPE *SetSubMenu)(
21107        IMenuPopup *This,
21108        IMenuPopup *pmp,
21109        WINBOOL fSet);
21110
21111    END_INTERFACE
21112} IMenuPopupVtbl;
21113
21114interface IMenuPopup {
21115    CONST_VTBL IMenuPopupVtbl* lpVtbl;
21116};
21117
21118#ifdef COBJMACROS
21119#ifndef WIDL_C_INLINE_WRAPPERS
21120/*** IUnknown methods ***/
21121#define IMenuPopup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21122#define IMenuPopup_AddRef(This) (This)->lpVtbl->AddRef(This)
21123#define IMenuPopup_Release(This) (This)->lpVtbl->Release(This)
21124/*** IOleWindow methods ***/
21125#define IMenuPopup_GetWindow(This,phwnd) (This)->lpVtbl->GetWindow(This,phwnd)
21126#define IMenuPopup_ContextSensitiveHelp(This,fEnterMode) (This)->lpVtbl->ContextSensitiveHelp(This,fEnterMode)
21127/*** IDeskBar methods ***/
21128#define IMenuPopup_SetClient(This,punkClient) (This)->lpVtbl->SetClient(This,punkClient)
21129#define IMenuPopup_GetClient(This,ppunkClient) (This)->lpVtbl->GetClient(This,ppunkClient)
21130#define IMenuPopup_OnPosRectChangeDB(This,prc) (This)->lpVtbl->OnPosRectChangeDB(This,prc)
21131/*** IMenuPopup methods ***/
21132#define IMenuPopup_Popup(This,ppt,prcExclude,dwFlags) (This)->lpVtbl->Popup(This,ppt,prcExclude,dwFlags)
21133#define IMenuPopup_OnSelect(This,dwSelectType) (This)->lpVtbl->OnSelect(This,dwSelectType)
21134#define IMenuPopup_SetSubMenu(This,pmp,fSet) (This)->lpVtbl->SetSubMenu(This,pmp,fSet)
21135#else
21136/*** IUnknown methods ***/
21137static inline HRESULT IMenuPopup_QueryInterface(IMenuPopup* This,REFIID riid,void **ppvObject) {
21138    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21139}
21140static inline ULONG IMenuPopup_AddRef(IMenuPopup* This) {
21141    return This->lpVtbl->AddRef(This);
21142}
21143static inline ULONG IMenuPopup_Release(IMenuPopup* This) {
21144    return This->lpVtbl->Release(This);
21145}
21146/*** IOleWindow methods ***/
21147static inline HRESULT IMenuPopup_GetWindow(IMenuPopup* This,HWND *phwnd) {
21148    return This->lpVtbl->GetWindow(This,phwnd);
21149}
21150static inline HRESULT IMenuPopup_ContextSensitiveHelp(IMenuPopup* This,WINBOOL fEnterMode) {
21151    return This->lpVtbl->ContextSensitiveHelp(This,fEnterMode);
21152}
21153/*** IDeskBar methods ***/
21154static inline HRESULT IMenuPopup_SetClient(IMenuPopup* This,IUnknown *punkClient) {
21155    return This->lpVtbl->SetClient(This,punkClient);
21156}
21157static inline HRESULT IMenuPopup_GetClient(IMenuPopup* This,IUnknown **ppunkClient) {
21158    return This->lpVtbl->GetClient(This,ppunkClient);
21159}
21160static inline HRESULT IMenuPopup_OnPosRectChangeDB(IMenuPopup* This,RECT *prc) {
21161    return This->lpVtbl->OnPosRectChangeDB(This,prc);
21162}
21163/*** IMenuPopup methods ***/
21164static inline HRESULT IMenuPopup_Popup(IMenuPopup* This,POINTL *ppt,RECTL *prcExclude,MP_POPUPFLAGS dwFlags) {
21165    return This->lpVtbl->Popup(This,ppt,prcExclude,dwFlags);
21166}
21167static inline HRESULT IMenuPopup_OnSelect(IMenuPopup* This,DWORD dwSelectType) {
21168    return This->lpVtbl->OnSelect(This,dwSelectType);
21169}
21170static inline HRESULT IMenuPopup_SetSubMenu(IMenuPopup* This,IMenuPopup *pmp,WINBOOL fSet) {
21171    return This->lpVtbl->SetSubMenu(This,pmp,fSet);
21172}
21173#endif
21174#endif
21175
21176#endif
21177
21178
21179#endif  /* __IMenuPopup_INTERFACE_DEFINED__ */
21180
21181#endif
21182
21183#if NTDDI_VERSION >= NTDDI_VISTA
21184typedef enum FILE_USAGE_TYPE {
21185    FUT_PLAYING = 0,
21186    FUT_EDITING = 1,
21187    FUT_GENERIC = 2
21188} FILE_USAGE_TYPE;
21189
21190#define OF_CAP_CANSWITCHTO 0x0001
21191#define OF_CAP_CANCLOSE 0x0002
21192
21193/*****************************************************************************
21194 * IFileIsInUse interface
21195 */
21196#ifndef __IFileIsInUse_INTERFACE_DEFINED__
21197#define __IFileIsInUse_INTERFACE_DEFINED__
21198
21199DEFINE_GUID(IID_IFileIsInUse, 0x64a1cbf0, 0x3a1a, 0x4461, 0x91,0x58, 0x37,0x69,0x69,0x69,0x39,0x50);
21200#if defined(__cplusplus) && !defined(CINTERFACE)
21201MIDL_INTERFACE("64a1cbf0-3a1a-4461-9158-376969693950")
21202IFileIsInUse : public IUnknown
21203{
21204    virtual HRESULT STDMETHODCALLTYPE GetAppName(
21205        LPWSTR *ppszName) = 0;
21206
21207    virtual HRESULT STDMETHODCALLTYPE GetUsage(
21208        FILE_USAGE_TYPE *pfut) = 0;
21209
21210    virtual HRESULT STDMETHODCALLTYPE GetCapabilities(
21211        DWORD *pdwCapFlags) = 0;
21212
21213    virtual HRESULT STDMETHODCALLTYPE GetSwitchToHWND(
21214        HWND *phwnd) = 0;
21215
21216    virtual HRESULT STDMETHODCALLTYPE CloseFile(
21217        ) = 0;
21218
21219};
21220#ifdef __CRT_UUID_DECL
21221__CRT_UUID_DECL(IFileIsInUse, 0x64a1cbf0, 0x3a1a, 0x4461, 0x91,0x58, 0x37,0x69,0x69,0x69,0x39,0x50)
21222#endif
21223#else
21224typedef struct IFileIsInUseVtbl {
21225    BEGIN_INTERFACE
21226
21227    /*** IUnknown methods ***/
21228    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21229        IFileIsInUse *This,
21230        REFIID riid,
21231        void **ppvObject);
21232
21233    ULONG (STDMETHODCALLTYPE *AddRef)(
21234        IFileIsInUse *This);
21235
21236    ULONG (STDMETHODCALLTYPE *Release)(
21237        IFileIsInUse *This);
21238
21239    /*** IFileIsInUse methods ***/
21240    HRESULT (STDMETHODCALLTYPE *GetAppName)(
21241        IFileIsInUse *This,
21242        LPWSTR *ppszName);
21243
21244    HRESULT (STDMETHODCALLTYPE *GetUsage)(
21245        IFileIsInUse *This,
21246        FILE_USAGE_TYPE *pfut);
21247
21248    HRESULT (STDMETHODCALLTYPE *GetCapabilities)(
21249        IFileIsInUse *This,
21250        DWORD *pdwCapFlags);
21251
21252    HRESULT (STDMETHODCALLTYPE *GetSwitchToHWND)(
21253        IFileIsInUse *This,
21254        HWND *phwnd);
21255
21256    HRESULT (STDMETHODCALLTYPE *CloseFile)(
21257        IFileIsInUse *This);
21258
21259    END_INTERFACE
21260} IFileIsInUseVtbl;
21261
21262interface IFileIsInUse {
21263    CONST_VTBL IFileIsInUseVtbl* lpVtbl;
21264};
21265
21266#ifdef COBJMACROS
21267#ifndef WIDL_C_INLINE_WRAPPERS
21268/*** IUnknown methods ***/
21269#define IFileIsInUse_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21270#define IFileIsInUse_AddRef(This) (This)->lpVtbl->AddRef(This)
21271#define IFileIsInUse_Release(This) (This)->lpVtbl->Release(This)
21272/*** IFileIsInUse methods ***/
21273#define IFileIsInUse_GetAppName(This,ppszName) (This)->lpVtbl->GetAppName(This,ppszName)
21274#define IFileIsInUse_GetUsage(This,pfut) (This)->lpVtbl->GetUsage(This,pfut)
21275#define IFileIsInUse_GetCapabilities(This,pdwCapFlags) (This)->lpVtbl->GetCapabilities(This,pdwCapFlags)
21276#define IFileIsInUse_GetSwitchToHWND(This,phwnd) (This)->lpVtbl->GetSwitchToHWND(This,phwnd)
21277#define IFileIsInUse_CloseFile(This) (This)->lpVtbl->CloseFile(This)
21278#else
21279/*** IUnknown methods ***/
21280static inline HRESULT IFileIsInUse_QueryInterface(IFileIsInUse* This,REFIID riid,void **ppvObject) {
21281    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21282}
21283static inline ULONG IFileIsInUse_AddRef(IFileIsInUse* This) {
21284    return This->lpVtbl->AddRef(This);
21285}
21286static inline ULONG IFileIsInUse_Release(IFileIsInUse* This) {
21287    return This->lpVtbl->Release(This);
21288}
21289/*** IFileIsInUse methods ***/
21290static inline HRESULT IFileIsInUse_GetAppName(IFileIsInUse* This,LPWSTR *ppszName) {
21291    return This->lpVtbl->GetAppName(This,ppszName);
21292}
21293static inline HRESULT IFileIsInUse_GetUsage(IFileIsInUse* This,FILE_USAGE_TYPE *pfut) {
21294    return This->lpVtbl->GetUsage(This,pfut);
21295}
21296static inline HRESULT IFileIsInUse_GetCapabilities(IFileIsInUse* This,DWORD *pdwCapFlags) {
21297    return This->lpVtbl->GetCapabilities(This,pdwCapFlags);
21298}
21299static inline HRESULT IFileIsInUse_GetSwitchToHWND(IFileIsInUse* This,HWND *phwnd) {
21300    return This->lpVtbl->GetSwitchToHWND(This,phwnd);
21301}
21302static inline HRESULT IFileIsInUse_CloseFile(IFileIsInUse* This) {
21303    return This->lpVtbl->CloseFile(This);
21304}
21305#endif
21306#endif
21307
21308#endif
21309
21310
21311#endif  /* __IFileIsInUse_INTERFACE_DEFINED__ */
21312
21313
21314#ifndef __IFileDialog_FWD_DEFINED__
21315#define __IFileDialog_FWD_DEFINED__
21316typedef interface IFileDialog IFileDialog;
21317#ifdef __cplusplus
21318interface IFileDialog;
21319#endif /* __cplusplus */
21320#endif
21321
21322
21323typedef enum FDE_OVERWRITE_RESPONSE {
21324    FDEOR_DEFAULT = 0,
21325    FDEOR_ACCEPT = 1,
21326    FDEOR_REFUSE = 2
21327} FDE_OVERWRITE_RESPONSE;
21328
21329typedef enum FDE_SHAREVIOLATION_RESPONSE {
21330    FDESVR_DEFAULT = 0,
21331    FDESVR_ACCEPT = 1,
21332    FDESVR_REFUSE = 2
21333} FDE_SHAREVIOLATION_RESPONSE;
21334
21335typedef enum FDAP {
21336    FDAP_BOTTOM = 0,
21337    FDAP_TOP = 1
21338} FDAP;
21339
21340/*****************************************************************************
21341 * IFileDialogEvents interface
21342 */
21343#ifndef __IFileDialogEvents_INTERFACE_DEFINED__
21344#define __IFileDialogEvents_INTERFACE_DEFINED__
21345
21346DEFINE_GUID(IID_IFileDialogEvents, 0x973510db, 0x7d7f, 0x452b, 0x89,0x75, 0x74,0xa8,0x58,0x28,0xd3,0x54);
21347#if defined(__cplusplus) && !defined(CINTERFACE)
21348MIDL_INTERFACE("973510db-7d7f-452b-8975-74a85828d354")
21349IFileDialogEvents : public IUnknown
21350{
21351    virtual HRESULT STDMETHODCALLTYPE OnFileOk(
21352        IFileDialog *pfd) = 0;
21353
21354    virtual HRESULT STDMETHODCALLTYPE OnFolderChanging(
21355        IFileDialog *pfd,
21356        IShellItem *psiFolder) = 0;
21357
21358    virtual HRESULT STDMETHODCALLTYPE OnFolderChange(
21359        IFileDialog *pfd) = 0;
21360
21361    virtual HRESULT STDMETHODCALLTYPE OnSelectionChange(
21362        IFileDialog *pfd) = 0;
21363
21364    virtual HRESULT STDMETHODCALLTYPE OnShareViolation(
21365        IFileDialog *pfd,
21366        IShellItem *psi,
21367        FDE_SHAREVIOLATION_RESPONSE *pResponse) = 0;
21368
21369    virtual HRESULT STDMETHODCALLTYPE OnTypeChange(
21370        IFileDialog *pfd) = 0;
21371
21372    virtual HRESULT STDMETHODCALLTYPE OnOverwrite(
21373        IFileDialog *pfd,
21374        IShellItem *psi,
21375        FDE_OVERWRITE_RESPONSE *pResponse) = 0;
21376
21377};
21378#ifdef __CRT_UUID_DECL
21379__CRT_UUID_DECL(IFileDialogEvents, 0x973510db, 0x7d7f, 0x452b, 0x89,0x75, 0x74,0xa8,0x58,0x28,0xd3,0x54)
21380#endif
21381#else
21382typedef struct IFileDialogEventsVtbl {
21383    BEGIN_INTERFACE
21384
21385    /*** IUnknown methods ***/
21386    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21387        IFileDialogEvents *This,
21388        REFIID riid,
21389        void **ppvObject);
21390
21391    ULONG (STDMETHODCALLTYPE *AddRef)(
21392        IFileDialogEvents *This);
21393
21394    ULONG (STDMETHODCALLTYPE *Release)(
21395        IFileDialogEvents *This);
21396
21397    /*** IFileDialogEvents methods ***/
21398    HRESULT (STDMETHODCALLTYPE *OnFileOk)(
21399        IFileDialogEvents *This,
21400        IFileDialog *pfd);
21401
21402    HRESULT (STDMETHODCALLTYPE *OnFolderChanging)(
21403        IFileDialogEvents *This,
21404        IFileDialog *pfd,
21405        IShellItem *psiFolder);
21406
21407    HRESULT (STDMETHODCALLTYPE *OnFolderChange)(
21408        IFileDialogEvents *This,
21409        IFileDialog *pfd);
21410
21411    HRESULT (STDMETHODCALLTYPE *OnSelectionChange)(
21412        IFileDialogEvents *This,
21413        IFileDialog *pfd);
21414
21415    HRESULT (STDMETHODCALLTYPE *OnShareViolation)(
21416        IFileDialogEvents *This,
21417        IFileDialog *pfd,
21418        IShellItem *psi,
21419        FDE_SHAREVIOLATION_RESPONSE *pResponse);
21420
21421    HRESULT (STDMETHODCALLTYPE *OnTypeChange)(
21422        IFileDialogEvents *This,
21423        IFileDialog *pfd);
21424
21425    HRESULT (STDMETHODCALLTYPE *OnOverwrite)(
21426        IFileDialogEvents *This,
21427        IFileDialog *pfd,
21428        IShellItem *psi,
21429        FDE_OVERWRITE_RESPONSE *pResponse);
21430
21431    END_INTERFACE
21432} IFileDialogEventsVtbl;
21433
21434interface IFileDialogEvents {
21435    CONST_VTBL IFileDialogEventsVtbl* lpVtbl;
21436};
21437
21438#ifdef COBJMACROS
21439#ifndef WIDL_C_INLINE_WRAPPERS
21440/*** IUnknown methods ***/
21441#define IFileDialogEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21442#define IFileDialogEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
21443#define IFileDialogEvents_Release(This) (This)->lpVtbl->Release(This)
21444/*** IFileDialogEvents methods ***/
21445#define IFileDialogEvents_OnFileOk(This,pfd) (This)->lpVtbl->OnFileOk(This,pfd)
21446#define IFileDialogEvents_OnFolderChanging(This,pfd,psiFolder) (This)->lpVtbl->OnFolderChanging(This,pfd,psiFolder)
21447#define IFileDialogEvents_OnFolderChange(This,pfd) (This)->lpVtbl->OnFolderChange(This,pfd)
21448#define IFileDialogEvents_OnSelectionChange(This,pfd) (This)->lpVtbl->OnSelectionChange(This,pfd)
21449#define IFileDialogEvents_OnShareViolation(This,pfd,psi,pResponse) (This)->lpVtbl->OnShareViolation(This,pfd,psi,pResponse)
21450#define IFileDialogEvents_OnTypeChange(This,pfd) (This)->lpVtbl->OnTypeChange(This,pfd)
21451#define IFileDialogEvents_OnOverwrite(This,pfd,psi,pResponse) (This)->lpVtbl->OnOverwrite(This,pfd,psi,pResponse)
21452#else
21453/*** IUnknown methods ***/
21454static inline HRESULT IFileDialogEvents_QueryInterface(IFileDialogEvents* This,REFIID riid,void **ppvObject) {
21455    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21456}
21457static inline ULONG IFileDialogEvents_AddRef(IFileDialogEvents* This) {
21458    return This->lpVtbl->AddRef(This);
21459}
21460static inline ULONG IFileDialogEvents_Release(IFileDialogEvents* This) {
21461    return This->lpVtbl->Release(This);
21462}
21463/*** IFileDialogEvents methods ***/
21464static inline HRESULT IFileDialogEvents_OnFileOk(IFileDialogEvents* This,IFileDialog *pfd) {
21465    return This->lpVtbl->OnFileOk(This,pfd);
21466}
21467static inline HRESULT IFileDialogEvents_OnFolderChanging(IFileDialogEvents* This,IFileDialog *pfd,IShellItem *psiFolder) {
21468    return This->lpVtbl->OnFolderChanging(This,pfd,psiFolder);
21469}
21470static inline HRESULT IFileDialogEvents_OnFolderChange(IFileDialogEvents* This,IFileDialog *pfd) {
21471    return This->lpVtbl->OnFolderChange(This,pfd);
21472}
21473static inline HRESULT IFileDialogEvents_OnSelectionChange(IFileDialogEvents* This,IFileDialog *pfd) {
21474    return This->lpVtbl->OnSelectionChange(This,pfd);
21475}
21476static inline HRESULT IFileDialogEvents_OnShareViolation(IFileDialogEvents* This,IFileDialog *pfd,IShellItem *psi,FDE_SHAREVIOLATION_RESPONSE *pResponse) {
21477    return This->lpVtbl->OnShareViolation(This,pfd,psi,pResponse);
21478}
21479static inline HRESULT IFileDialogEvents_OnTypeChange(IFileDialogEvents* This,IFileDialog *pfd) {
21480    return This->lpVtbl->OnTypeChange(This,pfd);
21481}
21482static inline HRESULT IFileDialogEvents_OnOverwrite(IFileDialogEvents* This,IFileDialog *pfd,IShellItem *psi,FDE_OVERWRITE_RESPONSE *pResponse) {
21483    return This->lpVtbl->OnOverwrite(This,pfd,psi,pResponse);
21484}
21485#endif
21486#endif
21487
21488#endif
21489
21490
21491#endif  /* __IFileDialogEvents_INTERFACE_DEFINED__ */
21492
21493
21494#ifndef __IShellItemFilter_FWD_DEFINED__
21495#define __IShellItemFilter_FWD_DEFINED__
21496typedef interface IShellItemFilter IShellItemFilter;
21497#ifdef __cplusplus
21498interface IShellItemFilter;
21499#endif /* __cplusplus */
21500#endif
21501
21502
21503/*****************************************************************************
21504 * IFileDialog interface
21505 */
21506#ifndef __IFileDialog_INTERFACE_DEFINED__
21507#define __IFileDialog_INTERFACE_DEFINED__
21508
21509enum _FILEOPENDIALOGOPTIONS {
21510    FOS_OVERWRITEPROMPT = 0x2,
21511    FOS_STRICTFILETYPES = 0x4,
21512    FOS_NOCHANGEDIR = 0x8,
21513    FOS_PICKFOLDERS = 0x20,
21514    FOS_FORCEFILESYSTEM = 0x40,
21515    FOS_ALLNONSTORAGEITEMS = 0x80,
21516    FOS_NOVALIDATE = 0x100,
21517    FOS_ALLOWMULTISELECT = 0x200,
21518    FOS_PATHMUSTEXIST = 0x800,
21519    FOS_FILEMUSTEXIST = 0x1000,
21520    FOS_CREATEPROMPT = 0x2000,
21521    FOS_SHAREAWARE = 0x4000,
21522    FOS_NOREADONLYRETURN = 0x8000,
21523    FOS_NOTESTFILECREATE = 0x10000,
21524    FOS_HIDEMRUPLACES = 0x20000,
21525    FOS_HIDEPINNEDPLACES = 0x40000,
21526    FOS_NODEREFERENCELINKS = 0x100000,
21527    FOS_DONTADDTORECENT = 0x2000000,
21528    FOS_FORCESHOWHIDDEN = 0x10000000,
21529    FOS_DEFAULTNOMINIMODE = 0x20000000,
21530    FOS_FORCEPREVIEWPANEON = 0x40000000,
21531    FOS_SUPPORTSTREAMABLEITEMS = 0x80000000
21532};
21533
21534typedef DWORD FILEOPENDIALOGOPTIONS;
21535
21536DEFINE_GUID(IID_IFileDialog, 0x42f85136, 0xdb7e, 0x439c, 0x85,0xf1, 0xe4,0x07,0x5d,0x13,0x5f,0xc8);
21537#if defined(__cplusplus) && !defined(CINTERFACE)
21538MIDL_INTERFACE("42f85136-db7e-439c-85f1-e4075d135fc8")
21539IFileDialog : public IModalWindow
21540{
21541    virtual HRESULT STDMETHODCALLTYPE SetFileTypes(
21542        UINT cFileTypes,
21543        const COMDLG_FILTERSPEC *rgFilterSpec) = 0;
21544
21545    virtual HRESULT STDMETHODCALLTYPE SetFileTypeIndex(
21546        UINT iFileType) = 0;
21547
21548    virtual HRESULT STDMETHODCALLTYPE GetFileTypeIndex(
21549        UINT *piFileType) = 0;
21550
21551    virtual HRESULT STDMETHODCALLTYPE Advise(
21552        IFileDialogEvents *pfde,
21553        DWORD *pdwCookie) = 0;
21554
21555    virtual HRESULT STDMETHODCALLTYPE Unadvise(
21556        DWORD dwCookie) = 0;
21557
21558    virtual HRESULT STDMETHODCALLTYPE SetOptions(
21559        FILEOPENDIALOGOPTIONS fos) = 0;
21560
21561    virtual HRESULT STDMETHODCALLTYPE GetOptions(
21562        FILEOPENDIALOGOPTIONS *pfos) = 0;
21563
21564    virtual HRESULT STDMETHODCALLTYPE SetDefaultFolder(
21565        IShellItem *psi) = 0;
21566
21567    virtual HRESULT STDMETHODCALLTYPE SetFolder(
21568        IShellItem *psi) = 0;
21569
21570    virtual HRESULT STDMETHODCALLTYPE GetFolder(
21571        IShellItem **ppsi) = 0;
21572
21573    virtual HRESULT STDMETHODCALLTYPE GetCurrentSelection(
21574        IShellItem **ppsi) = 0;
21575
21576    virtual HRESULT STDMETHODCALLTYPE SetFileName(
21577        LPCWSTR pszName) = 0;
21578
21579    virtual HRESULT STDMETHODCALLTYPE GetFileName(
21580        LPWSTR *pszName) = 0;
21581
21582    virtual HRESULT STDMETHODCALLTYPE SetTitle(
21583        LPCWSTR pszTitle) = 0;
21584
21585    virtual HRESULT STDMETHODCALLTYPE SetOkButtonLabel(
21586        LPCWSTR pszText) = 0;
21587
21588    virtual HRESULT STDMETHODCALLTYPE SetFileNameLabel(
21589        LPCWSTR pszLabel) = 0;
21590
21591    virtual HRESULT STDMETHODCALLTYPE GetResult(
21592        IShellItem **ppsi) = 0;
21593
21594    virtual HRESULT STDMETHODCALLTYPE AddPlace(
21595        IShellItem *psi,
21596        FDAP fdap) = 0;
21597
21598    virtual HRESULT STDMETHODCALLTYPE SetDefaultExtension(
21599        LPCWSTR pszDefaultExtension) = 0;
21600
21601    virtual HRESULT STDMETHODCALLTYPE Close(
21602        HRESULT hr) = 0;
21603
21604    virtual HRESULT STDMETHODCALLTYPE SetClientGuid(
21605        REFGUID guid) = 0;
21606
21607    virtual HRESULT STDMETHODCALLTYPE ClearClientData(
21608        ) = 0;
21609
21610    virtual HRESULT STDMETHODCALLTYPE SetFilter(
21611        IShellItemFilter *pFilter) = 0;
21612
21613};
21614#ifdef __CRT_UUID_DECL
21615__CRT_UUID_DECL(IFileDialog, 0x42f85136, 0xdb7e, 0x439c, 0x85,0xf1, 0xe4,0x07,0x5d,0x13,0x5f,0xc8)
21616#endif
21617#else
21618typedef struct IFileDialogVtbl {
21619    BEGIN_INTERFACE
21620
21621    /*** IUnknown methods ***/
21622    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21623        IFileDialog *This,
21624        REFIID riid,
21625        void **ppvObject);
21626
21627    ULONG (STDMETHODCALLTYPE *AddRef)(
21628        IFileDialog *This);
21629
21630    ULONG (STDMETHODCALLTYPE *Release)(
21631        IFileDialog *This);
21632
21633    /*** IModalWindow methods ***/
21634    HRESULT (STDMETHODCALLTYPE *Show)(
21635        IFileDialog *This,
21636        HWND hwndOwner);
21637
21638    /*** IFileDialog methods ***/
21639    HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
21640        IFileDialog *This,
21641        UINT cFileTypes,
21642        const COMDLG_FILTERSPEC *rgFilterSpec);
21643
21644    HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
21645        IFileDialog *This,
21646        UINT iFileType);
21647
21648    HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
21649        IFileDialog *This,
21650        UINT *piFileType);
21651
21652    HRESULT (STDMETHODCALLTYPE *Advise)(
21653        IFileDialog *This,
21654        IFileDialogEvents *pfde,
21655        DWORD *pdwCookie);
21656
21657    HRESULT (STDMETHODCALLTYPE *Unadvise)(
21658        IFileDialog *This,
21659        DWORD dwCookie);
21660
21661    HRESULT (STDMETHODCALLTYPE *SetOptions)(
21662        IFileDialog *This,
21663        FILEOPENDIALOGOPTIONS fos);
21664
21665    HRESULT (STDMETHODCALLTYPE *GetOptions)(
21666        IFileDialog *This,
21667        FILEOPENDIALOGOPTIONS *pfos);
21668
21669    HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
21670        IFileDialog *This,
21671        IShellItem *psi);
21672
21673    HRESULT (STDMETHODCALLTYPE *SetFolder)(
21674        IFileDialog *This,
21675        IShellItem *psi);
21676
21677    HRESULT (STDMETHODCALLTYPE *GetFolder)(
21678        IFileDialog *This,
21679        IShellItem **ppsi);
21680
21681    HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
21682        IFileDialog *This,
21683        IShellItem **ppsi);
21684
21685    HRESULT (STDMETHODCALLTYPE *SetFileName)(
21686        IFileDialog *This,
21687        LPCWSTR pszName);
21688
21689    HRESULT (STDMETHODCALLTYPE *GetFileName)(
21690        IFileDialog *This,
21691        LPWSTR *pszName);
21692
21693    HRESULT (STDMETHODCALLTYPE *SetTitle)(
21694        IFileDialog *This,
21695        LPCWSTR pszTitle);
21696
21697    HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
21698        IFileDialog *This,
21699        LPCWSTR pszText);
21700
21701    HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
21702        IFileDialog *This,
21703        LPCWSTR pszLabel);
21704
21705    HRESULT (STDMETHODCALLTYPE *GetResult)(
21706        IFileDialog *This,
21707        IShellItem **ppsi);
21708
21709    HRESULT (STDMETHODCALLTYPE *AddPlace)(
21710        IFileDialog *This,
21711        IShellItem *psi,
21712        FDAP fdap);
21713
21714    HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
21715        IFileDialog *This,
21716        LPCWSTR pszDefaultExtension);
21717
21718    HRESULT (STDMETHODCALLTYPE *Close)(
21719        IFileDialog *This,
21720        HRESULT hr);
21721
21722    HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
21723        IFileDialog *This,
21724        REFGUID guid);
21725
21726    HRESULT (STDMETHODCALLTYPE *ClearClientData)(
21727        IFileDialog *This);
21728
21729    HRESULT (STDMETHODCALLTYPE *SetFilter)(
21730        IFileDialog *This,
21731        IShellItemFilter *pFilter);
21732
21733    END_INTERFACE
21734} IFileDialogVtbl;
21735
21736interface IFileDialog {
21737    CONST_VTBL IFileDialogVtbl* lpVtbl;
21738};
21739
21740#ifdef COBJMACROS
21741#ifndef WIDL_C_INLINE_WRAPPERS
21742/*** IUnknown methods ***/
21743#define IFileDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
21744#define IFileDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
21745#define IFileDialog_Release(This) (This)->lpVtbl->Release(This)
21746/*** IModalWindow methods ***/
21747#define IFileDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
21748/*** IFileDialog methods ***/
21749#define IFileDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
21750#define IFileDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
21751#define IFileDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
21752#define IFileDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
21753#define IFileDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
21754#define IFileDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
21755#define IFileDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
21756#define IFileDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
21757#define IFileDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
21758#define IFileDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
21759#define IFileDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
21760#define IFileDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
21761#define IFileDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
21762#define IFileDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
21763#define IFileDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
21764#define IFileDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
21765#define IFileDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
21766#define IFileDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
21767#define IFileDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
21768#define IFileDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
21769#define IFileDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
21770#define IFileDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
21771#define IFileDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
21772#else
21773/*** IUnknown methods ***/
21774static inline HRESULT IFileDialog_QueryInterface(IFileDialog* This,REFIID riid,void **ppvObject) {
21775    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
21776}
21777static inline ULONG IFileDialog_AddRef(IFileDialog* This) {
21778    return This->lpVtbl->AddRef(This);
21779}
21780static inline ULONG IFileDialog_Release(IFileDialog* This) {
21781    return This->lpVtbl->Release(This);
21782}
21783/*** IModalWindow methods ***/
21784static inline HRESULT IFileDialog_Show(IFileDialog* This,HWND hwndOwner) {
21785    return This->lpVtbl->Show(This,hwndOwner);
21786}
21787/*** IFileDialog methods ***/
21788static inline HRESULT IFileDialog_SetFileTypes(IFileDialog* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
21789    return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
21790}
21791static inline HRESULT IFileDialog_SetFileTypeIndex(IFileDialog* This,UINT iFileType) {
21792    return This->lpVtbl->SetFileTypeIndex(This,iFileType);
21793}
21794static inline HRESULT IFileDialog_GetFileTypeIndex(IFileDialog* This,UINT *piFileType) {
21795    return This->lpVtbl->GetFileTypeIndex(This,piFileType);
21796}
21797static inline HRESULT IFileDialog_Advise(IFileDialog* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
21798    return This->lpVtbl->Advise(This,pfde,pdwCookie);
21799}
21800static inline HRESULT IFileDialog_Unadvise(IFileDialog* This,DWORD dwCookie) {
21801    return This->lpVtbl->Unadvise(This,dwCookie);
21802}
21803static inline HRESULT IFileDialog_SetOptions(IFileDialog* This,FILEOPENDIALOGOPTIONS fos) {
21804    return This->lpVtbl->SetOptions(This,fos);
21805}
21806static inline HRESULT IFileDialog_GetOptions(IFileDialog* This,FILEOPENDIALOGOPTIONS *pfos) {
21807    return This->lpVtbl->GetOptions(This,pfos);
21808}
21809static inline HRESULT IFileDialog_SetDefaultFolder(IFileDialog* This,IShellItem *psi) {
21810    return This->lpVtbl->SetDefaultFolder(This,psi);
21811}
21812static inline HRESULT IFileDialog_SetFolder(IFileDialog* This,IShellItem *psi) {
21813    return This->lpVtbl->SetFolder(This,psi);
21814}
21815static inline HRESULT IFileDialog_GetFolder(IFileDialog* This,IShellItem **ppsi) {
21816    return This->lpVtbl->GetFolder(This,ppsi);
21817}
21818static inline HRESULT IFileDialog_GetCurrentSelection(IFileDialog* This,IShellItem **ppsi) {
21819    return This->lpVtbl->GetCurrentSelection(This,ppsi);
21820}
21821static inline HRESULT IFileDialog_SetFileName(IFileDialog* This,LPCWSTR pszName) {
21822    return This->lpVtbl->SetFileName(This,pszName);
21823}
21824static inline HRESULT IFileDialog_GetFileName(IFileDialog* This,LPWSTR *pszName) {
21825    return This->lpVtbl->GetFileName(This,pszName);
21826}
21827static inline HRESULT IFileDialog_SetTitle(IFileDialog* This,LPCWSTR pszTitle) {
21828    return This->lpVtbl->SetTitle(This,pszTitle);
21829}
21830static inline HRESULT IFileDialog_SetOkButtonLabel(IFileDialog* This,LPCWSTR pszText) {
21831    return This->lpVtbl->SetOkButtonLabel(This,pszText);
21832}
21833static inline HRESULT IFileDialog_SetFileNameLabel(IFileDialog* This,LPCWSTR pszLabel) {
21834    return This->lpVtbl->SetFileNameLabel(This,pszLabel);
21835}
21836static inline HRESULT IFileDialog_GetResult(IFileDialog* This,IShellItem **ppsi) {
21837    return This->lpVtbl->GetResult(This,ppsi);
21838}
21839static inline HRESULT IFileDialog_AddPlace(IFileDialog* This,IShellItem *psi,FDAP fdap) {
21840    return This->lpVtbl->AddPlace(This,psi,fdap);
21841}
21842static inline HRESULT IFileDialog_SetDefaultExtension(IFileDialog* This,LPCWSTR pszDefaultExtension) {
21843    return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
21844}
21845static inline HRESULT IFileDialog_Close(IFileDialog* This,HRESULT hr) {
21846    return This->lpVtbl->Close(This,hr);
21847}
21848static inline HRESULT IFileDialog_SetClientGuid(IFileDialog* This,REFGUID guid) {
21849    return This->lpVtbl->SetClientGuid(This,guid);
21850}
21851static inline HRESULT IFileDialog_ClearClientData(IFileDialog* This) {
21852    return This->lpVtbl->ClearClientData(This);
21853}
21854static inline HRESULT IFileDialog_SetFilter(IFileDialog* This,IShellItemFilter *pFilter) {
21855    return This->lpVtbl->SetFilter(This,pFilter);
21856}
21857#endif
21858#endif
21859
21860#endif
21861
21862
21863#endif  /* __IFileDialog_INTERFACE_DEFINED__ */
21864
21865
21866/*****************************************************************************
21867 * IFileSaveDialog interface
21868 */
21869#ifndef __IFileSaveDialog_INTERFACE_DEFINED__
21870#define __IFileSaveDialog_INTERFACE_DEFINED__
21871
21872DEFINE_GUID(IID_IFileSaveDialog, 0x84bccd23, 0x5fde, 0x4cdb, 0xae,0xa4, 0xaf,0x64,0xb8,0x3d,0x78,0xab);
21873#if defined(__cplusplus) && !defined(CINTERFACE)
21874MIDL_INTERFACE("84bccd23-5fde-4cdb-aea4-af64b83d78ab")
21875IFileSaveDialog : public IFileDialog
21876{
21877    virtual HRESULT STDMETHODCALLTYPE SetSaveAsItem(
21878        IShellItem *psi) = 0;
21879
21880    virtual HRESULT STDMETHODCALLTYPE SetProperties(
21881        IPropertyStore *pStore) = 0;
21882
21883    virtual HRESULT STDMETHODCALLTYPE SetCollectedProperties(
21884        IPropertyDescriptionList *pList,
21885        WINBOOL fAppendDefault) = 0;
21886
21887    virtual HRESULT STDMETHODCALLTYPE GetProperties(
21888        IPropertyStore **ppStore) = 0;
21889
21890    virtual HRESULT STDMETHODCALLTYPE ApplyProperties(
21891        IShellItem *psi,
21892        IPropertyStore *pStore,
21893        HWND hwnd,
21894        IFileOperationProgressSink *pSink) = 0;
21895
21896};
21897#ifdef __CRT_UUID_DECL
21898__CRT_UUID_DECL(IFileSaveDialog, 0x84bccd23, 0x5fde, 0x4cdb, 0xae,0xa4, 0xaf,0x64,0xb8,0x3d,0x78,0xab)
21899#endif
21900#else
21901typedef struct IFileSaveDialogVtbl {
21902    BEGIN_INTERFACE
21903
21904    /*** IUnknown methods ***/
21905    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
21906        IFileSaveDialog *This,
21907        REFIID riid,
21908        void **ppvObject);
21909
21910    ULONG (STDMETHODCALLTYPE *AddRef)(
21911        IFileSaveDialog *This);
21912
21913    ULONG (STDMETHODCALLTYPE *Release)(
21914        IFileSaveDialog *This);
21915
21916    /*** IModalWindow methods ***/
21917    HRESULT (STDMETHODCALLTYPE *Show)(
21918        IFileSaveDialog *This,
21919        HWND hwndOwner);
21920
21921    /*** IFileDialog methods ***/
21922    HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
21923        IFileSaveDialog *This,
21924        UINT cFileTypes,
21925        const COMDLG_FILTERSPEC *rgFilterSpec);
21926
21927    HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
21928        IFileSaveDialog *This,
21929        UINT iFileType);
21930
21931    HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
21932        IFileSaveDialog *This,
21933        UINT *piFileType);
21934
21935    HRESULT (STDMETHODCALLTYPE *Advise)(
21936        IFileSaveDialog *This,
21937        IFileDialogEvents *pfde,
21938        DWORD *pdwCookie);
21939
21940    HRESULT (STDMETHODCALLTYPE *Unadvise)(
21941        IFileSaveDialog *This,
21942        DWORD dwCookie);
21943
21944    HRESULT (STDMETHODCALLTYPE *SetOptions)(
21945        IFileSaveDialog *This,
21946        FILEOPENDIALOGOPTIONS fos);
21947
21948    HRESULT (STDMETHODCALLTYPE *GetOptions)(
21949        IFileSaveDialog *This,
21950        FILEOPENDIALOGOPTIONS *pfos);
21951
21952    HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
21953        IFileSaveDialog *This,
21954        IShellItem *psi);
21955
21956    HRESULT (STDMETHODCALLTYPE *SetFolder)(
21957        IFileSaveDialog *This,
21958        IShellItem *psi);
21959
21960    HRESULT (STDMETHODCALLTYPE *GetFolder)(
21961        IFileSaveDialog *This,
21962        IShellItem **ppsi);
21963
21964    HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
21965        IFileSaveDialog *This,
21966        IShellItem **ppsi);
21967
21968    HRESULT (STDMETHODCALLTYPE *SetFileName)(
21969        IFileSaveDialog *This,
21970        LPCWSTR pszName);
21971
21972    HRESULT (STDMETHODCALLTYPE *GetFileName)(
21973        IFileSaveDialog *This,
21974        LPWSTR *pszName);
21975
21976    HRESULT (STDMETHODCALLTYPE *SetTitle)(
21977        IFileSaveDialog *This,
21978        LPCWSTR pszTitle);
21979
21980    HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
21981        IFileSaveDialog *This,
21982        LPCWSTR pszText);
21983
21984    HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
21985        IFileSaveDialog *This,
21986        LPCWSTR pszLabel);
21987
21988    HRESULT (STDMETHODCALLTYPE *GetResult)(
21989        IFileSaveDialog *This,
21990        IShellItem **ppsi);
21991
21992    HRESULT (STDMETHODCALLTYPE *AddPlace)(
21993        IFileSaveDialog *This,
21994        IShellItem *psi,
21995        FDAP fdap);
21996
21997    HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
21998        IFileSaveDialog *This,
21999        LPCWSTR pszDefaultExtension);
22000
22001    HRESULT (STDMETHODCALLTYPE *Close)(
22002        IFileSaveDialog *This,
22003        HRESULT hr);
22004
22005    HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
22006        IFileSaveDialog *This,
22007        REFGUID guid);
22008
22009    HRESULT (STDMETHODCALLTYPE *ClearClientData)(
22010        IFileSaveDialog *This);
22011
22012    HRESULT (STDMETHODCALLTYPE *SetFilter)(
22013        IFileSaveDialog *This,
22014        IShellItemFilter *pFilter);
22015
22016    /*** IFileSaveDialog methods ***/
22017    HRESULT (STDMETHODCALLTYPE *SetSaveAsItem)(
22018        IFileSaveDialog *This,
22019        IShellItem *psi);
22020
22021    HRESULT (STDMETHODCALLTYPE *SetProperties)(
22022        IFileSaveDialog *This,
22023        IPropertyStore *pStore);
22024
22025    HRESULT (STDMETHODCALLTYPE *SetCollectedProperties)(
22026        IFileSaveDialog *This,
22027        IPropertyDescriptionList *pList,
22028        WINBOOL fAppendDefault);
22029
22030    HRESULT (STDMETHODCALLTYPE *GetProperties)(
22031        IFileSaveDialog *This,
22032        IPropertyStore **ppStore);
22033
22034    HRESULT (STDMETHODCALLTYPE *ApplyProperties)(
22035        IFileSaveDialog *This,
22036        IShellItem *psi,
22037        IPropertyStore *pStore,
22038        HWND hwnd,
22039        IFileOperationProgressSink *pSink);
22040
22041    END_INTERFACE
22042} IFileSaveDialogVtbl;
22043
22044interface IFileSaveDialog {
22045    CONST_VTBL IFileSaveDialogVtbl* lpVtbl;
22046};
22047
22048#ifdef COBJMACROS
22049#ifndef WIDL_C_INLINE_WRAPPERS
22050/*** IUnknown methods ***/
22051#define IFileSaveDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22052#define IFileSaveDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
22053#define IFileSaveDialog_Release(This) (This)->lpVtbl->Release(This)
22054/*** IModalWindow methods ***/
22055#define IFileSaveDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
22056/*** IFileDialog methods ***/
22057#define IFileSaveDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
22058#define IFileSaveDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
22059#define IFileSaveDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
22060#define IFileSaveDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
22061#define IFileSaveDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
22062#define IFileSaveDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
22063#define IFileSaveDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
22064#define IFileSaveDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
22065#define IFileSaveDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
22066#define IFileSaveDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
22067#define IFileSaveDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
22068#define IFileSaveDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
22069#define IFileSaveDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
22070#define IFileSaveDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
22071#define IFileSaveDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
22072#define IFileSaveDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
22073#define IFileSaveDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
22074#define IFileSaveDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
22075#define IFileSaveDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
22076#define IFileSaveDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
22077#define IFileSaveDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
22078#define IFileSaveDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
22079#define IFileSaveDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
22080/*** IFileSaveDialog methods ***/
22081#define IFileSaveDialog_SetSaveAsItem(This,psi) (This)->lpVtbl->SetSaveAsItem(This,psi)
22082#define IFileSaveDialog_SetProperties(This,pStore) (This)->lpVtbl->SetProperties(This,pStore)
22083#define IFileSaveDialog_SetCollectedProperties(This,pList,fAppendDefault) (This)->lpVtbl->SetCollectedProperties(This,pList,fAppendDefault)
22084#define IFileSaveDialog_GetProperties(This,ppStore) (This)->lpVtbl->GetProperties(This,ppStore)
22085#define IFileSaveDialog_ApplyProperties(This,psi,pStore,hwnd,pSink) (This)->lpVtbl->ApplyProperties(This,psi,pStore,hwnd,pSink)
22086#else
22087/*** IUnknown methods ***/
22088static inline HRESULT IFileSaveDialog_QueryInterface(IFileSaveDialog* This,REFIID riid,void **ppvObject) {
22089    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22090}
22091static inline ULONG IFileSaveDialog_AddRef(IFileSaveDialog* This) {
22092    return This->lpVtbl->AddRef(This);
22093}
22094static inline ULONG IFileSaveDialog_Release(IFileSaveDialog* This) {
22095    return This->lpVtbl->Release(This);
22096}
22097/*** IModalWindow methods ***/
22098static inline HRESULT IFileSaveDialog_Show(IFileSaveDialog* This,HWND hwndOwner) {
22099    return This->lpVtbl->Show(This,hwndOwner);
22100}
22101/*** IFileDialog methods ***/
22102static inline HRESULT IFileSaveDialog_SetFileTypes(IFileSaveDialog* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
22103    return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
22104}
22105static inline HRESULT IFileSaveDialog_SetFileTypeIndex(IFileSaveDialog* This,UINT iFileType) {
22106    return This->lpVtbl->SetFileTypeIndex(This,iFileType);
22107}
22108static inline HRESULT IFileSaveDialog_GetFileTypeIndex(IFileSaveDialog* This,UINT *piFileType) {
22109    return This->lpVtbl->GetFileTypeIndex(This,piFileType);
22110}
22111static inline HRESULT IFileSaveDialog_Advise(IFileSaveDialog* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
22112    return This->lpVtbl->Advise(This,pfde,pdwCookie);
22113}
22114static inline HRESULT IFileSaveDialog_Unadvise(IFileSaveDialog* This,DWORD dwCookie) {
22115    return This->lpVtbl->Unadvise(This,dwCookie);
22116}
22117static inline HRESULT IFileSaveDialog_SetOptions(IFileSaveDialog* This,FILEOPENDIALOGOPTIONS fos) {
22118    return This->lpVtbl->SetOptions(This,fos);
22119}
22120static inline HRESULT IFileSaveDialog_GetOptions(IFileSaveDialog* This,FILEOPENDIALOGOPTIONS *pfos) {
22121    return This->lpVtbl->GetOptions(This,pfos);
22122}
22123static inline HRESULT IFileSaveDialog_SetDefaultFolder(IFileSaveDialog* This,IShellItem *psi) {
22124    return This->lpVtbl->SetDefaultFolder(This,psi);
22125}
22126static inline HRESULT IFileSaveDialog_SetFolder(IFileSaveDialog* This,IShellItem *psi) {
22127    return This->lpVtbl->SetFolder(This,psi);
22128}
22129static inline HRESULT IFileSaveDialog_GetFolder(IFileSaveDialog* This,IShellItem **ppsi) {
22130    return This->lpVtbl->GetFolder(This,ppsi);
22131}
22132static inline HRESULT IFileSaveDialog_GetCurrentSelection(IFileSaveDialog* This,IShellItem **ppsi) {
22133    return This->lpVtbl->GetCurrentSelection(This,ppsi);
22134}
22135static inline HRESULT IFileSaveDialog_SetFileName(IFileSaveDialog* This,LPCWSTR pszName) {
22136    return This->lpVtbl->SetFileName(This,pszName);
22137}
22138static inline HRESULT IFileSaveDialog_GetFileName(IFileSaveDialog* This,LPWSTR *pszName) {
22139    return This->lpVtbl->GetFileName(This,pszName);
22140}
22141static inline HRESULT IFileSaveDialog_SetTitle(IFileSaveDialog* This,LPCWSTR pszTitle) {
22142    return This->lpVtbl->SetTitle(This,pszTitle);
22143}
22144static inline HRESULT IFileSaveDialog_SetOkButtonLabel(IFileSaveDialog* This,LPCWSTR pszText) {
22145    return This->lpVtbl->SetOkButtonLabel(This,pszText);
22146}
22147static inline HRESULT IFileSaveDialog_SetFileNameLabel(IFileSaveDialog* This,LPCWSTR pszLabel) {
22148    return This->lpVtbl->SetFileNameLabel(This,pszLabel);
22149}
22150static inline HRESULT IFileSaveDialog_GetResult(IFileSaveDialog* This,IShellItem **ppsi) {
22151    return This->lpVtbl->GetResult(This,ppsi);
22152}
22153static inline HRESULT IFileSaveDialog_AddPlace(IFileSaveDialog* This,IShellItem *psi,FDAP fdap) {
22154    return This->lpVtbl->AddPlace(This,psi,fdap);
22155}
22156static inline HRESULT IFileSaveDialog_SetDefaultExtension(IFileSaveDialog* This,LPCWSTR pszDefaultExtension) {
22157    return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
22158}
22159static inline HRESULT IFileSaveDialog_Close(IFileSaveDialog* This,HRESULT hr) {
22160    return This->lpVtbl->Close(This,hr);
22161}
22162static inline HRESULT IFileSaveDialog_SetClientGuid(IFileSaveDialog* This,REFGUID guid) {
22163    return This->lpVtbl->SetClientGuid(This,guid);
22164}
22165static inline HRESULT IFileSaveDialog_ClearClientData(IFileSaveDialog* This) {
22166    return This->lpVtbl->ClearClientData(This);
22167}
22168static inline HRESULT IFileSaveDialog_SetFilter(IFileSaveDialog* This,IShellItemFilter *pFilter) {
22169    return This->lpVtbl->SetFilter(This,pFilter);
22170}
22171/*** IFileSaveDialog methods ***/
22172static inline HRESULT IFileSaveDialog_SetSaveAsItem(IFileSaveDialog* This,IShellItem *psi) {
22173    return This->lpVtbl->SetSaveAsItem(This,psi);
22174}
22175static inline HRESULT IFileSaveDialog_SetProperties(IFileSaveDialog* This,IPropertyStore *pStore) {
22176    return This->lpVtbl->SetProperties(This,pStore);
22177}
22178static inline HRESULT IFileSaveDialog_SetCollectedProperties(IFileSaveDialog* This,IPropertyDescriptionList *pList,WINBOOL fAppendDefault) {
22179    return This->lpVtbl->SetCollectedProperties(This,pList,fAppendDefault);
22180}
22181static inline HRESULT IFileSaveDialog_GetProperties(IFileSaveDialog* This,IPropertyStore **ppStore) {
22182    return This->lpVtbl->GetProperties(This,ppStore);
22183}
22184static inline HRESULT IFileSaveDialog_ApplyProperties(IFileSaveDialog* This,IShellItem *psi,IPropertyStore *pStore,HWND hwnd,IFileOperationProgressSink *pSink) {
22185    return This->lpVtbl->ApplyProperties(This,psi,pStore,hwnd,pSink);
22186}
22187#endif
22188#endif
22189
22190#endif
22191
22192
22193#endif  /* __IFileSaveDialog_INTERFACE_DEFINED__ */
22194
22195
22196/*****************************************************************************
22197 * IFileOpenDialog interface
22198 */
22199#ifndef __IFileOpenDialog_INTERFACE_DEFINED__
22200#define __IFileOpenDialog_INTERFACE_DEFINED__
22201
22202DEFINE_GUID(IID_IFileOpenDialog, 0xd57c7288, 0xd4ad, 0x4768, 0xbe,0x02, 0x9d,0x96,0x95,0x32,0xd9,0x60);
22203#if defined(__cplusplus) && !defined(CINTERFACE)
22204MIDL_INTERFACE("d57c7288-d4ad-4768-be02-9d969532d960")
22205IFileOpenDialog : public IFileDialog
22206{
22207    virtual HRESULT STDMETHODCALLTYPE GetResults(
22208        IShellItemArray **ppenum) = 0;
22209
22210    virtual HRESULT STDMETHODCALLTYPE GetSelectedItems(
22211        IShellItemArray **ppsai) = 0;
22212
22213};
22214#ifdef __CRT_UUID_DECL
22215__CRT_UUID_DECL(IFileOpenDialog, 0xd57c7288, 0xd4ad, 0x4768, 0xbe,0x02, 0x9d,0x96,0x95,0x32,0xd9,0x60)
22216#endif
22217#else
22218typedef struct IFileOpenDialogVtbl {
22219    BEGIN_INTERFACE
22220
22221    /*** IUnknown methods ***/
22222    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22223        IFileOpenDialog *This,
22224        REFIID riid,
22225        void **ppvObject);
22226
22227    ULONG (STDMETHODCALLTYPE *AddRef)(
22228        IFileOpenDialog *This);
22229
22230    ULONG (STDMETHODCALLTYPE *Release)(
22231        IFileOpenDialog *This);
22232
22233    /*** IModalWindow methods ***/
22234    HRESULT (STDMETHODCALLTYPE *Show)(
22235        IFileOpenDialog *This,
22236        HWND hwndOwner);
22237
22238    /*** IFileDialog methods ***/
22239    HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
22240        IFileOpenDialog *This,
22241        UINT cFileTypes,
22242        const COMDLG_FILTERSPEC *rgFilterSpec);
22243
22244    HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
22245        IFileOpenDialog *This,
22246        UINT iFileType);
22247
22248    HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
22249        IFileOpenDialog *This,
22250        UINT *piFileType);
22251
22252    HRESULT (STDMETHODCALLTYPE *Advise)(
22253        IFileOpenDialog *This,
22254        IFileDialogEvents *pfde,
22255        DWORD *pdwCookie);
22256
22257    HRESULT (STDMETHODCALLTYPE *Unadvise)(
22258        IFileOpenDialog *This,
22259        DWORD dwCookie);
22260
22261    HRESULT (STDMETHODCALLTYPE *SetOptions)(
22262        IFileOpenDialog *This,
22263        FILEOPENDIALOGOPTIONS fos);
22264
22265    HRESULT (STDMETHODCALLTYPE *GetOptions)(
22266        IFileOpenDialog *This,
22267        FILEOPENDIALOGOPTIONS *pfos);
22268
22269    HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
22270        IFileOpenDialog *This,
22271        IShellItem *psi);
22272
22273    HRESULT (STDMETHODCALLTYPE *SetFolder)(
22274        IFileOpenDialog *This,
22275        IShellItem *psi);
22276
22277    HRESULT (STDMETHODCALLTYPE *GetFolder)(
22278        IFileOpenDialog *This,
22279        IShellItem **ppsi);
22280
22281    HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
22282        IFileOpenDialog *This,
22283        IShellItem **ppsi);
22284
22285    HRESULT (STDMETHODCALLTYPE *SetFileName)(
22286        IFileOpenDialog *This,
22287        LPCWSTR pszName);
22288
22289    HRESULT (STDMETHODCALLTYPE *GetFileName)(
22290        IFileOpenDialog *This,
22291        LPWSTR *pszName);
22292
22293    HRESULT (STDMETHODCALLTYPE *SetTitle)(
22294        IFileOpenDialog *This,
22295        LPCWSTR pszTitle);
22296
22297    HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
22298        IFileOpenDialog *This,
22299        LPCWSTR pszText);
22300
22301    HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
22302        IFileOpenDialog *This,
22303        LPCWSTR pszLabel);
22304
22305    HRESULT (STDMETHODCALLTYPE *GetResult)(
22306        IFileOpenDialog *This,
22307        IShellItem **ppsi);
22308
22309    HRESULT (STDMETHODCALLTYPE *AddPlace)(
22310        IFileOpenDialog *This,
22311        IShellItem *psi,
22312        FDAP fdap);
22313
22314    HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
22315        IFileOpenDialog *This,
22316        LPCWSTR pszDefaultExtension);
22317
22318    HRESULT (STDMETHODCALLTYPE *Close)(
22319        IFileOpenDialog *This,
22320        HRESULT hr);
22321
22322    HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
22323        IFileOpenDialog *This,
22324        REFGUID guid);
22325
22326    HRESULT (STDMETHODCALLTYPE *ClearClientData)(
22327        IFileOpenDialog *This);
22328
22329    HRESULT (STDMETHODCALLTYPE *SetFilter)(
22330        IFileOpenDialog *This,
22331        IShellItemFilter *pFilter);
22332
22333    /*** IFileOpenDialog methods ***/
22334    HRESULT (STDMETHODCALLTYPE *GetResults)(
22335        IFileOpenDialog *This,
22336        IShellItemArray **ppenum);
22337
22338    HRESULT (STDMETHODCALLTYPE *GetSelectedItems)(
22339        IFileOpenDialog *This,
22340        IShellItemArray **ppsai);
22341
22342    END_INTERFACE
22343} IFileOpenDialogVtbl;
22344
22345interface IFileOpenDialog {
22346    CONST_VTBL IFileOpenDialogVtbl* lpVtbl;
22347};
22348
22349#ifdef COBJMACROS
22350#ifndef WIDL_C_INLINE_WRAPPERS
22351/*** IUnknown methods ***/
22352#define IFileOpenDialog_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22353#define IFileOpenDialog_AddRef(This) (This)->lpVtbl->AddRef(This)
22354#define IFileOpenDialog_Release(This) (This)->lpVtbl->Release(This)
22355/*** IModalWindow methods ***/
22356#define IFileOpenDialog_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
22357/*** IFileDialog methods ***/
22358#define IFileOpenDialog_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
22359#define IFileOpenDialog_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
22360#define IFileOpenDialog_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
22361#define IFileOpenDialog_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
22362#define IFileOpenDialog_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
22363#define IFileOpenDialog_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
22364#define IFileOpenDialog_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
22365#define IFileOpenDialog_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
22366#define IFileOpenDialog_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
22367#define IFileOpenDialog_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
22368#define IFileOpenDialog_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
22369#define IFileOpenDialog_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
22370#define IFileOpenDialog_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
22371#define IFileOpenDialog_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
22372#define IFileOpenDialog_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
22373#define IFileOpenDialog_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
22374#define IFileOpenDialog_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
22375#define IFileOpenDialog_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
22376#define IFileOpenDialog_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
22377#define IFileOpenDialog_Close(This,hr) (This)->lpVtbl->Close(This,hr)
22378#define IFileOpenDialog_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
22379#define IFileOpenDialog_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
22380#define IFileOpenDialog_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
22381/*** IFileOpenDialog methods ***/
22382#define IFileOpenDialog_GetResults(This,ppenum) (This)->lpVtbl->GetResults(This,ppenum)
22383#define IFileOpenDialog_GetSelectedItems(This,ppsai) (This)->lpVtbl->GetSelectedItems(This,ppsai)
22384#else
22385/*** IUnknown methods ***/
22386static inline HRESULT IFileOpenDialog_QueryInterface(IFileOpenDialog* This,REFIID riid,void **ppvObject) {
22387    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22388}
22389static inline ULONG IFileOpenDialog_AddRef(IFileOpenDialog* This) {
22390    return This->lpVtbl->AddRef(This);
22391}
22392static inline ULONG IFileOpenDialog_Release(IFileOpenDialog* This) {
22393    return This->lpVtbl->Release(This);
22394}
22395/*** IModalWindow methods ***/
22396static inline HRESULT IFileOpenDialog_Show(IFileOpenDialog* This,HWND hwndOwner) {
22397    return This->lpVtbl->Show(This,hwndOwner);
22398}
22399/*** IFileDialog methods ***/
22400static inline HRESULT IFileOpenDialog_SetFileTypes(IFileOpenDialog* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
22401    return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
22402}
22403static inline HRESULT IFileOpenDialog_SetFileTypeIndex(IFileOpenDialog* This,UINT iFileType) {
22404    return This->lpVtbl->SetFileTypeIndex(This,iFileType);
22405}
22406static inline HRESULT IFileOpenDialog_GetFileTypeIndex(IFileOpenDialog* This,UINT *piFileType) {
22407    return This->lpVtbl->GetFileTypeIndex(This,piFileType);
22408}
22409static inline HRESULT IFileOpenDialog_Advise(IFileOpenDialog* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
22410    return This->lpVtbl->Advise(This,pfde,pdwCookie);
22411}
22412static inline HRESULT IFileOpenDialog_Unadvise(IFileOpenDialog* This,DWORD dwCookie) {
22413    return This->lpVtbl->Unadvise(This,dwCookie);
22414}
22415static inline HRESULT IFileOpenDialog_SetOptions(IFileOpenDialog* This,FILEOPENDIALOGOPTIONS fos) {
22416    return This->lpVtbl->SetOptions(This,fos);
22417}
22418static inline HRESULT IFileOpenDialog_GetOptions(IFileOpenDialog* This,FILEOPENDIALOGOPTIONS *pfos) {
22419    return This->lpVtbl->GetOptions(This,pfos);
22420}
22421static inline HRESULT IFileOpenDialog_SetDefaultFolder(IFileOpenDialog* This,IShellItem *psi) {
22422    return This->lpVtbl->SetDefaultFolder(This,psi);
22423}
22424static inline HRESULT IFileOpenDialog_SetFolder(IFileOpenDialog* This,IShellItem *psi) {
22425    return This->lpVtbl->SetFolder(This,psi);
22426}
22427static inline HRESULT IFileOpenDialog_GetFolder(IFileOpenDialog* This,IShellItem **ppsi) {
22428    return This->lpVtbl->GetFolder(This,ppsi);
22429}
22430static inline HRESULT IFileOpenDialog_GetCurrentSelection(IFileOpenDialog* This,IShellItem **ppsi) {
22431    return This->lpVtbl->GetCurrentSelection(This,ppsi);
22432}
22433static inline HRESULT IFileOpenDialog_SetFileName(IFileOpenDialog* This,LPCWSTR pszName) {
22434    return This->lpVtbl->SetFileName(This,pszName);
22435}
22436static inline HRESULT IFileOpenDialog_GetFileName(IFileOpenDialog* This,LPWSTR *pszName) {
22437    return This->lpVtbl->GetFileName(This,pszName);
22438}
22439static inline HRESULT IFileOpenDialog_SetTitle(IFileOpenDialog* This,LPCWSTR pszTitle) {
22440    return This->lpVtbl->SetTitle(This,pszTitle);
22441}
22442static inline HRESULT IFileOpenDialog_SetOkButtonLabel(IFileOpenDialog* This,LPCWSTR pszText) {
22443    return This->lpVtbl->SetOkButtonLabel(This,pszText);
22444}
22445static inline HRESULT IFileOpenDialog_SetFileNameLabel(IFileOpenDialog* This,LPCWSTR pszLabel) {
22446    return This->lpVtbl->SetFileNameLabel(This,pszLabel);
22447}
22448static inline HRESULT IFileOpenDialog_GetResult(IFileOpenDialog* This,IShellItem **ppsi) {
22449    return This->lpVtbl->GetResult(This,ppsi);
22450}
22451static inline HRESULT IFileOpenDialog_AddPlace(IFileOpenDialog* This,IShellItem *psi,FDAP fdap) {
22452    return This->lpVtbl->AddPlace(This,psi,fdap);
22453}
22454static inline HRESULT IFileOpenDialog_SetDefaultExtension(IFileOpenDialog* This,LPCWSTR pszDefaultExtension) {
22455    return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
22456}
22457static inline HRESULT IFileOpenDialog_Close(IFileOpenDialog* This,HRESULT hr) {
22458    return This->lpVtbl->Close(This,hr);
22459}
22460static inline HRESULT IFileOpenDialog_SetClientGuid(IFileOpenDialog* This,REFGUID guid) {
22461    return This->lpVtbl->SetClientGuid(This,guid);
22462}
22463static inline HRESULT IFileOpenDialog_ClearClientData(IFileOpenDialog* This) {
22464    return This->lpVtbl->ClearClientData(This);
22465}
22466static inline HRESULT IFileOpenDialog_SetFilter(IFileOpenDialog* This,IShellItemFilter *pFilter) {
22467    return This->lpVtbl->SetFilter(This,pFilter);
22468}
22469/*** IFileOpenDialog methods ***/
22470static inline HRESULT IFileOpenDialog_GetResults(IFileOpenDialog* This,IShellItemArray **ppenum) {
22471    return This->lpVtbl->GetResults(This,ppenum);
22472}
22473static inline HRESULT IFileOpenDialog_GetSelectedItems(IFileOpenDialog* This,IShellItemArray **ppsai) {
22474    return This->lpVtbl->GetSelectedItems(This,ppsai);
22475}
22476#endif
22477#endif
22478
22479#endif
22480
22481
22482#endif  /* __IFileOpenDialog_INTERFACE_DEFINED__ */
22483
22484
22485typedef enum CDCONTROLSTATEF {
22486    CDCS_INACTIVE = 0x0,
22487    CDCS_ENABLED = 0x1,
22488    CDCS_VISIBLE = 0x2,
22489    CDCS_ENABLEDVISIBLE = 0x3
22490} CDCONTROLSTATEF;
22491
22492DEFINE_ENUM_FLAG_OPERATORS(CDCONTROLSTATEF)
22493
22494/*****************************************************************************
22495 * IFileDialogCustomize interface
22496 */
22497#ifndef __IFileDialogCustomize_INTERFACE_DEFINED__
22498#define __IFileDialogCustomize_INTERFACE_DEFINED__
22499
22500DEFINE_GUID(IID_IFileDialogCustomize, 0xe6fdd21a, 0x163f, 0x4975, 0x9c,0x8c, 0xa6,0x9f,0x1b,0xa3,0x70,0x34);
22501#if defined(__cplusplus) && !defined(CINTERFACE)
22502MIDL_INTERFACE("e6fdd21a-163f-4975-9c8c-a69f1ba37034")
22503IFileDialogCustomize : public IUnknown
22504{
22505    virtual HRESULT STDMETHODCALLTYPE EnableOpenDropDown(
22506        DWORD dwIDCtl) = 0;
22507
22508    virtual HRESULT STDMETHODCALLTYPE AddMenu(
22509        DWORD dwIDCtl,
22510        LPCWSTR pszLabel) = 0;
22511
22512    virtual HRESULT STDMETHODCALLTYPE AddPushButton(
22513        DWORD dwIDCtl,
22514        LPCWSTR pszLabel) = 0;
22515
22516    virtual HRESULT STDMETHODCALLTYPE AddComboBox(
22517        DWORD dwIDCtl) = 0;
22518
22519    virtual HRESULT STDMETHODCALLTYPE AddRadioButtonList(
22520        DWORD dwIDCtl) = 0;
22521
22522    virtual HRESULT STDMETHODCALLTYPE AddCheckButton(
22523        DWORD dwIDCtl,
22524        LPCWSTR pszLabel,
22525        WINBOOL bChecked) = 0;
22526
22527    virtual HRESULT STDMETHODCALLTYPE AddEditBox(
22528        DWORD dwIDCtl,
22529        LPCWSTR pszText) = 0;
22530
22531    virtual HRESULT STDMETHODCALLTYPE AddSeparator(
22532        DWORD dwIDCtl) = 0;
22533
22534    virtual HRESULT STDMETHODCALLTYPE AddText(
22535        DWORD dwIDCtl,
22536        LPCWSTR pszText) = 0;
22537
22538    virtual HRESULT STDMETHODCALLTYPE SetControlLabel(
22539        DWORD dwIDCtl,
22540        LPCWSTR pszLabel) = 0;
22541
22542    virtual HRESULT STDMETHODCALLTYPE GetControlState(
22543        DWORD dwIDCtl,
22544        CDCONTROLSTATEF *pdwState) = 0;
22545
22546    virtual HRESULT STDMETHODCALLTYPE SetControlState(
22547        DWORD dwIDCtl,
22548        CDCONTROLSTATEF dwState) = 0;
22549
22550    virtual HRESULT STDMETHODCALLTYPE GetEditBoxText(
22551        DWORD dwIDCtl,
22552        WCHAR **ppszText) = 0;
22553
22554    virtual HRESULT STDMETHODCALLTYPE SetEditBoxText(
22555        DWORD dwIDCtl,
22556        LPCWSTR pszText) = 0;
22557
22558    virtual HRESULT STDMETHODCALLTYPE GetCheckButtonState(
22559        DWORD dwIDCtl,
22560        WINBOOL *pbChecked) = 0;
22561
22562    virtual HRESULT STDMETHODCALLTYPE SetCheckButtonState(
22563        DWORD dwIDCtl,
22564        WINBOOL bChecked) = 0;
22565
22566    virtual HRESULT STDMETHODCALLTYPE AddControlItem(
22567        DWORD dwIDCtl,
22568        DWORD dwIDItem,
22569        LPCWSTR pszLabel) = 0;
22570
22571    virtual HRESULT STDMETHODCALLTYPE RemoveControlItem(
22572        DWORD dwIDCtl,
22573        DWORD dwIDItem) = 0;
22574
22575    virtual HRESULT STDMETHODCALLTYPE RemoveAllControlItems(
22576        DWORD dwIDCtl) = 0;
22577
22578    virtual HRESULT STDMETHODCALLTYPE GetControlItemState(
22579        DWORD dwIDCtl,
22580        DWORD dwIDItem,
22581        CDCONTROLSTATEF *pdwState) = 0;
22582
22583    virtual HRESULT STDMETHODCALLTYPE SetControlItemState(
22584        DWORD dwIDCtl,
22585        DWORD dwIDItem,
22586        CDCONTROLSTATEF dwState) = 0;
22587
22588    virtual HRESULT STDMETHODCALLTYPE GetSelectedControlItem(
22589        DWORD dwIDCtl,
22590        DWORD *pdwIDItem) = 0;
22591
22592    virtual HRESULT STDMETHODCALLTYPE SetSelectedControlItem(
22593        DWORD dwIDCtl,
22594        DWORD dwIDItem) = 0;
22595
22596    virtual HRESULT STDMETHODCALLTYPE StartVisualGroup(
22597        DWORD dwIDCtl,
22598        LPCWSTR pszLabel) = 0;
22599
22600    virtual HRESULT STDMETHODCALLTYPE EndVisualGroup(
22601        ) = 0;
22602
22603    virtual HRESULT STDMETHODCALLTYPE MakeProminent(
22604        DWORD dwIDCtl) = 0;
22605
22606    virtual HRESULT STDMETHODCALLTYPE SetControlItemText(
22607        DWORD dwIDCtl,
22608        DWORD dwIDItem,
22609        LPCWSTR pszLabel) = 0;
22610
22611};
22612#ifdef __CRT_UUID_DECL
22613__CRT_UUID_DECL(IFileDialogCustomize, 0xe6fdd21a, 0x163f, 0x4975, 0x9c,0x8c, 0xa6,0x9f,0x1b,0xa3,0x70,0x34)
22614#endif
22615#else
22616typedef struct IFileDialogCustomizeVtbl {
22617    BEGIN_INTERFACE
22618
22619    /*** IUnknown methods ***/
22620    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22621        IFileDialogCustomize *This,
22622        REFIID riid,
22623        void **ppvObject);
22624
22625    ULONG (STDMETHODCALLTYPE *AddRef)(
22626        IFileDialogCustomize *This);
22627
22628    ULONG (STDMETHODCALLTYPE *Release)(
22629        IFileDialogCustomize *This);
22630
22631    /*** IFileDialogCustomize methods ***/
22632    HRESULT (STDMETHODCALLTYPE *EnableOpenDropDown)(
22633        IFileDialogCustomize *This,
22634        DWORD dwIDCtl);
22635
22636    HRESULT (STDMETHODCALLTYPE *AddMenu)(
22637        IFileDialogCustomize *This,
22638        DWORD dwIDCtl,
22639        LPCWSTR pszLabel);
22640
22641    HRESULT (STDMETHODCALLTYPE *AddPushButton)(
22642        IFileDialogCustomize *This,
22643        DWORD dwIDCtl,
22644        LPCWSTR pszLabel);
22645
22646    HRESULT (STDMETHODCALLTYPE *AddComboBox)(
22647        IFileDialogCustomize *This,
22648        DWORD dwIDCtl);
22649
22650    HRESULT (STDMETHODCALLTYPE *AddRadioButtonList)(
22651        IFileDialogCustomize *This,
22652        DWORD dwIDCtl);
22653
22654    HRESULT (STDMETHODCALLTYPE *AddCheckButton)(
22655        IFileDialogCustomize *This,
22656        DWORD dwIDCtl,
22657        LPCWSTR pszLabel,
22658        WINBOOL bChecked);
22659
22660    HRESULT (STDMETHODCALLTYPE *AddEditBox)(
22661        IFileDialogCustomize *This,
22662        DWORD dwIDCtl,
22663        LPCWSTR pszText);
22664
22665    HRESULT (STDMETHODCALLTYPE *AddSeparator)(
22666        IFileDialogCustomize *This,
22667        DWORD dwIDCtl);
22668
22669    HRESULT (STDMETHODCALLTYPE *AddText)(
22670        IFileDialogCustomize *This,
22671        DWORD dwIDCtl,
22672        LPCWSTR pszText);
22673
22674    HRESULT (STDMETHODCALLTYPE *SetControlLabel)(
22675        IFileDialogCustomize *This,
22676        DWORD dwIDCtl,
22677        LPCWSTR pszLabel);
22678
22679    HRESULT (STDMETHODCALLTYPE *GetControlState)(
22680        IFileDialogCustomize *This,
22681        DWORD dwIDCtl,
22682        CDCONTROLSTATEF *pdwState);
22683
22684    HRESULT (STDMETHODCALLTYPE *SetControlState)(
22685        IFileDialogCustomize *This,
22686        DWORD dwIDCtl,
22687        CDCONTROLSTATEF dwState);
22688
22689    HRESULT (STDMETHODCALLTYPE *GetEditBoxText)(
22690        IFileDialogCustomize *This,
22691        DWORD dwIDCtl,
22692        WCHAR **ppszText);
22693
22694    HRESULT (STDMETHODCALLTYPE *SetEditBoxText)(
22695        IFileDialogCustomize *This,
22696        DWORD dwIDCtl,
22697        LPCWSTR pszText);
22698
22699    HRESULT (STDMETHODCALLTYPE *GetCheckButtonState)(
22700        IFileDialogCustomize *This,
22701        DWORD dwIDCtl,
22702        WINBOOL *pbChecked);
22703
22704    HRESULT (STDMETHODCALLTYPE *SetCheckButtonState)(
22705        IFileDialogCustomize *This,
22706        DWORD dwIDCtl,
22707        WINBOOL bChecked);
22708
22709    HRESULT (STDMETHODCALLTYPE *AddControlItem)(
22710        IFileDialogCustomize *This,
22711        DWORD dwIDCtl,
22712        DWORD dwIDItem,
22713        LPCWSTR pszLabel);
22714
22715    HRESULT (STDMETHODCALLTYPE *RemoveControlItem)(
22716        IFileDialogCustomize *This,
22717        DWORD dwIDCtl,
22718        DWORD dwIDItem);
22719
22720    HRESULT (STDMETHODCALLTYPE *RemoveAllControlItems)(
22721        IFileDialogCustomize *This,
22722        DWORD dwIDCtl);
22723
22724    HRESULT (STDMETHODCALLTYPE *GetControlItemState)(
22725        IFileDialogCustomize *This,
22726        DWORD dwIDCtl,
22727        DWORD dwIDItem,
22728        CDCONTROLSTATEF *pdwState);
22729
22730    HRESULT (STDMETHODCALLTYPE *SetControlItemState)(
22731        IFileDialogCustomize *This,
22732        DWORD dwIDCtl,
22733        DWORD dwIDItem,
22734        CDCONTROLSTATEF dwState);
22735
22736    HRESULT (STDMETHODCALLTYPE *GetSelectedControlItem)(
22737        IFileDialogCustomize *This,
22738        DWORD dwIDCtl,
22739        DWORD *pdwIDItem);
22740
22741    HRESULT (STDMETHODCALLTYPE *SetSelectedControlItem)(
22742        IFileDialogCustomize *This,
22743        DWORD dwIDCtl,
22744        DWORD dwIDItem);
22745
22746    HRESULT (STDMETHODCALLTYPE *StartVisualGroup)(
22747        IFileDialogCustomize *This,
22748        DWORD dwIDCtl,
22749        LPCWSTR pszLabel);
22750
22751    HRESULT (STDMETHODCALLTYPE *EndVisualGroup)(
22752        IFileDialogCustomize *This);
22753
22754    HRESULT (STDMETHODCALLTYPE *MakeProminent)(
22755        IFileDialogCustomize *This,
22756        DWORD dwIDCtl);
22757
22758    HRESULT (STDMETHODCALLTYPE *SetControlItemText)(
22759        IFileDialogCustomize *This,
22760        DWORD dwIDCtl,
22761        DWORD dwIDItem,
22762        LPCWSTR pszLabel);
22763
22764    END_INTERFACE
22765} IFileDialogCustomizeVtbl;
22766
22767interface IFileDialogCustomize {
22768    CONST_VTBL IFileDialogCustomizeVtbl* lpVtbl;
22769};
22770
22771#ifdef COBJMACROS
22772#ifndef WIDL_C_INLINE_WRAPPERS
22773/*** IUnknown methods ***/
22774#define IFileDialogCustomize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22775#define IFileDialogCustomize_AddRef(This) (This)->lpVtbl->AddRef(This)
22776#define IFileDialogCustomize_Release(This) (This)->lpVtbl->Release(This)
22777/*** IFileDialogCustomize methods ***/
22778#define IFileDialogCustomize_EnableOpenDropDown(This,dwIDCtl) (This)->lpVtbl->EnableOpenDropDown(This,dwIDCtl)
22779#define IFileDialogCustomize_AddMenu(This,dwIDCtl,pszLabel) (This)->lpVtbl->AddMenu(This,dwIDCtl,pszLabel)
22780#define IFileDialogCustomize_AddPushButton(This,dwIDCtl,pszLabel) (This)->lpVtbl->AddPushButton(This,dwIDCtl,pszLabel)
22781#define IFileDialogCustomize_AddComboBox(This,dwIDCtl) (This)->lpVtbl->AddComboBox(This,dwIDCtl)
22782#define IFileDialogCustomize_AddRadioButtonList(This,dwIDCtl) (This)->lpVtbl->AddRadioButtonList(This,dwIDCtl)
22783#define IFileDialogCustomize_AddCheckButton(This,dwIDCtl,pszLabel,bChecked) (This)->lpVtbl->AddCheckButton(This,dwIDCtl,pszLabel,bChecked)
22784#define IFileDialogCustomize_AddEditBox(This,dwIDCtl,pszText) (This)->lpVtbl->AddEditBox(This,dwIDCtl,pszText)
22785#define IFileDialogCustomize_AddSeparator(This,dwIDCtl) (This)->lpVtbl->AddSeparator(This,dwIDCtl)
22786#define IFileDialogCustomize_AddText(This,dwIDCtl,pszText) (This)->lpVtbl->AddText(This,dwIDCtl,pszText)
22787#define IFileDialogCustomize_SetControlLabel(This,dwIDCtl,pszLabel) (This)->lpVtbl->SetControlLabel(This,dwIDCtl,pszLabel)
22788#define IFileDialogCustomize_GetControlState(This,dwIDCtl,pdwState) (This)->lpVtbl->GetControlState(This,dwIDCtl,pdwState)
22789#define IFileDialogCustomize_SetControlState(This,dwIDCtl,dwState) (This)->lpVtbl->SetControlState(This,dwIDCtl,dwState)
22790#define IFileDialogCustomize_GetEditBoxText(This,dwIDCtl,ppszText) (This)->lpVtbl->GetEditBoxText(This,dwIDCtl,ppszText)
22791#define IFileDialogCustomize_SetEditBoxText(This,dwIDCtl,pszText) (This)->lpVtbl->SetEditBoxText(This,dwIDCtl,pszText)
22792#define IFileDialogCustomize_GetCheckButtonState(This,dwIDCtl,pbChecked) (This)->lpVtbl->GetCheckButtonState(This,dwIDCtl,pbChecked)
22793#define IFileDialogCustomize_SetCheckButtonState(This,dwIDCtl,bChecked) (This)->lpVtbl->SetCheckButtonState(This,dwIDCtl,bChecked)
22794#define IFileDialogCustomize_AddControlItem(This,dwIDCtl,dwIDItem,pszLabel) (This)->lpVtbl->AddControlItem(This,dwIDCtl,dwIDItem,pszLabel)
22795#define IFileDialogCustomize_RemoveControlItem(This,dwIDCtl,dwIDItem) (This)->lpVtbl->RemoveControlItem(This,dwIDCtl,dwIDItem)
22796#define IFileDialogCustomize_RemoveAllControlItems(This,dwIDCtl) (This)->lpVtbl->RemoveAllControlItems(This,dwIDCtl)
22797#define IFileDialogCustomize_GetControlItemState(This,dwIDCtl,dwIDItem,pdwState) (This)->lpVtbl->GetControlItemState(This,dwIDCtl,dwIDItem,pdwState)
22798#define IFileDialogCustomize_SetControlItemState(This,dwIDCtl,dwIDItem,dwState) (This)->lpVtbl->SetControlItemState(This,dwIDCtl,dwIDItem,dwState)
22799#define IFileDialogCustomize_GetSelectedControlItem(This,dwIDCtl,pdwIDItem) (This)->lpVtbl->GetSelectedControlItem(This,dwIDCtl,pdwIDItem)
22800#define IFileDialogCustomize_SetSelectedControlItem(This,dwIDCtl,dwIDItem) (This)->lpVtbl->SetSelectedControlItem(This,dwIDCtl,dwIDItem)
22801#define IFileDialogCustomize_StartVisualGroup(This,dwIDCtl,pszLabel) (This)->lpVtbl->StartVisualGroup(This,dwIDCtl,pszLabel)
22802#define IFileDialogCustomize_EndVisualGroup(This) (This)->lpVtbl->EndVisualGroup(This)
22803#define IFileDialogCustomize_MakeProminent(This,dwIDCtl) (This)->lpVtbl->MakeProminent(This,dwIDCtl)
22804#define IFileDialogCustomize_SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel) (This)->lpVtbl->SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel)
22805#else
22806/*** IUnknown methods ***/
22807static inline HRESULT IFileDialogCustomize_QueryInterface(IFileDialogCustomize* This,REFIID riid,void **ppvObject) {
22808    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
22809}
22810static inline ULONG IFileDialogCustomize_AddRef(IFileDialogCustomize* This) {
22811    return This->lpVtbl->AddRef(This);
22812}
22813static inline ULONG IFileDialogCustomize_Release(IFileDialogCustomize* This) {
22814    return This->lpVtbl->Release(This);
22815}
22816/*** IFileDialogCustomize methods ***/
22817static inline HRESULT IFileDialogCustomize_EnableOpenDropDown(IFileDialogCustomize* This,DWORD dwIDCtl) {
22818    return This->lpVtbl->EnableOpenDropDown(This,dwIDCtl);
22819}
22820static inline HRESULT IFileDialogCustomize_AddMenu(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
22821    return This->lpVtbl->AddMenu(This,dwIDCtl,pszLabel);
22822}
22823static inline HRESULT IFileDialogCustomize_AddPushButton(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
22824    return This->lpVtbl->AddPushButton(This,dwIDCtl,pszLabel);
22825}
22826static inline HRESULT IFileDialogCustomize_AddComboBox(IFileDialogCustomize* This,DWORD dwIDCtl) {
22827    return This->lpVtbl->AddComboBox(This,dwIDCtl);
22828}
22829static inline HRESULT IFileDialogCustomize_AddRadioButtonList(IFileDialogCustomize* This,DWORD dwIDCtl) {
22830    return This->lpVtbl->AddRadioButtonList(This,dwIDCtl);
22831}
22832static inline HRESULT IFileDialogCustomize_AddCheckButton(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel,WINBOOL bChecked) {
22833    return This->lpVtbl->AddCheckButton(This,dwIDCtl,pszLabel,bChecked);
22834}
22835static inline HRESULT IFileDialogCustomize_AddEditBox(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszText) {
22836    return This->lpVtbl->AddEditBox(This,dwIDCtl,pszText);
22837}
22838static inline HRESULT IFileDialogCustomize_AddSeparator(IFileDialogCustomize* This,DWORD dwIDCtl) {
22839    return This->lpVtbl->AddSeparator(This,dwIDCtl);
22840}
22841static inline HRESULT IFileDialogCustomize_AddText(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszText) {
22842    return This->lpVtbl->AddText(This,dwIDCtl,pszText);
22843}
22844static inline HRESULT IFileDialogCustomize_SetControlLabel(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
22845    return This->lpVtbl->SetControlLabel(This,dwIDCtl,pszLabel);
22846}
22847static inline HRESULT IFileDialogCustomize_GetControlState(IFileDialogCustomize* This,DWORD dwIDCtl,CDCONTROLSTATEF *pdwState) {
22848    return This->lpVtbl->GetControlState(This,dwIDCtl,pdwState);
22849}
22850static inline HRESULT IFileDialogCustomize_SetControlState(IFileDialogCustomize* This,DWORD dwIDCtl,CDCONTROLSTATEF dwState) {
22851    return This->lpVtbl->SetControlState(This,dwIDCtl,dwState);
22852}
22853static inline HRESULT IFileDialogCustomize_GetEditBoxText(IFileDialogCustomize* This,DWORD dwIDCtl,WCHAR **ppszText) {
22854    return This->lpVtbl->GetEditBoxText(This,dwIDCtl,ppszText);
22855}
22856static inline HRESULT IFileDialogCustomize_SetEditBoxText(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszText) {
22857    return This->lpVtbl->SetEditBoxText(This,dwIDCtl,pszText);
22858}
22859static inline HRESULT IFileDialogCustomize_GetCheckButtonState(IFileDialogCustomize* This,DWORD dwIDCtl,WINBOOL *pbChecked) {
22860    return This->lpVtbl->GetCheckButtonState(This,dwIDCtl,pbChecked);
22861}
22862static inline HRESULT IFileDialogCustomize_SetCheckButtonState(IFileDialogCustomize* This,DWORD dwIDCtl,WINBOOL bChecked) {
22863    return This->lpVtbl->SetCheckButtonState(This,dwIDCtl,bChecked);
22864}
22865static inline HRESULT IFileDialogCustomize_AddControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,LPCWSTR pszLabel) {
22866    return This->lpVtbl->AddControlItem(This,dwIDCtl,dwIDItem,pszLabel);
22867}
22868static inline HRESULT IFileDialogCustomize_RemoveControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem) {
22869    return This->lpVtbl->RemoveControlItem(This,dwIDCtl,dwIDItem);
22870}
22871static inline HRESULT IFileDialogCustomize_RemoveAllControlItems(IFileDialogCustomize* This,DWORD dwIDCtl) {
22872    return This->lpVtbl->RemoveAllControlItems(This,dwIDCtl);
22873}
22874static inline HRESULT IFileDialogCustomize_GetControlItemState(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,CDCONTROLSTATEF *pdwState) {
22875    return This->lpVtbl->GetControlItemState(This,dwIDCtl,dwIDItem,pdwState);
22876}
22877static inline HRESULT IFileDialogCustomize_SetControlItemState(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,CDCONTROLSTATEF dwState) {
22878    return This->lpVtbl->SetControlItemState(This,dwIDCtl,dwIDItem,dwState);
22879}
22880static inline HRESULT IFileDialogCustomize_GetSelectedControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD *pdwIDItem) {
22881    return This->lpVtbl->GetSelectedControlItem(This,dwIDCtl,pdwIDItem);
22882}
22883static inline HRESULT IFileDialogCustomize_SetSelectedControlItem(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem) {
22884    return This->lpVtbl->SetSelectedControlItem(This,dwIDCtl,dwIDItem);
22885}
22886static inline HRESULT IFileDialogCustomize_StartVisualGroup(IFileDialogCustomize* This,DWORD dwIDCtl,LPCWSTR pszLabel) {
22887    return This->lpVtbl->StartVisualGroup(This,dwIDCtl,pszLabel);
22888}
22889static inline HRESULT IFileDialogCustomize_EndVisualGroup(IFileDialogCustomize* This) {
22890    return This->lpVtbl->EndVisualGroup(This);
22891}
22892static inline HRESULT IFileDialogCustomize_MakeProminent(IFileDialogCustomize* This,DWORD dwIDCtl) {
22893    return This->lpVtbl->MakeProminent(This,dwIDCtl);
22894}
22895static inline HRESULT IFileDialogCustomize_SetControlItemText(IFileDialogCustomize* This,DWORD dwIDCtl,DWORD dwIDItem,LPCWSTR pszLabel) {
22896    return This->lpVtbl->SetControlItemText(This,dwIDCtl,dwIDItem,pszLabel);
22897}
22898#endif
22899#endif
22900
22901#endif
22902
22903
22904#endif  /* __IFileDialogCustomize_INTERFACE_DEFINED__ */
22905
22906
22907/*****************************************************************************
22908 * IFileDialogControlEvents interface
22909 */
22910#ifndef __IFileDialogControlEvents_INTERFACE_DEFINED__
22911#define __IFileDialogControlEvents_INTERFACE_DEFINED__
22912
22913DEFINE_GUID(IID_IFileDialogControlEvents, 0x36116642, 0xd713, 0x4b97, 0x9b,0x83, 0x74,0x84,0xa9,0xd0,0x04,0x33);
22914#if defined(__cplusplus) && !defined(CINTERFACE)
22915MIDL_INTERFACE("36116642-d713-4b97-9b83-7484a9d00433")
22916IFileDialogControlEvents : public IUnknown
22917{
22918    virtual HRESULT STDMETHODCALLTYPE OnItemSelected(
22919        IFileDialogCustomize *pfdc,
22920        DWORD dwIDCtl,
22921        DWORD dwIDItem) = 0;
22922
22923    virtual HRESULT STDMETHODCALLTYPE OnButtonClicked(
22924        IFileDialogCustomize *pfdc,
22925        DWORD dwIDCtl) = 0;
22926
22927    virtual HRESULT STDMETHODCALLTYPE OnCheckButtonToggled(
22928        IFileDialogCustomize *pfdc,
22929        DWORD dwIDCtl,
22930        WINBOOL bChecked) = 0;
22931
22932    virtual HRESULT STDMETHODCALLTYPE OnControlActivating(
22933        IFileDialogCustomize *pfdc,
22934        DWORD dwIDCtl) = 0;
22935
22936};
22937#ifdef __CRT_UUID_DECL
22938__CRT_UUID_DECL(IFileDialogControlEvents, 0x36116642, 0xd713, 0x4b97, 0x9b,0x83, 0x74,0x84,0xa9,0xd0,0x04,0x33)
22939#endif
22940#else
22941typedef struct IFileDialogControlEventsVtbl {
22942    BEGIN_INTERFACE
22943
22944    /*** IUnknown methods ***/
22945    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
22946        IFileDialogControlEvents *This,
22947        REFIID riid,
22948        void **ppvObject);
22949
22950    ULONG (STDMETHODCALLTYPE *AddRef)(
22951        IFileDialogControlEvents *This);
22952
22953    ULONG (STDMETHODCALLTYPE *Release)(
22954        IFileDialogControlEvents *This);
22955
22956    /*** IFileDialogControlEvents methods ***/
22957    HRESULT (STDMETHODCALLTYPE *OnItemSelected)(
22958        IFileDialogControlEvents *This,
22959        IFileDialogCustomize *pfdc,
22960        DWORD dwIDCtl,
22961        DWORD dwIDItem);
22962
22963    HRESULT (STDMETHODCALLTYPE *OnButtonClicked)(
22964        IFileDialogControlEvents *This,
22965        IFileDialogCustomize *pfdc,
22966        DWORD dwIDCtl);
22967
22968    HRESULT (STDMETHODCALLTYPE *OnCheckButtonToggled)(
22969        IFileDialogControlEvents *This,
22970        IFileDialogCustomize *pfdc,
22971        DWORD dwIDCtl,
22972        WINBOOL bChecked);
22973
22974    HRESULT (STDMETHODCALLTYPE *OnControlActivating)(
22975        IFileDialogControlEvents *This,
22976        IFileDialogCustomize *pfdc,
22977        DWORD dwIDCtl);
22978
22979    END_INTERFACE
22980} IFileDialogControlEventsVtbl;
22981
22982interface IFileDialogControlEvents {
22983    CONST_VTBL IFileDialogControlEventsVtbl* lpVtbl;
22984};
22985
22986#ifdef COBJMACROS
22987#ifndef WIDL_C_INLINE_WRAPPERS
22988/*** IUnknown methods ***/
22989#define IFileDialogControlEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
22990#define IFileDialogControlEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
22991#define IFileDialogControlEvents_Release(This) (This)->lpVtbl->Release(This)
22992/*** IFileDialogControlEvents methods ***/
22993#define IFileDialogControlEvents_OnItemSelected(This,pfdc,dwIDCtl,dwIDItem) (This)->lpVtbl->OnItemSelected(This,pfdc,dwIDCtl,dwIDItem)
22994#define IFileDialogControlEvents_OnButtonClicked(This,pfdc,dwIDCtl) (This)->lpVtbl->OnButtonClicked(This,pfdc,dwIDCtl)
22995#define IFileDialogControlEvents_OnCheckButtonToggled(This,pfdc,dwIDCtl,bChecked) (This)->lpVtbl->OnCheckButtonToggled(This,pfdc,dwIDCtl,bChecked)
22996#define IFileDialogControlEvents_OnControlActivating(This,pfdc,dwIDCtl) (This)->lpVtbl->OnControlActivating(This,pfdc,dwIDCtl)
22997#else
22998/*** IUnknown methods ***/
22999static inline HRESULT IFileDialogControlEvents_QueryInterface(IFileDialogControlEvents* This,REFIID riid,void **ppvObject) {
23000    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23001}
23002static inline ULONG IFileDialogControlEvents_AddRef(IFileDialogControlEvents* This) {
23003    return This->lpVtbl->AddRef(This);
23004}
23005static inline ULONG IFileDialogControlEvents_Release(IFileDialogControlEvents* This) {
23006    return This->lpVtbl->Release(This);
23007}
23008/*** IFileDialogControlEvents methods ***/
23009static inline HRESULT IFileDialogControlEvents_OnItemSelected(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl,DWORD dwIDItem) {
23010    return This->lpVtbl->OnItemSelected(This,pfdc,dwIDCtl,dwIDItem);
23011}
23012static inline HRESULT IFileDialogControlEvents_OnButtonClicked(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl) {
23013    return This->lpVtbl->OnButtonClicked(This,pfdc,dwIDCtl);
23014}
23015static inline HRESULT IFileDialogControlEvents_OnCheckButtonToggled(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl,WINBOOL bChecked) {
23016    return This->lpVtbl->OnCheckButtonToggled(This,pfdc,dwIDCtl,bChecked);
23017}
23018static inline HRESULT IFileDialogControlEvents_OnControlActivating(IFileDialogControlEvents* This,IFileDialogCustomize *pfdc,DWORD dwIDCtl) {
23019    return This->lpVtbl->OnControlActivating(This,pfdc,dwIDCtl);
23020}
23021#endif
23022#endif
23023
23024#endif
23025
23026
23027#endif  /* __IFileDialogControlEvents_INTERFACE_DEFINED__ */
23028
23029
23030/*****************************************************************************
23031 * IFileDialog2 interface
23032 */
23033#ifndef __IFileDialog2_INTERFACE_DEFINED__
23034#define __IFileDialog2_INTERFACE_DEFINED__
23035
23036DEFINE_GUID(IID_IFileDialog2, 0x61744fc7, 0x85b5, 0x4791, 0xa9,0xb0, 0x27,0x22,0x76,0x30,0x9b,0x13);
23037#if defined(__cplusplus) && !defined(CINTERFACE)
23038MIDL_INTERFACE("61744fc7-85b5-4791-a9b0-272276309b13")
23039IFileDialog2 : public IFileDialog
23040{
23041    virtual HRESULT STDMETHODCALLTYPE SetCancelButtonLabel(
23042        LPCWSTR pszLabel) = 0;
23043
23044    virtual HRESULT STDMETHODCALLTYPE SetNavigationRoot(
23045        IShellItem *psi) = 0;
23046
23047};
23048#ifdef __CRT_UUID_DECL
23049__CRT_UUID_DECL(IFileDialog2, 0x61744fc7, 0x85b5, 0x4791, 0xa9,0xb0, 0x27,0x22,0x76,0x30,0x9b,0x13)
23050#endif
23051#else
23052typedef struct IFileDialog2Vtbl {
23053    BEGIN_INTERFACE
23054
23055    /*** IUnknown methods ***/
23056    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23057        IFileDialog2 *This,
23058        REFIID riid,
23059        void **ppvObject);
23060
23061    ULONG (STDMETHODCALLTYPE *AddRef)(
23062        IFileDialog2 *This);
23063
23064    ULONG (STDMETHODCALLTYPE *Release)(
23065        IFileDialog2 *This);
23066
23067    /*** IModalWindow methods ***/
23068    HRESULT (STDMETHODCALLTYPE *Show)(
23069        IFileDialog2 *This,
23070        HWND hwndOwner);
23071
23072    /*** IFileDialog methods ***/
23073    HRESULT (STDMETHODCALLTYPE *SetFileTypes)(
23074        IFileDialog2 *This,
23075        UINT cFileTypes,
23076        const COMDLG_FILTERSPEC *rgFilterSpec);
23077
23078    HRESULT (STDMETHODCALLTYPE *SetFileTypeIndex)(
23079        IFileDialog2 *This,
23080        UINT iFileType);
23081
23082    HRESULT (STDMETHODCALLTYPE *GetFileTypeIndex)(
23083        IFileDialog2 *This,
23084        UINT *piFileType);
23085
23086    HRESULT (STDMETHODCALLTYPE *Advise)(
23087        IFileDialog2 *This,
23088        IFileDialogEvents *pfde,
23089        DWORD *pdwCookie);
23090
23091    HRESULT (STDMETHODCALLTYPE *Unadvise)(
23092        IFileDialog2 *This,
23093        DWORD dwCookie);
23094
23095    HRESULT (STDMETHODCALLTYPE *SetOptions)(
23096        IFileDialog2 *This,
23097        FILEOPENDIALOGOPTIONS fos);
23098
23099    HRESULT (STDMETHODCALLTYPE *GetOptions)(
23100        IFileDialog2 *This,
23101        FILEOPENDIALOGOPTIONS *pfos);
23102
23103    HRESULT (STDMETHODCALLTYPE *SetDefaultFolder)(
23104        IFileDialog2 *This,
23105        IShellItem *psi);
23106
23107    HRESULT (STDMETHODCALLTYPE *SetFolder)(
23108        IFileDialog2 *This,
23109        IShellItem *psi);
23110
23111    HRESULT (STDMETHODCALLTYPE *GetFolder)(
23112        IFileDialog2 *This,
23113        IShellItem **ppsi);
23114
23115    HRESULT (STDMETHODCALLTYPE *GetCurrentSelection)(
23116        IFileDialog2 *This,
23117        IShellItem **ppsi);
23118
23119    HRESULT (STDMETHODCALLTYPE *SetFileName)(
23120        IFileDialog2 *This,
23121        LPCWSTR pszName);
23122
23123    HRESULT (STDMETHODCALLTYPE *GetFileName)(
23124        IFileDialog2 *This,
23125        LPWSTR *pszName);
23126
23127    HRESULT (STDMETHODCALLTYPE *SetTitle)(
23128        IFileDialog2 *This,
23129        LPCWSTR pszTitle);
23130
23131    HRESULT (STDMETHODCALLTYPE *SetOkButtonLabel)(
23132        IFileDialog2 *This,
23133        LPCWSTR pszText);
23134
23135    HRESULT (STDMETHODCALLTYPE *SetFileNameLabel)(
23136        IFileDialog2 *This,
23137        LPCWSTR pszLabel);
23138
23139    HRESULT (STDMETHODCALLTYPE *GetResult)(
23140        IFileDialog2 *This,
23141        IShellItem **ppsi);
23142
23143    HRESULT (STDMETHODCALLTYPE *AddPlace)(
23144        IFileDialog2 *This,
23145        IShellItem *psi,
23146        FDAP fdap);
23147
23148    HRESULT (STDMETHODCALLTYPE *SetDefaultExtension)(
23149        IFileDialog2 *This,
23150        LPCWSTR pszDefaultExtension);
23151
23152    HRESULT (STDMETHODCALLTYPE *Close)(
23153        IFileDialog2 *This,
23154        HRESULT hr);
23155
23156    HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
23157        IFileDialog2 *This,
23158        REFGUID guid);
23159
23160    HRESULT (STDMETHODCALLTYPE *ClearClientData)(
23161        IFileDialog2 *This);
23162
23163    HRESULT (STDMETHODCALLTYPE *SetFilter)(
23164        IFileDialog2 *This,
23165        IShellItemFilter *pFilter);
23166
23167    /*** IFileDialog2 methods ***/
23168    HRESULT (STDMETHODCALLTYPE *SetCancelButtonLabel)(
23169        IFileDialog2 *This,
23170        LPCWSTR pszLabel);
23171
23172    HRESULT (STDMETHODCALLTYPE *SetNavigationRoot)(
23173        IFileDialog2 *This,
23174        IShellItem *psi);
23175
23176    END_INTERFACE
23177} IFileDialog2Vtbl;
23178
23179interface IFileDialog2 {
23180    CONST_VTBL IFileDialog2Vtbl* lpVtbl;
23181};
23182
23183#ifdef COBJMACROS
23184#ifndef WIDL_C_INLINE_WRAPPERS
23185/*** IUnknown methods ***/
23186#define IFileDialog2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23187#define IFileDialog2_AddRef(This) (This)->lpVtbl->AddRef(This)
23188#define IFileDialog2_Release(This) (This)->lpVtbl->Release(This)
23189/*** IModalWindow methods ***/
23190#define IFileDialog2_Show(This,hwndOwner) (This)->lpVtbl->Show(This,hwndOwner)
23191/*** IFileDialog methods ***/
23192#define IFileDialog2_SetFileTypes(This,cFileTypes,rgFilterSpec) (This)->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec)
23193#define IFileDialog2_SetFileTypeIndex(This,iFileType) (This)->lpVtbl->SetFileTypeIndex(This,iFileType)
23194#define IFileDialog2_GetFileTypeIndex(This,piFileType) (This)->lpVtbl->GetFileTypeIndex(This,piFileType)
23195#define IFileDialog2_Advise(This,pfde,pdwCookie) (This)->lpVtbl->Advise(This,pfde,pdwCookie)
23196#define IFileDialog2_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
23197#define IFileDialog2_SetOptions(This,fos) (This)->lpVtbl->SetOptions(This,fos)
23198#define IFileDialog2_GetOptions(This,pfos) (This)->lpVtbl->GetOptions(This,pfos)
23199#define IFileDialog2_SetDefaultFolder(This,psi) (This)->lpVtbl->SetDefaultFolder(This,psi)
23200#define IFileDialog2_SetFolder(This,psi) (This)->lpVtbl->SetFolder(This,psi)
23201#define IFileDialog2_GetFolder(This,ppsi) (This)->lpVtbl->GetFolder(This,ppsi)
23202#define IFileDialog2_GetCurrentSelection(This,ppsi) (This)->lpVtbl->GetCurrentSelection(This,ppsi)
23203#define IFileDialog2_SetFileName(This,pszName) (This)->lpVtbl->SetFileName(This,pszName)
23204#define IFileDialog2_GetFileName(This,pszName) (This)->lpVtbl->GetFileName(This,pszName)
23205#define IFileDialog2_SetTitle(This,pszTitle) (This)->lpVtbl->SetTitle(This,pszTitle)
23206#define IFileDialog2_SetOkButtonLabel(This,pszText) (This)->lpVtbl->SetOkButtonLabel(This,pszText)
23207#define IFileDialog2_SetFileNameLabel(This,pszLabel) (This)->lpVtbl->SetFileNameLabel(This,pszLabel)
23208#define IFileDialog2_GetResult(This,ppsi) (This)->lpVtbl->GetResult(This,ppsi)
23209#define IFileDialog2_AddPlace(This,psi,fdap) (This)->lpVtbl->AddPlace(This,psi,fdap)
23210#define IFileDialog2_SetDefaultExtension(This,pszDefaultExtension) (This)->lpVtbl->SetDefaultExtension(This,pszDefaultExtension)
23211#define IFileDialog2_Close(This,hr) (This)->lpVtbl->Close(This,hr)
23212#define IFileDialog2_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
23213#define IFileDialog2_ClearClientData(This) (This)->lpVtbl->ClearClientData(This)
23214#define IFileDialog2_SetFilter(This,pFilter) (This)->lpVtbl->SetFilter(This,pFilter)
23215/*** IFileDialog2 methods ***/
23216#define IFileDialog2_SetCancelButtonLabel(This,pszLabel) (This)->lpVtbl->SetCancelButtonLabel(This,pszLabel)
23217#define IFileDialog2_SetNavigationRoot(This,psi) (This)->lpVtbl->SetNavigationRoot(This,psi)
23218#else
23219/*** IUnknown methods ***/
23220static inline HRESULT IFileDialog2_QueryInterface(IFileDialog2* This,REFIID riid,void **ppvObject) {
23221    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23222}
23223static inline ULONG IFileDialog2_AddRef(IFileDialog2* This) {
23224    return This->lpVtbl->AddRef(This);
23225}
23226static inline ULONG IFileDialog2_Release(IFileDialog2* This) {
23227    return This->lpVtbl->Release(This);
23228}
23229/*** IModalWindow methods ***/
23230static inline HRESULT IFileDialog2_Show(IFileDialog2* This,HWND hwndOwner) {
23231    return This->lpVtbl->Show(This,hwndOwner);
23232}
23233/*** IFileDialog methods ***/
23234static inline HRESULT IFileDialog2_SetFileTypes(IFileDialog2* This,UINT cFileTypes,const COMDLG_FILTERSPEC *rgFilterSpec) {
23235    return This->lpVtbl->SetFileTypes(This,cFileTypes,rgFilterSpec);
23236}
23237static inline HRESULT IFileDialog2_SetFileTypeIndex(IFileDialog2* This,UINT iFileType) {
23238    return This->lpVtbl->SetFileTypeIndex(This,iFileType);
23239}
23240static inline HRESULT IFileDialog2_GetFileTypeIndex(IFileDialog2* This,UINT *piFileType) {
23241    return This->lpVtbl->GetFileTypeIndex(This,piFileType);
23242}
23243static inline HRESULT IFileDialog2_Advise(IFileDialog2* This,IFileDialogEvents *pfde,DWORD *pdwCookie) {
23244    return This->lpVtbl->Advise(This,pfde,pdwCookie);
23245}
23246static inline HRESULT IFileDialog2_Unadvise(IFileDialog2* This,DWORD dwCookie) {
23247    return This->lpVtbl->Unadvise(This,dwCookie);
23248}
23249static inline HRESULT IFileDialog2_SetOptions(IFileDialog2* This,FILEOPENDIALOGOPTIONS fos) {
23250    return This->lpVtbl->SetOptions(This,fos);
23251}
23252static inline HRESULT IFileDialog2_GetOptions(IFileDialog2* This,FILEOPENDIALOGOPTIONS *pfos) {
23253    return This->lpVtbl->GetOptions(This,pfos);
23254}
23255static inline HRESULT IFileDialog2_SetDefaultFolder(IFileDialog2* This,IShellItem *psi) {
23256    return This->lpVtbl->SetDefaultFolder(This,psi);
23257}
23258static inline HRESULT IFileDialog2_SetFolder(IFileDialog2* This,IShellItem *psi) {
23259    return This->lpVtbl->SetFolder(This,psi);
23260}
23261static inline HRESULT IFileDialog2_GetFolder(IFileDialog2* This,IShellItem **ppsi) {
23262    return This->lpVtbl->GetFolder(This,ppsi);
23263}
23264static inline HRESULT IFileDialog2_GetCurrentSelection(IFileDialog2* This,IShellItem **ppsi) {
23265    return This->lpVtbl->GetCurrentSelection(This,ppsi);
23266}
23267static inline HRESULT IFileDialog2_SetFileName(IFileDialog2* This,LPCWSTR pszName) {
23268    return This->lpVtbl->SetFileName(This,pszName);
23269}
23270static inline HRESULT IFileDialog2_GetFileName(IFileDialog2* This,LPWSTR *pszName) {
23271    return This->lpVtbl->GetFileName(This,pszName);
23272}
23273static inline HRESULT IFileDialog2_SetTitle(IFileDialog2* This,LPCWSTR pszTitle) {
23274    return This->lpVtbl->SetTitle(This,pszTitle);
23275}
23276static inline HRESULT IFileDialog2_SetOkButtonLabel(IFileDialog2* This,LPCWSTR pszText) {
23277    return This->lpVtbl->SetOkButtonLabel(This,pszText);
23278}
23279static inline HRESULT IFileDialog2_SetFileNameLabel(IFileDialog2* This,LPCWSTR pszLabel) {
23280    return This->lpVtbl->SetFileNameLabel(This,pszLabel);
23281}
23282static inline HRESULT IFileDialog2_GetResult(IFileDialog2* This,IShellItem **ppsi) {
23283    return This->lpVtbl->GetResult(This,ppsi);
23284}
23285static inline HRESULT IFileDialog2_AddPlace(IFileDialog2* This,IShellItem *psi,FDAP fdap) {
23286    return This->lpVtbl->AddPlace(This,psi,fdap);
23287}
23288static inline HRESULT IFileDialog2_SetDefaultExtension(IFileDialog2* This,LPCWSTR pszDefaultExtension) {
23289    return This->lpVtbl->SetDefaultExtension(This,pszDefaultExtension);
23290}
23291static inline HRESULT IFileDialog2_Close(IFileDialog2* This,HRESULT hr) {
23292    return This->lpVtbl->Close(This,hr);
23293}
23294static inline HRESULT IFileDialog2_SetClientGuid(IFileDialog2* This,REFGUID guid) {
23295    return This->lpVtbl->SetClientGuid(This,guid);
23296}
23297static inline HRESULT IFileDialog2_ClearClientData(IFileDialog2* This) {
23298    return This->lpVtbl->ClearClientData(This);
23299}
23300static inline HRESULT IFileDialog2_SetFilter(IFileDialog2* This,IShellItemFilter *pFilter) {
23301    return This->lpVtbl->SetFilter(This,pFilter);
23302}
23303/*** IFileDialog2 methods ***/
23304static inline HRESULT IFileDialog2_SetCancelButtonLabel(IFileDialog2* This,LPCWSTR pszLabel) {
23305    return This->lpVtbl->SetCancelButtonLabel(This,pszLabel);
23306}
23307static inline HRESULT IFileDialog2_SetNavigationRoot(IFileDialog2* This,IShellItem *psi) {
23308    return This->lpVtbl->SetNavigationRoot(This,psi);
23309}
23310#endif
23311#endif
23312
23313#endif
23314
23315
23316#endif  /* __IFileDialog2_INTERFACE_DEFINED__ */
23317
23318
23319typedef enum ASSOCIATIONLEVEL {
23320    AL_MACHINE = 0,
23321    AL_EFFECTIVE = 1,
23322    AL_USER = 2
23323} ASSOCIATIONLEVEL;
23324
23325typedef enum ASSOCIATIONTYPE {
23326    AT_FILEEXTENSION = 0,
23327    AT_URLPROTOCOL = 1,
23328    AT_STARTMENUCLIENT = 2,
23329    AT_MIMETYPE = 3
23330} ASSOCIATIONTYPE;
23331
23332/*****************************************************************************
23333 * IApplicationAssociationRegistration interface
23334 */
23335#ifndef __IApplicationAssociationRegistration_INTERFACE_DEFINED__
23336#define __IApplicationAssociationRegistration_INTERFACE_DEFINED__
23337
23338DEFINE_GUID(IID_IApplicationAssociationRegistration, 0x4e530b0a, 0xe611, 0x4c77, 0xa3,0xac, 0x90,0x31,0xd0,0x22,0x28,0x1b);
23339#if defined(__cplusplus) && !defined(CINTERFACE)
23340MIDL_INTERFACE("4e530b0a-e611-4c77-a3ac-9031d022281b")
23341IApplicationAssociationRegistration : public IUnknown
23342{
23343    virtual HRESULT STDMETHODCALLTYPE QueryCurrentDefault(
23344        LPCWSTR pszQuery,
23345        ASSOCIATIONTYPE atQueryType,
23346        ASSOCIATIONLEVEL alQueryLevel,
23347        LPWSTR *ppszAssociation) = 0;
23348
23349    virtual HRESULT STDMETHODCALLTYPE QueryAppIsDefault(
23350        LPCWSTR pszQuery,
23351        ASSOCIATIONTYPE atQueryType,
23352        ASSOCIATIONLEVEL alQueryLevel,
23353        LPCWSTR pszAppRegistryName,
23354        WINBOOL *pfDefault) = 0;
23355
23356    virtual HRESULT STDMETHODCALLTYPE QueryAppIsDefaultAll(
23357        ASSOCIATIONLEVEL alQueryLevel,
23358        LPCWSTR pszAppRegistryName,
23359        WINBOOL *pfDefault) = 0;
23360
23361    virtual HRESULT STDMETHODCALLTYPE SetAppAsDefault(
23362        LPCWSTR pszAppRegistryName,
23363        LPCWSTR pszSet,
23364        ASSOCIATIONTYPE atSetType) = 0;
23365
23366    virtual HRESULT STDMETHODCALLTYPE SetAppAsDefaultAll(
23367        LPCWSTR pszAppRegistryName) = 0;
23368
23369    virtual HRESULT STDMETHODCALLTYPE ClearUserAssociations(
23370        ) = 0;
23371
23372};
23373#ifdef __CRT_UUID_DECL
23374__CRT_UUID_DECL(IApplicationAssociationRegistration, 0x4e530b0a, 0xe611, 0x4c77, 0xa3,0xac, 0x90,0x31,0xd0,0x22,0x28,0x1b)
23375#endif
23376#else
23377typedef struct IApplicationAssociationRegistrationVtbl {
23378    BEGIN_INTERFACE
23379
23380    /*** IUnknown methods ***/
23381    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23382        IApplicationAssociationRegistration *This,
23383        REFIID riid,
23384        void **ppvObject);
23385
23386    ULONG (STDMETHODCALLTYPE *AddRef)(
23387        IApplicationAssociationRegistration *This);
23388
23389    ULONG (STDMETHODCALLTYPE *Release)(
23390        IApplicationAssociationRegistration *This);
23391
23392    /*** IApplicationAssociationRegistration methods ***/
23393    HRESULT (STDMETHODCALLTYPE *QueryCurrentDefault)(
23394        IApplicationAssociationRegistration *This,
23395        LPCWSTR pszQuery,
23396        ASSOCIATIONTYPE atQueryType,
23397        ASSOCIATIONLEVEL alQueryLevel,
23398        LPWSTR *ppszAssociation);
23399
23400    HRESULT (STDMETHODCALLTYPE *QueryAppIsDefault)(
23401        IApplicationAssociationRegistration *This,
23402        LPCWSTR pszQuery,
23403        ASSOCIATIONTYPE atQueryType,
23404        ASSOCIATIONLEVEL alQueryLevel,
23405        LPCWSTR pszAppRegistryName,
23406        WINBOOL *pfDefault);
23407
23408    HRESULT (STDMETHODCALLTYPE *QueryAppIsDefaultAll)(
23409        IApplicationAssociationRegistration *This,
23410        ASSOCIATIONLEVEL alQueryLevel,
23411        LPCWSTR pszAppRegistryName,
23412        WINBOOL *pfDefault);
23413
23414    HRESULT (STDMETHODCALLTYPE *SetAppAsDefault)(
23415        IApplicationAssociationRegistration *This,
23416        LPCWSTR pszAppRegistryName,
23417        LPCWSTR pszSet,
23418        ASSOCIATIONTYPE atSetType);
23419
23420    HRESULT (STDMETHODCALLTYPE *SetAppAsDefaultAll)(
23421        IApplicationAssociationRegistration *This,
23422        LPCWSTR pszAppRegistryName);
23423
23424    HRESULT (STDMETHODCALLTYPE *ClearUserAssociations)(
23425        IApplicationAssociationRegistration *This);
23426
23427    END_INTERFACE
23428} IApplicationAssociationRegistrationVtbl;
23429
23430interface IApplicationAssociationRegistration {
23431    CONST_VTBL IApplicationAssociationRegistrationVtbl* lpVtbl;
23432};
23433
23434#ifdef COBJMACROS
23435#ifndef WIDL_C_INLINE_WRAPPERS
23436/*** IUnknown methods ***/
23437#define IApplicationAssociationRegistration_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23438#define IApplicationAssociationRegistration_AddRef(This) (This)->lpVtbl->AddRef(This)
23439#define IApplicationAssociationRegistration_Release(This) (This)->lpVtbl->Release(This)
23440/*** IApplicationAssociationRegistration methods ***/
23441#define IApplicationAssociationRegistration_QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation) (This)->lpVtbl->QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation)
23442#define IApplicationAssociationRegistration_QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault) (This)->lpVtbl->QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault)
23443#define IApplicationAssociationRegistration_QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault) (This)->lpVtbl->QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault)
23444#define IApplicationAssociationRegistration_SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType) (This)->lpVtbl->SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType)
23445#define IApplicationAssociationRegistration_SetAppAsDefaultAll(This,pszAppRegistryName) (This)->lpVtbl->SetAppAsDefaultAll(This,pszAppRegistryName)
23446#define IApplicationAssociationRegistration_ClearUserAssociations(This) (This)->lpVtbl->ClearUserAssociations(This)
23447#else
23448/*** IUnknown methods ***/
23449static inline HRESULT IApplicationAssociationRegistration_QueryInterface(IApplicationAssociationRegistration* This,REFIID riid,void **ppvObject) {
23450    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23451}
23452static inline ULONG IApplicationAssociationRegistration_AddRef(IApplicationAssociationRegistration* This) {
23453    return This->lpVtbl->AddRef(This);
23454}
23455static inline ULONG IApplicationAssociationRegistration_Release(IApplicationAssociationRegistration* This) {
23456    return This->lpVtbl->Release(This);
23457}
23458/*** IApplicationAssociationRegistration methods ***/
23459static inline HRESULT IApplicationAssociationRegistration_QueryCurrentDefault(IApplicationAssociationRegistration* This,LPCWSTR pszQuery,ASSOCIATIONTYPE atQueryType,ASSOCIATIONLEVEL alQueryLevel,LPWSTR *ppszAssociation) {
23460    return This->lpVtbl->QueryCurrentDefault(This,pszQuery,atQueryType,alQueryLevel,ppszAssociation);
23461}
23462static inline HRESULT IApplicationAssociationRegistration_QueryAppIsDefault(IApplicationAssociationRegistration* This,LPCWSTR pszQuery,ASSOCIATIONTYPE atQueryType,ASSOCIATIONLEVEL alQueryLevel,LPCWSTR pszAppRegistryName,WINBOOL *pfDefault) {
23463    return This->lpVtbl->QueryAppIsDefault(This,pszQuery,atQueryType,alQueryLevel,pszAppRegistryName,pfDefault);
23464}
23465static inline HRESULT IApplicationAssociationRegistration_QueryAppIsDefaultAll(IApplicationAssociationRegistration* This,ASSOCIATIONLEVEL alQueryLevel,LPCWSTR pszAppRegistryName,WINBOOL *pfDefault) {
23466    return This->lpVtbl->QueryAppIsDefaultAll(This,alQueryLevel,pszAppRegistryName,pfDefault);
23467}
23468static inline HRESULT IApplicationAssociationRegistration_SetAppAsDefault(IApplicationAssociationRegistration* This,LPCWSTR pszAppRegistryName,LPCWSTR pszSet,ASSOCIATIONTYPE atSetType) {
23469    return This->lpVtbl->SetAppAsDefault(This,pszAppRegistryName,pszSet,atSetType);
23470}
23471static inline HRESULT IApplicationAssociationRegistration_SetAppAsDefaultAll(IApplicationAssociationRegistration* This,LPCWSTR pszAppRegistryName) {
23472    return This->lpVtbl->SetAppAsDefaultAll(This,pszAppRegistryName);
23473}
23474static inline HRESULT IApplicationAssociationRegistration_ClearUserAssociations(IApplicationAssociationRegistration* This) {
23475    return This->lpVtbl->ClearUserAssociations(This);
23476}
23477#endif
23478#endif
23479
23480#endif
23481
23482
23483#endif  /* __IApplicationAssociationRegistration_INTERFACE_DEFINED__ */
23484
23485
23486SHSTDAPI SHCreateAssociationRegistration(REFIID riid, void **ppv);
23487
23488/*****************************************************************************
23489 * IApplicationAssociationRegistrationUI interface
23490 */
23491#ifndef __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__
23492#define __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__
23493
23494DEFINE_GUID(IID_IApplicationAssociationRegistrationUI, 0x1f76a169, 0xf994, 0x40ac, 0x8f,0xc8, 0x09,0x59,0xe8,0x87,0x47,0x10);
23495#if defined(__cplusplus) && !defined(CINTERFACE)
23496MIDL_INTERFACE("1f76a169-f994-40ac-8fc8-0959e8874710")
23497IApplicationAssociationRegistrationUI : public IUnknown
23498{
23499    virtual HRESULT STDMETHODCALLTYPE LaunchAdvancedAssociationUI(
23500        LPCWSTR pszAppRegistryName) = 0;
23501
23502};
23503#ifdef __CRT_UUID_DECL
23504__CRT_UUID_DECL(IApplicationAssociationRegistrationUI, 0x1f76a169, 0xf994, 0x40ac, 0x8f,0xc8, 0x09,0x59,0xe8,0x87,0x47,0x10)
23505#endif
23506#else
23507typedef struct IApplicationAssociationRegistrationUIVtbl {
23508    BEGIN_INTERFACE
23509
23510    /*** IUnknown methods ***/
23511    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23512        IApplicationAssociationRegistrationUI *This,
23513        REFIID riid,
23514        void **ppvObject);
23515
23516    ULONG (STDMETHODCALLTYPE *AddRef)(
23517        IApplicationAssociationRegistrationUI *This);
23518
23519    ULONG (STDMETHODCALLTYPE *Release)(
23520        IApplicationAssociationRegistrationUI *This);
23521
23522    /*** IApplicationAssociationRegistrationUI methods ***/
23523    HRESULT (STDMETHODCALLTYPE *LaunchAdvancedAssociationUI)(
23524        IApplicationAssociationRegistrationUI *This,
23525        LPCWSTR pszAppRegistryName);
23526
23527    END_INTERFACE
23528} IApplicationAssociationRegistrationUIVtbl;
23529
23530interface IApplicationAssociationRegistrationUI {
23531    CONST_VTBL IApplicationAssociationRegistrationUIVtbl* lpVtbl;
23532};
23533
23534#ifdef COBJMACROS
23535#ifndef WIDL_C_INLINE_WRAPPERS
23536/*** IUnknown methods ***/
23537#define IApplicationAssociationRegistrationUI_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23538#define IApplicationAssociationRegistrationUI_AddRef(This) (This)->lpVtbl->AddRef(This)
23539#define IApplicationAssociationRegistrationUI_Release(This) (This)->lpVtbl->Release(This)
23540/*** IApplicationAssociationRegistrationUI methods ***/
23541#define IApplicationAssociationRegistrationUI_LaunchAdvancedAssociationUI(This,pszAppRegistryName) (This)->lpVtbl->LaunchAdvancedAssociationUI(This,pszAppRegistryName)
23542#else
23543/*** IUnknown methods ***/
23544static inline HRESULT IApplicationAssociationRegistrationUI_QueryInterface(IApplicationAssociationRegistrationUI* This,REFIID riid,void **ppvObject) {
23545    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23546}
23547static inline ULONG IApplicationAssociationRegistrationUI_AddRef(IApplicationAssociationRegistrationUI* This) {
23548    return This->lpVtbl->AddRef(This);
23549}
23550static inline ULONG IApplicationAssociationRegistrationUI_Release(IApplicationAssociationRegistrationUI* This) {
23551    return This->lpVtbl->Release(This);
23552}
23553/*** IApplicationAssociationRegistrationUI methods ***/
23554static inline HRESULT IApplicationAssociationRegistrationUI_LaunchAdvancedAssociationUI(IApplicationAssociationRegistrationUI* This,LPCWSTR pszAppRegistryName) {
23555    return This->lpVtbl->LaunchAdvancedAssociationUI(This,pszAppRegistryName);
23556}
23557#endif
23558#endif
23559
23560#endif
23561
23562
23563#endif  /* __IApplicationAssociationRegistrationUI_INTERFACE_DEFINED__ */
23564
23565#endif
23566
23567#include <pshpack1.h>
23568typedef struct DELEGATEITEMID {
23569    WORD cbSize;
23570    WORD wOuter;
23571    WORD cbInner;
23572    BYTE rgb[1];
23573} DELEGATEITEMID;
23574#include <poppack.h>
23575
23576typedef const UNALIGNED DELEGATEITEMID *PCDELEGATEITEMID;
23577typedef UNALIGNED DELEGATEITEMID *PDELEGATEITEMID;
23578
23579/*****************************************************************************
23580 * IDelegateFolder interface
23581 */
23582#ifndef __IDelegateFolder_INTERFACE_DEFINED__
23583#define __IDelegateFolder_INTERFACE_DEFINED__
23584
23585DEFINE_GUID(IID_IDelegateFolder, 0xadd8ba80, 0x002b, 0x11d0, 0x8f,0x0f, 0x00,0xc0,0x4f,0xd7,0xd0,0x62);
23586#if defined(__cplusplus) && !defined(CINTERFACE)
23587MIDL_INTERFACE("add8ba80-002b-11d0-8f0f-00c04fd7d062")
23588IDelegateFolder : public IUnknown
23589{
23590    virtual HRESULT STDMETHODCALLTYPE SetItemAlloc(
23591        IMalloc *pmalloc) = 0;
23592
23593};
23594#ifdef __CRT_UUID_DECL
23595__CRT_UUID_DECL(IDelegateFolder, 0xadd8ba80, 0x002b, 0x11d0, 0x8f,0x0f, 0x00,0xc0,0x4f,0xd7,0xd0,0x62)
23596#endif
23597#else
23598typedef struct IDelegateFolderVtbl {
23599    BEGIN_INTERFACE
23600
23601    /*** IUnknown methods ***/
23602    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23603        IDelegateFolder *This,
23604        REFIID riid,
23605        void **ppvObject);
23606
23607    ULONG (STDMETHODCALLTYPE *AddRef)(
23608        IDelegateFolder *This);
23609
23610    ULONG (STDMETHODCALLTYPE *Release)(
23611        IDelegateFolder *This);
23612
23613    /*** IDelegateFolder methods ***/
23614    HRESULT (STDMETHODCALLTYPE *SetItemAlloc)(
23615        IDelegateFolder *This,
23616        IMalloc *pmalloc);
23617
23618    END_INTERFACE
23619} IDelegateFolderVtbl;
23620
23621interface IDelegateFolder {
23622    CONST_VTBL IDelegateFolderVtbl* lpVtbl;
23623};
23624
23625#ifdef COBJMACROS
23626#ifndef WIDL_C_INLINE_WRAPPERS
23627/*** IUnknown methods ***/
23628#define IDelegateFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23629#define IDelegateFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
23630#define IDelegateFolder_Release(This) (This)->lpVtbl->Release(This)
23631/*** IDelegateFolder methods ***/
23632#define IDelegateFolder_SetItemAlloc(This,pmalloc) (This)->lpVtbl->SetItemAlloc(This,pmalloc)
23633#else
23634/*** IUnknown methods ***/
23635static inline HRESULT IDelegateFolder_QueryInterface(IDelegateFolder* This,REFIID riid,void **ppvObject) {
23636    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23637}
23638static inline ULONG IDelegateFolder_AddRef(IDelegateFolder* This) {
23639    return This->lpVtbl->AddRef(This);
23640}
23641static inline ULONG IDelegateFolder_Release(IDelegateFolder* This) {
23642    return This->lpVtbl->Release(This);
23643}
23644/*** IDelegateFolder methods ***/
23645static inline HRESULT IDelegateFolder_SetItemAlloc(IDelegateFolder* This,IMalloc *pmalloc) {
23646    return This->lpVtbl->SetItemAlloc(This,pmalloc);
23647}
23648#endif
23649#endif
23650
23651#endif
23652
23653
23654#endif  /* __IDelegateFolder_INTERFACE_DEFINED__ */
23655
23656
23657#if _WIN32_IE >= _WIN32_IE_IE60
23658/*****************************************************************************
23659 * IBrowserFrameOptions interface
23660 */
23661#ifndef __IBrowserFrameOptions_INTERFACE_DEFINED__
23662#define __IBrowserFrameOptions_INTERFACE_DEFINED__
23663
23664typedef IBrowserFrameOptions *LPBROWSERFRAMEOPTIONS;
23665
23666enum _BROWSERFRAMEOPTIONS {
23667    BFO_NONE = 0x0,
23668    BFO_BROWSER_PERSIST_SETTINGS = 0x1,
23669    BFO_RENAME_FOLDER_OPTIONS_TOINTERNET = 0x2,
23670    BFO_BOTH_OPTIONS = 0x4,
23671    BIF_PREFER_INTERNET_SHORTCUT = 0x8,
23672    BFO_BROWSE_NO_IN_NEW_PROCESS = 0x10,
23673    BFO_ENABLE_HYPERLINK_TRACKING = 0x20,
23674    BFO_USE_IE_OFFLINE_SUPPORT = 0x40,
23675    BFO_SUBSTITUE_INTERNET_START_PAGE = 0x80,
23676    BFO_USE_IE_LOGOBANDING = 0x100,
23677    BFO_ADD_IE_TOCAPTIONBAR = 0x200,
23678    BFO_USE_DIALUP_REF = 0x400,
23679    BFO_USE_IE_TOOLBAR = 0x800,
23680    BFO_NO_PARENT_FOLDER_SUPPORT = 0x1000,
23681    BFO_NO_REOPEN_NEXT_RESTART = 0x2000,
23682    BFO_GO_HOME_PAGE = 0x4000,
23683    BFO_PREFER_IEPROCESS = 0x8000,
23684    BFO_SHOW_NAVIGATION_CANCELLED = 0x10000,
23685    BFO_USE_IE_STATUSBAR = 0x20000,
23686    BFO_QUERY_ALL = (int)0xffffffff
23687};
23688
23689typedef DWORD BROWSERFRAMEOPTIONS;
23690
23691DEFINE_GUID(IID_IBrowserFrameOptions, 0x10df43c8, 0x1dbe, 0x11d3, 0x8b,0x34, 0x00,0x60,0x97,0xdf,0x5b,0xd4);
23692#if defined(__cplusplus) && !defined(CINTERFACE)
23693MIDL_INTERFACE("10df43c8-1dbe-11d3-8b34-006097df5bd4")
23694IBrowserFrameOptions : public IUnknown
23695{
23696    virtual HRESULT STDMETHODCALLTYPE GetFrameOptions(
23697        BROWSERFRAMEOPTIONS dwMask,
23698        BROWSERFRAMEOPTIONS *pdwOptions) = 0;
23699
23700};
23701#ifdef __CRT_UUID_DECL
23702__CRT_UUID_DECL(IBrowserFrameOptions, 0x10df43c8, 0x1dbe, 0x11d3, 0x8b,0x34, 0x00,0x60,0x97,0xdf,0x5b,0xd4)
23703#endif
23704#else
23705typedef struct IBrowserFrameOptionsVtbl {
23706    BEGIN_INTERFACE
23707
23708    /*** IUnknown methods ***/
23709    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23710        IBrowserFrameOptions *This,
23711        REFIID riid,
23712        void **ppvObject);
23713
23714    ULONG (STDMETHODCALLTYPE *AddRef)(
23715        IBrowserFrameOptions *This);
23716
23717    ULONG (STDMETHODCALLTYPE *Release)(
23718        IBrowserFrameOptions *This);
23719
23720    /*** IBrowserFrameOptions methods ***/
23721    HRESULT (STDMETHODCALLTYPE *GetFrameOptions)(
23722        IBrowserFrameOptions *This,
23723        BROWSERFRAMEOPTIONS dwMask,
23724        BROWSERFRAMEOPTIONS *pdwOptions);
23725
23726    END_INTERFACE
23727} IBrowserFrameOptionsVtbl;
23728
23729interface IBrowserFrameOptions {
23730    CONST_VTBL IBrowserFrameOptionsVtbl* lpVtbl;
23731};
23732
23733#ifdef COBJMACROS
23734#ifndef WIDL_C_INLINE_WRAPPERS
23735/*** IUnknown methods ***/
23736#define IBrowserFrameOptions_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23737#define IBrowserFrameOptions_AddRef(This) (This)->lpVtbl->AddRef(This)
23738#define IBrowserFrameOptions_Release(This) (This)->lpVtbl->Release(This)
23739/*** IBrowserFrameOptions methods ***/
23740#define IBrowserFrameOptions_GetFrameOptions(This,dwMask,pdwOptions) (This)->lpVtbl->GetFrameOptions(This,dwMask,pdwOptions)
23741#else
23742/*** IUnknown methods ***/
23743static inline HRESULT IBrowserFrameOptions_QueryInterface(IBrowserFrameOptions* This,REFIID riid,void **ppvObject) {
23744    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23745}
23746static inline ULONG IBrowserFrameOptions_AddRef(IBrowserFrameOptions* This) {
23747    return This->lpVtbl->AddRef(This);
23748}
23749static inline ULONG IBrowserFrameOptions_Release(IBrowserFrameOptions* This) {
23750    return This->lpVtbl->Release(This);
23751}
23752/*** IBrowserFrameOptions methods ***/
23753static inline HRESULT IBrowserFrameOptions_GetFrameOptions(IBrowserFrameOptions* This,BROWSERFRAMEOPTIONS dwMask,BROWSERFRAMEOPTIONS *pdwOptions) {
23754    return This->lpVtbl->GetFrameOptions(This,dwMask,pdwOptions);
23755}
23756#endif
23757#endif
23758
23759#endif
23760
23761
23762#endif  /* __IBrowserFrameOptions_INTERFACE_DEFINED__ */
23763
23764#endif
23765
23766#if _WIN32_IE >= _WIN32_IE_IE60SP2
23767typedef enum NWMF {
23768    NWMF_UNLOADING = 0x1,
23769    NWMF_USERINITED = 0x2,
23770    NWMF_FIRST = 0x4,
23771    NWMF_OVERRIDEKEY = 0x8,
23772    NWMF_SHOWHELP = 0x10,
23773    NWMF_HTMLDIALOG = 0x20,
23774    NWMF_FROMDIALOGCHILD = 0x40,
23775    NWMF_USERREQUESTED = 0x80,
23776    NWMF_USERALLOWED = 0x100,
23777    NWMF_FORCEWINDOW = 0x10000,
23778    NWMF_FORCETAB = 0x20000,
23779    NWMF_SUGGESTWINDOW = 0x40000,
23780    NWMF_SUGGESTTAB = 0x80000,
23781    NWMF_INACTIVETAB = 0x100000
23782} NWMF;
23783
23784DEFINE_ENUM_FLAG_OPERATORS(NWMF)
23785
23786#define SID_SNewWindowManager IID_INewWindowManager
23787
23788/*****************************************************************************
23789 * INewWindowManager interface
23790 */
23791#ifndef __INewWindowManager_INTERFACE_DEFINED__
23792#define __INewWindowManager_INTERFACE_DEFINED__
23793
23794DEFINE_GUID(IID_INewWindowManager, 0xd2bc4c84, 0x3f72, 0x4a52, 0xa6,0x04, 0x7b,0xcb,0xf3,0x98,0x2c,0xbb);
23795#if defined(__cplusplus) && !defined(CINTERFACE)
23796MIDL_INTERFACE("d2bc4c84-3f72-4a52-a604-7bcbf3982cbb")
23797INewWindowManager : public IUnknown
23798{
23799    virtual HRESULT STDMETHODCALLTYPE EvaluateNewWindow(
23800        LPCWSTR pszUrl,
23801        LPCWSTR pszName,
23802        LPCWSTR pszUrlContext,
23803        LPCWSTR pszFeatures,
23804        WINBOOL fReplace,
23805        DWORD dwFlags,
23806        DWORD dwUserActionTime) = 0;
23807
23808};
23809#ifdef __CRT_UUID_DECL
23810__CRT_UUID_DECL(INewWindowManager, 0xd2bc4c84, 0x3f72, 0x4a52, 0xa6,0x04, 0x7b,0xcb,0xf3,0x98,0x2c,0xbb)
23811#endif
23812#else
23813typedef struct INewWindowManagerVtbl {
23814    BEGIN_INTERFACE
23815
23816    /*** IUnknown methods ***/
23817    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23818        INewWindowManager *This,
23819        REFIID riid,
23820        void **ppvObject);
23821
23822    ULONG (STDMETHODCALLTYPE *AddRef)(
23823        INewWindowManager *This);
23824
23825    ULONG (STDMETHODCALLTYPE *Release)(
23826        INewWindowManager *This);
23827
23828    /*** INewWindowManager methods ***/
23829    HRESULT (STDMETHODCALLTYPE *EvaluateNewWindow)(
23830        INewWindowManager *This,
23831        LPCWSTR pszUrl,
23832        LPCWSTR pszName,
23833        LPCWSTR pszUrlContext,
23834        LPCWSTR pszFeatures,
23835        WINBOOL fReplace,
23836        DWORD dwFlags,
23837        DWORD dwUserActionTime);
23838
23839    END_INTERFACE
23840} INewWindowManagerVtbl;
23841
23842interface INewWindowManager {
23843    CONST_VTBL INewWindowManagerVtbl* lpVtbl;
23844};
23845
23846#ifdef COBJMACROS
23847#ifndef WIDL_C_INLINE_WRAPPERS
23848/*** IUnknown methods ***/
23849#define INewWindowManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
23850#define INewWindowManager_AddRef(This) (This)->lpVtbl->AddRef(This)
23851#define INewWindowManager_Release(This) (This)->lpVtbl->Release(This)
23852/*** INewWindowManager methods ***/
23853#define INewWindowManager_EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime) (This)->lpVtbl->EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime)
23854#else
23855/*** IUnknown methods ***/
23856static inline HRESULT INewWindowManager_QueryInterface(INewWindowManager* This,REFIID riid,void **ppvObject) {
23857    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
23858}
23859static inline ULONG INewWindowManager_AddRef(INewWindowManager* This) {
23860    return This->lpVtbl->AddRef(This);
23861}
23862static inline ULONG INewWindowManager_Release(INewWindowManager* This) {
23863    return This->lpVtbl->Release(This);
23864}
23865/*** INewWindowManager methods ***/
23866static inline HRESULT INewWindowManager_EvaluateNewWindow(INewWindowManager* This,LPCWSTR pszUrl,LPCWSTR pszName,LPCWSTR pszUrlContext,LPCWSTR pszFeatures,WINBOOL fReplace,DWORD dwFlags,DWORD dwUserActionTime) {
23867    return This->lpVtbl->EvaluateNewWindow(This,pszUrl,pszName,pszUrlContext,pszFeatures,fReplace,dwFlags,dwUserActionTime);
23868}
23869#endif
23870#endif
23871
23872#endif
23873
23874
23875#endif  /* __INewWindowManager_INTERFACE_DEFINED__ */
23876
23877
23878/*****************************************************************************
23879 * IAttachmentExecute interface
23880 */
23881#ifndef __IAttachmentExecute_INTERFACE_DEFINED__
23882#define __IAttachmentExecute_INTERFACE_DEFINED__
23883
23884typedef enum ATTACHMENT_PROMPT {
23885    ATTACHMENT_PROMPT_NONE = 0x0,
23886    ATTACHMENT_PROMPT_SAVE = 0x1,
23887    ATTACHMENT_PROMPT_EXEC = 0x2,
23888    ATTACHMENT_PROMPT_EXEC_OR_SAVE = 0x3
23889} ATTACHMENT_PROMPT;
23890
23891typedef enum ATTACHMENT_ACTION {
23892    ATTACHMENT_ACTION_CANCEL = 0x0,
23893    ATTACHMENT_ACTION_SAVE = 0x1,
23894    ATTACHMENT_ACTION_EXEC = 0x2
23895} ATTACHMENT_ACTION;
23896
23897DEFINE_GUID(IID_IAttachmentExecute, 0x73db1241, 0x1e85, 0x4581, 0x8e,0x4f, 0xa8,0x1e,0x1d,0x0f,0x8c,0x57);
23898#if defined(__cplusplus) && !defined(CINTERFACE)
23899MIDL_INTERFACE("73db1241-1e85-4581-8e4f-a81e1d0f8c57")
23900IAttachmentExecute : public IUnknown
23901{
23902    virtual HRESULT STDMETHODCALLTYPE SetClientTitle(
23903        LPCWSTR pszTitle) = 0;
23904
23905    virtual HRESULT STDMETHODCALLTYPE SetClientGuid(
23906        REFGUID guid) = 0;
23907
23908    virtual HRESULT STDMETHODCALLTYPE SetLocalPath(
23909        LPCWSTR pszLocalPath) = 0;
23910
23911    virtual HRESULT STDMETHODCALLTYPE SetFileName(
23912        LPCWSTR pszFileName) = 0;
23913
23914    virtual HRESULT STDMETHODCALLTYPE SetSource(
23915        LPCWSTR pszSource) = 0;
23916
23917    virtual HRESULT STDMETHODCALLTYPE SetReferrer(
23918        LPCWSTR pszReferrer) = 0;
23919
23920    virtual HRESULT STDMETHODCALLTYPE CheckPolicy(
23921        ) = 0;
23922
23923    virtual HRESULT STDMETHODCALLTYPE Prompt(
23924        HWND hwnd,
23925        ATTACHMENT_PROMPT prompt,
23926        ATTACHMENT_ACTION *paction) = 0;
23927
23928    virtual HRESULT STDMETHODCALLTYPE Save(
23929        ) = 0;
23930
23931    virtual HRESULT STDMETHODCALLTYPE Execute(
23932        HWND hwnd,
23933        LPCWSTR pszVerb,
23934        HANDLE *phProcess) = 0;
23935
23936    virtual HRESULT STDMETHODCALLTYPE SaveWithUI(
23937        HWND hwnd) = 0;
23938
23939    virtual HRESULT STDMETHODCALLTYPE ClearClientState(
23940        ) = 0;
23941
23942};
23943#ifdef __CRT_UUID_DECL
23944__CRT_UUID_DECL(IAttachmentExecute, 0x73db1241, 0x1e85, 0x4581, 0x8e,0x4f, 0xa8,0x1e,0x1d,0x0f,0x8c,0x57)
23945#endif
23946#else
23947typedef struct IAttachmentExecuteVtbl {
23948    BEGIN_INTERFACE
23949
23950    /*** IUnknown methods ***/
23951    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
23952        IAttachmentExecute *This,
23953        REFIID riid,
23954        void **ppvObject);
23955
23956    ULONG (STDMETHODCALLTYPE *AddRef)(
23957        IAttachmentExecute *This);
23958
23959    ULONG (STDMETHODCALLTYPE *Release)(
23960        IAttachmentExecute *This);
23961
23962    /*** IAttachmentExecute methods ***/
23963    HRESULT (STDMETHODCALLTYPE *SetClientTitle)(
23964        IAttachmentExecute *This,
23965        LPCWSTR pszTitle);
23966
23967    HRESULT (STDMETHODCALLTYPE *SetClientGuid)(
23968        IAttachmentExecute *This,
23969        REFGUID guid);
23970
23971    HRESULT (STDMETHODCALLTYPE *SetLocalPath)(
23972        IAttachmentExecute *This,
23973        LPCWSTR pszLocalPath);
23974
23975    HRESULT (STDMETHODCALLTYPE *SetFileName)(
23976        IAttachmentExecute *This,
23977        LPCWSTR pszFileName);
23978
23979    HRESULT (STDMETHODCALLTYPE *SetSource)(
23980        IAttachmentExecute *This,
23981        LPCWSTR pszSource);
23982
23983    HRESULT (STDMETHODCALLTYPE *SetReferrer)(
23984        IAttachmentExecute *This,
23985        LPCWSTR pszReferrer);
23986
23987    HRESULT (STDMETHODCALLTYPE *CheckPolicy)(
23988        IAttachmentExecute *This);
23989
23990    HRESULT (STDMETHODCALLTYPE *Prompt)(
23991        IAttachmentExecute *This,
23992        HWND hwnd,
23993        ATTACHMENT_PROMPT prompt,
23994        ATTACHMENT_ACTION *paction);
23995
23996    HRESULT (STDMETHODCALLTYPE *Save)(
23997        IAttachmentExecute *This);
23998
23999    HRESULT (STDMETHODCALLTYPE *Execute)(
24000        IAttachmentExecute *This,
24001        HWND hwnd,
24002        LPCWSTR pszVerb,
24003        HANDLE *phProcess);
24004
24005    HRESULT (STDMETHODCALLTYPE *SaveWithUI)(
24006        IAttachmentExecute *This,
24007        HWND hwnd);
24008
24009    HRESULT (STDMETHODCALLTYPE *ClearClientState)(
24010        IAttachmentExecute *This);
24011
24012    END_INTERFACE
24013} IAttachmentExecuteVtbl;
24014
24015interface IAttachmentExecute {
24016    CONST_VTBL IAttachmentExecuteVtbl* lpVtbl;
24017};
24018
24019#ifdef COBJMACROS
24020#ifndef WIDL_C_INLINE_WRAPPERS
24021/*** IUnknown methods ***/
24022#define IAttachmentExecute_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24023#define IAttachmentExecute_AddRef(This) (This)->lpVtbl->AddRef(This)
24024#define IAttachmentExecute_Release(This) (This)->lpVtbl->Release(This)
24025/*** IAttachmentExecute methods ***/
24026#define IAttachmentExecute_SetClientTitle(This,pszTitle) (This)->lpVtbl->SetClientTitle(This,pszTitle)
24027#define IAttachmentExecute_SetClientGuid(This,guid) (This)->lpVtbl->SetClientGuid(This,guid)
24028#define IAttachmentExecute_SetLocalPath(This,pszLocalPath) (This)->lpVtbl->SetLocalPath(This,pszLocalPath)
24029#define IAttachmentExecute_SetFileName(This,pszFileName) (This)->lpVtbl->SetFileName(This,pszFileName)
24030#define IAttachmentExecute_SetSource(This,pszSource) (This)->lpVtbl->SetSource(This,pszSource)
24031#define IAttachmentExecute_SetReferrer(This,pszReferrer) (This)->lpVtbl->SetReferrer(This,pszReferrer)
24032#define IAttachmentExecute_CheckPolicy(This) (This)->lpVtbl->CheckPolicy(This)
24033#define IAttachmentExecute_Prompt(This,hwnd,prompt,paction) (This)->lpVtbl->Prompt(This,hwnd,prompt,paction)
24034#define IAttachmentExecute_Save(This) (This)->lpVtbl->Save(This)
24035#define IAttachmentExecute_Execute(This,hwnd,pszVerb,phProcess) (This)->lpVtbl->Execute(This,hwnd,pszVerb,phProcess)
24036#define IAttachmentExecute_SaveWithUI(This,hwnd) (This)->lpVtbl->SaveWithUI(This,hwnd)
24037#define IAttachmentExecute_ClearClientState(This) (This)->lpVtbl->ClearClientState(This)
24038#else
24039/*** IUnknown methods ***/
24040static inline HRESULT IAttachmentExecute_QueryInterface(IAttachmentExecute* This,REFIID riid,void **ppvObject) {
24041    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24042}
24043static inline ULONG IAttachmentExecute_AddRef(IAttachmentExecute* This) {
24044    return This->lpVtbl->AddRef(This);
24045}
24046static inline ULONG IAttachmentExecute_Release(IAttachmentExecute* This) {
24047    return This->lpVtbl->Release(This);
24048}
24049/*** IAttachmentExecute methods ***/
24050static inline HRESULT IAttachmentExecute_SetClientTitle(IAttachmentExecute* This,LPCWSTR pszTitle) {
24051    return This->lpVtbl->SetClientTitle(This,pszTitle);
24052}
24053static inline HRESULT IAttachmentExecute_SetClientGuid(IAttachmentExecute* This,REFGUID guid) {
24054    return This->lpVtbl->SetClientGuid(This,guid);
24055}
24056static inline HRESULT IAttachmentExecute_SetLocalPath(IAttachmentExecute* This,LPCWSTR pszLocalPath) {
24057    return This->lpVtbl->SetLocalPath(This,pszLocalPath);
24058}
24059static inline HRESULT IAttachmentExecute_SetFileName(IAttachmentExecute* This,LPCWSTR pszFileName) {
24060    return This->lpVtbl->SetFileName(This,pszFileName);
24061}
24062static inline HRESULT IAttachmentExecute_SetSource(IAttachmentExecute* This,LPCWSTR pszSource) {
24063    return This->lpVtbl->SetSource(This,pszSource);
24064}
24065static inline HRESULT IAttachmentExecute_SetReferrer(IAttachmentExecute* This,LPCWSTR pszReferrer) {
24066    return This->lpVtbl->SetReferrer(This,pszReferrer);
24067}
24068static inline HRESULT IAttachmentExecute_CheckPolicy(IAttachmentExecute* This) {
24069    return This->lpVtbl->CheckPolicy(This);
24070}
24071static inline HRESULT IAttachmentExecute_Prompt(IAttachmentExecute* This,HWND hwnd,ATTACHMENT_PROMPT prompt,ATTACHMENT_ACTION *paction) {
24072    return This->lpVtbl->Prompt(This,hwnd,prompt,paction);
24073}
24074static inline HRESULT IAttachmentExecute_Save(IAttachmentExecute* This) {
24075    return This->lpVtbl->Save(This);
24076}
24077static inline HRESULT IAttachmentExecute_Execute(IAttachmentExecute* This,HWND hwnd,LPCWSTR pszVerb,HANDLE *phProcess) {
24078    return This->lpVtbl->Execute(This,hwnd,pszVerb,phProcess);
24079}
24080static inline HRESULT IAttachmentExecute_SaveWithUI(IAttachmentExecute* This,HWND hwnd) {
24081    return This->lpVtbl->SaveWithUI(This,hwnd);
24082}
24083static inline HRESULT IAttachmentExecute_ClearClientState(IAttachmentExecute* This) {
24084    return This->lpVtbl->ClearClientState(This);
24085}
24086#endif
24087#endif
24088
24089#endif
24090
24091
24092#endif  /* __IAttachmentExecute_INTERFACE_DEFINED__ */
24093
24094#endif
24095
24096#if _WIN32_IE >= _WIN32_IE_IE60
24097
24098#include <pshpack8.h>
24099typedef struct tagSMDATA {
24100    DWORD dwMask;
24101    DWORD dwFlags;
24102    HMENU hmenu;
24103    HWND hwnd;
24104    UINT uId;
24105    UINT uIdParent;
24106    UINT uIdAncestor;
24107    IUnknown *punk;
24108    PIDLIST_ABSOLUTE pidlFolder;
24109    PUITEMID_CHILD pidlItem;
24110    IShellFolder *psf;
24111    void *pvUserData;
24112} SMDATA;
24113typedef struct tagSMDATA *LPSMDATA;
24114
24115#define SMDM_SHELLFOLDER 0x00000001
24116#define SMDM_HMENU 0x00000002
24117#define SMDM_TOOLBAR 0x00000004
24118
24119typedef struct tagSMINFO {
24120    DWORD dwMask;
24121    DWORD dwType;
24122    DWORD dwFlags;
24123    int iIcon;
24124} SMINFO;
24125typedef struct tagSMINFO *PSMINFO;
24126
24127typedef struct SHCSCHANGENOTIFYSTRUCT {
24128    LONG lEvent;
24129    PCIDLIST_ABSOLUTE pidl1;
24130    PCIDLIST_ABSOLUTE pidl2;
24131} SMCSHCHANGENOTIFYSTRUCT;
24132typedef struct SHCSCHANGENOTIFYSTRUCT *PSMCSHCHANGENOTIFYSTRUCT;
24133#include <poppack.h>
24134
24135enum tagSMINFOMASK {
24136    SMIM_TYPE = 0x1,
24137    SMIM_FLAGS = 0x2,
24138    SMIM_ICON = 0x4
24139};
24140
24141enum tagSMINFOTYPE {
24142    SMIT_SEPARATOR = 0x1,
24143    SMIT_STRING = 0x2
24144};
24145
24146enum tagSMINFOFLAGS {
24147    SMIF_ICON = 0x1,
24148    SMIF_ACCELERATOR = 0x2,
24149    SMIF_DROPTARGET = 0x4,
24150    SMIF_SUBMENU = 0x8,
24151    SMIF_CHECKED = 0x20,
24152    SMIF_DROPCASCADE = 0x40,
24153    SMIF_HIDDEN = 0x80,
24154    SMIF_DISABLED = 0x100,
24155    SMIF_TRACKPOPUP = 0x200,
24156    SMIF_DEMOTED = 0x400,
24157    SMIF_ALTSTATE = 0x800,
24158    SMIF_DRAGNDROP = 0x1000,
24159    SMIF_NEW = 0x2000
24160};
24161
24162#define SMC_INITMENU 0x00000001
24163#define SMC_CREATE 0x00000002
24164#define SMC_EXITMENU 0x00000003
24165#define SMC_GETINFO 0x00000005
24166#define SMC_GETSFINFO 0x00000006
24167#define SMC_GETOBJECT 0x00000007
24168#define SMC_GETSFOBJECT 0x00000008
24169#define SMC_SFEXEC 0x00000009
24170#define SMC_SFSELECTITEM 0x0000000A
24171#define SMC_REFRESH 0x00000010
24172#define SMC_DEMOTE 0x00000011
24173#define SMC_PROMOTE 0x00000012
24174#define SMC_DEFAULTICON 0x00000016
24175#define SMC_NEWITEM 0x00000017
24176#define SMC_CHEVRONEXPAND 0x00000019
24177#define SMC_DISPLAYCHEVRONTIP 0x0000002A
24178#define SMC_SETSFOBJECT 0x0000002D
24179#define SMC_SHCHANGENOTIFY 0x0000002E
24180#define SMC_CHEVRONGETTIP 0x0000002F
24181#define SMC_SFDDRESTRICTED 0x00000030
24182#if _WIN32_IE >= _WIN32_IE_IE70
24183#define SMC_SFEXEC_MIDDLE 0x00000031
24184#define SMC_GETAUTOEXPANDSTATE 0x00000041
24185#define SMC_AUTOEXPANDCHANGE 0x00000042
24186#define SMC_GETCONTEXTMENUMODIFIER 0x00000043
24187#define SMC_GETBKCONTEXTMENU 0x00000044
24188#define SMC_OPEN 0x00000045
24189
24190#define SMAE_EXPANDED 0x00000001
24191#define SMAE_CONTRACTED 0x00000002
24192
24193#define SMAE_USER 0x00000004
24194
24195#define SMAE_VALID 0x00000007
24196#endif
24197
24198/*****************************************************************************
24199 * IShellMenuCallback interface
24200 */
24201#ifndef __IShellMenuCallback_INTERFACE_DEFINED__
24202#define __IShellMenuCallback_INTERFACE_DEFINED__
24203
24204DEFINE_GUID(IID_IShellMenuCallback, 0x4ca300a1, 0x9b8d, 0x11d1, 0x8b,0x22, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
24205#if defined(__cplusplus) && !defined(CINTERFACE)
24206MIDL_INTERFACE("4ca300a1-9b8d-11d1-8b22-00c04fd918d0")
24207IShellMenuCallback : public IUnknown
24208{
24209    virtual HRESULT STDMETHODCALLTYPE CallbackSM(
24210        LPSMDATA psmd,
24211        UINT uMsg,
24212        WPARAM wParam,
24213        LPARAM lParam) = 0;
24214
24215};
24216#ifdef __CRT_UUID_DECL
24217__CRT_UUID_DECL(IShellMenuCallback, 0x4ca300a1, 0x9b8d, 0x11d1, 0x8b,0x22, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
24218#endif
24219#else
24220typedef struct IShellMenuCallbackVtbl {
24221    BEGIN_INTERFACE
24222
24223    /*** IUnknown methods ***/
24224    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24225        IShellMenuCallback *This,
24226        REFIID riid,
24227        void **ppvObject);
24228
24229    ULONG (STDMETHODCALLTYPE *AddRef)(
24230        IShellMenuCallback *This);
24231
24232    ULONG (STDMETHODCALLTYPE *Release)(
24233        IShellMenuCallback *This);
24234
24235    /*** IShellMenuCallback methods ***/
24236    HRESULT (STDMETHODCALLTYPE *CallbackSM)(
24237        IShellMenuCallback *This,
24238        LPSMDATA psmd,
24239        UINT uMsg,
24240        WPARAM wParam,
24241        LPARAM lParam);
24242
24243    END_INTERFACE
24244} IShellMenuCallbackVtbl;
24245
24246interface IShellMenuCallback {
24247    CONST_VTBL IShellMenuCallbackVtbl* lpVtbl;
24248};
24249
24250#ifdef COBJMACROS
24251#ifndef WIDL_C_INLINE_WRAPPERS
24252/*** IUnknown methods ***/
24253#define IShellMenuCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24254#define IShellMenuCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
24255#define IShellMenuCallback_Release(This) (This)->lpVtbl->Release(This)
24256/*** IShellMenuCallback methods ***/
24257#define IShellMenuCallback_CallbackSM(This,psmd,uMsg,wParam,lParam) (This)->lpVtbl->CallbackSM(This,psmd,uMsg,wParam,lParam)
24258#else
24259/*** IUnknown methods ***/
24260static inline HRESULT IShellMenuCallback_QueryInterface(IShellMenuCallback* This,REFIID riid,void **ppvObject) {
24261    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24262}
24263static inline ULONG IShellMenuCallback_AddRef(IShellMenuCallback* This) {
24264    return This->lpVtbl->AddRef(This);
24265}
24266static inline ULONG IShellMenuCallback_Release(IShellMenuCallback* This) {
24267    return This->lpVtbl->Release(This);
24268}
24269/*** IShellMenuCallback methods ***/
24270static inline HRESULT IShellMenuCallback_CallbackSM(IShellMenuCallback* This,LPSMDATA psmd,UINT uMsg,WPARAM wParam,LPARAM lParam) {
24271    return This->lpVtbl->CallbackSM(This,psmd,uMsg,wParam,lParam);
24272}
24273#endif
24274#endif
24275
24276#endif
24277
24278
24279#endif  /* __IShellMenuCallback_INTERFACE_DEFINED__ */
24280
24281
24282#define SMINIT_DEFAULT 0x00000000
24283#define SMINIT_RESTRICT_DRAGDROP 0x00000002
24284#define SMINIT_TOPLEVEL 0x00000004
24285#define SMINIT_CACHED 0x00000010
24286#if _WIN32_IE >= _WIN32_IE_IE70
24287#define SMINIT_AUTOEXPAND 0x00000100
24288#define SMINIT_AUTOTOOLTIP 0x00000200
24289#define SMINIT_DROPONCONTAINER 0x00000400
24290#endif
24291
24292#define SMINIT_VERTICAL 0x10000000
24293#define SMINIT_HORIZONTAL 0x20000000
24294
24295#define ANCESTORDEFAULT (UINT)-1
24296
24297#define SMSET_TOP 0x10000000
24298#define SMSET_BOTTOM 0x20000000
24299#define SMSET_DONTOWN 0x00000001
24300
24301#define SMINV_REFRESH 0x00000001
24302#define SMINV_ID 0x00000008
24303
24304/*****************************************************************************
24305 * IShellMenu interface
24306 */
24307#ifndef __IShellMenu_INTERFACE_DEFINED__
24308#define __IShellMenu_INTERFACE_DEFINED__
24309
24310DEFINE_GUID(IID_IShellMenu, 0xee1f7637, 0xe138, 0x11d1, 0x83,0x79, 0x00,0xc0,0x4f,0xd9,0x18,0xd0);
24311#if defined(__cplusplus) && !defined(CINTERFACE)
24312MIDL_INTERFACE("ee1f7637-e138-11d1-8379-00c04fd918d0")
24313IShellMenu : public IUnknown
24314{
24315    virtual HRESULT STDMETHODCALLTYPE Initialize(
24316        IShellMenuCallback *psmc,
24317        UINT uId,
24318        UINT uIdAncestor,
24319        DWORD dwFlags) = 0;
24320
24321    virtual HRESULT STDMETHODCALLTYPE GetMenuInfo(
24322        IShellMenuCallback **ppsmc,
24323        UINT *puId,
24324        UINT *puIdAncestor,
24325        DWORD *pdwFlags) = 0;
24326
24327    virtual HRESULT STDMETHODCALLTYPE SetShellFolder(
24328        IShellFolder *psf,
24329        PCIDLIST_ABSOLUTE pidlFolder,
24330        HKEY hKey,
24331        DWORD dwFlags) = 0;
24332
24333    virtual HRESULT STDMETHODCALLTYPE GetShellFolder(
24334        DWORD *pdwFlags,
24335        PIDLIST_ABSOLUTE *ppidl,
24336        REFIID riid,
24337        void **ppv) = 0;
24338
24339    virtual HRESULT STDMETHODCALLTYPE SetMenu(
24340        HMENU hmenu,
24341        HWND hwnd,
24342        DWORD dwFlags) = 0;
24343
24344    virtual HRESULT STDMETHODCALLTYPE GetMenu(
24345        HMENU *phmenu,
24346        HWND *phwnd,
24347        DWORD *pdwFlags) = 0;
24348
24349    virtual HRESULT STDMETHODCALLTYPE InvalidateItem(
24350        LPSMDATA psmd,
24351        DWORD dwFlags) = 0;
24352
24353    virtual HRESULT STDMETHODCALLTYPE GetState(
24354        LPSMDATA psmd) = 0;
24355
24356    virtual HRESULT STDMETHODCALLTYPE SetMenuToolbar(
24357        IUnknown *punk,
24358        DWORD dwFlags) = 0;
24359
24360};
24361#ifdef __CRT_UUID_DECL
24362__CRT_UUID_DECL(IShellMenu, 0xee1f7637, 0xe138, 0x11d1, 0x83,0x79, 0x00,0xc0,0x4f,0xd9,0x18,0xd0)
24363#endif
24364#else
24365typedef struct IShellMenuVtbl {
24366    BEGIN_INTERFACE
24367
24368    /*** IUnknown methods ***/
24369    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24370        IShellMenu *This,
24371        REFIID riid,
24372        void **ppvObject);
24373
24374    ULONG (STDMETHODCALLTYPE *AddRef)(
24375        IShellMenu *This);
24376
24377    ULONG (STDMETHODCALLTYPE *Release)(
24378        IShellMenu *This);
24379
24380    /*** IShellMenu methods ***/
24381    HRESULT (STDMETHODCALLTYPE *Initialize)(
24382        IShellMenu *This,
24383        IShellMenuCallback *psmc,
24384        UINT uId,
24385        UINT uIdAncestor,
24386        DWORD dwFlags);
24387
24388    HRESULT (STDMETHODCALLTYPE *GetMenuInfo)(
24389        IShellMenu *This,
24390        IShellMenuCallback **ppsmc,
24391        UINT *puId,
24392        UINT *puIdAncestor,
24393        DWORD *pdwFlags);
24394
24395    HRESULT (STDMETHODCALLTYPE *SetShellFolder)(
24396        IShellMenu *This,
24397        IShellFolder *psf,
24398        PCIDLIST_ABSOLUTE pidlFolder,
24399        HKEY hKey,
24400        DWORD dwFlags);
24401
24402    HRESULT (STDMETHODCALLTYPE *GetShellFolder)(
24403        IShellMenu *This,
24404        DWORD *pdwFlags,
24405        PIDLIST_ABSOLUTE *ppidl,
24406        REFIID riid,
24407        void **ppv);
24408
24409    HRESULT (STDMETHODCALLTYPE *SetMenu)(
24410        IShellMenu *This,
24411        HMENU hmenu,
24412        HWND hwnd,
24413        DWORD dwFlags);
24414
24415    HRESULT (STDMETHODCALLTYPE *GetMenu)(
24416        IShellMenu *This,
24417        HMENU *phmenu,
24418        HWND *phwnd,
24419        DWORD *pdwFlags);
24420
24421    HRESULT (STDMETHODCALLTYPE *InvalidateItem)(
24422        IShellMenu *This,
24423        LPSMDATA psmd,
24424        DWORD dwFlags);
24425
24426    HRESULT (STDMETHODCALLTYPE *GetState)(
24427        IShellMenu *This,
24428        LPSMDATA psmd);
24429
24430    HRESULT (STDMETHODCALLTYPE *SetMenuToolbar)(
24431        IShellMenu *This,
24432        IUnknown *punk,
24433        DWORD dwFlags);
24434
24435    END_INTERFACE
24436} IShellMenuVtbl;
24437
24438interface IShellMenu {
24439    CONST_VTBL IShellMenuVtbl* lpVtbl;
24440};
24441
24442#ifdef COBJMACROS
24443#ifndef WIDL_C_INLINE_WRAPPERS
24444/*** IUnknown methods ***/
24445#define IShellMenu_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24446#define IShellMenu_AddRef(This) (This)->lpVtbl->AddRef(This)
24447#define IShellMenu_Release(This) (This)->lpVtbl->Release(This)
24448/*** IShellMenu methods ***/
24449#define IShellMenu_Initialize(This,psmc,uId,uIdAncestor,dwFlags) (This)->lpVtbl->Initialize(This,psmc,uId,uIdAncestor,dwFlags)
24450#define IShellMenu_GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags) (This)->lpVtbl->GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags)
24451#define IShellMenu_SetShellFolder(This,psf,pidlFolder,hKey,dwFlags) (This)->lpVtbl->SetShellFolder(This,psf,pidlFolder,hKey,dwFlags)
24452#define IShellMenu_GetShellFolder(This,pdwFlags,ppidl,riid,ppv) (This)->lpVtbl->GetShellFolder(This,pdwFlags,ppidl,riid,ppv)
24453#define IShellMenu_SetMenu(This,hmenu,hwnd,dwFlags) (This)->lpVtbl->SetMenu(This,hmenu,hwnd,dwFlags)
24454#define IShellMenu_GetMenu(This,phmenu,phwnd,pdwFlags) (This)->lpVtbl->GetMenu(This,phmenu,phwnd,pdwFlags)
24455#define IShellMenu_InvalidateItem(This,psmd,dwFlags) (This)->lpVtbl->InvalidateItem(This,psmd,dwFlags)
24456#define IShellMenu_GetState(This,psmd) (This)->lpVtbl->GetState(This,psmd)
24457#define IShellMenu_SetMenuToolbar(This,punk,dwFlags) (This)->lpVtbl->SetMenuToolbar(This,punk,dwFlags)
24458#else
24459/*** IUnknown methods ***/
24460static inline HRESULT IShellMenu_QueryInterface(IShellMenu* This,REFIID riid,void **ppvObject) {
24461    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24462}
24463static inline ULONG IShellMenu_AddRef(IShellMenu* This) {
24464    return This->lpVtbl->AddRef(This);
24465}
24466static inline ULONG IShellMenu_Release(IShellMenu* This) {
24467    return This->lpVtbl->Release(This);
24468}
24469/*** IShellMenu methods ***/
24470static inline HRESULT IShellMenu_Initialize(IShellMenu* This,IShellMenuCallback *psmc,UINT uId,UINT uIdAncestor,DWORD dwFlags) {
24471    return This->lpVtbl->Initialize(This,psmc,uId,uIdAncestor,dwFlags);
24472}
24473static inline HRESULT IShellMenu_GetMenuInfo(IShellMenu* This,IShellMenuCallback **ppsmc,UINT *puId,UINT *puIdAncestor,DWORD *pdwFlags) {
24474    return This->lpVtbl->GetMenuInfo(This,ppsmc,puId,puIdAncestor,pdwFlags);
24475}
24476static inline HRESULT IShellMenu_SetShellFolder(IShellMenu* This,IShellFolder *psf,PCIDLIST_ABSOLUTE pidlFolder,HKEY hKey,DWORD dwFlags) {
24477    return This->lpVtbl->SetShellFolder(This,psf,pidlFolder,hKey,dwFlags);
24478}
24479static inline HRESULT IShellMenu_GetShellFolder(IShellMenu* This,DWORD *pdwFlags,PIDLIST_ABSOLUTE *ppidl,REFIID riid,void **ppv) {
24480    return This->lpVtbl->GetShellFolder(This,pdwFlags,ppidl,riid,ppv);
24481}
24482static inline HRESULT IShellMenu_SetMenu(IShellMenu* This,HMENU hmenu,HWND hwnd,DWORD dwFlags) {
24483    return This->lpVtbl->SetMenu(This,hmenu,hwnd,dwFlags);
24484}
24485static inline HRESULT IShellMenu_GetMenu(IShellMenu* This,HMENU *phmenu,HWND *phwnd,DWORD *pdwFlags) {
24486    return This->lpVtbl->GetMenu(This,phmenu,phwnd,pdwFlags);
24487}
24488static inline HRESULT IShellMenu_InvalidateItem(IShellMenu* This,LPSMDATA psmd,DWORD dwFlags) {
24489    return This->lpVtbl->InvalidateItem(This,psmd,dwFlags);
24490}
24491static inline HRESULT IShellMenu_GetState(IShellMenu* This,LPSMDATA psmd) {
24492    return This->lpVtbl->GetState(This,psmd);
24493}
24494static inline HRESULT IShellMenu_SetMenuToolbar(IShellMenu* This,IUnknown *punk,DWORD dwFlags) {
24495    return This->lpVtbl->SetMenuToolbar(This,punk,dwFlags);
24496}
24497#endif
24498#endif
24499
24500#endif
24501
24502
24503#endif  /* __IShellMenu_INTERFACE_DEFINED__ */
24504
24505#endif
24506
24507/*****************************************************************************
24508 * IShellRunDll interface
24509 */
24510#ifndef __IShellRunDll_INTERFACE_DEFINED__
24511#define __IShellRunDll_INTERFACE_DEFINED__
24512
24513DEFINE_GUID(IID_IShellRunDll, 0xfce4bde0, 0x4b68, 0x4b80, 0x8e,0x9c, 0x74,0x26,0x31,0x5a,0x73,0x88);
24514#if defined(__cplusplus) && !defined(CINTERFACE)
24515MIDL_INTERFACE("fce4bde0-4b68-4b80-8e9c-7426315a7388")
24516IShellRunDll : public IUnknown
24517{
24518    virtual HRESULT STDMETHODCALLTYPE Run(
24519        LPCWSTR pszArgs) = 0;
24520
24521};
24522#ifdef __CRT_UUID_DECL
24523__CRT_UUID_DECL(IShellRunDll, 0xfce4bde0, 0x4b68, 0x4b80, 0x8e,0x9c, 0x74,0x26,0x31,0x5a,0x73,0x88)
24524#endif
24525#else
24526typedef struct IShellRunDllVtbl {
24527    BEGIN_INTERFACE
24528
24529    /*** IUnknown methods ***/
24530    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24531        IShellRunDll *This,
24532        REFIID riid,
24533        void **ppvObject);
24534
24535    ULONG (STDMETHODCALLTYPE *AddRef)(
24536        IShellRunDll *This);
24537
24538    ULONG (STDMETHODCALLTYPE *Release)(
24539        IShellRunDll *This);
24540
24541    /*** IShellRunDll methods ***/
24542    HRESULT (STDMETHODCALLTYPE *Run)(
24543        IShellRunDll *This,
24544        LPCWSTR pszArgs);
24545
24546    END_INTERFACE
24547} IShellRunDllVtbl;
24548
24549interface IShellRunDll {
24550    CONST_VTBL IShellRunDllVtbl* lpVtbl;
24551};
24552
24553#ifdef COBJMACROS
24554#ifndef WIDL_C_INLINE_WRAPPERS
24555/*** IUnknown methods ***/
24556#define IShellRunDll_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24557#define IShellRunDll_AddRef(This) (This)->lpVtbl->AddRef(This)
24558#define IShellRunDll_Release(This) (This)->lpVtbl->Release(This)
24559/*** IShellRunDll methods ***/
24560#define IShellRunDll_Run(This,pszArgs) (This)->lpVtbl->Run(This,pszArgs)
24561#else
24562/*** IUnknown methods ***/
24563static inline HRESULT IShellRunDll_QueryInterface(IShellRunDll* This,REFIID riid,void **ppvObject) {
24564    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24565}
24566static inline ULONG IShellRunDll_AddRef(IShellRunDll* This) {
24567    return This->lpVtbl->AddRef(This);
24568}
24569static inline ULONG IShellRunDll_Release(IShellRunDll* This) {
24570    return This->lpVtbl->Release(This);
24571}
24572/*** IShellRunDll methods ***/
24573static inline HRESULT IShellRunDll_Run(IShellRunDll* This,LPCWSTR pszArgs) {
24574    return This->lpVtbl->Run(This,pszArgs);
24575}
24576#endif
24577#endif
24578
24579#endif
24580
24581
24582#endif  /* __IShellRunDll_INTERFACE_DEFINED__ */
24583
24584
24585#if NTDDI_VERSION >= NTDDI_VISTA
24586typedef enum KF_CATEGORY {
24587    KF_CATEGORY_VIRTUAL = 1,
24588    KF_CATEGORY_FIXED = 2,
24589    KF_CATEGORY_COMMON = 3,
24590    KF_CATEGORY_PERUSER = 4
24591} KF_CATEGORY;
24592
24593enum _KF_DEFINITION_FLAGS {
24594    KFDF_LOCAL_REDIRECT_ONLY = 0x2,
24595    KFDF_ROAMABLE = 0x4,
24596    KFDF_PRECREATE = 0x8,
24597    KFDF_STREAM = 0x10,
24598    KFDF_PUBLISHEXPANDEDPATH = 0x20
24599};
24600
24601typedef DWORD KF_DEFINITION_FLAGS;
24602
24603enum _KF_REDIRECT_FLAGS {
24604    KF_REDIRECT_USER_EXCLUSIVE = 0x1,
24605    KF_REDIRECT_COPY_SOURCE_DACL = 0x2,
24606    KF_REDIRECT_OWNER_USER = 0x4,
24607    KF_REDIRECT_SET_OWNER_EXPLICIT = 0x8,
24608    KF_REDIRECT_CHECK_ONLY = 0x10,
24609    KF_REDIRECT_WITH_UI = 0x20,
24610    KF_REDIRECT_UNPIN = 0x40,
24611    KF_REDIRECT_PIN = 0x80,
24612    KF_REDIRECT_COPY_CONTENTS = 0x200,
24613    KF_REDIRECT_DEL_SOURCE_CONTENTS = 0x400,
24614    KF_REDIRECT_EXCLUDE_ALL_KNOWN_SUBFOLDERS = 0x800
24615};
24616
24617typedef DWORD KF_REDIRECT_FLAGS;
24618
24619enum _KF_REDIRECTION_CAPABILITIES {
24620    KF_REDIRECTION_CAPABILITIES_ALLOW_ALL = 0xff,
24621    KF_REDIRECTION_CAPABILITIES_REDIRECTABLE = 0x1,
24622    KF_REDIRECTION_CAPABILITIES_DENY_ALL = 0xfff00,
24623    KF_REDIRECTION_CAPABILITIES_DENY_POLICY_REDIRECTED = 0x100,
24624    KF_REDIRECTION_CAPABILITIES_DENY_POLICY = 0x200,
24625    KF_REDIRECTION_CAPABILITIES_DENY_PERMISSIONS = 0x400
24626};
24627
24628typedef DWORD KF_REDIRECTION_CAPABILITIES;
24629
24630typedef struct KNOWNFOLDER_DEFINITION {
24631    KF_CATEGORY category;
24632    LPWSTR pszName;
24633    LPWSTR pszDescription;
24634    KNOWNFOLDERID fidParent;
24635    LPWSTR pszRelativePath;
24636    LPWSTR pszParsingName;
24637    LPWSTR pszTooltip;
24638    LPWSTR pszLocalizedName;
24639    LPWSTR pszIcon;
24640    LPWSTR pszSecurity;
24641    DWORD dwAttributes;
24642    KF_DEFINITION_FLAGS kfdFlags;
24643    FOLDERTYPEID ftidType;
24644} KNOWNFOLDER_DEFINITION;
24645
24646/*****************************************************************************
24647 * IKnownFolder interface
24648 */
24649#ifndef __IKnownFolder_INTERFACE_DEFINED__
24650#define __IKnownFolder_INTERFACE_DEFINED__
24651
24652DEFINE_GUID(IID_IKnownFolder, 0x3aa7af7e, 0x9b36, 0x420c, 0xa8,0xe3, 0xf7,0x7d,0x46,0x74,0xa4,0x88);
24653#if defined(__cplusplus) && !defined(CINTERFACE)
24654MIDL_INTERFACE("3aa7af7e-9b36-420c-a8e3-f77d4674a488")
24655IKnownFolder : public IUnknown
24656{
24657    virtual HRESULT STDMETHODCALLTYPE GetId(
24658        KNOWNFOLDERID *pkfid) = 0;
24659
24660    virtual HRESULT STDMETHODCALLTYPE GetCategory(
24661        KF_CATEGORY *pCategory) = 0;
24662
24663    virtual HRESULT STDMETHODCALLTYPE GetShellItem(
24664        DWORD dwFlags,
24665        REFIID riid,
24666        void **ppv) = 0;
24667
24668    virtual HRESULT STDMETHODCALLTYPE GetPath(
24669        DWORD dwFlags,
24670        LPWSTR *ppszPath) = 0;
24671
24672    virtual HRESULT STDMETHODCALLTYPE SetPath(
24673        DWORD dwFlags,
24674        LPCWSTR pszPath) = 0;
24675
24676    virtual HRESULT STDMETHODCALLTYPE GetIDList(
24677        DWORD dwFlags,
24678        PIDLIST_ABSOLUTE *ppidl) = 0;
24679
24680    virtual HRESULT STDMETHODCALLTYPE GetFolderType(
24681        FOLDERTYPEID *pftid) = 0;
24682
24683    virtual HRESULT STDMETHODCALLTYPE GetRedirectionCapabilities(
24684        KF_REDIRECTION_CAPABILITIES *pCapabilities) = 0;
24685
24686    virtual HRESULT STDMETHODCALLTYPE GetFolderDefinition(
24687        KNOWNFOLDER_DEFINITION *pKFD) = 0;
24688
24689};
24690#ifdef __CRT_UUID_DECL
24691__CRT_UUID_DECL(IKnownFolder, 0x3aa7af7e, 0x9b36, 0x420c, 0xa8,0xe3, 0xf7,0x7d,0x46,0x74,0xa4,0x88)
24692#endif
24693#else
24694typedef struct IKnownFolderVtbl {
24695    BEGIN_INTERFACE
24696
24697    /*** IUnknown methods ***/
24698    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24699        IKnownFolder *This,
24700        REFIID riid,
24701        void **ppvObject);
24702
24703    ULONG (STDMETHODCALLTYPE *AddRef)(
24704        IKnownFolder *This);
24705
24706    ULONG (STDMETHODCALLTYPE *Release)(
24707        IKnownFolder *This);
24708
24709    /*** IKnownFolder methods ***/
24710    HRESULT (STDMETHODCALLTYPE *GetId)(
24711        IKnownFolder *This,
24712        KNOWNFOLDERID *pkfid);
24713
24714    HRESULT (STDMETHODCALLTYPE *GetCategory)(
24715        IKnownFolder *This,
24716        KF_CATEGORY *pCategory);
24717
24718    HRESULT (STDMETHODCALLTYPE *GetShellItem)(
24719        IKnownFolder *This,
24720        DWORD dwFlags,
24721        REFIID riid,
24722        void **ppv);
24723
24724    HRESULT (STDMETHODCALLTYPE *GetPath)(
24725        IKnownFolder *This,
24726        DWORD dwFlags,
24727        LPWSTR *ppszPath);
24728
24729    HRESULT (STDMETHODCALLTYPE *SetPath)(
24730        IKnownFolder *This,
24731        DWORD dwFlags,
24732        LPCWSTR pszPath);
24733
24734    HRESULT (STDMETHODCALLTYPE *GetIDList)(
24735        IKnownFolder *This,
24736        DWORD dwFlags,
24737        PIDLIST_ABSOLUTE *ppidl);
24738
24739    HRESULT (STDMETHODCALLTYPE *GetFolderType)(
24740        IKnownFolder *This,
24741        FOLDERTYPEID *pftid);
24742
24743    HRESULT (STDMETHODCALLTYPE *GetRedirectionCapabilities)(
24744        IKnownFolder *This,
24745        KF_REDIRECTION_CAPABILITIES *pCapabilities);
24746
24747    HRESULT (STDMETHODCALLTYPE *GetFolderDefinition)(
24748        IKnownFolder *This,
24749        KNOWNFOLDER_DEFINITION *pKFD);
24750
24751    END_INTERFACE
24752} IKnownFolderVtbl;
24753
24754interface IKnownFolder {
24755    CONST_VTBL IKnownFolderVtbl* lpVtbl;
24756};
24757
24758#ifdef COBJMACROS
24759#ifndef WIDL_C_INLINE_WRAPPERS
24760/*** IUnknown methods ***/
24761#define IKnownFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24762#define IKnownFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
24763#define IKnownFolder_Release(This) (This)->lpVtbl->Release(This)
24764/*** IKnownFolder methods ***/
24765#define IKnownFolder_GetId(This,pkfid) (This)->lpVtbl->GetId(This,pkfid)
24766#define IKnownFolder_GetCategory(This,pCategory) (This)->lpVtbl->GetCategory(This,pCategory)
24767#define IKnownFolder_GetShellItem(This,dwFlags,riid,ppv) (This)->lpVtbl->GetShellItem(This,dwFlags,riid,ppv)
24768#define IKnownFolder_GetPath(This,dwFlags,ppszPath) (This)->lpVtbl->GetPath(This,dwFlags,ppszPath)
24769#define IKnownFolder_SetPath(This,dwFlags,pszPath) (This)->lpVtbl->SetPath(This,dwFlags,pszPath)
24770#define IKnownFolder_GetIDList(This,dwFlags,ppidl) (This)->lpVtbl->GetIDList(This,dwFlags,ppidl)
24771#define IKnownFolder_GetFolderType(This,pftid) (This)->lpVtbl->GetFolderType(This,pftid)
24772#define IKnownFolder_GetRedirectionCapabilities(This,pCapabilities) (This)->lpVtbl->GetRedirectionCapabilities(This,pCapabilities)
24773#define IKnownFolder_GetFolderDefinition(This,pKFD) (This)->lpVtbl->GetFolderDefinition(This,pKFD)
24774#else
24775/*** IUnknown methods ***/
24776static inline HRESULT IKnownFolder_QueryInterface(IKnownFolder* This,REFIID riid,void **ppvObject) {
24777    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24778}
24779static inline ULONG IKnownFolder_AddRef(IKnownFolder* This) {
24780    return This->lpVtbl->AddRef(This);
24781}
24782static inline ULONG IKnownFolder_Release(IKnownFolder* This) {
24783    return This->lpVtbl->Release(This);
24784}
24785/*** IKnownFolder methods ***/
24786static inline HRESULT IKnownFolder_GetId(IKnownFolder* This,KNOWNFOLDERID *pkfid) {
24787    return This->lpVtbl->GetId(This,pkfid);
24788}
24789static inline HRESULT IKnownFolder_GetCategory(IKnownFolder* This,KF_CATEGORY *pCategory) {
24790    return This->lpVtbl->GetCategory(This,pCategory);
24791}
24792static inline HRESULT IKnownFolder_GetShellItem(IKnownFolder* This,DWORD dwFlags,REFIID riid,void **ppv) {
24793    return This->lpVtbl->GetShellItem(This,dwFlags,riid,ppv);
24794}
24795static inline HRESULT IKnownFolder_GetPath(IKnownFolder* This,DWORD dwFlags,LPWSTR *ppszPath) {
24796    return This->lpVtbl->GetPath(This,dwFlags,ppszPath);
24797}
24798static inline HRESULT IKnownFolder_SetPath(IKnownFolder* This,DWORD dwFlags,LPCWSTR pszPath) {
24799    return This->lpVtbl->SetPath(This,dwFlags,pszPath);
24800}
24801static inline HRESULT IKnownFolder_GetIDList(IKnownFolder* This,DWORD dwFlags,PIDLIST_ABSOLUTE *ppidl) {
24802    return This->lpVtbl->GetIDList(This,dwFlags,ppidl);
24803}
24804static inline HRESULT IKnownFolder_GetFolderType(IKnownFolder* This,FOLDERTYPEID *pftid) {
24805    return This->lpVtbl->GetFolderType(This,pftid);
24806}
24807static inline HRESULT IKnownFolder_GetRedirectionCapabilities(IKnownFolder* This,KF_REDIRECTION_CAPABILITIES *pCapabilities) {
24808    return This->lpVtbl->GetRedirectionCapabilities(This,pCapabilities);
24809}
24810static inline HRESULT IKnownFolder_GetFolderDefinition(IKnownFolder* This,KNOWNFOLDER_DEFINITION *pKFD) {
24811    return This->lpVtbl->GetFolderDefinition(This,pKFD);
24812}
24813#endif
24814#endif
24815
24816#endif
24817
24818
24819#endif  /* __IKnownFolder_INTERFACE_DEFINED__ */
24820
24821
24822/*****************************************************************************
24823 * IKnownFolderManager interface
24824 */
24825#ifndef __IKnownFolderManager_INTERFACE_DEFINED__
24826#define __IKnownFolderManager_INTERFACE_DEFINED__
24827
24828typedef enum FFFP_MODE {
24829    FFFP_EXACTMATCH = 0,
24830    FFFP_NEARESTPARENTMATCH = 1
24831} FFFP_MODE;
24832
24833DEFINE_GUID(IID_IKnownFolderManager, 0x8be2d872, 0x86aa, 0x4d47, 0xb7,0x76, 0x32,0xcc,0xa4,0x0c,0x70,0x18);
24834#if defined(__cplusplus) && !defined(CINTERFACE)
24835MIDL_INTERFACE("8be2d872-86aa-4d47-b776-32cca40c7018")
24836IKnownFolderManager : public IUnknown
24837{
24838    virtual HRESULT STDMETHODCALLTYPE FolderIdFromCsidl(
24839        int nCsidl,
24840        KNOWNFOLDERID *pfid) = 0;
24841
24842    virtual HRESULT STDMETHODCALLTYPE FolderIdToCsidl(
24843        REFKNOWNFOLDERID rfid,
24844        int *pnCsidl) = 0;
24845
24846    virtual HRESULT STDMETHODCALLTYPE GetFolderIds(
24847        KNOWNFOLDERID **ppKFId,
24848        UINT *pCount) = 0;
24849
24850    virtual HRESULT STDMETHODCALLTYPE GetFolder(
24851        REFKNOWNFOLDERID rfid,
24852        IKnownFolder **ppkf) = 0;
24853
24854    virtual HRESULT STDMETHODCALLTYPE GetFolderByName(
24855        LPCWSTR pszCanonicalName,
24856        IKnownFolder **ppkf) = 0;
24857
24858    virtual HRESULT STDMETHODCALLTYPE RegisterFolder(
24859        REFKNOWNFOLDERID rfid,
24860        const KNOWNFOLDER_DEFINITION *pKFD) = 0;
24861
24862    virtual HRESULT STDMETHODCALLTYPE UnregisterFolder(
24863        REFKNOWNFOLDERID rfid) = 0;
24864
24865    virtual HRESULT STDMETHODCALLTYPE FindFolderFromPath(
24866        LPCWSTR pszPath,
24867        FFFP_MODE mode,
24868        IKnownFolder **ppkf) = 0;
24869
24870    virtual HRESULT STDMETHODCALLTYPE FindFolderFromIDList(
24871        PCIDLIST_ABSOLUTE pidl,
24872        IKnownFolder **ppkf) = 0;
24873
24874    virtual HRESULT STDMETHODCALLTYPE Redirect(
24875        REFKNOWNFOLDERID rfid,
24876        HWND hwnd,
24877        KF_REDIRECT_FLAGS flags,
24878        LPCWSTR pszTargetPath,
24879        UINT cFolders,
24880        const KNOWNFOLDERID *pExclusion,
24881        LPWSTR *ppszError) = 0;
24882
24883};
24884#ifdef __CRT_UUID_DECL
24885__CRT_UUID_DECL(IKnownFolderManager, 0x8be2d872, 0x86aa, 0x4d47, 0xb7,0x76, 0x32,0xcc,0xa4,0x0c,0x70,0x18)
24886#endif
24887#else
24888typedef struct IKnownFolderManagerVtbl {
24889    BEGIN_INTERFACE
24890
24891    /*** IUnknown methods ***/
24892    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
24893        IKnownFolderManager *This,
24894        REFIID riid,
24895        void **ppvObject);
24896
24897    ULONG (STDMETHODCALLTYPE *AddRef)(
24898        IKnownFolderManager *This);
24899
24900    ULONG (STDMETHODCALLTYPE *Release)(
24901        IKnownFolderManager *This);
24902
24903    /*** IKnownFolderManager methods ***/
24904    HRESULT (STDMETHODCALLTYPE *FolderIdFromCsidl)(
24905        IKnownFolderManager *This,
24906        int nCsidl,
24907        KNOWNFOLDERID *pfid);
24908
24909    HRESULT (STDMETHODCALLTYPE *FolderIdToCsidl)(
24910        IKnownFolderManager *This,
24911        REFKNOWNFOLDERID rfid,
24912        int *pnCsidl);
24913
24914    HRESULT (STDMETHODCALLTYPE *GetFolderIds)(
24915        IKnownFolderManager *This,
24916        KNOWNFOLDERID **ppKFId,
24917        UINT *pCount);
24918
24919    HRESULT (STDMETHODCALLTYPE *GetFolder)(
24920        IKnownFolderManager *This,
24921        REFKNOWNFOLDERID rfid,
24922        IKnownFolder **ppkf);
24923
24924    HRESULT (STDMETHODCALLTYPE *GetFolderByName)(
24925        IKnownFolderManager *This,
24926        LPCWSTR pszCanonicalName,
24927        IKnownFolder **ppkf);
24928
24929    HRESULT (STDMETHODCALLTYPE *RegisterFolder)(
24930        IKnownFolderManager *This,
24931        REFKNOWNFOLDERID rfid,
24932        const KNOWNFOLDER_DEFINITION *pKFD);
24933
24934    HRESULT (STDMETHODCALLTYPE *UnregisterFolder)(
24935        IKnownFolderManager *This,
24936        REFKNOWNFOLDERID rfid);
24937
24938    HRESULT (STDMETHODCALLTYPE *FindFolderFromPath)(
24939        IKnownFolderManager *This,
24940        LPCWSTR pszPath,
24941        FFFP_MODE mode,
24942        IKnownFolder **ppkf);
24943
24944    HRESULT (STDMETHODCALLTYPE *FindFolderFromIDList)(
24945        IKnownFolderManager *This,
24946        PCIDLIST_ABSOLUTE pidl,
24947        IKnownFolder **ppkf);
24948
24949    HRESULT (STDMETHODCALLTYPE *Redirect)(
24950        IKnownFolderManager *This,
24951        REFKNOWNFOLDERID rfid,
24952        HWND hwnd,
24953        KF_REDIRECT_FLAGS flags,
24954        LPCWSTR pszTargetPath,
24955        UINT cFolders,
24956        const KNOWNFOLDERID *pExclusion,
24957        LPWSTR *ppszError);
24958
24959    END_INTERFACE
24960} IKnownFolderManagerVtbl;
24961
24962interface IKnownFolderManager {
24963    CONST_VTBL IKnownFolderManagerVtbl* lpVtbl;
24964};
24965
24966#ifdef COBJMACROS
24967#ifndef WIDL_C_INLINE_WRAPPERS
24968/*** IUnknown methods ***/
24969#define IKnownFolderManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
24970#define IKnownFolderManager_AddRef(This) (This)->lpVtbl->AddRef(This)
24971#define IKnownFolderManager_Release(This) (This)->lpVtbl->Release(This)
24972/*** IKnownFolderManager methods ***/
24973#define IKnownFolderManager_FolderIdFromCsidl(This,nCsidl,pfid) (This)->lpVtbl->FolderIdFromCsidl(This,nCsidl,pfid)
24974#define IKnownFolderManager_FolderIdToCsidl(This,rfid,pnCsidl) (This)->lpVtbl->FolderIdToCsidl(This,rfid,pnCsidl)
24975#define IKnownFolderManager_GetFolderIds(This,ppKFId,pCount) (This)->lpVtbl->GetFolderIds(This,ppKFId,pCount)
24976#define IKnownFolderManager_GetFolder(This,rfid,ppkf) (This)->lpVtbl->GetFolder(This,rfid,ppkf)
24977#define IKnownFolderManager_GetFolderByName(This,pszCanonicalName,ppkf) (This)->lpVtbl->GetFolderByName(This,pszCanonicalName,ppkf)
24978#define IKnownFolderManager_RegisterFolder(This,rfid,pKFD) (This)->lpVtbl->RegisterFolder(This,rfid,pKFD)
24979#define IKnownFolderManager_UnregisterFolder(This,rfid) (This)->lpVtbl->UnregisterFolder(This,rfid)
24980#define IKnownFolderManager_FindFolderFromPath(This,pszPath,mode,ppkf) (This)->lpVtbl->FindFolderFromPath(This,pszPath,mode,ppkf)
24981#define IKnownFolderManager_FindFolderFromIDList(This,pidl,ppkf) (This)->lpVtbl->FindFolderFromIDList(This,pidl,ppkf)
24982#define IKnownFolderManager_Redirect(This,rfid,hwnd,flags,pszTargetPath,cFolders,pExclusion,ppszError) (This)->lpVtbl->Redirect(This,rfid,hwnd,flags,pszTargetPath,cFolders,pExclusion,ppszError)
24983#else
24984/*** IUnknown methods ***/
24985static inline HRESULT IKnownFolderManager_QueryInterface(IKnownFolderManager* This,REFIID riid,void **ppvObject) {
24986    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
24987}
24988static inline ULONG IKnownFolderManager_AddRef(IKnownFolderManager* This) {
24989    return This->lpVtbl->AddRef(This);
24990}
24991static inline ULONG IKnownFolderManager_Release(IKnownFolderManager* This) {
24992    return This->lpVtbl->Release(This);
24993}
24994/*** IKnownFolderManager methods ***/
24995static inline HRESULT IKnownFolderManager_FolderIdFromCsidl(IKnownFolderManager* This,int nCsidl,KNOWNFOLDERID *pfid) {
24996    return This->lpVtbl->FolderIdFromCsidl(This,nCsidl,pfid);
24997}
24998static inline HRESULT IKnownFolderManager_FolderIdToCsidl(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,int *pnCsidl) {
24999    return This->lpVtbl->FolderIdToCsidl(This,rfid,pnCsidl);
25000}
25001static inline HRESULT IKnownFolderManager_GetFolderIds(IKnownFolderManager* This,KNOWNFOLDERID **ppKFId,UINT *pCount) {
25002    return This->lpVtbl->GetFolderIds(This,ppKFId,pCount);
25003}
25004static inline HRESULT IKnownFolderManager_GetFolder(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,IKnownFolder **ppkf) {
25005    return This->lpVtbl->GetFolder(This,rfid,ppkf);
25006}
25007static inline HRESULT IKnownFolderManager_GetFolderByName(IKnownFolderManager* This,LPCWSTR pszCanonicalName,IKnownFolder **ppkf) {
25008    return This->lpVtbl->GetFolderByName(This,pszCanonicalName,ppkf);
25009}
25010static inline HRESULT IKnownFolderManager_RegisterFolder(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,const KNOWNFOLDER_DEFINITION *pKFD) {
25011    return This->lpVtbl->RegisterFolder(This,rfid,pKFD);
25012}
25013static inline HRESULT IKnownFolderManager_UnregisterFolder(IKnownFolderManager* This,REFKNOWNFOLDERID rfid) {
25014    return This->lpVtbl->UnregisterFolder(This,rfid);
25015}
25016static inline HRESULT IKnownFolderManager_FindFolderFromPath(IKnownFolderManager* This,LPCWSTR pszPath,FFFP_MODE mode,IKnownFolder **ppkf) {
25017    return This->lpVtbl->FindFolderFromPath(This,pszPath,mode,ppkf);
25018}
25019static inline HRESULT IKnownFolderManager_FindFolderFromIDList(IKnownFolderManager* This,PCIDLIST_ABSOLUTE pidl,IKnownFolder **ppkf) {
25020    return This->lpVtbl->FindFolderFromIDList(This,pidl,ppkf);
25021}
25022static inline HRESULT IKnownFolderManager_Redirect(IKnownFolderManager* This,REFKNOWNFOLDERID rfid,HWND hwnd,KF_REDIRECT_FLAGS flags,LPCWSTR pszTargetPath,UINT cFolders,const KNOWNFOLDERID *pExclusion,LPWSTR *ppszError) {
25023    return This->lpVtbl->Redirect(This,rfid,hwnd,flags,pszTargetPath,cFolders,pExclusion,ppszError);
25024}
25025#endif
25026#endif
25027
25028#endif
25029
25030HRESULT STDMETHODCALLTYPE IKnownFolderManager_RemoteRedirect_Proxy(
25031    IKnownFolderManager* This,
25032    REFKNOWNFOLDERID rfid,
25033    HWND hwnd,
25034    KF_REDIRECT_FLAGS flags,
25035    LPCWSTR pszTargetPath,
25036    UINT cFolders,
25037    const GUID *pExclusion,
25038    LPWSTR *ppszError);
25039void __RPC_STUB IKnownFolderManager_RemoteRedirect_Stub(
25040    IRpcStubBuffer* This,
25041    IRpcChannelBuffer* pRpcChannelBuffer,
25042    PRPC_MESSAGE pRpcMessage,
25043    DWORD* pdwStubPhase);
25044HRESULT CALLBACK IKnownFolderManager_Redirect_Proxy(
25045    IKnownFolderManager* This,
25046    REFKNOWNFOLDERID rfid,
25047    HWND hwnd,
25048    KF_REDIRECT_FLAGS flags,
25049    LPCWSTR pszTargetPath,
25050    UINT cFolders,
25051    const KNOWNFOLDERID *pExclusion,
25052    LPWSTR *ppszError);
25053HRESULT __RPC_STUB IKnownFolderManager_Redirect_Stub(
25054    IKnownFolderManager* This,
25055    REFKNOWNFOLDERID rfid,
25056    HWND hwnd,
25057    KF_REDIRECT_FLAGS flags,
25058    LPCWSTR pszTargetPath,
25059    UINT cFolders,
25060    const GUID *pExclusion,
25061    LPWSTR *ppszError);
25062
25063#endif  /* __IKnownFolderManager_INTERFACE_DEFINED__ */
25064
25065
25066  __forceinline void FreeKnownFolderDefinitionFields(KNOWNFOLDER_DEFINITION *pKFD) {
25067    CoTaskMemFree(pKFD->pszName);
25068    CoTaskMemFree(pKFD->pszDescription);
25069    CoTaskMemFree(pKFD->pszRelativePath);
25070    CoTaskMemFree(pKFD->pszParsingName);
25071    CoTaskMemFree(pKFD->pszTooltip);
25072    CoTaskMemFree(pKFD->pszLocalizedName);
25073    CoTaskMemFree(pKFD->pszIcon);
25074    CoTaskMemFree(pKFD->pszSecurity);
25075  }
25076
25077typedef enum SHARE_ROLE {
25078    SHARE_ROLE_INVALID = -1,
25079    SHARE_ROLE_READER = 0,
25080    SHARE_ROLE_CONTRIBUTOR = 1,
25081    SHARE_ROLE_CO_OWNER = 2,
25082    SHARE_ROLE_OWNER = 3,
25083    SHARE_ROLE_CUSTOM = 4,
25084    SHARE_ROLE_MIXED = 5
25085} SHARE_ROLE;
25086
25087typedef enum DEF_SHARE_ID {
25088    DEFSHAREID_USERS = 1,
25089    DEFSHAREID_PUBLIC = 2
25090} DEF_SHARE_ID;
25091
25092/*****************************************************************************
25093 * ISharingConfigurationManager interface
25094 */
25095#ifndef __ISharingConfigurationManager_INTERFACE_DEFINED__
25096#define __ISharingConfigurationManager_INTERFACE_DEFINED__
25097
25098DEFINE_GUID(IID_ISharingConfigurationManager, 0xb4cd448a, 0x9c86, 0x4466, 0x92,0x01, 0x2e,0x62,0x10,0x5b,0x87,0xae);
25099#if defined(__cplusplus) && !defined(CINTERFACE)
25100MIDL_INTERFACE("b4cd448a-9c86-4466-9201-2e62105b87ae")
25101ISharingConfigurationManager : public IUnknown
25102{
25103    virtual HRESULT STDMETHODCALLTYPE CreateShare(
25104        DEF_SHARE_ID dsid,
25105        SHARE_ROLE role) = 0;
25106
25107    virtual HRESULT STDMETHODCALLTYPE DeleteShare(
25108        DEF_SHARE_ID dsid) = 0;
25109
25110    virtual HRESULT STDMETHODCALLTYPE ShareExists(
25111        DEF_SHARE_ID dsid) = 0;
25112
25113    virtual HRESULT STDMETHODCALLTYPE GetSharePermissions(
25114        DEF_SHARE_ID dsid,
25115        SHARE_ROLE *pRole) = 0;
25116
25117    virtual HRESULT STDMETHODCALLTYPE SharePrinters(
25118        ) = 0;
25119
25120    virtual HRESULT STDMETHODCALLTYPE StopSharingPrinters(
25121        ) = 0;
25122
25123    virtual HRESULT STDMETHODCALLTYPE ArePrintersShared(
25124        ) = 0;
25125
25126};
25127#ifdef __CRT_UUID_DECL
25128__CRT_UUID_DECL(ISharingConfigurationManager, 0xb4cd448a, 0x9c86, 0x4466, 0x92,0x01, 0x2e,0x62,0x10,0x5b,0x87,0xae)
25129#endif
25130#else
25131typedef struct ISharingConfigurationManagerVtbl {
25132    BEGIN_INTERFACE
25133
25134    /*** IUnknown methods ***/
25135    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25136        ISharingConfigurationManager *This,
25137        REFIID riid,
25138        void **ppvObject);
25139
25140    ULONG (STDMETHODCALLTYPE *AddRef)(
25141        ISharingConfigurationManager *This);
25142
25143    ULONG (STDMETHODCALLTYPE *Release)(
25144        ISharingConfigurationManager *This);
25145
25146    /*** ISharingConfigurationManager methods ***/
25147    HRESULT (STDMETHODCALLTYPE *CreateShare)(
25148        ISharingConfigurationManager *This,
25149        DEF_SHARE_ID dsid,
25150        SHARE_ROLE role);
25151
25152    HRESULT (STDMETHODCALLTYPE *DeleteShare)(
25153        ISharingConfigurationManager *This,
25154        DEF_SHARE_ID dsid);
25155
25156    HRESULT (STDMETHODCALLTYPE *ShareExists)(
25157        ISharingConfigurationManager *This,
25158        DEF_SHARE_ID dsid);
25159
25160    HRESULT (STDMETHODCALLTYPE *GetSharePermissions)(
25161        ISharingConfigurationManager *This,
25162        DEF_SHARE_ID dsid,
25163        SHARE_ROLE *pRole);
25164
25165    HRESULT (STDMETHODCALLTYPE *SharePrinters)(
25166        ISharingConfigurationManager *This);
25167
25168    HRESULT (STDMETHODCALLTYPE *StopSharingPrinters)(
25169        ISharingConfigurationManager *This);
25170
25171    HRESULT (STDMETHODCALLTYPE *ArePrintersShared)(
25172        ISharingConfigurationManager *This);
25173
25174    END_INTERFACE
25175} ISharingConfigurationManagerVtbl;
25176
25177interface ISharingConfigurationManager {
25178    CONST_VTBL ISharingConfigurationManagerVtbl* lpVtbl;
25179};
25180
25181#ifdef COBJMACROS
25182#ifndef WIDL_C_INLINE_WRAPPERS
25183/*** IUnknown methods ***/
25184#define ISharingConfigurationManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25185#define ISharingConfigurationManager_AddRef(This) (This)->lpVtbl->AddRef(This)
25186#define ISharingConfigurationManager_Release(This) (This)->lpVtbl->Release(This)
25187/*** ISharingConfigurationManager methods ***/
25188#define ISharingConfigurationManager_CreateShare(This,dsid,role) (This)->lpVtbl->CreateShare(This,dsid,role)
25189#define ISharingConfigurationManager_DeleteShare(This,dsid) (This)->lpVtbl->DeleteShare(This,dsid)
25190#define ISharingConfigurationManager_ShareExists(This,dsid) (This)->lpVtbl->ShareExists(This,dsid)
25191#define ISharingConfigurationManager_GetSharePermissions(This,dsid,pRole) (This)->lpVtbl->GetSharePermissions(This,dsid,pRole)
25192#define ISharingConfigurationManager_SharePrinters(This) (This)->lpVtbl->SharePrinters(This)
25193#define ISharingConfigurationManager_StopSharingPrinters(This) (This)->lpVtbl->StopSharingPrinters(This)
25194#define ISharingConfigurationManager_ArePrintersShared(This) (This)->lpVtbl->ArePrintersShared(This)
25195#else
25196/*** IUnknown methods ***/
25197static inline HRESULT ISharingConfigurationManager_QueryInterface(ISharingConfigurationManager* This,REFIID riid,void **ppvObject) {
25198    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25199}
25200static inline ULONG ISharingConfigurationManager_AddRef(ISharingConfigurationManager* This) {
25201    return This->lpVtbl->AddRef(This);
25202}
25203static inline ULONG ISharingConfigurationManager_Release(ISharingConfigurationManager* This) {
25204    return This->lpVtbl->Release(This);
25205}
25206/*** ISharingConfigurationManager methods ***/
25207static inline HRESULT ISharingConfigurationManager_CreateShare(ISharingConfigurationManager* This,DEF_SHARE_ID dsid,SHARE_ROLE role) {
25208    return This->lpVtbl->CreateShare(This,dsid,role);
25209}
25210static inline HRESULT ISharingConfigurationManager_DeleteShare(ISharingConfigurationManager* This,DEF_SHARE_ID dsid) {
25211    return This->lpVtbl->DeleteShare(This,dsid);
25212}
25213static inline HRESULT ISharingConfigurationManager_ShareExists(ISharingConfigurationManager* This,DEF_SHARE_ID dsid) {
25214    return This->lpVtbl->ShareExists(This,dsid);
25215}
25216static inline HRESULT ISharingConfigurationManager_GetSharePermissions(ISharingConfigurationManager* This,DEF_SHARE_ID dsid,SHARE_ROLE *pRole) {
25217    return This->lpVtbl->GetSharePermissions(This,dsid,pRole);
25218}
25219static inline HRESULT ISharingConfigurationManager_SharePrinters(ISharingConfigurationManager* This) {
25220    return This->lpVtbl->SharePrinters(This);
25221}
25222static inline HRESULT ISharingConfigurationManager_StopSharingPrinters(ISharingConfigurationManager* This) {
25223    return This->lpVtbl->StopSharingPrinters(This);
25224}
25225static inline HRESULT ISharingConfigurationManager_ArePrintersShared(ISharingConfigurationManager* This) {
25226    return This->lpVtbl->ArePrintersShared(This);
25227}
25228#endif
25229#endif
25230
25231#endif
25232
25233
25234#endif  /* __ISharingConfigurationManager_INTERFACE_DEFINED__ */
25235
25236#endif
25237
25238/*****************************************************************************
25239 * IPreviousVersionsInfo interface
25240 */
25241#ifndef __IPreviousVersionsInfo_INTERFACE_DEFINED__
25242#define __IPreviousVersionsInfo_INTERFACE_DEFINED__
25243
25244DEFINE_GUID(IID_IPreviousVersionsInfo, 0x76e54780, 0xad74, 0x48e3, 0xa6,0x95, 0x3b,0xa9,0xa0,0xaf,0xf1,0x0d);
25245#if defined(__cplusplus) && !defined(CINTERFACE)
25246MIDL_INTERFACE("76e54780-ad74-48e3-a695-3ba9a0aff10d")
25247IPreviousVersionsInfo : public IUnknown
25248{
25249    virtual HRESULT STDMETHODCALLTYPE AreSnapshotsAvailable(
25250        LPCWSTR pszPath,
25251        WINBOOL fOkToBeSlow,
25252        WINBOOL *pfAvailable) = 0;
25253
25254};
25255#ifdef __CRT_UUID_DECL
25256__CRT_UUID_DECL(IPreviousVersionsInfo, 0x76e54780, 0xad74, 0x48e3, 0xa6,0x95, 0x3b,0xa9,0xa0,0xaf,0xf1,0x0d)
25257#endif
25258#else
25259typedef struct IPreviousVersionsInfoVtbl {
25260    BEGIN_INTERFACE
25261
25262    /*** IUnknown methods ***/
25263    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25264        IPreviousVersionsInfo *This,
25265        REFIID riid,
25266        void **ppvObject);
25267
25268    ULONG (STDMETHODCALLTYPE *AddRef)(
25269        IPreviousVersionsInfo *This);
25270
25271    ULONG (STDMETHODCALLTYPE *Release)(
25272        IPreviousVersionsInfo *This);
25273
25274    /*** IPreviousVersionsInfo methods ***/
25275    HRESULT (STDMETHODCALLTYPE *AreSnapshotsAvailable)(
25276        IPreviousVersionsInfo *This,
25277        LPCWSTR pszPath,
25278        WINBOOL fOkToBeSlow,
25279        WINBOOL *pfAvailable);
25280
25281    END_INTERFACE
25282} IPreviousVersionsInfoVtbl;
25283
25284interface IPreviousVersionsInfo {
25285    CONST_VTBL IPreviousVersionsInfoVtbl* lpVtbl;
25286};
25287
25288#ifdef COBJMACROS
25289#ifndef WIDL_C_INLINE_WRAPPERS
25290/*** IUnknown methods ***/
25291#define IPreviousVersionsInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25292#define IPreviousVersionsInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
25293#define IPreviousVersionsInfo_Release(This) (This)->lpVtbl->Release(This)
25294/*** IPreviousVersionsInfo methods ***/
25295#define IPreviousVersionsInfo_AreSnapshotsAvailable(This,pszPath,fOkToBeSlow,pfAvailable) (This)->lpVtbl->AreSnapshotsAvailable(This,pszPath,fOkToBeSlow,pfAvailable)
25296#else
25297/*** IUnknown methods ***/
25298static inline HRESULT IPreviousVersionsInfo_QueryInterface(IPreviousVersionsInfo* This,REFIID riid,void **ppvObject) {
25299    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25300}
25301static inline ULONG IPreviousVersionsInfo_AddRef(IPreviousVersionsInfo* This) {
25302    return This->lpVtbl->AddRef(This);
25303}
25304static inline ULONG IPreviousVersionsInfo_Release(IPreviousVersionsInfo* This) {
25305    return This->lpVtbl->Release(This);
25306}
25307/*** IPreviousVersionsInfo methods ***/
25308static inline HRESULT IPreviousVersionsInfo_AreSnapshotsAvailable(IPreviousVersionsInfo* This,LPCWSTR pszPath,WINBOOL fOkToBeSlow,WINBOOL *pfAvailable) {
25309    return This->lpVtbl->AreSnapshotsAvailable(This,pszPath,fOkToBeSlow,pfAvailable);
25310}
25311#endif
25312#endif
25313
25314#endif
25315
25316
25317#endif  /* __IPreviousVersionsInfo_INTERFACE_DEFINED__ */
25318
25319
25320#if NTDDI_VERSION >= NTDDI_VISTA
25321/*****************************************************************************
25322 * IRelatedItem interface
25323 */
25324#ifndef __IRelatedItem_INTERFACE_DEFINED__
25325#define __IRelatedItem_INTERFACE_DEFINED__
25326
25327DEFINE_GUID(IID_IRelatedItem, 0xa73ce67a, 0x8ab1, 0x44f1, 0x8d,0x43, 0xd2,0xfc,0xbf,0x6b,0x1c,0xd0);
25328#if defined(__cplusplus) && !defined(CINTERFACE)
25329MIDL_INTERFACE("a73ce67a-8ab1-44f1-8d43-d2fcbf6b1cd0")
25330IRelatedItem : public IUnknown
25331{
25332    virtual HRESULT STDMETHODCALLTYPE GetItemIDList(
25333        PIDLIST_ABSOLUTE *ppidl) = 0;
25334
25335    virtual HRESULT STDMETHODCALLTYPE GetItem(
25336        IShellItem **ppsi) = 0;
25337
25338};
25339#ifdef __CRT_UUID_DECL
25340__CRT_UUID_DECL(IRelatedItem, 0xa73ce67a, 0x8ab1, 0x44f1, 0x8d,0x43, 0xd2,0xfc,0xbf,0x6b,0x1c,0xd0)
25341#endif
25342#else
25343typedef struct IRelatedItemVtbl {
25344    BEGIN_INTERFACE
25345
25346    /*** IUnknown methods ***/
25347    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25348        IRelatedItem *This,
25349        REFIID riid,
25350        void **ppvObject);
25351
25352    ULONG (STDMETHODCALLTYPE *AddRef)(
25353        IRelatedItem *This);
25354
25355    ULONG (STDMETHODCALLTYPE *Release)(
25356        IRelatedItem *This);
25357
25358    /*** IRelatedItem methods ***/
25359    HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
25360        IRelatedItem *This,
25361        PIDLIST_ABSOLUTE *ppidl);
25362
25363    HRESULT (STDMETHODCALLTYPE *GetItem)(
25364        IRelatedItem *This,
25365        IShellItem **ppsi);
25366
25367    END_INTERFACE
25368} IRelatedItemVtbl;
25369
25370interface IRelatedItem {
25371    CONST_VTBL IRelatedItemVtbl* lpVtbl;
25372};
25373
25374#ifdef COBJMACROS
25375#ifndef WIDL_C_INLINE_WRAPPERS
25376/*** IUnknown methods ***/
25377#define IRelatedItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25378#define IRelatedItem_AddRef(This) (This)->lpVtbl->AddRef(This)
25379#define IRelatedItem_Release(This) (This)->lpVtbl->Release(This)
25380/*** IRelatedItem methods ***/
25381#define IRelatedItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
25382#define IRelatedItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
25383#else
25384/*** IUnknown methods ***/
25385static inline HRESULT IRelatedItem_QueryInterface(IRelatedItem* This,REFIID riid,void **ppvObject) {
25386    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25387}
25388static inline ULONG IRelatedItem_AddRef(IRelatedItem* This) {
25389    return This->lpVtbl->AddRef(This);
25390}
25391static inline ULONG IRelatedItem_Release(IRelatedItem* This) {
25392    return This->lpVtbl->Release(This);
25393}
25394/*** IRelatedItem methods ***/
25395static inline HRESULT IRelatedItem_GetItemIDList(IRelatedItem* This,PIDLIST_ABSOLUTE *ppidl) {
25396    return This->lpVtbl->GetItemIDList(This,ppidl);
25397}
25398static inline HRESULT IRelatedItem_GetItem(IRelatedItem* This,IShellItem **ppsi) {
25399    return This->lpVtbl->GetItem(This,ppsi);
25400}
25401#endif
25402#endif
25403
25404#endif
25405
25406
25407#endif  /* __IRelatedItem_INTERFACE_DEFINED__ */
25408
25409
25410/*****************************************************************************
25411 * IIdentityName interface
25412 */
25413#ifndef __IIdentityName_INTERFACE_DEFINED__
25414#define __IIdentityName_INTERFACE_DEFINED__
25415
25416DEFINE_GUID(IID_IIdentityName, 0x7d903fca, 0xd6f9, 0x4810, 0x83,0x32, 0x94,0x6c,0x01,0x77,0xe2,0x47);
25417#if defined(__cplusplus) && !defined(CINTERFACE)
25418MIDL_INTERFACE("7d903fca-d6f9-4810-8332-946c0177e247")
25419IIdentityName : public IRelatedItem
25420{
25421};
25422#ifdef __CRT_UUID_DECL
25423__CRT_UUID_DECL(IIdentityName, 0x7d903fca, 0xd6f9, 0x4810, 0x83,0x32, 0x94,0x6c,0x01,0x77,0xe2,0x47)
25424#endif
25425#else
25426typedef struct IIdentityNameVtbl {
25427    BEGIN_INTERFACE
25428
25429    /*** IUnknown methods ***/
25430    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25431        IIdentityName *This,
25432        REFIID riid,
25433        void **ppvObject);
25434
25435    ULONG (STDMETHODCALLTYPE *AddRef)(
25436        IIdentityName *This);
25437
25438    ULONG (STDMETHODCALLTYPE *Release)(
25439        IIdentityName *This);
25440
25441    /*** IRelatedItem methods ***/
25442    HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
25443        IIdentityName *This,
25444        PIDLIST_ABSOLUTE *ppidl);
25445
25446    HRESULT (STDMETHODCALLTYPE *GetItem)(
25447        IIdentityName *This,
25448        IShellItem **ppsi);
25449
25450    END_INTERFACE
25451} IIdentityNameVtbl;
25452
25453interface IIdentityName {
25454    CONST_VTBL IIdentityNameVtbl* lpVtbl;
25455};
25456
25457#ifdef COBJMACROS
25458#ifndef WIDL_C_INLINE_WRAPPERS
25459/*** IUnknown methods ***/
25460#define IIdentityName_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25461#define IIdentityName_AddRef(This) (This)->lpVtbl->AddRef(This)
25462#define IIdentityName_Release(This) (This)->lpVtbl->Release(This)
25463/*** IRelatedItem methods ***/
25464#define IIdentityName_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
25465#define IIdentityName_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
25466#else
25467/*** IUnknown methods ***/
25468static inline HRESULT IIdentityName_QueryInterface(IIdentityName* This,REFIID riid,void **ppvObject) {
25469    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25470}
25471static inline ULONG IIdentityName_AddRef(IIdentityName* This) {
25472    return This->lpVtbl->AddRef(This);
25473}
25474static inline ULONG IIdentityName_Release(IIdentityName* This) {
25475    return This->lpVtbl->Release(This);
25476}
25477/*** IRelatedItem methods ***/
25478static inline HRESULT IIdentityName_GetItemIDList(IIdentityName* This,PIDLIST_ABSOLUTE *ppidl) {
25479    return This->lpVtbl->GetItemIDList(This,ppidl);
25480}
25481static inline HRESULT IIdentityName_GetItem(IIdentityName* This,IShellItem **ppsi) {
25482    return This->lpVtbl->GetItem(This,ppsi);
25483}
25484#endif
25485#endif
25486
25487#endif
25488
25489
25490#endif  /* __IIdentityName_INTERFACE_DEFINED__ */
25491
25492
25493/*****************************************************************************
25494 * IDelegateItem interface
25495 */
25496#ifndef __IDelegateItem_INTERFACE_DEFINED__
25497#define __IDelegateItem_INTERFACE_DEFINED__
25498
25499DEFINE_GUID(IID_IDelegateItem, 0x3c5a1c94, 0xc951, 0x4cb7, 0xbb,0x6d, 0x3b,0x93,0xf3,0x0c,0xce,0x93);
25500#if defined(__cplusplus) && !defined(CINTERFACE)
25501MIDL_INTERFACE("3c5a1c94-c951-4cb7-bb6d-3b93f30cce93")
25502IDelegateItem : public IRelatedItem
25503{
25504};
25505#ifdef __CRT_UUID_DECL
25506__CRT_UUID_DECL(IDelegateItem, 0x3c5a1c94, 0xc951, 0x4cb7, 0xbb,0x6d, 0x3b,0x93,0xf3,0x0c,0xce,0x93)
25507#endif
25508#else
25509typedef struct IDelegateItemVtbl {
25510    BEGIN_INTERFACE
25511
25512    /*** IUnknown methods ***/
25513    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25514        IDelegateItem *This,
25515        REFIID riid,
25516        void **ppvObject);
25517
25518    ULONG (STDMETHODCALLTYPE *AddRef)(
25519        IDelegateItem *This);
25520
25521    ULONG (STDMETHODCALLTYPE *Release)(
25522        IDelegateItem *This);
25523
25524    /*** IRelatedItem methods ***/
25525    HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
25526        IDelegateItem *This,
25527        PIDLIST_ABSOLUTE *ppidl);
25528
25529    HRESULT (STDMETHODCALLTYPE *GetItem)(
25530        IDelegateItem *This,
25531        IShellItem **ppsi);
25532
25533    END_INTERFACE
25534} IDelegateItemVtbl;
25535
25536interface IDelegateItem {
25537    CONST_VTBL IDelegateItemVtbl* lpVtbl;
25538};
25539
25540#ifdef COBJMACROS
25541#ifndef WIDL_C_INLINE_WRAPPERS
25542/*** IUnknown methods ***/
25543#define IDelegateItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25544#define IDelegateItem_AddRef(This) (This)->lpVtbl->AddRef(This)
25545#define IDelegateItem_Release(This) (This)->lpVtbl->Release(This)
25546/*** IRelatedItem methods ***/
25547#define IDelegateItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
25548#define IDelegateItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
25549#else
25550/*** IUnknown methods ***/
25551static inline HRESULT IDelegateItem_QueryInterface(IDelegateItem* This,REFIID riid,void **ppvObject) {
25552    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25553}
25554static inline ULONG IDelegateItem_AddRef(IDelegateItem* This) {
25555    return This->lpVtbl->AddRef(This);
25556}
25557static inline ULONG IDelegateItem_Release(IDelegateItem* This) {
25558    return This->lpVtbl->Release(This);
25559}
25560/*** IRelatedItem methods ***/
25561static inline HRESULT IDelegateItem_GetItemIDList(IDelegateItem* This,PIDLIST_ABSOLUTE *ppidl) {
25562    return This->lpVtbl->GetItemIDList(This,ppidl);
25563}
25564static inline HRESULT IDelegateItem_GetItem(IDelegateItem* This,IShellItem **ppsi) {
25565    return This->lpVtbl->GetItem(This,ppsi);
25566}
25567#endif
25568#endif
25569
25570#endif
25571
25572
25573#endif  /* __IDelegateItem_INTERFACE_DEFINED__ */
25574
25575
25576/*****************************************************************************
25577 * ICurrentItem interface
25578 */
25579#ifndef __ICurrentItem_INTERFACE_DEFINED__
25580#define __ICurrentItem_INTERFACE_DEFINED__
25581
25582DEFINE_GUID(IID_ICurrentItem, 0x240a7174, 0xd653, 0x4a1d, 0xa6,0xd3, 0xd4,0x94,0x3c,0xfb,0xfe,0x3d);
25583#if defined(__cplusplus) && !defined(CINTERFACE)
25584MIDL_INTERFACE("240a7174-d653-4a1d-a6d3-d4943cfbfe3d")
25585ICurrentItem : public IRelatedItem
25586{
25587};
25588#ifdef __CRT_UUID_DECL
25589__CRT_UUID_DECL(ICurrentItem, 0x240a7174, 0xd653, 0x4a1d, 0xa6,0xd3, 0xd4,0x94,0x3c,0xfb,0xfe,0x3d)
25590#endif
25591#else
25592typedef struct ICurrentItemVtbl {
25593    BEGIN_INTERFACE
25594
25595    /*** IUnknown methods ***/
25596    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25597        ICurrentItem *This,
25598        REFIID riid,
25599        void **ppvObject);
25600
25601    ULONG (STDMETHODCALLTYPE *AddRef)(
25602        ICurrentItem *This);
25603
25604    ULONG (STDMETHODCALLTYPE *Release)(
25605        ICurrentItem *This);
25606
25607    /*** IRelatedItem methods ***/
25608    HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
25609        ICurrentItem *This,
25610        PIDLIST_ABSOLUTE *ppidl);
25611
25612    HRESULT (STDMETHODCALLTYPE *GetItem)(
25613        ICurrentItem *This,
25614        IShellItem **ppsi);
25615
25616    END_INTERFACE
25617} ICurrentItemVtbl;
25618
25619interface ICurrentItem {
25620    CONST_VTBL ICurrentItemVtbl* lpVtbl;
25621};
25622
25623#ifdef COBJMACROS
25624#ifndef WIDL_C_INLINE_WRAPPERS
25625/*** IUnknown methods ***/
25626#define ICurrentItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25627#define ICurrentItem_AddRef(This) (This)->lpVtbl->AddRef(This)
25628#define ICurrentItem_Release(This) (This)->lpVtbl->Release(This)
25629/*** IRelatedItem methods ***/
25630#define ICurrentItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
25631#define ICurrentItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
25632#else
25633/*** IUnknown methods ***/
25634static inline HRESULT ICurrentItem_QueryInterface(ICurrentItem* This,REFIID riid,void **ppvObject) {
25635    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25636}
25637static inline ULONG ICurrentItem_AddRef(ICurrentItem* This) {
25638    return This->lpVtbl->AddRef(This);
25639}
25640static inline ULONG ICurrentItem_Release(ICurrentItem* This) {
25641    return This->lpVtbl->Release(This);
25642}
25643/*** IRelatedItem methods ***/
25644static inline HRESULT ICurrentItem_GetItemIDList(ICurrentItem* This,PIDLIST_ABSOLUTE *ppidl) {
25645    return This->lpVtbl->GetItemIDList(This,ppidl);
25646}
25647static inline HRESULT ICurrentItem_GetItem(ICurrentItem* This,IShellItem **ppsi) {
25648    return This->lpVtbl->GetItem(This,ppsi);
25649}
25650#endif
25651#endif
25652
25653#endif
25654
25655
25656#endif  /* __ICurrentItem_INTERFACE_DEFINED__ */
25657
25658
25659/*****************************************************************************
25660 * ITransferMediumItem interface
25661 */
25662#ifndef __ITransferMediumItem_INTERFACE_DEFINED__
25663#define __ITransferMediumItem_INTERFACE_DEFINED__
25664
25665DEFINE_GUID(IID_ITransferMediumItem, 0x77f295d5, 0x2d6f, 0x4e19, 0xb8,0xae, 0x32,0x2f,0x3e,0x72,0x1a,0xb5);
25666#if defined(__cplusplus) && !defined(CINTERFACE)
25667MIDL_INTERFACE("77f295d5-2d6f-4e19-b8ae-322f3e721ab5")
25668ITransferMediumItem : public IRelatedItem
25669{
25670};
25671#ifdef __CRT_UUID_DECL
25672__CRT_UUID_DECL(ITransferMediumItem, 0x77f295d5, 0x2d6f, 0x4e19, 0xb8,0xae, 0x32,0x2f,0x3e,0x72,0x1a,0xb5)
25673#endif
25674#else
25675typedef struct ITransferMediumItemVtbl {
25676    BEGIN_INTERFACE
25677
25678    /*** IUnknown methods ***/
25679    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25680        ITransferMediumItem *This,
25681        REFIID riid,
25682        void **ppvObject);
25683
25684    ULONG (STDMETHODCALLTYPE *AddRef)(
25685        ITransferMediumItem *This);
25686
25687    ULONG (STDMETHODCALLTYPE *Release)(
25688        ITransferMediumItem *This);
25689
25690    /*** IRelatedItem methods ***/
25691    HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
25692        ITransferMediumItem *This,
25693        PIDLIST_ABSOLUTE *ppidl);
25694
25695    HRESULT (STDMETHODCALLTYPE *GetItem)(
25696        ITransferMediumItem *This,
25697        IShellItem **ppsi);
25698
25699    END_INTERFACE
25700} ITransferMediumItemVtbl;
25701
25702interface ITransferMediumItem {
25703    CONST_VTBL ITransferMediumItemVtbl* lpVtbl;
25704};
25705
25706#ifdef COBJMACROS
25707#ifndef WIDL_C_INLINE_WRAPPERS
25708/*** IUnknown methods ***/
25709#define ITransferMediumItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25710#define ITransferMediumItem_AddRef(This) (This)->lpVtbl->AddRef(This)
25711#define ITransferMediumItem_Release(This) (This)->lpVtbl->Release(This)
25712/*** IRelatedItem methods ***/
25713#define ITransferMediumItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
25714#define ITransferMediumItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
25715#else
25716/*** IUnknown methods ***/
25717static inline HRESULT ITransferMediumItem_QueryInterface(ITransferMediumItem* This,REFIID riid,void **ppvObject) {
25718    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25719}
25720static inline ULONG ITransferMediumItem_AddRef(ITransferMediumItem* This) {
25721    return This->lpVtbl->AddRef(This);
25722}
25723static inline ULONG ITransferMediumItem_Release(ITransferMediumItem* This) {
25724    return This->lpVtbl->Release(This);
25725}
25726/*** IRelatedItem methods ***/
25727static inline HRESULT ITransferMediumItem_GetItemIDList(ITransferMediumItem* This,PIDLIST_ABSOLUTE *ppidl) {
25728    return This->lpVtbl->GetItemIDList(This,ppidl);
25729}
25730static inline HRESULT ITransferMediumItem_GetItem(ITransferMediumItem* This,IShellItem **ppsi) {
25731    return This->lpVtbl->GetItem(This,ppsi);
25732}
25733#endif
25734#endif
25735
25736#endif
25737
25738
25739#endif  /* __ITransferMediumItem_INTERFACE_DEFINED__ */
25740
25741
25742/*****************************************************************************
25743 * IUseToBrowseItem interface
25744 */
25745#ifndef __IUseToBrowseItem_INTERFACE_DEFINED__
25746#define __IUseToBrowseItem_INTERFACE_DEFINED__
25747
25748DEFINE_GUID(IID_IUseToBrowseItem, 0x05edda5c, 0x98a3, 0x4717, 0x8a,0xdb, 0xc5,0xe7,0xda,0x99,0x1e,0xb1);
25749#if defined(__cplusplus) && !defined(CINTERFACE)
25750MIDL_INTERFACE("05edda5c-98a3-4717-8adb-c5e7da991eb1")
25751IUseToBrowseItem : public IRelatedItem
25752{
25753};
25754#ifdef __CRT_UUID_DECL
25755__CRT_UUID_DECL(IUseToBrowseItem, 0x05edda5c, 0x98a3, 0x4717, 0x8a,0xdb, 0xc5,0xe7,0xda,0x99,0x1e,0xb1)
25756#endif
25757#else
25758typedef struct IUseToBrowseItemVtbl {
25759    BEGIN_INTERFACE
25760
25761    /*** IUnknown methods ***/
25762    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25763        IUseToBrowseItem *This,
25764        REFIID riid,
25765        void **ppvObject);
25766
25767    ULONG (STDMETHODCALLTYPE *AddRef)(
25768        IUseToBrowseItem *This);
25769
25770    ULONG (STDMETHODCALLTYPE *Release)(
25771        IUseToBrowseItem *This);
25772
25773    /*** IRelatedItem methods ***/
25774    HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
25775        IUseToBrowseItem *This,
25776        PIDLIST_ABSOLUTE *ppidl);
25777
25778    HRESULT (STDMETHODCALLTYPE *GetItem)(
25779        IUseToBrowseItem *This,
25780        IShellItem **ppsi);
25781
25782    END_INTERFACE
25783} IUseToBrowseItemVtbl;
25784
25785interface IUseToBrowseItem {
25786    CONST_VTBL IUseToBrowseItemVtbl* lpVtbl;
25787};
25788
25789#ifdef COBJMACROS
25790#ifndef WIDL_C_INLINE_WRAPPERS
25791/*** IUnknown methods ***/
25792#define IUseToBrowseItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25793#define IUseToBrowseItem_AddRef(This) (This)->lpVtbl->AddRef(This)
25794#define IUseToBrowseItem_Release(This) (This)->lpVtbl->Release(This)
25795/*** IRelatedItem methods ***/
25796#define IUseToBrowseItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
25797#define IUseToBrowseItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
25798#else
25799/*** IUnknown methods ***/
25800static inline HRESULT IUseToBrowseItem_QueryInterface(IUseToBrowseItem* This,REFIID riid,void **ppvObject) {
25801    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25802}
25803static inline ULONG IUseToBrowseItem_AddRef(IUseToBrowseItem* This) {
25804    return This->lpVtbl->AddRef(This);
25805}
25806static inline ULONG IUseToBrowseItem_Release(IUseToBrowseItem* This) {
25807    return This->lpVtbl->Release(This);
25808}
25809/*** IRelatedItem methods ***/
25810static inline HRESULT IUseToBrowseItem_GetItemIDList(IUseToBrowseItem* This,PIDLIST_ABSOLUTE *ppidl) {
25811    return This->lpVtbl->GetItemIDList(This,ppidl);
25812}
25813static inline HRESULT IUseToBrowseItem_GetItem(IUseToBrowseItem* This,IShellItem **ppsi) {
25814    return This->lpVtbl->GetItem(This,ppsi);
25815}
25816#endif
25817#endif
25818
25819#endif
25820
25821
25822#endif  /* __IUseToBrowseItem_INTERFACE_DEFINED__ */
25823
25824
25825/*****************************************************************************
25826 * IDisplayItem interface
25827 */
25828#ifndef __IDisplayItem_INTERFACE_DEFINED__
25829#define __IDisplayItem_INTERFACE_DEFINED__
25830
25831DEFINE_GUID(IID_IDisplayItem, 0xc6fd5997, 0x9f6b, 0x4888, 0x87,0x03, 0x94,0xe8,0x0e,0x8c,0xde,0x3f);
25832#if defined(__cplusplus) && !defined(CINTERFACE)
25833MIDL_INTERFACE("c6fd5997-9f6b-4888-8703-94e80e8cde3f")
25834IDisplayItem : public IRelatedItem
25835{
25836};
25837#ifdef __CRT_UUID_DECL
25838__CRT_UUID_DECL(IDisplayItem, 0xc6fd5997, 0x9f6b, 0x4888, 0x87,0x03, 0x94,0xe8,0x0e,0x8c,0xde,0x3f)
25839#endif
25840#else
25841typedef struct IDisplayItemVtbl {
25842    BEGIN_INTERFACE
25843
25844    /*** IUnknown methods ***/
25845    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25846        IDisplayItem *This,
25847        REFIID riid,
25848        void **ppvObject);
25849
25850    ULONG (STDMETHODCALLTYPE *AddRef)(
25851        IDisplayItem *This);
25852
25853    ULONG (STDMETHODCALLTYPE *Release)(
25854        IDisplayItem *This);
25855
25856    /*** IRelatedItem methods ***/
25857    HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
25858        IDisplayItem *This,
25859        PIDLIST_ABSOLUTE *ppidl);
25860
25861    HRESULT (STDMETHODCALLTYPE *GetItem)(
25862        IDisplayItem *This,
25863        IShellItem **ppsi);
25864
25865    END_INTERFACE
25866} IDisplayItemVtbl;
25867
25868interface IDisplayItem {
25869    CONST_VTBL IDisplayItemVtbl* lpVtbl;
25870};
25871
25872#ifdef COBJMACROS
25873#ifndef WIDL_C_INLINE_WRAPPERS
25874/*** IUnknown methods ***/
25875#define IDisplayItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25876#define IDisplayItem_AddRef(This) (This)->lpVtbl->AddRef(This)
25877#define IDisplayItem_Release(This) (This)->lpVtbl->Release(This)
25878/*** IRelatedItem methods ***/
25879#define IDisplayItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
25880#define IDisplayItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
25881#else
25882/*** IUnknown methods ***/
25883static inline HRESULT IDisplayItem_QueryInterface(IDisplayItem* This,REFIID riid,void **ppvObject) {
25884    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25885}
25886static inline ULONG IDisplayItem_AddRef(IDisplayItem* This) {
25887    return This->lpVtbl->AddRef(This);
25888}
25889static inline ULONG IDisplayItem_Release(IDisplayItem* This) {
25890    return This->lpVtbl->Release(This);
25891}
25892/*** IRelatedItem methods ***/
25893static inline HRESULT IDisplayItem_GetItemIDList(IDisplayItem* This,PIDLIST_ABSOLUTE *ppidl) {
25894    return This->lpVtbl->GetItemIDList(This,ppidl);
25895}
25896static inline HRESULT IDisplayItem_GetItem(IDisplayItem* This,IShellItem **ppsi) {
25897    return This->lpVtbl->GetItem(This,ppsi);
25898}
25899#endif
25900#endif
25901
25902#endif
25903
25904
25905#endif  /* __IDisplayItem_INTERFACE_DEFINED__ */
25906
25907
25908/*****************************************************************************
25909 * IViewStateIdentityItem interface
25910 */
25911#ifndef __IViewStateIdentityItem_INTERFACE_DEFINED__
25912#define __IViewStateIdentityItem_INTERFACE_DEFINED__
25913
25914DEFINE_GUID(IID_IViewStateIdentityItem, 0x9d264146, 0xa94f, 0x4195, 0x9f,0x9f, 0x3b,0xb1,0x2c,0xe0,0xc9,0x55);
25915#if defined(__cplusplus) && !defined(CINTERFACE)
25916MIDL_INTERFACE("9d264146-a94f-4195-9f9f-3bb12ce0c955")
25917IViewStateIdentityItem : public IRelatedItem
25918{
25919};
25920#ifdef __CRT_UUID_DECL
25921__CRT_UUID_DECL(IViewStateIdentityItem, 0x9d264146, 0xa94f, 0x4195, 0x9f,0x9f, 0x3b,0xb1,0x2c,0xe0,0xc9,0x55)
25922#endif
25923#else
25924typedef struct IViewStateIdentityItemVtbl {
25925    BEGIN_INTERFACE
25926
25927    /*** IUnknown methods ***/
25928    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
25929        IViewStateIdentityItem *This,
25930        REFIID riid,
25931        void **ppvObject);
25932
25933    ULONG (STDMETHODCALLTYPE *AddRef)(
25934        IViewStateIdentityItem *This);
25935
25936    ULONG (STDMETHODCALLTYPE *Release)(
25937        IViewStateIdentityItem *This);
25938
25939    /*** IRelatedItem methods ***/
25940    HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
25941        IViewStateIdentityItem *This,
25942        PIDLIST_ABSOLUTE *ppidl);
25943
25944    HRESULT (STDMETHODCALLTYPE *GetItem)(
25945        IViewStateIdentityItem *This,
25946        IShellItem **ppsi);
25947
25948    END_INTERFACE
25949} IViewStateIdentityItemVtbl;
25950
25951interface IViewStateIdentityItem {
25952    CONST_VTBL IViewStateIdentityItemVtbl* lpVtbl;
25953};
25954
25955#ifdef COBJMACROS
25956#ifndef WIDL_C_INLINE_WRAPPERS
25957/*** IUnknown methods ***/
25958#define IViewStateIdentityItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
25959#define IViewStateIdentityItem_AddRef(This) (This)->lpVtbl->AddRef(This)
25960#define IViewStateIdentityItem_Release(This) (This)->lpVtbl->Release(This)
25961/*** IRelatedItem methods ***/
25962#define IViewStateIdentityItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
25963#define IViewStateIdentityItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
25964#else
25965/*** IUnknown methods ***/
25966static inline HRESULT IViewStateIdentityItem_QueryInterface(IViewStateIdentityItem* This,REFIID riid,void **ppvObject) {
25967    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
25968}
25969static inline ULONG IViewStateIdentityItem_AddRef(IViewStateIdentityItem* This) {
25970    return This->lpVtbl->AddRef(This);
25971}
25972static inline ULONG IViewStateIdentityItem_Release(IViewStateIdentityItem* This) {
25973    return This->lpVtbl->Release(This);
25974}
25975/*** IRelatedItem methods ***/
25976static inline HRESULT IViewStateIdentityItem_GetItemIDList(IViewStateIdentityItem* This,PIDLIST_ABSOLUTE *ppidl) {
25977    return This->lpVtbl->GetItemIDList(This,ppidl);
25978}
25979static inline HRESULT IViewStateIdentityItem_GetItem(IViewStateIdentityItem* This,IShellItem **ppsi) {
25980    return This->lpVtbl->GetItem(This,ppsi);
25981}
25982#endif
25983#endif
25984
25985#endif
25986
25987
25988#endif  /* __IViewStateIdentityItem_INTERFACE_DEFINED__ */
25989
25990
25991/*****************************************************************************
25992 * IPreviewItem interface
25993 */
25994#ifndef __IPreviewItem_INTERFACE_DEFINED__
25995#define __IPreviewItem_INTERFACE_DEFINED__
25996
25997DEFINE_GUID(IID_IPreviewItem, 0x36149969, 0x0a8f, 0x49c8, 0x8b,0x00, 0x4a,0xec,0xb2,0x02,0x22,0xfb);
25998#if defined(__cplusplus) && !defined(CINTERFACE)
25999MIDL_INTERFACE("36149969-0a8f-49c8-8b00-4aecb20222fb")
26000IPreviewItem : public IRelatedItem
26001{
26002};
26003#ifdef __CRT_UUID_DECL
26004__CRT_UUID_DECL(IPreviewItem, 0x36149969, 0x0a8f, 0x49c8, 0x8b,0x00, 0x4a,0xec,0xb2,0x02,0x22,0xfb)
26005#endif
26006#else
26007typedef struct IPreviewItemVtbl {
26008    BEGIN_INTERFACE
26009
26010    /*** IUnknown methods ***/
26011    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26012        IPreviewItem *This,
26013        REFIID riid,
26014        void **ppvObject);
26015
26016    ULONG (STDMETHODCALLTYPE *AddRef)(
26017        IPreviewItem *This);
26018
26019    ULONG (STDMETHODCALLTYPE *Release)(
26020        IPreviewItem *This);
26021
26022    /*** IRelatedItem methods ***/
26023    HRESULT (STDMETHODCALLTYPE *GetItemIDList)(
26024        IPreviewItem *This,
26025        PIDLIST_ABSOLUTE *ppidl);
26026
26027    HRESULT (STDMETHODCALLTYPE *GetItem)(
26028        IPreviewItem *This,
26029        IShellItem **ppsi);
26030
26031    END_INTERFACE
26032} IPreviewItemVtbl;
26033
26034interface IPreviewItem {
26035    CONST_VTBL IPreviewItemVtbl* lpVtbl;
26036};
26037
26038#ifdef COBJMACROS
26039#ifndef WIDL_C_INLINE_WRAPPERS
26040/*** IUnknown methods ***/
26041#define IPreviewItem_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26042#define IPreviewItem_AddRef(This) (This)->lpVtbl->AddRef(This)
26043#define IPreviewItem_Release(This) (This)->lpVtbl->Release(This)
26044/*** IRelatedItem methods ***/
26045#define IPreviewItem_GetItemIDList(This,ppidl) (This)->lpVtbl->GetItemIDList(This,ppidl)
26046#define IPreviewItem_GetItem(This,ppsi) (This)->lpVtbl->GetItem(This,ppsi)
26047#else
26048/*** IUnknown methods ***/
26049static inline HRESULT IPreviewItem_QueryInterface(IPreviewItem* This,REFIID riid,void **ppvObject) {
26050    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26051}
26052static inline ULONG IPreviewItem_AddRef(IPreviewItem* This) {
26053    return This->lpVtbl->AddRef(This);
26054}
26055static inline ULONG IPreviewItem_Release(IPreviewItem* This) {
26056    return This->lpVtbl->Release(This);
26057}
26058/*** IRelatedItem methods ***/
26059static inline HRESULT IPreviewItem_GetItemIDList(IPreviewItem* This,PIDLIST_ABSOLUTE *ppidl) {
26060    return This->lpVtbl->GetItemIDList(This,ppidl);
26061}
26062static inline HRESULT IPreviewItem_GetItem(IPreviewItem* This,IShellItem **ppsi) {
26063    return This->lpVtbl->GetItem(This,ppsi);
26064}
26065#endif
26066#endif
26067
26068#endif
26069
26070
26071#endif  /* __IPreviewItem_INTERFACE_DEFINED__ */
26072
26073#endif
26074
26075/*****************************************************************************
26076 * IDestinationStreamFactory interface
26077 */
26078#ifndef __IDestinationStreamFactory_INTERFACE_DEFINED__
26079#define __IDestinationStreamFactory_INTERFACE_DEFINED__
26080
26081DEFINE_GUID(IID_IDestinationStreamFactory, 0x8a87781b, 0x39a7, 0x4a1f, 0xaa,0xb3, 0xa3,0x9b,0x9c,0x34,0xa7,0xd9);
26082#if defined(__cplusplus) && !defined(CINTERFACE)
26083MIDL_INTERFACE("8a87781b-39a7-4a1f-aab3-a39b9c34a7d9")
26084IDestinationStreamFactory : public IUnknown
26085{
26086    virtual HRESULT STDMETHODCALLTYPE GetDestinationStream(
26087        IStream **ppstm) = 0;
26088
26089};
26090#ifdef __CRT_UUID_DECL
26091__CRT_UUID_DECL(IDestinationStreamFactory, 0x8a87781b, 0x39a7, 0x4a1f, 0xaa,0xb3, 0xa3,0x9b,0x9c,0x34,0xa7,0xd9)
26092#endif
26093#else
26094typedef struct IDestinationStreamFactoryVtbl {
26095    BEGIN_INTERFACE
26096
26097    /*** IUnknown methods ***/
26098    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26099        IDestinationStreamFactory *This,
26100        REFIID riid,
26101        void **ppvObject);
26102
26103    ULONG (STDMETHODCALLTYPE *AddRef)(
26104        IDestinationStreamFactory *This);
26105
26106    ULONG (STDMETHODCALLTYPE *Release)(
26107        IDestinationStreamFactory *This);
26108
26109    /*** IDestinationStreamFactory methods ***/
26110    HRESULT (STDMETHODCALLTYPE *GetDestinationStream)(
26111        IDestinationStreamFactory *This,
26112        IStream **ppstm);
26113
26114    END_INTERFACE
26115} IDestinationStreamFactoryVtbl;
26116
26117interface IDestinationStreamFactory {
26118    CONST_VTBL IDestinationStreamFactoryVtbl* lpVtbl;
26119};
26120
26121#ifdef COBJMACROS
26122#ifndef WIDL_C_INLINE_WRAPPERS
26123/*** IUnknown methods ***/
26124#define IDestinationStreamFactory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26125#define IDestinationStreamFactory_AddRef(This) (This)->lpVtbl->AddRef(This)
26126#define IDestinationStreamFactory_Release(This) (This)->lpVtbl->Release(This)
26127/*** IDestinationStreamFactory methods ***/
26128#define IDestinationStreamFactory_GetDestinationStream(This,ppstm) (This)->lpVtbl->GetDestinationStream(This,ppstm)
26129#else
26130/*** IUnknown methods ***/
26131static inline HRESULT IDestinationStreamFactory_QueryInterface(IDestinationStreamFactory* This,REFIID riid,void **ppvObject) {
26132    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26133}
26134static inline ULONG IDestinationStreamFactory_AddRef(IDestinationStreamFactory* This) {
26135    return This->lpVtbl->AddRef(This);
26136}
26137static inline ULONG IDestinationStreamFactory_Release(IDestinationStreamFactory* This) {
26138    return This->lpVtbl->Release(This);
26139}
26140/*** IDestinationStreamFactory methods ***/
26141static inline HRESULT IDestinationStreamFactory_GetDestinationStream(IDestinationStreamFactory* This,IStream **ppstm) {
26142    return This->lpVtbl->GetDestinationStream(This,ppstm);
26143}
26144#endif
26145#endif
26146
26147#endif
26148
26149
26150#endif  /* __IDestinationStreamFactory_INTERFACE_DEFINED__ */
26151
26152
26153enum _NMCII_FLAGS {
26154    NMCII_NONE = 0x0,
26155    NMCII_ITEMS = 0x1,
26156    NMCII_FOLDERS = 0x2
26157};
26158
26159typedef int NMCII_FLAGS;
26160
26161enum _NMCSAEI_FLAGS {
26162    NMCSAEI_SELECT = 0x0,
26163    NMCSAEI_EDIT = 0x1
26164};
26165
26166typedef int NMCSAEI_FLAGS;
26167
26168/*****************************************************************************
26169 * INewMenuClient interface
26170 */
26171#ifndef __INewMenuClient_INTERFACE_DEFINED__
26172#define __INewMenuClient_INTERFACE_DEFINED__
26173
26174DEFINE_GUID(IID_INewMenuClient, 0xdcb07fdc, 0x3bb5, 0x451c, 0x90,0xbe, 0x96,0x66,0x44,0xfe,0xd7,0xb0);
26175#if defined(__cplusplus) && !defined(CINTERFACE)
26176MIDL_INTERFACE("dcb07fdc-3bb5-451c-90be-966644fed7b0")
26177INewMenuClient : public IUnknown
26178{
26179    virtual HRESULT STDMETHODCALLTYPE IncludeItems(
26180        NMCII_FLAGS *pflags) = 0;
26181
26182    virtual HRESULT STDMETHODCALLTYPE SelectAndEditItem(
26183        PCIDLIST_ABSOLUTE pidlItem,
26184        NMCSAEI_FLAGS flags) = 0;
26185
26186};
26187#ifdef __CRT_UUID_DECL
26188__CRT_UUID_DECL(INewMenuClient, 0xdcb07fdc, 0x3bb5, 0x451c, 0x90,0xbe, 0x96,0x66,0x44,0xfe,0xd7,0xb0)
26189#endif
26190#else
26191typedef struct INewMenuClientVtbl {
26192    BEGIN_INTERFACE
26193
26194    /*** IUnknown methods ***/
26195    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26196        INewMenuClient *This,
26197        REFIID riid,
26198        void **ppvObject);
26199
26200    ULONG (STDMETHODCALLTYPE *AddRef)(
26201        INewMenuClient *This);
26202
26203    ULONG (STDMETHODCALLTYPE *Release)(
26204        INewMenuClient *This);
26205
26206    /*** INewMenuClient methods ***/
26207    HRESULT (STDMETHODCALLTYPE *IncludeItems)(
26208        INewMenuClient *This,
26209        NMCII_FLAGS *pflags);
26210
26211    HRESULT (STDMETHODCALLTYPE *SelectAndEditItem)(
26212        INewMenuClient *This,
26213        PCIDLIST_ABSOLUTE pidlItem,
26214        NMCSAEI_FLAGS flags);
26215
26216    END_INTERFACE
26217} INewMenuClientVtbl;
26218
26219interface INewMenuClient {
26220    CONST_VTBL INewMenuClientVtbl* lpVtbl;
26221};
26222
26223#ifdef COBJMACROS
26224#ifndef WIDL_C_INLINE_WRAPPERS
26225/*** IUnknown methods ***/
26226#define INewMenuClient_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26227#define INewMenuClient_AddRef(This) (This)->lpVtbl->AddRef(This)
26228#define INewMenuClient_Release(This) (This)->lpVtbl->Release(This)
26229/*** INewMenuClient methods ***/
26230#define INewMenuClient_IncludeItems(This,pflags) (This)->lpVtbl->IncludeItems(This,pflags)
26231#define INewMenuClient_SelectAndEditItem(This,pidlItem,flags) (This)->lpVtbl->SelectAndEditItem(This,pidlItem,flags)
26232#else
26233/*** IUnknown methods ***/
26234static inline HRESULT INewMenuClient_QueryInterface(INewMenuClient* This,REFIID riid,void **ppvObject) {
26235    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26236}
26237static inline ULONG INewMenuClient_AddRef(INewMenuClient* This) {
26238    return This->lpVtbl->AddRef(This);
26239}
26240static inline ULONG INewMenuClient_Release(INewMenuClient* This) {
26241    return This->lpVtbl->Release(This);
26242}
26243/*** INewMenuClient methods ***/
26244static inline HRESULT INewMenuClient_IncludeItems(INewMenuClient* This,NMCII_FLAGS *pflags) {
26245    return This->lpVtbl->IncludeItems(This,pflags);
26246}
26247static inline HRESULT INewMenuClient_SelectAndEditItem(INewMenuClient* This,PCIDLIST_ABSOLUTE pidlItem,NMCSAEI_FLAGS flags) {
26248    return This->lpVtbl->SelectAndEditItem(This,pidlItem,flags);
26249}
26250#endif
26251#endif
26252
26253#endif
26254
26255
26256#endif  /* __INewMenuClient_INTERFACE_DEFINED__ */
26257
26258
26259#define SID_SNewMenuClient   IID_INewMenuClient
26260
26261DEFINE_GUID(SID_SCommandBarState, 0xB99EAA5C, 0x3850, 0x4400, 0xBC, 0x33, 0x2C, 0xE5, 0x34, 0x04, 0x8B, 0xF8);
26262
26263#if _WIN32_IE >= _WIN32_IE_IE70
26264/*****************************************************************************
26265 * IInitializeWithBindCtx interface
26266 */
26267#ifndef __IInitializeWithBindCtx_INTERFACE_DEFINED__
26268#define __IInitializeWithBindCtx_INTERFACE_DEFINED__
26269
26270DEFINE_GUID(IID_IInitializeWithBindCtx, 0x71c0d2bc, 0x726d, 0x45cc, 0xa6,0xc0, 0x2e,0x31,0xc1,0xdb,0x21,0x59);
26271#if defined(__cplusplus) && !defined(CINTERFACE)
26272MIDL_INTERFACE("71c0d2bc-726d-45cc-a6c0-2e31c1db2159")
26273IInitializeWithBindCtx : public IUnknown
26274{
26275    virtual HRESULT STDMETHODCALLTYPE Initialize(
26276        IBindCtx *pbc) = 0;
26277
26278};
26279#ifdef __CRT_UUID_DECL
26280__CRT_UUID_DECL(IInitializeWithBindCtx, 0x71c0d2bc, 0x726d, 0x45cc, 0xa6,0xc0, 0x2e,0x31,0xc1,0xdb,0x21,0x59)
26281#endif
26282#else
26283typedef struct IInitializeWithBindCtxVtbl {
26284    BEGIN_INTERFACE
26285
26286    /*** IUnknown methods ***/
26287    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26288        IInitializeWithBindCtx *This,
26289        REFIID riid,
26290        void **ppvObject);
26291
26292    ULONG (STDMETHODCALLTYPE *AddRef)(
26293        IInitializeWithBindCtx *This);
26294
26295    ULONG (STDMETHODCALLTYPE *Release)(
26296        IInitializeWithBindCtx *This);
26297
26298    /*** IInitializeWithBindCtx methods ***/
26299    HRESULT (STDMETHODCALLTYPE *Initialize)(
26300        IInitializeWithBindCtx *This,
26301        IBindCtx *pbc);
26302
26303    END_INTERFACE
26304} IInitializeWithBindCtxVtbl;
26305
26306interface IInitializeWithBindCtx {
26307    CONST_VTBL IInitializeWithBindCtxVtbl* lpVtbl;
26308};
26309
26310#ifdef COBJMACROS
26311#ifndef WIDL_C_INLINE_WRAPPERS
26312/*** IUnknown methods ***/
26313#define IInitializeWithBindCtx_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26314#define IInitializeWithBindCtx_AddRef(This) (This)->lpVtbl->AddRef(This)
26315#define IInitializeWithBindCtx_Release(This) (This)->lpVtbl->Release(This)
26316/*** IInitializeWithBindCtx methods ***/
26317#define IInitializeWithBindCtx_Initialize(This,pbc) (This)->lpVtbl->Initialize(This,pbc)
26318#else
26319/*** IUnknown methods ***/
26320static inline HRESULT IInitializeWithBindCtx_QueryInterface(IInitializeWithBindCtx* This,REFIID riid,void **ppvObject) {
26321    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26322}
26323static inline ULONG IInitializeWithBindCtx_AddRef(IInitializeWithBindCtx* This) {
26324    return This->lpVtbl->AddRef(This);
26325}
26326static inline ULONG IInitializeWithBindCtx_Release(IInitializeWithBindCtx* This) {
26327    return This->lpVtbl->Release(This);
26328}
26329/*** IInitializeWithBindCtx methods ***/
26330static inline HRESULT IInitializeWithBindCtx_Initialize(IInitializeWithBindCtx* This,IBindCtx *pbc) {
26331    return This->lpVtbl->Initialize(This,pbc);
26332}
26333#endif
26334#endif
26335
26336#endif
26337
26338
26339#endif  /* __IInitializeWithBindCtx_INTERFACE_DEFINED__ */
26340
26341
26342/*****************************************************************************
26343 * IShellItemFilter interface
26344 */
26345#ifndef __IShellItemFilter_INTERFACE_DEFINED__
26346#define __IShellItemFilter_INTERFACE_DEFINED__
26347
26348DEFINE_GUID(IID_IShellItemFilter, 0x2659b475, 0xeeb8, 0x48b7, 0x8f,0x07, 0xb3,0x78,0x81,0x0f,0x48,0xcf);
26349#if defined(__cplusplus) && !defined(CINTERFACE)
26350MIDL_INTERFACE("2659b475-eeb8-48b7-8f07-b378810f48cf")
26351IShellItemFilter : public IUnknown
26352{
26353    virtual HRESULT STDMETHODCALLTYPE IncludeItem(
26354        IShellItem *psi) = 0;
26355
26356    virtual HRESULT STDMETHODCALLTYPE GetEnumFlagsForItem(
26357        IShellItem *psi,
26358        SHCONTF *pgrfFlags) = 0;
26359
26360};
26361#ifdef __CRT_UUID_DECL
26362__CRT_UUID_DECL(IShellItemFilter, 0x2659b475, 0xeeb8, 0x48b7, 0x8f,0x07, 0xb3,0x78,0x81,0x0f,0x48,0xcf)
26363#endif
26364#else
26365typedef struct IShellItemFilterVtbl {
26366    BEGIN_INTERFACE
26367
26368    /*** IUnknown methods ***/
26369    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26370        IShellItemFilter *This,
26371        REFIID riid,
26372        void **ppvObject);
26373
26374    ULONG (STDMETHODCALLTYPE *AddRef)(
26375        IShellItemFilter *This);
26376
26377    ULONG (STDMETHODCALLTYPE *Release)(
26378        IShellItemFilter *This);
26379
26380    /*** IShellItemFilter methods ***/
26381    HRESULT (STDMETHODCALLTYPE *IncludeItem)(
26382        IShellItemFilter *This,
26383        IShellItem *psi);
26384
26385    HRESULT (STDMETHODCALLTYPE *GetEnumFlagsForItem)(
26386        IShellItemFilter *This,
26387        IShellItem *psi,
26388        SHCONTF *pgrfFlags);
26389
26390    END_INTERFACE
26391} IShellItemFilterVtbl;
26392
26393interface IShellItemFilter {
26394    CONST_VTBL IShellItemFilterVtbl* lpVtbl;
26395};
26396
26397#ifdef COBJMACROS
26398#ifndef WIDL_C_INLINE_WRAPPERS
26399/*** IUnknown methods ***/
26400#define IShellItemFilter_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26401#define IShellItemFilter_AddRef(This) (This)->lpVtbl->AddRef(This)
26402#define IShellItemFilter_Release(This) (This)->lpVtbl->Release(This)
26403/*** IShellItemFilter methods ***/
26404#define IShellItemFilter_IncludeItem(This,psi) (This)->lpVtbl->IncludeItem(This,psi)
26405#define IShellItemFilter_GetEnumFlagsForItem(This,psi,pgrfFlags) (This)->lpVtbl->GetEnumFlagsForItem(This,psi,pgrfFlags)
26406#else
26407/*** IUnknown methods ***/
26408static inline HRESULT IShellItemFilter_QueryInterface(IShellItemFilter* This,REFIID riid,void **ppvObject) {
26409    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26410}
26411static inline ULONG IShellItemFilter_AddRef(IShellItemFilter* This) {
26412    return This->lpVtbl->AddRef(This);
26413}
26414static inline ULONG IShellItemFilter_Release(IShellItemFilter* This) {
26415    return This->lpVtbl->Release(This);
26416}
26417/*** IShellItemFilter methods ***/
26418static inline HRESULT IShellItemFilter_IncludeItem(IShellItemFilter* This,IShellItem *psi) {
26419    return This->lpVtbl->IncludeItem(This,psi);
26420}
26421static inline HRESULT IShellItemFilter_GetEnumFlagsForItem(IShellItemFilter* This,IShellItem *psi,SHCONTF *pgrfFlags) {
26422    return This->lpVtbl->GetEnumFlagsForItem(This,psi,pgrfFlags);
26423}
26424#endif
26425#endif
26426
26427#endif
26428
26429
26430#endif  /* __IShellItemFilter_INTERFACE_DEFINED__ */
26431
26432#endif
26433
26434/*****************************************************************************
26435 * INameSpaceTreeControl interface
26436 */
26437#ifndef __INameSpaceTreeControl_INTERFACE_DEFINED__
26438#define __INameSpaceTreeControl_INTERFACE_DEFINED__
26439
26440enum _NSTCSTYLE {
26441    NSTCS_HASEXPANDOS = 0x1,
26442    NSTCS_HASLINES = 0x2,
26443    NSTCS_SINGLECLICKEXPAND = 0x4,
26444    NSTCS_FULLROWSELECT = 0x8,
26445    NSTCS_SPRINGEXPAND = 0x10,
26446    NSTCS_HORIZONTALSCROLL = 0x20,
26447    NSTCS_ROOTHASEXPANDO = 0x40,
26448    NSTCS_SHOWSELECTIONALWAYS = 0x80,
26449    NSTCS_NOINFOTIP = 0x200,
26450    NSTCS_EVENHEIGHT = 0x400,
26451    NSTCS_NOREPLACEOPEN = 0x800,
26452    NSTCS_DISABLEDRAGDROP = 0x1000,
26453    NSTCS_NOORDERSTREAM = 0x2000,
26454    NSTCS_RICHTOOLTIP = 0x4000,
26455    NSTCS_BORDER = 0x8000,
26456    NSTCS_NOEDITLABELS = 0x10000,
26457    NSTCS_TABSTOP = 0x20000,
26458    NSTCS_FAVORITESMODE = 0x80000,
26459    NSTCS_AUTOHSCROLL = 0x100000,
26460    NSTCS_FADEINOUTEXPANDOS = 0x200000,
26461    NSTCS_EMPTYTEXT = 0x400000,
26462    NSTCS_CHECKBOXES = 0x800000,
26463    NSTCS_PARTIALCHECKBOXES = 0x1000000,
26464    NSTCS_EXCLUSIONCHECKBOXES = 0x2000000,
26465    NSTCS_DIMMEDCHECKBOXES = 0x4000000,
26466    NSTCS_NOINDENTCHECKS = 0x8000000,
26467    NSTCS_ALLOWJUNCTIONS = 0x10000000,
26468    NSTCS_SHOWTABSBUTTON = 0x20000000,
26469    NSTCS_SHOWDELETEBUTTON = 0x40000000,
26470    NSTCS_SHOWREFRESHBUTTON = (int)0x80000000
26471};
26472
26473typedef DWORD NSTCSTYLE;
26474
26475enum _NSTCROOTSTYLE {
26476    NSTCRS_VISIBLE = 0x0,
26477    NSTCRS_HIDDEN = 0x1,
26478    NSTCRS_EXPANDED = 0x2
26479};
26480
26481typedef DWORD NSTCROOTSTYLE;
26482
26483enum _NSTCITEMSTATE {
26484    NSTCIS_NONE = 0x0,
26485    NSTCIS_SELECTED = 0x1,
26486    NSTCIS_EXPANDED = 0x2,
26487    NSTCIS_BOLD = 0x4,
26488    NSTCIS_DISABLED = 0x8,
26489    NSTCIS_SELECTEDNOEXPAND = 0x10
26490};
26491
26492typedef DWORD NSTCITEMSTATE;
26493
26494typedef enum NSTCGNI {
26495    NSTCGNI_NEXT = 0,
26496    NSTCGNI_NEXTVISIBLE = 1,
26497    NSTCGNI_PREV = 2,
26498    NSTCGNI_PREVVISIBLE = 3,
26499    NSTCGNI_PARENT = 4,
26500    NSTCGNI_CHILD = 5,
26501    NSTCGNI_FIRSTVISIBLE = 6,
26502    NSTCGNI_LASTVISIBLE = 7
26503} NSTCGNI;
26504
26505DEFINE_GUID(IID_INameSpaceTreeControl, 0x028212a3, 0xb627, 0x47e9, 0x88,0x56, 0xc1,0x42,0x65,0x55,0x4e,0x4f);
26506#if defined(__cplusplus) && !defined(CINTERFACE)
26507MIDL_INTERFACE("028212a3-b627-47e9-8856-c14265554e4f")
26508INameSpaceTreeControl : public IUnknown
26509{
26510    virtual HRESULT STDMETHODCALLTYPE Initialize(
26511        HWND hwndParent,
26512        RECT *prc,
26513        NSTCSTYLE nsctsFlags) = 0;
26514
26515    virtual HRESULT STDMETHODCALLTYPE TreeAdvise(
26516        IUnknown *punk,
26517        DWORD *pdwCookie) = 0;
26518
26519    virtual HRESULT STDMETHODCALLTYPE TreeUnadvise(
26520        DWORD dwCookie) = 0;
26521
26522    virtual HRESULT STDMETHODCALLTYPE AppendRoot(
26523        IShellItem *psiRoot,
26524        SHCONTF grfEnumFlags,
26525        NSTCROOTSTYLE grfRootStyle,
26526        IShellItemFilter *pif) = 0;
26527
26528    virtual HRESULT STDMETHODCALLTYPE InsertRoot(
26529        int iIndex,
26530        IShellItem *psiRoot,
26531        SHCONTF grfEnumFlags,
26532        NSTCROOTSTYLE grfRootStyle,
26533        IShellItemFilter *pif) = 0;
26534
26535    virtual HRESULT STDMETHODCALLTYPE RemoveRoot(
26536        IShellItem *psiRoot) = 0;
26537
26538    virtual HRESULT STDMETHODCALLTYPE RemoveAllRoots(
26539        ) = 0;
26540
26541    virtual HRESULT STDMETHODCALLTYPE GetRootItems(
26542        IShellItemArray **ppsiaRootItems) = 0;
26543
26544    virtual HRESULT STDMETHODCALLTYPE SetItemState(
26545        IShellItem *psi,
26546        NSTCITEMSTATE nstcisMask,
26547        NSTCITEMSTATE nstcisFlags) = 0;
26548
26549    virtual HRESULT STDMETHODCALLTYPE GetItemState(
26550        IShellItem *psi,
26551        NSTCITEMSTATE nstcisMask,
26552        NSTCITEMSTATE *pnstcisFlags) = 0;
26553
26554    virtual HRESULT STDMETHODCALLTYPE GetSelectedItems(
26555        IShellItemArray **psiaItems) = 0;
26556
26557    virtual HRESULT STDMETHODCALLTYPE GetItemCustomState(
26558        IShellItem *psi,
26559        int *piStateNumber) = 0;
26560
26561    virtual HRESULT STDMETHODCALLTYPE SetItemCustomState(
26562        IShellItem *psi,
26563        int iStateNumber) = 0;
26564
26565    virtual HRESULT STDMETHODCALLTYPE EnsureItemVisible(
26566        IShellItem *psi) = 0;
26567
26568    virtual HRESULT STDMETHODCALLTYPE SetTheme(
26569        LPCWSTR pszTheme) = 0;
26570
26571    virtual HRESULT STDMETHODCALLTYPE GetNextItem(
26572        IShellItem *psi,
26573        NSTCGNI nstcgi,
26574        IShellItem **ppsiNext) = 0;
26575
26576    virtual HRESULT STDMETHODCALLTYPE HitTest(
26577        POINT *ppt,
26578        IShellItem **ppsiOut) = 0;
26579
26580    virtual HRESULT STDMETHODCALLTYPE GetItemRect(
26581        IShellItem *psi,
26582        RECT *prect) = 0;
26583
26584    virtual HRESULT STDMETHODCALLTYPE CollapseAll(
26585        ) = 0;
26586
26587};
26588#ifdef __CRT_UUID_DECL
26589__CRT_UUID_DECL(INameSpaceTreeControl, 0x028212a3, 0xb627, 0x47e9, 0x88,0x56, 0xc1,0x42,0x65,0x55,0x4e,0x4f)
26590#endif
26591#else
26592typedef struct INameSpaceTreeControlVtbl {
26593    BEGIN_INTERFACE
26594
26595    /*** IUnknown methods ***/
26596    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26597        INameSpaceTreeControl *This,
26598        REFIID riid,
26599        void **ppvObject);
26600
26601    ULONG (STDMETHODCALLTYPE *AddRef)(
26602        INameSpaceTreeControl *This);
26603
26604    ULONG (STDMETHODCALLTYPE *Release)(
26605        INameSpaceTreeControl *This);
26606
26607    /*** INameSpaceTreeControl methods ***/
26608    HRESULT (STDMETHODCALLTYPE *Initialize)(
26609        INameSpaceTreeControl *This,
26610        HWND hwndParent,
26611        RECT *prc,
26612        NSTCSTYLE nsctsFlags);
26613
26614    HRESULT (STDMETHODCALLTYPE *TreeAdvise)(
26615        INameSpaceTreeControl *This,
26616        IUnknown *punk,
26617        DWORD *pdwCookie);
26618
26619    HRESULT (STDMETHODCALLTYPE *TreeUnadvise)(
26620        INameSpaceTreeControl *This,
26621        DWORD dwCookie);
26622
26623    HRESULT (STDMETHODCALLTYPE *AppendRoot)(
26624        INameSpaceTreeControl *This,
26625        IShellItem *psiRoot,
26626        SHCONTF grfEnumFlags,
26627        NSTCROOTSTYLE grfRootStyle,
26628        IShellItemFilter *pif);
26629
26630    HRESULT (STDMETHODCALLTYPE *InsertRoot)(
26631        INameSpaceTreeControl *This,
26632        int iIndex,
26633        IShellItem *psiRoot,
26634        SHCONTF grfEnumFlags,
26635        NSTCROOTSTYLE grfRootStyle,
26636        IShellItemFilter *pif);
26637
26638    HRESULT (STDMETHODCALLTYPE *RemoveRoot)(
26639        INameSpaceTreeControl *This,
26640        IShellItem *psiRoot);
26641
26642    HRESULT (STDMETHODCALLTYPE *RemoveAllRoots)(
26643        INameSpaceTreeControl *This);
26644
26645    HRESULT (STDMETHODCALLTYPE *GetRootItems)(
26646        INameSpaceTreeControl *This,
26647        IShellItemArray **ppsiaRootItems);
26648
26649    HRESULT (STDMETHODCALLTYPE *SetItemState)(
26650        INameSpaceTreeControl *This,
26651        IShellItem *psi,
26652        NSTCITEMSTATE nstcisMask,
26653        NSTCITEMSTATE nstcisFlags);
26654
26655    HRESULT (STDMETHODCALLTYPE *GetItemState)(
26656        INameSpaceTreeControl *This,
26657        IShellItem *psi,
26658        NSTCITEMSTATE nstcisMask,
26659        NSTCITEMSTATE *pnstcisFlags);
26660
26661    HRESULT (STDMETHODCALLTYPE *GetSelectedItems)(
26662        INameSpaceTreeControl *This,
26663        IShellItemArray **psiaItems);
26664
26665    HRESULT (STDMETHODCALLTYPE *GetItemCustomState)(
26666        INameSpaceTreeControl *This,
26667        IShellItem *psi,
26668        int *piStateNumber);
26669
26670    HRESULT (STDMETHODCALLTYPE *SetItemCustomState)(
26671        INameSpaceTreeControl *This,
26672        IShellItem *psi,
26673        int iStateNumber);
26674
26675    HRESULT (STDMETHODCALLTYPE *EnsureItemVisible)(
26676        INameSpaceTreeControl *This,
26677        IShellItem *psi);
26678
26679    HRESULT (STDMETHODCALLTYPE *SetTheme)(
26680        INameSpaceTreeControl *This,
26681        LPCWSTR pszTheme);
26682
26683    HRESULT (STDMETHODCALLTYPE *GetNextItem)(
26684        INameSpaceTreeControl *This,
26685        IShellItem *psi,
26686        NSTCGNI nstcgi,
26687        IShellItem **ppsiNext);
26688
26689    HRESULT (STDMETHODCALLTYPE *HitTest)(
26690        INameSpaceTreeControl *This,
26691        POINT *ppt,
26692        IShellItem **ppsiOut);
26693
26694    HRESULT (STDMETHODCALLTYPE *GetItemRect)(
26695        INameSpaceTreeControl *This,
26696        IShellItem *psi,
26697        RECT *prect);
26698
26699    HRESULT (STDMETHODCALLTYPE *CollapseAll)(
26700        INameSpaceTreeControl *This);
26701
26702    END_INTERFACE
26703} INameSpaceTreeControlVtbl;
26704
26705interface INameSpaceTreeControl {
26706    CONST_VTBL INameSpaceTreeControlVtbl* lpVtbl;
26707};
26708
26709#ifdef COBJMACROS
26710#ifndef WIDL_C_INLINE_WRAPPERS
26711/*** IUnknown methods ***/
26712#define INameSpaceTreeControl_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26713#define INameSpaceTreeControl_AddRef(This) (This)->lpVtbl->AddRef(This)
26714#define INameSpaceTreeControl_Release(This) (This)->lpVtbl->Release(This)
26715/*** INameSpaceTreeControl methods ***/
26716#define INameSpaceTreeControl_Initialize(This,hwndParent,prc,nsctsFlags) (This)->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags)
26717#define INameSpaceTreeControl_TreeAdvise(This,punk,pdwCookie) (This)->lpVtbl->TreeAdvise(This,punk,pdwCookie)
26718#define INameSpaceTreeControl_TreeUnadvise(This,dwCookie) (This)->lpVtbl->TreeUnadvise(This,dwCookie)
26719#define INameSpaceTreeControl_AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif)
26720#define INameSpaceTreeControl_InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif)
26721#define INameSpaceTreeControl_RemoveRoot(This,psiRoot) (This)->lpVtbl->RemoveRoot(This,psiRoot)
26722#define INameSpaceTreeControl_RemoveAllRoots(This) (This)->lpVtbl->RemoveAllRoots(This)
26723#define INameSpaceTreeControl_GetRootItems(This,ppsiaRootItems) (This)->lpVtbl->GetRootItems(This,ppsiaRootItems)
26724#define INameSpaceTreeControl_SetItemState(This,psi,nstcisMask,nstcisFlags) (This)->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags)
26725#define INameSpaceTreeControl_GetItemState(This,psi,nstcisMask,pnstcisFlags) (This)->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags)
26726#define INameSpaceTreeControl_GetSelectedItems(This,psiaItems) (This)->lpVtbl->GetSelectedItems(This,psiaItems)
26727#define INameSpaceTreeControl_GetItemCustomState(This,psi,piStateNumber) (This)->lpVtbl->GetItemCustomState(This,psi,piStateNumber)
26728#define INameSpaceTreeControl_SetItemCustomState(This,psi,iStateNumber) (This)->lpVtbl->SetItemCustomState(This,psi,iStateNumber)
26729#define INameSpaceTreeControl_EnsureItemVisible(This,psi) (This)->lpVtbl->EnsureItemVisible(This,psi)
26730#define INameSpaceTreeControl_SetTheme(This,pszTheme) (This)->lpVtbl->SetTheme(This,pszTheme)
26731#define INameSpaceTreeControl_GetNextItem(This,psi,nstcgi,ppsiNext) (This)->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext)
26732#define INameSpaceTreeControl_HitTest(This,ppt,ppsiOut) (This)->lpVtbl->HitTest(This,ppt,ppsiOut)
26733#define INameSpaceTreeControl_GetItemRect(This,psi,prect) (This)->lpVtbl->GetItemRect(This,psi,prect)
26734#define INameSpaceTreeControl_CollapseAll(This) (This)->lpVtbl->CollapseAll(This)
26735#else
26736/*** IUnknown methods ***/
26737static inline HRESULT INameSpaceTreeControl_QueryInterface(INameSpaceTreeControl* This,REFIID riid,void **ppvObject) {
26738    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
26739}
26740static inline ULONG INameSpaceTreeControl_AddRef(INameSpaceTreeControl* This) {
26741    return This->lpVtbl->AddRef(This);
26742}
26743static inline ULONG INameSpaceTreeControl_Release(INameSpaceTreeControl* This) {
26744    return This->lpVtbl->Release(This);
26745}
26746/*** INameSpaceTreeControl methods ***/
26747static inline HRESULT INameSpaceTreeControl_Initialize(INameSpaceTreeControl* This,HWND hwndParent,RECT *prc,NSTCSTYLE nsctsFlags) {
26748    return This->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags);
26749}
26750static inline HRESULT INameSpaceTreeControl_TreeAdvise(INameSpaceTreeControl* This,IUnknown *punk,DWORD *pdwCookie) {
26751    return This->lpVtbl->TreeAdvise(This,punk,pdwCookie);
26752}
26753static inline HRESULT INameSpaceTreeControl_TreeUnadvise(INameSpaceTreeControl* This,DWORD dwCookie) {
26754    return This->lpVtbl->TreeUnadvise(This,dwCookie);
26755}
26756static inline HRESULT INameSpaceTreeControl_AppendRoot(INameSpaceTreeControl* This,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
26757    return This->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif);
26758}
26759static inline HRESULT INameSpaceTreeControl_InsertRoot(INameSpaceTreeControl* This,int iIndex,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
26760    return This->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif);
26761}
26762static inline HRESULT INameSpaceTreeControl_RemoveRoot(INameSpaceTreeControl* This,IShellItem *psiRoot) {
26763    return This->lpVtbl->RemoveRoot(This,psiRoot);
26764}
26765static inline HRESULT INameSpaceTreeControl_RemoveAllRoots(INameSpaceTreeControl* This) {
26766    return This->lpVtbl->RemoveAllRoots(This);
26767}
26768static inline HRESULT INameSpaceTreeControl_GetRootItems(INameSpaceTreeControl* This,IShellItemArray **ppsiaRootItems) {
26769    return This->lpVtbl->GetRootItems(This,ppsiaRootItems);
26770}
26771static inline HRESULT INameSpaceTreeControl_SetItemState(INameSpaceTreeControl* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisFlags) {
26772    return This->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags);
26773}
26774static inline HRESULT INameSpaceTreeControl_GetItemState(INameSpaceTreeControl* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE *pnstcisFlags) {
26775    return This->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags);
26776}
26777static inline HRESULT INameSpaceTreeControl_GetSelectedItems(INameSpaceTreeControl* This,IShellItemArray **psiaItems) {
26778    return This->lpVtbl->GetSelectedItems(This,psiaItems);
26779}
26780static inline HRESULT INameSpaceTreeControl_GetItemCustomState(INameSpaceTreeControl* This,IShellItem *psi,int *piStateNumber) {
26781    return This->lpVtbl->GetItemCustomState(This,psi,piStateNumber);
26782}
26783static inline HRESULT INameSpaceTreeControl_SetItemCustomState(INameSpaceTreeControl* This,IShellItem *psi,int iStateNumber) {
26784    return This->lpVtbl->SetItemCustomState(This,psi,iStateNumber);
26785}
26786static inline HRESULT INameSpaceTreeControl_EnsureItemVisible(INameSpaceTreeControl* This,IShellItem *psi) {
26787    return This->lpVtbl->EnsureItemVisible(This,psi);
26788}
26789static inline HRESULT INameSpaceTreeControl_SetTheme(INameSpaceTreeControl* This,LPCWSTR pszTheme) {
26790    return This->lpVtbl->SetTheme(This,pszTheme);
26791}
26792static inline HRESULT INameSpaceTreeControl_GetNextItem(INameSpaceTreeControl* This,IShellItem *psi,NSTCGNI nstcgi,IShellItem **ppsiNext) {
26793    return This->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext);
26794}
26795static inline HRESULT INameSpaceTreeControl_HitTest(INameSpaceTreeControl* This,POINT *ppt,IShellItem **ppsiOut) {
26796    return This->lpVtbl->HitTest(This,ppt,ppsiOut);
26797}
26798static inline HRESULT INameSpaceTreeControl_GetItemRect(INameSpaceTreeControl* This,IShellItem *psi,RECT *prect) {
26799    return This->lpVtbl->GetItemRect(This,psi,prect);
26800}
26801static inline HRESULT INameSpaceTreeControl_CollapseAll(INameSpaceTreeControl* This) {
26802    return This->lpVtbl->CollapseAll(This);
26803}
26804#endif
26805#endif
26806
26807#endif
26808
26809
26810#endif  /* __INameSpaceTreeControl_INTERFACE_DEFINED__ */
26811
26812
26813/*****************************************************************************
26814 * INameSpaceTreeControl2 interface
26815 */
26816#ifndef __INameSpaceTreeControl2_INTERFACE_DEFINED__
26817#define __INameSpaceTreeControl2_INTERFACE_DEFINED__
26818
26819typedef enum NSTCSTYLE2 {
26820    NSTCS2_DEFAULT = 0x0,
26821    NSTCS2_INTERRUPTNOTIFICATIONS = 0x1,
26822    NSTCS2_SHOWNULLSPACEMENU = 0x2,
26823    NSTCS2_DISPLAYPADDING = 0x4,
26824    NSTCS2_DISPLAYPINNEDONLY = 0x8,
26825    NTSCS2_NOSINGLETONAUTOEXPAND = 0x10,
26826    NTSCS2_NEVERINSERTNONENUMERATED = 0x20
26827} NSTCSTYLE2;
26828
26829DEFINE_ENUM_FLAG_OPERATORS(NSTCSTYLE2)
26830
26831DEFINE_GUID(IID_INameSpaceTreeControl2, 0x7cc7aed8, 0x290e, 0x49bc, 0x89,0x45, 0xc1,0x40,0x1c,0xc9,0x30,0x6c);
26832#if defined(__cplusplus) && !defined(CINTERFACE)
26833MIDL_INTERFACE("7cc7aed8-290e-49bc-8945-c1401cc9306c")
26834INameSpaceTreeControl2 : public INameSpaceTreeControl
26835{
26836    virtual HRESULT STDMETHODCALLTYPE SetControlStyle(
26837        NSTCSTYLE nstcsMask,
26838        NSTCSTYLE nstcsStyle) = 0;
26839
26840    virtual HRESULT STDMETHODCALLTYPE GetControlStyle(
26841        NSTCSTYLE nstcsMask,
26842        NSTCSTYLE *pnstcsStyle) = 0;
26843
26844    virtual HRESULT STDMETHODCALLTYPE SetControlStyle2(
26845        NSTCSTYLE2 nstcsMask,
26846        NSTCSTYLE2 nstcsStyle) = 0;
26847
26848    virtual HRESULT STDMETHODCALLTYPE GetControlStyle2(
26849        NSTCSTYLE2 nstcsMask,
26850        NSTCSTYLE2 *pnstcsStyle) = 0;
26851
26852};
26853#ifdef __CRT_UUID_DECL
26854__CRT_UUID_DECL(INameSpaceTreeControl2, 0x7cc7aed8, 0x290e, 0x49bc, 0x89,0x45, 0xc1,0x40,0x1c,0xc9,0x30,0x6c)
26855#endif
26856#else
26857typedef struct INameSpaceTreeControl2Vtbl {
26858    BEGIN_INTERFACE
26859
26860    /*** IUnknown methods ***/
26861    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
26862        INameSpaceTreeControl2 *This,
26863        REFIID riid,
26864        void **ppvObject);
26865
26866    ULONG (STDMETHODCALLTYPE *AddRef)(
26867        INameSpaceTreeControl2 *This);
26868
26869    ULONG (STDMETHODCALLTYPE *Release)(
26870        INameSpaceTreeControl2 *This);
26871
26872    /*** INameSpaceTreeControl methods ***/
26873    HRESULT (STDMETHODCALLTYPE *Initialize)(
26874        INameSpaceTreeControl2 *This,
26875        HWND hwndParent,
26876        RECT *prc,
26877        NSTCSTYLE nsctsFlags);
26878
26879    HRESULT (STDMETHODCALLTYPE *TreeAdvise)(
26880        INameSpaceTreeControl2 *This,
26881        IUnknown *punk,
26882        DWORD *pdwCookie);
26883
26884    HRESULT (STDMETHODCALLTYPE *TreeUnadvise)(
26885        INameSpaceTreeControl2 *This,
26886        DWORD dwCookie);
26887
26888    HRESULT (STDMETHODCALLTYPE *AppendRoot)(
26889        INameSpaceTreeControl2 *This,
26890        IShellItem *psiRoot,
26891        SHCONTF grfEnumFlags,
26892        NSTCROOTSTYLE grfRootStyle,
26893        IShellItemFilter *pif);
26894
26895    HRESULT (STDMETHODCALLTYPE *InsertRoot)(
26896        INameSpaceTreeControl2 *This,
26897        int iIndex,
26898        IShellItem *psiRoot,
26899        SHCONTF grfEnumFlags,
26900        NSTCROOTSTYLE grfRootStyle,
26901        IShellItemFilter *pif);
26902
26903    HRESULT (STDMETHODCALLTYPE *RemoveRoot)(
26904        INameSpaceTreeControl2 *This,
26905        IShellItem *psiRoot);
26906
26907    HRESULT (STDMETHODCALLTYPE *RemoveAllRoots)(
26908        INameSpaceTreeControl2 *This);
26909
26910    HRESULT (STDMETHODCALLTYPE *GetRootItems)(
26911        INameSpaceTreeControl2 *This,
26912        IShellItemArray **ppsiaRootItems);
26913
26914    HRESULT (STDMETHODCALLTYPE *SetItemState)(
26915        INameSpaceTreeControl2 *This,
26916        IShellItem *psi,
26917        NSTCITEMSTATE nstcisMask,
26918        NSTCITEMSTATE nstcisFlags);
26919
26920    HRESULT (STDMETHODCALLTYPE *GetItemState)(
26921        INameSpaceTreeControl2 *This,
26922        IShellItem *psi,
26923        NSTCITEMSTATE nstcisMask,
26924        NSTCITEMSTATE *pnstcisFlags);
26925
26926    HRESULT (STDMETHODCALLTYPE *GetSelectedItems)(
26927        INameSpaceTreeControl2 *This,
26928        IShellItemArray **psiaItems);
26929
26930    HRESULT (STDMETHODCALLTYPE *GetItemCustomState)(
26931        INameSpaceTreeControl2 *This,
26932        IShellItem *psi,
26933        int *piStateNumber);
26934
26935    HRESULT (STDMETHODCALLTYPE *SetItemCustomState)(
26936        INameSpaceTreeControl2 *This,
26937        IShellItem *psi,
26938        int iStateNumber);
26939
26940    HRESULT (STDMETHODCALLTYPE *EnsureItemVisible)(
26941        INameSpaceTreeControl2 *This,
26942        IShellItem *psi);
26943
26944    HRESULT (STDMETHODCALLTYPE *SetTheme)(
26945        INameSpaceTreeControl2 *This,
26946        LPCWSTR pszTheme);
26947
26948    HRESULT (STDMETHODCALLTYPE *GetNextItem)(
26949        INameSpaceTreeControl2 *This,
26950        IShellItem *psi,
26951        NSTCGNI nstcgi,
26952        IShellItem **ppsiNext);
26953
26954    HRESULT (STDMETHODCALLTYPE *HitTest)(
26955        INameSpaceTreeControl2 *This,
26956        POINT *ppt,
26957        IShellItem **ppsiOut);
26958
26959    HRESULT (STDMETHODCALLTYPE *GetItemRect)(
26960        INameSpaceTreeControl2 *This,
26961        IShellItem *psi,
26962        RECT *prect);
26963
26964    HRESULT (STDMETHODCALLTYPE *CollapseAll)(
26965        INameSpaceTreeControl2 *This);
26966
26967    /*** INameSpaceTreeControl2 methods ***/
26968    HRESULT (STDMETHODCALLTYPE *SetControlStyle)(
26969        INameSpaceTreeControl2 *This,
26970        NSTCSTYLE nstcsMask,
26971        NSTCSTYLE nstcsStyle);
26972
26973    HRESULT (STDMETHODCALLTYPE *GetControlStyle)(
26974        INameSpaceTreeControl2 *This,
26975        NSTCSTYLE nstcsMask,
26976        NSTCSTYLE *pnstcsStyle);
26977
26978    HRESULT (STDMETHODCALLTYPE *SetControlStyle2)(
26979        INameSpaceTreeControl2 *This,
26980        NSTCSTYLE2 nstcsMask,
26981        NSTCSTYLE2 nstcsStyle);
26982
26983    HRESULT (STDMETHODCALLTYPE *GetControlStyle2)(
26984        INameSpaceTreeControl2 *This,
26985        NSTCSTYLE2 nstcsMask,
26986        NSTCSTYLE2 *pnstcsStyle);
26987
26988    END_INTERFACE
26989} INameSpaceTreeControl2Vtbl;
26990
26991interface INameSpaceTreeControl2 {
26992    CONST_VTBL INameSpaceTreeControl2Vtbl* lpVtbl;
26993};
26994
26995#ifdef COBJMACROS
26996#ifndef WIDL_C_INLINE_WRAPPERS
26997/*** IUnknown methods ***/
26998#define INameSpaceTreeControl2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
26999#define INameSpaceTreeControl2_AddRef(This) (This)->lpVtbl->AddRef(This)
27000#define INameSpaceTreeControl2_Release(This) (This)->lpVtbl->Release(This)
27001/*** INameSpaceTreeControl methods ***/
27002#define INameSpaceTreeControl2_Initialize(This,hwndParent,prc,nsctsFlags) (This)->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags)
27003#define INameSpaceTreeControl2_TreeAdvise(This,punk,pdwCookie) (This)->lpVtbl->TreeAdvise(This,punk,pdwCookie)
27004#define INameSpaceTreeControl2_TreeUnadvise(This,dwCookie) (This)->lpVtbl->TreeUnadvise(This,dwCookie)
27005#define INameSpaceTreeControl2_AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif)
27006#define INameSpaceTreeControl2_InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif) (This)->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif)
27007#define INameSpaceTreeControl2_RemoveRoot(This,psiRoot) (This)->lpVtbl->RemoveRoot(This,psiRoot)
27008#define INameSpaceTreeControl2_RemoveAllRoots(This) (This)->lpVtbl->RemoveAllRoots(This)
27009#define INameSpaceTreeControl2_GetRootItems(This,ppsiaRootItems) (This)->lpVtbl->GetRootItems(This,ppsiaRootItems)
27010#define INameSpaceTreeControl2_SetItemState(This,psi,nstcisMask,nstcisFlags) (This)->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags)
27011#define INameSpaceTreeControl2_GetItemState(This,psi,nstcisMask,pnstcisFlags) (This)->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags)
27012#define INameSpaceTreeControl2_GetSelectedItems(This,psiaItems) (This)->lpVtbl->GetSelectedItems(This,psiaItems)
27013#define INameSpaceTreeControl2_GetItemCustomState(This,psi,piStateNumber) (This)->lpVtbl->GetItemCustomState(This,psi,piStateNumber)
27014#define INameSpaceTreeControl2_SetItemCustomState(This,psi,iStateNumber) (This)->lpVtbl->SetItemCustomState(This,psi,iStateNumber)
27015#define INameSpaceTreeControl2_EnsureItemVisible(This,psi) (This)->lpVtbl->EnsureItemVisible(This,psi)
27016#define INameSpaceTreeControl2_SetTheme(This,pszTheme) (This)->lpVtbl->SetTheme(This,pszTheme)
27017#define INameSpaceTreeControl2_GetNextItem(This,psi,nstcgi,ppsiNext) (This)->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext)
27018#define INameSpaceTreeControl2_HitTest(This,ppt,ppsiOut) (This)->lpVtbl->HitTest(This,ppt,ppsiOut)
27019#define INameSpaceTreeControl2_GetItemRect(This,psi,prect) (This)->lpVtbl->GetItemRect(This,psi,prect)
27020#define INameSpaceTreeControl2_CollapseAll(This) (This)->lpVtbl->CollapseAll(This)
27021/*** INameSpaceTreeControl2 methods ***/
27022#define INameSpaceTreeControl2_SetControlStyle(This,nstcsMask,nstcsStyle) (This)->lpVtbl->SetControlStyle(This,nstcsMask,nstcsStyle)
27023#define INameSpaceTreeControl2_GetControlStyle(This,nstcsMask,pnstcsStyle) (This)->lpVtbl->GetControlStyle(This,nstcsMask,pnstcsStyle)
27024#define INameSpaceTreeControl2_SetControlStyle2(This,nstcsMask,nstcsStyle) (This)->lpVtbl->SetControlStyle2(This,nstcsMask,nstcsStyle)
27025#define INameSpaceTreeControl2_GetControlStyle2(This,nstcsMask,pnstcsStyle) (This)->lpVtbl->GetControlStyle2(This,nstcsMask,pnstcsStyle)
27026#else
27027/*** IUnknown methods ***/
27028static inline HRESULT INameSpaceTreeControl2_QueryInterface(INameSpaceTreeControl2* This,REFIID riid,void **ppvObject) {
27029    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27030}
27031static inline ULONG INameSpaceTreeControl2_AddRef(INameSpaceTreeControl2* This) {
27032    return This->lpVtbl->AddRef(This);
27033}
27034static inline ULONG INameSpaceTreeControl2_Release(INameSpaceTreeControl2* This) {
27035    return This->lpVtbl->Release(This);
27036}
27037/*** INameSpaceTreeControl methods ***/
27038static inline HRESULT INameSpaceTreeControl2_Initialize(INameSpaceTreeControl2* This,HWND hwndParent,RECT *prc,NSTCSTYLE nsctsFlags) {
27039    return This->lpVtbl->Initialize(This,hwndParent,prc,nsctsFlags);
27040}
27041static inline HRESULT INameSpaceTreeControl2_TreeAdvise(INameSpaceTreeControl2* This,IUnknown *punk,DWORD *pdwCookie) {
27042    return This->lpVtbl->TreeAdvise(This,punk,pdwCookie);
27043}
27044static inline HRESULT INameSpaceTreeControl2_TreeUnadvise(INameSpaceTreeControl2* This,DWORD dwCookie) {
27045    return This->lpVtbl->TreeUnadvise(This,dwCookie);
27046}
27047static inline HRESULT INameSpaceTreeControl2_AppendRoot(INameSpaceTreeControl2* This,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
27048    return This->lpVtbl->AppendRoot(This,psiRoot,grfEnumFlags,grfRootStyle,pif);
27049}
27050static inline HRESULT INameSpaceTreeControl2_InsertRoot(INameSpaceTreeControl2* This,int iIndex,IShellItem *psiRoot,SHCONTF grfEnumFlags,NSTCROOTSTYLE grfRootStyle,IShellItemFilter *pif) {
27051    return This->lpVtbl->InsertRoot(This,iIndex,psiRoot,grfEnumFlags,grfRootStyle,pif);
27052}
27053static inline HRESULT INameSpaceTreeControl2_RemoveRoot(INameSpaceTreeControl2* This,IShellItem *psiRoot) {
27054    return This->lpVtbl->RemoveRoot(This,psiRoot);
27055}
27056static inline HRESULT INameSpaceTreeControl2_RemoveAllRoots(INameSpaceTreeControl2* This) {
27057    return This->lpVtbl->RemoveAllRoots(This);
27058}
27059static inline HRESULT INameSpaceTreeControl2_GetRootItems(INameSpaceTreeControl2* This,IShellItemArray **ppsiaRootItems) {
27060    return This->lpVtbl->GetRootItems(This,ppsiaRootItems);
27061}
27062static inline HRESULT INameSpaceTreeControl2_SetItemState(INameSpaceTreeControl2* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisFlags) {
27063    return This->lpVtbl->SetItemState(This,psi,nstcisMask,nstcisFlags);
27064}
27065static inline HRESULT INameSpaceTreeControl2_GetItemState(INameSpaceTreeControl2* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE *pnstcisFlags) {
27066    return This->lpVtbl->GetItemState(This,psi,nstcisMask,pnstcisFlags);
27067}
27068static inline HRESULT INameSpaceTreeControl2_GetSelectedItems(INameSpaceTreeControl2* This,IShellItemArray **psiaItems) {
27069    return This->lpVtbl->GetSelectedItems(This,psiaItems);
27070}
27071static inline HRESULT INameSpaceTreeControl2_GetItemCustomState(INameSpaceTreeControl2* This,IShellItem *psi,int *piStateNumber) {
27072    return This->lpVtbl->GetItemCustomState(This,psi,piStateNumber);
27073}
27074static inline HRESULT INameSpaceTreeControl2_SetItemCustomState(INameSpaceTreeControl2* This,IShellItem *psi,int iStateNumber) {
27075    return This->lpVtbl->SetItemCustomState(This,psi,iStateNumber);
27076}
27077static inline HRESULT INameSpaceTreeControl2_EnsureItemVisible(INameSpaceTreeControl2* This,IShellItem *psi) {
27078    return This->lpVtbl->EnsureItemVisible(This,psi);
27079}
27080static inline HRESULT INameSpaceTreeControl2_SetTheme(INameSpaceTreeControl2* This,LPCWSTR pszTheme) {
27081    return This->lpVtbl->SetTheme(This,pszTheme);
27082}
27083static inline HRESULT INameSpaceTreeControl2_GetNextItem(INameSpaceTreeControl2* This,IShellItem *psi,NSTCGNI nstcgi,IShellItem **ppsiNext) {
27084    return This->lpVtbl->GetNextItem(This,psi,nstcgi,ppsiNext);
27085}
27086static inline HRESULT INameSpaceTreeControl2_HitTest(INameSpaceTreeControl2* This,POINT *ppt,IShellItem **ppsiOut) {
27087    return This->lpVtbl->HitTest(This,ppt,ppsiOut);
27088}
27089static inline HRESULT INameSpaceTreeControl2_GetItemRect(INameSpaceTreeControl2* This,IShellItem *psi,RECT *prect) {
27090    return This->lpVtbl->GetItemRect(This,psi,prect);
27091}
27092static inline HRESULT INameSpaceTreeControl2_CollapseAll(INameSpaceTreeControl2* This) {
27093    return This->lpVtbl->CollapseAll(This);
27094}
27095/*** INameSpaceTreeControl2 methods ***/
27096static inline HRESULT INameSpaceTreeControl2_SetControlStyle(INameSpaceTreeControl2* This,NSTCSTYLE nstcsMask,NSTCSTYLE nstcsStyle) {
27097    return This->lpVtbl->SetControlStyle(This,nstcsMask,nstcsStyle);
27098}
27099static inline HRESULT INameSpaceTreeControl2_GetControlStyle(INameSpaceTreeControl2* This,NSTCSTYLE nstcsMask,NSTCSTYLE *pnstcsStyle) {
27100    return This->lpVtbl->GetControlStyle(This,nstcsMask,pnstcsStyle);
27101}
27102static inline HRESULT INameSpaceTreeControl2_SetControlStyle2(INameSpaceTreeControl2* This,NSTCSTYLE2 nstcsMask,NSTCSTYLE2 nstcsStyle) {
27103    return This->lpVtbl->SetControlStyle2(This,nstcsMask,nstcsStyle);
27104}
27105static inline HRESULT INameSpaceTreeControl2_GetControlStyle2(INameSpaceTreeControl2* This,NSTCSTYLE2 nstcsMask,NSTCSTYLE2 *pnstcsStyle) {
27106    return This->lpVtbl->GetControlStyle2(This,nstcsMask,pnstcsStyle);
27107}
27108#endif
27109#endif
27110
27111#endif
27112
27113
27114#endif  /* __INameSpaceTreeControl2_INTERFACE_DEFINED__ */
27115
27116
27117#define NSTCS2_ALLMASK (NSTCS2_INTERRUPTNOTIFICATIONS | NSTCS2_SHOWNULLSPACEMENU | NSTCS2_DISPLAYPADDING)
27118#define SID_SNavigationPane IID_INameSpaceTreeControl
27119
27120#define ISLBUTTON(x) (NSTCECT_LBUTTON == ((x) & NSTCECT_BUTTON))
27121#define ISMBUTTON(x) (NSTCECT_MBUTTON == ((x) & NSTCECT_BUTTON))
27122#define ISRBUTTON(x) (NSTCECT_RBUTTON == ((x) & NSTCECT_BUTTON))
27123#define ISDBLCLICK(x) (NSTCECT_DBLCLICK == ((x) & NSTCECT_DBLCLICK))
27124
27125/*****************************************************************************
27126 * INameSpaceTreeControlEvents interface
27127 */
27128#ifndef __INameSpaceTreeControlEvents_INTERFACE_DEFINED__
27129#define __INameSpaceTreeControlEvents_INTERFACE_DEFINED__
27130
27131enum _NSTCEHITTEST {
27132    NSTCEHT_NOWHERE = 0x1,
27133    NSTCEHT_ONITEMICON = 0x2,
27134    NSTCEHT_ONITEMLABEL = 0x4,
27135    NSTCEHT_ONITEMINDENT = 0x8,
27136    NSTCEHT_ONITEMBUTTON = 0x10,
27137    NSTCEHT_ONITEMRIGHT = 0x20,
27138    NSTCEHT_ONITEMSTATEICON = 0x40,
27139    NSTCEHT_ONITEM = 0x46,
27140    NSTCEHT_ONITEMTABBUTTON = 0x1000
27141};
27142
27143typedef DWORD NSTCEHITTEST;
27144
27145enum _NSTCECLICKTYPE {
27146    NSTCECT_LBUTTON = 0x1,
27147    NSTCECT_MBUTTON = 0x2,
27148    NSTCECT_RBUTTON = 0x3,
27149    NSTCECT_BUTTON = 0x3,
27150    NSTCECT_DBLCLICK = 0x4
27151};
27152
27153typedef DWORD NSTCECLICKTYPE;
27154
27155DEFINE_GUID(IID_INameSpaceTreeControlEvents, 0x93d77985, 0xb3d8, 0x4484, 0x83,0x18, 0x67,0x2c,0xdd,0xa0,0x02,0xce);
27156#if defined(__cplusplus) && !defined(CINTERFACE)
27157MIDL_INTERFACE("93d77985-b3d8-4484-8318-672cdda002ce")
27158INameSpaceTreeControlEvents : public IUnknown
27159{
27160    virtual HRESULT STDMETHODCALLTYPE OnItemClick(
27161        IShellItem *psi,
27162        NSTCEHITTEST nstceHitTest,
27163        NSTCECLICKTYPE nstceClickType) = 0;
27164
27165    virtual HRESULT STDMETHODCALLTYPE OnPropertyItemCommit(
27166        IShellItem *psi) = 0;
27167
27168    virtual HRESULT STDMETHODCALLTYPE OnItemStateChanging(
27169        IShellItem *psi,
27170        NSTCITEMSTATE nstcisMask,
27171        NSTCITEMSTATE nstcisState) = 0;
27172
27173    virtual HRESULT STDMETHODCALLTYPE OnItemStateChanged(
27174        IShellItem *psi,
27175        NSTCITEMSTATE nstcisMask,
27176        NSTCITEMSTATE nstcisState) = 0;
27177
27178    virtual HRESULT STDMETHODCALLTYPE OnSelectionChanged(
27179        IShellItemArray *psiaSelection) = 0;
27180
27181    virtual HRESULT STDMETHODCALLTYPE OnKeyboardInput(
27182        UINT uMsg,
27183        WPARAM wParam,
27184        LPARAM lParam) = 0;
27185
27186    virtual HRESULT STDMETHODCALLTYPE OnBeforeExpand(
27187        IShellItem *psi) = 0;
27188
27189    virtual HRESULT STDMETHODCALLTYPE OnAfterExpand(
27190        IShellItem *psi) = 0;
27191
27192    virtual HRESULT STDMETHODCALLTYPE OnBeginLabelEdit(
27193        IShellItem *psi) = 0;
27194
27195    virtual HRESULT STDMETHODCALLTYPE OnEndLabelEdit(
27196        IShellItem *psi) = 0;
27197
27198    virtual HRESULT STDMETHODCALLTYPE OnGetToolTip(
27199        IShellItem *psi,
27200        LPWSTR pszTip,
27201        int cchTip) = 0;
27202
27203    virtual HRESULT STDMETHODCALLTYPE OnBeforeItemDelete(
27204        IShellItem *psi) = 0;
27205
27206    virtual HRESULT STDMETHODCALLTYPE OnItemAdded(
27207        IShellItem *psi,
27208        WINBOOL fIsRoot) = 0;
27209
27210    virtual HRESULT STDMETHODCALLTYPE OnItemDeleted(
27211        IShellItem *psi,
27212        WINBOOL fIsRoot) = 0;
27213
27214    virtual HRESULT STDMETHODCALLTYPE OnBeforeContextMenu(
27215        IShellItem *psi,
27216        REFIID riid,
27217        void **ppv) = 0;
27218
27219    virtual HRESULT STDMETHODCALLTYPE OnAfterContextMenu(
27220        IShellItem *psi,
27221        IContextMenu *pcmIn,
27222        REFIID riid,
27223        void **ppv) = 0;
27224
27225    virtual HRESULT STDMETHODCALLTYPE OnBeforeStateImageChange(
27226        IShellItem *psi) = 0;
27227
27228    virtual HRESULT STDMETHODCALLTYPE OnGetDefaultIconIndex(
27229        IShellItem *psi,
27230        int *piDefaultIcon,
27231        int *piOpenIcon) = 0;
27232
27233};
27234#ifdef __CRT_UUID_DECL
27235__CRT_UUID_DECL(INameSpaceTreeControlEvents, 0x93d77985, 0xb3d8, 0x4484, 0x83,0x18, 0x67,0x2c,0xdd,0xa0,0x02,0xce)
27236#endif
27237#else
27238typedef struct INameSpaceTreeControlEventsVtbl {
27239    BEGIN_INTERFACE
27240
27241    /*** IUnknown methods ***/
27242    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27243        INameSpaceTreeControlEvents *This,
27244        REFIID riid,
27245        void **ppvObject);
27246
27247    ULONG (STDMETHODCALLTYPE *AddRef)(
27248        INameSpaceTreeControlEvents *This);
27249
27250    ULONG (STDMETHODCALLTYPE *Release)(
27251        INameSpaceTreeControlEvents *This);
27252
27253    /*** INameSpaceTreeControlEvents methods ***/
27254    HRESULT (STDMETHODCALLTYPE *OnItemClick)(
27255        INameSpaceTreeControlEvents *This,
27256        IShellItem *psi,
27257        NSTCEHITTEST nstceHitTest,
27258        NSTCECLICKTYPE nstceClickType);
27259
27260    HRESULT (STDMETHODCALLTYPE *OnPropertyItemCommit)(
27261        INameSpaceTreeControlEvents *This,
27262        IShellItem *psi);
27263
27264    HRESULT (STDMETHODCALLTYPE *OnItemStateChanging)(
27265        INameSpaceTreeControlEvents *This,
27266        IShellItem *psi,
27267        NSTCITEMSTATE nstcisMask,
27268        NSTCITEMSTATE nstcisState);
27269
27270    HRESULT (STDMETHODCALLTYPE *OnItemStateChanged)(
27271        INameSpaceTreeControlEvents *This,
27272        IShellItem *psi,
27273        NSTCITEMSTATE nstcisMask,
27274        NSTCITEMSTATE nstcisState);
27275
27276    HRESULT (STDMETHODCALLTYPE *OnSelectionChanged)(
27277        INameSpaceTreeControlEvents *This,
27278        IShellItemArray *psiaSelection);
27279
27280    HRESULT (STDMETHODCALLTYPE *OnKeyboardInput)(
27281        INameSpaceTreeControlEvents *This,
27282        UINT uMsg,
27283        WPARAM wParam,
27284        LPARAM lParam);
27285
27286    HRESULT (STDMETHODCALLTYPE *OnBeforeExpand)(
27287        INameSpaceTreeControlEvents *This,
27288        IShellItem *psi);
27289
27290    HRESULT (STDMETHODCALLTYPE *OnAfterExpand)(
27291        INameSpaceTreeControlEvents *This,
27292        IShellItem *psi);
27293
27294    HRESULT (STDMETHODCALLTYPE *OnBeginLabelEdit)(
27295        INameSpaceTreeControlEvents *This,
27296        IShellItem *psi);
27297
27298    HRESULT (STDMETHODCALLTYPE *OnEndLabelEdit)(
27299        INameSpaceTreeControlEvents *This,
27300        IShellItem *psi);
27301
27302    HRESULT (STDMETHODCALLTYPE *OnGetToolTip)(
27303        INameSpaceTreeControlEvents *This,
27304        IShellItem *psi,
27305        LPWSTR pszTip,
27306        int cchTip);
27307
27308    HRESULT (STDMETHODCALLTYPE *OnBeforeItemDelete)(
27309        INameSpaceTreeControlEvents *This,
27310        IShellItem *psi);
27311
27312    HRESULT (STDMETHODCALLTYPE *OnItemAdded)(
27313        INameSpaceTreeControlEvents *This,
27314        IShellItem *psi,
27315        WINBOOL fIsRoot);
27316
27317    HRESULT (STDMETHODCALLTYPE *OnItemDeleted)(
27318        INameSpaceTreeControlEvents *This,
27319        IShellItem *psi,
27320        WINBOOL fIsRoot);
27321
27322    HRESULT (STDMETHODCALLTYPE *OnBeforeContextMenu)(
27323        INameSpaceTreeControlEvents *This,
27324        IShellItem *psi,
27325        REFIID riid,
27326        void **ppv);
27327
27328    HRESULT (STDMETHODCALLTYPE *OnAfterContextMenu)(
27329        INameSpaceTreeControlEvents *This,
27330        IShellItem *psi,
27331        IContextMenu *pcmIn,
27332        REFIID riid,
27333        void **ppv);
27334
27335    HRESULT (STDMETHODCALLTYPE *OnBeforeStateImageChange)(
27336        INameSpaceTreeControlEvents *This,
27337        IShellItem *psi);
27338
27339    HRESULT (STDMETHODCALLTYPE *OnGetDefaultIconIndex)(
27340        INameSpaceTreeControlEvents *This,
27341        IShellItem *psi,
27342        int *piDefaultIcon,
27343        int *piOpenIcon);
27344
27345    END_INTERFACE
27346} INameSpaceTreeControlEventsVtbl;
27347
27348interface INameSpaceTreeControlEvents {
27349    CONST_VTBL INameSpaceTreeControlEventsVtbl* lpVtbl;
27350};
27351
27352#ifdef COBJMACROS
27353#ifndef WIDL_C_INLINE_WRAPPERS
27354/*** IUnknown methods ***/
27355#define INameSpaceTreeControlEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27356#define INameSpaceTreeControlEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
27357#define INameSpaceTreeControlEvents_Release(This) (This)->lpVtbl->Release(This)
27358/*** INameSpaceTreeControlEvents methods ***/
27359#define INameSpaceTreeControlEvents_OnItemClick(This,psi,nstceHitTest,nstceClickType) (This)->lpVtbl->OnItemClick(This,psi,nstceHitTest,nstceClickType)
27360#define INameSpaceTreeControlEvents_OnPropertyItemCommit(This,psi) (This)->lpVtbl->OnPropertyItemCommit(This,psi)
27361#define INameSpaceTreeControlEvents_OnItemStateChanging(This,psi,nstcisMask,nstcisState) (This)->lpVtbl->OnItemStateChanging(This,psi,nstcisMask,nstcisState)
27362#define INameSpaceTreeControlEvents_OnItemStateChanged(This,psi,nstcisMask,nstcisState) (This)->lpVtbl->OnItemStateChanged(This,psi,nstcisMask,nstcisState)
27363#define INameSpaceTreeControlEvents_OnSelectionChanged(This,psiaSelection) (This)->lpVtbl->OnSelectionChanged(This,psiaSelection)
27364#define INameSpaceTreeControlEvents_OnKeyboardInput(This,uMsg,wParam,lParam) (This)->lpVtbl->OnKeyboardInput(This,uMsg,wParam,lParam)
27365#define INameSpaceTreeControlEvents_OnBeforeExpand(This,psi) (This)->lpVtbl->OnBeforeExpand(This,psi)
27366#define INameSpaceTreeControlEvents_OnAfterExpand(This,psi) (This)->lpVtbl->OnAfterExpand(This,psi)
27367#define INameSpaceTreeControlEvents_OnBeginLabelEdit(This,psi) (This)->lpVtbl->OnBeginLabelEdit(This,psi)
27368#define INameSpaceTreeControlEvents_OnEndLabelEdit(This,psi) (This)->lpVtbl->OnEndLabelEdit(This,psi)
27369#define INameSpaceTreeControlEvents_OnGetToolTip(This,psi,pszTip,cchTip) (This)->lpVtbl->OnGetToolTip(This,psi,pszTip,cchTip)
27370#define INameSpaceTreeControlEvents_OnBeforeItemDelete(This,psi) (This)->lpVtbl->OnBeforeItemDelete(This,psi)
27371#define INameSpaceTreeControlEvents_OnItemAdded(This,psi,fIsRoot) (This)->lpVtbl->OnItemAdded(This,psi,fIsRoot)
27372#define INameSpaceTreeControlEvents_OnItemDeleted(This,psi,fIsRoot) (This)->lpVtbl->OnItemDeleted(This,psi,fIsRoot)
27373#define INameSpaceTreeControlEvents_OnBeforeContextMenu(This,psi,riid,ppv) (This)->lpVtbl->OnBeforeContextMenu(This,psi,riid,ppv)
27374#define INameSpaceTreeControlEvents_OnAfterContextMenu(This,psi,pcmIn,riid,ppv) (This)->lpVtbl->OnAfterContextMenu(This,psi,pcmIn,riid,ppv)
27375#define INameSpaceTreeControlEvents_OnBeforeStateImageChange(This,psi) (This)->lpVtbl->OnBeforeStateImageChange(This,psi)
27376#define INameSpaceTreeControlEvents_OnGetDefaultIconIndex(This,psi,piDefaultIcon,piOpenIcon) (This)->lpVtbl->OnGetDefaultIconIndex(This,psi,piDefaultIcon,piOpenIcon)
27377#else
27378/*** IUnknown methods ***/
27379static inline HRESULT INameSpaceTreeControlEvents_QueryInterface(INameSpaceTreeControlEvents* This,REFIID riid,void **ppvObject) {
27380    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27381}
27382static inline ULONG INameSpaceTreeControlEvents_AddRef(INameSpaceTreeControlEvents* This) {
27383    return This->lpVtbl->AddRef(This);
27384}
27385static inline ULONG INameSpaceTreeControlEvents_Release(INameSpaceTreeControlEvents* This) {
27386    return This->lpVtbl->Release(This);
27387}
27388/*** INameSpaceTreeControlEvents methods ***/
27389static inline HRESULT INameSpaceTreeControlEvents_OnItemClick(INameSpaceTreeControlEvents* This,IShellItem *psi,NSTCEHITTEST nstceHitTest,NSTCECLICKTYPE nstceClickType) {
27390    return This->lpVtbl->OnItemClick(This,psi,nstceHitTest,nstceClickType);
27391}
27392static inline HRESULT INameSpaceTreeControlEvents_OnPropertyItemCommit(INameSpaceTreeControlEvents* This,IShellItem *psi) {
27393    return This->lpVtbl->OnPropertyItemCommit(This,psi);
27394}
27395static inline HRESULT INameSpaceTreeControlEvents_OnItemStateChanging(INameSpaceTreeControlEvents* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisState) {
27396    return This->lpVtbl->OnItemStateChanging(This,psi,nstcisMask,nstcisState);
27397}
27398static inline HRESULT INameSpaceTreeControlEvents_OnItemStateChanged(INameSpaceTreeControlEvents* This,IShellItem *psi,NSTCITEMSTATE nstcisMask,NSTCITEMSTATE nstcisState) {
27399    return This->lpVtbl->OnItemStateChanged(This,psi,nstcisMask,nstcisState);
27400}
27401static inline HRESULT INameSpaceTreeControlEvents_OnSelectionChanged(INameSpaceTreeControlEvents* This,IShellItemArray *psiaSelection) {
27402    return This->lpVtbl->OnSelectionChanged(This,psiaSelection);
27403}
27404static inline HRESULT INameSpaceTreeControlEvents_OnKeyboardInput(INameSpaceTreeControlEvents* This,UINT uMsg,WPARAM wParam,LPARAM lParam) {
27405    return This->lpVtbl->OnKeyboardInput(This,uMsg,wParam,lParam);
27406}
27407static inline HRESULT INameSpaceTreeControlEvents_OnBeforeExpand(INameSpaceTreeControlEvents* This,IShellItem *psi) {
27408    return This->lpVtbl->OnBeforeExpand(This,psi);
27409}
27410static inline HRESULT INameSpaceTreeControlEvents_OnAfterExpand(INameSpaceTreeControlEvents* This,IShellItem *psi) {
27411    return This->lpVtbl->OnAfterExpand(This,psi);
27412}
27413static inline HRESULT INameSpaceTreeControlEvents_OnBeginLabelEdit(INameSpaceTreeControlEvents* This,IShellItem *psi) {
27414    return This->lpVtbl->OnBeginLabelEdit(This,psi);
27415}
27416static inline HRESULT INameSpaceTreeControlEvents_OnEndLabelEdit(INameSpaceTreeControlEvents* This,IShellItem *psi) {
27417    return This->lpVtbl->OnEndLabelEdit(This,psi);
27418}
27419static inline HRESULT INameSpaceTreeControlEvents_OnGetToolTip(INameSpaceTreeControlEvents* This,IShellItem *psi,LPWSTR pszTip,int cchTip) {
27420    return This->lpVtbl->OnGetToolTip(This,psi,pszTip,cchTip);
27421}
27422static inline HRESULT INameSpaceTreeControlEvents_OnBeforeItemDelete(INameSpaceTreeControlEvents* This,IShellItem *psi) {
27423    return This->lpVtbl->OnBeforeItemDelete(This,psi);
27424}
27425static inline HRESULT INameSpaceTreeControlEvents_OnItemAdded(INameSpaceTreeControlEvents* This,IShellItem *psi,WINBOOL fIsRoot) {
27426    return This->lpVtbl->OnItemAdded(This,psi,fIsRoot);
27427}
27428static inline HRESULT INameSpaceTreeControlEvents_OnItemDeleted(INameSpaceTreeControlEvents* This,IShellItem *psi,WINBOOL fIsRoot) {
27429    return This->lpVtbl->OnItemDeleted(This,psi,fIsRoot);
27430}
27431static inline HRESULT INameSpaceTreeControlEvents_OnBeforeContextMenu(INameSpaceTreeControlEvents* This,IShellItem *psi,REFIID riid,void **ppv) {
27432    return This->lpVtbl->OnBeforeContextMenu(This,psi,riid,ppv);
27433}
27434static inline HRESULT INameSpaceTreeControlEvents_OnAfterContextMenu(INameSpaceTreeControlEvents* This,IShellItem *psi,IContextMenu *pcmIn,REFIID riid,void **ppv) {
27435    return This->lpVtbl->OnAfterContextMenu(This,psi,pcmIn,riid,ppv);
27436}
27437static inline HRESULT INameSpaceTreeControlEvents_OnBeforeStateImageChange(INameSpaceTreeControlEvents* This,IShellItem *psi) {
27438    return This->lpVtbl->OnBeforeStateImageChange(This,psi);
27439}
27440static inline HRESULT INameSpaceTreeControlEvents_OnGetDefaultIconIndex(INameSpaceTreeControlEvents* This,IShellItem *psi,int *piDefaultIcon,int *piOpenIcon) {
27441    return This->lpVtbl->OnGetDefaultIconIndex(This,psi,piDefaultIcon,piOpenIcon);
27442}
27443#endif
27444#endif
27445
27446#endif
27447
27448
27449#endif  /* __INameSpaceTreeControlEvents_INTERFACE_DEFINED__ */
27450
27451
27452#define NSTCDHPOS_ONTOP  -1
27453
27454/*****************************************************************************
27455 * INameSpaceTreeControlDropHandler interface
27456 */
27457#ifndef __INameSpaceTreeControlDropHandler_INTERFACE_DEFINED__
27458#define __INameSpaceTreeControlDropHandler_INTERFACE_DEFINED__
27459
27460DEFINE_GUID(IID_INameSpaceTreeControlDropHandler, 0xf9c665d6, 0xc2f2, 0x4c19, 0xbf,0x33, 0x83,0x22,0xd7,0x35,0x2f,0x51);
27461#if defined(__cplusplus) && !defined(CINTERFACE)
27462MIDL_INTERFACE("f9c665d6-c2f2-4c19-bf33-8322d7352f51")
27463INameSpaceTreeControlDropHandler : public IUnknown
27464{
27465    virtual HRESULT STDMETHODCALLTYPE OnDragEnter(
27466        IShellItem *psiOver,
27467        IShellItemArray *psiaData,
27468        WINBOOL fOutsideSource,
27469        DWORD grfKeyState,
27470        DWORD *pdwEffect) = 0;
27471
27472    virtual HRESULT STDMETHODCALLTYPE OnDragOver(
27473        IShellItem *psiOver,
27474        IShellItemArray *psiaData,
27475        DWORD grfKeyState,
27476        DWORD *pdwEffect) = 0;
27477
27478    virtual HRESULT STDMETHODCALLTYPE OnDragPosition(
27479        IShellItem *psiOver,
27480        IShellItemArray *psiaData,
27481        int iNewPosition,
27482        int iOldPosition) = 0;
27483
27484    virtual HRESULT STDMETHODCALLTYPE OnDrop(
27485        IShellItem *psiOver,
27486        IShellItemArray *psiaData,
27487        int iPosition,
27488        DWORD grfKeyState,
27489        DWORD *pdwEffect) = 0;
27490
27491    virtual HRESULT STDMETHODCALLTYPE OnDropPosition(
27492        IShellItem *psiOver,
27493        IShellItemArray *psiaData,
27494        int iNewPosition,
27495        int iOldPosition) = 0;
27496
27497    virtual HRESULT STDMETHODCALLTYPE OnDragLeave(
27498        IShellItem *psiOver) = 0;
27499
27500};
27501#ifdef __CRT_UUID_DECL
27502__CRT_UUID_DECL(INameSpaceTreeControlDropHandler, 0xf9c665d6, 0xc2f2, 0x4c19, 0xbf,0x33, 0x83,0x22,0xd7,0x35,0x2f,0x51)
27503#endif
27504#else
27505typedef struct INameSpaceTreeControlDropHandlerVtbl {
27506    BEGIN_INTERFACE
27507
27508    /*** IUnknown methods ***/
27509    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27510        INameSpaceTreeControlDropHandler *This,
27511        REFIID riid,
27512        void **ppvObject);
27513
27514    ULONG (STDMETHODCALLTYPE *AddRef)(
27515        INameSpaceTreeControlDropHandler *This);
27516
27517    ULONG (STDMETHODCALLTYPE *Release)(
27518        INameSpaceTreeControlDropHandler *This);
27519
27520    /*** INameSpaceTreeControlDropHandler methods ***/
27521    HRESULT (STDMETHODCALLTYPE *OnDragEnter)(
27522        INameSpaceTreeControlDropHandler *This,
27523        IShellItem *psiOver,
27524        IShellItemArray *psiaData,
27525        WINBOOL fOutsideSource,
27526        DWORD grfKeyState,
27527        DWORD *pdwEffect);
27528
27529    HRESULT (STDMETHODCALLTYPE *OnDragOver)(
27530        INameSpaceTreeControlDropHandler *This,
27531        IShellItem *psiOver,
27532        IShellItemArray *psiaData,
27533        DWORD grfKeyState,
27534        DWORD *pdwEffect);
27535
27536    HRESULT (STDMETHODCALLTYPE *OnDragPosition)(
27537        INameSpaceTreeControlDropHandler *This,
27538        IShellItem *psiOver,
27539        IShellItemArray *psiaData,
27540        int iNewPosition,
27541        int iOldPosition);
27542
27543    HRESULT (STDMETHODCALLTYPE *OnDrop)(
27544        INameSpaceTreeControlDropHandler *This,
27545        IShellItem *psiOver,
27546        IShellItemArray *psiaData,
27547        int iPosition,
27548        DWORD grfKeyState,
27549        DWORD *pdwEffect);
27550
27551    HRESULT (STDMETHODCALLTYPE *OnDropPosition)(
27552        INameSpaceTreeControlDropHandler *This,
27553        IShellItem *psiOver,
27554        IShellItemArray *psiaData,
27555        int iNewPosition,
27556        int iOldPosition);
27557
27558    HRESULT (STDMETHODCALLTYPE *OnDragLeave)(
27559        INameSpaceTreeControlDropHandler *This,
27560        IShellItem *psiOver);
27561
27562    END_INTERFACE
27563} INameSpaceTreeControlDropHandlerVtbl;
27564
27565interface INameSpaceTreeControlDropHandler {
27566    CONST_VTBL INameSpaceTreeControlDropHandlerVtbl* lpVtbl;
27567};
27568
27569#ifdef COBJMACROS
27570#ifndef WIDL_C_INLINE_WRAPPERS
27571/*** IUnknown methods ***/
27572#define INameSpaceTreeControlDropHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27573#define INameSpaceTreeControlDropHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
27574#define INameSpaceTreeControlDropHandler_Release(This) (This)->lpVtbl->Release(This)
27575/*** INameSpaceTreeControlDropHandler methods ***/
27576#define INameSpaceTreeControlDropHandler_OnDragEnter(This,psiOver,psiaData,fOutsideSource,grfKeyState,pdwEffect) (This)->lpVtbl->OnDragEnter(This,psiOver,psiaData,fOutsideSource,grfKeyState,pdwEffect)
27577#define INameSpaceTreeControlDropHandler_OnDragOver(This,psiOver,psiaData,grfKeyState,pdwEffect) (This)->lpVtbl->OnDragOver(This,psiOver,psiaData,grfKeyState,pdwEffect)
27578#define INameSpaceTreeControlDropHandler_OnDragPosition(This,psiOver,psiaData,iNewPosition,iOldPosition) (This)->lpVtbl->OnDragPosition(This,psiOver,psiaData,iNewPosition,iOldPosition)
27579#define INameSpaceTreeControlDropHandler_OnDrop(This,psiOver,psiaData,iPosition,grfKeyState,pdwEffect) (This)->lpVtbl->OnDrop(This,psiOver,psiaData,iPosition,grfKeyState,pdwEffect)
27580#define INameSpaceTreeControlDropHandler_OnDropPosition(This,psiOver,psiaData,iNewPosition,iOldPosition) (This)->lpVtbl->OnDropPosition(This,psiOver,psiaData,iNewPosition,iOldPosition)
27581#define INameSpaceTreeControlDropHandler_OnDragLeave(This,psiOver) (This)->lpVtbl->OnDragLeave(This,psiOver)
27582#else
27583/*** IUnknown methods ***/
27584static inline HRESULT INameSpaceTreeControlDropHandler_QueryInterface(INameSpaceTreeControlDropHandler* This,REFIID riid,void **ppvObject) {
27585    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27586}
27587static inline ULONG INameSpaceTreeControlDropHandler_AddRef(INameSpaceTreeControlDropHandler* This) {
27588    return This->lpVtbl->AddRef(This);
27589}
27590static inline ULONG INameSpaceTreeControlDropHandler_Release(INameSpaceTreeControlDropHandler* This) {
27591    return This->lpVtbl->Release(This);
27592}
27593/*** INameSpaceTreeControlDropHandler methods ***/
27594static inline HRESULT INameSpaceTreeControlDropHandler_OnDragEnter(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,WINBOOL fOutsideSource,DWORD grfKeyState,DWORD *pdwEffect) {
27595    return This->lpVtbl->OnDragEnter(This,psiOver,psiaData,fOutsideSource,grfKeyState,pdwEffect);
27596}
27597static inline HRESULT INameSpaceTreeControlDropHandler_OnDragOver(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,DWORD grfKeyState,DWORD *pdwEffect) {
27598    return This->lpVtbl->OnDragOver(This,psiOver,psiaData,grfKeyState,pdwEffect);
27599}
27600static inline HRESULT INameSpaceTreeControlDropHandler_OnDragPosition(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,int iNewPosition,int iOldPosition) {
27601    return This->lpVtbl->OnDragPosition(This,psiOver,psiaData,iNewPosition,iOldPosition);
27602}
27603static inline HRESULT INameSpaceTreeControlDropHandler_OnDrop(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,int iPosition,DWORD grfKeyState,DWORD *pdwEffect) {
27604    return This->lpVtbl->OnDrop(This,psiOver,psiaData,iPosition,grfKeyState,pdwEffect);
27605}
27606static inline HRESULT INameSpaceTreeControlDropHandler_OnDropPosition(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver,IShellItemArray *psiaData,int iNewPosition,int iOldPosition) {
27607    return This->lpVtbl->OnDropPosition(This,psiOver,psiaData,iNewPosition,iOldPosition);
27608}
27609static inline HRESULT INameSpaceTreeControlDropHandler_OnDragLeave(INameSpaceTreeControlDropHandler* This,IShellItem *psiOver) {
27610    return This->lpVtbl->OnDragLeave(This,psiOver);
27611}
27612#endif
27613#endif
27614
27615#endif
27616
27617
27618#endif  /* __INameSpaceTreeControlDropHandler_INTERFACE_DEFINED__ */
27619
27620
27621/*****************************************************************************
27622 * INameSpaceTreeAccessible interface
27623 */
27624#ifndef __INameSpaceTreeAccessible_INTERFACE_DEFINED__
27625#define __INameSpaceTreeAccessible_INTERFACE_DEFINED__
27626
27627DEFINE_GUID(IID_INameSpaceTreeAccessible, 0x71f312de, 0x43ed, 0x4190, 0x84,0x77, 0xe9,0x53,0x6b,0x82,0x35,0x0b);
27628#if defined(__cplusplus) && !defined(CINTERFACE)
27629MIDL_INTERFACE("71f312de-43ed-4190-8477-e9536b82350b")
27630INameSpaceTreeAccessible : public IUnknown
27631{
27632    virtual HRESULT STDMETHODCALLTYPE OnGetDefaultAccessibilityAction(
27633        IShellItem *psi,
27634        BSTR *pbstrDefaultAction) = 0;
27635
27636    virtual HRESULT STDMETHODCALLTYPE OnDoDefaultAccessibilityAction(
27637        IShellItem *psi) = 0;
27638
27639    virtual HRESULT STDMETHODCALLTYPE OnGetAccessibilityRole(
27640        IShellItem *psi,
27641        VARIANT *pvarRole) = 0;
27642
27643};
27644#ifdef __CRT_UUID_DECL
27645__CRT_UUID_DECL(INameSpaceTreeAccessible, 0x71f312de, 0x43ed, 0x4190, 0x84,0x77, 0xe9,0x53,0x6b,0x82,0x35,0x0b)
27646#endif
27647#else
27648typedef struct INameSpaceTreeAccessibleVtbl {
27649    BEGIN_INTERFACE
27650
27651    /*** IUnknown methods ***/
27652    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27653        INameSpaceTreeAccessible *This,
27654        REFIID riid,
27655        void **ppvObject);
27656
27657    ULONG (STDMETHODCALLTYPE *AddRef)(
27658        INameSpaceTreeAccessible *This);
27659
27660    ULONG (STDMETHODCALLTYPE *Release)(
27661        INameSpaceTreeAccessible *This);
27662
27663    /*** INameSpaceTreeAccessible methods ***/
27664    HRESULT (STDMETHODCALLTYPE *OnGetDefaultAccessibilityAction)(
27665        INameSpaceTreeAccessible *This,
27666        IShellItem *psi,
27667        BSTR *pbstrDefaultAction);
27668
27669    HRESULT (STDMETHODCALLTYPE *OnDoDefaultAccessibilityAction)(
27670        INameSpaceTreeAccessible *This,
27671        IShellItem *psi);
27672
27673    HRESULT (STDMETHODCALLTYPE *OnGetAccessibilityRole)(
27674        INameSpaceTreeAccessible *This,
27675        IShellItem *psi,
27676        VARIANT *pvarRole);
27677
27678    END_INTERFACE
27679} INameSpaceTreeAccessibleVtbl;
27680
27681interface INameSpaceTreeAccessible {
27682    CONST_VTBL INameSpaceTreeAccessibleVtbl* lpVtbl;
27683};
27684
27685#ifdef COBJMACROS
27686#ifndef WIDL_C_INLINE_WRAPPERS
27687/*** IUnknown methods ***/
27688#define INameSpaceTreeAccessible_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27689#define INameSpaceTreeAccessible_AddRef(This) (This)->lpVtbl->AddRef(This)
27690#define INameSpaceTreeAccessible_Release(This) (This)->lpVtbl->Release(This)
27691/*** INameSpaceTreeAccessible methods ***/
27692#define INameSpaceTreeAccessible_OnGetDefaultAccessibilityAction(This,psi,pbstrDefaultAction) (This)->lpVtbl->OnGetDefaultAccessibilityAction(This,psi,pbstrDefaultAction)
27693#define INameSpaceTreeAccessible_OnDoDefaultAccessibilityAction(This,psi) (This)->lpVtbl->OnDoDefaultAccessibilityAction(This,psi)
27694#define INameSpaceTreeAccessible_OnGetAccessibilityRole(This,psi,pvarRole) (This)->lpVtbl->OnGetAccessibilityRole(This,psi,pvarRole)
27695#else
27696/*** IUnknown methods ***/
27697static inline HRESULT INameSpaceTreeAccessible_QueryInterface(INameSpaceTreeAccessible* This,REFIID riid,void **ppvObject) {
27698    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27699}
27700static inline ULONG INameSpaceTreeAccessible_AddRef(INameSpaceTreeAccessible* This) {
27701    return This->lpVtbl->AddRef(This);
27702}
27703static inline ULONG INameSpaceTreeAccessible_Release(INameSpaceTreeAccessible* This) {
27704    return This->lpVtbl->Release(This);
27705}
27706/*** INameSpaceTreeAccessible methods ***/
27707static inline HRESULT INameSpaceTreeAccessible_OnGetDefaultAccessibilityAction(INameSpaceTreeAccessible* This,IShellItem *psi,BSTR *pbstrDefaultAction) {
27708    return This->lpVtbl->OnGetDefaultAccessibilityAction(This,psi,pbstrDefaultAction);
27709}
27710static inline HRESULT INameSpaceTreeAccessible_OnDoDefaultAccessibilityAction(INameSpaceTreeAccessible* This,IShellItem *psi) {
27711    return This->lpVtbl->OnDoDefaultAccessibilityAction(This,psi);
27712}
27713static inline HRESULT INameSpaceTreeAccessible_OnGetAccessibilityRole(INameSpaceTreeAccessible* This,IShellItem *psi,VARIANT *pvarRole) {
27714    return This->lpVtbl->OnGetAccessibilityRole(This,psi,pvarRole);
27715}
27716#endif
27717#endif
27718
27719#endif
27720
27721
27722#endif  /* __INameSpaceTreeAccessible_INTERFACE_DEFINED__ */
27723
27724
27725/*****************************************************************************
27726 * INameSpaceTreeControlCustomDraw interface
27727 */
27728#ifndef __INameSpaceTreeControlCustomDraw_INTERFACE_DEFINED__
27729#define __INameSpaceTreeControlCustomDraw_INTERFACE_DEFINED__
27730
27731typedef struct NSTCCUSTOMDRAW {
27732    IShellItem *psi;
27733    UINT uItemState;
27734    NSTCITEMSTATE nstcis;
27735    LPCWSTR pszText;
27736    int iImage;
27737    HIMAGELIST himl;
27738    int iLevel;
27739    int iIndent;
27740} NSTCCUSTOMDRAW;
27741
27742DEFINE_GUID(IID_INameSpaceTreeControlCustomDraw, 0x2d3ba758, 0x33ee, 0x42d5, 0xbb,0x7b, 0x5f,0x34,0x31,0xd8,0x6c,0x78);
27743#if defined(__cplusplus) && !defined(CINTERFACE)
27744MIDL_INTERFACE("2d3ba758-33ee-42d5-bb7b-5f3431d86c78")
27745INameSpaceTreeControlCustomDraw : public IUnknown
27746{
27747    virtual HRESULT STDMETHODCALLTYPE PrePaint(
27748        HDC hdc,
27749        RECT *prc,
27750        LRESULT *plres) = 0;
27751
27752    virtual HRESULT STDMETHODCALLTYPE PostPaint(
27753        HDC hdc,
27754        RECT *prc) = 0;
27755
27756    virtual HRESULT STDMETHODCALLTYPE ItemPrePaint(
27757        HDC hdc,
27758        RECT *prc,
27759        NSTCCUSTOMDRAW *pnstccdItem,
27760        COLORREF *pclrText,
27761        COLORREF *pclrTextBk,
27762        LRESULT *plres) = 0;
27763
27764    virtual HRESULT STDMETHODCALLTYPE ItemPostPaint(
27765        HDC hdc,
27766        RECT *prc,
27767        NSTCCUSTOMDRAW *pnstccdItem) = 0;
27768
27769};
27770#ifdef __CRT_UUID_DECL
27771__CRT_UUID_DECL(INameSpaceTreeControlCustomDraw, 0x2d3ba758, 0x33ee, 0x42d5, 0xbb,0x7b, 0x5f,0x34,0x31,0xd8,0x6c,0x78)
27772#endif
27773#else
27774typedef struct INameSpaceTreeControlCustomDrawVtbl {
27775    BEGIN_INTERFACE
27776
27777    /*** IUnknown methods ***/
27778    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27779        INameSpaceTreeControlCustomDraw *This,
27780        REFIID riid,
27781        void **ppvObject);
27782
27783    ULONG (STDMETHODCALLTYPE *AddRef)(
27784        INameSpaceTreeControlCustomDraw *This);
27785
27786    ULONG (STDMETHODCALLTYPE *Release)(
27787        INameSpaceTreeControlCustomDraw *This);
27788
27789    /*** INameSpaceTreeControlCustomDraw methods ***/
27790    HRESULT (STDMETHODCALLTYPE *PrePaint)(
27791        INameSpaceTreeControlCustomDraw *This,
27792        HDC hdc,
27793        RECT *prc,
27794        LRESULT *plres);
27795
27796    HRESULT (STDMETHODCALLTYPE *PostPaint)(
27797        INameSpaceTreeControlCustomDraw *This,
27798        HDC hdc,
27799        RECT *prc);
27800
27801    HRESULT (STDMETHODCALLTYPE *ItemPrePaint)(
27802        INameSpaceTreeControlCustomDraw *This,
27803        HDC hdc,
27804        RECT *prc,
27805        NSTCCUSTOMDRAW *pnstccdItem,
27806        COLORREF *pclrText,
27807        COLORREF *pclrTextBk,
27808        LRESULT *plres);
27809
27810    HRESULT (STDMETHODCALLTYPE *ItemPostPaint)(
27811        INameSpaceTreeControlCustomDraw *This,
27812        HDC hdc,
27813        RECT *prc,
27814        NSTCCUSTOMDRAW *pnstccdItem);
27815
27816    END_INTERFACE
27817} INameSpaceTreeControlCustomDrawVtbl;
27818
27819interface INameSpaceTreeControlCustomDraw {
27820    CONST_VTBL INameSpaceTreeControlCustomDrawVtbl* lpVtbl;
27821};
27822
27823#ifdef COBJMACROS
27824#ifndef WIDL_C_INLINE_WRAPPERS
27825/*** IUnknown methods ***/
27826#define INameSpaceTreeControlCustomDraw_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27827#define INameSpaceTreeControlCustomDraw_AddRef(This) (This)->lpVtbl->AddRef(This)
27828#define INameSpaceTreeControlCustomDraw_Release(This) (This)->lpVtbl->Release(This)
27829/*** INameSpaceTreeControlCustomDraw methods ***/
27830#define INameSpaceTreeControlCustomDraw_PrePaint(This,hdc,prc,plres) (This)->lpVtbl->PrePaint(This,hdc,prc,plres)
27831#define INameSpaceTreeControlCustomDraw_PostPaint(This,hdc,prc) (This)->lpVtbl->PostPaint(This,hdc,prc)
27832#define INameSpaceTreeControlCustomDraw_ItemPrePaint(This,hdc,prc,pnstccdItem,pclrText,pclrTextBk,plres) (This)->lpVtbl->ItemPrePaint(This,hdc,prc,pnstccdItem,pclrText,pclrTextBk,plres)
27833#define INameSpaceTreeControlCustomDraw_ItemPostPaint(This,hdc,prc,pnstccdItem) (This)->lpVtbl->ItemPostPaint(This,hdc,prc,pnstccdItem)
27834#else
27835/*** IUnknown methods ***/
27836static inline HRESULT INameSpaceTreeControlCustomDraw_QueryInterface(INameSpaceTreeControlCustomDraw* This,REFIID riid,void **ppvObject) {
27837    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27838}
27839static inline ULONG INameSpaceTreeControlCustomDraw_AddRef(INameSpaceTreeControlCustomDraw* This) {
27840    return This->lpVtbl->AddRef(This);
27841}
27842static inline ULONG INameSpaceTreeControlCustomDraw_Release(INameSpaceTreeControlCustomDraw* This) {
27843    return This->lpVtbl->Release(This);
27844}
27845/*** INameSpaceTreeControlCustomDraw methods ***/
27846static inline HRESULT INameSpaceTreeControlCustomDraw_PrePaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc,LRESULT *plres) {
27847    return This->lpVtbl->PrePaint(This,hdc,prc,plres);
27848}
27849static inline HRESULT INameSpaceTreeControlCustomDraw_PostPaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc) {
27850    return This->lpVtbl->PostPaint(This,hdc,prc);
27851}
27852static inline HRESULT INameSpaceTreeControlCustomDraw_ItemPrePaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc,NSTCCUSTOMDRAW *pnstccdItem,COLORREF *pclrText,COLORREF *pclrTextBk,LRESULT *plres) {
27853    return This->lpVtbl->ItemPrePaint(This,hdc,prc,pnstccdItem,pclrText,pclrTextBk,plres);
27854}
27855static inline HRESULT INameSpaceTreeControlCustomDraw_ItemPostPaint(INameSpaceTreeControlCustomDraw* This,HDC hdc,RECT *prc,NSTCCUSTOMDRAW *pnstccdItem) {
27856    return This->lpVtbl->ItemPostPaint(This,hdc,prc,pnstccdItem);
27857}
27858#endif
27859#endif
27860
27861#endif
27862
27863
27864#endif  /* __INameSpaceTreeControlCustomDraw_INTERFACE_DEFINED__ */
27865
27866
27867#if NTDDI_VERSION >= NTDDI_VISTA
27868/*****************************************************************************
27869 * INameSpaceTreeControlFolderCapabilities interface
27870 */
27871#ifndef __INameSpaceTreeControlFolderCapabilities_INTERFACE_DEFINED__
27872#define __INameSpaceTreeControlFolderCapabilities_INTERFACE_DEFINED__
27873
27874typedef enum NSTCFOLDERCAPABILITIES {
27875    NSTCFC_NONE = 0x0,
27876    NSTCFC_PINNEDITEMFILTERING = 0x1,
27877    NSTCFC_DELAY_REGISTER_NOTIFY = 0x2
27878} NSTCFOLDERCAPABILITIES;
27879
27880DEFINE_ENUM_FLAG_OPERATORS(NSTCFOLDERCAPABILITIES)
27881
27882DEFINE_GUID(IID_INameSpaceTreeControlFolderCapabilities, 0xe9701183, 0xe6b3, 0x4ff2, 0x85,0x68, 0x81,0x36,0x15,0xfe,0xc7,0xbe);
27883#if defined(__cplusplus) && !defined(CINTERFACE)
27884MIDL_INTERFACE("e9701183-e6b3-4ff2-8568-813615fec7be")
27885INameSpaceTreeControlFolderCapabilities : public IUnknown
27886{
27887    virtual HRESULT STDMETHODCALLTYPE GetFolderCapabilities(
27888        NSTCFOLDERCAPABILITIES nfcMask,
27889        NSTCFOLDERCAPABILITIES *pnfcValue) = 0;
27890
27891};
27892#ifdef __CRT_UUID_DECL
27893__CRT_UUID_DECL(INameSpaceTreeControlFolderCapabilities, 0xe9701183, 0xe6b3, 0x4ff2, 0x85,0x68, 0x81,0x36,0x15,0xfe,0xc7,0xbe)
27894#endif
27895#else
27896typedef struct INameSpaceTreeControlFolderCapabilitiesVtbl {
27897    BEGIN_INTERFACE
27898
27899    /*** IUnknown methods ***/
27900    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
27901        INameSpaceTreeControlFolderCapabilities *This,
27902        REFIID riid,
27903        void **ppvObject);
27904
27905    ULONG (STDMETHODCALLTYPE *AddRef)(
27906        INameSpaceTreeControlFolderCapabilities *This);
27907
27908    ULONG (STDMETHODCALLTYPE *Release)(
27909        INameSpaceTreeControlFolderCapabilities *This);
27910
27911    /*** INameSpaceTreeControlFolderCapabilities methods ***/
27912    HRESULT (STDMETHODCALLTYPE *GetFolderCapabilities)(
27913        INameSpaceTreeControlFolderCapabilities *This,
27914        NSTCFOLDERCAPABILITIES nfcMask,
27915        NSTCFOLDERCAPABILITIES *pnfcValue);
27916
27917    END_INTERFACE
27918} INameSpaceTreeControlFolderCapabilitiesVtbl;
27919
27920interface INameSpaceTreeControlFolderCapabilities {
27921    CONST_VTBL INameSpaceTreeControlFolderCapabilitiesVtbl* lpVtbl;
27922};
27923
27924#ifdef COBJMACROS
27925#ifndef WIDL_C_INLINE_WRAPPERS
27926/*** IUnknown methods ***/
27927#define INameSpaceTreeControlFolderCapabilities_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
27928#define INameSpaceTreeControlFolderCapabilities_AddRef(This) (This)->lpVtbl->AddRef(This)
27929#define INameSpaceTreeControlFolderCapabilities_Release(This) (This)->lpVtbl->Release(This)
27930/*** INameSpaceTreeControlFolderCapabilities methods ***/
27931#define INameSpaceTreeControlFolderCapabilities_GetFolderCapabilities(This,nfcMask,pnfcValue) (This)->lpVtbl->GetFolderCapabilities(This,nfcMask,pnfcValue)
27932#else
27933/*** IUnknown methods ***/
27934static inline HRESULT INameSpaceTreeControlFolderCapabilities_QueryInterface(INameSpaceTreeControlFolderCapabilities* This,REFIID riid,void **ppvObject) {
27935    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
27936}
27937static inline ULONG INameSpaceTreeControlFolderCapabilities_AddRef(INameSpaceTreeControlFolderCapabilities* This) {
27938    return This->lpVtbl->AddRef(This);
27939}
27940static inline ULONG INameSpaceTreeControlFolderCapabilities_Release(INameSpaceTreeControlFolderCapabilities* This) {
27941    return This->lpVtbl->Release(This);
27942}
27943/*** INameSpaceTreeControlFolderCapabilities methods ***/
27944static inline HRESULT INameSpaceTreeControlFolderCapabilities_GetFolderCapabilities(INameSpaceTreeControlFolderCapabilities* This,NSTCFOLDERCAPABILITIES nfcMask,NSTCFOLDERCAPABILITIES *pnfcValue) {
27945    return This->lpVtbl->GetFolderCapabilities(This,nfcMask,pnfcValue);
27946}
27947#endif
27948#endif
27949
27950#endif
27951
27952
27953#endif  /* __INameSpaceTreeControlFolderCapabilities_INTERFACE_DEFINED__ */
27954
27955#endif
27956
27957#define E_PREVIEWHANDLER_DRM_FAIL _HRESULT_TYPEDEF_(0x86420001L)
27958#define E_PREVIEWHANDLER_NOAUTH   _HRESULT_TYPEDEF_(0x86420002L)
27959#define E_PREVIEWHANDLER_NOTFOUND _HRESULT_TYPEDEF_(0x86420003L)
27960#define E_PREVIEWHANDLER_CORRUPT  _HRESULT_TYPEDEF_(0x86420004L)
27961
27962/*****************************************************************************
27963 * IPreviewHandler interface
27964 */
27965#ifndef __IPreviewHandler_INTERFACE_DEFINED__
27966#define __IPreviewHandler_INTERFACE_DEFINED__
27967
27968DEFINE_GUID(IID_IPreviewHandler, 0x8895b1c6, 0xb41f, 0x4c1c, 0xa5,0x62, 0x0d,0x56,0x42,0x50,0x83,0x6f);
27969#if defined(__cplusplus) && !defined(CINTERFACE)
27970MIDL_INTERFACE("8895b1c6-b41f-4c1c-a562-0d564250836f")
27971IPreviewHandler : public IUnknown
27972{
27973    virtual HRESULT STDMETHODCALLTYPE SetWindow(
27974        HWND hwnd,
27975        const RECT *prc) = 0;
27976
27977    virtual HRESULT STDMETHODCALLTYPE SetRect(
27978        const RECT *prc) = 0;
27979
27980    virtual HRESULT STDMETHODCALLTYPE DoPreview(
27981        ) = 0;
27982
27983    virtual HRESULT STDMETHODCALLTYPE Unload(
27984        ) = 0;
27985
27986    virtual HRESULT STDMETHODCALLTYPE SetFocus(
27987        ) = 0;
27988
27989    virtual HRESULT STDMETHODCALLTYPE QueryFocus(
27990        HWND *phwnd) = 0;
27991
27992    virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
27993        MSG *pmsg) = 0;
27994
27995};
27996#ifdef __CRT_UUID_DECL
27997__CRT_UUID_DECL(IPreviewHandler, 0x8895b1c6, 0xb41f, 0x4c1c, 0xa5,0x62, 0x0d,0x56,0x42,0x50,0x83,0x6f)
27998#endif
27999#else
28000typedef struct IPreviewHandlerVtbl {
28001    BEGIN_INTERFACE
28002
28003    /*** IUnknown methods ***/
28004    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28005        IPreviewHandler *This,
28006        REFIID riid,
28007        void **ppvObject);
28008
28009    ULONG (STDMETHODCALLTYPE *AddRef)(
28010        IPreviewHandler *This);
28011
28012    ULONG (STDMETHODCALLTYPE *Release)(
28013        IPreviewHandler *This);
28014
28015    /*** IPreviewHandler methods ***/
28016    HRESULT (STDMETHODCALLTYPE *SetWindow)(
28017        IPreviewHandler *This,
28018        HWND hwnd,
28019        const RECT *prc);
28020
28021    HRESULT (STDMETHODCALLTYPE *SetRect)(
28022        IPreviewHandler *This,
28023        const RECT *prc);
28024
28025    HRESULT (STDMETHODCALLTYPE *DoPreview)(
28026        IPreviewHandler *This);
28027
28028    HRESULT (STDMETHODCALLTYPE *Unload)(
28029        IPreviewHandler *This);
28030
28031    HRESULT (STDMETHODCALLTYPE *SetFocus)(
28032        IPreviewHandler *This);
28033
28034    HRESULT (STDMETHODCALLTYPE *QueryFocus)(
28035        IPreviewHandler *This,
28036        HWND *phwnd);
28037
28038    HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
28039        IPreviewHandler *This,
28040        MSG *pmsg);
28041
28042    END_INTERFACE
28043} IPreviewHandlerVtbl;
28044
28045interface IPreviewHandler {
28046    CONST_VTBL IPreviewHandlerVtbl* lpVtbl;
28047};
28048
28049#ifdef COBJMACROS
28050#ifndef WIDL_C_INLINE_WRAPPERS
28051/*** IUnknown methods ***/
28052#define IPreviewHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28053#define IPreviewHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
28054#define IPreviewHandler_Release(This) (This)->lpVtbl->Release(This)
28055/*** IPreviewHandler methods ***/
28056#define IPreviewHandler_SetWindow(This,hwnd,prc) (This)->lpVtbl->SetWindow(This,hwnd,prc)
28057#define IPreviewHandler_SetRect(This,prc) (This)->lpVtbl->SetRect(This,prc)
28058#define IPreviewHandler_DoPreview(This) (This)->lpVtbl->DoPreview(This)
28059#define IPreviewHandler_Unload(This) (This)->lpVtbl->Unload(This)
28060#define IPreviewHandler_SetFocus(This) (This)->lpVtbl->SetFocus(This)
28061#define IPreviewHandler_QueryFocus(This,phwnd) (This)->lpVtbl->QueryFocus(This,phwnd)
28062#define IPreviewHandler_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
28063#else
28064/*** IUnknown methods ***/
28065static inline HRESULT IPreviewHandler_QueryInterface(IPreviewHandler* This,REFIID riid,void **ppvObject) {
28066    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28067}
28068static inline ULONG IPreviewHandler_AddRef(IPreviewHandler* This) {
28069    return This->lpVtbl->AddRef(This);
28070}
28071static inline ULONG IPreviewHandler_Release(IPreviewHandler* This) {
28072    return This->lpVtbl->Release(This);
28073}
28074/*** IPreviewHandler methods ***/
28075static inline HRESULT IPreviewHandler_SetWindow(IPreviewHandler* This,HWND hwnd,const RECT *prc) {
28076    return This->lpVtbl->SetWindow(This,hwnd,prc);
28077}
28078static inline HRESULT IPreviewHandler_SetRect(IPreviewHandler* This,const RECT *prc) {
28079    return This->lpVtbl->SetRect(This,prc);
28080}
28081static inline HRESULT IPreviewHandler_DoPreview(IPreviewHandler* This) {
28082    return This->lpVtbl->DoPreview(This);
28083}
28084static inline HRESULT IPreviewHandler_Unload(IPreviewHandler* This) {
28085    return This->lpVtbl->Unload(This);
28086}
28087static inline HRESULT IPreviewHandler_SetFocus(IPreviewHandler* This) {
28088    return This->lpVtbl->SetFocus(This);
28089}
28090static inline HRESULT IPreviewHandler_QueryFocus(IPreviewHandler* This,HWND *phwnd) {
28091    return This->lpVtbl->QueryFocus(This,phwnd);
28092}
28093static inline HRESULT IPreviewHandler_TranslateAccelerator(IPreviewHandler* This,MSG *pmsg) {
28094    return This->lpVtbl->TranslateAccelerator(This,pmsg);
28095}
28096#endif
28097#endif
28098
28099#endif
28100
28101
28102#endif  /* __IPreviewHandler_INTERFACE_DEFINED__ */
28103
28104
28105/*****************************************************************************
28106 * IPreviewHandlerFrame interface
28107 */
28108#ifndef __IPreviewHandlerFrame_INTERFACE_DEFINED__
28109#define __IPreviewHandlerFrame_INTERFACE_DEFINED__
28110
28111typedef struct PREVIEWHANDLERFRAMEINFO {
28112    HACCEL haccel;
28113    UINT cAccelEntries;
28114} PREVIEWHANDLERFRAMEINFO;
28115
28116DEFINE_GUID(IID_IPreviewHandlerFrame, 0xfec87aaf, 0x35f9, 0x447a, 0xad,0xb7, 0x20,0x23,0x44,0x91,0x40,0x1a);
28117#if defined(__cplusplus) && !defined(CINTERFACE)
28118MIDL_INTERFACE("fec87aaf-35f9-447a-adb7-20234491401a")
28119IPreviewHandlerFrame : public IUnknown
28120{
28121    virtual HRESULT STDMETHODCALLTYPE GetWindowContext(
28122        PREVIEWHANDLERFRAMEINFO *pinfo) = 0;
28123
28124    virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
28125        MSG *pmsg) = 0;
28126
28127};
28128#ifdef __CRT_UUID_DECL
28129__CRT_UUID_DECL(IPreviewHandlerFrame, 0xfec87aaf, 0x35f9, 0x447a, 0xad,0xb7, 0x20,0x23,0x44,0x91,0x40,0x1a)
28130#endif
28131#else
28132typedef struct IPreviewHandlerFrameVtbl {
28133    BEGIN_INTERFACE
28134
28135    /*** IUnknown methods ***/
28136    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28137        IPreviewHandlerFrame *This,
28138        REFIID riid,
28139        void **ppvObject);
28140
28141    ULONG (STDMETHODCALLTYPE *AddRef)(
28142        IPreviewHandlerFrame *This);
28143
28144    ULONG (STDMETHODCALLTYPE *Release)(
28145        IPreviewHandlerFrame *This);
28146
28147    /*** IPreviewHandlerFrame methods ***/
28148    HRESULT (STDMETHODCALLTYPE *GetWindowContext)(
28149        IPreviewHandlerFrame *This,
28150        PREVIEWHANDLERFRAMEINFO *pinfo);
28151
28152    HRESULT (STDMETHODCALLTYPE *TranslateAccelerator)(
28153        IPreviewHandlerFrame *This,
28154        MSG *pmsg);
28155
28156    END_INTERFACE
28157} IPreviewHandlerFrameVtbl;
28158
28159interface IPreviewHandlerFrame {
28160    CONST_VTBL IPreviewHandlerFrameVtbl* lpVtbl;
28161};
28162
28163#ifdef COBJMACROS
28164#ifndef WIDL_C_INLINE_WRAPPERS
28165/*** IUnknown methods ***/
28166#define IPreviewHandlerFrame_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28167#define IPreviewHandlerFrame_AddRef(This) (This)->lpVtbl->AddRef(This)
28168#define IPreviewHandlerFrame_Release(This) (This)->lpVtbl->Release(This)
28169/*** IPreviewHandlerFrame methods ***/
28170#define IPreviewHandlerFrame_GetWindowContext(This,pinfo) (This)->lpVtbl->GetWindowContext(This,pinfo)
28171#define IPreviewHandlerFrame_TranslateAccelerator(This,pmsg) (This)->lpVtbl->TranslateAccelerator(This,pmsg)
28172#else
28173/*** IUnknown methods ***/
28174static inline HRESULT IPreviewHandlerFrame_QueryInterface(IPreviewHandlerFrame* This,REFIID riid,void **ppvObject) {
28175    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28176}
28177static inline ULONG IPreviewHandlerFrame_AddRef(IPreviewHandlerFrame* This) {
28178    return This->lpVtbl->AddRef(This);
28179}
28180static inline ULONG IPreviewHandlerFrame_Release(IPreviewHandlerFrame* This) {
28181    return This->lpVtbl->Release(This);
28182}
28183/*** IPreviewHandlerFrame methods ***/
28184static inline HRESULT IPreviewHandlerFrame_GetWindowContext(IPreviewHandlerFrame* This,PREVIEWHANDLERFRAMEINFO *pinfo) {
28185    return This->lpVtbl->GetWindowContext(This,pinfo);
28186}
28187static inline HRESULT IPreviewHandlerFrame_TranslateAccelerator(IPreviewHandlerFrame* This,MSG *pmsg) {
28188    return This->lpVtbl->TranslateAccelerator(This,pmsg);
28189}
28190#endif
28191#endif
28192
28193#endif
28194
28195
28196#endif  /* __IPreviewHandlerFrame_INTERFACE_DEFINED__ */
28197
28198
28199#if NTDDI_VERSION >= NTDDI_VISTA
28200/*****************************************************************************
28201 * ITrayDeskBand interface
28202 */
28203#ifndef __ITrayDeskBand_INTERFACE_DEFINED__
28204#define __ITrayDeskBand_INTERFACE_DEFINED__
28205
28206DEFINE_GUID(IID_ITrayDeskBand, 0x6d67e846, 0x5b9c, 0x4db8, 0x9c,0xbc, 0xdd,0xe1,0x2f,0x42,0x54,0xf1);
28207#if defined(__cplusplus) && !defined(CINTERFACE)
28208MIDL_INTERFACE("6d67e846-5b9c-4db8-9cbc-dde12f4254f1")
28209ITrayDeskBand : public IUnknown
28210{
28211    virtual HRESULT STDMETHODCALLTYPE ShowDeskBand(
28212        REFCLSID clsid) = 0;
28213
28214    virtual HRESULT STDMETHODCALLTYPE HideDeskBand(
28215        REFCLSID clsid) = 0;
28216
28217    virtual HRESULT STDMETHODCALLTYPE IsDeskBandShown(
28218        REFCLSID clsid) = 0;
28219
28220    virtual HRESULT STDMETHODCALLTYPE DeskBandRegistrationChanged(
28221        ) = 0;
28222
28223};
28224#ifdef __CRT_UUID_DECL
28225__CRT_UUID_DECL(ITrayDeskBand, 0x6d67e846, 0x5b9c, 0x4db8, 0x9c,0xbc, 0xdd,0xe1,0x2f,0x42,0x54,0xf1)
28226#endif
28227#else
28228typedef struct ITrayDeskBandVtbl {
28229    BEGIN_INTERFACE
28230
28231    /*** IUnknown methods ***/
28232    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28233        ITrayDeskBand *This,
28234        REFIID riid,
28235        void **ppvObject);
28236
28237    ULONG (STDMETHODCALLTYPE *AddRef)(
28238        ITrayDeskBand *This);
28239
28240    ULONG (STDMETHODCALLTYPE *Release)(
28241        ITrayDeskBand *This);
28242
28243    /*** ITrayDeskBand methods ***/
28244    HRESULT (STDMETHODCALLTYPE *ShowDeskBand)(
28245        ITrayDeskBand *This,
28246        REFCLSID clsid);
28247
28248    HRESULT (STDMETHODCALLTYPE *HideDeskBand)(
28249        ITrayDeskBand *This,
28250        REFCLSID clsid);
28251
28252    HRESULT (STDMETHODCALLTYPE *IsDeskBandShown)(
28253        ITrayDeskBand *This,
28254        REFCLSID clsid);
28255
28256    HRESULT (STDMETHODCALLTYPE *DeskBandRegistrationChanged)(
28257        ITrayDeskBand *This);
28258
28259    END_INTERFACE
28260} ITrayDeskBandVtbl;
28261
28262interface ITrayDeskBand {
28263    CONST_VTBL ITrayDeskBandVtbl* lpVtbl;
28264};
28265
28266#ifdef COBJMACROS
28267#ifndef WIDL_C_INLINE_WRAPPERS
28268/*** IUnknown methods ***/
28269#define ITrayDeskBand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28270#define ITrayDeskBand_AddRef(This) (This)->lpVtbl->AddRef(This)
28271#define ITrayDeskBand_Release(This) (This)->lpVtbl->Release(This)
28272/*** ITrayDeskBand methods ***/
28273#define ITrayDeskBand_ShowDeskBand(This,clsid) (This)->lpVtbl->ShowDeskBand(This,clsid)
28274#define ITrayDeskBand_HideDeskBand(This,clsid) (This)->lpVtbl->HideDeskBand(This,clsid)
28275#define ITrayDeskBand_IsDeskBandShown(This,clsid) (This)->lpVtbl->IsDeskBandShown(This,clsid)
28276#define ITrayDeskBand_DeskBandRegistrationChanged(This) (This)->lpVtbl->DeskBandRegistrationChanged(This)
28277#else
28278/*** IUnknown methods ***/
28279static inline HRESULT ITrayDeskBand_QueryInterface(ITrayDeskBand* This,REFIID riid,void **ppvObject) {
28280    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28281}
28282static inline ULONG ITrayDeskBand_AddRef(ITrayDeskBand* This) {
28283    return This->lpVtbl->AddRef(This);
28284}
28285static inline ULONG ITrayDeskBand_Release(ITrayDeskBand* This) {
28286    return This->lpVtbl->Release(This);
28287}
28288/*** ITrayDeskBand methods ***/
28289static inline HRESULT ITrayDeskBand_ShowDeskBand(ITrayDeskBand* This,REFCLSID clsid) {
28290    return This->lpVtbl->ShowDeskBand(This,clsid);
28291}
28292static inline HRESULT ITrayDeskBand_HideDeskBand(ITrayDeskBand* This,REFCLSID clsid) {
28293    return This->lpVtbl->HideDeskBand(This,clsid);
28294}
28295static inline HRESULT ITrayDeskBand_IsDeskBandShown(ITrayDeskBand* This,REFCLSID clsid) {
28296    return This->lpVtbl->IsDeskBandShown(This,clsid);
28297}
28298static inline HRESULT ITrayDeskBand_DeskBandRegistrationChanged(ITrayDeskBand* This) {
28299    return This->lpVtbl->DeskBandRegistrationChanged(This);
28300}
28301#endif
28302#endif
28303
28304#endif
28305
28306
28307#endif  /* __ITrayDeskBand_INTERFACE_DEFINED__ */
28308
28309
28310/*****************************************************************************
28311 * IBandHost interface
28312 */
28313#ifndef __IBandHost_INTERFACE_DEFINED__
28314#define __IBandHost_INTERFACE_DEFINED__
28315
28316DEFINE_GUID(IID_IBandHost, 0xb9075c7c, 0xd48e, 0x403f, 0xab,0x99, 0xd6,0xc7,0x7a,0x10,0x84,0xac);
28317#if defined(__cplusplus) && !defined(CINTERFACE)
28318MIDL_INTERFACE("b9075c7c-d48e-403f-ab99-d6c77a1084ac")
28319IBandHost : public IUnknown
28320{
28321    virtual HRESULT STDMETHODCALLTYPE CreateBand(
28322        REFCLSID rclsidBand,
28323        WINBOOL fAvailable,
28324        WINBOOL fVisible,
28325        REFIID riid,
28326        void **ppv) = 0;
28327
28328    virtual HRESULT STDMETHODCALLTYPE SetBandAvailability(
28329        REFCLSID rclsidBand,
28330        WINBOOL fAvailable) = 0;
28331
28332    virtual HRESULT STDMETHODCALLTYPE DestroyBand(
28333        REFCLSID rclsidBand) = 0;
28334
28335};
28336#ifdef __CRT_UUID_DECL
28337__CRT_UUID_DECL(IBandHost, 0xb9075c7c, 0xd48e, 0x403f, 0xab,0x99, 0xd6,0xc7,0x7a,0x10,0x84,0xac)
28338#endif
28339#else
28340typedef struct IBandHostVtbl {
28341    BEGIN_INTERFACE
28342
28343    /*** IUnknown methods ***/
28344    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28345        IBandHost *This,
28346        REFIID riid,
28347        void **ppvObject);
28348
28349    ULONG (STDMETHODCALLTYPE *AddRef)(
28350        IBandHost *This);
28351
28352    ULONG (STDMETHODCALLTYPE *Release)(
28353        IBandHost *This);
28354
28355    /*** IBandHost methods ***/
28356    HRESULT (STDMETHODCALLTYPE *CreateBand)(
28357        IBandHost *This,
28358        REFCLSID rclsidBand,
28359        WINBOOL fAvailable,
28360        WINBOOL fVisible,
28361        REFIID riid,
28362        void **ppv);
28363
28364    HRESULT (STDMETHODCALLTYPE *SetBandAvailability)(
28365        IBandHost *This,
28366        REFCLSID rclsidBand,
28367        WINBOOL fAvailable);
28368
28369    HRESULT (STDMETHODCALLTYPE *DestroyBand)(
28370        IBandHost *This,
28371        REFCLSID rclsidBand);
28372
28373    END_INTERFACE
28374} IBandHostVtbl;
28375
28376interface IBandHost {
28377    CONST_VTBL IBandHostVtbl* lpVtbl;
28378};
28379
28380#ifdef COBJMACROS
28381#ifndef WIDL_C_INLINE_WRAPPERS
28382/*** IUnknown methods ***/
28383#define IBandHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28384#define IBandHost_AddRef(This) (This)->lpVtbl->AddRef(This)
28385#define IBandHost_Release(This) (This)->lpVtbl->Release(This)
28386/*** IBandHost methods ***/
28387#define IBandHost_CreateBand(This,rclsidBand,fAvailable,fVisible,riid,ppv) (This)->lpVtbl->CreateBand(This,rclsidBand,fAvailable,fVisible,riid,ppv)
28388#define IBandHost_SetBandAvailability(This,rclsidBand,fAvailable) (This)->lpVtbl->SetBandAvailability(This,rclsidBand,fAvailable)
28389#define IBandHost_DestroyBand(This,rclsidBand) (This)->lpVtbl->DestroyBand(This,rclsidBand)
28390#else
28391/*** IUnknown methods ***/
28392static inline HRESULT IBandHost_QueryInterface(IBandHost* This,REFIID riid,void **ppvObject) {
28393    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28394}
28395static inline ULONG IBandHost_AddRef(IBandHost* This) {
28396    return This->lpVtbl->AddRef(This);
28397}
28398static inline ULONG IBandHost_Release(IBandHost* This) {
28399    return This->lpVtbl->Release(This);
28400}
28401/*** IBandHost methods ***/
28402static inline HRESULT IBandHost_CreateBand(IBandHost* This,REFCLSID rclsidBand,WINBOOL fAvailable,WINBOOL fVisible,REFIID riid,void **ppv) {
28403    return This->lpVtbl->CreateBand(This,rclsidBand,fAvailable,fVisible,riid,ppv);
28404}
28405static inline HRESULT IBandHost_SetBandAvailability(IBandHost* This,REFCLSID rclsidBand,WINBOOL fAvailable) {
28406    return This->lpVtbl->SetBandAvailability(This,rclsidBand,fAvailable);
28407}
28408static inline HRESULT IBandHost_DestroyBand(IBandHost* This,REFCLSID rclsidBand) {
28409    return This->lpVtbl->DestroyBand(This,rclsidBand);
28410}
28411#endif
28412#endif
28413
28414#endif
28415
28416
28417#endif  /* __IBandHost_INTERFACE_DEFINED__ */
28418
28419
28420#define SID_SBandHost IID_IBandHost
28421
28422typedef GUID EXPLORERPANE;
28423
28424#if 0
28425typedef EXPLORERPANE *REFEXPLORERPANE;
28426#endif
28427
28428#ifdef __cplusplus
28429#define REFEXPLORERPANE const EXPLORERPANE &
28430#else
28431#define REFEXPLORERPANE const EXPLORERPANE * __MIDL_CONST
28432#endif
28433
28434/*****************************************************************************
28435 * IExplorerPaneVisibility interface
28436 */
28437#ifndef __IExplorerPaneVisibility_INTERFACE_DEFINED__
28438#define __IExplorerPaneVisibility_INTERFACE_DEFINED__
28439
28440enum _EXPLORERPANESTATE {
28441    EPS_DONTCARE = 0x0,
28442    EPS_DEFAULT_ON = 0x1,
28443    EPS_DEFAULT_OFF = 0x2,
28444    EPS_STATEMASK = 0xffff,
28445    EPS_INITIALSTATE = 0x10000,
28446    EPS_FORCE = 0x20000
28447};
28448
28449typedef DWORD EXPLORERPANESTATE;
28450
28451DEFINE_GUID(IID_IExplorerPaneVisibility, 0xe07010ec, 0xbc17, 0x44c0, 0x97,0xb0, 0x46,0xc7,0xc9,0x5b,0x9e,0xdc);
28452#if defined(__cplusplus) && !defined(CINTERFACE)
28453MIDL_INTERFACE("e07010ec-bc17-44c0-97b0-46c7c95b9edc")
28454IExplorerPaneVisibility : public IUnknown
28455{
28456    virtual HRESULT STDMETHODCALLTYPE GetPaneState(
28457        REFEXPLORERPANE ep,
28458        EXPLORERPANESTATE *peps) = 0;
28459
28460};
28461#ifdef __CRT_UUID_DECL
28462__CRT_UUID_DECL(IExplorerPaneVisibility, 0xe07010ec, 0xbc17, 0x44c0, 0x97,0xb0, 0x46,0xc7,0xc9,0x5b,0x9e,0xdc)
28463#endif
28464#else
28465typedef struct IExplorerPaneVisibilityVtbl {
28466    BEGIN_INTERFACE
28467
28468    /*** IUnknown methods ***/
28469    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28470        IExplorerPaneVisibility *This,
28471        REFIID riid,
28472        void **ppvObject);
28473
28474    ULONG (STDMETHODCALLTYPE *AddRef)(
28475        IExplorerPaneVisibility *This);
28476
28477    ULONG (STDMETHODCALLTYPE *Release)(
28478        IExplorerPaneVisibility *This);
28479
28480    /*** IExplorerPaneVisibility methods ***/
28481    HRESULT (STDMETHODCALLTYPE *GetPaneState)(
28482        IExplorerPaneVisibility *This,
28483        REFEXPLORERPANE ep,
28484        EXPLORERPANESTATE *peps);
28485
28486    END_INTERFACE
28487} IExplorerPaneVisibilityVtbl;
28488
28489interface IExplorerPaneVisibility {
28490    CONST_VTBL IExplorerPaneVisibilityVtbl* lpVtbl;
28491};
28492
28493#ifdef COBJMACROS
28494#ifndef WIDL_C_INLINE_WRAPPERS
28495/*** IUnknown methods ***/
28496#define IExplorerPaneVisibility_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28497#define IExplorerPaneVisibility_AddRef(This) (This)->lpVtbl->AddRef(This)
28498#define IExplorerPaneVisibility_Release(This) (This)->lpVtbl->Release(This)
28499/*** IExplorerPaneVisibility methods ***/
28500#define IExplorerPaneVisibility_GetPaneState(This,ep,peps) (This)->lpVtbl->GetPaneState(This,ep,peps)
28501#else
28502/*** IUnknown methods ***/
28503static inline HRESULT IExplorerPaneVisibility_QueryInterface(IExplorerPaneVisibility* This,REFIID riid,void **ppvObject) {
28504    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28505}
28506static inline ULONG IExplorerPaneVisibility_AddRef(IExplorerPaneVisibility* This) {
28507    return This->lpVtbl->AddRef(This);
28508}
28509static inline ULONG IExplorerPaneVisibility_Release(IExplorerPaneVisibility* This) {
28510    return This->lpVtbl->Release(This);
28511}
28512/*** IExplorerPaneVisibility methods ***/
28513static inline HRESULT IExplorerPaneVisibility_GetPaneState(IExplorerPaneVisibility* This,REFEXPLORERPANE ep,EXPLORERPANESTATE *peps) {
28514    return This->lpVtbl->GetPaneState(This,ep,peps);
28515}
28516#endif
28517#endif
28518
28519#endif
28520
28521
28522#endif  /* __IExplorerPaneVisibility_INTERFACE_DEFINED__ */
28523
28524
28525#define SID_ExplorerPaneVisibility IID_IExplorerPaneVisibility
28526
28527/*****************************************************************************
28528 * IContextMenuCB interface
28529 */
28530#ifndef __IContextMenuCB_INTERFACE_DEFINED__
28531#define __IContextMenuCB_INTERFACE_DEFINED__
28532
28533DEFINE_GUID(IID_IContextMenuCB, 0x3409e930, 0x5a39, 0x11d1, 0x83,0xfa, 0x00,0xa0,0xc9,0x0d,0xc8,0x49);
28534#if defined(__cplusplus) && !defined(CINTERFACE)
28535MIDL_INTERFACE("3409e930-5a39-11d1-83fa-00a0c90dc849")
28536IContextMenuCB : public IUnknown
28537{
28538    virtual HRESULT STDMETHODCALLTYPE CallBack(
28539        IShellFolder *psf,
28540        HWND hwndOwner,
28541        IDataObject *pdtobj,
28542        UINT uMsg,
28543        WPARAM wParam,
28544        LPARAM lParam) = 0;
28545
28546};
28547#ifdef __CRT_UUID_DECL
28548__CRT_UUID_DECL(IContextMenuCB, 0x3409e930, 0x5a39, 0x11d1, 0x83,0xfa, 0x00,0xa0,0xc9,0x0d,0xc8,0x49)
28549#endif
28550#else
28551typedef struct IContextMenuCBVtbl {
28552    BEGIN_INTERFACE
28553
28554    /*** IUnknown methods ***/
28555    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28556        IContextMenuCB *This,
28557        REFIID riid,
28558        void **ppvObject);
28559
28560    ULONG (STDMETHODCALLTYPE *AddRef)(
28561        IContextMenuCB *This);
28562
28563    ULONG (STDMETHODCALLTYPE *Release)(
28564        IContextMenuCB *This);
28565
28566    /*** IContextMenuCB methods ***/
28567    HRESULT (STDMETHODCALLTYPE *CallBack)(
28568        IContextMenuCB *This,
28569        IShellFolder *psf,
28570        HWND hwndOwner,
28571        IDataObject *pdtobj,
28572        UINT uMsg,
28573        WPARAM wParam,
28574        LPARAM lParam);
28575
28576    END_INTERFACE
28577} IContextMenuCBVtbl;
28578
28579interface IContextMenuCB {
28580    CONST_VTBL IContextMenuCBVtbl* lpVtbl;
28581};
28582
28583#ifdef COBJMACROS
28584#ifndef WIDL_C_INLINE_WRAPPERS
28585/*** IUnknown methods ***/
28586#define IContextMenuCB_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28587#define IContextMenuCB_AddRef(This) (This)->lpVtbl->AddRef(This)
28588#define IContextMenuCB_Release(This) (This)->lpVtbl->Release(This)
28589/*** IContextMenuCB methods ***/
28590#define IContextMenuCB_CallBack(This,psf,hwndOwner,pdtobj,uMsg,wParam,lParam) (This)->lpVtbl->CallBack(This,psf,hwndOwner,pdtobj,uMsg,wParam,lParam)
28591#else
28592/*** IUnknown methods ***/
28593static inline HRESULT IContextMenuCB_QueryInterface(IContextMenuCB* This,REFIID riid,void **ppvObject) {
28594    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28595}
28596static inline ULONG IContextMenuCB_AddRef(IContextMenuCB* This) {
28597    return This->lpVtbl->AddRef(This);
28598}
28599static inline ULONG IContextMenuCB_Release(IContextMenuCB* This) {
28600    return This->lpVtbl->Release(This);
28601}
28602/*** IContextMenuCB methods ***/
28603static inline HRESULT IContextMenuCB_CallBack(IContextMenuCB* This,IShellFolder *psf,HWND hwndOwner,IDataObject *pdtobj,UINT uMsg,WPARAM wParam,LPARAM lParam) {
28604    return This->lpVtbl->CallBack(This,psf,hwndOwner,pdtobj,uMsg,wParam,lParam);
28605}
28606#endif
28607#endif
28608
28609#endif
28610
28611
28612#endif  /* __IContextMenuCB_INTERFACE_DEFINED__ */
28613
28614#endif
28615
28616/*****************************************************************************
28617 * IDefaultExtractIconInit interface
28618 */
28619#ifndef __IDefaultExtractIconInit_INTERFACE_DEFINED__
28620#define __IDefaultExtractIconInit_INTERFACE_DEFINED__
28621
28622DEFINE_GUID(IID_IDefaultExtractIconInit, 0x41ded17d, 0xd6b3, 0x4261, 0x99,0x7d, 0x88,0xc6,0x0e,0x4b,0x1d,0x58);
28623#if defined(__cplusplus) && !defined(CINTERFACE)
28624MIDL_INTERFACE("41ded17d-d6b3-4261-997d-88c60e4b1d58")
28625IDefaultExtractIconInit : public IUnknown
28626{
28627    virtual HRESULT STDMETHODCALLTYPE SetFlags(
28628        UINT uFlags) = 0;
28629
28630    virtual HRESULT STDMETHODCALLTYPE SetKey(
28631        HKEY hkey) = 0;
28632
28633    virtual HRESULT STDMETHODCALLTYPE SetNormalIcon(
28634        LPCWSTR pszFile,
28635        int iIcon) = 0;
28636
28637    virtual HRESULT STDMETHODCALLTYPE SetOpenIcon(
28638        LPCWSTR pszFile,
28639        int iIcon) = 0;
28640
28641    virtual HRESULT STDMETHODCALLTYPE SetShortcutIcon(
28642        LPCWSTR pszFile,
28643        int iIcon) = 0;
28644
28645    virtual HRESULT STDMETHODCALLTYPE SetDefaultIcon(
28646        LPCWSTR pszFile,
28647        int iIcon) = 0;
28648
28649};
28650#ifdef __CRT_UUID_DECL
28651__CRT_UUID_DECL(IDefaultExtractIconInit, 0x41ded17d, 0xd6b3, 0x4261, 0x99,0x7d, 0x88,0xc6,0x0e,0x4b,0x1d,0x58)
28652#endif
28653#else
28654typedef struct IDefaultExtractIconInitVtbl {
28655    BEGIN_INTERFACE
28656
28657    /*** IUnknown methods ***/
28658    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28659        IDefaultExtractIconInit *This,
28660        REFIID riid,
28661        void **ppvObject);
28662
28663    ULONG (STDMETHODCALLTYPE *AddRef)(
28664        IDefaultExtractIconInit *This);
28665
28666    ULONG (STDMETHODCALLTYPE *Release)(
28667        IDefaultExtractIconInit *This);
28668
28669    /*** IDefaultExtractIconInit methods ***/
28670    HRESULT (STDMETHODCALLTYPE *SetFlags)(
28671        IDefaultExtractIconInit *This,
28672        UINT uFlags);
28673
28674    HRESULT (STDMETHODCALLTYPE *SetKey)(
28675        IDefaultExtractIconInit *This,
28676        HKEY hkey);
28677
28678    HRESULT (STDMETHODCALLTYPE *SetNormalIcon)(
28679        IDefaultExtractIconInit *This,
28680        LPCWSTR pszFile,
28681        int iIcon);
28682
28683    HRESULT (STDMETHODCALLTYPE *SetOpenIcon)(
28684        IDefaultExtractIconInit *This,
28685        LPCWSTR pszFile,
28686        int iIcon);
28687
28688    HRESULT (STDMETHODCALLTYPE *SetShortcutIcon)(
28689        IDefaultExtractIconInit *This,
28690        LPCWSTR pszFile,
28691        int iIcon);
28692
28693    HRESULT (STDMETHODCALLTYPE *SetDefaultIcon)(
28694        IDefaultExtractIconInit *This,
28695        LPCWSTR pszFile,
28696        int iIcon);
28697
28698    END_INTERFACE
28699} IDefaultExtractIconInitVtbl;
28700
28701interface IDefaultExtractIconInit {
28702    CONST_VTBL IDefaultExtractIconInitVtbl* lpVtbl;
28703};
28704
28705#ifdef COBJMACROS
28706#ifndef WIDL_C_INLINE_WRAPPERS
28707/*** IUnknown methods ***/
28708#define IDefaultExtractIconInit_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28709#define IDefaultExtractIconInit_AddRef(This) (This)->lpVtbl->AddRef(This)
28710#define IDefaultExtractIconInit_Release(This) (This)->lpVtbl->Release(This)
28711/*** IDefaultExtractIconInit methods ***/
28712#define IDefaultExtractIconInit_SetFlags(This,uFlags) (This)->lpVtbl->SetFlags(This,uFlags)
28713#define IDefaultExtractIconInit_SetKey(This,hkey) (This)->lpVtbl->SetKey(This,hkey)
28714#define IDefaultExtractIconInit_SetNormalIcon(This,pszFile,iIcon) (This)->lpVtbl->SetNormalIcon(This,pszFile,iIcon)
28715#define IDefaultExtractIconInit_SetOpenIcon(This,pszFile,iIcon) (This)->lpVtbl->SetOpenIcon(This,pszFile,iIcon)
28716#define IDefaultExtractIconInit_SetShortcutIcon(This,pszFile,iIcon) (This)->lpVtbl->SetShortcutIcon(This,pszFile,iIcon)
28717#define IDefaultExtractIconInit_SetDefaultIcon(This,pszFile,iIcon) (This)->lpVtbl->SetDefaultIcon(This,pszFile,iIcon)
28718#else
28719/*** IUnknown methods ***/
28720static inline HRESULT IDefaultExtractIconInit_QueryInterface(IDefaultExtractIconInit* This,REFIID riid,void **ppvObject) {
28721    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28722}
28723static inline ULONG IDefaultExtractIconInit_AddRef(IDefaultExtractIconInit* This) {
28724    return This->lpVtbl->AddRef(This);
28725}
28726static inline ULONG IDefaultExtractIconInit_Release(IDefaultExtractIconInit* This) {
28727    return This->lpVtbl->Release(This);
28728}
28729/*** IDefaultExtractIconInit methods ***/
28730static inline HRESULT IDefaultExtractIconInit_SetFlags(IDefaultExtractIconInit* This,UINT uFlags) {
28731    return This->lpVtbl->SetFlags(This,uFlags);
28732}
28733static inline HRESULT IDefaultExtractIconInit_SetKey(IDefaultExtractIconInit* This,HKEY hkey) {
28734    return This->lpVtbl->SetKey(This,hkey);
28735}
28736static inline HRESULT IDefaultExtractIconInit_SetNormalIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
28737    return This->lpVtbl->SetNormalIcon(This,pszFile,iIcon);
28738}
28739static inline HRESULT IDefaultExtractIconInit_SetOpenIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
28740    return This->lpVtbl->SetOpenIcon(This,pszFile,iIcon);
28741}
28742static inline HRESULT IDefaultExtractIconInit_SetShortcutIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
28743    return This->lpVtbl->SetShortcutIcon(This,pszFile,iIcon);
28744}
28745static inline HRESULT IDefaultExtractIconInit_SetDefaultIcon(IDefaultExtractIconInit* This,LPCWSTR pszFile,int iIcon) {
28746    return This->lpVtbl->SetDefaultIcon(This,pszFile,iIcon);
28747}
28748#endif
28749#endif
28750
28751#endif
28752
28753
28754#endif  /* __IDefaultExtractIconInit_INTERFACE_DEFINED__ */
28755
28756
28757STDAPI SHCreateDefaultExtractIcon(REFIID riid, void **ppv);
28758
28759#ifndef __IEnumExplorerCommand_FWD_DEFINED__
28760#define __IEnumExplorerCommand_FWD_DEFINED__
28761typedef interface IEnumExplorerCommand IEnumExplorerCommand;
28762#ifdef __cplusplus
28763interface IEnumExplorerCommand;
28764#endif /* __cplusplus */
28765#endif
28766
28767
28768/*****************************************************************************
28769 * IExplorerCommand interface
28770 */
28771#ifndef __IExplorerCommand_INTERFACE_DEFINED__
28772#define __IExplorerCommand_INTERFACE_DEFINED__
28773
28774enum _EXPCMDSTATE {
28775    ECS_ENABLED = 0x0,
28776    ECS_DISABLED = 0x1,
28777    ECS_HIDDEN = 0x2,
28778    ECS_CHECKBOX = 0x4,
28779    ECS_CHECKED = 0x8,
28780    ECS_RADIOCHECK = 0x10
28781};
28782
28783typedef DWORD EXPCMDSTATE;
28784
28785enum _EXPCMDFLAGS {
28786    ECF_DEFAULT = 0x0,
28787    ECF_HASSUBCOMMANDS = 0x1,
28788    ECF_HASSPLITBUTTON = 0x2,
28789    ECF_HIDELABEL = 0x4,
28790    ECF_ISSEPARATOR = 0x8,
28791    ECF_HASLUASHIELD = 0x10,
28792    ECF_SEPARATORBEFORE = 0x20,
28793    ECF_SEPARATORAFTER = 0x40,
28794    ECF_ISDROPDOWN = 0x80,
28795    ECF_TOGGLEABLE = 0x100,
28796    ECF_AUTOMENUICONS = 0x200
28797};
28798
28799typedef DWORD EXPCMDFLAGS;
28800
28801DEFINE_GUID(IID_IExplorerCommand, 0xa08ce4d0, 0xfa25, 0x44ab, 0xb5,0x7c, 0xc7,0xb1,0xc3,0x23,0xe0,0xb9);
28802#if defined(__cplusplus) && !defined(CINTERFACE)
28803MIDL_INTERFACE("a08ce4d0-fa25-44ab-b57c-c7b1c323e0b9")
28804IExplorerCommand : public IUnknown
28805{
28806    virtual HRESULT STDMETHODCALLTYPE GetTitle(
28807        IShellItemArray *psiItemArray,
28808        LPWSTR *ppszName) = 0;
28809
28810    virtual HRESULT STDMETHODCALLTYPE GetIcon(
28811        IShellItemArray *psiItemArray,
28812        LPWSTR *ppszIcon) = 0;
28813
28814    virtual HRESULT STDMETHODCALLTYPE GetToolTip(
28815        IShellItemArray *psiItemArray,
28816        LPWSTR *ppszInfotip) = 0;
28817
28818    virtual HRESULT STDMETHODCALLTYPE GetCanonicalName(
28819        GUID *pguidCommandName) = 0;
28820
28821    virtual HRESULT STDMETHODCALLTYPE GetState(
28822        IShellItemArray *psiItemArray,
28823        WINBOOL fOkToBeSlow,
28824        EXPCMDSTATE *pCmdState) = 0;
28825
28826    virtual HRESULT STDMETHODCALLTYPE Invoke(
28827        IShellItemArray *psiItemArray,
28828        IBindCtx *pbc) = 0;
28829
28830    virtual HRESULT STDMETHODCALLTYPE GetFlags(
28831        EXPCMDFLAGS *pFlags) = 0;
28832
28833    virtual HRESULT STDMETHODCALLTYPE EnumSubCommands(
28834        IEnumExplorerCommand **ppEnum) = 0;
28835
28836};
28837#ifdef __CRT_UUID_DECL
28838__CRT_UUID_DECL(IExplorerCommand, 0xa08ce4d0, 0xfa25, 0x44ab, 0xb5,0x7c, 0xc7,0xb1,0xc3,0x23,0xe0,0xb9)
28839#endif
28840#else
28841typedef struct IExplorerCommandVtbl {
28842    BEGIN_INTERFACE
28843
28844    /*** IUnknown methods ***/
28845    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28846        IExplorerCommand *This,
28847        REFIID riid,
28848        void **ppvObject);
28849
28850    ULONG (STDMETHODCALLTYPE *AddRef)(
28851        IExplorerCommand *This);
28852
28853    ULONG (STDMETHODCALLTYPE *Release)(
28854        IExplorerCommand *This);
28855
28856    /*** IExplorerCommand methods ***/
28857    HRESULT (STDMETHODCALLTYPE *GetTitle)(
28858        IExplorerCommand *This,
28859        IShellItemArray *psiItemArray,
28860        LPWSTR *ppszName);
28861
28862    HRESULT (STDMETHODCALLTYPE *GetIcon)(
28863        IExplorerCommand *This,
28864        IShellItemArray *psiItemArray,
28865        LPWSTR *ppszIcon);
28866
28867    HRESULT (STDMETHODCALLTYPE *GetToolTip)(
28868        IExplorerCommand *This,
28869        IShellItemArray *psiItemArray,
28870        LPWSTR *ppszInfotip);
28871
28872    HRESULT (STDMETHODCALLTYPE *GetCanonicalName)(
28873        IExplorerCommand *This,
28874        GUID *pguidCommandName);
28875
28876    HRESULT (STDMETHODCALLTYPE *GetState)(
28877        IExplorerCommand *This,
28878        IShellItemArray *psiItemArray,
28879        WINBOOL fOkToBeSlow,
28880        EXPCMDSTATE *pCmdState);
28881
28882    HRESULT (STDMETHODCALLTYPE *Invoke)(
28883        IExplorerCommand *This,
28884        IShellItemArray *psiItemArray,
28885        IBindCtx *pbc);
28886
28887    HRESULT (STDMETHODCALLTYPE *GetFlags)(
28888        IExplorerCommand *This,
28889        EXPCMDFLAGS *pFlags);
28890
28891    HRESULT (STDMETHODCALLTYPE *EnumSubCommands)(
28892        IExplorerCommand *This,
28893        IEnumExplorerCommand **ppEnum);
28894
28895    END_INTERFACE
28896} IExplorerCommandVtbl;
28897
28898interface IExplorerCommand {
28899    CONST_VTBL IExplorerCommandVtbl* lpVtbl;
28900};
28901
28902#ifdef COBJMACROS
28903#ifndef WIDL_C_INLINE_WRAPPERS
28904/*** IUnknown methods ***/
28905#define IExplorerCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
28906#define IExplorerCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
28907#define IExplorerCommand_Release(This) (This)->lpVtbl->Release(This)
28908/*** IExplorerCommand methods ***/
28909#define IExplorerCommand_GetTitle(This,psiItemArray,ppszName) (This)->lpVtbl->GetTitle(This,psiItemArray,ppszName)
28910#define IExplorerCommand_GetIcon(This,psiItemArray,ppszIcon) (This)->lpVtbl->GetIcon(This,psiItemArray,ppszIcon)
28911#define IExplorerCommand_GetToolTip(This,psiItemArray,ppszInfotip) (This)->lpVtbl->GetToolTip(This,psiItemArray,ppszInfotip)
28912#define IExplorerCommand_GetCanonicalName(This,pguidCommandName) (This)->lpVtbl->GetCanonicalName(This,pguidCommandName)
28913#define IExplorerCommand_GetState(This,psiItemArray,fOkToBeSlow,pCmdState) (This)->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState)
28914#define IExplorerCommand_Invoke(This,psiItemArray,pbc) (This)->lpVtbl->Invoke(This,psiItemArray,pbc)
28915#define IExplorerCommand_GetFlags(This,pFlags) (This)->lpVtbl->GetFlags(This,pFlags)
28916#define IExplorerCommand_EnumSubCommands(This,ppEnum) (This)->lpVtbl->EnumSubCommands(This,ppEnum)
28917#else
28918/*** IUnknown methods ***/
28919static inline HRESULT IExplorerCommand_QueryInterface(IExplorerCommand* This,REFIID riid,void **ppvObject) {
28920    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
28921}
28922static inline ULONG IExplorerCommand_AddRef(IExplorerCommand* This) {
28923    return This->lpVtbl->AddRef(This);
28924}
28925static inline ULONG IExplorerCommand_Release(IExplorerCommand* This) {
28926    return This->lpVtbl->Release(This);
28927}
28928/*** IExplorerCommand methods ***/
28929static inline HRESULT IExplorerCommand_GetTitle(IExplorerCommand* This,IShellItemArray *psiItemArray,LPWSTR *ppszName) {
28930    return This->lpVtbl->GetTitle(This,psiItemArray,ppszName);
28931}
28932static inline HRESULT IExplorerCommand_GetIcon(IExplorerCommand* This,IShellItemArray *psiItemArray,LPWSTR *ppszIcon) {
28933    return This->lpVtbl->GetIcon(This,psiItemArray,ppszIcon);
28934}
28935static inline HRESULT IExplorerCommand_GetToolTip(IExplorerCommand* This,IShellItemArray *psiItemArray,LPWSTR *ppszInfotip) {
28936    return This->lpVtbl->GetToolTip(This,psiItemArray,ppszInfotip);
28937}
28938static inline HRESULT IExplorerCommand_GetCanonicalName(IExplorerCommand* This,GUID *pguidCommandName) {
28939    return This->lpVtbl->GetCanonicalName(This,pguidCommandName);
28940}
28941static inline HRESULT IExplorerCommand_GetState(IExplorerCommand* This,IShellItemArray *psiItemArray,WINBOOL fOkToBeSlow,EXPCMDSTATE *pCmdState) {
28942    return This->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState);
28943}
28944static inline HRESULT IExplorerCommand_Invoke(IExplorerCommand* This,IShellItemArray *psiItemArray,IBindCtx *pbc) {
28945    return This->lpVtbl->Invoke(This,psiItemArray,pbc);
28946}
28947static inline HRESULT IExplorerCommand_GetFlags(IExplorerCommand* This,EXPCMDFLAGS *pFlags) {
28948    return This->lpVtbl->GetFlags(This,pFlags);
28949}
28950static inline HRESULT IExplorerCommand_EnumSubCommands(IExplorerCommand* This,IEnumExplorerCommand **ppEnum) {
28951    return This->lpVtbl->EnumSubCommands(This,ppEnum);
28952}
28953#endif
28954#endif
28955
28956#endif
28957
28958
28959#endif  /* __IExplorerCommand_INTERFACE_DEFINED__ */
28960
28961
28962/*****************************************************************************
28963 * IExplorerCommandState interface
28964 */
28965#ifndef __IExplorerCommandState_INTERFACE_DEFINED__
28966#define __IExplorerCommandState_INTERFACE_DEFINED__
28967
28968DEFINE_GUID(IID_IExplorerCommandState, 0xbddacb60, 0x7657, 0x47ae, 0x84,0x45, 0xd2,0x3e,0x1a,0xcf,0x82,0xae);
28969#if defined(__cplusplus) && !defined(CINTERFACE)
28970MIDL_INTERFACE("bddacb60-7657-47ae-8445-d23e1acf82ae")
28971IExplorerCommandState : public IUnknown
28972{
28973    virtual HRESULT STDMETHODCALLTYPE GetState(
28974        IShellItemArray *psiItemArray,
28975        WINBOOL fOkToBeSlow,
28976        EXPCMDSTATE *pCmdState) = 0;
28977
28978};
28979#ifdef __CRT_UUID_DECL
28980__CRT_UUID_DECL(IExplorerCommandState, 0xbddacb60, 0x7657, 0x47ae, 0x84,0x45, 0xd2,0x3e,0x1a,0xcf,0x82,0xae)
28981#endif
28982#else
28983typedef struct IExplorerCommandStateVtbl {
28984    BEGIN_INTERFACE
28985
28986    /*** IUnknown methods ***/
28987    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
28988        IExplorerCommandState *This,
28989        REFIID riid,
28990        void **ppvObject);
28991
28992    ULONG (STDMETHODCALLTYPE *AddRef)(
28993        IExplorerCommandState *This);
28994
28995    ULONG (STDMETHODCALLTYPE *Release)(
28996        IExplorerCommandState *This);
28997
28998    /*** IExplorerCommandState methods ***/
28999    HRESULT (STDMETHODCALLTYPE *GetState)(
29000        IExplorerCommandState *This,
29001        IShellItemArray *psiItemArray,
29002        WINBOOL fOkToBeSlow,
29003        EXPCMDSTATE *pCmdState);
29004
29005    END_INTERFACE
29006} IExplorerCommandStateVtbl;
29007
29008interface IExplorerCommandState {
29009    CONST_VTBL IExplorerCommandStateVtbl* lpVtbl;
29010};
29011
29012#ifdef COBJMACROS
29013#ifndef WIDL_C_INLINE_WRAPPERS
29014/*** IUnknown methods ***/
29015#define IExplorerCommandState_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29016#define IExplorerCommandState_AddRef(This) (This)->lpVtbl->AddRef(This)
29017#define IExplorerCommandState_Release(This) (This)->lpVtbl->Release(This)
29018/*** IExplorerCommandState methods ***/
29019#define IExplorerCommandState_GetState(This,psiItemArray,fOkToBeSlow,pCmdState) (This)->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState)
29020#else
29021/*** IUnknown methods ***/
29022static inline HRESULT IExplorerCommandState_QueryInterface(IExplorerCommandState* This,REFIID riid,void **ppvObject) {
29023    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29024}
29025static inline ULONG IExplorerCommandState_AddRef(IExplorerCommandState* This) {
29026    return This->lpVtbl->AddRef(This);
29027}
29028static inline ULONG IExplorerCommandState_Release(IExplorerCommandState* This) {
29029    return This->lpVtbl->Release(This);
29030}
29031/*** IExplorerCommandState methods ***/
29032static inline HRESULT IExplorerCommandState_GetState(IExplorerCommandState* This,IShellItemArray *psiItemArray,WINBOOL fOkToBeSlow,EXPCMDSTATE *pCmdState) {
29033    return This->lpVtbl->GetState(This,psiItemArray,fOkToBeSlow,pCmdState);
29034}
29035#endif
29036#endif
29037
29038#endif
29039
29040
29041#endif  /* __IExplorerCommandState_INTERFACE_DEFINED__ */
29042
29043
29044/*****************************************************************************
29045 * IInitializeCommand interface
29046 */
29047#ifndef __IInitializeCommand_INTERFACE_DEFINED__
29048#define __IInitializeCommand_INTERFACE_DEFINED__
29049
29050DEFINE_GUID(IID_IInitializeCommand, 0x85075acf, 0x231f, 0x40ea, 0x96,0x10, 0xd2,0x6b,0x7b,0x58,0xf6,0x38);
29051#if defined(__cplusplus) && !defined(CINTERFACE)
29052MIDL_INTERFACE("85075acf-231f-40ea-9610-d26b7b58f638")
29053IInitializeCommand : public IUnknown
29054{
29055    virtual HRESULT STDMETHODCALLTYPE Initialize(
29056        LPCWSTR pszCommandName,
29057        IPropertyBag *ppb) = 0;
29058
29059};
29060#ifdef __CRT_UUID_DECL
29061__CRT_UUID_DECL(IInitializeCommand, 0x85075acf, 0x231f, 0x40ea, 0x96,0x10, 0xd2,0x6b,0x7b,0x58,0xf6,0x38)
29062#endif
29063#else
29064typedef struct IInitializeCommandVtbl {
29065    BEGIN_INTERFACE
29066
29067    /*** IUnknown methods ***/
29068    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29069        IInitializeCommand *This,
29070        REFIID riid,
29071        void **ppvObject);
29072
29073    ULONG (STDMETHODCALLTYPE *AddRef)(
29074        IInitializeCommand *This);
29075
29076    ULONG (STDMETHODCALLTYPE *Release)(
29077        IInitializeCommand *This);
29078
29079    /*** IInitializeCommand methods ***/
29080    HRESULT (STDMETHODCALLTYPE *Initialize)(
29081        IInitializeCommand *This,
29082        LPCWSTR pszCommandName,
29083        IPropertyBag *ppb);
29084
29085    END_INTERFACE
29086} IInitializeCommandVtbl;
29087
29088interface IInitializeCommand {
29089    CONST_VTBL IInitializeCommandVtbl* lpVtbl;
29090};
29091
29092#ifdef COBJMACROS
29093#ifndef WIDL_C_INLINE_WRAPPERS
29094/*** IUnknown methods ***/
29095#define IInitializeCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29096#define IInitializeCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
29097#define IInitializeCommand_Release(This) (This)->lpVtbl->Release(This)
29098/*** IInitializeCommand methods ***/
29099#define IInitializeCommand_Initialize(This,pszCommandName,ppb) (This)->lpVtbl->Initialize(This,pszCommandName,ppb)
29100#else
29101/*** IUnknown methods ***/
29102static inline HRESULT IInitializeCommand_QueryInterface(IInitializeCommand* This,REFIID riid,void **ppvObject) {
29103    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29104}
29105static inline ULONG IInitializeCommand_AddRef(IInitializeCommand* This) {
29106    return This->lpVtbl->AddRef(This);
29107}
29108static inline ULONG IInitializeCommand_Release(IInitializeCommand* This) {
29109    return This->lpVtbl->Release(This);
29110}
29111/*** IInitializeCommand methods ***/
29112static inline HRESULT IInitializeCommand_Initialize(IInitializeCommand* This,LPCWSTR pszCommandName,IPropertyBag *ppb) {
29113    return This->lpVtbl->Initialize(This,pszCommandName,ppb);
29114}
29115#endif
29116#endif
29117
29118#endif
29119
29120
29121#endif  /* __IInitializeCommand_INTERFACE_DEFINED__ */
29122
29123
29124/*****************************************************************************
29125 * IEnumExplorerCommand interface
29126 */
29127#ifndef __IEnumExplorerCommand_INTERFACE_DEFINED__
29128#define __IEnumExplorerCommand_INTERFACE_DEFINED__
29129
29130DEFINE_GUID(IID_IEnumExplorerCommand, 0xa88826f8, 0x186f, 0x4987, 0xaa,0xde, 0xea,0x0c,0xef,0x8f,0xbf,0xe8);
29131#if defined(__cplusplus) && !defined(CINTERFACE)
29132MIDL_INTERFACE("a88826f8-186f-4987-aade-ea0cef8fbfe8")
29133IEnumExplorerCommand : public IUnknown
29134{
29135    virtual HRESULT STDMETHODCALLTYPE Next(
29136        ULONG celt,
29137        IExplorerCommand **pUICommand,
29138        ULONG *pceltFetched) = 0;
29139
29140    virtual HRESULT STDMETHODCALLTYPE Skip(
29141        ULONG celt) = 0;
29142
29143    virtual HRESULT STDMETHODCALLTYPE Reset(
29144        ) = 0;
29145
29146    virtual HRESULT STDMETHODCALLTYPE Clone(
29147        IEnumExplorerCommand **ppenum) = 0;
29148
29149};
29150#ifdef __CRT_UUID_DECL
29151__CRT_UUID_DECL(IEnumExplorerCommand, 0xa88826f8, 0x186f, 0x4987, 0xaa,0xde, 0xea,0x0c,0xef,0x8f,0xbf,0xe8)
29152#endif
29153#else
29154typedef struct IEnumExplorerCommandVtbl {
29155    BEGIN_INTERFACE
29156
29157    /*** IUnknown methods ***/
29158    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29159        IEnumExplorerCommand *This,
29160        REFIID riid,
29161        void **ppvObject);
29162
29163    ULONG (STDMETHODCALLTYPE *AddRef)(
29164        IEnumExplorerCommand *This);
29165
29166    ULONG (STDMETHODCALLTYPE *Release)(
29167        IEnumExplorerCommand *This);
29168
29169    /*** IEnumExplorerCommand methods ***/
29170    HRESULT (STDMETHODCALLTYPE *Next)(
29171        IEnumExplorerCommand *This,
29172        ULONG celt,
29173        IExplorerCommand **pUICommand,
29174        ULONG *pceltFetched);
29175
29176    HRESULT (STDMETHODCALLTYPE *Skip)(
29177        IEnumExplorerCommand *This,
29178        ULONG celt);
29179
29180    HRESULT (STDMETHODCALLTYPE *Reset)(
29181        IEnumExplorerCommand *This);
29182
29183    HRESULT (STDMETHODCALLTYPE *Clone)(
29184        IEnumExplorerCommand *This,
29185        IEnumExplorerCommand **ppenum);
29186
29187    END_INTERFACE
29188} IEnumExplorerCommandVtbl;
29189
29190interface IEnumExplorerCommand {
29191    CONST_VTBL IEnumExplorerCommandVtbl* lpVtbl;
29192};
29193
29194#ifdef COBJMACROS
29195#ifndef WIDL_C_INLINE_WRAPPERS
29196/*** IUnknown methods ***/
29197#define IEnumExplorerCommand_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29198#define IEnumExplorerCommand_AddRef(This) (This)->lpVtbl->AddRef(This)
29199#define IEnumExplorerCommand_Release(This) (This)->lpVtbl->Release(This)
29200/*** IEnumExplorerCommand methods ***/
29201#define IEnumExplorerCommand_Next(This,celt,pUICommand,pceltFetched) (This)->lpVtbl->Next(This,celt,pUICommand,pceltFetched)
29202#define IEnumExplorerCommand_Skip(This,celt) (This)->lpVtbl->Skip(This,celt)
29203#define IEnumExplorerCommand_Reset(This) (This)->lpVtbl->Reset(This)
29204#define IEnumExplorerCommand_Clone(This,ppenum) (This)->lpVtbl->Clone(This,ppenum)
29205#else
29206/*** IUnknown methods ***/
29207static inline HRESULT IEnumExplorerCommand_QueryInterface(IEnumExplorerCommand* This,REFIID riid,void **ppvObject) {
29208    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29209}
29210static inline ULONG IEnumExplorerCommand_AddRef(IEnumExplorerCommand* This) {
29211    return This->lpVtbl->AddRef(This);
29212}
29213static inline ULONG IEnumExplorerCommand_Release(IEnumExplorerCommand* This) {
29214    return This->lpVtbl->Release(This);
29215}
29216/*** IEnumExplorerCommand methods ***/
29217static inline HRESULT IEnumExplorerCommand_Next(IEnumExplorerCommand* This,ULONG celt,IExplorerCommand **pUICommand,ULONG *pceltFetched) {
29218    return This->lpVtbl->Next(This,celt,pUICommand,pceltFetched);
29219}
29220static inline HRESULT IEnumExplorerCommand_Skip(IEnumExplorerCommand* This,ULONG celt) {
29221    return This->lpVtbl->Skip(This,celt);
29222}
29223static inline HRESULT IEnumExplorerCommand_Reset(IEnumExplorerCommand* This) {
29224    return This->lpVtbl->Reset(This);
29225}
29226static inline HRESULT IEnumExplorerCommand_Clone(IEnumExplorerCommand* This,IEnumExplorerCommand **ppenum) {
29227    return This->lpVtbl->Clone(This,ppenum);
29228}
29229#endif
29230#endif
29231
29232#endif
29233
29234HRESULT STDMETHODCALLTYPE IEnumExplorerCommand_RemoteNext_Proxy(
29235    IEnumExplorerCommand* This,
29236    ULONG celt,
29237    IExplorerCommand **pUICommand,
29238    ULONG *pceltFetched);
29239void __RPC_STUB IEnumExplorerCommand_RemoteNext_Stub(
29240    IRpcStubBuffer* This,
29241    IRpcChannelBuffer* pRpcChannelBuffer,
29242    PRPC_MESSAGE pRpcMessage,
29243    DWORD* pdwStubPhase);
29244HRESULT CALLBACK IEnumExplorerCommand_Next_Proxy(
29245    IEnumExplorerCommand* This,
29246    ULONG celt,
29247    IExplorerCommand **pUICommand,
29248    ULONG *pceltFetched);
29249HRESULT __RPC_STUB IEnumExplorerCommand_Next_Stub(
29250    IEnumExplorerCommand* This,
29251    ULONG celt,
29252    IExplorerCommand **pUICommand,
29253    ULONG *pceltFetched);
29254
29255#endif  /* __IEnumExplorerCommand_INTERFACE_DEFINED__ */
29256
29257
29258/*****************************************************************************
29259 * IExplorerCommandProvider interface
29260 */
29261#ifndef __IExplorerCommandProvider_INTERFACE_DEFINED__
29262#define __IExplorerCommandProvider_INTERFACE_DEFINED__
29263
29264DEFINE_GUID(IID_IExplorerCommandProvider, 0x64961751, 0x0835, 0x43c0, 0x8f,0xfe, 0xd5,0x76,0x86,0x53,0x0e,0x64);
29265#if defined(__cplusplus) && !defined(CINTERFACE)
29266MIDL_INTERFACE("64961751-0835-43c0-8ffe-d57686530e64")
29267IExplorerCommandProvider : public IUnknown
29268{
29269    virtual HRESULT STDMETHODCALLTYPE GetCommands(
29270        IUnknown *punkSite,
29271        REFIID riid,
29272        void **ppv) = 0;
29273
29274    virtual HRESULT STDMETHODCALLTYPE GetCommand(
29275        REFGUID rguidCommandId,
29276        REFIID riid,
29277        void **ppv) = 0;
29278
29279};
29280#ifdef __CRT_UUID_DECL
29281__CRT_UUID_DECL(IExplorerCommandProvider, 0x64961751, 0x0835, 0x43c0, 0x8f,0xfe, 0xd5,0x76,0x86,0x53,0x0e,0x64)
29282#endif
29283#else
29284typedef struct IExplorerCommandProviderVtbl {
29285    BEGIN_INTERFACE
29286
29287    /*** IUnknown methods ***/
29288    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29289        IExplorerCommandProvider *This,
29290        REFIID riid,
29291        void **ppvObject);
29292
29293    ULONG (STDMETHODCALLTYPE *AddRef)(
29294        IExplorerCommandProvider *This);
29295
29296    ULONG (STDMETHODCALLTYPE *Release)(
29297        IExplorerCommandProvider *This);
29298
29299    /*** IExplorerCommandProvider methods ***/
29300    HRESULT (STDMETHODCALLTYPE *GetCommands)(
29301        IExplorerCommandProvider *This,
29302        IUnknown *punkSite,
29303        REFIID riid,
29304        void **ppv);
29305
29306    HRESULT (STDMETHODCALLTYPE *GetCommand)(
29307        IExplorerCommandProvider *This,
29308        REFGUID rguidCommandId,
29309        REFIID riid,
29310        void **ppv);
29311
29312    END_INTERFACE
29313} IExplorerCommandProviderVtbl;
29314
29315interface IExplorerCommandProvider {
29316    CONST_VTBL IExplorerCommandProviderVtbl* lpVtbl;
29317};
29318
29319#ifdef COBJMACROS
29320#ifndef WIDL_C_INLINE_WRAPPERS
29321/*** IUnknown methods ***/
29322#define IExplorerCommandProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29323#define IExplorerCommandProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
29324#define IExplorerCommandProvider_Release(This) (This)->lpVtbl->Release(This)
29325/*** IExplorerCommandProvider methods ***/
29326#define IExplorerCommandProvider_GetCommands(This,punkSite,riid,ppv) (This)->lpVtbl->GetCommands(This,punkSite,riid,ppv)
29327#define IExplorerCommandProvider_GetCommand(This,rguidCommandId,riid,ppv) (This)->lpVtbl->GetCommand(This,rguidCommandId,riid,ppv)
29328#else
29329/*** IUnknown methods ***/
29330static inline HRESULT IExplorerCommandProvider_QueryInterface(IExplorerCommandProvider* This,REFIID riid,void **ppvObject) {
29331    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29332}
29333static inline ULONG IExplorerCommandProvider_AddRef(IExplorerCommandProvider* This) {
29334    return This->lpVtbl->AddRef(This);
29335}
29336static inline ULONG IExplorerCommandProvider_Release(IExplorerCommandProvider* This) {
29337    return This->lpVtbl->Release(This);
29338}
29339/*** IExplorerCommandProvider methods ***/
29340static inline HRESULT IExplorerCommandProvider_GetCommands(IExplorerCommandProvider* This,IUnknown *punkSite,REFIID riid,void **ppv) {
29341    return This->lpVtbl->GetCommands(This,punkSite,riid,ppv);
29342}
29343static inline HRESULT IExplorerCommandProvider_GetCommand(IExplorerCommandProvider* This,REFGUID rguidCommandId,REFIID riid,void **ppv) {
29344    return This->lpVtbl->GetCommand(This,rguidCommandId,riid,ppv);
29345}
29346#endif
29347#endif
29348
29349#endif
29350
29351
29352#endif  /* __IExplorerCommandProvider_INTERFACE_DEFINED__ */
29353
29354
29355typedef HANDLE HTHEME;
29356
29357/*****************************************************************************
29358 * IInitializeNetworkFolder interface
29359 */
29360#ifndef __IInitializeNetworkFolder_INTERFACE_DEFINED__
29361#define __IInitializeNetworkFolder_INTERFACE_DEFINED__
29362
29363DEFINE_GUID(IID_IInitializeNetworkFolder, 0x6e0f9881, 0x42a8, 0x4f2a, 0x97,0xf8, 0x8a,0xf4,0xe0,0x26,0xd9,0x2d);
29364#if defined(__cplusplus) && !defined(CINTERFACE)
29365MIDL_INTERFACE("6e0f9881-42a8-4f2a-97f8-8af4e026d92d")
29366IInitializeNetworkFolder : public IUnknown
29367{
29368    virtual HRESULT STDMETHODCALLTYPE Initialize(
29369        PCIDLIST_ABSOLUTE pidl,
29370        PCIDLIST_ABSOLUTE pidlTarget,
29371        UINT uDisplayType,
29372        LPCWSTR pszResName,
29373        LPCWSTR pszProvider) = 0;
29374
29375};
29376#ifdef __CRT_UUID_DECL
29377__CRT_UUID_DECL(IInitializeNetworkFolder, 0x6e0f9881, 0x42a8, 0x4f2a, 0x97,0xf8, 0x8a,0xf4,0xe0,0x26,0xd9,0x2d)
29378#endif
29379#else
29380typedef struct IInitializeNetworkFolderVtbl {
29381    BEGIN_INTERFACE
29382
29383    /*** IUnknown methods ***/
29384    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29385        IInitializeNetworkFolder *This,
29386        REFIID riid,
29387        void **ppvObject);
29388
29389    ULONG (STDMETHODCALLTYPE *AddRef)(
29390        IInitializeNetworkFolder *This);
29391
29392    ULONG (STDMETHODCALLTYPE *Release)(
29393        IInitializeNetworkFolder *This);
29394
29395    /*** IInitializeNetworkFolder methods ***/
29396    HRESULT (STDMETHODCALLTYPE *Initialize)(
29397        IInitializeNetworkFolder *This,
29398        PCIDLIST_ABSOLUTE pidl,
29399        PCIDLIST_ABSOLUTE pidlTarget,
29400        UINT uDisplayType,
29401        LPCWSTR pszResName,
29402        LPCWSTR pszProvider);
29403
29404    END_INTERFACE
29405} IInitializeNetworkFolderVtbl;
29406
29407interface IInitializeNetworkFolder {
29408    CONST_VTBL IInitializeNetworkFolderVtbl* lpVtbl;
29409};
29410
29411#ifdef COBJMACROS
29412#ifndef WIDL_C_INLINE_WRAPPERS
29413/*** IUnknown methods ***/
29414#define IInitializeNetworkFolder_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29415#define IInitializeNetworkFolder_AddRef(This) (This)->lpVtbl->AddRef(This)
29416#define IInitializeNetworkFolder_Release(This) (This)->lpVtbl->Release(This)
29417/*** IInitializeNetworkFolder methods ***/
29418#define IInitializeNetworkFolder_Initialize(This,pidl,pidlTarget,uDisplayType,pszResName,pszProvider) (This)->lpVtbl->Initialize(This,pidl,pidlTarget,uDisplayType,pszResName,pszProvider)
29419#else
29420/*** IUnknown methods ***/
29421static inline HRESULT IInitializeNetworkFolder_QueryInterface(IInitializeNetworkFolder* This,REFIID riid,void **ppvObject) {
29422    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29423}
29424static inline ULONG IInitializeNetworkFolder_AddRef(IInitializeNetworkFolder* This) {
29425    return This->lpVtbl->AddRef(This);
29426}
29427static inline ULONG IInitializeNetworkFolder_Release(IInitializeNetworkFolder* This) {
29428    return This->lpVtbl->Release(This);
29429}
29430/*** IInitializeNetworkFolder methods ***/
29431static inline HRESULT IInitializeNetworkFolder_Initialize(IInitializeNetworkFolder* This,PCIDLIST_ABSOLUTE pidl,PCIDLIST_ABSOLUTE pidlTarget,UINT uDisplayType,LPCWSTR pszResName,LPCWSTR pszProvider) {
29432    return This->lpVtbl->Initialize(This,pidl,pidlTarget,uDisplayType,pszResName,pszProvider);
29433}
29434#endif
29435#endif
29436
29437#endif
29438
29439
29440#endif  /* __IInitializeNetworkFolder_INTERFACE_DEFINED__ */
29441
29442
29443typedef enum CPVIEW {
29444    CPVIEW_CLASSIC = 0,
29445    CPVIEW_ALLITEMS = CPVIEW_CLASSIC,
29446    CPVIEW_CATEGORY = 1,
29447    CPVIEW_HOME = CPVIEW_CATEGORY
29448} CPVIEW;
29449
29450/*****************************************************************************
29451 * IOpenControlPanel interface
29452 */
29453#ifndef __IOpenControlPanel_INTERFACE_DEFINED__
29454#define __IOpenControlPanel_INTERFACE_DEFINED__
29455
29456DEFINE_GUID(IID_IOpenControlPanel, 0xd11ad862, 0x66de, 0x4df4, 0xbf,0x6c, 0x1f,0x56,0x21,0x99,0x6a,0xf1);
29457#if defined(__cplusplus) && !defined(CINTERFACE)
29458MIDL_INTERFACE("d11ad862-66de-4df4-bf6c-1f5621996af1")
29459IOpenControlPanel : public IUnknown
29460{
29461    virtual HRESULT STDMETHODCALLTYPE Open(
29462        LPCWSTR pszName,
29463        LPCWSTR pszPage,
29464        IUnknown *punkSite) = 0;
29465
29466    virtual HRESULT STDMETHODCALLTYPE GetPath(
29467        LPCWSTR pszName,
29468        LPWSTR pszPath,
29469        UINT cchPath) = 0;
29470
29471    virtual HRESULT STDMETHODCALLTYPE GetCurrentView(
29472        CPVIEW *pView) = 0;
29473
29474};
29475#ifdef __CRT_UUID_DECL
29476__CRT_UUID_DECL(IOpenControlPanel, 0xd11ad862, 0x66de, 0x4df4, 0xbf,0x6c, 0x1f,0x56,0x21,0x99,0x6a,0xf1)
29477#endif
29478#else
29479typedef struct IOpenControlPanelVtbl {
29480    BEGIN_INTERFACE
29481
29482    /*** IUnknown methods ***/
29483    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29484        IOpenControlPanel *This,
29485        REFIID riid,
29486        void **ppvObject);
29487
29488    ULONG (STDMETHODCALLTYPE *AddRef)(
29489        IOpenControlPanel *This);
29490
29491    ULONG (STDMETHODCALLTYPE *Release)(
29492        IOpenControlPanel *This);
29493
29494    /*** IOpenControlPanel methods ***/
29495    HRESULT (STDMETHODCALLTYPE *Open)(
29496        IOpenControlPanel *This,
29497        LPCWSTR pszName,
29498        LPCWSTR pszPage,
29499        IUnknown *punkSite);
29500
29501    HRESULT (STDMETHODCALLTYPE *GetPath)(
29502        IOpenControlPanel *This,
29503        LPCWSTR pszName,
29504        LPWSTR pszPath,
29505        UINT cchPath);
29506
29507    HRESULT (STDMETHODCALLTYPE *GetCurrentView)(
29508        IOpenControlPanel *This,
29509        CPVIEW *pView);
29510
29511    END_INTERFACE
29512} IOpenControlPanelVtbl;
29513
29514interface IOpenControlPanel {
29515    CONST_VTBL IOpenControlPanelVtbl* lpVtbl;
29516};
29517
29518#ifdef COBJMACROS
29519#ifndef WIDL_C_INLINE_WRAPPERS
29520/*** IUnknown methods ***/
29521#define IOpenControlPanel_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29522#define IOpenControlPanel_AddRef(This) (This)->lpVtbl->AddRef(This)
29523#define IOpenControlPanel_Release(This) (This)->lpVtbl->Release(This)
29524/*** IOpenControlPanel methods ***/
29525#define IOpenControlPanel_Open(This,pszName,pszPage,punkSite) (This)->lpVtbl->Open(This,pszName,pszPage,punkSite)
29526#define IOpenControlPanel_GetPath(This,pszName,pszPath,cchPath) (This)->lpVtbl->GetPath(This,pszName,pszPath,cchPath)
29527#define IOpenControlPanel_GetCurrentView(This,pView) (This)->lpVtbl->GetCurrentView(This,pView)
29528#else
29529/*** IUnknown methods ***/
29530static inline HRESULT IOpenControlPanel_QueryInterface(IOpenControlPanel* This,REFIID riid,void **ppvObject) {
29531    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29532}
29533static inline ULONG IOpenControlPanel_AddRef(IOpenControlPanel* This) {
29534    return This->lpVtbl->AddRef(This);
29535}
29536static inline ULONG IOpenControlPanel_Release(IOpenControlPanel* This) {
29537    return This->lpVtbl->Release(This);
29538}
29539/*** IOpenControlPanel methods ***/
29540static inline HRESULT IOpenControlPanel_Open(IOpenControlPanel* This,LPCWSTR pszName,LPCWSTR pszPage,IUnknown *punkSite) {
29541    return This->lpVtbl->Open(This,pszName,pszPage,punkSite);
29542}
29543static inline HRESULT IOpenControlPanel_GetPath(IOpenControlPanel* This,LPCWSTR pszName,LPWSTR pszPath,UINT cchPath) {
29544    return This->lpVtbl->GetPath(This,pszName,pszPath,cchPath);
29545}
29546static inline HRESULT IOpenControlPanel_GetCurrentView(IOpenControlPanel* This,CPVIEW *pView) {
29547    return This->lpVtbl->GetCurrentView(This,pView);
29548}
29549#endif
29550#endif
29551
29552#endif
29553
29554
29555#endif  /* __IOpenControlPanel_INTERFACE_DEFINED__ */
29556
29557
29558/*****************************************************************************
29559 * IComputerInfoChangeNotify interface
29560 */
29561#ifndef __IComputerInfoChangeNotify_INTERFACE_DEFINED__
29562#define __IComputerInfoChangeNotify_INTERFACE_DEFINED__
29563
29564DEFINE_GUID(IID_IComputerInfoChangeNotify, 0x0df60d92, 0x6818, 0x46d6, 0xb3,0x58, 0xd6,0x61,0x70,0xdd,0xe4,0x66);
29565#if defined(__cplusplus) && !defined(CINTERFACE)
29566MIDL_INTERFACE("0df60d92-6818-46d6-b358-d66170dde466")
29567IComputerInfoChangeNotify : public IUnknown
29568{
29569    virtual HRESULT STDMETHODCALLTYPE ComputerInfoChanged(
29570        ) = 0;
29571
29572};
29573#ifdef __CRT_UUID_DECL
29574__CRT_UUID_DECL(IComputerInfoChangeNotify, 0x0df60d92, 0x6818, 0x46d6, 0xb3,0x58, 0xd6,0x61,0x70,0xdd,0xe4,0x66)
29575#endif
29576#else
29577typedef struct IComputerInfoChangeNotifyVtbl {
29578    BEGIN_INTERFACE
29579
29580    /*** IUnknown methods ***/
29581    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29582        IComputerInfoChangeNotify *This,
29583        REFIID riid,
29584        void **ppvObject);
29585
29586    ULONG (STDMETHODCALLTYPE *AddRef)(
29587        IComputerInfoChangeNotify *This);
29588
29589    ULONG (STDMETHODCALLTYPE *Release)(
29590        IComputerInfoChangeNotify *This);
29591
29592    /*** IComputerInfoChangeNotify methods ***/
29593    HRESULT (STDMETHODCALLTYPE *ComputerInfoChanged)(
29594        IComputerInfoChangeNotify *This);
29595
29596    END_INTERFACE
29597} IComputerInfoChangeNotifyVtbl;
29598
29599interface IComputerInfoChangeNotify {
29600    CONST_VTBL IComputerInfoChangeNotifyVtbl* lpVtbl;
29601};
29602
29603#ifdef COBJMACROS
29604#ifndef WIDL_C_INLINE_WRAPPERS
29605/*** IUnknown methods ***/
29606#define IComputerInfoChangeNotify_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29607#define IComputerInfoChangeNotify_AddRef(This) (This)->lpVtbl->AddRef(This)
29608#define IComputerInfoChangeNotify_Release(This) (This)->lpVtbl->Release(This)
29609/*** IComputerInfoChangeNotify methods ***/
29610#define IComputerInfoChangeNotify_ComputerInfoChanged(This) (This)->lpVtbl->ComputerInfoChanged(This)
29611#else
29612/*** IUnknown methods ***/
29613static inline HRESULT IComputerInfoChangeNotify_QueryInterface(IComputerInfoChangeNotify* This,REFIID riid,void **ppvObject) {
29614    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29615}
29616static inline ULONG IComputerInfoChangeNotify_AddRef(IComputerInfoChangeNotify* This) {
29617    return This->lpVtbl->AddRef(This);
29618}
29619static inline ULONG IComputerInfoChangeNotify_Release(IComputerInfoChangeNotify* This) {
29620    return This->lpVtbl->Release(This);
29621}
29622/*** IComputerInfoChangeNotify methods ***/
29623static inline HRESULT IComputerInfoChangeNotify_ComputerInfoChanged(IComputerInfoChangeNotify* This) {
29624    return This->lpVtbl->ComputerInfoChanged(This);
29625}
29626#endif
29627#endif
29628
29629#endif
29630
29631
29632#endif  /* __IComputerInfoChangeNotify_INTERFACE_DEFINED__ */
29633
29634
29635#define STR_FILE_SYS_BIND_DATA L"File System Bind Data"
29636
29637/*****************************************************************************
29638 * IFileSystemBindData interface
29639 */
29640#ifndef __IFileSystemBindData_INTERFACE_DEFINED__
29641#define __IFileSystemBindData_INTERFACE_DEFINED__
29642
29643DEFINE_GUID(IID_IFileSystemBindData, 0x01e18d10, 0x4d8b, 0x11d2, 0x85,0x5d, 0x00,0x60,0x08,0x05,0x93,0x67);
29644#if defined(__cplusplus) && !defined(CINTERFACE)
29645MIDL_INTERFACE("01e18d10-4d8b-11d2-855d-006008059367")
29646IFileSystemBindData : public IUnknown
29647{
29648    virtual HRESULT STDMETHODCALLTYPE SetFindData(
29649        const WIN32_FIND_DATAW *pfd) = 0;
29650
29651    virtual HRESULT STDMETHODCALLTYPE GetFindData(
29652        WIN32_FIND_DATAW *pfd) = 0;
29653
29654};
29655#ifdef __CRT_UUID_DECL
29656__CRT_UUID_DECL(IFileSystemBindData, 0x01e18d10, 0x4d8b, 0x11d2, 0x85,0x5d, 0x00,0x60,0x08,0x05,0x93,0x67)
29657#endif
29658#else
29659typedef struct IFileSystemBindDataVtbl {
29660    BEGIN_INTERFACE
29661
29662    /*** IUnknown methods ***/
29663    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29664        IFileSystemBindData *This,
29665        REFIID riid,
29666        void **ppvObject);
29667
29668    ULONG (STDMETHODCALLTYPE *AddRef)(
29669        IFileSystemBindData *This);
29670
29671    ULONG (STDMETHODCALLTYPE *Release)(
29672        IFileSystemBindData *This);
29673
29674    /*** IFileSystemBindData methods ***/
29675    HRESULT (STDMETHODCALLTYPE *SetFindData)(
29676        IFileSystemBindData *This,
29677        const WIN32_FIND_DATAW *pfd);
29678
29679    HRESULT (STDMETHODCALLTYPE *GetFindData)(
29680        IFileSystemBindData *This,
29681        WIN32_FIND_DATAW *pfd);
29682
29683    END_INTERFACE
29684} IFileSystemBindDataVtbl;
29685
29686interface IFileSystemBindData {
29687    CONST_VTBL IFileSystemBindDataVtbl* lpVtbl;
29688};
29689
29690#ifdef COBJMACROS
29691#ifndef WIDL_C_INLINE_WRAPPERS
29692/*** IUnknown methods ***/
29693#define IFileSystemBindData_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29694#define IFileSystemBindData_AddRef(This) (This)->lpVtbl->AddRef(This)
29695#define IFileSystemBindData_Release(This) (This)->lpVtbl->Release(This)
29696/*** IFileSystemBindData methods ***/
29697#define IFileSystemBindData_SetFindData(This,pfd) (This)->lpVtbl->SetFindData(This,pfd)
29698#define IFileSystemBindData_GetFindData(This,pfd) (This)->lpVtbl->GetFindData(This,pfd)
29699#else
29700/*** IUnknown methods ***/
29701static inline HRESULT IFileSystemBindData_QueryInterface(IFileSystemBindData* This,REFIID riid,void **ppvObject) {
29702    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29703}
29704static inline ULONG IFileSystemBindData_AddRef(IFileSystemBindData* This) {
29705    return This->lpVtbl->AddRef(This);
29706}
29707static inline ULONG IFileSystemBindData_Release(IFileSystemBindData* This) {
29708    return This->lpVtbl->Release(This);
29709}
29710/*** IFileSystemBindData methods ***/
29711static inline HRESULT IFileSystemBindData_SetFindData(IFileSystemBindData* This,const WIN32_FIND_DATAW *pfd) {
29712    return This->lpVtbl->SetFindData(This,pfd);
29713}
29714static inline HRESULT IFileSystemBindData_GetFindData(IFileSystemBindData* This,WIN32_FIND_DATAW *pfd) {
29715    return This->lpVtbl->GetFindData(This,pfd);
29716}
29717#endif
29718#endif
29719
29720#endif
29721
29722
29723#endif  /* __IFileSystemBindData_INTERFACE_DEFINED__ */
29724
29725
29726/*****************************************************************************
29727 * IFileSystemBindData2 interface
29728 */
29729#ifndef __IFileSystemBindData2_INTERFACE_DEFINED__
29730#define __IFileSystemBindData2_INTERFACE_DEFINED__
29731
29732DEFINE_GUID(IID_IFileSystemBindData2, 0x3acf075f, 0x71db, 0x4afa, 0x81,0xf0, 0x3f,0xc4,0xfd,0xf2,0xa5,0xb8);
29733#if defined(__cplusplus) && !defined(CINTERFACE)
29734MIDL_INTERFACE("3acf075f-71db-4afa-81f0-3fc4fdf2a5b8")
29735IFileSystemBindData2 : public IFileSystemBindData
29736{
29737    virtual HRESULT STDMETHODCALLTYPE SetFileID(
29738        LARGE_INTEGER liFileID) = 0;
29739
29740    virtual HRESULT STDMETHODCALLTYPE GetFileID(
29741        LARGE_INTEGER *pliFileID) = 0;
29742
29743    virtual HRESULT STDMETHODCALLTYPE SetJunctionCLSID(
29744        REFCLSID clsid) = 0;
29745
29746    virtual HRESULT STDMETHODCALLTYPE GetJunctionCLSID(
29747        CLSID *pclsid) = 0;
29748
29749};
29750#ifdef __CRT_UUID_DECL
29751__CRT_UUID_DECL(IFileSystemBindData2, 0x3acf075f, 0x71db, 0x4afa, 0x81,0xf0, 0x3f,0xc4,0xfd,0xf2,0xa5,0xb8)
29752#endif
29753#else
29754typedef struct IFileSystemBindData2Vtbl {
29755    BEGIN_INTERFACE
29756
29757    /*** IUnknown methods ***/
29758    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29759        IFileSystemBindData2 *This,
29760        REFIID riid,
29761        void **ppvObject);
29762
29763    ULONG (STDMETHODCALLTYPE *AddRef)(
29764        IFileSystemBindData2 *This);
29765
29766    ULONG (STDMETHODCALLTYPE *Release)(
29767        IFileSystemBindData2 *This);
29768
29769    /*** IFileSystemBindData methods ***/
29770    HRESULT (STDMETHODCALLTYPE *SetFindData)(
29771        IFileSystemBindData2 *This,
29772        const WIN32_FIND_DATAW *pfd);
29773
29774    HRESULT (STDMETHODCALLTYPE *GetFindData)(
29775        IFileSystemBindData2 *This,
29776        WIN32_FIND_DATAW *pfd);
29777
29778    /*** IFileSystemBindData2 methods ***/
29779    HRESULT (STDMETHODCALLTYPE *SetFileID)(
29780        IFileSystemBindData2 *This,
29781        LARGE_INTEGER liFileID);
29782
29783    HRESULT (STDMETHODCALLTYPE *GetFileID)(
29784        IFileSystemBindData2 *This,
29785        LARGE_INTEGER *pliFileID);
29786
29787    HRESULT (STDMETHODCALLTYPE *SetJunctionCLSID)(
29788        IFileSystemBindData2 *This,
29789        REFCLSID clsid);
29790
29791    HRESULT (STDMETHODCALLTYPE *GetJunctionCLSID)(
29792        IFileSystemBindData2 *This,
29793        CLSID *pclsid);
29794
29795    END_INTERFACE
29796} IFileSystemBindData2Vtbl;
29797
29798interface IFileSystemBindData2 {
29799    CONST_VTBL IFileSystemBindData2Vtbl* lpVtbl;
29800};
29801
29802#ifdef COBJMACROS
29803#ifndef WIDL_C_INLINE_WRAPPERS
29804/*** IUnknown methods ***/
29805#define IFileSystemBindData2_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29806#define IFileSystemBindData2_AddRef(This) (This)->lpVtbl->AddRef(This)
29807#define IFileSystemBindData2_Release(This) (This)->lpVtbl->Release(This)
29808/*** IFileSystemBindData methods ***/
29809#define IFileSystemBindData2_SetFindData(This,pfd) (This)->lpVtbl->SetFindData(This,pfd)
29810#define IFileSystemBindData2_GetFindData(This,pfd) (This)->lpVtbl->GetFindData(This,pfd)
29811/*** IFileSystemBindData2 methods ***/
29812#define IFileSystemBindData2_SetFileID(This,liFileID) (This)->lpVtbl->SetFileID(This,liFileID)
29813#define IFileSystemBindData2_GetFileID(This,pliFileID) (This)->lpVtbl->GetFileID(This,pliFileID)
29814#define IFileSystemBindData2_SetJunctionCLSID(This,clsid) (This)->lpVtbl->SetJunctionCLSID(This,clsid)
29815#define IFileSystemBindData2_GetJunctionCLSID(This,pclsid) (This)->lpVtbl->GetJunctionCLSID(This,pclsid)
29816#else
29817/*** IUnknown methods ***/
29818static inline HRESULT IFileSystemBindData2_QueryInterface(IFileSystemBindData2* This,REFIID riid,void **ppvObject) {
29819    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29820}
29821static inline ULONG IFileSystemBindData2_AddRef(IFileSystemBindData2* This) {
29822    return This->lpVtbl->AddRef(This);
29823}
29824static inline ULONG IFileSystemBindData2_Release(IFileSystemBindData2* This) {
29825    return This->lpVtbl->Release(This);
29826}
29827/*** IFileSystemBindData methods ***/
29828static inline HRESULT IFileSystemBindData2_SetFindData(IFileSystemBindData2* This,const WIN32_FIND_DATAW *pfd) {
29829    return This->lpVtbl->SetFindData(This,pfd);
29830}
29831static inline HRESULT IFileSystemBindData2_GetFindData(IFileSystemBindData2* This,WIN32_FIND_DATAW *pfd) {
29832    return This->lpVtbl->GetFindData(This,pfd);
29833}
29834/*** IFileSystemBindData2 methods ***/
29835static inline HRESULT IFileSystemBindData2_SetFileID(IFileSystemBindData2* This,LARGE_INTEGER liFileID) {
29836    return This->lpVtbl->SetFileID(This,liFileID);
29837}
29838static inline HRESULT IFileSystemBindData2_GetFileID(IFileSystemBindData2* This,LARGE_INTEGER *pliFileID) {
29839    return This->lpVtbl->GetFileID(This,pliFileID);
29840}
29841static inline HRESULT IFileSystemBindData2_SetJunctionCLSID(IFileSystemBindData2* This,REFCLSID clsid) {
29842    return This->lpVtbl->SetJunctionCLSID(This,clsid);
29843}
29844static inline HRESULT IFileSystemBindData2_GetJunctionCLSID(IFileSystemBindData2* This,CLSID *pclsid) {
29845    return This->lpVtbl->GetJunctionCLSID(This,pclsid);
29846}
29847#endif
29848#endif
29849
29850#endif
29851
29852
29853#endif  /* __IFileSystemBindData2_INTERFACE_DEFINED__ */
29854
29855
29856#if NTDDI_VERSION >= NTDDI_WIN7
29857/*****************************************************************************
29858 * ICustomDestinationList interface
29859 */
29860#ifndef __ICustomDestinationList_INTERFACE_DEFINED__
29861#define __ICustomDestinationList_INTERFACE_DEFINED__
29862
29863typedef enum KNOWNDESTCATEGORY {
29864    KDC_FREQUENT = 1,
29865    KDC_RECENT = 2
29866} KNOWNDESTCATEGORY;
29867
29868DEFINE_GUID(IID_ICustomDestinationList, 0x6332debf, 0x87b5, 0x4670, 0x90,0xc0, 0x5e,0x57,0xb4,0x08,0xa4,0x9e);
29869#if defined(__cplusplus) && !defined(CINTERFACE)
29870MIDL_INTERFACE("6332debf-87b5-4670-90c0-5e57b408a49e")
29871ICustomDestinationList : public IUnknown
29872{
29873    virtual HRESULT STDMETHODCALLTYPE SetAppID(
29874        LPCWSTR pszAppID) = 0;
29875
29876    virtual HRESULT STDMETHODCALLTYPE BeginList(
29877        UINT *pcMinSlots,
29878        REFIID riid,
29879        void **ppv) = 0;
29880
29881    virtual HRESULT STDMETHODCALLTYPE AppendCategory(
29882        LPCWSTR pszCategory,
29883        IObjectArray *poa) = 0;
29884
29885    virtual HRESULT STDMETHODCALLTYPE AppendKnownCategory(
29886        KNOWNDESTCATEGORY category) = 0;
29887
29888    virtual HRESULT STDMETHODCALLTYPE AddUserTasks(
29889        IObjectArray *poa) = 0;
29890
29891    virtual HRESULT STDMETHODCALLTYPE CommitList(
29892        ) = 0;
29893
29894    virtual HRESULT STDMETHODCALLTYPE GetRemovedDestinations(
29895        REFIID riid,
29896        void **ppv) = 0;
29897
29898    virtual HRESULT STDMETHODCALLTYPE DeleteList(
29899        LPCWSTR pszAppID) = 0;
29900
29901    virtual HRESULT STDMETHODCALLTYPE AbortList(
29902        ) = 0;
29903
29904};
29905#ifdef __CRT_UUID_DECL
29906__CRT_UUID_DECL(ICustomDestinationList, 0x6332debf, 0x87b5, 0x4670, 0x90,0xc0, 0x5e,0x57,0xb4,0x08,0xa4,0x9e)
29907#endif
29908#else
29909typedef struct ICustomDestinationListVtbl {
29910    BEGIN_INTERFACE
29911
29912    /*** IUnknown methods ***/
29913    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
29914        ICustomDestinationList *This,
29915        REFIID riid,
29916        void **ppvObject);
29917
29918    ULONG (STDMETHODCALLTYPE *AddRef)(
29919        ICustomDestinationList *This);
29920
29921    ULONG (STDMETHODCALLTYPE *Release)(
29922        ICustomDestinationList *This);
29923
29924    /*** ICustomDestinationList methods ***/
29925    HRESULT (STDMETHODCALLTYPE *SetAppID)(
29926        ICustomDestinationList *This,
29927        LPCWSTR pszAppID);
29928
29929    HRESULT (STDMETHODCALLTYPE *BeginList)(
29930        ICustomDestinationList *This,
29931        UINT *pcMinSlots,
29932        REFIID riid,
29933        void **ppv);
29934
29935    HRESULT (STDMETHODCALLTYPE *AppendCategory)(
29936        ICustomDestinationList *This,
29937        LPCWSTR pszCategory,
29938        IObjectArray *poa);
29939
29940    HRESULT (STDMETHODCALLTYPE *AppendKnownCategory)(
29941        ICustomDestinationList *This,
29942        KNOWNDESTCATEGORY category);
29943
29944    HRESULT (STDMETHODCALLTYPE *AddUserTasks)(
29945        ICustomDestinationList *This,
29946        IObjectArray *poa);
29947
29948    HRESULT (STDMETHODCALLTYPE *CommitList)(
29949        ICustomDestinationList *This);
29950
29951    HRESULT (STDMETHODCALLTYPE *GetRemovedDestinations)(
29952        ICustomDestinationList *This,
29953        REFIID riid,
29954        void **ppv);
29955
29956    HRESULT (STDMETHODCALLTYPE *DeleteList)(
29957        ICustomDestinationList *This,
29958        LPCWSTR pszAppID);
29959
29960    HRESULT (STDMETHODCALLTYPE *AbortList)(
29961        ICustomDestinationList *This);
29962
29963    END_INTERFACE
29964} ICustomDestinationListVtbl;
29965
29966interface ICustomDestinationList {
29967    CONST_VTBL ICustomDestinationListVtbl* lpVtbl;
29968};
29969
29970#ifdef COBJMACROS
29971#ifndef WIDL_C_INLINE_WRAPPERS
29972/*** IUnknown methods ***/
29973#define ICustomDestinationList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
29974#define ICustomDestinationList_AddRef(This) (This)->lpVtbl->AddRef(This)
29975#define ICustomDestinationList_Release(This) (This)->lpVtbl->Release(This)
29976/*** ICustomDestinationList methods ***/
29977#define ICustomDestinationList_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
29978#define ICustomDestinationList_BeginList(This,pcMinSlots,riid,ppv) (This)->lpVtbl->BeginList(This,pcMinSlots,riid,ppv)
29979#define ICustomDestinationList_AppendCategory(This,pszCategory,poa) (This)->lpVtbl->AppendCategory(This,pszCategory,poa)
29980#define ICustomDestinationList_AppendKnownCategory(This,category) (This)->lpVtbl->AppendKnownCategory(This,category)
29981#define ICustomDestinationList_AddUserTasks(This,poa) (This)->lpVtbl->AddUserTasks(This,poa)
29982#define ICustomDestinationList_CommitList(This) (This)->lpVtbl->CommitList(This)
29983#define ICustomDestinationList_GetRemovedDestinations(This,riid,ppv) (This)->lpVtbl->GetRemovedDestinations(This,riid,ppv)
29984#define ICustomDestinationList_DeleteList(This,pszAppID) (This)->lpVtbl->DeleteList(This,pszAppID)
29985#define ICustomDestinationList_AbortList(This) (This)->lpVtbl->AbortList(This)
29986#else
29987/*** IUnknown methods ***/
29988static inline HRESULT ICustomDestinationList_QueryInterface(ICustomDestinationList* This,REFIID riid,void **ppvObject) {
29989    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
29990}
29991static inline ULONG ICustomDestinationList_AddRef(ICustomDestinationList* This) {
29992    return This->lpVtbl->AddRef(This);
29993}
29994static inline ULONG ICustomDestinationList_Release(ICustomDestinationList* This) {
29995    return This->lpVtbl->Release(This);
29996}
29997/*** ICustomDestinationList methods ***/
29998static inline HRESULT ICustomDestinationList_SetAppID(ICustomDestinationList* This,LPCWSTR pszAppID) {
29999    return This->lpVtbl->SetAppID(This,pszAppID);
30000}
30001static inline HRESULT ICustomDestinationList_BeginList(ICustomDestinationList* This,UINT *pcMinSlots,REFIID riid,void **ppv) {
30002    return This->lpVtbl->BeginList(This,pcMinSlots,riid,ppv);
30003}
30004static inline HRESULT ICustomDestinationList_AppendCategory(ICustomDestinationList* This,LPCWSTR pszCategory,IObjectArray *poa) {
30005    return This->lpVtbl->AppendCategory(This,pszCategory,poa);
30006}
30007static inline HRESULT ICustomDestinationList_AppendKnownCategory(ICustomDestinationList* This,KNOWNDESTCATEGORY category) {
30008    return This->lpVtbl->AppendKnownCategory(This,category);
30009}
30010static inline HRESULT ICustomDestinationList_AddUserTasks(ICustomDestinationList* This,IObjectArray *poa) {
30011    return This->lpVtbl->AddUserTasks(This,poa);
30012}
30013static inline HRESULT ICustomDestinationList_CommitList(ICustomDestinationList* This) {
30014    return This->lpVtbl->CommitList(This);
30015}
30016static inline HRESULT ICustomDestinationList_GetRemovedDestinations(ICustomDestinationList* This,REFIID riid,void **ppv) {
30017    return This->lpVtbl->GetRemovedDestinations(This,riid,ppv);
30018}
30019static inline HRESULT ICustomDestinationList_DeleteList(ICustomDestinationList* This,LPCWSTR pszAppID) {
30020    return This->lpVtbl->DeleteList(This,pszAppID);
30021}
30022static inline HRESULT ICustomDestinationList_AbortList(ICustomDestinationList* This) {
30023    return This->lpVtbl->AbortList(This);
30024}
30025#endif
30026#endif
30027
30028#endif
30029
30030
30031#endif  /* __ICustomDestinationList_INTERFACE_DEFINED__ */
30032
30033
30034/*****************************************************************************
30035 * IApplicationDestinations interface
30036 */
30037#ifndef __IApplicationDestinations_INTERFACE_DEFINED__
30038#define __IApplicationDestinations_INTERFACE_DEFINED__
30039
30040DEFINE_GUID(IID_IApplicationDestinations, 0x12337d35, 0x94c6, 0x48a0, 0xbc,0xe7, 0x6a,0x9c,0x69,0xd4,0xd6,0x00);
30041#if defined(__cplusplus) && !defined(CINTERFACE)
30042MIDL_INTERFACE("12337d35-94c6-48a0-bce7-6a9c69d4d600")
30043IApplicationDestinations : public IUnknown
30044{
30045    virtual HRESULT STDMETHODCALLTYPE SetAppID(
30046        LPCWSTR pszAppID) = 0;
30047
30048    virtual HRESULT STDMETHODCALLTYPE RemoveDestination(
30049        IUnknown *punk) = 0;
30050
30051    virtual HRESULT STDMETHODCALLTYPE RemoveAllDestinations(
30052        ) = 0;
30053
30054};
30055#ifdef __CRT_UUID_DECL
30056__CRT_UUID_DECL(IApplicationDestinations, 0x12337d35, 0x94c6, 0x48a0, 0xbc,0xe7, 0x6a,0x9c,0x69,0xd4,0xd6,0x00)
30057#endif
30058#else
30059typedef struct IApplicationDestinationsVtbl {
30060    BEGIN_INTERFACE
30061
30062    /*** IUnknown methods ***/
30063    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30064        IApplicationDestinations *This,
30065        REFIID riid,
30066        void **ppvObject);
30067
30068    ULONG (STDMETHODCALLTYPE *AddRef)(
30069        IApplicationDestinations *This);
30070
30071    ULONG (STDMETHODCALLTYPE *Release)(
30072        IApplicationDestinations *This);
30073
30074    /*** IApplicationDestinations methods ***/
30075    HRESULT (STDMETHODCALLTYPE *SetAppID)(
30076        IApplicationDestinations *This,
30077        LPCWSTR pszAppID);
30078
30079    HRESULT (STDMETHODCALLTYPE *RemoveDestination)(
30080        IApplicationDestinations *This,
30081        IUnknown *punk);
30082
30083    HRESULT (STDMETHODCALLTYPE *RemoveAllDestinations)(
30084        IApplicationDestinations *This);
30085
30086    END_INTERFACE
30087} IApplicationDestinationsVtbl;
30088
30089interface IApplicationDestinations {
30090    CONST_VTBL IApplicationDestinationsVtbl* lpVtbl;
30091};
30092
30093#ifdef COBJMACROS
30094#ifndef WIDL_C_INLINE_WRAPPERS
30095/*** IUnknown methods ***/
30096#define IApplicationDestinations_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30097#define IApplicationDestinations_AddRef(This) (This)->lpVtbl->AddRef(This)
30098#define IApplicationDestinations_Release(This) (This)->lpVtbl->Release(This)
30099/*** IApplicationDestinations methods ***/
30100#define IApplicationDestinations_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
30101#define IApplicationDestinations_RemoveDestination(This,punk) (This)->lpVtbl->RemoveDestination(This,punk)
30102#define IApplicationDestinations_RemoveAllDestinations(This) (This)->lpVtbl->RemoveAllDestinations(This)
30103#else
30104/*** IUnknown methods ***/
30105static inline HRESULT IApplicationDestinations_QueryInterface(IApplicationDestinations* This,REFIID riid,void **ppvObject) {
30106    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30107}
30108static inline ULONG IApplicationDestinations_AddRef(IApplicationDestinations* This) {
30109    return This->lpVtbl->AddRef(This);
30110}
30111static inline ULONG IApplicationDestinations_Release(IApplicationDestinations* This) {
30112    return This->lpVtbl->Release(This);
30113}
30114/*** IApplicationDestinations methods ***/
30115static inline HRESULT IApplicationDestinations_SetAppID(IApplicationDestinations* This,LPCWSTR pszAppID) {
30116    return This->lpVtbl->SetAppID(This,pszAppID);
30117}
30118static inline HRESULT IApplicationDestinations_RemoveDestination(IApplicationDestinations* This,IUnknown *punk) {
30119    return This->lpVtbl->RemoveDestination(This,punk);
30120}
30121static inline HRESULT IApplicationDestinations_RemoveAllDestinations(IApplicationDestinations* This) {
30122    return This->lpVtbl->RemoveAllDestinations(This);
30123}
30124#endif
30125#endif
30126
30127#endif
30128
30129
30130#endif  /* __IApplicationDestinations_INTERFACE_DEFINED__ */
30131
30132
30133/*****************************************************************************
30134 * IApplicationDocumentLists interface
30135 */
30136#ifndef __IApplicationDocumentLists_INTERFACE_DEFINED__
30137#define __IApplicationDocumentLists_INTERFACE_DEFINED__
30138
30139typedef enum APPDOCLISTTYPE {
30140    ADLT_RECENT = 0,
30141    ADLT_FREQUENT = 1
30142} APPDOCLISTTYPE;
30143
30144DEFINE_GUID(IID_IApplicationDocumentLists, 0x3c594f9f, 0x9f30, 0x47a1, 0x97,0x9a, 0xc9,0xe8,0x3d,0x3d,0x0a,0x06);
30145#if defined(__cplusplus) && !defined(CINTERFACE)
30146MIDL_INTERFACE("3c594f9f-9f30-47a1-979a-c9e83d3d0a06")
30147IApplicationDocumentLists : public IUnknown
30148{
30149    virtual HRESULT STDMETHODCALLTYPE SetAppID(
30150        LPCWSTR pszAppID) = 0;
30151
30152    virtual HRESULT STDMETHODCALLTYPE GetList(
30153        APPDOCLISTTYPE listtype,
30154        UINT cItemsDesired,
30155        REFIID riid,
30156        void **ppv) = 0;
30157
30158};
30159#ifdef __CRT_UUID_DECL
30160__CRT_UUID_DECL(IApplicationDocumentLists, 0x3c594f9f, 0x9f30, 0x47a1, 0x97,0x9a, 0xc9,0xe8,0x3d,0x3d,0x0a,0x06)
30161#endif
30162#else
30163typedef struct IApplicationDocumentListsVtbl {
30164    BEGIN_INTERFACE
30165
30166    /*** IUnknown methods ***/
30167    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30168        IApplicationDocumentLists *This,
30169        REFIID riid,
30170        void **ppvObject);
30171
30172    ULONG (STDMETHODCALLTYPE *AddRef)(
30173        IApplicationDocumentLists *This);
30174
30175    ULONG (STDMETHODCALLTYPE *Release)(
30176        IApplicationDocumentLists *This);
30177
30178    /*** IApplicationDocumentLists methods ***/
30179    HRESULT (STDMETHODCALLTYPE *SetAppID)(
30180        IApplicationDocumentLists *This,
30181        LPCWSTR pszAppID);
30182
30183    HRESULT (STDMETHODCALLTYPE *GetList)(
30184        IApplicationDocumentLists *This,
30185        APPDOCLISTTYPE listtype,
30186        UINT cItemsDesired,
30187        REFIID riid,
30188        void **ppv);
30189
30190    END_INTERFACE
30191} IApplicationDocumentListsVtbl;
30192
30193interface IApplicationDocumentLists {
30194    CONST_VTBL IApplicationDocumentListsVtbl* lpVtbl;
30195};
30196
30197#ifdef COBJMACROS
30198#ifndef WIDL_C_INLINE_WRAPPERS
30199/*** IUnknown methods ***/
30200#define IApplicationDocumentLists_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30201#define IApplicationDocumentLists_AddRef(This) (This)->lpVtbl->AddRef(This)
30202#define IApplicationDocumentLists_Release(This) (This)->lpVtbl->Release(This)
30203/*** IApplicationDocumentLists methods ***/
30204#define IApplicationDocumentLists_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
30205#define IApplicationDocumentLists_GetList(This,listtype,cItemsDesired,riid,ppv) (This)->lpVtbl->GetList(This,listtype,cItemsDesired,riid,ppv)
30206#else
30207/*** IUnknown methods ***/
30208static inline HRESULT IApplicationDocumentLists_QueryInterface(IApplicationDocumentLists* This,REFIID riid,void **ppvObject) {
30209    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30210}
30211static inline ULONG IApplicationDocumentLists_AddRef(IApplicationDocumentLists* This) {
30212    return This->lpVtbl->AddRef(This);
30213}
30214static inline ULONG IApplicationDocumentLists_Release(IApplicationDocumentLists* This) {
30215    return This->lpVtbl->Release(This);
30216}
30217/*** IApplicationDocumentLists methods ***/
30218static inline HRESULT IApplicationDocumentLists_SetAppID(IApplicationDocumentLists* This,LPCWSTR pszAppID) {
30219    return This->lpVtbl->SetAppID(This,pszAppID);
30220}
30221static inline HRESULT IApplicationDocumentLists_GetList(IApplicationDocumentLists* This,APPDOCLISTTYPE listtype,UINT cItemsDesired,REFIID riid,void **ppv) {
30222    return This->lpVtbl->GetList(This,listtype,cItemsDesired,riid,ppv);
30223}
30224#endif
30225#endif
30226
30227#endif
30228
30229
30230#endif  /* __IApplicationDocumentLists_INTERFACE_DEFINED__ */
30231
30232
30233/*****************************************************************************
30234 * IObjectWithAppUserModelID interface
30235 */
30236#ifndef __IObjectWithAppUserModelID_INTERFACE_DEFINED__
30237#define __IObjectWithAppUserModelID_INTERFACE_DEFINED__
30238
30239DEFINE_GUID(IID_IObjectWithAppUserModelID, 0x36db0196, 0x9665, 0x46d1, 0x9b,0xa7, 0xd3,0x70,0x9e,0xec,0xf9,0xed);
30240#if defined(__cplusplus) && !defined(CINTERFACE)
30241MIDL_INTERFACE("36db0196-9665-46d1-9ba7-d3709eecf9ed")
30242IObjectWithAppUserModelID : public IUnknown
30243{
30244    virtual HRESULT STDMETHODCALLTYPE SetAppID(
30245        LPCWSTR pszAppID) = 0;
30246
30247    virtual HRESULT STDMETHODCALLTYPE GetAppID(
30248        LPWSTR *ppszAppID) = 0;
30249
30250};
30251#ifdef __CRT_UUID_DECL
30252__CRT_UUID_DECL(IObjectWithAppUserModelID, 0x36db0196, 0x9665, 0x46d1, 0x9b,0xa7, 0xd3,0x70,0x9e,0xec,0xf9,0xed)
30253#endif
30254#else
30255typedef struct IObjectWithAppUserModelIDVtbl {
30256    BEGIN_INTERFACE
30257
30258    /*** IUnknown methods ***/
30259    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30260        IObjectWithAppUserModelID *This,
30261        REFIID riid,
30262        void **ppvObject);
30263
30264    ULONG (STDMETHODCALLTYPE *AddRef)(
30265        IObjectWithAppUserModelID *This);
30266
30267    ULONG (STDMETHODCALLTYPE *Release)(
30268        IObjectWithAppUserModelID *This);
30269
30270    /*** IObjectWithAppUserModelID methods ***/
30271    HRESULT (STDMETHODCALLTYPE *SetAppID)(
30272        IObjectWithAppUserModelID *This,
30273        LPCWSTR pszAppID);
30274
30275    HRESULT (STDMETHODCALLTYPE *GetAppID)(
30276        IObjectWithAppUserModelID *This,
30277        LPWSTR *ppszAppID);
30278
30279    END_INTERFACE
30280} IObjectWithAppUserModelIDVtbl;
30281
30282interface IObjectWithAppUserModelID {
30283    CONST_VTBL IObjectWithAppUserModelIDVtbl* lpVtbl;
30284};
30285
30286#ifdef COBJMACROS
30287#ifndef WIDL_C_INLINE_WRAPPERS
30288/*** IUnknown methods ***/
30289#define IObjectWithAppUserModelID_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30290#define IObjectWithAppUserModelID_AddRef(This) (This)->lpVtbl->AddRef(This)
30291#define IObjectWithAppUserModelID_Release(This) (This)->lpVtbl->Release(This)
30292/*** IObjectWithAppUserModelID methods ***/
30293#define IObjectWithAppUserModelID_SetAppID(This,pszAppID) (This)->lpVtbl->SetAppID(This,pszAppID)
30294#define IObjectWithAppUserModelID_GetAppID(This,ppszAppID) (This)->lpVtbl->GetAppID(This,ppszAppID)
30295#else
30296/*** IUnknown methods ***/
30297static inline HRESULT IObjectWithAppUserModelID_QueryInterface(IObjectWithAppUserModelID* This,REFIID riid,void **ppvObject) {
30298    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30299}
30300static inline ULONG IObjectWithAppUserModelID_AddRef(IObjectWithAppUserModelID* This) {
30301    return This->lpVtbl->AddRef(This);
30302}
30303static inline ULONG IObjectWithAppUserModelID_Release(IObjectWithAppUserModelID* This) {
30304    return This->lpVtbl->Release(This);
30305}
30306/*** IObjectWithAppUserModelID methods ***/
30307static inline HRESULT IObjectWithAppUserModelID_SetAppID(IObjectWithAppUserModelID* This,LPCWSTR pszAppID) {
30308    return This->lpVtbl->SetAppID(This,pszAppID);
30309}
30310static inline HRESULT IObjectWithAppUserModelID_GetAppID(IObjectWithAppUserModelID* This,LPWSTR *ppszAppID) {
30311    return This->lpVtbl->GetAppID(This,ppszAppID);
30312}
30313#endif
30314#endif
30315
30316#endif
30317
30318
30319#endif  /* __IObjectWithAppUserModelID_INTERFACE_DEFINED__ */
30320
30321
30322/*****************************************************************************
30323 * IObjectWithProgID interface
30324 */
30325#ifndef __IObjectWithProgID_INTERFACE_DEFINED__
30326#define __IObjectWithProgID_INTERFACE_DEFINED__
30327
30328DEFINE_GUID(IID_IObjectWithProgID, 0x71e806fb, 0x8dee, 0x46fc, 0xbf,0x8c, 0x77,0x48,0xa8,0xa1,0xae,0x13);
30329#if defined(__cplusplus) && !defined(CINTERFACE)
30330MIDL_INTERFACE("71e806fb-8dee-46fc-bf8c-7748a8a1ae13")
30331IObjectWithProgID : public IUnknown
30332{
30333    virtual HRESULT STDMETHODCALLTYPE SetProgID(
30334        LPCWSTR pszProgID) = 0;
30335
30336    virtual HRESULT STDMETHODCALLTYPE GetProgID(
30337        LPWSTR *ppszProgID) = 0;
30338
30339};
30340#ifdef __CRT_UUID_DECL
30341__CRT_UUID_DECL(IObjectWithProgID, 0x71e806fb, 0x8dee, 0x46fc, 0xbf,0x8c, 0x77,0x48,0xa8,0xa1,0xae,0x13)
30342#endif
30343#else
30344typedef struct IObjectWithProgIDVtbl {
30345    BEGIN_INTERFACE
30346
30347    /*** IUnknown methods ***/
30348    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30349        IObjectWithProgID *This,
30350        REFIID riid,
30351        void **ppvObject);
30352
30353    ULONG (STDMETHODCALLTYPE *AddRef)(
30354        IObjectWithProgID *This);
30355
30356    ULONG (STDMETHODCALLTYPE *Release)(
30357        IObjectWithProgID *This);
30358
30359    /*** IObjectWithProgID methods ***/
30360    HRESULT (STDMETHODCALLTYPE *SetProgID)(
30361        IObjectWithProgID *This,
30362        LPCWSTR pszProgID);
30363
30364    HRESULT (STDMETHODCALLTYPE *GetProgID)(
30365        IObjectWithProgID *This,
30366        LPWSTR *ppszProgID);
30367
30368    END_INTERFACE
30369} IObjectWithProgIDVtbl;
30370
30371interface IObjectWithProgID {
30372    CONST_VTBL IObjectWithProgIDVtbl* lpVtbl;
30373};
30374
30375#ifdef COBJMACROS
30376#ifndef WIDL_C_INLINE_WRAPPERS
30377/*** IUnknown methods ***/
30378#define IObjectWithProgID_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30379#define IObjectWithProgID_AddRef(This) (This)->lpVtbl->AddRef(This)
30380#define IObjectWithProgID_Release(This) (This)->lpVtbl->Release(This)
30381/*** IObjectWithProgID methods ***/
30382#define IObjectWithProgID_SetProgID(This,pszProgID) (This)->lpVtbl->SetProgID(This,pszProgID)
30383#define IObjectWithProgID_GetProgID(This,ppszProgID) (This)->lpVtbl->GetProgID(This,ppszProgID)
30384#else
30385/*** IUnknown methods ***/
30386static inline HRESULT IObjectWithProgID_QueryInterface(IObjectWithProgID* This,REFIID riid,void **ppvObject) {
30387    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30388}
30389static inline ULONG IObjectWithProgID_AddRef(IObjectWithProgID* This) {
30390    return This->lpVtbl->AddRef(This);
30391}
30392static inline ULONG IObjectWithProgID_Release(IObjectWithProgID* This) {
30393    return This->lpVtbl->Release(This);
30394}
30395/*** IObjectWithProgID methods ***/
30396static inline HRESULT IObjectWithProgID_SetProgID(IObjectWithProgID* This,LPCWSTR pszProgID) {
30397    return This->lpVtbl->SetProgID(This,pszProgID);
30398}
30399static inline HRESULT IObjectWithProgID_GetProgID(IObjectWithProgID* This,LPWSTR *ppszProgID) {
30400    return This->lpVtbl->GetProgID(This,ppszProgID);
30401}
30402#endif
30403#endif
30404
30405#endif
30406
30407
30408#endif  /* __IObjectWithProgID_INTERFACE_DEFINED__ */
30409
30410
30411/*****************************************************************************
30412 * IUpdateIDList interface
30413 */
30414#ifndef __IUpdateIDList_INTERFACE_DEFINED__
30415#define __IUpdateIDList_INTERFACE_DEFINED__
30416
30417DEFINE_GUID(IID_IUpdateIDList, 0x6589b6d2, 0x5f8d, 0x4b9e, 0xb7,0xe0, 0x23,0xcd,0xd9,0x71,0x7d,0x8c);
30418#if defined(__cplusplus) && !defined(CINTERFACE)
30419MIDL_INTERFACE("6589b6d2-5f8d-4b9e-b7e0-23cdd9717d8c")
30420IUpdateIDList : public IUnknown
30421{
30422    virtual HRESULT STDMETHODCALLTYPE Update(
30423        IBindCtx *pbc,
30424        PCUITEMID_CHILD pidlIn,
30425        PITEMID_CHILD *ppidlOut) = 0;
30426
30427};
30428#ifdef __CRT_UUID_DECL
30429__CRT_UUID_DECL(IUpdateIDList, 0x6589b6d2, 0x5f8d, 0x4b9e, 0xb7,0xe0, 0x23,0xcd,0xd9,0x71,0x7d,0x8c)
30430#endif
30431#else
30432typedef struct IUpdateIDListVtbl {
30433    BEGIN_INTERFACE
30434
30435    /*** IUnknown methods ***/
30436    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30437        IUpdateIDList *This,
30438        REFIID riid,
30439        void **ppvObject);
30440
30441    ULONG (STDMETHODCALLTYPE *AddRef)(
30442        IUpdateIDList *This);
30443
30444    ULONG (STDMETHODCALLTYPE *Release)(
30445        IUpdateIDList *This);
30446
30447    /*** IUpdateIDList methods ***/
30448    HRESULT (STDMETHODCALLTYPE *Update)(
30449        IUpdateIDList *This,
30450        IBindCtx *pbc,
30451        PCUITEMID_CHILD pidlIn,
30452        PITEMID_CHILD *ppidlOut);
30453
30454    END_INTERFACE
30455} IUpdateIDListVtbl;
30456
30457interface IUpdateIDList {
30458    CONST_VTBL IUpdateIDListVtbl* lpVtbl;
30459};
30460
30461#ifdef COBJMACROS
30462#ifndef WIDL_C_INLINE_WRAPPERS
30463/*** IUnknown methods ***/
30464#define IUpdateIDList_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30465#define IUpdateIDList_AddRef(This) (This)->lpVtbl->AddRef(This)
30466#define IUpdateIDList_Release(This) (This)->lpVtbl->Release(This)
30467/*** IUpdateIDList methods ***/
30468#define IUpdateIDList_Update(This,pbc,pidlIn,ppidlOut) (This)->lpVtbl->Update(This,pbc,pidlIn,ppidlOut)
30469#else
30470/*** IUnknown methods ***/
30471static inline HRESULT IUpdateIDList_QueryInterface(IUpdateIDList* This,REFIID riid,void **ppvObject) {
30472    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30473}
30474static inline ULONG IUpdateIDList_AddRef(IUpdateIDList* This) {
30475    return This->lpVtbl->AddRef(This);
30476}
30477static inline ULONG IUpdateIDList_Release(IUpdateIDList* This) {
30478    return This->lpVtbl->Release(This);
30479}
30480/*** IUpdateIDList methods ***/
30481static inline HRESULT IUpdateIDList_Update(IUpdateIDList* This,IBindCtx *pbc,PCUITEMID_CHILD pidlIn,PITEMID_CHILD *ppidlOut) {
30482    return This->lpVtbl->Update(This,pbc,pidlIn,ppidlOut);
30483}
30484#endif
30485#endif
30486
30487#endif
30488
30489
30490#endif  /* __IUpdateIDList_INTERFACE_DEFINED__ */
30491
30492
30493SHSTDAPI SetCurrentProcessExplicitAppUserModelID(PCWSTR AppID);
30494SHSTDAPI GetCurrentProcessExplicitAppUserModelID(PWSTR *AppID);
30495#endif
30496
30497/*****************************************************************************
30498 * IDesktopGadget interface
30499 */
30500#ifndef __IDesktopGadget_INTERFACE_DEFINED__
30501#define __IDesktopGadget_INTERFACE_DEFINED__
30502
30503DEFINE_GUID(IID_IDesktopGadget, 0xc1646bc4, 0xf298, 0x4f91, 0xa2,0x04, 0xeb,0x2d,0xd1,0x70,0x9d,0x1a);
30504#if defined(__cplusplus) && !defined(CINTERFACE)
30505MIDL_INTERFACE("c1646bc4-f298-4f91-a204-eb2dd1709d1a")
30506IDesktopGadget : public IUnknown
30507{
30508    virtual HRESULT STDMETHODCALLTYPE RunGadget(
30509        LPCWSTR gadgetPath) = 0;
30510
30511};
30512#ifdef __CRT_UUID_DECL
30513__CRT_UUID_DECL(IDesktopGadget, 0xc1646bc4, 0xf298, 0x4f91, 0xa2,0x04, 0xeb,0x2d,0xd1,0x70,0x9d,0x1a)
30514#endif
30515#else
30516typedef struct IDesktopGadgetVtbl {
30517    BEGIN_INTERFACE
30518
30519    /*** IUnknown methods ***/
30520    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30521        IDesktopGadget *This,
30522        REFIID riid,
30523        void **ppvObject);
30524
30525    ULONG (STDMETHODCALLTYPE *AddRef)(
30526        IDesktopGadget *This);
30527
30528    ULONG (STDMETHODCALLTYPE *Release)(
30529        IDesktopGadget *This);
30530
30531    /*** IDesktopGadget methods ***/
30532    HRESULT (STDMETHODCALLTYPE *RunGadget)(
30533        IDesktopGadget *This,
30534        LPCWSTR gadgetPath);
30535
30536    END_INTERFACE
30537} IDesktopGadgetVtbl;
30538
30539interface IDesktopGadget {
30540    CONST_VTBL IDesktopGadgetVtbl* lpVtbl;
30541};
30542
30543#ifdef COBJMACROS
30544#ifndef WIDL_C_INLINE_WRAPPERS
30545/*** IUnknown methods ***/
30546#define IDesktopGadget_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30547#define IDesktopGadget_AddRef(This) (This)->lpVtbl->AddRef(This)
30548#define IDesktopGadget_Release(This) (This)->lpVtbl->Release(This)
30549/*** IDesktopGadget methods ***/
30550#define IDesktopGadget_RunGadget(This,gadgetPath) (This)->lpVtbl->RunGadget(This,gadgetPath)
30551#else
30552/*** IUnknown methods ***/
30553static inline HRESULT IDesktopGadget_QueryInterface(IDesktopGadget* This,REFIID riid,void **ppvObject) {
30554    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30555}
30556static inline ULONG IDesktopGadget_AddRef(IDesktopGadget* This) {
30557    return This->lpVtbl->AddRef(This);
30558}
30559static inline ULONG IDesktopGadget_Release(IDesktopGadget* This) {
30560    return This->lpVtbl->Release(This);
30561}
30562/*** IDesktopGadget methods ***/
30563static inline HRESULT IDesktopGadget_RunGadget(IDesktopGadget* This,LPCWSTR gadgetPath) {
30564    return This->lpVtbl->RunGadget(This,gadgetPath);
30565}
30566#endif
30567#endif
30568
30569#endif
30570
30571
30572#endif  /* __IDesktopGadget_INTERFACE_DEFINED__ */
30573
30574
30575#if (NTDDI_VERSION >= NTDDI_WINTHRESHOLD)
30576/*****************************************************************************
30577 * IVirtualDesktopManager interface
30578 */
30579#ifndef __IVirtualDesktopManager_INTERFACE_DEFINED__
30580#define __IVirtualDesktopManager_INTERFACE_DEFINED__
30581
30582DEFINE_GUID(IID_IVirtualDesktopManager, 0xa5cd92ff, 0x29be, 0x454c, 0x8d,0x04, 0xd8,0x28,0x79,0xfb,0x3f,0x1b);
30583#if defined(__cplusplus) && !defined(CINTERFACE)
30584MIDL_INTERFACE("a5cd92ff-29be-454c-8d04-d82879fb3f1b")
30585IVirtualDesktopManager : public IUnknown
30586{
30587    virtual HRESULT STDMETHODCALLTYPE IsWindowOnCurrentVirtualDesktop(
30588        HWND topLevelWindow,
30589        WINBOOL *onCurrentDesktop) = 0;
30590
30591    virtual HRESULT STDMETHODCALLTYPE GetWindowDesktopId(
30592        HWND topLevelWindow,
30593        GUID *desktopId) = 0;
30594
30595    virtual HRESULT STDMETHODCALLTYPE MoveWindowToDesktop(
30596        HWND topLevelWindow,
30597        REFGUID desktopId) = 0;
30598
30599};
30600#ifdef __CRT_UUID_DECL
30601__CRT_UUID_DECL(IVirtualDesktopManager, 0xa5cd92ff, 0x29be, 0x454c, 0x8d,0x04, 0xd8,0x28,0x79,0xfb,0x3f,0x1b)
30602#endif
30603#else
30604typedef struct IVirtualDesktopManagerVtbl {
30605    BEGIN_INTERFACE
30606
30607    /*** IUnknown methods ***/
30608    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30609        IVirtualDesktopManager *This,
30610        REFIID riid,
30611        void **ppvObject);
30612
30613    ULONG (STDMETHODCALLTYPE *AddRef)(
30614        IVirtualDesktopManager *This);
30615
30616    ULONG (STDMETHODCALLTYPE *Release)(
30617        IVirtualDesktopManager *This);
30618
30619    /*** IVirtualDesktopManager methods ***/
30620    HRESULT (STDMETHODCALLTYPE *IsWindowOnCurrentVirtualDesktop)(
30621        IVirtualDesktopManager *This,
30622        HWND topLevelWindow,
30623        WINBOOL *onCurrentDesktop);
30624
30625    HRESULT (STDMETHODCALLTYPE *GetWindowDesktopId)(
30626        IVirtualDesktopManager *This,
30627        HWND topLevelWindow,
30628        GUID *desktopId);
30629
30630    HRESULT (STDMETHODCALLTYPE *MoveWindowToDesktop)(
30631        IVirtualDesktopManager *This,
30632        HWND topLevelWindow,
30633        REFGUID desktopId);
30634
30635    END_INTERFACE
30636} IVirtualDesktopManagerVtbl;
30637
30638interface IVirtualDesktopManager {
30639    CONST_VTBL IVirtualDesktopManagerVtbl* lpVtbl;
30640};
30641
30642#ifdef COBJMACROS
30643#ifndef WIDL_C_INLINE_WRAPPERS
30644/*** IUnknown methods ***/
30645#define IVirtualDesktopManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30646#define IVirtualDesktopManager_AddRef(This) (This)->lpVtbl->AddRef(This)
30647#define IVirtualDesktopManager_Release(This) (This)->lpVtbl->Release(This)
30648/*** IVirtualDesktopManager methods ***/
30649#define IVirtualDesktopManager_IsWindowOnCurrentVirtualDesktop(This,topLevelWindow,onCurrentDesktop) (This)->lpVtbl->IsWindowOnCurrentVirtualDesktop(This,topLevelWindow,onCurrentDesktop)
30650#define IVirtualDesktopManager_GetWindowDesktopId(This,topLevelWindow,desktopId) (This)->lpVtbl->GetWindowDesktopId(This,topLevelWindow,desktopId)
30651#define IVirtualDesktopManager_MoveWindowToDesktop(This,topLevelWindow,desktopId) (This)->lpVtbl->MoveWindowToDesktop(This,topLevelWindow,desktopId)
30652#else
30653/*** IUnknown methods ***/
30654static inline HRESULT IVirtualDesktopManager_QueryInterface(IVirtualDesktopManager* This,REFIID riid,void **ppvObject) {
30655    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30656}
30657static inline ULONG IVirtualDesktopManager_AddRef(IVirtualDesktopManager* This) {
30658    return This->lpVtbl->AddRef(This);
30659}
30660static inline ULONG IVirtualDesktopManager_Release(IVirtualDesktopManager* This) {
30661    return This->lpVtbl->Release(This);
30662}
30663/*** IVirtualDesktopManager methods ***/
30664static inline HRESULT IVirtualDesktopManager_IsWindowOnCurrentVirtualDesktop(IVirtualDesktopManager* This,HWND topLevelWindow,WINBOOL *onCurrentDesktop) {
30665    return This->lpVtbl->IsWindowOnCurrentVirtualDesktop(This,topLevelWindow,onCurrentDesktop);
30666}
30667static inline HRESULT IVirtualDesktopManager_GetWindowDesktopId(IVirtualDesktopManager* This,HWND topLevelWindow,GUID *desktopId) {
30668    return This->lpVtbl->GetWindowDesktopId(This,topLevelWindow,desktopId);
30669}
30670static inline HRESULT IVirtualDesktopManager_MoveWindowToDesktop(IVirtualDesktopManager* This,HWND topLevelWindow,REFGUID desktopId) {
30671    return This->lpVtbl->MoveWindowToDesktop(This,topLevelWindow,desktopId);
30672}
30673#endif
30674#endif
30675
30676#endif
30677
30678
30679#endif  /* __IVirtualDesktopManager_INTERFACE_DEFINED__ */
30680
30681#endif
30682
30683#if NTDDI_VERSION >= NTDDI_WIN8
30684/*****************************************************************************
30685 * IDesktopWallpaper interface
30686 */
30687#ifndef __IDesktopWallpaper_INTERFACE_DEFINED__
30688#define __IDesktopWallpaper_INTERFACE_DEFINED__
30689
30690typedef enum DESKTOP_SLIDESHOW_OPTIONS {
30691    DSO_SHUFFLEIMAGES = 0x1
30692} DESKTOP_SLIDESHOW_OPTIONS;
30693
30694DEFINE_ENUM_FLAG_OPERATORS(DESKTOP_SLIDESHOW_OPTIONS);
30695
30696typedef enum DESKTOP_SLIDESHOW_STATE {
30697    DSS_ENABLED = 0x1,
30698    DSS_SLIDESHOW = 0x2,
30699    DSS_DISABLED_BY_REMOTE_SESSION = 0x4
30700} DESKTOP_SLIDESHOW_STATE;
30701
30702DEFINE_ENUM_FLAG_OPERATORS(DESKTOP_SLIDESHOW_STATE);
30703
30704typedef enum DESKTOP_SLIDESHOW_DIRECTION {
30705    DSD_FORWARD = 0,
30706    DSD_BACKWARD = 1
30707} DESKTOP_SLIDESHOW_DIRECTION;
30708
30709typedef enum DESKTOP_WALLPAPER_POSITION {
30710    DWPOS_CENTER = 0,
30711    DWPOS_TILE = 1,
30712    DWPOS_STRETCH = 2,
30713    DWPOS_FIT = 3,
30714    DWPOS_FILL = 4,
30715    DWPOS_SPAN = 5
30716} DESKTOP_WALLPAPER_POSITION;
30717
30718DEFINE_GUID(IID_IDesktopWallpaper, 0xb92b56a9, 0x8b55, 0x4e14, 0x9a,0x89, 0x01,0x99,0xbb,0xb6,0xf9,0x3b);
30719#if defined(__cplusplus) && !defined(CINTERFACE)
30720MIDL_INTERFACE("b92b56a9-8b55-4e14-9a89-0199bbb6f93b")
30721IDesktopWallpaper : public IUnknown
30722{
30723    virtual HRESULT STDMETHODCALLTYPE SetWallpaper(
30724        LPCWSTR monitorID,
30725        LPCWSTR wallpaper) = 0;
30726
30727    virtual HRESULT STDMETHODCALLTYPE GetWallpaper(
30728        LPCWSTR monitorID,
30729        LPWSTR *wallpaper) = 0;
30730
30731    virtual HRESULT STDMETHODCALLTYPE GetMonitorDevicePathAt(
30732        UINT monitorIndex,
30733        LPWSTR *monitorID) = 0;
30734
30735    virtual HRESULT STDMETHODCALLTYPE GetMonitorDevicePathCount(
30736        UINT *count) = 0;
30737
30738    virtual HRESULT STDMETHODCALLTYPE GetMonitorRECT(
30739        LPCWSTR monitorID,
30740        RECT *displayRect) = 0;
30741
30742    virtual HRESULT STDMETHODCALLTYPE SetBackgroundColor(
30743        COLORREF color) = 0;
30744
30745    virtual HRESULT STDMETHODCALLTYPE GetBackgroundColor(
30746        COLORREF *color) = 0;
30747
30748    virtual HRESULT STDMETHODCALLTYPE SetPosition(
30749        DESKTOP_WALLPAPER_POSITION position) = 0;
30750
30751    virtual HRESULT STDMETHODCALLTYPE GetPosition(
30752        DESKTOP_WALLPAPER_POSITION *position) = 0;
30753
30754    virtual HRESULT STDMETHODCALLTYPE SetSlideshow(
30755        IShellItemArray *items) = 0;
30756
30757    virtual HRESULT STDMETHODCALLTYPE GetSlideshow(
30758        IShellItemArray **items) = 0;
30759
30760    virtual HRESULT STDMETHODCALLTYPE SetSlideshowOptions(
30761        DESKTOP_SLIDESHOW_OPTIONS options,
30762        UINT slideshowTick) = 0;
30763
30764    virtual HRESULT STDMETHODCALLTYPE GetSlideshowOptions(
30765        DESKTOP_SLIDESHOW_OPTIONS *options,
30766        UINT *slideshowTick) = 0;
30767
30768    virtual HRESULT STDMETHODCALLTYPE AdvanceSlideshow(
30769        LPCWSTR monitorID,
30770        DESKTOP_SLIDESHOW_DIRECTION direction) = 0;
30771
30772    virtual HRESULT STDMETHODCALLTYPE GetStatus(
30773        DESKTOP_SLIDESHOW_STATE *state) = 0;
30774
30775    virtual HRESULT STDMETHODCALLTYPE Enable(
30776        WINBOOL enable) = 0;
30777
30778};
30779#ifdef __CRT_UUID_DECL
30780__CRT_UUID_DECL(IDesktopWallpaper, 0xb92b56a9, 0x8b55, 0x4e14, 0x9a,0x89, 0x01,0x99,0xbb,0xb6,0xf9,0x3b)
30781#endif
30782#else
30783typedef struct IDesktopWallpaperVtbl {
30784    BEGIN_INTERFACE
30785
30786    /*** IUnknown methods ***/
30787    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
30788        IDesktopWallpaper *This,
30789        REFIID riid,
30790        void **ppvObject);
30791
30792    ULONG (STDMETHODCALLTYPE *AddRef)(
30793        IDesktopWallpaper *This);
30794
30795    ULONG (STDMETHODCALLTYPE *Release)(
30796        IDesktopWallpaper *This);
30797
30798    /*** IDesktopWallpaper methods ***/
30799    HRESULT (STDMETHODCALLTYPE *SetWallpaper)(
30800        IDesktopWallpaper *This,
30801        LPCWSTR monitorID,
30802        LPCWSTR wallpaper);
30803
30804    HRESULT (STDMETHODCALLTYPE *GetWallpaper)(
30805        IDesktopWallpaper *This,
30806        LPCWSTR monitorID,
30807        LPWSTR *wallpaper);
30808
30809    HRESULT (STDMETHODCALLTYPE *GetMonitorDevicePathAt)(
30810        IDesktopWallpaper *This,
30811        UINT monitorIndex,
30812        LPWSTR *monitorID);
30813
30814    HRESULT (STDMETHODCALLTYPE *GetMonitorDevicePathCount)(
30815        IDesktopWallpaper *This,
30816        UINT *count);
30817
30818    HRESULT (STDMETHODCALLTYPE *GetMonitorRECT)(
30819        IDesktopWallpaper *This,
30820        LPCWSTR monitorID,
30821        RECT *displayRect);
30822
30823    HRESULT (STDMETHODCALLTYPE *SetBackgroundColor)(
30824        IDesktopWallpaper *This,
30825        COLORREF color);
30826
30827    HRESULT (STDMETHODCALLTYPE *GetBackgroundColor)(
30828        IDesktopWallpaper *This,
30829        COLORREF *color);
30830
30831    HRESULT (STDMETHODCALLTYPE *SetPosition)(
30832        IDesktopWallpaper *This,
30833        DESKTOP_WALLPAPER_POSITION position);
30834
30835    HRESULT (STDMETHODCALLTYPE *GetPosition)(
30836        IDesktopWallpaper *This,
30837        DESKTOP_WALLPAPER_POSITION *position);
30838
30839    HRESULT (STDMETHODCALLTYPE *SetSlideshow)(
30840        IDesktopWallpaper *This,
30841        IShellItemArray *items);
30842
30843    HRESULT (STDMETHODCALLTYPE *GetSlideshow)(
30844        IDesktopWallpaper *This,
30845        IShellItemArray **items);
30846
30847    HRESULT (STDMETHODCALLTYPE *SetSlideshowOptions)(
30848        IDesktopWallpaper *This,
30849        DESKTOP_SLIDESHOW_OPTIONS options,
30850        UINT slideshowTick);
30851
30852    HRESULT (STDMETHODCALLTYPE *GetSlideshowOptions)(
30853        IDesktopWallpaper *This,
30854        DESKTOP_SLIDESHOW_OPTIONS *options,
30855        UINT *slideshowTick);
30856
30857    HRESULT (STDMETHODCALLTYPE *AdvanceSlideshow)(
30858        IDesktopWallpaper *This,
30859        LPCWSTR monitorID,
30860        DESKTOP_SLIDESHOW_DIRECTION direction);
30861
30862    HRESULT (STDMETHODCALLTYPE *GetStatus)(
30863        IDesktopWallpaper *This,
30864        DESKTOP_SLIDESHOW_STATE *state);
30865
30866    HRESULT (STDMETHODCALLTYPE *Enable)(
30867        IDesktopWallpaper *This,
30868        WINBOOL enable);
30869
30870    END_INTERFACE
30871} IDesktopWallpaperVtbl;
30872
30873interface IDesktopWallpaper {
30874    CONST_VTBL IDesktopWallpaperVtbl* lpVtbl;
30875};
30876
30877#ifdef COBJMACROS
30878#ifndef WIDL_C_INLINE_WRAPPERS
30879/*** IUnknown methods ***/
30880#define IDesktopWallpaper_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
30881#define IDesktopWallpaper_AddRef(This) (This)->lpVtbl->AddRef(This)
30882#define IDesktopWallpaper_Release(This) (This)->lpVtbl->Release(This)
30883/*** IDesktopWallpaper methods ***/
30884#define IDesktopWallpaper_SetWallpaper(This,monitorID,wallpaper) (This)->lpVtbl->SetWallpaper(This,monitorID,wallpaper)
30885#define IDesktopWallpaper_GetWallpaper(This,monitorID,wallpaper) (This)->lpVtbl->GetWallpaper(This,monitorID,wallpaper)
30886#define IDesktopWallpaper_GetMonitorDevicePathAt(This,monitorIndex,monitorID) (This)->lpVtbl->GetMonitorDevicePathAt(This,monitorIndex,monitorID)
30887#define IDesktopWallpaper_GetMonitorDevicePathCount(This,count) (This)->lpVtbl->GetMonitorDevicePathCount(This,count)
30888#define IDesktopWallpaper_GetMonitorRECT(This,monitorID,displayRect) (This)->lpVtbl->GetMonitorRECT(This,monitorID,displayRect)
30889#define IDesktopWallpaper_SetBackgroundColor(This,color) (This)->lpVtbl->SetBackgroundColor(This,color)
30890#define IDesktopWallpaper_GetBackgroundColor(This,color) (This)->lpVtbl->GetBackgroundColor(This,color)
30891#define IDesktopWallpaper_SetPosition(This,position) (This)->lpVtbl->SetPosition(This,position)
30892#define IDesktopWallpaper_GetPosition(This,position) (This)->lpVtbl->GetPosition(This,position)
30893#define IDesktopWallpaper_SetSlideshow(This,items) (This)->lpVtbl->SetSlideshow(This,items)
30894#define IDesktopWallpaper_GetSlideshow(This,items) (This)->lpVtbl->GetSlideshow(This,items)
30895#define IDesktopWallpaper_SetSlideshowOptions(This,options,slideshowTick) (This)->lpVtbl->SetSlideshowOptions(This,options,slideshowTick)
30896#define IDesktopWallpaper_GetSlideshowOptions(This,options,slideshowTick) (This)->lpVtbl->GetSlideshowOptions(This,options,slideshowTick)
30897#define IDesktopWallpaper_AdvanceSlideshow(This,monitorID,direction) (This)->lpVtbl->AdvanceSlideshow(This,monitorID,direction)
30898#define IDesktopWallpaper_GetStatus(This,state) (This)->lpVtbl->GetStatus(This,state)
30899#define IDesktopWallpaper_Enable(This,enable) (This)->lpVtbl->Enable(This,enable)
30900#else
30901/*** IUnknown methods ***/
30902static inline HRESULT IDesktopWallpaper_QueryInterface(IDesktopWallpaper* This,REFIID riid,void **ppvObject) {
30903    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
30904}
30905static inline ULONG IDesktopWallpaper_AddRef(IDesktopWallpaper* This) {
30906    return This->lpVtbl->AddRef(This);
30907}
30908static inline ULONG IDesktopWallpaper_Release(IDesktopWallpaper* This) {
30909    return This->lpVtbl->Release(This);
30910}
30911/*** IDesktopWallpaper methods ***/
30912static inline HRESULT IDesktopWallpaper_SetWallpaper(IDesktopWallpaper* This,LPCWSTR monitorID,LPCWSTR wallpaper) {
30913    return This->lpVtbl->SetWallpaper(This,monitorID,wallpaper);
30914}
30915static inline HRESULT IDesktopWallpaper_GetWallpaper(IDesktopWallpaper* This,LPCWSTR monitorID,LPWSTR *wallpaper) {
30916    return This->lpVtbl->GetWallpaper(This,monitorID,wallpaper);
30917}
30918static inline HRESULT IDesktopWallpaper_GetMonitorDevicePathAt(IDesktopWallpaper* This,UINT monitorIndex,LPWSTR *monitorID) {
30919    return This->lpVtbl->GetMonitorDevicePathAt(This,monitorIndex,monitorID);
30920}
30921static inline HRESULT IDesktopWallpaper_GetMonitorDevicePathCount(IDesktopWallpaper* This,UINT *count) {
30922    return This->lpVtbl->GetMonitorDevicePathCount(This,count);
30923}
30924static inline HRESULT IDesktopWallpaper_GetMonitorRECT(IDesktopWallpaper* This,LPCWSTR monitorID,RECT *displayRect) {
30925    return This->lpVtbl->GetMonitorRECT(This,monitorID,displayRect);
30926}
30927static inline HRESULT IDesktopWallpaper_SetBackgroundColor(IDesktopWallpaper* This,COLORREF color) {
30928    return This->lpVtbl->SetBackgroundColor(This,color);
30929}
30930static inline HRESULT IDesktopWallpaper_GetBackgroundColor(IDesktopWallpaper* This,COLORREF *color) {
30931    return This->lpVtbl->GetBackgroundColor(This,color);
30932}
30933static inline HRESULT IDesktopWallpaper_SetPosition(IDesktopWallpaper* This,DESKTOP_WALLPAPER_POSITION position) {
30934    return This->lpVtbl->SetPosition(This,position);
30935}
30936static inline HRESULT IDesktopWallpaper_GetPosition(IDesktopWallpaper* This,DESKTOP_WALLPAPER_POSITION *position) {
30937    return This->lpVtbl->GetPosition(This,position);
30938}
30939static inline HRESULT IDesktopWallpaper_SetSlideshow(IDesktopWallpaper* This,IShellItemArray *items) {
30940    return This->lpVtbl->SetSlideshow(This,items);
30941}
30942static inline HRESULT IDesktopWallpaper_GetSlideshow(IDesktopWallpaper* This,IShellItemArray **items) {
30943    return This->lpVtbl->GetSlideshow(This,items);
30944}
30945static inline HRESULT IDesktopWallpaper_SetSlideshowOptions(IDesktopWallpaper* This,DESKTOP_SLIDESHOW_OPTIONS options,UINT slideshowTick) {
30946    return This->lpVtbl->SetSlideshowOptions(This,options,slideshowTick);
30947}
30948static inline HRESULT IDesktopWallpaper_GetSlideshowOptions(IDesktopWallpaper* This,DESKTOP_SLIDESHOW_OPTIONS *options,UINT *slideshowTick) {
30949    return This->lpVtbl->GetSlideshowOptions(This,options,slideshowTick);
30950}
30951static inline HRESULT IDesktopWallpaper_AdvanceSlideshow(IDesktopWallpaper* This,LPCWSTR monitorID,DESKTOP_SLIDESHOW_DIRECTION direction) {
30952    return This->lpVtbl->AdvanceSlideshow(This,monitorID,direction);
30953}
30954static inline HRESULT IDesktopWallpaper_GetStatus(IDesktopWallpaper* This,DESKTOP_SLIDESHOW_STATE *state) {
30955    return This->lpVtbl->GetStatus(This,state);
30956}
30957static inline HRESULT IDesktopWallpaper_Enable(IDesktopWallpaper* This,WINBOOL enable) {
30958    return This->lpVtbl->Enable(This,enable);
30959}
30960#endif
30961#endif
30962
30963#endif
30964
30965
30966#endif  /* __IDesktopWallpaper_INTERFACE_DEFINED__ */
30967
30968#endif
30969
30970#define HOMEGROUP_SECURITY_GROUP_MULTI L"HUG"
30971#define HOMEGROUP_SECURITY_GROUP L"HomeUsers"
30972
30973/*****************************************************************************
30974 * IHomeGroup interface
30975 */
30976#ifndef __IHomeGroup_INTERFACE_DEFINED__
30977#define __IHomeGroup_INTERFACE_DEFINED__
30978
30979typedef enum HOMEGROUPSHARINGCHOICES {
30980    HGSC_NONE = 0x0,
30981    HGSC_MUSICLIBRARY = 0x1,
30982    HGSC_PICTURESLIBRARY = 0x2,
30983    HGSC_VIDEOSLIBRARY = 0x4,
30984    HGSC_DOCUMENTSLIBRARY = 0x8,
30985    HGSC_PRINTERS = 0x10
30986} HOMEGROUPSHARINGCHOICES;
30987
30988DEFINE_ENUM_FLAG_OPERATORS(HOMEGROUPSHARINGCHOICES)
30989
30990DEFINE_GUID(IID_IHomeGroup, 0x7a3bd1d9, 0x35a9, 0x4fb3, 0xa4,0x67, 0xf4,0x8c,0xac,0x35,0xe2,0xd0);
30991#if defined(__cplusplus) && !defined(CINTERFACE)
30992MIDL_INTERFACE("7a3bd1d9-35a9-4fb3-a467-f48cac35e2d0")
30993IHomeGroup : public IUnknown
30994{
30995    virtual HRESULT STDMETHODCALLTYPE IsMember(
30996        WINBOOL *member) = 0;
30997
30998    virtual HRESULT STDMETHODCALLTYPE ShowSharingWizard(
30999        HWND owner,
31000        HOMEGROUPSHARINGCHOICES *sharingchoices) = 0;
31001
31002};
31003#ifdef __CRT_UUID_DECL
31004__CRT_UUID_DECL(IHomeGroup, 0x7a3bd1d9, 0x35a9, 0x4fb3, 0xa4,0x67, 0xf4,0x8c,0xac,0x35,0xe2,0xd0)
31005#endif
31006#else
31007typedef struct IHomeGroupVtbl {
31008    BEGIN_INTERFACE
31009
31010    /*** IUnknown methods ***/
31011    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31012        IHomeGroup *This,
31013        REFIID riid,
31014        void **ppvObject);
31015
31016    ULONG (STDMETHODCALLTYPE *AddRef)(
31017        IHomeGroup *This);
31018
31019    ULONG (STDMETHODCALLTYPE *Release)(
31020        IHomeGroup *This);
31021
31022    /*** IHomeGroup methods ***/
31023    HRESULT (STDMETHODCALLTYPE *IsMember)(
31024        IHomeGroup *This,
31025        WINBOOL *member);
31026
31027    HRESULT (STDMETHODCALLTYPE *ShowSharingWizard)(
31028        IHomeGroup *This,
31029        HWND owner,
31030        HOMEGROUPSHARINGCHOICES *sharingchoices);
31031
31032    END_INTERFACE
31033} IHomeGroupVtbl;
31034
31035interface IHomeGroup {
31036    CONST_VTBL IHomeGroupVtbl* lpVtbl;
31037};
31038
31039#ifdef COBJMACROS
31040#ifndef WIDL_C_INLINE_WRAPPERS
31041/*** IUnknown methods ***/
31042#define IHomeGroup_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31043#define IHomeGroup_AddRef(This) (This)->lpVtbl->AddRef(This)
31044#define IHomeGroup_Release(This) (This)->lpVtbl->Release(This)
31045/*** IHomeGroup methods ***/
31046#define IHomeGroup_IsMember(This,member) (This)->lpVtbl->IsMember(This,member)
31047#define IHomeGroup_ShowSharingWizard(This,owner,sharingchoices) (This)->lpVtbl->ShowSharingWizard(This,owner,sharingchoices)
31048#else
31049/*** IUnknown methods ***/
31050static inline HRESULT IHomeGroup_QueryInterface(IHomeGroup* This,REFIID riid,void **ppvObject) {
31051    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31052}
31053static inline ULONG IHomeGroup_AddRef(IHomeGroup* This) {
31054    return This->lpVtbl->AddRef(This);
31055}
31056static inline ULONG IHomeGroup_Release(IHomeGroup* This) {
31057    return This->lpVtbl->Release(This);
31058}
31059/*** IHomeGroup methods ***/
31060static inline HRESULT IHomeGroup_IsMember(IHomeGroup* This,WINBOOL *member) {
31061    return This->lpVtbl->IsMember(This,member);
31062}
31063static inline HRESULT IHomeGroup_ShowSharingWizard(IHomeGroup* This,HWND owner,HOMEGROUPSHARINGCHOICES *sharingchoices) {
31064    return This->lpVtbl->ShowSharingWizard(This,owner,sharingchoices);
31065}
31066#endif
31067#endif
31068
31069#endif
31070
31071
31072#endif  /* __IHomeGroup_INTERFACE_DEFINED__ */
31073
31074
31075/*****************************************************************************
31076 * IInitializeWithPropertyStore interface
31077 */
31078#ifndef __IInitializeWithPropertyStore_INTERFACE_DEFINED__
31079#define __IInitializeWithPropertyStore_INTERFACE_DEFINED__
31080
31081DEFINE_GUID(IID_IInitializeWithPropertyStore, 0xc3e12eb5, 0x7d8d, 0x44f8, 0xb6,0xdd, 0x0e,0x77,0xb3,0x4d,0x6d,0xe4);
31082#if defined(__cplusplus) && !defined(CINTERFACE)
31083MIDL_INTERFACE("c3e12eb5-7d8d-44f8-b6dd-0e77b34d6de4")
31084IInitializeWithPropertyStore : public IUnknown
31085{
31086    virtual HRESULT STDMETHODCALLTYPE Initialize(
31087        IPropertyStore *pps) = 0;
31088
31089};
31090#ifdef __CRT_UUID_DECL
31091__CRT_UUID_DECL(IInitializeWithPropertyStore, 0xc3e12eb5, 0x7d8d, 0x44f8, 0xb6,0xdd, 0x0e,0x77,0xb3,0x4d,0x6d,0xe4)
31092#endif
31093#else
31094typedef struct IInitializeWithPropertyStoreVtbl {
31095    BEGIN_INTERFACE
31096
31097    /*** IUnknown methods ***/
31098    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31099        IInitializeWithPropertyStore *This,
31100        REFIID riid,
31101        void **ppvObject);
31102
31103    ULONG (STDMETHODCALLTYPE *AddRef)(
31104        IInitializeWithPropertyStore *This);
31105
31106    ULONG (STDMETHODCALLTYPE *Release)(
31107        IInitializeWithPropertyStore *This);
31108
31109    /*** IInitializeWithPropertyStore methods ***/
31110    HRESULT (STDMETHODCALLTYPE *Initialize)(
31111        IInitializeWithPropertyStore *This,
31112        IPropertyStore *pps);
31113
31114    END_INTERFACE
31115} IInitializeWithPropertyStoreVtbl;
31116
31117interface IInitializeWithPropertyStore {
31118    CONST_VTBL IInitializeWithPropertyStoreVtbl* lpVtbl;
31119};
31120
31121#ifdef COBJMACROS
31122#ifndef WIDL_C_INLINE_WRAPPERS
31123/*** IUnknown methods ***/
31124#define IInitializeWithPropertyStore_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31125#define IInitializeWithPropertyStore_AddRef(This) (This)->lpVtbl->AddRef(This)
31126#define IInitializeWithPropertyStore_Release(This) (This)->lpVtbl->Release(This)
31127/*** IInitializeWithPropertyStore methods ***/
31128#define IInitializeWithPropertyStore_Initialize(This,pps) (This)->lpVtbl->Initialize(This,pps)
31129#else
31130/*** IUnknown methods ***/
31131static inline HRESULT IInitializeWithPropertyStore_QueryInterface(IInitializeWithPropertyStore* This,REFIID riid,void **ppvObject) {
31132    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31133}
31134static inline ULONG IInitializeWithPropertyStore_AddRef(IInitializeWithPropertyStore* This) {
31135    return This->lpVtbl->AddRef(This);
31136}
31137static inline ULONG IInitializeWithPropertyStore_Release(IInitializeWithPropertyStore* This) {
31138    return This->lpVtbl->Release(This);
31139}
31140/*** IInitializeWithPropertyStore methods ***/
31141static inline HRESULT IInitializeWithPropertyStore_Initialize(IInitializeWithPropertyStore* This,IPropertyStore *pps) {
31142    return This->lpVtbl->Initialize(This,pps);
31143}
31144#endif
31145#endif
31146
31147#endif
31148
31149
31150#endif  /* __IInitializeWithPropertyStore_INTERFACE_DEFINED__ */
31151
31152
31153/*****************************************************************************
31154 * IOpenSearchSource interface
31155 */
31156#ifndef __IOpenSearchSource_INTERFACE_DEFINED__
31157#define __IOpenSearchSource_INTERFACE_DEFINED__
31158
31159DEFINE_GUID(IID_IOpenSearchSource, 0xf0ee7333, 0xe6fc, 0x479b, 0x9f,0x25, 0xa8,0x60,0xc2,0x34,0xa3,0x8e);
31160#if defined(__cplusplus) && !defined(CINTERFACE)
31161MIDL_INTERFACE("f0ee7333-e6fc-479b-9f25-a860c234a38e")
31162IOpenSearchSource : public IUnknown
31163{
31164    virtual HRESULT STDMETHODCALLTYPE GetResults(
31165        HWND hwnd,
31166        LPCWSTR pszQuery,
31167        DWORD dwStartIndex,
31168        DWORD dwCount,
31169        REFIID riid,
31170        void **ppv) = 0;
31171
31172};
31173#ifdef __CRT_UUID_DECL
31174__CRT_UUID_DECL(IOpenSearchSource, 0xf0ee7333, 0xe6fc, 0x479b, 0x9f,0x25, 0xa8,0x60,0xc2,0x34,0xa3,0x8e)
31175#endif
31176#else
31177typedef struct IOpenSearchSourceVtbl {
31178    BEGIN_INTERFACE
31179
31180    /*** IUnknown methods ***/
31181    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31182        IOpenSearchSource *This,
31183        REFIID riid,
31184        void **ppvObject);
31185
31186    ULONG (STDMETHODCALLTYPE *AddRef)(
31187        IOpenSearchSource *This);
31188
31189    ULONG (STDMETHODCALLTYPE *Release)(
31190        IOpenSearchSource *This);
31191
31192    /*** IOpenSearchSource methods ***/
31193    HRESULT (STDMETHODCALLTYPE *GetResults)(
31194        IOpenSearchSource *This,
31195        HWND hwnd,
31196        LPCWSTR pszQuery,
31197        DWORD dwStartIndex,
31198        DWORD dwCount,
31199        REFIID riid,
31200        void **ppv);
31201
31202    END_INTERFACE
31203} IOpenSearchSourceVtbl;
31204
31205interface IOpenSearchSource {
31206    CONST_VTBL IOpenSearchSourceVtbl* lpVtbl;
31207};
31208
31209#ifdef COBJMACROS
31210#ifndef WIDL_C_INLINE_WRAPPERS
31211/*** IUnknown methods ***/
31212#define IOpenSearchSource_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31213#define IOpenSearchSource_AddRef(This) (This)->lpVtbl->AddRef(This)
31214#define IOpenSearchSource_Release(This) (This)->lpVtbl->Release(This)
31215/*** IOpenSearchSource methods ***/
31216#define IOpenSearchSource_GetResults(This,hwnd,pszQuery,dwStartIndex,dwCount,riid,ppv) (This)->lpVtbl->GetResults(This,hwnd,pszQuery,dwStartIndex,dwCount,riid,ppv)
31217#else
31218/*** IUnknown methods ***/
31219static inline HRESULT IOpenSearchSource_QueryInterface(IOpenSearchSource* This,REFIID riid,void **ppvObject) {
31220    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31221}
31222static inline ULONG IOpenSearchSource_AddRef(IOpenSearchSource* This) {
31223    return This->lpVtbl->AddRef(This);
31224}
31225static inline ULONG IOpenSearchSource_Release(IOpenSearchSource* This) {
31226    return This->lpVtbl->Release(This);
31227}
31228/*** IOpenSearchSource methods ***/
31229static inline HRESULT IOpenSearchSource_GetResults(IOpenSearchSource* This,HWND hwnd,LPCWSTR pszQuery,DWORD dwStartIndex,DWORD dwCount,REFIID riid,void **ppv) {
31230    return This->lpVtbl->GetResults(This,hwnd,pszQuery,dwStartIndex,dwCount,riid,ppv);
31231}
31232#endif
31233#endif
31234
31235#endif
31236
31237
31238#endif  /* __IOpenSearchSource_INTERFACE_DEFINED__ */
31239
31240
31241/*****************************************************************************
31242 * IShellLibrary interface
31243 */
31244#ifndef __IShellLibrary_INTERFACE_DEFINED__
31245#define __IShellLibrary_INTERFACE_DEFINED__
31246
31247typedef enum LIBRARYFOLDERFILTER {
31248    LFF_FORCEFILESYSTEM = 1,
31249    LFF_STORAGEITEMS = 2,
31250    LFF_ALLITEMS = 3
31251} LIBRARYFOLDERFILTER;
31252
31253typedef enum LIBRARYOPTIONFLAGS {
31254    LOF_DEFAULT = 0x0,
31255    LOF_PINNEDTONAVPANE = 0x1,
31256    LOF_MASK_ALL = 0x1
31257} LIBRARYOPTIONFLAGS;
31258
31259DEFINE_ENUM_FLAG_OPERATORS(LIBRARYOPTIONFLAGS)
31260
31261typedef enum DEFAULTSAVEFOLDERTYPE {
31262    DSFT_DETECT = 1,
31263    DSFT_PRIVATE = 2,
31264    DSFT_PUBLIC = 3
31265} DEFAULTSAVEFOLDERTYPE;
31266
31267typedef enum LIBRARYSAVEFLAGS {
31268    LSF_FAILIFTHERE = 0x0,
31269    LSF_OVERRIDEEXISTING = 0x1,
31270    LSF_MAKEUNIQUENAME = 0x2
31271} LIBRARYSAVEFLAGS;
31272
31273DEFINE_ENUM_FLAG_OPERATORS(LIBRARYSAVEFLAGS)
31274
31275DEFINE_GUID(IID_IShellLibrary, 0x11a66efa, 0x382e, 0x451a, 0x92,0x34, 0x1e,0x0e,0x12,0xef,0x30,0x85);
31276#if defined(__cplusplus) && !defined(CINTERFACE)
31277MIDL_INTERFACE("11a66efa-382e-451a-9234-1e0e12ef3085")
31278IShellLibrary : public IUnknown
31279{
31280    virtual HRESULT STDMETHODCALLTYPE LoadLibraryFromItem(
31281        IShellItem *psiLibrary,
31282        DWORD grfMode) = 0;
31283
31284    virtual HRESULT STDMETHODCALLTYPE LoadLibraryFromKnownFolder(
31285        REFKNOWNFOLDERID kfidLibrary,
31286        DWORD grfMode) = 0;
31287
31288    virtual HRESULT STDMETHODCALLTYPE AddFolder(
31289        IShellItem *psiLocation) = 0;
31290
31291    virtual HRESULT STDMETHODCALLTYPE RemoveFolder(
31292        IShellItem *psiLocation) = 0;
31293
31294    virtual HRESULT STDMETHODCALLTYPE GetFolders(
31295        LIBRARYFOLDERFILTER lff,
31296        REFIID riid,
31297        void **ppv) = 0;
31298
31299    virtual HRESULT STDMETHODCALLTYPE ResolveFolder(
31300        IShellItem *psiFolderToResolve,
31301        DWORD dwTimeout,
31302        REFIID riid,
31303        void **ppv) = 0;
31304
31305    virtual HRESULT STDMETHODCALLTYPE GetDefaultSaveFolder(
31306        DEFAULTSAVEFOLDERTYPE dsft,
31307        REFIID riid,
31308        void **ppv) = 0;
31309
31310    virtual HRESULT STDMETHODCALLTYPE SetDefaultSaveFolder(
31311        DEFAULTSAVEFOLDERTYPE dsft,
31312        IShellItem *psi) = 0;
31313
31314    virtual HRESULT STDMETHODCALLTYPE GetOptions(
31315        LIBRARYOPTIONFLAGS *plofOptions) = 0;
31316
31317    virtual HRESULT STDMETHODCALLTYPE SetOptions(
31318        LIBRARYOPTIONFLAGS lofMask,
31319        LIBRARYOPTIONFLAGS lofOptions) = 0;
31320
31321    virtual HRESULT STDMETHODCALLTYPE GetFolderType(
31322        FOLDERTYPEID *pftid) = 0;
31323
31324    virtual HRESULT STDMETHODCALLTYPE SetFolderType(
31325        REFFOLDERTYPEID ftid) = 0;
31326
31327    virtual HRESULT STDMETHODCALLTYPE GetIcon(
31328        LPWSTR *ppszIcon) = 0;
31329
31330    virtual HRESULT STDMETHODCALLTYPE SetIcon(
31331        LPCWSTR pszIcon) = 0;
31332
31333    virtual HRESULT STDMETHODCALLTYPE Commit(
31334        ) = 0;
31335
31336    virtual HRESULT STDMETHODCALLTYPE Save(
31337        IShellItem *psiFolderToSaveIn,
31338        LPCWSTR pszLibraryName,
31339        LIBRARYSAVEFLAGS lsf,
31340        IShellItem **ppsiSavedTo) = 0;
31341
31342    virtual HRESULT STDMETHODCALLTYPE SaveInKnownFolder(
31343        REFKNOWNFOLDERID kfidToSaveIn,
31344        LPCWSTR pszLibraryName,
31345        LIBRARYSAVEFLAGS lsf,
31346        IShellItem **ppsiSavedTo) = 0;
31347
31348};
31349#ifdef __CRT_UUID_DECL
31350__CRT_UUID_DECL(IShellLibrary, 0x11a66efa, 0x382e, 0x451a, 0x92,0x34, 0x1e,0x0e,0x12,0xef,0x30,0x85)
31351#endif
31352#else
31353typedef struct IShellLibraryVtbl {
31354    BEGIN_INTERFACE
31355
31356    /*** IUnknown methods ***/
31357    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31358        IShellLibrary *This,
31359        REFIID riid,
31360        void **ppvObject);
31361
31362    ULONG (STDMETHODCALLTYPE *AddRef)(
31363        IShellLibrary *This);
31364
31365    ULONG (STDMETHODCALLTYPE *Release)(
31366        IShellLibrary *This);
31367
31368    /*** IShellLibrary methods ***/
31369    HRESULT (STDMETHODCALLTYPE *LoadLibraryFromItem)(
31370        IShellLibrary *This,
31371        IShellItem *psiLibrary,
31372        DWORD grfMode);
31373
31374    HRESULT (STDMETHODCALLTYPE *LoadLibraryFromKnownFolder)(
31375        IShellLibrary *This,
31376        REFKNOWNFOLDERID kfidLibrary,
31377        DWORD grfMode);
31378
31379    HRESULT (STDMETHODCALLTYPE *AddFolder)(
31380        IShellLibrary *This,
31381        IShellItem *psiLocation);
31382
31383    HRESULT (STDMETHODCALLTYPE *RemoveFolder)(
31384        IShellLibrary *This,
31385        IShellItem *psiLocation);
31386
31387    HRESULT (STDMETHODCALLTYPE *GetFolders)(
31388        IShellLibrary *This,
31389        LIBRARYFOLDERFILTER lff,
31390        REFIID riid,
31391        void **ppv);
31392
31393    HRESULT (STDMETHODCALLTYPE *ResolveFolder)(
31394        IShellLibrary *This,
31395        IShellItem *psiFolderToResolve,
31396        DWORD dwTimeout,
31397        REFIID riid,
31398        void **ppv);
31399
31400    HRESULT (STDMETHODCALLTYPE *GetDefaultSaveFolder)(
31401        IShellLibrary *This,
31402        DEFAULTSAVEFOLDERTYPE dsft,
31403        REFIID riid,
31404        void **ppv);
31405
31406    HRESULT (STDMETHODCALLTYPE *SetDefaultSaveFolder)(
31407        IShellLibrary *This,
31408        DEFAULTSAVEFOLDERTYPE dsft,
31409        IShellItem *psi);
31410
31411    HRESULT (STDMETHODCALLTYPE *GetOptions)(
31412        IShellLibrary *This,
31413        LIBRARYOPTIONFLAGS *plofOptions);
31414
31415    HRESULT (STDMETHODCALLTYPE *SetOptions)(
31416        IShellLibrary *This,
31417        LIBRARYOPTIONFLAGS lofMask,
31418        LIBRARYOPTIONFLAGS lofOptions);
31419
31420    HRESULT (STDMETHODCALLTYPE *GetFolderType)(
31421        IShellLibrary *This,
31422        FOLDERTYPEID *pftid);
31423
31424    HRESULT (STDMETHODCALLTYPE *SetFolderType)(
31425        IShellLibrary *This,
31426        REFFOLDERTYPEID ftid);
31427
31428    HRESULT (STDMETHODCALLTYPE *GetIcon)(
31429        IShellLibrary *This,
31430        LPWSTR *ppszIcon);
31431
31432    HRESULT (STDMETHODCALLTYPE *SetIcon)(
31433        IShellLibrary *This,
31434        LPCWSTR pszIcon);
31435
31436    HRESULT (STDMETHODCALLTYPE *Commit)(
31437        IShellLibrary *This);
31438
31439    HRESULT (STDMETHODCALLTYPE *Save)(
31440        IShellLibrary *This,
31441        IShellItem *psiFolderToSaveIn,
31442        LPCWSTR pszLibraryName,
31443        LIBRARYSAVEFLAGS lsf,
31444        IShellItem **ppsiSavedTo);
31445
31446    HRESULT (STDMETHODCALLTYPE *SaveInKnownFolder)(
31447        IShellLibrary *This,
31448        REFKNOWNFOLDERID kfidToSaveIn,
31449        LPCWSTR pszLibraryName,
31450        LIBRARYSAVEFLAGS lsf,
31451        IShellItem **ppsiSavedTo);
31452
31453    END_INTERFACE
31454} IShellLibraryVtbl;
31455
31456interface IShellLibrary {
31457    CONST_VTBL IShellLibraryVtbl* lpVtbl;
31458};
31459
31460#ifdef COBJMACROS
31461#ifndef WIDL_C_INLINE_WRAPPERS
31462/*** IUnknown methods ***/
31463#define IShellLibrary_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31464#define IShellLibrary_AddRef(This) (This)->lpVtbl->AddRef(This)
31465#define IShellLibrary_Release(This) (This)->lpVtbl->Release(This)
31466/*** IShellLibrary methods ***/
31467#define IShellLibrary_LoadLibraryFromItem(This,psiLibrary,grfMode) (This)->lpVtbl->LoadLibraryFromItem(This,psiLibrary,grfMode)
31468#define IShellLibrary_LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode) (This)->lpVtbl->LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode)
31469#define IShellLibrary_AddFolder(This,psiLocation) (This)->lpVtbl->AddFolder(This,psiLocation)
31470#define IShellLibrary_RemoveFolder(This,psiLocation) (This)->lpVtbl->RemoveFolder(This,psiLocation)
31471#define IShellLibrary_GetFolders(This,lff,riid,ppv) (This)->lpVtbl->GetFolders(This,lff,riid,ppv)
31472#define IShellLibrary_ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv) (This)->lpVtbl->ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv)
31473#define IShellLibrary_GetDefaultSaveFolder(This,dsft,riid,ppv) (This)->lpVtbl->GetDefaultSaveFolder(This,dsft,riid,ppv)
31474#define IShellLibrary_SetDefaultSaveFolder(This,dsft,psi) (This)->lpVtbl->SetDefaultSaveFolder(This,dsft,psi)
31475#define IShellLibrary_GetOptions(This,plofOptions) (This)->lpVtbl->GetOptions(This,plofOptions)
31476#define IShellLibrary_SetOptions(This,lofMask,lofOptions) (This)->lpVtbl->SetOptions(This,lofMask,lofOptions)
31477#define IShellLibrary_GetFolderType(This,pftid) (This)->lpVtbl->GetFolderType(This,pftid)
31478#define IShellLibrary_SetFolderType(This,ftid) (This)->lpVtbl->SetFolderType(This,ftid)
31479#define IShellLibrary_GetIcon(This,ppszIcon) (This)->lpVtbl->GetIcon(This,ppszIcon)
31480#define IShellLibrary_SetIcon(This,pszIcon) (This)->lpVtbl->SetIcon(This,pszIcon)
31481#define IShellLibrary_Commit(This) (This)->lpVtbl->Commit(This)
31482#define IShellLibrary_Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo) (This)->lpVtbl->Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo)
31483#define IShellLibrary_SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo) (This)->lpVtbl->SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo)
31484#else
31485/*** IUnknown methods ***/
31486static inline HRESULT IShellLibrary_QueryInterface(IShellLibrary* This,REFIID riid,void **ppvObject) {
31487    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31488}
31489static inline ULONG IShellLibrary_AddRef(IShellLibrary* This) {
31490    return This->lpVtbl->AddRef(This);
31491}
31492static inline ULONG IShellLibrary_Release(IShellLibrary* This) {
31493    return This->lpVtbl->Release(This);
31494}
31495/*** IShellLibrary methods ***/
31496static inline HRESULT IShellLibrary_LoadLibraryFromItem(IShellLibrary* This,IShellItem *psiLibrary,DWORD grfMode) {
31497    return This->lpVtbl->LoadLibraryFromItem(This,psiLibrary,grfMode);
31498}
31499static inline HRESULT IShellLibrary_LoadLibraryFromKnownFolder(IShellLibrary* This,REFKNOWNFOLDERID kfidLibrary,DWORD grfMode) {
31500    return This->lpVtbl->LoadLibraryFromKnownFolder(This,kfidLibrary,grfMode);
31501}
31502static inline HRESULT IShellLibrary_AddFolder(IShellLibrary* This,IShellItem *psiLocation) {
31503    return This->lpVtbl->AddFolder(This,psiLocation);
31504}
31505static inline HRESULT IShellLibrary_RemoveFolder(IShellLibrary* This,IShellItem *psiLocation) {
31506    return This->lpVtbl->RemoveFolder(This,psiLocation);
31507}
31508static inline HRESULT IShellLibrary_GetFolders(IShellLibrary* This,LIBRARYFOLDERFILTER lff,REFIID riid,void **ppv) {
31509    return This->lpVtbl->GetFolders(This,lff,riid,ppv);
31510}
31511static inline HRESULT IShellLibrary_ResolveFolder(IShellLibrary* This,IShellItem *psiFolderToResolve,DWORD dwTimeout,REFIID riid,void **ppv) {
31512    return This->lpVtbl->ResolveFolder(This,psiFolderToResolve,dwTimeout,riid,ppv);
31513}
31514static inline HRESULT IShellLibrary_GetDefaultSaveFolder(IShellLibrary* This,DEFAULTSAVEFOLDERTYPE dsft,REFIID riid,void **ppv) {
31515    return This->lpVtbl->GetDefaultSaveFolder(This,dsft,riid,ppv);
31516}
31517static inline HRESULT IShellLibrary_SetDefaultSaveFolder(IShellLibrary* This,DEFAULTSAVEFOLDERTYPE dsft,IShellItem *psi) {
31518    return This->lpVtbl->SetDefaultSaveFolder(This,dsft,psi);
31519}
31520static inline HRESULT IShellLibrary_GetOptions(IShellLibrary* This,LIBRARYOPTIONFLAGS *plofOptions) {
31521    return This->lpVtbl->GetOptions(This,plofOptions);
31522}
31523static inline HRESULT IShellLibrary_SetOptions(IShellLibrary* This,LIBRARYOPTIONFLAGS lofMask,LIBRARYOPTIONFLAGS lofOptions) {
31524    return This->lpVtbl->SetOptions(This,lofMask,lofOptions);
31525}
31526static inline HRESULT IShellLibrary_GetFolderType(IShellLibrary* This,FOLDERTYPEID *pftid) {
31527    return This->lpVtbl->GetFolderType(This,pftid);
31528}
31529static inline HRESULT IShellLibrary_SetFolderType(IShellLibrary* This,REFFOLDERTYPEID ftid) {
31530    return This->lpVtbl->SetFolderType(This,ftid);
31531}
31532static inline HRESULT IShellLibrary_GetIcon(IShellLibrary* This,LPWSTR *ppszIcon) {
31533    return This->lpVtbl->GetIcon(This,ppszIcon);
31534}
31535static inline HRESULT IShellLibrary_SetIcon(IShellLibrary* This,LPCWSTR pszIcon) {
31536    return This->lpVtbl->SetIcon(This,pszIcon);
31537}
31538static inline HRESULT IShellLibrary_Commit(IShellLibrary* This) {
31539    return This->lpVtbl->Commit(This);
31540}
31541static inline HRESULT IShellLibrary_Save(IShellLibrary* This,IShellItem *psiFolderToSaveIn,LPCWSTR pszLibraryName,LIBRARYSAVEFLAGS lsf,IShellItem **ppsiSavedTo) {
31542    return This->lpVtbl->Save(This,psiFolderToSaveIn,pszLibraryName,lsf,ppsiSavedTo);
31543}
31544static inline HRESULT IShellLibrary_SaveInKnownFolder(IShellLibrary* This,REFKNOWNFOLDERID kfidToSaveIn,LPCWSTR pszLibraryName,LIBRARYSAVEFLAGS lsf,IShellItem **ppsiSavedTo) {
31545    return This->lpVtbl->SaveInKnownFolder(This,kfidToSaveIn,pszLibraryName,lsf,ppsiSavedTo);
31546}
31547#endif
31548#endif
31549
31550#endif
31551
31552
31553#endif  /* __IShellLibrary_INTERFACE_DEFINED__ */
31554
31555
31556typedef enum PBM_EVENT {
31557    PE_DUCKSESSION = 1,
31558    PE_UNDUCKSESSION = 2
31559} PBM_EVENT;
31560
31561/*****************************************************************************
31562 * IPlaybackManagerEvents interface
31563 */
31564#ifndef __IPlaybackManagerEvents_INTERFACE_DEFINED__
31565#define __IPlaybackManagerEvents_INTERFACE_DEFINED__
31566
31567DEFINE_GUID(IID_IPlaybackManagerEvents, 0x385cfb7d, 0x4e0c, 0x4106, 0x91,0x2e, 0x8c,0xfb,0x4c,0x19,0x1f,0x45);
31568#if defined(__cplusplus) && !defined(CINTERFACE)
31569MIDL_INTERFACE("385cfb7d-4e0c-4106-912e-8cfb4c191f45")
31570IPlaybackManagerEvents : public IUnknown
31571{
31572    virtual HRESULT STDMETHODCALLTYPE OnPlaybackManagerEvent(
31573        DWORD dwSessionId,
31574        PBM_EVENT mediaEvent) = 0;
31575
31576};
31577#ifdef __CRT_UUID_DECL
31578__CRT_UUID_DECL(IPlaybackManagerEvents, 0x385cfb7d, 0x4e0c, 0x4106, 0x91,0x2e, 0x8c,0xfb,0x4c,0x19,0x1f,0x45)
31579#endif
31580#else
31581typedef struct IPlaybackManagerEventsVtbl {
31582    BEGIN_INTERFACE
31583
31584    /*** IUnknown methods ***/
31585    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31586        IPlaybackManagerEvents *This,
31587        REFIID riid,
31588        void **ppvObject);
31589
31590    ULONG (STDMETHODCALLTYPE *AddRef)(
31591        IPlaybackManagerEvents *This);
31592
31593    ULONG (STDMETHODCALLTYPE *Release)(
31594        IPlaybackManagerEvents *This);
31595
31596    /*** IPlaybackManagerEvents methods ***/
31597    HRESULT (STDMETHODCALLTYPE *OnPlaybackManagerEvent)(
31598        IPlaybackManagerEvents *This,
31599        DWORD dwSessionId,
31600        PBM_EVENT mediaEvent);
31601
31602    END_INTERFACE
31603} IPlaybackManagerEventsVtbl;
31604
31605interface IPlaybackManagerEvents {
31606    CONST_VTBL IPlaybackManagerEventsVtbl* lpVtbl;
31607};
31608
31609#ifdef COBJMACROS
31610#ifndef WIDL_C_INLINE_WRAPPERS
31611/*** IUnknown methods ***/
31612#define IPlaybackManagerEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31613#define IPlaybackManagerEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
31614#define IPlaybackManagerEvents_Release(This) (This)->lpVtbl->Release(This)
31615/*** IPlaybackManagerEvents methods ***/
31616#define IPlaybackManagerEvents_OnPlaybackManagerEvent(This,dwSessionId,mediaEvent) (This)->lpVtbl->OnPlaybackManagerEvent(This,dwSessionId,mediaEvent)
31617#else
31618/*** IUnknown methods ***/
31619static inline HRESULT IPlaybackManagerEvents_QueryInterface(IPlaybackManagerEvents* This,REFIID riid,void **ppvObject) {
31620    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31621}
31622static inline ULONG IPlaybackManagerEvents_AddRef(IPlaybackManagerEvents* This) {
31623    return This->lpVtbl->AddRef(This);
31624}
31625static inline ULONG IPlaybackManagerEvents_Release(IPlaybackManagerEvents* This) {
31626    return This->lpVtbl->Release(This);
31627}
31628/*** IPlaybackManagerEvents methods ***/
31629static inline HRESULT IPlaybackManagerEvents_OnPlaybackManagerEvent(IPlaybackManagerEvents* This,DWORD dwSessionId,PBM_EVENT mediaEvent) {
31630    return This->lpVtbl->OnPlaybackManagerEvent(This,dwSessionId,mediaEvent);
31631}
31632#endif
31633#endif
31634
31635#endif
31636
31637
31638#endif  /* __IPlaybackManagerEvents_INTERFACE_DEFINED__ */
31639
31640
31641typedef enum PBM_SESSION_TYPE {
31642    ST_COMMUNICATION = 1,
31643    ST_MEDIA = 2
31644} PBM_SESSION_TYPE;
31645
31646typedef enum PBM_PLAY_STATE {
31647    PS_PLAYING = 1,
31648    PS_PAUSED = 2,
31649    PS_STOPPED = 3
31650} PBM_PLAY_STATE;
31651
31652typedef enum PBM_MUTE_STATE {
31653    MS_MUTED = 1,
31654    MS_UNMUTED = 2
31655} PBM_MUTE_STATE;
31656
31657/*****************************************************************************
31658 * IPlaybackManager interface
31659 */
31660#ifndef __IPlaybackManager_INTERFACE_DEFINED__
31661#define __IPlaybackManager_INTERFACE_DEFINED__
31662
31663DEFINE_GUID(IID_IPlaybackManager, 0x0f3c1b01, 0x8199, 0x4173, 0xba,0x78, 0x98,0x58,0x82,0x26,0x6f,0x7a);
31664#if defined(__cplusplus) && !defined(CINTERFACE)
31665MIDL_INTERFACE("0f3c1b01-8199-4173-ba78-985882266f7a")
31666IPlaybackManager : public IUnknown
31667{
31668    virtual HRESULT STDMETHODCALLTYPE Advise(
31669        PBM_SESSION_TYPE type,
31670        IPlaybackManagerEvents *pEvents,
31671        DWORD *pdwSessionId) = 0;
31672
31673    virtual HRESULT STDMETHODCALLTYPE Unadvise(
31674        DWORD dwSessionId) = 0;
31675
31676    virtual HRESULT STDMETHODCALLTYPE ChangeSessionState(
31677        DWORD dwSessionId,
31678        PBM_PLAY_STATE state,
31679        PBM_MUTE_STATE mute) = 0;
31680
31681};
31682#ifdef __CRT_UUID_DECL
31683__CRT_UUID_DECL(IPlaybackManager, 0x0f3c1b01, 0x8199, 0x4173, 0xba,0x78, 0x98,0x58,0x82,0x26,0x6f,0x7a)
31684#endif
31685#else
31686typedef struct IPlaybackManagerVtbl {
31687    BEGIN_INTERFACE
31688
31689    /*** IUnknown methods ***/
31690    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31691        IPlaybackManager *This,
31692        REFIID riid,
31693        void **ppvObject);
31694
31695    ULONG (STDMETHODCALLTYPE *AddRef)(
31696        IPlaybackManager *This);
31697
31698    ULONG (STDMETHODCALLTYPE *Release)(
31699        IPlaybackManager *This);
31700
31701    /*** IPlaybackManager methods ***/
31702    HRESULT (STDMETHODCALLTYPE *Advise)(
31703        IPlaybackManager *This,
31704        PBM_SESSION_TYPE type,
31705        IPlaybackManagerEvents *pEvents,
31706        DWORD *pdwSessionId);
31707
31708    HRESULT (STDMETHODCALLTYPE *Unadvise)(
31709        IPlaybackManager *This,
31710        DWORD dwSessionId);
31711
31712    HRESULT (STDMETHODCALLTYPE *ChangeSessionState)(
31713        IPlaybackManager *This,
31714        DWORD dwSessionId,
31715        PBM_PLAY_STATE state,
31716        PBM_MUTE_STATE mute);
31717
31718    END_INTERFACE
31719} IPlaybackManagerVtbl;
31720
31721interface IPlaybackManager {
31722    CONST_VTBL IPlaybackManagerVtbl* lpVtbl;
31723};
31724
31725#ifdef COBJMACROS
31726#ifndef WIDL_C_INLINE_WRAPPERS
31727/*** IUnknown methods ***/
31728#define IPlaybackManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31729#define IPlaybackManager_AddRef(This) (This)->lpVtbl->AddRef(This)
31730#define IPlaybackManager_Release(This) (This)->lpVtbl->Release(This)
31731/*** IPlaybackManager methods ***/
31732#define IPlaybackManager_Advise(This,type,pEvents,pdwSessionId) (This)->lpVtbl->Advise(This,type,pEvents,pdwSessionId)
31733#define IPlaybackManager_Unadvise(This,dwSessionId) (This)->lpVtbl->Unadvise(This,dwSessionId)
31734#define IPlaybackManager_ChangeSessionState(This,dwSessionId,state,mute) (This)->lpVtbl->ChangeSessionState(This,dwSessionId,state,mute)
31735#else
31736/*** IUnknown methods ***/
31737static inline HRESULT IPlaybackManager_QueryInterface(IPlaybackManager* This,REFIID riid,void **ppvObject) {
31738    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31739}
31740static inline ULONG IPlaybackManager_AddRef(IPlaybackManager* This) {
31741    return This->lpVtbl->AddRef(This);
31742}
31743static inline ULONG IPlaybackManager_Release(IPlaybackManager* This) {
31744    return This->lpVtbl->Release(This);
31745}
31746/*** IPlaybackManager methods ***/
31747static inline HRESULT IPlaybackManager_Advise(IPlaybackManager* This,PBM_SESSION_TYPE type,IPlaybackManagerEvents *pEvents,DWORD *pdwSessionId) {
31748    return This->lpVtbl->Advise(This,type,pEvents,pdwSessionId);
31749}
31750static inline HRESULT IPlaybackManager_Unadvise(IPlaybackManager* This,DWORD dwSessionId) {
31751    return This->lpVtbl->Unadvise(This,dwSessionId);
31752}
31753static inline HRESULT IPlaybackManager_ChangeSessionState(IPlaybackManager* This,DWORD dwSessionId,PBM_PLAY_STATE state,PBM_MUTE_STATE mute) {
31754    return This->lpVtbl->ChangeSessionState(This,dwSessionId,state,mute);
31755}
31756#endif
31757#endif
31758
31759#endif
31760
31761
31762#endif  /* __IPlaybackManager_INTERFACE_DEFINED__ */
31763
31764
31765typedef enum DEFAULT_FOLDER_MENU_RESTRICTIONS {
31766    DFMR_DEFAULT = 0x0,
31767    DFMR_NO_STATIC_VERBS = 0x8,
31768    DFMR_STATIC_VERBS_ONLY = 0x10,
31769    DFMR_NO_RESOURCE_VERBS = 0x20,
31770    DFMR_OPTIN_HANDLERS_ONLY = 0x40,
31771    DFMR_RESOURCE_AND_FOLDER_VERBS_ONLY = 0x80,
31772    DFMR_USE_SPECIFIED_HANDLERS = 0x100,
31773    DFMR_USE_SPECIFIED_VERBS = 0x200,
31774    DFMR_NO_ASYNC_VERBS = 0x400
31775} DEFAULT_FOLDER_MENU_RESTRICTIONS;
31776
31777DEFINE_ENUM_FLAG_OPERATORS(DEFAULT_FOLDER_MENU_RESTRICTIONS)
31778
31779/*****************************************************************************
31780 * IDefaultFolderMenuInitialize interface
31781 */
31782#ifndef __IDefaultFolderMenuInitialize_INTERFACE_DEFINED__
31783#define __IDefaultFolderMenuInitialize_INTERFACE_DEFINED__
31784
31785DEFINE_GUID(IID_IDefaultFolderMenuInitialize, 0x7690aa79, 0xf8fc, 0x4615, 0xa3,0x27, 0x36,0xf7,0xd1,0x8f,0x5d,0x91);
31786#if defined(__cplusplus) && !defined(CINTERFACE)
31787MIDL_INTERFACE("7690aa79-f8fc-4615-a327-36f7d18f5d91")
31788IDefaultFolderMenuInitialize : public IUnknown
31789{
31790    virtual HRESULT STDMETHODCALLTYPE Initialize(
31791        HWND hwnd,
31792        IContextMenuCB *pcmcb,
31793        PCIDLIST_ABSOLUTE pidlFolder,
31794        IShellFolder *psf,
31795        UINT cidl,
31796        PCUITEMID_CHILD_ARRAY apidl,
31797        IUnknown *punkAssociation,
31798        UINT cKeys,
31799        const HKEY *aKeys) = 0;
31800
31801    virtual HRESULT STDMETHODCALLTYPE SetMenuRestrictions(
31802        DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues) = 0;
31803
31804    virtual HRESULT STDMETHODCALLTYPE GetMenuRestrictions(
31805        DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,
31806        DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues) = 0;
31807
31808    virtual HRESULT STDMETHODCALLTYPE SetHandlerClsid(
31809        REFCLSID rclsid) = 0;
31810
31811};
31812#ifdef __CRT_UUID_DECL
31813__CRT_UUID_DECL(IDefaultFolderMenuInitialize, 0x7690aa79, 0xf8fc, 0x4615, 0xa3,0x27, 0x36,0xf7,0xd1,0x8f,0x5d,0x91)
31814#endif
31815#else
31816typedef struct IDefaultFolderMenuInitializeVtbl {
31817    BEGIN_INTERFACE
31818
31819    /*** IUnknown methods ***/
31820    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31821        IDefaultFolderMenuInitialize *This,
31822        REFIID riid,
31823        void **ppvObject);
31824
31825    ULONG (STDMETHODCALLTYPE *AddRef)(
31826        IDefaultFolderMenuInitialize *This);
31827
31828    ULONG (STDMETHODCALLTYPE *Release)(
31829        IDefaultFolderMenuInitialize *This);
31830
31831    /*** IDefaultFolderMenuInitialize methods ***/
31832    HRESULT (STDMETHODCALLTYPE *Initialize)(
31833        IDefaultFolderMenuInitialize *This,
31834        HWND hwnd,
31835        IContextMenuCB *pcmcb,
31836        PCIDLIST_ABSOLUTE pidlFolder,
31837        IShellFolder *psf,
31838        UINT cidl,
31839        PCUITEMID_CHILD_ARRAY apidl,
31840        IUnknown *punkAssociation,
31841        UINT cKeys,
31842        const HKEY *aKeys);
31843
31844    HRESULT (STDMETHODCALLTYPE *SetMenuRestrictions)(
31845        IDefaultFolderMenuInitialize *This,
31846        DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues);
31847
31848    HRESULT (STDMETHODCALLTYPE *GetMenuRestrictions)(
31849        IDefaultFolderMenuInitialize *This,
31850        DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,
31851        DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues);
31852
31853    HRESULT (STDMETHODCALLTYPE *SetHandlerClsid)(
31854        IDefaultFolderMenuInitialize *This,
31855        REFCLSID rclsid);
31856
31857    END_INTERFACE
31858} IDefaultFolderMenuInitializeVtbl;
31859
31860interface IDefaultFolderMenuInitialize {
31861    CONST_VTBL IDefaultFolderMenuInitializeVtbl* lpVtbl;
31862};
31863
31864#ifdef COBJMACROS
31865#ifndef WIDL_C_INLINE_WRAPPERS
31866/*** IUnknown methods ***/
31867#define IDefaultFolderMenuInitialize_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31868#define IDefaultFolderMenuInitialize_AddRef(This) (This)->lpVtbl->AddRef(This)
31869#define IDefaultFolderMenuInitialize_Release(This) (This)->lpVtbl->Release(This)
31870/*** IDefaultFolderMenuInitialize methods ***/
31871#define IDefaultFolderMenuInitialize_Initialize(This,hwnd,pcmcb,pidlFolder,psf,cidl,apidl,punkAssociation,cKeys,aKeys) (This)->lpVtbl->Initialize(This,hwnd,pcmcb,pidlFolder,psf,cidl,apidl,punkAssociation,cKeys,aKeys)
31872#define IDefaultFolderMenuInitialize_SetMenuRestrictions(This,dfmrValues) (This)->lpVtbl->SetMenuRestrictions(This,dfmrValues)
31873#define IDefaultFolderMenuInitialize_GetMenuRestrictions(This,dfmrMask,pdfmrValues) (This)->lpVtbl->GetMenuRestrictions(This,dfmrMask,pdfmrValues)
31874#define IDefaultFolderMenuInitialize_SetHandlerClsid(This,rclsid) (This)->lpVtbl->SetHandlerClsid(This,rclsid)
31875#else
31876/*** IUnknown methods ***/
31877static inline HRESULT IDefaultFolderMenuInitialize_QueryInterface(IDefaultFolderMenuInitialize* This,REFIID riid,void **ppvObject) {
31878    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
31879}
31880static inline ULONG IDefaultFolderMenuInitialize_AddRef(IDefaultFolderMenuInitialize* This) {
31881    return This->lpVtbl->AddRef(This);
31882}
31883static inline ULONG IDefaultFolderMenuInitialize_Release(IDefaultFolderMenuInitialize* This) {
31884    return This->lpVtbl->Release(This);
31885}
31886/*** IDefaultFolderMenuInitialize methods ***/
31887static inline HRESULT IDefaultFolderMenuInitialize_Initialize(IDefaultFolderMenuInitialize* This,HWND hwnd,IContextMenuCB *pcmcb,PCIDLIST_ABSOLUTE pidlFolder,IShellFolder *psf,UINT cidl,PCUITEMID_CHILD_ARRAY apidl,IUnknown *punkAssociation,UINT cKeys,const HKEY *aKeys) {
31888    return This->lpVtbl->Initialize(This,hwnd,pcmcb,pidlFolder,psf,cidl,apidl,punkAssociation,cKeys,aKeys);
31889}
31890static inline HRESULT IDefaultFolderMenuInitialize_SetMenuRestrictions(IDefaultFolderMenuInitialize* This,DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrValues) {
31891    return This->lpVtbl->SetMenuRestrictions(This,dfmrValues);
31892}
31893static inline HRESULT IDefaultFolderMenuInitialize_GetMenuRestrictions(IDefaultFolderMenuInitialize* This,DEFAULT_FOLDER_MENU_RESTRICTIONS dfmrMask,DEFAULT_FOLDER_MENU_RESTRICTIONS *pdfmrValues) {
31894    return This->lpVtbl->GetMenuRestrictions(This,dfmrMask,pdfmrValues);
31895}
31896static inline HRESULT IDefaultFolderMenuInitialize_SetHandlerClsid(IDefaultFolderMenuInitialize* This,REFCLSID rclsid) {
31897    return This->lpVtbl->SetHandlerClsid(This,rclsid);
31898}
31899#endif
31900#endif
31901
31902#endif
31903
31904
31905#endif  /* __IDefaultFolderMenuInitialize_INTERFACE_DEFINED__ */
31906
31907
31908#if NTDDI_VERSION >= NTDDI_WIN8
31909typedef enum ACTIVATEOPTIONS {
31910    AO_NONE = 0x0,
31911    AO_DESIGNMODE = 0x1,
31912    AO_NOERRORUI = 0x2,
31913    AO_NOSPLASHSCREEN = 0x4
31914} ACTIVATEOPTIONS;
31915
31916DEFINE_ENUM_FLAG_OPERATORS(ACTIVATEOPTIONS)
31917
31918/*****************************************************************************
31919 * IApplicationActivationManager interface
31920 */
31921#ifndef __IApplicationActivationManager_INTERFACE_DEFINED__
31922#define __IApplicationActivationManager_INTERFACE_DEFINED__
31923
31924DEFINE_GUID(IID_IApplicationActivationManager, 0x2e941141, 0x7f97, 0x4756, 0xba,0x1d, 0x9d,0xec,0xde,0x89,0x4a,0x3d);
31925#if defined(__cplusplus) && !defined(CINTERFACE)
31926MIDL_INTERFACE("2e941141-7f97-4756-ba1d-9decde894a3d")
31927IApplicationActivationManager : public IUnknown
31928{
31929    virtual HRESULT STDMETHODCALLTYPE ActivateApplication(
31930        LPCWSTR appUserModelId,
31931        LPCWSTR arguments,
31932        ACTIVATEOPTIONS options,
31933        DWORD *processId) = 0;
31934
31935    virtual HRESULT STDMETHODCALLTYPE ActivateForFile(
31936        LPCWSTR appUserModelId,
31937        IShellItemArray *itemArray,
31938        LPCWSTR verb,
31939        DWORD *processId) = 0;
31940
31941    virtual HRESULT STDMETHODCALLTYPE ActivateForProtocol(
31942        LPCWSTR appUserModelId,
31943        IShellItemArray *itemArray,
31944        DWORD *processId) = 0;
31945
31946};
31947#ifdef __CRT_UUID_DECL
31948__CRT_UUID_DECL(IApplicationActivationManager, 0x2e941141, 0x7f97, 0x4756, 0xba,0x1d, 0x9d,0xec,0xde,0x89,0x4a,0x3d)
31949#endif
31950#else
31951typedef struct IApplicationActivationManagerVtbl {
31952    BEGIN_INTERFACE
31953
31954    /*** IUnknown methods ***/
31955    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
31956        IApplicationActivationManager *This,
31957        REFIID riid,
31958        void **ppvObject);
31959
31960    ULONG (STDMETHODCALLTYPE *AddRef)(
31961        IApplicationActivationManager *This);
31962
31963    ULONG (STDMETHODCALLTYPE *Release)(
31964        IApplicationActivationManager *This);
31965
31966    /*** IApplicationActivationManager methods ***/
31967    HRESULT (STDMETHODCALLTYPE *ActivateApplication)(
31968        IApplicationActivationManager *This,
31969        LPCWSTR appUserModelId,
31970        LPCWSTR arguments,
31971        ACTIVATEOPTIONS options,
31972        DWORD *processId);
31973
31974    HRESULT (STDMETHODCALLTYPE *ActivateForFile)(
31975        IApplicationActivationManager *This,
31976        LPCWSTR appUserModelId,
31977        IShellItemArray *itemArray,
31978        LPCWSTR verb,
31979        DWORD *processId);
31980
31981    HRESULT (STDMETHODCALLTYPE *ActivateForProtocol)(
31982        IApplicationActivationManager *This,
31983        LPCWSTR appUserModelId,
31984        IShellItemArray *itemArray,
31985        DWORD *processId);
31986
31987    END_INTERFACE
31988} IApplicationActivationManagerVtbl;
31989
31990interface IApplicationActivationManager {
31991    CONST_VTBL IApplicationActivationManagerVtbl* lpVtbl;
31992};
31993
31994#ifdef COBJMACROS
31995#ifndef WIDL_C_INLINE_WRAPPERS
31996/*** IUnknown methods ***/
31997#define IApplicationActivationManager_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
31998#define IApplicationActivationManager_AddRef(This) (This)->lpVtbl->AddRef(This)
31999#define IApplicationActivationManager_Release(This) (This)->lpVtbl->Release(This)
32000/*** IApplicationActivationManager methods ***/
32001#define IApplicationActivationManager_ActivateApplication(This,appUserModelId,arguments,options,processId) (This)->lpVtbl->ActivateApplication(This,appUserModelId,arguments,options,processId)
32002#define IApplicationActivationManager_ActivateForFile(This,appUserModelId,itemArray,verb,processId) (This)->lpVtbl->ActivateForFile(This,appUserModelId,itemArray,verb,processId)
32003#define IApplicationActivationManager_ActivateForProtocol(This,appUserModelId,itemArray,processId) (This)->lpVtbl->ActivateForProtocol(This,appUserModelId,itemArray,processId)
32004#else
32005/*** IUnknown methods ***/
32006static inline HRESULT IApplicationActivationManager_QueryInterface(IApplicationActivationManager* This,REFIID riid,void **ppvObject) {
32007    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
32008}
32009static inline ULONG IApplicationActivationManager_AddRef(IApplicationActivationManager* This) {
32010    return This->lpVtbl->AddRef(This);
32011}
32012static inline ULONG IApplicationActivationManager_Release(IApplicationActivationManager* This) {
32013    return This->lpVtbl->Release(This);
32014}
32015/*** IApplicationActivationManager methods ***/
32016static inline HRESULT IApplicationActivationManager_ActivateApplication(IApplicationActivationManager* This,LPCWSTR appUserModelId,LPCWSTR arguments,ACTIVATEOPTIONS options,DWORD *processId) {
32017    return This->lpVtbl->ActivateApplication(This,appUserModelId,arguments,options,processId);
32018}
32019static inline HRESULT IApplicationActivationManager_ActivateForFile(IApplicationActivationManager* This,LPCWSTR appUserModelId,IShellItemArray *itemArray,LPCWSTR verb,DWORD *processId) {
32020    return This->lpVtbl->ActivateForFile(This,appUserModelId,itemArray,verb,processId);
32021}
32022static inline HRESULT IApplicationActivationManager_ActivateForProtocol(IApplicationActivationManager* This,LPCWSTR appUserModelId,IShellItemArray *itemArray,DWORD *processId) {
32023    return This->lpVtbl->ActivateForProtocol(This,appUserModelId,itemArray,processId);
32024}
32025#endif
32026#endif
32027
32028#endif
32029
32030
32031#endif  /* __IApplicationActivationManager_INTERFACE_DEFINED__ */
32032
32033#endif
32034
32035#ifndef __ShellObjects_LIBRARY_DEFINED__
32036#define __ShellObjects_LIBRARY_DEFINED__
32037
32038DEFINE_GUID(LIBID_ShellObjects, 0x50a7e9b1, 0x70ef, 0x11d1, 0xb7,0x5a, 0x00,0xa0,0xc9,0x05,0x64,0xfe);
32039
32040/*****************************************************************************
32041 * DesktopWallpaper coclass
32042 */
32043
32044DEFINE_GUID(CLSID_DesktopWallpaper, 0xc2cf3110, 0x460e, 0x4fc1, 0xb9,0xd0, 0x8a,0x1c,0x0c,0x9c,0xc4,0xbd);
32045
32046#ifdef __cplusplus
32047class DECLSPEC_UUID("c2cf3110-460e-4fc1-b9d0-8a1c0c9cc4bd") DesktopWallpaper;
32048#ifdef __CRT_UUID_DECL
32049__CRT_UUID_DECL(DesktopWallpaper, 0xc2cf3110, 0x460e, 0x4fc1, 0xb9,0xd0, 0x8a,0x1c,0x0c,0x9c,0xc4,0xbd)
32050#endif
32051#endif
32052
32053/*****************************************************************************
32054 * ShellDesktop coclass
32055 */
32056
32057DEFINE_GUID(CLSID_ShellDesktop, 0x00021400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
32058
32059#ifdef __cplusplus
32060class DECLSPEC_UUID("00021400-0000-0000-c000-000000000046") ShellDesktop;
32061#ifdef __CRT_UUID_DECL
32062__CRT_UUID_DECL(ShellDesktop, 0x00021400, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
32063#endif
32064#endif
32065
32066/*****************************************************************************
32067 * ShellFSFolder coclass
32068 */
32069
32070DEFINE_GUID(CLSID_ShellFSFolder, 0xf3364ba0, 0x65b9, 0x11ce, 0xa9,0xba, 0x00,0xaa,0x00,0x4a,0xe8,0x37);
32071
32072#ifdef __cplusplus
32073class DECLSPEC_UUID("f3364ba0-65b9-11ce-a9ba-00aa004ae837") ShellFSFolder;
32074#ifdef __CRT_UUID_DECL
32075__CRT_UUID_DECL(ShellFSFolder, 0xf3364ba0, 0x65b9, 0x11ce, 0xa9,0xba, 0x00,0xaa,0x00,0x4a,0xe8,0x37)
32076#endif
32077#endif
32078
32079/*****************************************************************************
32080 * NetworkPlaces coclass
32081 */
32082
32083DEFINE_GUID(CLSID_NetworkPlaces, 0x208d2c60, 0x3aea, 0x1069, 0xa2,0xd7, 0x08,0x00,0x2b,0x30,0x30,0x9d);
32084
32085#ifdef __cplusplus
32086class DECLSPEC_UUID("208d2c60-3aea-1069-a2d7-08002b30309d") NetworkPlaces;
32087#ifdef __CRT_UUID_DECL
32088__CRT_UUID_DECL(NetworkPlaces, 0x208d2c60, 0x3aea, 0x1069, 0xa2,0xd7, 0x08,0x00,0x2b,0x30,0x30,0x9d)
32089#endif
32090#endif
32091
32092/*****************************************************************************
32093 * ShellLink coclass
32094 */
32095
32096DEFINE_GUID(CLSID_ShellLink, 0x00021401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46);
32097
32098#ifdef __cplusplus
32099class DECLSPEC_UUID("00021401-0000-0000-c000-000000000046") ShellLink;
32100#ifdef __CRT_UUID_DECL
32101__CRT_UUID_DECL(ShellLink, 0x00021401, 0x0000, 0x0000, 0xc0,0x00, 0x00,0x00,0x00,0x00,0x00,0x46)
32102#endif
32103#endif
32104
32105/*****************************************************************************
32106 * QueryCancelAutoPlay coclass
32107 */
32108
32109DEFINE_GUID(CLSID_QueryCancelAutoPlay, 0x331f1768, 0x05a9, 0x4ddd, 0xb8,0x6e, 0xda,0xe3,0x4d,0xdc,0x99,0x8a);
32110
32111#ifdef __cplusplus
32112class DECLSPEC_UUID("331f1768-05a9-4ddd-b86e-dae34ddc998a") QueryCancelAutoPlay;
32113#ifdef __CRT_UUID_DECL
32114__CRT_UUID_DECL(QueryCancelAutoPlay, 0x331f1768, 0x05a9, 0x4ddd, 0xb8,0x6e, 0xda,0xe3,0x4d,0xdc,0x99,0x8a)
32115#endif
32116#endif
32117
32118/*****************************************************************************
32119 * DriveSizeCategorizer coclass
32120 */
32121
32122DEFINE_GUID(CLSID_DriveSizeCategorizer, 0x94357b53, 0xca29, 0x4b78, 0x83,0xae, 0xe8,0xfe,0x74,0x09,0x13,0x4f);
32123
32124#ifdef __cplusplus
32125class DECLSPEC_UUID("94357b53-ca29-4b78-83ae-e8fe7409134f") DriveSizeCategorizer;
32126#ifdef __CRT_UUID_DECL
32127__CRT_UUID_DECL(DriveSizeCategorizer, 0x94357b53, 0xca29, 0x4b78, 0x83,0xae, 0xe8,0xfe,0x74,0x09,0x13,0x4f)
32128#endif
32129#endif
32130
32131/*****************************************************************************
32132 * DriveTypeCategorizer coclass
32133 */
32134
32135DEFINE_GUID(CLSID_DriveTypeCategorizer, 0xb0a8f3cf, 0x4333, 0x4bab, 0x88,0x73, 0x1c,0xcb,0x1c,0xad,0xa4,0x8b);
32136
32137#ifdef __cplusplus
32138class DECLSPEC_UUID("b0a8f3cf-4333-4bab-8873-1ccb1cada48b") DriveTypeCategorizer;
32139#ifdef __CRT_UUID_DECL
32140__CRT_UUID_DECL(DriveTypeCategorizer, 0xb0a8f3cf, 0x4333, 0x4bab, 0x88,0x73, 0x1c,0xcb,0x1c,0xad,0xa4,0x8b)
32141#endif
32142#endif
32143
32144/*****************************************************************************
32145 * FreeSpaceCategorizer coclass
32146 */
32147
32148DEFINE_GUID(CLSID_FreeSpaceCategorizer, 0xb5607793, 0x24ac, 0x44c7, 0x82,0xe2, 0x83,0x17,0x26,0xaa,0x6c,0xb7);
32149
32150#ifdef __cplusplus
32151class DECLSPEC_UUID("b5607793-24ac-44c7-82e2-831726aa6cb7") FreeSpaceCategorizer;
32152#ifdef __CRT_UUID_DECL
32153__CRT_UUID_DECL(FreeSpaceCategorizer, 0xb5607793, 0x24ac, 0x44c7, 0x82,0xe2, 0x83,0x17,0x26,0xaa,0x6c,0xb7)
32154#endif
32155#endif
32156
32157/*****************************************************************************
32158 * TimeCategorizer coclass
32159 */
32160
32161DEFINE_GUID(CLSID_TimeCategorizer, 0x3bb4118f, 0xddfd, 0x4d30, 0xa3,0x48, 0x9f,0xb5,0xd6,0xbf,0x1a,0xfe);
32162
32163#ifdef __cplusplus
32164class DECLSPEC_UUID("3bb4118f-ddfd-4d30-a348-9fb5d6bf1afe") TimeCategorizer;
32165#ifdef __CRT_UUID_DECL
32166__CRT_UUID_DECL(TimeCategorizer, 0x3bb4118f, 0xddfd, 0x4d30, 0xa3,0x48, 0x9f,0xb5,0xd6,0xbf,0x1a,0xfe)
32167#endif
32168#endif
32169
32170/*****************************************************************************
32171 * SizeCategorizer coclass
32172 */
32173
32174DEFINE_GUID(CLSID_SizeCategorizer, 0x55d7b852, 0xf6d1, 0x42f2, 0xaa,0x75, 0x87,0x28,0xa1,0xb2,0xd2,0x64);
32175
32176#ifdef __cplusplus
32177class DECLSPEC_UUID("55d7b852-f6d1-42f2-aa75-8728a1b2d264") SizeCategorizer;
32178#ifdef __CRT_UUID_DECL
32179__CRT_UUID_DECL(SizeCategorizer, 0x55d7b852, 0xf6d1, 0x42f2, 0xaa,0x75, 0x87,0x28,0xa1,0xb2,0xd2,0x64)
32180#endif
32181#endif
32182
32183/*****************************************************************************
32184 * AlphabeticalCategorizer coclass
32185 */
32186
32187DEFINE_GUID(CLSID_AlphabeticalCategorizer, 0x3c2654c6, 0x7372, 0x4f6b, 0xb3,0x10, 0x55,0xd6,0x12,0x8f,0x49,0xd2);
32188
32189#ifdef __cplusplus
32190class DECLSPEC_UUID("3c2654c6-7372-4f6b-b310-55d6128f49d2") AlphabeticalCategorizer;
32191#ifdef __CRT_UUID_DECL
32192__CRT_UUID_DECL(AlphabeticalCategorizer, 0x3c2654c6, 0x7372, 0x4f6b, 0xb3,0x10, 0x55,0xd6,0x12,0x8f,0x49,0xd2)
32193#endif
32194#endif
32195
32196/*****************************************************************************
32197 * MergedCategorizer coclass
32198 */
32199
32200DEFINE_GUID(CLSID_MergedCategorizer, 0x8e827c11, 0x33e7, 0x4bc1, 0xb2,0x42, 0x8c,0xd9,0xa1,0xc2,0xb3,0x04);
32201
32202#ifdef __cplusplus
32203class DECLSPEC_UUID("8e827c11-33e7-4bc1-b242-8cd9a1c2b304") MergedCategorizer;
32204#ifdef __CRT_UUID_DECL
32205__CRT_UUID_DECL(MergedCategorizer, 0x8e827c11, 0x33e7, 0x4bc1, 0xb2,0x42, 0x8c,0xd9,0xa1,0xc2,0xb3,0x04)
32206#endif
32207#endif
32208
32209/*****************************************************************************
32210 * ImageProperties coclass
32211 */
32212
32213DEFINE_GUID(CLSID_ImageProperties, 0x7ab770c7, 0x0e23, 0x4d7a, 0x8a,0xa2, 0x19,0xbf,0xad,0x47,0x98,0x29);
32214
32215#ifdef __cplusplus
32216class DECLSPEC_UUID("7ab770c7-0e23-4d7a-8aa2-19bfad479829") ImageProperties;
32217#ifdef __CRT_UUID_DECL
32218__CRT_UUID_DECL(ImageProperties, 0x7ab770c7, 0x0e23, 0x4d7a, 0x8a,0xa2, 0x19,0xbf,0xad,0x47,0x98,0x29)
32219#endif
32220#endif
32221
32222/*****************************************************************************
32223 * PropertiesUI coclass
32224 */
32225
32226DEFINE_GUID(CLSID_PropertiesUI, 0xd912f8cf, 0x0396, 0x4915, 0x88,0x4e, 0xfb,0x42,0x5d,0x32,0x94,0x3b);
32227
32228#ifdef __cplusplus
32229class DECLSPEC_UUID("d912f8cf-0396-4915-884e-fb425d32943b") PropertiesUI;
32230#ifdef __CRT_UUID_DECL
32231__CRT_UUID_DECL(PropertiesUI, 0xd912f8cf, 0x0396, 0x4915, 0x88,0x4e, 0xfb,0x42,0x5d,0x32,0x94,0x3b)
32232#endif
32233#endif
32234
32235/*****************************************************************************
32236 * UserNotification coclass
32237 */
32238
32239DEFINE_GUID(CLSID_UserNotification, 0x0010890e, 0x8789, 0x413c, 0xad,0xbc, 0x48,0xf5,0xb5,0x11,0xb3,0xaf);
32240
32241#ifdef __cplusplus
32242class DECLSPEC_UUID("0010890e-8789-413c-adbc-48f5b511b3af") UserNotification;
32243#ifdef __CRT_UUID_DECL
32244__CRT_UUID_DECL(UserNotification, 0x0010890e, 0x8789, 0x413c, 0xad,0xbc, 0x48,0xf5,0xb5,0x11,0xb3,0xaf)
32245#endif
32246#endif
32247
32248/*****************************************************************************
32249 * CDBurn coclass
32250 */
32251
32252DEFINE_GUID(CLSID_CDBurn, 0xfbeb8a05, 0xbeee, 0x4442, 0x80,0x4e, 0x40,0x9d,0x6c,0x45,0x15,0xe9);
32253
32254#ifdef __cplusplus
32255class DECLSPEC_UUID("fbeb8a05-beee-4442-804e-409d6c4515e9") CDBurn;
32256#ifdef __CRT_UUID_DECL
32257__CRT_UUID_DECL(CDBurn, 0xfbeb8a05, 0xbeee, 0x4442, 0x80,0x4e, 0x40,0x9d,0x6c,0x45,0x15,0xe9)
32258#endif
32259#endif
32260
32261/*****************************************************************************
32262 * TaskbarList coclass
32263 */
32264
32265DEFINE_GUID(CLSID_TaskbarList, 0x56fdf344, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90);
32266
32267#ifdef __cplusplus
32268class DECLSPEC_UUID("56fdf344-fd6d-11d0-958a-006097c9a090") TaskbarList;
32269#ifdef __CRT_UUID_DECL
32270__CRT_UUID_DECL(TaskbarList, 0x56fdf344, 0xfd6d, 0x11d0, 0x95,0x8a, 0x00,0x60,0x97,0xc9,0xa0,0x90)
32271#endif
32272#endif
32273
32274/*****************************************************************************
32275 * StartMenuPin coclass
32276 */
32277
32278DEFINE_GUID(CLSID_StartMenuPin, 0xa2a9545d, 0xa0c2, 0x42b4, 0x97,0x08, 0xa0,0xb2,0xba,0xdd,0x77,0xc8);
32279
32280#ifdef __cplusplus
32281class DECLSPEC_UUID("a2a9545d-a0c2-42b4-9708-a0b2badd77c8") StartMenuPin;
32282#ifdef __CRT_UUID_DECL
32283__CRT_UUID_DECL(StartMenuPin, 0xa2a9545d, 0xa0c2, 0x42b4, 0x97,0x08, 0xa0,0xb2,0xba,0xdd,0x77,0xc8)
32284#endif
32285#endif
32286
32287/*****************************************************************************
32288 * WebWizardHost coclass
32289 */
32290
32291DEFINE_GUID(CLSID_WebWizardHost, 0xc827f149, 0x55c1, 0x4d28, 0x93,0x5e, 0x57,0xe4,0x7c,0xae,0xd9,0x73);
32292
32293#ifdef __cplusplus
32294class DECLSPEC_UUID("c827f149-55c1-4d28-935e-57e47caed973") WebWizardHost;
32295#ifdef __CRT_UUID_DECL
32296__CRT_UUID_DECL(WebWizardHost, 0xc827f149, 0x55c1, 0x4d28, 0x93,0x5e, 0x57,0xe4,0x7c,0xae,0xd9,0x73)
32297#endif
32298#endif
32299
32300/*****************************************************************************
32301 * PublishDropTarget coclass
32302 */
32303
32304DEFINE_GUID(CLSID_PublishDropTarget, 0xcc6eeffb, 0x43f6, 0x46c5, 0x96,0x19, 0x51,0xd5,0x71,0x96,0x7f,0x7d);
32305
32306#ifdef __cplusplus
32307class DECLSPEC_UUID("cc6eeffb-43f6-46c5-9619-51d571967f7d") PublishDropTarget;
32308#ifdef __CRT_UUID_DECL
32309__CRT_UUID_DECL(PublishDropTarget, 0xcc6eeffb, 0x43f6, 0x46c5, 0x96,0x19, 0x51,0xd5,0x71,0x96,0x7f,0x7d)
32310#endif
32311#endif
32312
32313/*****************************************************************************
32314 * PublishingWizard coclass
32315 */
32316
32317DEFINE_GUID(CLSID_PublishingWizard, 0x6b33163c, 0x76a5, 0x4b6c, 0xbf,0x21, 0x45,0xde,0x9c,0xd5,0x03,0xa1);
32318
32319#ifdef __cplusplus
32320class DECLSPEC_UUID("6b33163c-76a5-4b6c-bf21-45de9cd503a1") PublishingWizard;
32321#ifdef __CRT_UUID_DECL
32322__CRT_UUID_DECL(PublishingWizard, 0x6b33163c, 0x76a5, 0x4b6c, 0xbf,0x21, 0x45,0xde,0x9c,0xd5,0x03,0xa1)
32323#endif
32324#endif
32325
32326#define SID_PublishingWizard CLSID_PublishingWizard
32327/*****************************************************************************
32328 * InternetPrintOrdering coclass
32329 */
32330
32331DEFINE_GUID(CLSID_InternetPrintOrdering, 0xadd36aa8, 0x751a, 0x4579, 0xa2,0x66, 0xd6,0x6f,0x52,0x02,0xcc,0xbb);
32332
32333#ifdef __cplusplus
32334class DECLSPEC_UUID("add36aa8-751a-4579-a266-d66f5202ccbb") InternetPrintOrdering;
32335#ifdef __CRT_UUID_DECL
32336__CRT_UUID_DECL(InternetPrintOrdering, 0xadd36aa8, 0x751a, 0x4579, 0xa2,0x66, 0xd6,0x6f,0x52,0x02,0xcc,0xbb)
32337#endif
32338#endif
32339
32340/*****************************************************************************
32341 * FolderViewHost coclass
32342 */
32343
32344DEFINE_GUID(CLSID_FolderViewHost, 0x20b1cb23, 0x6968, 0x4eb9, 0xb7,0xd4, 0xa6,0x6d,0x00,0xd0,0x7c,0xee);
32345
32346#ifdef __cplusplus
32347class DECLSPEC_UUID("20b1cb23-6968-4eb9-b7d4-a66d00d07cee") FolderViewHost;
32348#ifdef __CRT_UUID_DECL
32349__CRT_UUID_DECL(FolderViewHost, 0x20b1cb23, 0x6968, 0x4eb9, 0xb7,0xd4, 0xa6,0x6d,0x00,0xd0,0x7c,0xee)
32350#endif
32351#endif
32352
32353/*****************************************************************************
32354 * ExplorerBrowser coclass
32355 */
32356
32357DEFINE_GUID(CLSID_ExplorerBrowser, 0x71f96385, 0xddd6, 0x48d3, 0xa0,0xc1, 0xae,0x06,0xe8,0xb0,0x55,0xfb);
32358
32359#ifdef __cplusplus
32360class DECLSPEC_UUID("71f96385-ddd6-48d3-a0c1-ae06e8b055fb") ExplorerBrowser;
32361#ifdef __CRT_UUID_DECL
32362__CRT_UUID_DECL(ExplorerBrowser, 0x71f96385, 0xddd6, 0x48d3, 0xa0,0xc1, 0xae,0x06,0xe8,0xb0,0x55,0xfb)
32363#endif
32364#endif
32365
32366/*****************************************************************************
32367 * ImageRecompress coclass
32368 */
32369
32370DEFINE_GUID(CLSID_ImageRecompress, 0x6e33091c, 0xd2f8, 0x4740, 0xb5,0x5e, 0x2e,0x11,0xd1,0x47,0x7a,0x2c);
32371
32372#ifdef __cplusplus
32373class DECLSPEC_UUID("6e33091c-d2f8-4740-b55e-2e11d1477a2c") ImageRecompress;
32374#ifdef __CRT_UUID_DECL
32375__CRT_UUID_DECL(ImageRecompress, 0x6e33091c, 0xd2f8, 0x4740, 0xb5,0x5e, 0x2e,0x11,0xd1,0x47,0x7a,0x2c)
32376#endif
32377#endif
32378
32379/*****************************************************************************
32380 * TrayBandSiteService coclass
32381 */
32382
32383DEFINE_GUID(CLSID_TrayBandSiteService, 0xf60ad0a0, 0xe5e1, 0x45cb, 0xb5,0x1a, 0xe1,0x5b,0x9f,0x8b,0x29,0x34);
32384
32385#ifdef __cplusplus
32386class DECLSPEC_UUID("f60ad0a0-e5e1-45cb-b51a-e15b9f8b2934") TrayBandSiteService;
32387#ifdef __CRT_UUID_DECL
32388__CRT_UUID_DECL(TrayBandSiteService, 0xf60ad0a0, 0xe5e1, 0x45cb, 0xb5,0x1a, 0xe1,0x5b,0x9f,0x8b,0x29,0x34)
32389#endif
32390#endif
32391
32392/*****************************************************************************
32393 * TrayDeskBand coclass
32394 */
32395
32396DEFINE_GUID(CLSID_TrayDeskBand, 0xe6442437, 0x6c68, 0x4f52, 0x94,0xdd, 0x2c,0xfe,0xd2,0x67,0xef,0xb9);
32397
32398#ifdef __cplusplus
32399class DECLSPEC_UUID("e6442437-6c68-4f52-94dd-2cfed267efb9") TrayDeskBand;
32400#ifdef __CRT_UUID_DECL
32401__CRT_UUID_DECL(TrayDeskBand, 0xe6442437, 0x6c68, 0x4f52, 0x94,0xdd, 0x2c,0xfe,0xd2,0x67,0xef,0xb9)
32402#endif
32403#endif
32404
32405/*****************************************************************************
32406 * AttachmentServices coclass
32407 */
32408
32409DEFINE_GUID(CLSID_AttachmentServices, 0x4125dd96, 0xe03a, 0x4103, 0x8f,0x70, 0xe0,0x59,0x7d,0x80,0x3b,0x9c);
32410
32411#ifdef __cplusplus
32412class DECLSPEC_UUID("4125dd96-e03a-4103-8f70-e0597d803b9c") AttachmentServices;
32413#ifdef __CRT_UUID_DECL
32414__CRT_UUID_DECL(AttachmentServices, 0x4125dd96, 0xe03a, 0x4103, 0x8f,0x70, 0xe0,0x59,0x7d,0x80,0x3b,0x9c)
32415#endif
32416#endif
32417
32418/*****************************************************************************
32419 * DocPropShellExtension coclass
32420 */
32421
32422DEFINE_GUID(CLSID_DocPropShellExtension, 0x883373c3, 0xbf89, 0x11d1, 0xbe,0x35, 0x08,0x00,0x36,0xb1,0x1a,0x03);
32423
32424#ifdef __cplusplus
32425class DECLSPEC_UUID("883373c3-bf89-11d1-be35-080036b11a03") DocPropShellExtension;
32426#ifdef __CRT_UUID_DECL
32427__CRT_UUID_DECL(DocPropShellExtension, 0x883373c3, 0xbf89, 0x11d1, 0xbe,0x35, 0x08,0x00,0x36,0xb1,0x1a,0x03)
32428#endif
32429#endif
32430
32431/*****************************************************************************
32432 * ShellItem coclass
32433 */
32434
32435DEFINE_GUID(CLSID_ShellItem, 0x9ac9fbe1, 0xe0a2, 0x4ad6, 0xb4,0xee, 0xe2,0x12,0x01,0x3e,0xa9,0x17);
32436
32437#ifdef __cplusplus
32438class DECLSPEC_UUID("9ac9fbe1-e0a2-4ad6-b4ee-e212013ea917") ShellItem;
32439#ifdef __CRT_UUID_DECL
32440__CRT_UUID_DECL(ShellItem, 0x9ac9fbe1, 0xe0a2, 0x4ad6, 0xb4,0xee, 0xe2,0x12,0x01,0x3e,0xa9,0x17)
32441#endif
32442#endif
32443
32444/*****************************************************************************
32445 * NamespaceWalker coclass
32446 */
32447
32448DEFINE_GUID(CLSID_NamespaceWalker, 0x72eb61e0, 0x8672, 0x4303, 0x91,0x75, 0xf2,0xe4,0xc6,0x8b,0x2e,0x7c);
32449
32450#ifdef __cplusplus
32451class DECLSPEC_UUID("72eb61e0-8672-4303-9175-f2e4c68b2e7c") NamespaceWalker;
32452#ifdef __CRT_UUID_DECL
32453__CRT_UUID_DECL(NamespaceWalker, 0x72eb61e0, 0x8672, 0x4303, 0x91,0x75, 0xf2,0xe4,0xc6,0x8b,0x2e,0x7c)
32454#endif
32455#endif
32456
32457/*****************************************************************************
32458 * FileOperation coclass
32459 */
32460
32461DEFINE_GUID(CLSID_FileOperation, 0x3ad05575, 0x8857, 0x4850, 0x92,0x77, 0x11,0xb8,0x5b,0xdb,0x8e,0x09);
32462
32463#ifdef __cplusplus
32464class DECLSPEC_UUID("3ad05575-8857-4850-9277-11b85bdb8e09") FileOperation;
32465#ifdef __CRT_UUID_DECL
32466__CRT_UUID_DECL(FileOperation, 0x3ad05575, 0x8857, 0x4850, 0x92,0x77, 0x11,0xb8,0x5b,0xdb,0x8e,0x09)
32467#endif
32468#endif
32469
32470/*****************************************************************************
32471 * FileOpenDialog coclass
32472 */
32473
32474DEFINE_GUID(CLSID_FileOpenDialog, 0xdc1c5a9c, 0xe88a, 0x4dde, 0xa5,0xa1, 0x60,0xf8,0x2a,0x20,0xae,0xf7);
32475
32476#ifdef __cplusplus
32477class DECLSPEC_UUID("dc1c5a9c-e88a-4dde-a5a1-60f82a20aef7") FileOpenDialog;
32478#ifdef __CRT_UUID_DECL
32479__CRT_UUID_DECL(FileOpenDialog, 0xdc1c5a9c, 0xe88a, 0x4dde, 0xa5,0xa1, 0x60,0xf8,0x2a,0x20,0xae,0xf7)
32480#endif
32481#endif
32482
32483/*****************************************************************************
32484 * FileSaveDialog coclass
32485 */
32486
32487DEFINE_GUID(CLSID_FileSaveDialog, 0xc0b4e2f3, 0xba21, 0x4773, 0x8d,0xba, 0x33,0x5e,0xc9,0x46,0xeb,0x8b);
32488
32489#ifdef __cplusplus
32490class DECLSPEC_UUID("c0b4e2f3-ba21-4773-8dba-335ec946eb8b") FileSaveDialog;
32491#ifdef __CRT_UUID_DECL
32492__CRT_UUID_DECL(FileSaveDialog, 0xc0b4e2f3, 0xba21, 0x4773, 0x8d,0xba, 0x33,0x5e,0xc9,0x46,0xeb,0x8b)
32493#endif
32494#endif
32495
32496/*****************************************************************************
32497 * KnownFolderManager coclass
32498 */
32499
32500DEFINE_GUID(CLSID_KnownFolderManager, 0x4df0c730, 0xdf9d, 0x4ae3, 0x91,0x53, 0xaa,0x6b,0x82,0xe9,0x79,0x5a);
32501
32502#ifdef __cplusplus
32503class DECLSPEC_UUID("4df0c730-df9d-4ae3-9153-aa6b82e9795a") KnownFolderManager;
32504#ifdef __CRT_UUID_DECL
32505__CRT_UUID_DECL(KnownFolderManager, 0x4df0c730, 0xdf9d, 0x4ae3, 0x91,0x53, 0xaa,0x6b,0x82,0xe9,0x79,0x5a)
32506#endif
32507#endif
32508
32509/*****************************************************************************
32510 * FSCopyHandler coclass
32511 */
32512
32513DEFINE_GUID(CLSID_FSCopyHandler, 0xd197380a, 0x0a79, 0x4dc8, 0xa0,0x33, 0xed,0x88,0x2c,0x2f,0xa1,0x4b);
32514
32515#ifdef __cplusplus
32516class DECLSPEC_UUID("d197380a-0a79-4dc8-a033-ed882c2fa14b") FSCopyHandler;
32517#ifdef __CRT_UUID_DECL
32518__CRT_UUID_DECL(FSCopyHandler, 0xd197380a, 0x0a79, 0x4dc8, 0xa0,0x33, 0xed,0x88,0x2c,0x2f,0xa1,0x4b)
32519#endif
32520#endif
32521
32522/*****************************************************************************
32523 * SharingConfigurationManager coclass
32524 */
32525
32526DEFINE_GUID(CLSID_SharingConfigurationManager, 0x49f371e1, 0x8c5c, 0x4d9c, 0x9a,0x3b, 0x54,0xa6,0x82,0x7f,0x51,0x3c);
32527
32528#ifdef __cplusplus
32529class DECLSPEC_UUID("49f371e1-8c5c-4d9c-9a3b-54a6827f513c") SharingConfigurationManager;
32530#ifdef __CRT_UUID_DECL
32531__CRT_UUID_DECL(SharingConfigurationManager, 0x49f371e1, 0x8c5c, 0x4d9c, 0x9a,0x3b, 0x54,0xa6,0x82,0x7f,0x51,0x3c)
32532#endif
32533#endif
32534
32535/*****************************************************************************
32536 * PreviousVersions coclass
32537 */
32538
32539DEFINE_GUID(CLSID_PreviousVersions, 0x596ab062, 0xb4d2, 0x4215, 0x9f,0x74, 0xe9,0x10,0x9b,0x0a,0x81,0x53);
32540
32541#ifdef __cplusplus
32542class DECLSPEC_UUID("596ab062-b4d2-4215-9f74-e9109b0a8153") PreviousVersions;
32543#ifdef __CRT_UUID_DECL
32544__CRT_UUID_DECL(PreviousVersions, 0x596ab062, 0xb4d2, 0x4215, 0x9f,0x74, 0xe9,0x10,0x9b,0x0a,0x81,0x53)
32545#endif
32546#endif
32547
32548/*****************************************************************************
32549 * NetworkConnections coclass
32550 */
32551
32552DEFINE_GUID(CLSID_NetworkConnections, 0x7007acc7, 0x3202, 0x11d1, 0xaa,0xd2, 0x00,0x80,0x5f,0xc1,0x27,0x0e);
32553
32554#ifdef __cplusplus
32555class DECLSPEC_UUID("7007acc7-3202-11d1-aad2-00805fc1270e") NetworkConnections;
32556#ifdef __CRT_UUID_DECL
32557__CRT_UUID_DECL(NetworkConnections, 0x7007acc7, 0x3202, 0x11d1, 0xaa,0xd2, 0x00,0x80,0x5f,0xc1,0x27,0x0e)
32558#endif
32559#endif
32560
32561/*****************************************************************************
32562 * NamespaceTreeControl coclass
32563 */
32564
32565DEFINE_GUID(CLSID_NamespaceTreeControl, 0xae054212, 0x3535, 0x4430, 0x83,0xed, 0xd5,0x01,0xaa,0x66,0x80,0xe6);
32566
32567#ifdef __cplusplus
32568class DECLSPEC_UUID("ae054212-3535-4430-83ed-d501aa6680e6") NamespaceTreeControl;
32569#ifdef __CRT_UUID_DECL
32570__CRT_UUID_DECL(NamespaceTreeControl, 0xae054212, 0x3535, 0x4430, 0x83,0xed, 0xd5,0x01,0xaa,0x66,0x80,0xe6)
32571#endif
32572#endif
32573
32574/*****************************************************************************
32575 * IENamespaceTreeControl coclass
32576 */
32577
32578DEFINE_GUID(CLSID_IENamespaceTreeControl, 0xace52d03, 0xe5cd, 0x4b20, 0x82,0xff, 0xe7,0x1b,0x11,0xbe,0xae,0x1d);
32579
32580#ifdef __cplusplus
32581class DECLSPEC_UUID("ace52d03-e5cd-4b20-82ff-e71b11beae1d") IENamespaceTreeControl;
32582#ifdef __CRT_UUID_DECL
32583__CRT_UUID_DECL(IENamespaceTreeControl, 0xace52d03, 0xe5cd, 0x4b20, 0x82,0xff, 0xe7,0x1b,0x11,0xbe,0xae,0x1d)
32584#endif
32585#endif
32586
32587/*****************************************************************************
32588 * ScheduledTasks coclass
32589 */
32590
32591DEFINE_GUID(CLSID_ScheduledTasks, 0xd6277990, 0x4c6a, 0x11cf, 0x8d,0x87, 0x00,0xaa,0x00,0x60,0xf5,0xbf);
32592
32593#ifdef __cplusplus
32594class DECLSPEC_UUID("d6277990-4c6a-11cf-8d87-00aa0060f5bf") ScheduledTasks;
32595#ifdef __CRT_UUID_DECL
32596__CRT_UUID_DECL(ScheduledTasks, 0xd6277990, 0x4c6a, 0x11cf, 0x8d,0x87, 0x00,0xaa,0x00,0x60,0xf5,0xbf)
32597#endif
32598#endif
32599
32600/*****************************************************************************
32601 * ApplicationAssociationRegistration coclass
32602 */
32603
32604DEFINE_GUID(CLSID_ApplicationAssociationRegistration, 0x591209c7, 0x767b, 0x42b2, 0x9f,0xba, 0x44,0xee,0x46,0x15,0xf2,0xc7);
32605
32606#ifdef __cplusplus
32607class DECLSPEC_UUID("591209c7-767b-42b2-9fba-44ee4615f2c7") ApplicationAssociationRegistration;
32608#ifdef __CRT_UUID_DECL
32609__CRT_UUID_DECL(ApplicationAssociationRegistration, 0x591209c7, 0x767b, 0x42b2, 0x9f,0xba, 0x44,0xee,0x46,0x15,0xf2,0xc7)
32610#endif
32611#endif
32612
32613/*****************************************************************************
32614 * ApplicationAssociationRegistrationUI coclass
32615 */
32616
32617DEFINE_GUID(CLSID_ApplicationAssociationRegistrationUI, 0x1968106d, 0xf3b5, 0x44cf, 0x89,0x0e, 0x11,0x6f,0xcb,0x9e,0xce,0xf1);
32618
32619#ifdef __cplusplus
32620class DECLSPEC_UUID("1968106d-f3b5-44cf-890e-116fcb9ecef1") ApplicationAssociationRegistrationUI;
32621#ifdef __CRT_UUID_DECL
32622__CRT_UUID_DECL(ApplicationAssociationRegistrationUI, 0x1968106d, 0xf3b5, 0x44cf, 0x89,0x0e, 0x11,0x6f,0xcb,0x9e,0xce,0xf1)
32623#endif
32624#endif
32625
32626/*****************************************************************************
32627 * SearchFolderItemFactory coclass
32628 */
32629
32630DEFINE_GUID(CLSID_SearchFolderItemFactory, 0x14010e02, 0xbbbd, 0x41f0, 0x88,0xe3, 0xed,0xa3,0x71,0x21,0x65,0x84);
32631
32632#ifdef __cplusplus
32633class DECLSPEC_UUID("14010e02-bbbd-41f0-88e3-eda371216584") SearchFolderItemFactory;
32634#ifdef __CRT_UUID_DECL
32635__CRT_UUID_DECL(SearchFolderItemFactory, 0x14010e02, 0xbbbd, 0x41f0, 0x88,0xe3, 0xed,0xa3,0x71,0x21,0x65,0x84)
32636#endif
32637#endif
32638
32639/*****************************************************************************
32640 * OpenControlPanel coclass
32641 */
32642
32643DEFINE_GUID(CLSID_OpenControlPanel, 0x06622d85, 0x6856, 0x4460, 0x8d,0xe1, 0xa8,0x19,0x21,0xb4,0x1c,0x4b);
32644
32645#ifdef __cplusplus
32646class DECLSPEC_UUID("06622d85-6856-4460-8de1-a81921b41c4b") OpenControlPanel;
32647#ifdef __CRT_UUID_DECL
32648__CRT_UUID_DECL(OpenControlPanel, 0x06622d85, 0x6856, 0x4460, 0x8d,0xe1, 0xa8,0x19,0x21,0xb4,0x1c,0x4b)
32649#endif
32650#endif
32651
32652/*****************************************************************************
32653 * MailRecipient coclass
32654 */
32655
32656DEFINE_GUID(CLSID_MailRecipient, 0x9e56be60, 0xc50f, 0x11cf, 0x9a,0x2c, 0x00,0xa0,0xc9,0x0a,0x90,0xce);
32657
32658#ifdef __cplusplus
32659class DECLSPEC_UUID("9e56be60-c50f-11cf-9a2c-00a0c90a90ce") MailRecipient;
32660#ifdef __CRT_UUID_DECL
32661__CRT_UUID_DECL(MailRecipient, 0x9e56be60, 0xc50f, 0x11cf, 0x9a,0x2c, 0x00,0xa0,0xc9,0x0a,0x90,0xce)
32662#endif
32663#endif
32664
32665/*****************************************************************************
32666 * NetworkExplorerFolder coclass
32667 */
32668
32669DEFINE_GUID(CLSID_NetworkExplorerFolder, 0xf02c1a0d, 0xbe21, 0x4350, 0x88,0xb0, 0x73,0x67,0xfc,0x96,0xef,0x3c);
32670
32671#ifdef __cplusplus
32672class DECLSPEC_UUID("f02c1a0d-be21-4350-88b0-7367fc96ef3c") NetworkExplorerFolder;
32673#ifdef __CRT_UUID_DECL
32674__CRT_UUID_DECL(NetworkExplorerFolder, 0xf02c1a0d, 0xbe21, 0x4350, 0x88,0xb0, 0x73,0x67,0xfc,0x96,0xef,0x3c)
32675#endif
32676#endif
32677
32678/*****************************************************************************
32679 * DestinationList coclass
32680 */
32681
32682DEFINE_GUID(CLSID_DestinationList, 0x77f10cf0, 0x3db5, 0x4966, 0xb5,0x20, 0xb7,0xc5,0x4f,0xd3,0x5e,0xd6);
32683
32684#ifdef __cplusplus
32685class DECLSPEC_UUID("77f10cf0-3db5-4966-b520-b7c54fd35ed6") DestinationList;
32686#ifdef __CRT_UUID_DECL
32687__CRT_UUID_DECL(DestinationList, 0x77f10cf0, 0x3db5, 0x4966, 0xb5,0x20, 0xb7,0xc5,0x4f,0xd3,0x5e,0xd6)
32688#endif
32689#endif
32690
32691/*****************************************************************************
32692 * ApplicationDestinations coclass
32693 */
32694
32695DEFINE_GUID(CLSID_ApplicationDestinations, 0x86c14003, 0x4d6b, 0x4ef3, 0xa7,0xb4, 0x05,0x06,0x66,0x3b,0x2e,0x68);
32696
32697#ifdef __cplusplus
32698class DECLSPEC_UUID("86c14003-4d6b-4ef3-a7b4-0506663b2e68") ApplicationDestinations;
32699#ifdef __CRT_UUID_DECL
32700__CRT_UUID_DECL(ApplicationDestinations, 0x86c14003, 0x4d6b, 0x4ef3, 0xa7,0xb4, 0x05,0x06,0x66,0x3b,0x2e,0x68)
32701#endif
32702#endif
32703
32704/*****************************************************************************
32705 * ApplicationDocumentLists coclass
32706 */
32707
32708DEFINE_GUID(CLSID_ApplicationDocumentLists, 0x86bec222, 0x30f2, 0x47e0, 0x9f,0x25, 0x60,0xd1,0x1c,0xd7,0x5c,0x28);
32709
32710#ifdef __cplusplus
32711class DECLSPEC_UUID("86bec222-30f2-47e0-9f25-60d11cd75c28") ApplicationDocumentLists;
32712#ifdef __CRT_UUID_DECL
32713__CRT_UUID_DECL(ApplicationDocumentLists, 0x86bec222, 0x30f2, 0x47e0, 0x9f,0x25, 0x60,0xd1,0x1c,0xd7,0x5c,0x28)
32714#endif
32715#endif
32716
32717/*****************************************************************************
32718 * HomeGroup coclass
32719 */
32720
32721DEFINE_GUID(CLSID_HomeGroup, 0xde77ba04, 0x3c92, 0x4d11, 0xa1,0xa5, 0x42,0x35,0x2a,0x53,0xe0,0xe3);
32722
32723#ifdef __cplusplus
32724class DECLSPEC_UUID("de77ba04-3c92-4d11-a1a5-42352a53e0e3") HomeGroup;
32725#ifdef __CRT_UUID_DECL
32726__CRT_UUID_DECL(HomeGroup, 0xde77ba04, 0x3c92, 0x4d11, 0xa1,0xa5, 0x42,0x35,0x2a,0x53,0xe0,0xe3)
32727#endif
32728#endif
32729
32730/*****************************************************************************
32731 * ShellLibrary coclass
32732 */
32733
32734DEFINE_GUID(CLSID_ShellLibrary, 0xd9b3211d, 0xe57f, 0x4426, 0xaa,0xef, 0x30,0xa8,0x06,0xad,0xd3,0x97);
32735
32736#ifdef __cplusplus
32737class DECLSPEC_UUID("d9b3211d-e57f-4426-aaef-30a806add397") ShellLibrary;
32738#ifdef __CRT_UUID_DECL
32739__CRT_UUID_DECL(ShellLibrary, 0xd9b3211d, 0xe57f, 0x4426, 0xaa,0xef, 0x30,0xa8,0x06,0xad,0xd3,0x97)
32740#endif
32741#endif
32742
32743/*****************************************************************************
32744 * AppStartupLink coclass
32745 */
32746
32747DEFINE_GUID(CLSID_AppStartupLink, 0x273eb5e7, 0x88b0, 0x4843, 0xbf,0xef, 0xe2,0xc8,0x1d,0x43,0xaa,0xe5);
32748
32749#ifdef __cplusplus
32750class DECLSPEC_UUID("273eb5e7-88b0-4843-bfef-e2c81d43aae5") AppStartupLink;
32751#ifdef __CRT_UUID_DECL
32752__CRT_UUID_DECL(AppStartupLink, 0x273eb5e7, 0x88b0, 0x4843, 0xbf,0xef, 0xe2,0xc8,0x1d,0x43,0xaa,0xe5)
32753#endif
32754#endif
32755
32756/*****************************************************************************
32757 * EnumerableObjectCollection coclass
32758 */
32759
32760DEFINE_GUID(CLSID_EnumerableObjectCollection, 0x2d3468c1, 0x36a7, 0x43b6, 0xac,0x24, 0xd3,0xf0,0x2f,0xd9,0x60,0x7a);
32761
32762#ifdef __cplusplus
32763class DECLSPEC_UUID("2d3468c1-36a7-43b6-ac24-d3f02fd9607a") EnumerableObjectCollection;
32764#ifdef __CRT_UUID_DECL
32765__CRT_UUID_DECL(EnumerableObjectCollection, 0x2d3468c1, 0x36a7, 0x43b6, 0xac,0x24, 0xd3,0xf0,0x2f,0xd9,0x60,0x7a)
32766#endif
32767#endif
32768
32769/*****************************************************************************
32770 * DesktopGadget coclass
32771 */
32772
32773DEFINE_GUID(CLSID_DesktopGadget, 0x924ccc1b, 0x6562, 0x4c85, 0x86,0x57, 0xd1,0x77,0x92,0x52,0x22,0xb6);
32774
32775#ifdef __cplusplus
32776class DECLSPEC_UUID("924ccc1b-6562-4c85-8657-d177925222b6") DesktopGadget;
32777#ifdef __CRT_UUID_DECL
32778__CRT_UUID_DECL(DesktopGadget, 0x924ccc1b, 0x6562, 0x4c85, 0x86,0x57, 0xd1,0x77,0x92,0x52,0x22,0xb6)
32779#endif
32780#endif
32781
32782/*****************************************************************************
32783 * PlaybackManager coclass
32784 */
32785
32786DEFINE_GUID(CLSID_PlaybackManager, 0x29dfa654, 0xa97f, 0x47f0, 0xbf,0x26, 0x9e,0x41,0xfb,0x94,0x88,0xd9);
32787
32788#ifdef __cplusplus
32789class DECLSPEC_UUID("29dfa654-a97f-47f0-bf26-9e41fb9488d9") PlaybackManager;
32790#ifdef __CRT_UUID_DECL
32791__CRT_UUID_DECL(PlaybackManager, 0x29dfa654, 0xa97f, 0x47f0, 0xbf,0x26, 0x9e,0x41,0xfb,0x94,0x88,0xd9)
32792#endif
32793#endif
32794
32795/*****************************************************************************
32796 * AccessibilityDockingService coclass
32797 */
32798
32799DEFINE_GUID(CLSID_AccessibilityDockingService, 0x29ce1d46, 0xb481, 0x4aa0, 0xa0,0x8a, 0xd3,0xeb,0xc8,0xac,0xa4,0x02);
32800
32801#ifdef __cplusplus
32802class DECLSPEC_UUID("29ce1d46-b481-4aa0-a08a-d3ebc8aca402") AccessibilityDockingService;
32803#ifdef __CRT_UUID_DECL
32804__CRT_UUID_DECL(AccessibilityDockingService, 0x29ce1d46, 0xb481, 0x4aa0, 0xa0,0x8a, 0xd3,0xeb,0xc8,0xac,0xa4,0x02)
32805#endif
32806#endif
32807
32808/*****************************************************************************
32809 * FrameworkInputPane coclass
32810 */
32811
32812DEFINE_GUID(CLSID_FrameworkInputPane, 0xd5120aa3, 0x46ba, 0x44c5, 0x82,0x2d, 0xca,0x80,0x92,0xc1,0xfc,0x72);
32813
32814#ifdef __cplusplus
32815class DECLSPEC_UUID("d5120aa3-46ba-44c5-822d-ca8092c1fc72") FrameworkInputPane;
32816#ifdef __CRT_UUID_DECL
32817__CRT_UUID_DECL(FrameworkInputPane, 0xd5120aa3, 0x46ba, 0x44c5, 0x82,0x2d, 0xca,0x80,0x92,0xc1,0xfc,0x72)
32818#endif
32819#endif
32820
32821/*****************************************************************************
32822 * DefFolderMenu coclass
32823 */
32824
32825DEFINE_GUID(CLSID_DefFolderMenu, 0xc63382be, 0x7933, 0x48d0, 0x9a,0xc8, 0x85,0xfb,0x46,0xbe,0x2f,0xdd);
32826
32827#ifdef __cplusplus
32828class DECLSPEC_UUID("c63382be-7933-48d0-9ac8-85fb46be2fdd") DefFolderMenu;
32829#ifdef __CRT_UUID_DECL
32830__CRT_UUID_DECL(DefFolderMenu, 0xc63382be, 0x7933, 0x48d0, 0x9a,0xc8, 0x85,0xfb,0x46,0xbe,0x2f,0xdd)
32831#endif
32832#endif
32833
32834/*****************************************************************************
32835 * AppVisibility coclass
32836 */
32837
32838DEFINE_GUID(CLSID_AppVisibility, 0x7e5fe3d9, 0x985f, 0x4908, 0x91,0xf9, 0xee,0x19,0xf9,0xfd,0x15,0x14);
32839
32840#ifdef __cplusplus
32841class DECLSPEC_UUID("7e5fe3d9-985f-4908-91f9-ee19f9fd1514") AppVisibility;
32842#ifdef __CRT_UUID_DECL
32843__CRT_UUID_DECL(AppVisibility, 0x7e5fe3d9, 0x985f, 0x4908, 0x91,0xf9, 0xee,0x19,0xf9,0xfd,0x15,0x14)
32844#endif
32845#endif
32846
32847/*****************************************************************************
32848 * AppShellVerbHandler coclass
32849 */
32850
32851DEFINE_GUID(CLSID_AppShellVerbHandler, 0x4ed3a719, 0xcea8, 0x4bd9, 0x91,0x0d, 0xe2,0x52,0xf9,0x97,0xaf,0xc2);
32852
32853#ifdef __cplusplus
32854class DECLSPEC_UUID("4ed3a719-cea8-4bd9-910d-e252f997afc2") AppShellVerbHandler;
32855#ifdef __CRT_UUID_DECL
32856__CRT_UUID_DECL(AppShellVerbHandler, 0x4ed3a719, 0xcea8, 0x4bd9, 0x91,0x0d, 0xe2,0x52,0xf9,0x97,0xaf,0xc2)
32857#endif
32858#endif
32859
32860/*****************************************************************************
32861 * ExecuteUnknown coclass
32862 */
32863
32864DEFINE_GUID(CLSID_ExecuteUnknown, 0xe44e9428, 0xbdbc, 0x4987, 0xa0,0x99, 0x40,0xdc,0x8f,0xd2,0x55,0xe7);
32865
32866#ifdef __cplusplus
32867class DECLSPEC_UUID("e44e9428-bdbc-4987-a099-40dc8fd255e7") ExecuteUnknown;
32868#ifdef __CRT_UUID_DECL
32869__CRT_UUID_DECL(ExecuteUnknown, 0xe44e9428, 0xbdbc, 0x4987, 0xa0,0x99, 0x40,0xdc,0x8f,0xd2,0x55,0xe7)
32870#endif
32871#endif
32872
32873/*****************************************************************************
32874 * PackageDebugSettings coclass
32875 */
32876
32877DEFINE_GUID(CLSID_PackageDebugSettings, 0xb1aec16f, 0x2383, 0x4852, 0xb0,0xe9, 0x8f,0x0b,0x1d,0xc6,0x6b,0x4d);
32878
32879#ifdef __cplusplus
32880class DECLSPEC_UUID("b1aec16f-2383-4852-b0e9-8f0b1dc66b4d") PackageDebugSettings;
32881#ifdef __CRT_UUID_DECL
32882__CRT_UUID_DECL(PackageDebugSettings, 0xb1aec16f, 0x2383, 0x4852, 0xb0,0xe9, 0x8f,0x0b,0x1d,0xc6,0x6b,0x4d)
32883#endif
32884#endif
32885
32886/*****************************************************************************
32887 * ApplicationActivationManager coclass
32888 */
32889
32890DEFINE_GUID(CLSID_ApplicationActivationManager, 0x45ba127d, 0x10a8, 0x46ea, 0x8a,0xb7, 0x56,0xea,0x90,0x78,0x94,0x3c);
32891
32892#ifdef __cplusplus
32893class DECLSPEC_UUID("45ba127d-10a8-46ea-8ab7-56ea9078943c") ApplicationActivationManager;
32894#ifdef __CRT_UUID_DECL
32895__CRT_UUID_DECL(ApplicationActivationManager, 0x45ba127d, 0x10a8, 0x46ea, 0x8a,0xb7, 0x56,0xea,0x90,0x78,0x94,0x3c)
32896#endif
32897#endif
32898
32899/*****************************************************************************
32900 * ApplicationDesignModeSettings coclass
32901 */
32902
32903DEFINE_GUID(CLSID_ApplicationDesignModeSettings, 0x958a6fb5, 0xdcb2, 0x4faf, 0xaa,0xfd, 0x7f,0xb0,0x54,0xad,0x1a,0x3b);
32904
32905#ifdef __cplusplus
32906class DECLSPEC_UUID("958a6fb5-dcb2-4faf-aafd-7fb054ad1a3b") ApplicationDesignModeSettings;
32907#ifdef __CRT_UUID_DECL
32908__CRT_UUID_DECL(ApplicationDesignModeSettings, 0x958a6fb5, 0xdcb2, 0x4faf, 0xaa,0xfd, 0x7f,0xb0,0x54,0xad,0x1a,0x3b)
32909#endif
32910#endif
32911
32912/*****************************************************************************
32913 * ExecuteFolder coclass
32914 */
32915
32916DEFINE_GUID(CLSID_ExecuteFolder, 0x11dbb47c, 0xa525, 0x400b, 0x9e,0x80, 0xa5,0x46,0x15,0xa0,0x90,0xc0);
32917
32918#ifdef __cplusplus
32919class DECLSPEC_UUID("11dbb47c-a525-400b-9e80-a54615a090c0") ExecuteFolder;
32920#ifdef __CRT_UUID_DECL
32921__CRT_UUID_DECL(ExecuteFolder, 0x11dbb47c, 0xa525, 0x400b, 0x9e,0x80, 0xa5,0x46,0x15,0xa0,0x90,0xc0)
32922#endif
32923#endif
32924
32925/*****************************************************************************
32926 * VirtualDesktopManager coclass
32927 */
32928
32929DEFINE_GUID(CLSID_VirtualDesktopManager, 0xaa509086, 0x5ca9, 0x4c25, 0x8f,0x95, 0x58,0x9d,0x3c,0x07,0xb4,0x8a);
32930
32931#ifdef __cplusplus
32932class DECLSPEC_UUID("aa509086-5ca9-4c25-8f95-589d3c07b48a") VirtualDesktopManager;
32933#ifdef __CRT_UUID_DECL
32934__CRT_UUID_DECL(VirtualDesktopManager, 0xaa509086, 0x5ca9, 0x4c25, 0x8f,0x95, 0x58,0x9d,0x3c,0x07,0xb4,0x8a)
32935#endif
32936#endif
32937
32938#endif /* __ShellObjects_LIBRARY_DEFINED__ */
32939
32940#if NTDDI_VERSION >= NTDDI_VISTA
32941  SHSTDAPI SHGetTemporaryPropertyForItem(IShellItem *psi, REFPROPERTYKEY propkey, PROPVARIANT *ppropvar);
32942  SHSTDAPI SHSetTemporaryPropertyForItem(IShellItem *psi, REFPROPERTYKEY propkey, REFPROPVARIANT propvar);
32943#endif
32944
32945#if NTDDI_VERSION >= NTDDI_WIN7
32946#if _WIN32_IE >= _WIN32_IE_IE70
32947typedef enum LIBRARYMANAGEDIALOGOPTIONS {
32948    LMD_DEFAULT = 0x0,
32949    LMD_ALLOWUNINDEXABLENETWORKLOCATIONS = 0x1
32950} LIBRARYMANAGEDIALOGOPTIONS;
32951
32952DEFINE_ENUM_FLAG_OPERATORS(LIBRARYMANAGEDIALOGOPTIONS)
32953
32954  SHSTDAPI SHShowManageLibraryUI(IShellItem *psiLibrary, HWND hwndOwner, LPCWSTR pszTitle, LPCWSTR pszInstruction, LIBRARYMANAGEDIALOGOPTIONS lmdOptions);
32955  SHSTDAPI SHResolveLibrary(IShellItem *psiLibrary);
32956#if defined(__cplusplus) && !defined(CINTERFACE)
32957  __forceinline HRESULT SHCreateLibrary(REFIID riid, void **ppv) {
32958    return CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, riid, ppv);
32959  }
32960
32961  __forceinline HRESULT SHLoadLibraryFromItem(IShellItem *psiLibrary, DWORD grfMode, REFIID riid, void **ppv) {
32962    IShellLibrary *plib;
32963    HRESULT hr;
32964
32965    *ppv = NULL;
32966    hr = CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&plib));
32967    if (SUCCEEDED(hr)) {
32968      hr = plib->LoadLibraryFromItem(psiLibrary, grfMode);
32969      if (SUCCEEDED(hr))
32970        hr = plib->QueryInterface(riid, ppv);
32971      plib->Release();
32972    }
32973    return hr;
32974  }
32975
32976  __forceinline HRESULT SHLoadLibraryFromKnownFolder(REFKNOWNFOLDERID kfidLibrary, DWORD grfMode, REFIID riid, void **ppv) {
32977    IShellLibrary *plib;
32978    HRESULT hr;
32979
32980    *ppv = NULL;
32981    hr = CoCreateInstance(CLSID_ShellLibrary, NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&plib));
32982    if (SUCCEEDED(hr)) {
32983      hr = plib->LoadLibraryFromKnownFolder(kfidLibrary, grfMode);
32984      if (SUCCEEDED(hr))
32985        hr = plib->QueryInterface(riid, ppv);
32986      plib->Release();
32987    }
32988    return hr;
32989  }
32990
32991  __forceinline HRESULT SHLoadLibraryFromParsingName(PCWSTR pszParsingName, DWORD grfMode, REFIID riid, void **ppv) {
32992    IShellItem *psiLibrary;
32993    HRESULT hr;
32994
32995    *ppv = NULL;
32996    hr = SHCreateItemFromParsingName(pszParsingName, NULL, IID_PPV_ARGS(&psiLibrary));
32997    if (SUCCEEDED(hr)) {
32998      hr = SHLoadLibraryFromItem(psiLibrary, grfMode, riid, ppv);
32999      psiLibrary->Release();
33000    }
33001    return hr;
33002  }
33003
33004   __forceinline HRESULT SHAddFolderPathToLibrary(IShellLibrary *plib, PCWSTR pszFolderPath) {
33005    IShellItem *psiFolder;
33006    HRESULT hr = SHCreateItemFromParsingName(pszFolderPath, NULL, IID_PPV_ARGS(&psiFolder));
33007
33008    if (SUCCEEDED(hr)) {
33009      hr = plib->AddFolder(psiFolder);
33010      psiFolder->Release();
33011    }
33012    return hr;
33013  }
33014
33015  __forceinline HRESULT SHRemoveFolderPathFromLibrary(IShellLibrary *plib, PCWSTR pszFolderPath) {
33016    PIDLIST_ABSOLUTE pidlFolder = SHSimpleIDListFromPath(pszFolderPath);
33017    HRESULT hr = pidlFolder ? S_OK : E_INVALIDARG;
33018
33019    if (SUCCEEDED(hr)) {
33020      IShellItem *psiFolder;
33021
33022      hr = SHCreateItemFromIDList(pidlFolder, IID_PPV_ARGS(&psiFolder));
33023      if (SUCCEEDED(hr)) {
33024        hr = plib->RemoveFolder(psiFolder);
33025        psiFolder->Release();
33026      }
33027      CoTaskMemFree(pidlFolder);
33028    }
33029    return hr;
33030  }
33031
33032  __forceinline HRESULT SHResolveFolderPathInLibrary(IShellLibrary *plib, PCWSTR pszFolderPath, DWORD dwTimeout, PWSTR *ppszResolvedPath) {
33033    *ppszResolvedPath = NULL;
33034    PIDLIST_ABSOLUTE pidlFolder = SHSimpleIDListFromPath(pszFolderPath);
33035    HRESULT hr = pidlFolder ? S_OK : E_INVALIDARG;
33036    if (SUCCEEDED(hr)) {
33037      IShellItem *psiFolder;
33038
33039      hr = SHCreateItemFromIDList(pidlFolder, IID_PPV_ARGS(&psiFolder));
33040      if (SUCCEEDED(hr)) {
33041        IShellItem *psiResolved;
33042
33043        hr = plib->ResolveFolder(psiFolder, dwTimeout, IID_PPV_ARGS(&psiResolved));
33044        if (SUCCEEDED(hr)) {
33045          hr = psiResolved->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING, ppszResolvedPath);
33046          psiResolved->Release();
33047        }
33048        psiFolder->Release();
33049      }
33050      CoTaskMemFree(pidlFolder);
33051    }
33052    return hr;
33053  }
33054
33055  __forceinline HRESULT SHSaveLibraryInFolderPath(IShellLibrary *plib, PCWSTR pszFolderPath, PCWSTR pszLibraryName, LIBRARYSAVEFLAGS lsf, PWSTR *ppszSavedToPath) {
33056    IShellItem *psiFolder;
33057    HRESULT hr;
33058
33059    if (ppszSavedToPath)
33060      *ppszSavedToPath = NULL;
33061    hr = SHCreateItemFromParsingName(pszFolderPath, NULL, IID_PPV_ARGS(&psiFolder));
33062    if (SUCCEEDED(hr)) {
33063      IShellItem *psiSavedTo;
33064
33065      hr = plib->Save(psiFolder, pszLibraryName, lsf, &psiSavedTo);
33066      if (SUCCEEDED(hr)) {
33067        if (ppszSavedToPath)
33068          hr = psiSavedTo->GetDisplayName(SIGDN_DESKTOPABSOLUTEPARSING, ppszSavedToPath);
33069        psiSavedTo->Release();
33070      }
33071      psiFolder->Release();
33072    }
33073    return hr;
33074  }
33075#endif
33076#endif
33077#endif
33078
33079#if NTDDI_VERSION >= NTDDI_VISTA
33080/*****************************************************************************
33081 * IAssocHandlerInvoker interface
33082 */
33083#ifndef __IAssocHandlerInvoker_INTERFACE_DEFINED__
33084#define __IAssocHandlerInvoker_INTERFACE_DEFINED__
33085
33086DEFINE_GUID(IID_IAssocHandlerInvoker, 0x92218cab, 0xecaa, 0x4335, 0x81,0x33, 0x80,0x7f,0xd2,0x34,0xc2,0xee);
33087#if defined(__cplusplus) && !defined(CINTERFACE)
33088MIDL_INTERFACE("92218cab-ecaa-4335-8133-807fd234c2ee")
33089IAssocHandlerInvoker : public IUnknown
33090{
33091    virtual HRESULT STDMETHODCALLTYPE SupportsSelection(
33092        ) = 0;
33093
33094    virtual HRESULT STDMETHODCALLTYPE Invoke(
33095        ) = 0;
33096
33097};
33098#ifdef __CRT_UUID_DECL
33099__CRT_UUID_DECL(IAssocHandlerInvoker, 0x92218cab, 0xecaa, 0x4335, 0x81,0x33, 0x80,0x7f,0xd2,0x34,0xc2,0xee)
33100#endif
33101#else
33102typedef struct IAssocHandlerInvokerVtbl {
33103    BEGIN_INTERFACE
33104
33105    /*** IUnknown methods ***/
33106    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33107        IAssocHandlerInvoker *This,
33108        REFIID riid,
33109        void **ppvObject);
33110
33111    ULONG (STDMETHODCALLTYPE *AddRef)(
33112        IAssocHandlerInvoker *This);
33113
33114    ULONG (STDMETHODCALLTYPE *Release)(
33115        IAssocHandlerInvoker *This);
33116
33117    /*** IAssocHandlerInvoker methods ***/
33118    HRESULT (STDMETHODCALLTYPE *SupportsSelection)(
33119        IAssocHandlerInvoker *This);
33120
33121    HRESULT (STDMETHODCALLTYPE *Invoke)(
33122        IAssocHandlerInvoker *This);
33123
33124    END_INTERFACE
33125} IAssocHandlerInvokerVtbl;
33126
33127interface IAssocHandlerInvoker {
33128    CONST_VTBL IAssocHandlerInvokerVtbl* lpVtbl;
33129};
33130
33131#ifdef COBJMACROS
33132#ifndef WIDL_C_INLINE_WRAPPERS
33133/*** IUnknown methods ***/
33134#define IAssocHandlerInvoker_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33135#define IAssocHandlerInvoker_AddRef(This) (This)->lpVtbl->AddRef(This)
33136#define IAssocHandlerInvoker_Release(This) (This)->lpVtbl->Release(This)
33137/*** IAssocHandlerInvoker methods ***/
33138#define IAssocHandlerInvoker_SupportsSelection(This) (This)->lpVtbl->SupportsSelection(This)
33139#define IAssocHandlerInvoker_Invoke(This) (This)->lpVtbl->Invoke(This)
33140#else
33141/*** IUnknown methods ***/
33142static inline HRESULT IAssocHandlerInvoker_QueryInterface(IAssocHandlerInvoker* This,REFIID riid,void **ppvObject) {
33143    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33144}
33145static inline ULONG IAssocHandlerInvoker_AddRef(IAssocHandlerInvoker* This) {
33146    return This->lpVtbl->AddRef(This);
33147}
33148static inline ULONG IAssocHandlerInvoker_Release(IAssocHandlerInvoker* This) {
33149    return This->lpVtbl->Release(This);
33150}
33151/*** IAssocHandlerInvoker methods ***/
33152static inline HRESULT IAssocHandlerInvoker_SupportsSelection(IAssocHandlerInvoker* This) {
33153    return This->lpVtbl->SupportsSelection(This);
33154}
33155static inline HRESULT IAssocHandlerInvoker_Invoke(IAssocHandlerInvoker* This) {
33156    return This->lpVtbl->Invoke(This);
33157}
33158#endif
33159#endif
33160
33161#endif
33162
33163
33164#endif  /* __IAssocHandlerInvoker_INTERFACE_DEFINED__ */
33165
33166
33167/*****************************************************************************
33168 * IAssocHandler interface
33169 */
33170#ifndef __IAssocHandler_INTERFACE_DEFINED__
33171#define __IAssocHandler_INTERFACE_DEFINED__
33172
33173DEFINE_GUID(IID_IAssocHandler, 0xf04061ac, 0x1659, 0x4a3f, 0xa9,0x54, 0x77,0x5a,0xa5,0x7f,0xc0,0x83);
33174#if defined(__cplusplus) && !defined(CINTERFACE)
33175MIDL_INTERFACE("f04061ac-1659-4a3f-a954-775aa57fc083")
33176IAssocHandler : public IUnknown
33177{
33178    virtual HRESULT STDMETHODCALLTYPE GetName(
33179        LPWSTR *ppsz) = 0;
33180
33181    virtual HRESULT STDMETHODCALLTYPE GetUIName(
33182        LPWSTR *ppsz) = 0;
33183
33184    virtual HRESULT STDMETHODCALLTYPE GetIconLocation(
33185        LPWSTR *ppszPath,
33186        int *pIndex) = 0;
33187
33188    virtual HRESULT STDMETHODCALLTYPE IsRecommended(
33189        ) = 0;
33190
33191    virtual HRESULT STDMETHODCALLTYPE MakeDefault(
33192        LPCWSTR pszDescription) = 0;
33193
33194    virtual HRESULT STDMETHODCALLTYPE Invoke(
33195        IDataObject *pdo) = 0;
33196
33197    virtual HRESULT STDMETHODCALLTYPE CreateInvoker(
33198        IDataObject *pdo,
33199        IAssocHandlerInvoker **ppInvoker) = 0;
33200
33201};
33202#ifdef __CRT_UUID_DECL
33203__CRT_UUID_DECL(IAssocHandler, 0xf04061ac, 0x1659, 0x4a3f, 0xa9,0x54, 0x77,0x5a,0xa5,0x7f,0xc0,0x83)
33204#endif
33205#else
33206typedef struct IAssocHandlerVtbl {
33207    BEGIN_INTERFACE
33208
33209    /*** IUnknown methods ***/
33210    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33211        IAssocHandler *This,
33212        REFIID riid,
33213        void **ppvObject);
33214
33215    ULONG (STDMETHODCALLTYPE *AddRef)(
33216        IAssocHandler *This);
33217
33218    ULONG (STDMETHODCALLTYPE *Release)(
33219        IAssocHandler *This);
33220
33221    /*** IAssocHandler methods ***/
33222    HRESULT (STDMETHODCALLTYPE *GetName)(
33223        IAssocHandler *This,
33224        LPWSTR *ppsz);
33225
33226    HRESULT (STDMETHODCALLTYPE *GetUIName)(
33227        IAssocHandler *This,
33228        LPWSTR *ppsz);
33229
33230    HRESULT (STDMETHODCALLTYPE *GetIconLocation)(
33231        IAssocHandler *This,
33232        LPWSTR *ppszPath,
33233        int *pIndex);
33234
33235    HRESULT (STDMETHODCALLTYPE *IsRecommended)(
33236        IAssocHandler *This);
33237
33238    HRESULT (STDMETHODCALLTYPE *MakeDefault)(
33239        IAssocHandler *This,
33240        LPCWSTR pszDescription);
33241
33242    HRESULT (STDMETHODCALLTYPE *Invoke)(
33243        IAssocHandler *This,
33244        IDataObject *pdo);
33245
33246    HRESULT (STDMETHODCALLTYPE *CreateInvoker)(
33247        IAssocHandler *This,
33248        IDataObject *pdo,
33249        IAssocHandlerInvoker **ppInvoker);
33250
33251    END_INTERFACE
33252} IAssocHandlerVtbl;
33253
33254interface IAssocHandler {
33255    CONST_VTBL IAssocHandlerVtbl* lpVtbl;
33256};
33257
33258#ifdef COBJMACROS
33259#ifndef WIDL_C_INLINE_WRAPPERS
33260/*** IUnknown methods ***/
33261#define IAssocHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33262#define IAssocHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
33263#define IAssocHandler_Release(This) (This)->lpVtbl->Release(This)
33264/*** IAssocHandler methods ***/
33265#define IAssocHandler_GetName(This,ppsz) (This)->lpVtbl->GetName(This,ppsz)
33266#define IAssocHandler_GetUIName(This,ppsz) (This)->lpVtbl->GetUIName(This,ppsz)
33267#define IAssocHandler_GetIconLocation(This,ppszPath,pIndex) (This)->lpVtbl->GetIconLocation(This,ppszPath,pIndex)
33268#define IAssocHandler_IsRecommended(This) (This)->lpVtbl->IsRecommended(This)
33269#define IAssocHandler_MakeDefault(This,pszDescription) (This)->lpVtbl->MakeDefault(This,pszDescription)
33270#define IAssocHandler_Invoke(This,pdo) (This)->lpVtbl->Invoke(This,pdo)
33271#define IAssocHandler_CreateInvoker(This,pdo,ppInvoker) (This)->lpVtbl->CreateInvoker(This,pdo,ppInvoker)
33272#else
33273/*** IUnknown methods ***/
33274static inline HRESULT IAssocHandler_QueryInterface(IAssocHandler* This,REFIID riid,void **ppvObject) {
33275    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33276}
33277static inline ULONG IAssocHandler_AddRef(IAssocHandler* This) {
33278    return This->lpVtbl->AddRef(This);
33279}
33280static inline ULONG IAssocHandler_Release(IAssocHandler* This) {
33281    return This->lpVtbl->Release(This);
33282}
33283/*** IAssocHandler methods ***/
33284static inline HRESULT IAssocHandler_GetName(IAssocHandler* This,LPWSTR *ppsz) {
33285    return This->lpVtbl->GetName(This,ppsz);
33286}
33287static inline HRESULT IAssocHandler_GetUIName(IAssocHandler* This,LPWSTR *ppsz) {
33288    return This->lpVtbl->GetUIName(This,ppsz);
33289}
33290static inline HRESULT IAssocHandler_GetIconLocation(IAssocHandler* This,LPWSTR *ppszPath,int *pIndex) {
33291    return This->lpVtbl->GetIconLocation(This,ppszPath,pIndex);
33292}
33293static inline HRESULT IAssocHandler_IsRecommended(IAssocHandler* This) {
33294    return This->lpVtbl->IsRecommended(This);
33295}
33296static inline HRESULT IAssocHandler_MakeDefault(IAssocHandler* This,LPCWSTR pszDescription) {
33297    return This->lpVtbl->MakeDefault(This,pszDescription);
33298}
33299static inline HRESULT IAssocHandler_Invoke(IAssocHandler* This,IDataObject *pdo) {
33300    return This->lpVtbl->Invoke(This,pdo);
33301}
33302static inline HRESULT IAssocHandler_CreateInvoker(IAssocHandler* This,IDataObject *pdo,IAssocHandlerInvoker **ppInvoker) {
33303    return This->lpVtbl->CreateInvoker(This,pdo,ppInvoker);
33304}
33305#endif
33306#endif
33307
33308#endif
33309
33310
33311#endif  /* __IAssocHandler_INTERFACE_DEFINED__ */
33312
33313
33314/*****************************************************************************
33315 * IEnumAssocHandlers interface
33316 */
33317#ifndef __IEnumAssocHandlers_INTERFACE_DEFINED__
33318#define __IEnumAssocHandlers_INTERFACE_DEFINED__
33319
33320DEFINE_GUID(IID_IEnumAssocHandlers, 0x973810ae, 0x9599, 0x4b88, 0x9e,0x4d, 0x6e,0xe9,0x8c,0x95,0x52,0xda);
33321#if defined(__cplusplus) && !defined(CINTERFACE)
33322MIDL_INTERFACE("973810ae-9599-4b88-9e4d-6ee98c9552da")
33323IEnumAssocHandlers : public IUnknown
33324{
33325    virtual HRESULT STDMETHODCALLTYPE Next(
33326        ULONG celt,
33327        IAssocHandler **rgelt,
33328        ULONG *pceltFetched) = 0;
33329
33330};
33331#ifdef __CRT_UUID_DECL
33332__CRT_UUID_DECL(IEnumAssocHandlers, 0x973810ae, 0x9599, 0x4b88, 0x9e,0x4d, 0x6e,0xe9,0x8c,0x95,0x52,0xda)
33333#endif
33334#else
33335typedef struct IEnumAssocHandlersVtbl {
33336    BEGIN_INTERFACE
33337
33338    /*** IUnknown methods ***/
33339    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33340        IEnumAssocHandlers *This,
33341        REFIID riid,
33342        void **ppvObject);
33343
33344    ULONG (STDMETHODCALLTYPE *AddRef)(
33345        IEnumAssocHandlers *This);
33346
33347    ULONG (STDMETHODCALLTYPE *Release)(
33348        IEnumAssocHandlers *This);
33349
33350    /*** IEnumAssocHandlers methods ***/
33351    HRESULT (STDMETHODCALLTYPE *Next)(
33352        IEnumAssocHandlers *This,
33353        ULONG celt,
33354        IAssocHandler **rgelt,
33355        ULONG *pceltFetched);
33356
33357    END_INTERFACE
33358} IEnumAssocHandlersVtbl;
33359
33360interface IEnumAssocHandlers {
33361    CONST_VTBL IEnumAssocHandlersVtbl* lpVtbl;
33362};
33363
33364#ifdef COBJMACROS
33365#ifndef WIDL_C_INLINE_WRAPPERS
33366/*** IUnknown methods ***/
33367#define IEnumAssocHandlers_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33368#define IEnumAssocHandlers_AddRef(This) (This)->lpVtbl->AddRef(This)
33369#define IEnumAssocHandlers_Release(This) (This)->lpVtbl->Release(This)
33370/*** IEnumAssocHandlers methods ***/
33371#define IEnumAssocHandlers_Next(This,celt,rgelt,pceltFetched) (This)->lpVtbl->Next(This,celt,rgelt,pceltFetched)
33372#else
33373/*** IUnknown methods ***/
33374static inline HRESULT IEnumAssocHandlers_QueryInterface(IEnumAssocHandlers* This,REFIID riid,void **ppvObject) {
33375    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33376}
33377static inline ULONG IEnumAssocHandlers_AddRef(IEnumAssocHandlers* This) {
33378    return This->lpVtbl->AddRef(This);
33379}
33380static inline ULONG IEnumAssocHandlers_Release(IEnumAssocHandlers* This) {
33381    return This->lpVtbl->Release(This);
33382}
33383/*** IEnumAssocHandlers methods ***/
33384static inline HRESULT IEnumAssocHandlers_Next(IEnumAssocHandlers* This,ULONG celt,IAssocHandler **rgelt,ULONG *pceltFetched) {
33385    return This->lpVtbl->Next(This,celt,rgelt,pceltFetched);
33386}
33387#endif
33388#endif
33389
33390#endif
33391
33392
33393#endif  /* __IEnumAssocHandlers_INTERFACE_DEFINED__ */
33394
33395
33396typedef enum ASSOC_FILTER {
33397    ASSOC_FILTER_NONE = 0x0,
33398    ASSOC_FILTER_RECOMMENDED = 0x1
33399} ASSOC_FILTER;
33400
33401DEFINE_ENUM_FLAG_OPERATORS(ASSOC_FILTER)
33402
33403  SHSTDAPI SHAssocEnumHandlers(PCWSTR pszExtra, ASSOC_FILTER afFilter, IEnumAssocHandlers **ppEnumHandler);
33404#endif
33405
33406#if NTDDI_VERSION >= NTDDI_WIN7
33407SHSTDAPI SHAssocEnumHandlersForProtocolByApplication(PCWSTR protocol, REFIID riid, void **enumHandlers);
33408#endif
33409
33410#if NTDDI_VERSION >= NTDDI_WIN8
33411/*****************************************************************************
33412 * IDataObjectProvider interface
33413 */
33414#ifndef __IDataObjectProvider_INTERFACE_DEFINED__
33415#define __IDataObjectProvider_INTERFACE_DEFINED__
33416
33417DEFINE_GUID(IID_IDataObjectProvider, 0x3d25f6d6, 0x4b2a, 0x433c, 0x91,0x84, 0x7c,0x33,0xad,0x35,0xd0,0x01);
33418#if defined(__cplusplus) && !defined(CINTERFACE)
33419MIDL_INTERFACE("3d25f6d6-4b2a-433c-9184-7c33ad35d001")
33420IDataObjectProvider : public IUnknown
33421{
33422    virtual HRESULT STDMETHODCALLTYPE GetDataObject(
33423        IDataObject **dataObject) = 0;
33424
33425    virtual HRESULT STDMETHODCALLTYPE SetDataObject(
33426        IDataObject *dataObject) = 0;
33427
33428};
33429#ifdef __CRT_UUID_DECL
33430__CRT_UUID_DECL(IDataObjectProvider, 0x3d25f6d6, 0x4b2a, 0x433c, 0x91,0x84, 0x7c,0x33,0xad,0x35,0xd0,0x01)
33431#endif
33432#else
33433typedef struct IDataObjectProviderVtbl {
33434    BEGIN_INTERFACE
33435
33436    /*** IUnknown methods ***/
33437    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33438        IDataObjectProvider *This,
33439        REFIID riid,
33440        void **ppvObject);
33441
33442    ULONG (STDMETHODCALLTYPE *AddRef)(
33443        IDataObjectProvider *This);
33444
33445    ULONG (STDMETHODCALLTYPE *Release)(
33446        IDataObjectProvider *This);
33447
33448    /*** IDataObjectProvider methods ***/
33449    HRESULT (STDMETHODCALLTYPE *GetDataObject)(
33450        IDataObjectProvider *This,
33451        IDataObject **dataObject);
33452
33453    HRESULT (STDMETHODCALLTYPE *SetDataObject)(
33454        IDataObjectProvider *This,
33455        IDataObject *dataObject);
33456
33457    END_INTERFACE
33458} IDataObjectProviderVtbl;
33459
33460interface IDataObjectProvider {
33461    CONST_VTBL IDataObjectProviderVtbl* lpVtbl;
33462};
33463
33464#ifdef COBJMACROS
33465#ifndef WIDL_C_INLINE_WRAPPERS
33466/*** IUnknown methods ***/
33467#define IDataObjectProvider_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33468#define IDataObjectProvider_AddRef(This) (This)->lpVtbl->AddRef(This)
33469#define IDataObjectProvider_Release(This) (This)->lpVtbl->Release(This)
33470/*** IDataObjectProvider methods ***/
33471#define IDataObjectProvider_GetDataObject(This,dataObject) (This)->lpVtbl->GetDataObject(This,dataObject)
33472#define IDataObjectProvider_SetDataObject(This,dataObject) (This)->lpVtbl->SetDataObject(This,dataObject)
33473#else
33474/*** IUnknown methods ***/
33475static inline HRESULT IDataObjectProvider_QueryInterface(IDataObjectProvider* This,REFIID riid,void **ppvObject) {
33476    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33477}
33478static inline ULONG IDataObjectProvider_AddRef(IDataObjectProvider* This) {
33479    return This->lpVtbl->AddRef(This);
33480}
33481static inline ULONG IDataObjectProvider_Release(IDataObjectProvider* This) {
33482    return This->lpVtbl->Release(This);
33483}
33484/*** IDataObjectProvider methods ***/
33485static inline HRESULT IDataObjectProvider_GetDataObject(IDataObjectProvider* This,IDataObject **dataObject) {
33486    return This->lpVtbl->GetDataObject(This,dataObject);
33487}
33488static inline HRESULT IDataObjectProvider_SetDataObject(IDataObjectProvider* This,IDataObject *dataObject) {
33489    return This->lpVtbl->SetDataObject(This,dataObject);
33490}
33491#endif
33492#endif
33493
33494#endif
33495
33496
33497#endif  /* __IDataObjectProvider_INTERFACE_DEFINED__ */
33498
33499
33500/*****************************************************************************
33501 * IDataTransferManagerInterop interface
33502 */
33503#ifndef __IDataTransferManagerInterop_INTERFACE_DEFINED__
33504#define __IDataTransferManagerInterop_INTERFACE_DEFINED__
33505
33506DEFINE_GUID(IID_IDataTransferManagerInterop, 0x3a3dcd6c, 0x3eab, 0x43dc, 0xbc,0xde, 0x45,0x67,0x1c,0xe8,0x00,0xc8);
33507#if defined(__cplusplus) && !defined(CINTERFACE)
33508MIDL_INTERFACE("3a3dcd6c-3eab-43dc-bcde-45671ce800c8")
33509IDataTransferManagerInterop : public IUnknown
33510{
33511    virtual HRESULT STDMETHODCALLTYPE GetForWindow(
33512        HWND appWindow,
33513        REFIID riid,
33514        void **dataTransferManager) = 0;
33515
33516    virtual HRESULT STDMETHODCALLTYPE ShowShareUIForWindow(
33517        HWND appWindow) = 0;
33518
33519};
33520#ifdef __CRT_UUID_DECL
33521__CRT_UUID_DECL(IDataTransferManagerInterop, 0x3a3dcd6c, 0x3eab, 0x43dc, 0xbc,0xde, 0x45,0x67,0x1c,0xe8,0x00,0xc8)
33522#endif
33523#else
33524typedef struct IDataTransferManagerInteropVtbl {
33525    BEGIN_INTERFACE
33526
33527    /*** IUnknown methods ***/
33528    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33529        IDataTransferManagerInterop *This,
33530        REFIID riid,
33531        void **ppvObject);
33532
33533    ULONG (STDMETHODCALLTYPE *AddRef)(
33534        IDataTransferManagerInterop *This);
33535
33536    ULONG (STDMETHODCALLTYPE *Release)(
33537        IDataTransferManagerInterop *This);
33538
33539    /*** IDataTransferManagerInterop methods ***/
33540    HRESULT (STDMETHODCALLTYPE *GetForWindow)(
33541        IDataTransferManagerInterop *This,
33542        HWND appWindow,
33543        REFIID riid,
33544        void **dataTransferManager);
33545
33546    HRESULT (STDMETHODCALLTYPE *ShowShareUIForWindow)(
33547        IDataTransferManagerInterop *This,
33548        HWND appWindow);
33549
33550    END_INTERFACE
33551} IDataTransferManagerInteropVtbl;
33552
33553interface IDataTransferManagerInterop {
33554    CONST_VTBL IDataTransferManagerInteropVtbl* lpVtbl;
33555};
33556
33557#ifdef COBJMACROS
33558#ifndef WIDL_C_INLINE_WRAPPERS
33559/*** IUnknown methods ***/
33560#define IDataTransferManagerInterop_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33561#define IDataTransferManagerInterop_AddRef(This) (This)->lpVtbl->AddRef(This)
33562#define IDataTransferManagerInterop_Release(This) (This)->lpVtbl->Release(This)
33563/*** IDataTransferManagerInterop methods ***/
33564#define IDataTransferManagerInterop_GetForWindow(This,appWindow,riid,dataTransferManager) (This)->lpVtbl->GetForWindow(This,appWindow,riid,dataTransferManager)
33565#define IDataTransferManagerInterop_ShowShareUIForWindow(This,appWindow) (This)->lpVtbl->ShowShareUIForWindow(This,appWindow)
33566#else
33567/*** IUnknown methods ***/
33568static inline HRESULT IDataTransferManagerInterop_QueryInterface(IDataTransferManagerInterop* This,REFIID riid,void **ppvObject) {
33569    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33570}
33571static inline ULONG IDataTransferManagerInterop_AddRef(IDataTransferManagerInterop* This) {
33572    return This->lpVtbl->AddRef(This);
33573}
33574static inline ULONG IDataTransferManagerInterop_Release(IDataTransferManagerInterop* This) {
33575    return This->lpVtbl->Release(This);
33576}
33577/*** IDataTransferManagerInterop methods ***/
33578static inline HRESULT IDataTransferManagerInterop_GetForWindow(IDataTransferManagerInterop* This,HWND appWindow,REFIID riid,void **dataTransferManager) {
33579    return This->lpVtbl->GetForWindow(This,appWindow,riid,dataTransferManager);
33580}
33581static inline HRESULT IDataTransferManagerInterop_ShowShareUIForWindow(IDataTransferManagerInterop* This,HWND appWindow) {
33582    return This->lpVtbl->ShowShareUIForWindow(This,appWindow);
33583}
33584#endif
33585#endif
33586
33587#endif
33588
33589
33590#endif  /* __IDataTransferManagerInterop_INTERFACE_DEFINED__ */
33591
33592
33593/*****************************************************************************
33594 * IFrameworkInputPaneHandler interface
33595 */
33596#ifndef __IFrameworkInputPaneHandler_INTERFACE_DEFINED__
33597#define __IFrameworkInputPaneHandler_INTERFACE_DEFINED__
33598
33599DEFINE_GUID(IID_IFrameworkInputPaneHandler, 0x226c537b, 0x1e76, 0x4d9e, 0xa7,0x60, 0x33,0xdb,0x29,0x92,0x2f,0x18);
33600#if defined(__cplusplus) && !defined(CINTERFACE)
33601MIDL_INTERFACE("226c537b-1e76-4d9e-a760-33db29922f18")
33602IFrameworkInputPaneHandler : public IUnknown
33603{
33604    virtual HRESULT STDMETHODCALLTYPE Showing(
33605        RECT *prcInputPaneScreenLocation,
33606        WINBOOL fEnsureFocusedElementInView) = 0;
33607
33608    virtual HRESULT STDMETHODCALLTYPE Hiding(
33609        WINBOOL fEnsureFocusedElementInView) = 0;
33610
33611};
33612#ifdef __CRT_UUID_DECL
33613__CRT_UUID_DECL(IFrameworkInputPaneHandler, 0x226c537b, 0x1e76, 0x4d9e, 0xa7,0x60, 0x33,0xdb,0x29,0x92,0x2f,0x18)
33614#endif
33615#else
33616typedef struct IFrameworkInputPaneHandlerVtbl {
33617    BEGIN_INTERFACE
33618
33619    /*** IUnknown methods ***/
33620    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33621        IFrameworkInputPaneHandler *This,
33622        REFIID riid,
33623        void **ppvObject);
33624
33625    ULONG (STDMETHODCALLTYPE *AddRef)(
33626        IFrameworkInputPaneHandler *This);
33627
33628    ULONG (STDMETHODCALLTYPE *Release)(
33629        IFrameworkInputPaneHandler *This);
33630
33631    /*** IFrameworkInputPaneHandler methods ***/
33632    HRESULT (STDMETHODCALLTYPE *Showing)(
33633        IFrameworkInputPaneHandler *This,
33634        RECT *prcInputPaneScreenLocation,
33635        WINBOOL fEnsureFocusedElementInView);
33636
33637    HRESULT (STDMETHODCALLTYPE *Hiding)(
33638        IFrameworkInputPaneHandler *This,
33639        WINBOOL fEnsureFocusedElementInView);
33640
33641    END_INTERFACE
33642} IFrameworkInputPaneHandlerVtbl;
33643
33644interface IFrameworkInputPaneHandler {
33645    CONST_VTBL IFrameworkInputPaneHandlerVtbl* lpVtbl;
33646};
33647
33648#ifdef COBJMACROS
33649#ifndef WIDL_C_INLINE_WRAPPERS
33650/*** IUnknown methods ***/
33651#define IFrameworkInputPaneHandler_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33652#define IFrameworkInputPaneHandler_AddRef(This) (This)->lpVtbl->AddRef(This)
33653#define IFrameworkInputPaneHandler_Release(This) (This)->lpVtbl->Release(This)
33654/*** IFrameworkInputPaneHandler methods ***/
33655#define IFrameworkInputPaneHandler_Showing(This,prcInputPaneScreenLocation,fEnsureFocusedElementInView) (This)->lpVtbl->Showing(This,prcInputPaneScreenLocation,fEnsureFocusedElementInView)
33656#define IFrameworkInputPaneHandler_Hiding(This,fEnsureFocusedElementInView) (This)->lpVtbl->Hiding(This,fEnsureFocusedElementInView)
33657#else
33658/*** IUnknown methods ***/
33659static inline HRESULT IFrameworkInputPaneHandler_QueryInterface(IFrameworkInputPaneHandler* This,REFIID riid,void **ppvObject) {
33660    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33661}
33662static inline ULONG IFrameworkInputPaneHandler_AddRef(IFrameworkInputPaneHandler* This) {
33663    return This->lpVtbl->AddRef(This);
33664}
33665static inline ULONG IFrameworkInputPaneHandler_Release(IFrameworkInputPaneHandler* This) {
33666    return This->lpVtbl->Release(This);
33667}
33668/*** IFrameworkInputPaneHandler methods ***/
33669static inline HRESULT IFrameworkInputPaneHandler_Showing(IFrameworkInputPaneHandler* This,RECT *prcInputPaneScreenLocation,WINBOOL fEnsureFocusedElementInView) {
33670    return This->lpVtbl->Showing(This,prcInputPaneScreenLocation,fEnsureFocusedElementInView);
33671}
33672static inline HRESULT IFrameworkInputPaneHandler_Hiding(IFrameworkInputPaneHandler* This,WINBOOL fEnsureFocusedElementInView) {
33673    return This->lpVtbl->Hiding(This,fEnsureFocusedElementInView);
33674}
33675#endif
33676#endif
33677
33678#endif
33679
33680
33681#endif  /* __IFrameworkInputPaneHandler_INTERFACE_DEFINED__ */
33682
33683
33684/*****************************************************************************
33685 * IFrameworkInputPane interface
33686 */
33687#ifndef __IFrameworkInputPane_INTERFACE_DEFINED__
33688#define __IFrameworkInputPane_INTERFACE_DEFINED__
33689
33690DEFINE_GUID(IID_IFrameworkInputPane, 0x5752238b, 0x24f0, 0x495a, 0x82,0xf1, 0x2f,0xd5,0x93,0x05,0x67,0x96);
33691#if defined(__cplusplus) && !defined(CINTERFACE)
33692MIDL_INTERFACE("5752238b-24f0-495a-82f1-2fd593056796")
33693IFrameworkInputPane : public IUnknown
33694{
33695    virtual HRESULT STDMETHODCALLTYPE Advise(
33696        IUnknown *pWindow,
33697        IFrameworkInputPaneHandler *pHandler,
33698        DWORD *pdwCookie) = 0;
33699
33700    virtual HRESULT STDMETHODCALLTYPE AdviseWithHWND(
33701        HWND hwnd,
33702        IFrameworkInputPaneHandler *pHandler,
33703        DWORD *pdwCookie) = 0;
33704
33705    virtual HRESULT STDMETHODCALLTYPE Unadvise(
33706        DWORD dwCookie) = 0;
33707
33708    virtual HRESULT STDMETHODCALLTYPE Location(
33709        RECT *prcInputPaneScreenLocation) = 0;
33710
33711};
33712#ifdef __CRT_UUID_DECL
33713__CRT_UUID_DECL(IFrameworkInputPane, 0x5752238b, 0x24f0, 0x495a, 0x82,0xf1, 0x2f,0xd5,0x93,0x05,0x67,0x96)
33714#endif
33715#else
33716typedef struct IFrameworkInputPaneVtbl {
33717    BEGIN_INTERFACE
33718
33719    /*** IUnknown methods ***/
33720    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33721        IFrameworkInputPane *This,
33722        REFIID riid,
33723        void **ppvObject);
33724
33725    ULONG (STDMETHODCALLTYPE *AddRef)(
33726        IFrameworkInputPane *This);
33727
33728    ULONG (STDMETHODCALLTYPE *Release)(
33729        IFrameworkInputPane *This);
33730
33731    /*** IFrameworkInputPane methods ***/
33732    HRESULT (STDMETHODCALLTYPE *Advise)(
33733        IFrameworkInputPane *This,
33734        IUnknown *pWindow,
33735        IFrameworkInputPaneHandler *pHandler,
33736        DWORD *pdwCookie);
33737
33738    HRESULT (STDMETHODCALLTYPE *AdviseWithHWND)(
33739        IFrameworkInputPane *This,
33740        HWND hwnd,
33741        IFrameworkInputPaneHandler *pHandler,
33742        DWORD *pdwCookie);
33743
33744    HRESULT (STDMETHODCALLTYPE *Unadvise)(
33745        IFrameworkInputPane *This,
33746        DWORD dwCookie);
33747
33748    HRESULT (STDMETHODCALLTYPE *Location)(
33749        IFrameworkInputPane *This,
33750        RECT *prcInputPaneScreenLocation);
33751
33752    END_INTERFACE
33753} IFrameworkInputPaneVtbl;
33754
33755interface IFrameworkInputPane {
33756    CONST_VTBL IFrameworkInputPaneVtbl* lpVtbl;
33757};
33758
33759#ifdef COBJMACROS
33760#ifndef WIDL_C_INLINE_WRAPPERS
33761/*** IUnknown methods ***/
33762#define IFrameworkInputPane_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33763#define IFrameworkInputPane_AddRef(This) (This)->lpVtbl->AddRef(This)
33764#define IFrameworkInputPane_Release(This) (This)->lpVtbl->Release(This)
33765/*** IFrameworkInputPane methods ***/
33766#define IFrameworkInputPane_Advise(This,pWindow,pHandler,pdwCookie) (This)->lpVtbl->Advise(This,pWindow,pHandler,pdwCookie)
33767#define IFrameworkInputPane_AdviseWithHWND(This,hwnd,pHandler,pdwCookie) (This)->lpVtbl->AdviseWithHWND(This,hwnd,pHandler,pdwCookie)
33768#define IFrameworkInputPane_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
33769#define IFrameworkInputPane_Location(This,prcInputPaneScreenLocation) (This)->lpVtbl->Location(This,prcInputPaneScreenLocation)
33770#else
33771/*** IUnknown methods ***/
33772static inline HRESULT IFrameworkInputPane_QueryInterface(IFrameworkInputPane* This,REFIID riid,void **ppvObject) {
33773    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33774}
33775static inline ULONG IFrameworkInputPane_AddRef(IFrameworkInputPane* This) {
33776    return This->lpVtbl->AddRef(This);
33777}
33778static inline ULONG IFrameworkInputPane_Release(IFrameworkInputPane* This) {
33779    return This->lpVtbl->Release(This);
33780}
33781/*** IFrameworkInputPane methods ***/
33782static inline HRESULT IFrameworkInputPane_Advise(IFrameworkInputPane* This,IUnknown *pWindow,IFrameworkInputPaneHandler *pHandler,DWORD *pdwCookie) {
33783    return This->lpVtbl->Advise(This,pWindow,pHandler,pdwCookie);
33784}
33785static inline HRESULT IFrameworkInputPane_AdviseWithHWND(IFrameworkInputPane* This,HWND hwnd,IFrameworkInputPaneHandler *pHandler,DWORD *pdwCookie) {
33786    return This->lpVtbl->AdviseWithHWND(This,hwnd,pHandler,pdwCookie);
33787}
33788static inline HRESULT IFrameworkInputPane_Unadvise(IFrameworkInputPane* This,DWORD dwCookie) {
33789    return This->lpVtbl->Unadvise(This,dwCookie);
33790}
33791static inline HRESULT IFrameworkInputPane_Location(IFrameworkInputPane* This,RECT *prcInputPaneScreenLocation) {
33792    return This->lpVtbl->Location(This,prcInputPaneScreenLocation);
33793}
33794#endif
33795#endif
33796
33797#endif
33798
33799
33800#endif  /* __IFrameworkInputPane_INTERFACE_DEFINED__ */
33801
33802#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
33803
33804#ifndef PROP_CONTRACT_DELEGATE
33805#define PROP_CONTRACT_DELEGATE L"ContractDelegate"
33806#endif
33807
33808  __forceinline void SetContractDelegateWindow(HWND hwndSource, HWND hwndDelegate) {
33809    if (hwndDelegate != NULL)
33810      SetPropW (hwndSource, PROP_CONTRACT_DELEGATE, (HANDLE)hwndDelegate);
33811    else
33812      RemovePropW(hwndSource, PROP_CONTRACT_DELEGATE);
33813  }
33814
33815#ifndef PROP_CONTRACT_DELEGATE
33816#define PROP_CONTRACT_DELEGATE L"ContractDelegate"
33817#endif
33818
33819  __forceinline HWND GetContractDelegateWindow(HWND hwndSource) { return (HWND)GetPropW(hwndSource, PROP_CONTRACT_DELEGATE); }
33820#endif
33821#endif
33822
33823#if NTDDI_VERSION >= NTDDI_WIN8
33824/*****************************************************************************
33825 * ISearchableApplication interface
33826 */
33827#ifndef __ISearchableApplication_INTERFACE_DEFINED__
33828#define __ISearchableApplication_INTERFACE_DEFINED__
33829
33830DEFINE_GUID(IID_ISearchableApplication, 0x08922f8d, 0x243a, 0x49e3, 0xa4,0x95, 0xbd,0x4f,0x9c,0xf8,0xab,0x9e);
33831#if defined(__cplusplus) && !defined(CINTERFACE)
33832MIDL_INTERFACE("08922f8d-243a-49e3-a495-bd4f9cf8ab9e")
33833ISearchableApplication : public IUnknown
33834{
33835    virtual HRESULT STDMETHODCALLTYPE GetSearchWindow(
33836        HWND *hwnd) = 0;
33837
33838};
33839#ifdef __CRT_UUID_DECL
33840__CRT_UUID_DECL(ISearchableApplication, 0x08922f8d, 0x243a, 0x49e3, 0xa4,0x95, 0xbd,0x4f,0x9c,0xf8,0xab,0x9e)
33841#endif
33842#else
33843typedef struct ISearchableApplicationVtbl {
33844    BEGIN_INTERFACE
33845
33846    /*** IUnknown methods ***/
33847    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33848        ISearchableApplication *This,
33849        REFIID riid,
33850        void **ppvObject);
33851
33852    ULONG (STDMETHODCALLTYPE *AddRef)(
33853        ISearchableApplication *This);
33854
33855    ULONG (STDMETHODCALLTYPE *Release)(
33856        ISearchableApplication *This);
33857
33858    /*** ISearchableApplication methods ***/
33859    HRESULT (STDMETHODCALLTYPE *GetSearchWindow)(
33860        ISearchableApplication *This,
33861        HWND *hwnd);
33862
33863    END_INTERFACE
33864} ISearchableApplicationVtbl;
33865
33866interface ISearchableApplication {
33867    CONST_VTBL ISearchableApplicationVtbl* lpVtbl;
33868};
33869
33870#ifdef COBJMACROS
33871#ifndef WIDL_C_INLINE_WRAPPERS
33872/*** IUnknown methods ***/
33873#define ISearchableApplication_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33874#define ISearchableApplication_AddRef(This) (This)->lpVtbl->AddRef(This)
33875#define ISearchableApplication_Release(This) (This)->lpVtbl->Release(This)
33876/*** ISearchableApplication methods ***/
33877#define ISearchableApplication_GetSearchWindow(This,hwnd) (This)->lpVtbl->GetSearchWindow(This,hwnd)
33878#else
33879/*** IUnknown methods ***/
33880static inline HRESULT ISearchableApplication_QueryInterface(ISearchableApplication* This,REFIID riid,void **ppvObject) {
33881    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33882}
33883static inline ULONG ISearchableApplication_AddRef(ISearchableApplication* This) {
33884    return This->lpVtbl->AddRef(This);
33885}
33886static inline ULONG ISearchableApplication_Release(ISearchableApplication* This) {
33887    return This->lpVtbl->Release(This);
33888}
33889/*** ISearchableApplication methods ***/
33890static inline HRESULT ISearchableApplication_GetSearchWindow(ISearchableApplication* This,HWND *hwnd) {
33891    return This->lpVtbl->GetSearchWindow(This,hwnd);
33892}
33893#endif
33894#endif
33895
33896#endif
33897
33898
33899#endif  /* __ISearchableApplication_INTERFACE_DEFINED__ */
33900
33901
33902typedef enum UNDOCK_REASON {
33903    UR_RESOLUTION_CHANGE = 0,
33904    UR_MONITOR_DISCONNECT = 1
33905} UNDOCK_REASON;
33906
33907/*****************************************************************************
33908 * IAccessibilityDockingServiceCallback interface
33909 */
33910#ifndef __IAccessibilityDockingServiceCallback_INTERFACE_DEFINED__
33911#define __IAccessibilityDockingServiceCallback_INTERFACE_DEFINED__
33912
33913DEFINE_GUID(IID_IAccessibilityDockingServiceCallback, 0x157733fd, 0xa592, 0x42e5, 0xb5,0x94, 0x24,0x84,0x68,0xc5,0xa8,0x1b);
33914#if defined(__cplusplus) && !defined(CINTERFACE)
33915MIDL_INTERFACE("157733fd-a592-42e5-b594-248468c5a81b")
33916IAccessibilityDockingServiceCallback : public IUnknown
33917{
33918    virtual HRESULT STDMETHODCALLTYPE Undocked(
33919        UNDOCK_REASON undockReason) = 0;
33920
33921};
33922#ifdef __CRT_UUID_DECL
33923__CRT_UUID_DECL(IAccessibilityDockingServiceCallback, 0x157733fd, 0xa592, 0x42e5, 0xb5,0x94, 0x24,0x84,0x68,0xc5,0xa8,0x1b)
33924#endif
33925#else
33926typedef struct IAccessibilityDockingServiceCallbackVtbl {
33927    BEGIN_INTERFACE
33928
33929    /*** IUnknown methods ***/
33930    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
33931        IAccessibilityDockingServiceCallback *This,
33932        REFIID riid,
33933        void **ppvObject);
33934
33935    ULONG (STDMETHODCALLTYPE *AddRef)(
33936        IAccessibilityDockingServiceCallback *This);
33937
33938    ULONG (STDMETHODCALLTYPE *Release)(
33939        IAccessibilityDockingServiceCallback *This);
33940
33941    /*** IAccessibilityDockingServiceCallback methods ***/
33942    HRESULT (STDMETHODCALLTYPE *Undocked)(
33943        IAccessibilityDockingServiceCallback *This,
33944        UNDOCK_REASON undockReason);
33945
33946    END_INTERFACE
33947} IAccessibilityDockingServiceCallbackVtbl;
33948
33949interface IAccessibilityDockingServiceCallback {
33950    CONST_VTBL IAccessibilityDockingServiceCallbackVtbl* lpVtbl;
33951};
33952
33953#ifdef COBJMACROS
33954#ifndef WIDL_C_INLINE_WRAPPERS
33955/*** IUnknown methods ***/
33956#define IAccessibilityDockingServiceCallback_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
33957#define IAccessibilityDockingServiceCallback_AddRef(This) (This)->lpVtbl->AddRef(This)
33958#define IAccessibilityDockingServiceCallback_Release(This) (This)->lpVtbl->Release(This)
33959/*** IAccessibilityDockingServiceCallback methods ***/
33960#define IAccessibilityDockingServiceCallback_Undocked(This,undockReason) (This)->lpVtbl->Undocked(This,undockReason)
33961#else
33962/*** IUnknown methods ***/
33963static inline HRESULT IAccessibilityDockingServiceCallback_QueryInterface(IAccessibilityDockingServiceCallback* This,REFIID riid,void **ppvObject) {
33964    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
33965}
33966static inline ULONG IAccessibilityDockingServiceCallback_AddRef(IAccessibilityDockingServiceCallback* This) {
33967    return This->lpVtbl->AddRef(This);
33968}
33969static inline ULONG IAccessibilityDockingServiceCallback_Release(IAccessibilityDockingServiceCallback* This) {
33970    return This->lpVtbl->Release(This);
33971}
33972/*** IAccessibilityDockingServiceCallback methods ***/
33973static inline HRESULT IAccessibilityDockingServiceCallback_Undocked(IAccessibilityDockingServiceCallback* This,UNDOCK_REASON undockReason) {
33974    return This->lpVtbl->Undocked(This,undockReason);
33975}
33976#endif
33977#endif
33978
33979#endif
33980
33981
33982#endif  /* __IAccessibilityDockingServiceCallback_INTERFACE_DEFINED__ */
33983
33984
33985/*****************************************************************************
33986 * IAccessibilityDockingService interface
33987 */
33988#ifndef __IAccessibilityDockingService_INTERFACE_DEFINED__
33989#define __IAccessibilityDockingService_INTERFACE_DEFINED__
33990
33991DEFINE_GUID(IID_IAccessibilityDockingService, 0x8849dc22, 0xcedf, 0x4c95, 0x99,0x8d, 0x05,0x14,0x19,0xdd,0x3f,0x76);
33992#if defined(__cplusplus) && !defined(CINTERFACE)
33993MIDL_INTERFACE("8849dc22-cedf-4c95-998d-051419dd3f76")
33994IAccessibilityDockingService : public IUnknown
33995{
33996    virtual HRESULT STDMETHODCALLTYPE GetAvailableSize(
33997        HMONITOR hMonitor,
33998        UINT *pcxFixed,
33999        UINT *pcyMax) = 0;
34000
34001    virtual HRESULT STDMETHODCALLTYPE DockWindow(
34002        HWND hwnd,
34003        HMONITOR hMonitor,
34004        UINT cyRequested,
34005        IAccessibilityDockingServiceCallback *pCallback) = 0;
34006
34007    virtual HRESULT STDMETHODCALLTYPE UndockWindow(
34008        HWND hwnd) = 0;
34009
34010};
34011#ifdef __CRT_UUID_DECL
34012__CRT_UUID_DECL(IAccessibilityDockingService, 0x8849dc22, 0xcedf, 0x4c95, 0x99,0x8d, 0x05,0x14,0x19,0xdd,0x3f,0x76)
34013#endif
34014#else
34015typedef struct IAccessibilityDockingServiceVtbl {
34016    BEGIN_INTERFACE
34017
34018    /*** IUnknown methods ***/
34019    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34020        IAccessibilityDockingService *This,
34021        REFIID riid,
34022        void **ppvObject);
34023
34024    ULONG (STDMETHODCALLTYPE *AddRef)(
34025        IAccessibilityDockingService *This);
34026
34027    ULONG (STDMETHODCALLTYPE *Release)(
34028        IAccessibilityDockingService *This);
34029
34030    /*** IAccessibilityDockingService methods ***/
34031    HRESULT (STDMETHODCALLTYPE *GetAvailableSize)(
34032        IAccessibilityDockingService *This,
34033        HMONITOR hMonitor,
34034        UINT *pcxFixed,
34035        UINT *pcyMax);
34036
34037    HRESULT (STDMETHODCALLTYPE *DockWindow)(
34038        IAccessibilityDockingService *This,
34039        HWND hwnd,
34040        HMONITOR hMonitor,
34041        UINT cyRequested,
34042        IAccessibilityDockingServiceCallback *pCallback);
34043
34044    HRESULT (STDMETHODCALLTYPE *UndockWindow)(
34045        IAccessibilityDockingService *This,
34046        HWND hwnd);
34047
34048    END_INTERFACE
34049} IAccessibilityDockingServiceVtbl;
34050
34051interface IAccessibilityDockingService {
34052    CONST_VTBL IAccessibilityDockingServiceVtbl* lpVtbl;
34053};
34054
34055#ifdef COBJMACROS
34056#ifndef WIDL_C_INLINE_WRAPPERS
34057/*** IUnknown methods ***/
34058#define IAccessibilityDockingService_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34059#define IAccessibilityDockingService_AddRef(This) (This)->lpVtbl->AddRef(This)
34060#define IAccessibilityDockingService_Release(This) (This)->lpVtbl->Release(This)
34061/*** IAccessibilityDockingService methods ***/
34062#define IAccessibilityDockingService_GetAvailableSize(This,hMonitor,pcxFixed,pcyMax) (This)->lpVtbl->GetAvailableSize(This,hMonitor,pcxFixed,pcyMax)
34063#define IAccessibilityDockingService_DockWindow(This,hwnd,hMonitor,cyRequested,pCallback) (This)->lpVtbl->DockWindow(This,hwnd,hMonitor,cyRequested,pCallback)
34064#define IAccessibilityDockingService_UndockWindow(This,hwnd) (This)->lpVtbl->UndockWindow(This,hwnd)
34065#else
34066/*** IUnknown methods ***/
34067static inline HRESULT IAccessibilityDockingService_QueryInterface(IAccessibilityDockingService* This,REFIID riid,void **ppvObject) {
34068    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34069}
34070static inline ULONG IAccessibilityDockingService_AddRef(IAccessibilityDockingService* This) {
34071    return This->lpVtbl->AddRef(This);
34072}
34073static inline ULONG IAccessibilityDockingService_Release(IAccessibilityDockingService* This) {
34074    return This->lpVtbl->Release(This);
34075}
34076/*** IAccessibilityDockingService methods ***/
34077static inline HRESULT IAccessibilityDockingService_GetAvailableSize(IAccessibilityDockingService* This,HMONITOR hMonitor,UINT *pcxFixed,UINT *pcyMax) {
34078    return This->lpVtbl->GetAvailableSize(This,hMonitor,pcxFixed,pcyMax);
34079}
34080static inline HRESULT IAccessibilityDockingService_DockWindow(IAccessibilityDockingService* This,HWND hwnd,HMONITOR hMonitor,UINT cyRequested,IAccessibilityDockingServiceCallback *pCallback) {
34081    return This->lpVtbl->DockWindow(This,hwnd,hMonitor,cyRequested,pCallback);
34082}
34083static inline HRESULT IAccessibilityDockingService_UndockWindow(IAccessibilityDockingService* This,HWND hwnd) {
34084    return This->lpVtbl->UndockWindow(This,hwnd);
34085}
34086#endif
34087#endif
34088
34089#endif
34090
34091
34092#endif  /* __IAccessibilityDockingService_INTERFACE_DEFINED__ */
34093
34094
34095typedef enum MONITOR_APP_VISIBILITY {
34096    MAV_UNKNOWN = 0,
34097    MAV_NO_APP_VISIBLE = 1,
34098    MAV_APP_VISIBLE = 2
34099} MONITOR_APP_VISIBILITY;
34100
34101/*****************************************************************************
34102 * IAppVisibilityEvents interface
34103 */
34104#ifndef __IAppVisibilityEvents_INTERFACE_DEFINED__
34105#define __IAppVisibilityEvents_INTERFACE_DEFINED__
34106
34107DEFINE_GUID(IID_IAppVisibilityEvents, 0x6584ce6b, 0x7d82, 0x49c2, 0x89,0xc9, 0xc6,0xbc,0x02,0xba,0x8c,0x38);
34108#if defined(__cplusplus) && !defined(CINTERFACE)
34109MIDL_INTERFACE("6584ce6b-7d82-49c2-89c9-c6bc02ba8c38")
34110IAppVisibilityEvents : public IUnknown
34111{
34112    virtual HRESULT STDMETHODCALLTYPE AppVisibilityOnMonitorChanged(
34113        HMONITOR hMonitor,
34114        MONITOR_APP_VISIBILITY previousMode,
34115        MONITOR_APP_VISIBILITY currentMode) = 0;
34116
34117    virtual HRESULT STDMETHODCALLTYPE LauncherVisibilityChange(
34118        WINBOOL currentVisibleState) = 0;
34119
34120};
34121#ifdef __CRT_UUID_DECL
34122__CRT_UUID_DECL(IAppVisibilityEvents, 0x6584ce6b, 0x7d82, 0x49c2, 0x89,0xc9, 0xc6,0xbc,0x02,0xba,0x8c,0x38)
34123#endif
34124#else
34125typedef struct IAppVisibilityEventsVtbl {
34126    BEGIN_INTERFACE
34127
34128    /*** IUnknown methods ***/
34129    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34130        IAppVisibilityEvents *This,
34131        REFIID riid,
34132        void **ppvObject);
34133
34134    ULONG (STDMETHODCALLTYPE *AddRef)(
34135        IAppVisibilityEvents *This);
34136
34137    ULONG (STDMETHODCALLTYPE *Release)(
34138        IAppVisibilityEvents *This);
34139
34140    /*** IAppVisibilityEvents methods ***/
34141    HRESULT (STDMETHODCALLTYPE *AppVisibilityOnMonitorChanged)(
34142        IAppVisibilityEvents *This,
34143        HMONITOR hMonitor,
34144        MONITOR_APP_VISIBILITY previousMode,
34145        MONITOR_APP_VISIBILITY currentMode);
34146
34147    HRESULT (STDMETHODCALLTYPE *LauncherVisibilityChange)(
34148        IAppVisibilityEvents *This,
34149        WINBOOL currentVisibleState);
34150
34151    END_INTERFACE
34152} IAppVisibilityEventsVtbl;
34153
34154interface IAppVisibilityEvents {
34155    CONST_VTBL IAppVisibilityEventsVtbl* lpVtbl;
34156};
34157
34158#ifdef COBJMACROS
34159#ifndef WIDL_C_INLINE_WRAPPERS
34160/*** IUnknown methods ***/
34161#define IAppVisibilityEvents_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34162#define IAppVisibilityEvents_AddRef(This) (This)->lpVtbl->AddRef(This)
34163#define IAppVisibilityEvents_Release(This) (This)->lpVtbl->Release(This)
34164/*** IAppVisibilityEvents methods ***/
34165#define IAppVisibilityEvents_AppVisibilityOnMonitorChanged(This,hMonitor,previousMode,currentMode) (This)->lpVtbl->AppVisibilityOnMonitorChanged(This,hMonitor,previousMode,currentMode)
34166#define IAppVisibilityEvents_LauncherVisibilityChange(This,currentVisibleState) (This)->lpVtbl->LauncherVisibilityChange(This,currentVisibleState)
34167#else
34168/*** IUnknown methods ***/
34169static inline HRESULT IAppVisibilityEvents_QueryInterface(IAppVisibilityEvents* This,REFIID riid,void **ppvObject) {
34170    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34171}
34172static inline ULONG IAppVisibilityEvents_AddRef(IAppVisibilityEvents* This) {
34173    return This->lpVtbl->AddRef(This);
34174}
34175static inline ULONG IAppVisibilityEvents_Release(IAppVisibilityEvents* This) {
34176    return This->lpVtbl->Release(This);
34177}
34178/*** IAppVisibilityEvents methods ***/
34179static inline HRESULT IAppVisibilityEvents_AppVisibilityOnMonitorChanged(IAppVisibilityEvents* This,HMONITOR hMonitor,MONITOR_APP_VISIBILITY previousMode,MONITOR_APP_VISIBILITY currentMode) {
34180    return This->lpVtbl->AppVisibilityOnMonitorChanged(This,hMonitor,previousMode,currentMode);
34181}
34182static inline HRESULT IAppVisibilityEvents_LauncherVisibilityChange(IAppVisibilityEvents* This,WINBOOL currentVisibleState) {
34183    return This->lpVtbl->LauncherVisibilityChange(This,currentVisibleState);
34184}
34185#endif
34186#endif
34187
34188#endif
34189
34190
34191#endif  /* __IAppVisibilityEvents_INTERFACE_DEFINED__ */
34192
34193
34194/*****************************************************************************
34195 * IAppVisibility interface
34196 */
34197#ifndef __IAppVisibility_INTERFACE_DEFINED__
34198#define __IAppVisibility_INTERFACE_DEFINED__
34199
34200DEFINE_GUID(IID_IAppVisibility, 0x2246ea2d, 0xcaea, 0x4444, 0xa3,0xc4, 0x6d,0xe8,0x27,0xe4,0x43,0x13);
34201#if defined(__cplusplus) && !defined(CINTERFACE)
34202MIDL_INTERFACE("2246ea2d-caea-4444-a3c4-6de827e44313")
34203IAppVisibility : public IUnknown
34204{
34205    virtual HRESULT STDMETHODCALLTYPE GetAppVisibilityOnMonitor(
34206        HMONITOR hMonitor,
34207        MONITOR_APP_VISIBILITY *pMode) = 0;
34208
34209    virtual HRESULT STDMETHODCALLTYPE IsLauncherVisible(
34210        WINBOOL *pfVisible) = 0;
34211
34212    virtual HRESULT STDMETHODCALLTYPE Advise(
34213        IAppVisibilityEvents *pCallback,
34214        DWORD *pdwCookie) = 0;
34215
34216    virtual HRESULT STDMETHODCALLTYPE Unadvise(
34217        DWORD dwCookie) = 0;
34218
34219};
34220#ifdef __CRT_UUID_DECL
34221__CRT_UUID_DECL(IAppVisibility, 0x2246ea2d, 0xcaea, 0x4444, 0xa3,0xc4, 0x6d,0xe8,0x27,0xe4,0x43,0x13)
34222#endif
34223#else
34224typedef struct IAppVisibilityVtbl {
34225    BEGIN_INTERFACE
34226
34227    /*** IUnknown methods ***/
34228    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34229        IAppVisibility *This,
34230        REFIID riid,
34231        void **ppvObject);
34232
34233    ULONG (STDMETHODCALLTYPE *AddRef)(
34234        IAppVisibility *This);
34235
34236    ULONG (STDMETHODCALLTYPE *Release)(
34237        IAppVisibility *This);
34238
34239    /*** IAppVisibility methods ***/
34240    HRESULT (STDMETHODCALLTYPE *GetAppVisibilityOnMonitor)(
34241        IAppVisibility *This,
34242        HMONITOR hMonitor,
34243        MONITOR_APP_VISIBILITY *pMode);
34244
34245    HRESULT (STDMETHODCALLTYPE *IsLauncherVisible)(
34246        IAppVisibility *This,
34247        WINBOOL *pfVisible);
34248
34249    HRESULT (STDMETHODCALLTYPE *Advise)(
34250        IAppVisibility *This,
34251        IAppVisibilityEvents *pCallback,
34252        DWORD *pdwCookie);
34253
34254    HRESULT (STDMETHODCALLTYPE *Unadvise)(
34255        IAppVisibility *This,
34256        DWORD dwCookie);
34257
34258    END_INTERFACE
34259} IAppVisibilityVtbl;
34260
34261interface IAppVisibility {
34262    CONST_VTBL IAppVisibilityVtbl* lpVtbl;
34263};
34264
34265#ifdef COBJMACROS
34266#ifndef WIDL_C_INLINE_WRAPPERS
34267/*** IUnknown methods ***/
34268#define IAppVisibility_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34269#define IAppVisibility_AddRef(This) (This)->lpVtbl->AddRef(This)
34270#define IAppVisibility_Release(This) (This)->lpVtbl->Release(This)
34271/*** IAppVisibility methods ***/
34272#define IAppVisibility_GetAppVisibilityOnMonitor(This,hMonitor,pMode) (This)->lpVtbl->GetAppVisibilityOnMonitor(This,hMonitor,pMode)
34273#define IAppVisibility_IsLauncherVisible(This,pfVisible) (This)->lpVtbl->IsLauncherVisible(This,pfVisible)
34274#define IAppVisibility_Advise(This,pCallback,pdwCookie) (This)->lpVtbl->Advise(This,pCallback,pdwCookie)
34275#define IAppVisibility_Unadvise(This,dwCookie) (This)->lpVtbl->Unadvise(This,dwCookie)
34276#else
34277/*** IUnknown methods ***/
34278static inline HRESULT IAppVisibility_QueryInterface(IAppVisibility* This,REFIID riid,void **ppvObject) {
34279    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34280}
34281static inline ULONG IAppVisibility_AddRef(IAppVisibility* This) {
34282    return This->lpVtbl->AddRef(This);
34283}
34284static inline ULONG IAppVisibility_Release(IAppVisibility* This) {
34285    return This->lpVtbl->Release(This);
34286}
34287/*** IAppVisibility methods ***/
34288static inline HRESULT IAppVisibility_GetAppVisibilityOnMonitor(IAppVisibility* This,HMONITOR hMonitor,MONITOR_APP_VISIBILITY *pMode) {
34289    return This->lpVtbl->GetAppVisibilityOnMonitor(This,hMonitor,pMode);
34290}
34291static inline HRESULT IAppVisibility_IsLauncherVisible(IAppVisibility* This,WINBOOL *pfVisible) {
34292    return This->lpVtbl->IsLauncherVisible(This,pfVisible);
34293}
34294static inline HRESULT IAppVisibility_Advise(IAppVisibility* This,IAppVisibilityEvents *pCallback,DWORD *pdwCookie) {
34295    return This->lpVtbl->Advise(This,pCallback,pdwCookie);
34296}
34297static inline HRESULT IAppVisibility_Unadvise(IAppVisibility* This,DWORD dwCookie) {
34298    return This->lpVtbl->Unadvise(This,dwCookie);
34299}
34300#endif
34301#endif
34302
34303#endif
34304
34305
34306#endif  /* __IAppVisibility_INTERFACE_DEFINED__ */
34307
34308
34309#if 0
34310typedef WCHAR *PZZWSTR;
34311#endif
34312
34313typedef enum PACKAGE_EXECUTION_STATE {
34314    PES_UNKNOWN = 0,
34315    PES_RUNNING = 1,
34316    PES_SUSPENDING = 2,
34317    PES_SUSPENDED = 3,
34318    PES_TERMINATED = 4
34319} PACKAGE_EXECUTION_STATE;
34320
34321/*****************************************************************************
34322 * IPackageExecutionStateChangeNotification interface
34323 */
34324#ifndef __IPackageExecutionStateChangeNotification_INTERFACE_DEFINED__
34325#define __IPackageExecutionStateChangeNotification_INTERFACE_DEFINED__
34326
34327DEFINE_GUID(IID_IPackageExecutionStateChangeNotification, 0x1bb12a62, 0x2ad8, 0x432b, 0x8c,0xcf, 0x0c,0x2c,0x52,0xaf,0xcd,0x5b);
34328#if defined(__cplusplus) && !defined(CINTERFACE)
34329MIDL_INTERFACE("1bb12a62-2ad8-432b-8ccf-0c2c52afcd5b")
34330IPackageExecutionStateChangeNotification : public IUnknown
34331{
34332    virtual HRESULT STDMETHODCALLTYPE OnStateChanged(
34333        LPCWSTR pszPackageFullName,
34334        PACKAGE_EXECUTION_STATE pesNewState) = 0;
34335
34336};
34337#ifdef __CRT_UUID_DECL
34338__CRT_UUID_DECL(IPackageExecutionStateChangeNotification, 0x1bb12a62, 0x2ad8, 0x432b, 0x8c,0xcf, 0x0c,0x2c,0x52,0xaf,0xcd,0x5b)
34339#endif
34340#else
34341typedef struct IPackageExecutionStateChangeNotificationVtbl {
34342    BEGIN_INTERFACE
34343
34344    /*** IUnknown methods ***/
34345    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34346        IPackageExecutionStateChangeNotification *This,
34347        REFIID riid,
34348        void **ppvObject);
34349
34350    ULONG (STDMETHODCALLTYPE *AddRef)(
34351        IPackageExecutionStateChangeNotification *This);
34352
34353    ULONG (STDMETHODCALLTYPE *Release)(
34354        IPackageExecutionStateChangeNotification *This);
34355
34356    /*** IPackageExecutionStateChangeNotification methods ***/
34357    HRESULT (STDMETHODCALLTYPE *OnStateChanged)(
34358        IPackageExecutionStateChangeNotification *This,
34359        LPCWSTR pszPackageFullName,
34360        PACKAGE_EXECUTION_STATE pesNewState);
34361
34362    END_INTERFACE
34363} IPackageExecutionStateChangeNotificationVtbl;
34364
34365interface IPackageExecutionStateChangeNotification {
34366    CONST_VTBL IPackageExecutionStateChangeNotificationVtbl* lpVtbl;
34367};
34368
34369#ifdef COBJMACROS
34370#ifndef WIDL_C_INLINE_WRAPPERS
34371/*** IUnknown methods ***/
34372#define IPackageExecutionStateChangeNotification_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34373#define IPackageExecutionStateChangeNotification_AddRef(This) (This)->lpVtbl->AddRef(This)
34374#define IPackageExecutionStateChangeNotification_Release(This) (This)->lpVtbl->Release(This)
34375/*** IPackageExecutionStateChangeNotification methods ***/
34376#define IPackageExecutionStateChangeNotification_OnStateChanged(This,pszPackageFullName,pesNewState) (This)->lpVtbl->OnStateChanged(This,pszPackageFullName,pesNewState)
34377#else
34378/*** IUnknown methods ***/
34379static inline HRESULT IPackageExecutionStateChangeNotification_QueryInterface(IPackageExecutionStateChangeNotification* This,REFIID riid,void **ppvObject) {
34380    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34381}
34382static inline ULONG IPackageExecutionStateChangeNotification_AddRef(IPackageExecutionStateChangeNotification* This) {
34383    return This->lpVtbl->AddRef(This);
34384}
34385static inline ULONG IPackageExecutionStateChangeNotification_Release(IPackageExecutionStateChangeNotification* This) {
34386    return This->lpVtbl->Release(This);
34387}
34388/*** IPackageExecutionStateChangeNotification methods ***/
34389static inline HRESULT IPackageExecutionStateChangeNotification_OnStateChanged(IPackageExecutionStateChangeNotification* This,LPCWSTR pszPackageFullName,PACKAGE_EXECUTION_STATE pesNewState) {
34390    return This->lpVtbl->OnStateChanged(This,pszPackageFullName,pesNewState);
34391}
34392#endif
34393#endif
34394
34395#endif
34396
34397
34398#endif  /* __IPackageExecutionStateChangeNotification_INTERFACE_DEFINED__ */
34399
34400
34401/*****************************************************************************
34402 * IPackageDebugSettings interface
34403 */
34404#ifndef __IPackageDebugSettings_INTERFACE_DEFINED__
34405#define __IPackageDebugSettings_INTERFACE_DEFINED__
34406
34407DEFINE_GUID(IID_IPackageDebugSettings, 0xf27c3930, 0x8029, 0x4ad1, 0x94,0xe3, 0x3d,0xba,0x41,0x78,0x10,0xc1);
34408#if defined(__cplusplus) && !defined(CINTERFACE)
34409MIDL_INTERFACE("f27c3930-8029-4ad1-94e3-3dba417810c1")
34410IPackageDebugSettings : public IUnknown
34411{
34412    virtual HRESULT STDMETHODCALLTYPE EnableDebugging(
34413        LPCWSTR packageFullName,
34414        LPCWSTR debuggerCommandLine,
34415        PZZWSTR environment) = 0;
34416
34417    virtual HRESULT STDMETHODCALLTYPE DisableDebugging(
34418        LPCWSTR packageFullName) = 0;
34419
34420    virtual HRESULT STDMETHODCALLTYPE Suspend(
34421        LPCWSTR packageFullName) = 0;
34422
34423    virtual HRESULT STDMETHODCALLTYPE Resume(
34424        LPCWSTR packageFullName) = 0;
34425
34426    virtual HRESULT STDMETHODCALLTYPE TerminateAllProcesses(
34427        LPCWSTR packageFullName) = 0;
34428
34429    virtual HRESULT STDMETHODCALLTYPE SetTargetSessionId(
34430        ULONG sessionId) = 0;
34431
34432    virtual HRESULT STDMETHODCALLTYPE EnumerateBackgroundTasks(
34433        LPCWSTR packageFullName,
34434        ULONG *taskCount,
34435        LPCGUID *taskIds,
34436        LPCWSTR **taskNames) = 0;
34437
34438    virtual HRESULT STDMETHODCALLTYPE ActivateBackgroundTask(
34439        LPCGUID taskId) = 0;
34440
34441    virtual HRESULT STDMETHODCALLTYPE StartServicing(
34442        LPCWSTR packageFullName) = 0;
34443
34444    virtual HRESULT STDMETHODCALLTYPE StopServicing(
34445        LPCWSTR packageFullName) = 0;
34446
34447    virtual HRESULT STDMETHODCALLTYPE StartSessionRedirection(
34448        LPCWSTR packageFullName,
34449        ULONG sessionId) = 0;
34450
34451    virtual HRESULT STDMETHODCALLTYPE StopSessionRedirection(
34452        LPCWSTR packageFullName) = 0;
34453
34454    virtual HRESULT STDMETHODCALLTYPE GetPackageExecutionState(
34455        LPCWSTR packageFullName,
34456        PACKAGE_EXECUTION_STATE *packageExecutionState) = 0;
34457
34458    virtual HRESULT STDMETHODCALLTYPE RegisterForPackageStateChanges(
34459        LPCWSTR packageFullName,
34460        IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,
34461        DWORD *pdwCookie) = 0;
34462
34463    virtual HRESULT STDMETHODCALLTYPE UnregisterForPackageStateChanges(
34464        DWORD dwCookie) = 0;
34465
34466};
34467#ifdef __CRT_UUID_DECL
34468__CRT_UUID_DECL(IPackageDebugSettings, 0xf27c3930, 0x8029, 0x4ad1, 0x94,0xe3, 0x3d,0xba,0x41,0x78,0x10,0xc1)
34469#endif
34470#else
34471typedef struct IPackageDebugSettingsVtbl {
34472    BEGIN_INTERFACE
34473
34474    /*** IUnknown methods ***/
34475    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34476        IPackageDebugSettings *This,
34477        REFIID riid,
34478        void **ppvObject);
34479
34480    ULONG (STDMETHODCALLTYPE *AddRef)(
34481        IPackageDebugSettings *This);
34482
34483    ULONG (STDMETHODCALLTYPE *Release)(
34484        IPackageDebugSettings *This);
34485
34486    /*** IPackageDebugSettings methods ***/
34487    HRESULT (STDMETHODCALLTYPE *EnableDebugging)(
34488        IPackageDebugSettings *This,
34489        LPCWSTR packageFullName,
34490        LPCWSTR debuggerCommandLine,
34491        PZZWSTR environment);
34492
34493    HRESULT (STDMETHODCALLTYPE *DisableDebugging)(
34494        IPackageDebugSettings *This,
34495        LPCWSTR packageFullName);
34496
34497    HRESULT (STDMETHODCALLTYPE *Suspend)(
34498        IPackageDebugSettings *This,
34499        LPCWSTR packageFullName);
34500
34501    HRESULT (STDMETHODCALLTYPE *Resume)(
34502        IPackageDebugSettings *This,
34503        LPCWSTR packageFullName);
34504
34505    HRESULT (STDMETHODCALLTYPE *TerminateAllProcesses)(
34506        IPackageDebugSettings *This,
34507        LPCWSTR packageFullName);
34508
34509    HRESULT (STDMETHODCALLTYPE *SetTargetSessionId)(
34510        IPackageDebugSettings *This,
34511        ULONG sessionId);
34512
34513    HRESULT (STDMETHODCALLTYPE *EnumerateBackgroundTasks)(
34514        IPackageDebugSettings *This,
34515        LPCWSTR packageFullName,
34516        ULONG *taskCount,
34517        LPCGUID *taskIds,
34518        LPCWSTR **taskNames);
34519
34520    HRESULT (STDMETHODCALLTYPE *ActivateBackgroundTask)(
34521        IPackageDebugSettings *This,
34522        LPCGUID taskId);
34523
34524    HRESULT (STDMETHODCALLTYPE *StartServicing)(
34525        IPackageDebugSettings *This,
34526        LPCWSTR packageFullName);
34527
34528    HRESULT (STDMETHODCALLTYPE *StopServicing)(
34529        IPackageDebugSettings *This,
34530        LPCWSTR packageFullName);
34531
34532    HRESULT (STDMETHODCALLTYPE *StartSessionRedirection)(
34533        IPackageDebugSettings *This,
34534        LPCWSTR packageFullName,
34535        ULONG sessionId);
34536
34537    HRESULT (STDMETHODCALLTYPE *StopSessionRedirection)(
34538        IPackageDebugSettings *This,
34539        LPCWSTR packageFullName);
34540
34541    HRESULT (STDMETHODCALLTYPE *GetPackageExecutionState)(
34542        IPackageDebugSettings *This,
34543        LPCWSTR packageFullName,
34544        PACKAGE_EXECUTION_STATE *packageExecutionState);
34545
34546    HRESULT (STDMETHODCALLTYPE *RegisterForPackageStateChanges)(
34547        IPackageDebugSettings *This,
34548        LPCWSTR packageFullName,
34549        IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,
34550        DWORD *pdwCookie);
34551
34552    HRESULT (STDMETHODCALLTYPE *UnregisterForPackageStateChanges)(
34553        IPackageDebugSettings *This,
34554        DWORD dwCookie);
34555
34556    END_INTERFACE
34557} IPackageDebugSettingsVtbl;
34558
34559interface IPackageDebugSettings {
34560    CONST_VTBL IPackageDebugSettingsVtbl* lpVtbl;
34561};
34562
34563#ifdef COBJMACROS
34564#ifndef WIDL_C_INLINE_WRAPPERS
34565/*** IUnknown methods ***/
34566#define IPackageDebugSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34567#define IPackageDebugSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
34568#define IPackageDebugSettings_Release(This) (This)->lpVtbl->Release(This)
34569/*** IPackageDebugSettings methods ***/
34570#define IPackageDebugSettings_EnableDebugging(This,packageFullName,debuggerCommandLine,environment) (This)->lpVtbl->EnableDebugging(This,packageFullName,debuggerCommandLine,environment)
34571#define IPackageDebugSettings_DisableDebugging(This,packageFullName) (This)->lpVtbl->DisableDebugging(This,packageFullName)
34572#define IPackageDebugSettings_Suspend(This,packageFullName) (This)->lpVtbl->Suspend(This,packageFullName)
34573#define IPackageDebugSettings_Resume(This,packageFullName) (This)->lpVtbl->Resume(This,packageFullName)
34574#define IPackageDebugSettings_TerminateAllProcesses(This,packageFullName) (This)->lpVtbl->TerminateAllProcesses(This,packageFullName)
34575#define IPackageDebugSettings_SetTargetSessionId(This,sessionId) (This)->lpVtbl->SetTargetSessionId(This,sessionId)
34576#define IPackageDebugSettings_EnumerateBackgroundTasks(This,packageFullName,taskCount,taskIds,taskNames) (This)->lpVtbl->EnumerateBackgroundTasks(This,packageFullName,taskCount,taskIds,taskNames)
34577#define IPackageDebugSettings_ActivateBackgroundTask(This,taskId) (This)->lpVtbl->ActivateBackgroundTask(This,taskId)
34578#define IPackageDebugSettings_StartServicing(This,packageFullName) (This)->lpVtbl->StartServicing(This,packageFullName)
34579#define IPackageDebugSettings_StopServicing(This,packageFullName) (This)->lpVtbl->StopServicing(This,packageFullName)
34580#define IPackageDebugSettings_StartSessionRedirection(This,packageFullName,sessionId) (This)->lpVtbl->StartSessionRedirection(This,packageFullName,sessionId)
34581#define IPackageDebugSettings_StopSessionRedirection(This,packageFullName) (This)->lpVtbl->StopSessionRedirection(This,packageFullName)
34582#define IPackageDebugSettings_GetPackageExecutionState(This,packageFullName,packageExecutionState) (This)->lpVtbl->GetPackageExecutionState(This,packageFullName,packageExecutionState)
34583#define IPackageDebugSettings_RegisterForPackageStateChanges(This,packageFullName,pPackageExecutionStateChangeNotification,pdwCookie) (This)->lpVtbl->RegisterForPackageStateChanges(This,packageFullName,pPackageExecutionStateChangeNotification,pdwCookie)
34584#define IPackageDebugSettings_UnregisterForPackageStateChanges(This,dwCookie) (This)->lpVtbl->UnregisterForPackageStateChanges(This,dwCookie)
34585#else
34586/*** IUnknown methods ***/
34587static inline HRESULT IPackageDebugSettings_QueryInterface(IPackageDebugSettings* This,REFIID riid,void **ppvObject) {
34588    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34589}
34590static inline ULONG IPackageDebugSettings_AddRef(IPackageDebugSettings* This) {
34591    return This->lpVtbl->AddRef(This);
34592}
34593static inline ULONG IPackageDebugSettings_Release(IPackageDebugSettings* This) {
34594    return This->lpVtbl->Release(This);
34595}
34596/*** IPackageDebugSettings methods ***/
34597static inline HRESULT IPackageDebugSettings_EnableDebugging(IPackageDebugSettings* This,LPCWSTR packageFullName,LPCWSTR debuggerCommandLine,PZZWSTR environment) {
34598    return This->lpVtbl->EnableDebugging(This,packageFullName,debuggerCommandLine,environment);
34599}
34600static inline HRESULT IPackageDebugSettings_DisableDebugging(IPackageDebugSettings* This,LPCWSTR packageFullName) {
34601    return This->lpVtbl->DisableDebugging(This,packageFullName);
34602}
34603static inline HRESULT IPackageDebugSettings_Suspend(IPackageDebugSettings* This,LPCWSTR packageFullName) {
34604    return This->lpVtbl->Suspend(This,packageFullName);
34605}
34606static inline HRESULT IPackageDebugSettings_Resume(IPackageDebugSettings* This,LPCWSTR packageFullName) {
34607    return This->lpVtbl->Resume(This,packageFullName);
34608}
34609static inline HRESULT IPackageDebugSettings_TerminateAllProcesses(IPackageDebugSettings* This,LPCWSTR packageFullName) {
34610    return This->lpVtbl->TerminateAllProcesses(This,packageFullName);
34611}
34612static inline HRESULT IPackageDebugSettings_SetTargetSessionId(IPackageDebugSettings* This,ULONG sessionId) {
34613    return This->lpVtbl->SetTargetSessionId(This,sessionId);
34614}
34615static inline HRESULT IPackageDebugSettings_EnumerateBackgroundTasks(IPackageDebugSettings* This,LPCWSTR packageFullName,ULONG *taskCount,LPCGUID *taskIds,LPCWSTR **taskNames) {
34616    return This->lpVtbl->EnumerateBackgroundTasks(This,packageFullName,taskCount,taskIds,taskNames);
34617}
34618static inline HRESULT IPackageDebugSettings_ActivateBackgroundTask(IPackageDebugSettings* This,LPCGUID taskId) {
34619    return This->lpVtbl->ActivateBackgroundTask(This,taskId);
34620}
34621static inline HRESULT IPackageDebugSettings_StartServicing(IPackageDebugSettings* This,LPCWSTR packageFullName) {
34622    return This->lpVtbl->StartServicing(This,packageFullName);
34623}
34624static inline HRESULT IPackageDebugSettings_StopServicing(IPackageDebugSettings* This,LPCWSTR packageFullName) {
34625    return This->lpVtbl->StopServicing(This,packageFullName);
34626}
34627static inline HRESULT IPackageDebugSettings_StartSessionRedirection(IPackageDebugSettings* This,LPCWSTR packageFullName,ULONG sessionId) {
34628    return This->lpVtbl->StartSessionRedirection(This,packageFullName,sessionId);
34629}
34630static inline HRESULT IPackageDebugSettings_StopSessionRedirection(IPackageDebugSettings* This,LPCWSTR packageFullName) {
34631    return This->lpVtbl->StopSessionRedirection(This,packageFullName);
34632}
34633static inline HRESULT IPackageDebugSettings_GetPackageExecutionState(IPackageDebugSettings* This,LPCWSTR packageFullName,PACKAGE_EXECUTION_STATE *packageExecutionState) {
34634    return This->lpVtbl->GetPackageExecutionState(This,packageFullName,packageExecutionState);
34635}
34636static inline HRESULT IPackageDebugSettings_RegisterForPackageStateChanges(IPackageDebugSettings* This,LPCWSTR packageFullName,IPackageExecutionStateChangeNotification *pPackageExecutionStateChangeNotification,DWORD *pdwCookie) {
34637    return This->lpVtbl->RegisterForPackageStateChanges(This,packageFullName,pPackageExecutionStateChangeNotification,pdwCookie);
34638}
34639static inline HRESULT IPackageDebugSettings_UnregisterForPackageStateChanges(IPackageDebugSettings* This,DWORD dwCookie) {
34640    return This->lpVtbl->UnregisterForPackageStateChanges(This,dwCookie);
34641}
34642#endif
34643#endif
34644
34645#endif
34646
34647
34648#endif  /* __IPackageDebugSettings_INTERFACE_DEFINED__ */
34649
34650
34651typedef enum AHE_TYPE {
34652    AHE_DESKTOP = 0,
34653    AHE_IMMERSIVE = 1
34654} AHE_TYPE;
34655
34656/*****************************************************************************
34657 * IExecuteCommandApplicationHostEnvironment interface
34658 */
34659#ifndef __IExecuteCommandApplicationHostEnvironment_INTERFACE_DEFINED__
34660#define __IExecuteCommandApplicationHostEnvironment_INTERFACE_DEFINED__
34661
34662DEFINE_GUID(IID_IExecuteCommandApplicationHostEnvironment, 0x18b21aa9, 0xe184, 0x4ff0, 0x9f,0x5e, 0xf8,0x82,0xd0,0x37,0x71,0xb3);
34663#if defined(__cplusplus) && !defined(CINTERFACE)
34664MIDL_INTERFACE("18b21aa9-e184-4ff0-9f5e-f882d03771b3")
34665IExecuteCommandApplicationHostEnvironment : public IUnknown
34666{
34667    virtual HRESULT STDMETHODCALLTYPE GetValue(
34668        AHE_TYPE *pahe) = 0;
34669
34670};
34671#ifdef __CRT_UUID_DECL
34672__CRT_UUID_DECL(IExecuteCommandApplicationHostEnvironment, 0x18b21aa9, 0xe184, 0x4ff0, 0x9f,0x5e, 0xf8,0x82,0xd0,0x37,0x71,0xb3)
34673#endif
34674#else
34675typedef struct IExecuteCommandApplicationHostEnvironmentVtbl {
34676    BEGIN_INTERFACE
34677
34678    /*** IUnknown methods ***/
34679    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34680        IExecuteCommandApplicationHostEnvironment *This,
34681        REFIID riid,
34682        void **ppvObject);
34683
34684    ULONG (STDMETHODCALLTYPE *AddRef)(
34685        IExecuteCommandApplicationHostEnvironment *This);
34686
34687    ULONG (STDMETHODCALLTYPE *Release)(
34688        IExecuteCommandApplicationHostEnvironment *This);
34689
34690    /*** IExecuteCommandApplicationHostEnvironment methods ***/
34691    HRESULT (STDMETHODCALLTYPE *GetValue)(
34692        IExecuteCommandApplicationHostEnvironment *This,
34693        AHE_TYPE *pahe);
34694
34695    END_INTERFACE
34696} IExecuteCommandApplicationHostEnvironmentVtbl;
34697
34698interface IExecuteCommandApplicationHostEnvironment {
34699    CONST_VTBL IExecuteCommandApplicationHostEnvironmentVtbl* lpVtbl;
34700};
34701
34702#ifdef COBJMACROS
34703#ifndef WIDL_C_INLINE_WRAPPERS
34704/*** IUnknown methods ***/
34705#define IExecuteCommandApplicationHostEnvironment_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34706#define IExecuteCommandApplicationHostEnvironment_AddRef(This) (This)->lpVtbl->AddRef(This)
34707#define IExecuteCommandApplicationHostEnvironment_Release(This) (This)->lpVtbl->Release(This)
34708/*** IExecuteCommandApplicationHostEnvironment methods ***/
34709#define IExecuteCommandApplicationHostEnvironment_GetValue(This,pahe) (This)->lpVtbl->GetValue(This,pahe)
34710#else
34711/*** IUnknown methods ***/
34712static inline HRESULT IExecuteCommandApplicationHostEnvironment_QueryInterface(IExecuteCommandApplicationHostEnvironment* This,REFIID riid,void **ppvObject) {
34713    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34714}
34715static inline ULONG IExecuteCommandApplicationHostEnvironment_AddRef(IExecuteCommandApplicationHostEnvironment* This) {
34716    return This->lpVtbl->AddRef(This);
34717}
34718static inline ULONG IExecuteCommandApplicationHostEnvironment_Release(IExecuteCommandApplicationHostEnvironment* This) {
34719    return This->lpVtbl->Release(This);
34720}
34721/*** IExecuteCommandApplicationHostEnvironment methods ***/
34722static inline HRESULT IExecuteCommandApplicationHostEnvironment_GetValue(IExecuteCommandApplicationHostEnvironment* This,AHE_TYPE *pahe) {
34723    return This->lpVtbl->GetValue(This,pahe);
34724}
34725#endif
34726#endif
34727
34728#endif
34729
34730
34731#endif  /* __IExecuteCommandApplicationHostEnvironment_INTERFACE_DEFINED__ */
34732
34733
34734typedef enum EC_HOST_UI_MODE {
34735    ECHUIM_DESKTOP = 0,
34736    ECHUIM_IMMERSIVE = 1,
34737    ECHUIM_SYSTEM_LAUNCHER = 2
34738} EC_HOST_UI_MODE;
34739
34740/*****************************************************************************
34741 * IExecuteCommandHost interface
34742 */
34743#ifndef __IExecuteCommandHost_INTERFACE_DEFINED__
34744#define __IExecuteCommandHost_INTERFACE_DEFINED__
34745
34746DEFINE_GUID(IID_IExecuteCommandHost, 0x4b6832a2, 0x5f04, 0x4c9d, 0xb8,0x9d, 0x72,0x7a,0x15,0xd1,0x03,0xe7);
34747#if defined(__cplusplus) && !defined(CINTERFACE)
34748MIDL_INTERFACE("4b6832a2-5f04-4c9d-b89d-727a15d103e7")
34749IExecuteCommandHost : public IUnknown
34750{
34751    virtual HRESULT STDMETHODCALLTYPE GetUIMode(
34752        EC_HOST_UI_MODE *pUIMode) = 0;
34753
34754};
34755#ifdef __CRT_UUID_DECL
34756__CRT_UUID_DECL(IExecuteCommandHost, 0x4b6832a2, 0x5f04, 0x4c9d, 0xb8,0x9d, 0x72,0x7a,0x15,0xd1,0x03,0xe7)
34757#endif
34758#else
34759typedef struct IExecuteCommandHostVtbl {
34760    BEGIN_INTERFACE
34761
34762    /*** IUnknown methods ***/
34763    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34764        IExecuteCommandHost *This,
34765        REFIID riid,
34766        void **ppvObject);
34767
34768    ULONG (STDMETHODCALLTYPE *AddRef)(
34769        IExecuteCommandHost *This);
34770
34771    ULONG (STDMETHODCALLTYPE *Release)(
34772        IExecuteCommandHost *This);
34773
34774    /*** IExecuteCommandHost methods ***/
34775    HRESULT (STDMETHODCALLTYPE *GetUIMode)(
34776        IExecuteCommandHost *This,
34777        EC_HOST_UI_MODE *pUIMode);
34778
34779    END_INTERFACE
34780} IExecuteCommandHostVtbl;
34781
34782interface IExecuteCommandHost {
34783    CONST_VTBL IExecuteCommandHostVtbl* lpVtbl;
34784};
34785
34786#ifdef COBJMACROS
34787#ifndef WIDL_C_INLINE_WRAPPERS
34788/*** IUnknown methods ***/
34789#define IExecuteCommandHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34790#define IExecuteCommandHost_AddRef(This) (This)->lpVtbl->AddRef(This)
34791#define IExecuteCommandHost_Release(This) (This)->lpVtbl->Release(This)
34792/*** IExecuteCommandHost methods ***/
34793#define IExecuteCommandHost_GetUIMode(This,pUIMode) (This)->lpVtbl->GetUIMode(This,pUIMode)
34794#else
34795/*** IUnknown methods ***/
34796static inline HRESULT IExecuteCommandHost_QueryInterface(IExecuteCommandHost* This,REFIID riid,void **ppvObject) {
34797    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34798}
34799static inline ULONG IExecuteCommandHost_AddRef(IExecuteCommandHost* This) {
34800    return This->lpVtbl->AddRef(This);
34801}
34802static inline ULONG IExecuteCommandHost_Release(IExecuteCommandHost* This) {
34803    return This->lpVtbl->Release(This);
34804}
34805/*** IExecuteCommandHost methods ***/
34806static inline HRESULT IExecuteCommandHost_GetUIMode(IExecuteCommandHost* This,EC_HOST_UI_MODE *pUIMode) {
34807    return This->lpVtbl->GetUIMode(This,pUIMode);
34808}
34809#endif
34810#endif
34811
34812#endif
34813
34814
34815#endif  /* __IExecuteCommandHost_INTERFACE_DEFINED__ */
34816
34817
34818#define SID_ExecuteCommandHost IID_IExecuteCommandHost
34819
34820typedef enum APPLICATION_VIEW_STATE {
34821    AVS_FULLSCREEN_LANDSCAPE = 0,
34822    AVS_FILLED = 1,
34823    AVS_SNAPPED = 2,
34824    AVS_FULLSCREEN_PORTRAIT = 3
34825} APPLICATION_VIEW_STATE;
34826
34827typedef enum EDGE_GESTURE_KIND {
34828    EGK_TOUCH = 0,
34829    EGK_KEYBOARD = 1,
34830    EGK_MOUSE = 2
34831} EDGE_GESTURE_KIND;
34832
34833/*****************************************************************************
34834 * IApplicationDesignModeSettings interface
34835 */
34836#ifndef __IApplicationDesignModeSettings_INTERFACE_DEFINED__
34837#define __IApplicationDesignModeSettings_INTERFACE_DEFINED__
34838
34839DEFINE_GUID(IID_IApplicationDesignModeSettings, 0x2a3dee9a, 0xe31d, 0x46d6, 0x85,0x08, 0xbc,0xc5,0x97,0xdb,0x35,0x57);
34840#if defined(__cplusplus) && !defined(CINTERFACE)
34841MIDL_INTERFACE("2a3dee9a-e31d-46d6-8508-bcc597db3557")
34842IApplicationDesignModeSettings : public IUnknown
34843{
34844    virtual HRESULT STDMETHODCALLTYPE SetNativeDisplaySize(
34845        SIZE sizeNativeDisplay) = 0;
34846
34847    virtual HRESULT STDMETHODCALLTYPE SetScaleFactor(
34848        DEVICE_SCALE_FACTOR scaleFactor) = 0;
34849
34850    virtual HRESULT STDMETHODCALLTYPE SetApplicationViewState(
34851        APPLICATION_VIEW_STATE viewState) = 0;
34852
34853    virtual HRESULT STDMETHODCALLTYPE ComputeApplicationSize(
34854        SIZE *psizeApplication) = 0;
34855
34856    virtual HRESULT STDMETHODCALLTYPE IsApplicationViewStateSupported(
34857        APPLICATION_VIEW_STATE viewState,
34858        SIZE sizeNativeDisplay,
34859        DEVICE_SCALE_FACTOR scaleFactor,
34860        WINBOOL *pfSupported) = 0;
34861
34862    virtual HRESULT STDMETHODCALLTYPE TriggerEdgeGesture(
34863        EDGE_GESTURE_KIND edgeGestureKind) = 0;
34864
34865};
34866#ifdef __CRT_UUID_DECL
34867__CRT_UUID_DECL(IApplicationDesignModeSettings, 0x2a3dee9a, 0xe31d, 0x46d6, 0x85,0x08, 0xbc,0xc5,0x97,0xdb,0x35,0x57)
34868#endif
34869#else
34870typedef struct IApplicationDesignModeSettingsVtbl {
34871    BEGIN_INTERFACE
34872
34873    /*** IUnknown methods ***/
34874    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34875        IApplicationDesignModeSettings *This,
34876        REFIID riid,
34877        void **ppvObject);
34878
34879    ULONG (STDMETHODCALLTYPE *AddRef)(
34880        IApplicationDesignModeSettings *This);
34881
34882    ULONG (STDMETHODCALLTYPE *Release)(
34883        IApplicationDesignModeSettings *This);
34884
34885    /*** IApplicationDesignModeSettings methods ***/
34886    HRESULT (STDMETHODCALLTYPE *SetNativeDisplaySize)(
34887        IApplicationDesignModeSettings *This,
34888        SIZE sizeNativeDisplay);
34889
34890    HRESULT (STDMETHODCALLTYPE *SetScaleFactor)(
34891        IApplicationDesignModeSettings *This,
34892        DEVICE_SCALE_FACTOR scaleFactor);
34893
34894    HRESULT (STDMETHODCALLTYPE *SetApplicationViewState)(
34895        IApplicationDesignModeSettings *This,
34896        APPLICATION_VIEW_STATE viewState);
34897
34898    HRESULT (STDMETHODCALLTYPE *ComputeApplicationSize)(
34899        IApplicationDesignModeSettings *This,
34900        SIZE *psizeApplication);
34901
34902    HRESULT (STDMETHODCALLTYPE *IsApplicationViewStateSupported)(
34903        IApplicationDesignModeSettings *This,
34904        APPLICATION_VIEW_STATE viewState,
34905        SIZE sizeNativeDisplay,
34906        DEVICE_SCALE_FACTOR scaleFactor,
34907        WINBOOL *pfSupported);
34908
34909    HRESULT (STDMETHODCALLTYPE *TriggerEdgeGesture)(
34910        IApplicationDesignModeSettings *This,
34911        EDGE_GESTURE_KIND edgeGestureKind);
34912
34913    END_INTERFACE
34914} IApplicationDesignModeSettingsVtbl;
34915
34916interface IApplicationDesignModeSettings {
34917    CONST_VTBL IApplicationDesignModeSettingsVtbl* lpVtbl;
34918};
34919
34920#ifdef COBJMACROS
34921#ifndef WIDL_C_INLINE_WRAPPERS
34922/*** IUnknown methods ***/
34923#define IApplicationDesignModeSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
34924#define IApplicationDesignModeSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
34925#define IApplicationDesignModeSettings_Release(This) (This)->lpVtbl->Release(This)
34926/*** IApplicationDesignModeSettings methods ***/
34927#define IApplicationDesignModeSettings_SetNativeDisplaySize(This,sizeNativeDisplay) (This)->lpVtbl->SetNativeDisplaySize(This,sizeNativeDisplay)
34928#define IApplicationDesignModeSettings_SetScaleFactor(This,scaleFactor) (This)->lpVtbl->SetScaleFactor(This,scaleFactor)
34929#define IApplicationDesignModeSettings_SetApplicationViewState(This,viewState) (This)->lpVtbl->SetApplicationViewState(This,viewState)
34930#define IApplicationDesignModeSettings_ComputeApplicationSize(This,psizeApplication) (This)->lpVtbl->ComputeApplicationSize(This,psizeApplication)
34931#define IApplicationDesignModeSettings_IsApplicationViewStateSupported(This,viewState,sizeNativeDisplay,scaleFactor,pfSupported) (This)->lpVtbl->IsApplicationViewStateSupported(This,viewState,sizeNativeDisplay,scaleFactor,pfSupported)
34932#define IApplicationDesignModeSettings_TriggerEdgeGesture(This,edgeGestureKind) (This)->lpVtbl->TriggerEdgeGesture(This,edgeGestureKind)
34933#else
34934/*** IUnknown methods ***/
34935static inline HRESULT IApplicationDesignModeSettings_QueryInterface(IApplicationDesignModeSettings* This,REFIID riid,void **ppvObject) {
34936    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
34937}
34938static inline ULONG IApplicationDesignModeSettings_AddRef(IApplicationDesignModeSettings* This) {
34939    return This->lpVtbl->AddRef(This);
34940}
34941static inline ULONG IApplicationDesignModeSettings_Release(IApplicationDesignModeSettings* This) {
34942    return This->lpVtbl->Release(This);
34943}
34944/*** IApplicationDesignModeSettings methods ***/
34945static inline HRESULT IApplicationDesignModeSettings_SetNativeDisplaySize(IApplicationDesignModeSettings* This,SIZE sizeNativeDisplay) {
34946    return This->lpVtbl->SetNativeDisplaySize(This,sizeNativeDisplay);
34947}
34948static inline HRESULT IApplicationDesignModeSettings_SetScaleFactor(IApplicationDesignModeSettings* This,DEVICE_SCALE_FACTOR scaleFactor) {
34949    return This->lpVtbl->SetScaleFactor(This,scaleFactor);
34950}
34951static inline HRESULT IApplicationDesignModeSettings_SetApplicationViewState(IApplicationDesignModeSettings* This,APPLICATION_VIEW_STATE viewState) {
34952    return This->lpVtbl->SetApplicationViewState(This,viewState);
34953}
34954static inline HRESULT IApplicationDesignModeSettings_ComputeApplicationSize(IApplicationDesignModeSettings* This,SIZE *psizeApplication) {
34955    return This->lpVtbl->ComputeApplicationSize(This,psizeApplication);
34956}
34957static inline HRESULT IApplicationDesignModeSettings_IsApplicationViewStateSupported(IApplicationDesignModeSettings* This,APPLICATION_VIEW_STATE viewState,SIZE sizeNativeDisplay,DEVICE_SCALE_FACTOR scaleFactor,WINBOOL *pfSupported) {
34958    return This->lpVtbl->IsApplicationViewStateSupported(This,viewState,sizeNativeDisplay,scaleFactor,pfSupported);
34959}
34960static inline HRESULT IApplicationDesignModeSettings_TriggerEdgeGesture(IApplicationDesignModeSettings* This,EDGE_GESTURE_KIND edgeGestureKind) {
34961    return This->lpVtbl->TriggerEdgeGesture(This,edgeGestureKind);
34962}
34963#endif
34964#endif
34965
34966#endif
34967
34968
34969#endif  /* __IApplicationDesignModeSettings_INTERFACE_DEFINED__ */
34970
34971
34972/*****************************************************************************
34973 * IInitializeWithWindow interface
34974 */
34975#ifndef __IInitializeWithWindow_INTERFACE_DEFINED__
34976#define __IInitializeWithWindow_INTERFACE_DEFINED__
34977
34978DEFINE_GUID(IID_IInitializeWithWindow, 0x3e68d4bd, 0x7135, 0x4d10, 0x80,0x18, 0x9f,0xb6,0xd9,0xf3,0x3f,0xa1);
34979#if defined(__cplusplus) && !defined(CINTERFACE)
34980MIDL_INTERFACE("3e68d4bd-7135-4d10-8018-9fb6d9f33fa1")
34981IInitializeWithWindow : public IUnknown
34982{
34983    virtual HRESULT STDMETHODCALLTYPE Initialize(
34984        HWND hwnd) = 0;
34985
34986};
34987#ifdef __CRT_UUID_DECL
34988__CRT_UUID_DECL(IInitializeWithWindow, 0x3e68d4bd, 0x7135, 0x4d10, 0x80,0x18, 0x9f,0xb6,0xd9,0xf3,0x3f,0xa1)
34989#endif
34990#else
34991typedef struct IInitializeWithWindowVtbl {
34992    BEGIN_INTERFACE
34993
34994    /*** IUnknown methods ***/
34995    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
34996        IInitializeWithWindow *This,
34997        REFIID riid,
34998        void **ppvObject);
34999
35000    ULONG (STDMETHODCALLTYPE *AddRef)(
35001        IInitializeWithWindow *This);
35002
35003    ULONG (STDMETHODCALLTYPE *Release)(
35004        IInitializeWithWindow *This);
35005
35006    /*** IInitializeWithWindow methods ***/
35007    HRESULT (STDMETHODCALLTYPE *Initialize)(
35008        IInitializeWithWindow *This,
35009        HWND hwnd);
35010
35011    END_INTERFACE
35012} IInitializeWithWindowVtbl;
35013
35014interface IInitializeWithWindow {
35015    CONST_VTBL IInitializeWithWindowVtbl* lpVtbl;
35016};
35017
35018#ifdef COBJMACROS
35019#ifndef WIDL_C_INLINE_WRAPPERS
35020/*** IUnknown methods ***/
35021#define IInitializeWithWindow_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
35022#define IInitializeWithWindow_AddRef(This) (This)->lpVtbl->AddRef(This)
35023#define IInitializeWithWindow_Release(This) (This)->lpVtbl->Release(This)
35024/*** IInitializeWithWindow methods ***/
35025#define IInitializeWithWindow_Initialize(This,hwnd) (This)->lpVtbl->Initialize(This,hwnd)
35026#else
35027/*** IUnknown methods ***/
35028static inline HRESULT IInitializeWithWindow_QueryInterface(IInitializeWithWindow* This,REFIID riid,void **ppvObject) {
35029    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
35030}
35031static inline ULONG IInitializeWithWindow_AddRef(IInitializeWithWindow* This) {
35032    return This->lpVtbl->AddRef(This);
35033}
35034static inline ULONG IInitializeWithWindow_Release(IInitializeWithWindow* This) {
35035    return This->lpVtbl->Release(This);
35036}
35037/*** IInitializeWithWindow methods ***/
35038static inline HRESULT IInitializeWithWindow_Initialize(IInitializeWithWindow* This,HWND hwnd) {
35039    return This->lpVtbl->Initialize(This,hwnd);
35040}
35041#endif
35042#endif
35043
35044#endif
35045
35046
35047#endif  /* __IInitializeWithWindow_INTERFACE_DEFINED__ */
35048
35049
35050/*****************************************************************************
35051 * IHandlerInfo interface
35052 */
35053#ifndef __IHandlerInfo_INTERFACE_DEFINED__
35054#define __IHandlerInfo_INTERFACE_DEFINED__
35055
35056DEFINE_GUID(IID_IHandlerInfo, 0x997706ef, 0xf880, 0x453b, 0x81,0x18, 0x39,0xe1,0xa2,0xd2,0x65,0x5a);
35057#if defined(__cplusplus) && !defined(CINTERFACE)
35058MIDL_INTERFACE("997706ef-f880-453b-8118-39e1a2d2655a")
35059IHandlerInfo : public IUnknown
35060{
35061    virtual HRESULT STDMETHODCALLTYPE GetApplicationDisplayName(
35062        LPWSTR *value) = 0;
35063
35064    virtual HRESULT STDMETHODCALLTYPE GetApplicationPublisher(
35065        LPWSTR *value) = 0;
35066
35067    virtual HRESULT STDMETHODCALLTYPE GetApplicationIconReference(
35068        LPWSTR *value) = 0;
35069
35070};
35071#ifdef __CRT_UUID_DECL
35072__CRT_UUID_DECL(IHandlerInfo, 0x997706ef, 0xf880, 0x453b, 0x81,0x18, 0x39,0xe1,0xa2,0xd2,0x65,0x5a)
35073#endif
35074#else
35075typedef struct IHandlerInfoVtbl {
35076    BEGIN_INTERFACE
35077
35078    /*** IUnknown methods ***/
35079    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
35080        IHandlerInfo *This,
35081        REFIID riid,
35082        void **ppvObject);
35083
35084    ULONG (STDMETHODCALLTYPE *AddRef)(
35085        IHandlerInfo *This);
35086
35087    ULONG (STDMETHODCALLTYPE *Release)(
35088        IHandlerInfo *This);
35089
35090    /*** IHandlerInfo methods ***/
35091    HRESULT (STDMETHODCALLTYPE *GetApplicationDisplayName)(
35092        IHandlerInfo *This,
35093        LPWSTR *value);
35094
35095    HRESULT (STDMETHODCALLTYPE *GetApplicationPublisher)(
35096        IHandlerInfo *This,
35097        LPWSTR *value);
35098
35099    HRESULT (STDMETHODCALLTYPE *GetApplicationIconReference)(
35100        IHandlerInfo *This,
35101        LPWSTR *value);
35102
35103    END_INTERFACE
35104} IHandlerInfoVtbl;
35105
35106interface IHandlerInfo {
35107    CONST_VTBL IHandlerInfoVtbl* lpVtbl;
35108};
35109
35110#ifdef COBJMACROS
35111#ifndef WIDL_C_INLINE_WRAPPERS
35112/*** IUnknown methods ***/
35113#define IHandlerInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
35114#define IHandlerInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
35115#define IHandlerInfo_Release(This) (This)->lpVtbl->Release(This)
35116/*** IHandlerInfo methods ***/
35117#define IHandlerInfo_GetApplicationDisplayName(This,value) (This)->lpVtbl->GetApplicationDisplayName(This,value)
35118#define IHandlerInfo_GetApplicationPublisher(This,value) (This)->lpVtbl->GetApplicationPublisher(This,value)
35119#define IHandlerInfo_GetApplicationIconReference(This,value) (This)->lpVtbl->GetApplicationIconReference(This,value)
35120#else
35121/*** IUnknown methods ***/
35122static inline HRESULT IHandlerInfo_QueryInterface(IHandlerInfo* This,REFIID riid,void **ppvObject) {
35123    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
35124}
35125static inline ULONG IHandlerInfo_AddRef(IHandlerInfo* This) {
35126    return This->lpVtbl->AddRef(This);
35127}
35128static inline ULONG IHandlerInfo_Release(IHandlerInfo* This) {
35129    return This->lpVtbl->Release(This);
35130}
35131/*** IHandlerInfo methods ***/
35132static inline HRESULT IHandlerInfo_GetApplicationDisplayName(IHandlerInfo* This,LPWSTR *value) {
35133    return This->lpVtbl->GetApplicationDisplayName(This,value);
35134}
35135static inline HRESULT IHandlerInfo_GetApplicationPublisher(IHandlerInfo* This,LPWSTR *value) {
35136    return This->lpVtbl->GetApplicationPublisher(This,value);
35137}
35138static inline HRESULT IHandlerInfo_GetApplicationIconReference(IHandlerInfo* This,LPWSTR *value) {
35139    return This->lpVtbl->GetApplicationIconReference(This,value);
35140}
35141#endif
35142#endif
35143
35144#endif
35145
35146
35147#endif  /* __IHandlerInfo_INTERFACE_DEFINED__ */
35148
35149
35150/*****************************************************************************
35151 * IHandlerActivationHost interface
35152 */
35153#ifndef __IHandlerActivationHost_INTERFACE_DEFINED__
35154#define __IHandlerActivationHost_INTERFACE_DEFINED__
35155
35156DEFINE_GUID(IID_IHandlerActivationHost, 0x35094a87, 0x8bb1, 0x4237, 0x96,0xc6, 0xc4,0x17,0xee,0xbd,0xb0,0x78);
35157#if defined(__cplusplus) && !defined(CINTERFACE)
35158MIDL_INTERFACE("35094a87-8bb1-4237-96c6-c417eebdb078")
35159IHandlerActivationHost : public IUnknown
35160{
35161    virtual HRESULT STDMETHODCALLTYPE BeforeCoCreateInstance(
35162        REFCLSID clsidHandler,
35163        IShellItemArray *itemsBeingActivated,
35164        IHandlerInfo *handlerInfo) = 0;
35165
35166    virtual HRESULT STDMETHODCALLTYPE BeforeCreateProcess(
35167        LPCWSTR applicationPath,
35168        LPCWSTR commandLine,
35169        IHandlerInfo *handlerInfo) = 0;
35170
35171};
35172#ifdef __CRT_UUID_DECL
35173__CRT_UUID_DECL(IHandlerActivationHost, 0x35094a87, 0x8bb1, 0x4237, 0x96,0xc6, 0xc4,0x17,0xee,0xbd,0xb0,0x78)
35174#endif
35175#else
35176typedef struct IHandlerActivationHostVtbl {
35177    BEGIN_INTERFACE
35178
35179    /*** IUnknown methods ***/
35180    HRESULT (STDMETHODCALLTYPE *QueryInterface)(
35181        IHandlerActivationHost *This,
35182        REFIID riid,
35183        void **ppvObject);
35184
35185    ULONG (STDMETHODCALLTYPE *AddRef)(
35186        IHandlerActivationHost *This);
35187
35188    ULONG (STDMETHODCALLTYPE *Release)(
35189        IHandlerActivationHost *This);
35190
35191    /*** IHandlerActivationHost methods ***/
35192    HRESULT (STDMETHODCALLTYPE *BeforeCoCreateInstance)(
35193        IHandlerActivationHost *This,
35194        REFCLSID clsidHandler,
35195        IShellItemArray *itemsBeingActivated,
35196        IHandlerInfo *handlerInfo);
35197
35198    HRESULT (STDMETHODCALLTYPE *BeforeCreateProcess)(
35199        IHandlerActivationHost *This,
35200        LPCWSTR applicationPath,
35201        LPCWSTR commandLine,
35202        IHandlerInfo *handlerInfo);
35203
35204    END_INTERFACE
35205} IHandlerActivationHostVtbl;
35206
35207interface IHandlerActivationHost {
35208    CONST_VTBL IHandlerActivationHostVtbl* lpVtbl;
35209};
35210
35211#ifdef COBJMACROS
35212#ifndef WIDL_C_INLINE_WRAPPERS
35213/*** IUnknown methods ***/
35214#define IHandlerActivationHost_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
35215#define IHandlerActivationHost_AddRef(This) (This)->lpVtbl->AddRef(This)
35216#define IHandlerActivationHost_Release(This) (This)->lpVtbl->Release(This)
35217/*** IHandlerActivationHost methods ***/
35218#define IHandlerActivationHost_BeforeCoCreateInstance(This,clsidHandler,itemsBeingActivated,handlerInfo) (This)->lpVtbl->BeforeCoCreateInstance(This,clsidHandler,itemsBeingActivated,handlerInfo)
35219#define IHandlerActivationHost_BeforeCreateProcess(This,applicationPath,commandLine,handlerInfo) (This)->lpVtbl->BeforeCreateProcess(This,applicationPath,commandLine,handlerInfo)
35220#else
35221/*** IUnknown methods ***/
35222static inline HRESULT IHandlerActivationHost_QueryInterface(IHandlerActivationHost* This,REFIID riid,void **ppvObject) {
35223    return This->lpVtbl->QueryInterface(This,riid,ppvObject);
35224}
35225static inline ULONG IHandlerActivationHost_AddRef(IHandlerActivationHost* This) {
35226    return This->lpVtbl->AddRef(This);
35227}
35228static inline ULONG IHandlerActivationHost_Release(IHandlerActivationHost* This) {
35229    return This->lpVtbl->Release(This);
35230}
35231/*** IHandlerActivationHost methods ***/
35232static inline HRESULT IHandlerActivationHost_BeforeCoCreateInstance(IHandlerActivationHost* This,REFCLSID clsidHandler,IShellItemArray *itemsBeingActivated,IHandlerInfo *handlerInfo) {
35233    return This->lpVtbl->BeforeCoCreateInstance(This,clsidHandler,itemsBeingActivated,handlerInfo);
35234}
35235static inline HRESULT IHandlerActivationHost_BeforeCreateProcess(IHandlerActivationHost* This,LPCWSTR applicationPath,LPCWSTR commandLine,IHandlerInfo *handlerInfo) {
35236    return This->lpVtbl->BeforeCreateProcess(This,applicationPath,commandLine,handlerInfo);
35237}
35238#endif
35239#endif
35240
35241#endif
35242
35243
35244#endif  /* __IHandlerActivationHost_INTERFACE_DEFINED__ */
35245
35246
35247#define SID_SHandlerActivationHost IID_IHandlerActivationHost
35248
35249DEFINE_GUID(SID_ShellExecuteNamedPropertyStore, 0xeb84ada2, 0x00ff, 0x4992, 0x83, 0x24, 0xed, 0x5c, 0xe0, 0x61, 0xcb, 0x29);
35250#endif
35251
35252#endif
35253/* Begin additional prototypes for all interfaces */
35254
35255ULONG           __RPC_USER PCIDLIST_ABSOLUTE_UserSize     (ULONG *, ULONG, PCIDLIST_ABSOLUTE *);
35256unsigned char * __RPC_USER PCIDLIST_ABSOLUTE_UserMarshal  (ULONG *, unsigned char *, PCIDLIST_ABSOLUTE *);
35257unsigned char * __RPC_USER PCIDLIST_ABSOLUTE_UserUnmarshal(ULONG *, unsigned char *, PCIDLIST_ABSOLUTE *);
35258void            __RPC_USER PCIDLIST_ABSOLUTE_UserFree     (ULONG *, PCIDLIST_ABSOLUTE *);
35259ULONG           __RPC_USER PIDLIST_ABSOLUTE_UserSize     (ULONG *, ULONG, PIDLIST_ABSOLUTE *);
35260unsigned char * __RPC_USER PIDLIST_ABSOLUTE_UserMarshal  (ULONG *, unsigned char *, PIDLIST_ABSOLUTE *);
35261unsigned char * __RPC_USER PIDLIST_ABSOLUTE_UserUnmarshal(ULONG *, unsigned char *, PIDLIST_ABSOLUTE *);
35262void            __RPC_USER PIDLIST_ABSOLUTE_UserFree     (ULONG *, PIDLIST_ABSOLUTE *);
35263ULONG           __RPC_USER PITEMID_CHILD_UserSize     (ULONG *, ULONG, PITEMID_CHILD *);
35264unsigned char * __RPC_USER PITEMID_CHILD_UserMarshal  (ULONG *, unsigned char *, PITEMID_CHILD *);
35265unsigned char * __RPC_USER PITEMID_CHILD_UserUnmarshal(ULONG *, unsigned char *, PITEMID_CHILD *);
35266void            __RPC_USER PITEMID_CHILD_UserFree     (ULONG *, PITEMID_CHILD *);
35267ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
35268unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
35269unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
35270void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
35271ULONG           __RPC_USER PIDLIST_RELATIVE_UserSize     (ULONG *, ULONG, PIDLIST_RELATIVE *);
35272unsigned char * __RPC_USER PIDLIST_RELATIVE_UserMarshal  (ULONG *, unsigned char *, PIDLIST_RELATIVE *);
35273unsigned char * __RPC_USER PIDLIST_RELATIVE_UserUnmarshal(ULONG *, unsigned char *, PIDLIST_RELATIVE *);
35274void            __RPC_USER PIDLIST_RELATIVE_UserFree     (ULONG *, PIDLIST_RELATIVE *);
35275ULONG           __RPC_USER PCUIDLIST_RELATIVE_UserSize     (ULONG *, ULONG, PCUIDLIST_RELATIVE *);
35276unsigned char * __RPC_USER PCUIDLIST_RELATIVE_UserMarshal  (ULONG *, unsigned char *, PCUIDLIST_RELATIVE *);
35277unsigned char * __RPC_USER PCUIDLIST_RELATIVE_UserUnmarshal(ULONG *, unsigned char *, PCUIDLIST_RELATIVE *);
35278void            __RPC_USER PCUIDLIST_RELATIVE_UserFree     (ULONG *, PCUIDLIST_RELATIVE *);
35279ULONG           __RPC_USER PCUITEMID_CHILD_UserSize     (ULONG *, ULONG, PCUITEMID_CHILD *);
35280unsigned char * __RPC_USER PCUITEMID_CHILD_UserMarshal  (ULONG *, unsigned char *, PCUITEMID_CHILD *);
35281unsigned char * __RPC_USER PCUITEMID_CHILD_UserUnmarshal(ULONG *, unsigned char *, PCUITEMID_CHILD *);
35282void            __RPC_USER PCUITEMID_CHILD_UserFree     (ULONG *, PCUITEMID_CHILD *);
35283ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
35284unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
35285unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
35286void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
35287ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
35288unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
35289unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
35290void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
35291ULONG           __RPC_USER LPSAFEARRAY_UserSize     (ULONG *, ULONG, LPSAFEARRAY *);
35292unsigned char * __RPC_USER LPSAFEARRAY_UserMarshal  (ULONG *, unsigned char *, LPSAFEARRAY *);
35293unsigned char * __RPC_USER LPSAFEARRAY_UserUnmarshal(ULONG *, unsigned char *, LPSAFEARRAY *);
35294void            __RPC_USER LPSAFEARRAY_UserFree     (ULONG *, LPSAFEARRAY *);
35295ULONG           __RPC_USER HBITMAP_UserSize     (ULONG *, ULONG, HBITMAP *);
35296unsigned char * __RPC_USER HBITMAP_UserMarshal  (ULONG *, unsigned char *, HBITMAP *);
35297unsigned char * __RPC_USER HBITMAP_UserUnmarshal(ULONG *, unsigned char *, HBITMAP *);
35298void            __RPC_USER HBITMAP_UserFree     (ULONG *, HBITMAP *);
35299ULONG           __RPC_USER HMENU_UserSize     (ULONG *, ULONG, HMENU *);
35300unsigned char * __RPC_USER HMENU_UserMarshal  (ULONG *, unsigned char *, HMENU *);
35301unsigned char * __RPC_USER HMENU_UserUnmarshal(ULONG *, unsigned char *, HMENU *);
35302void            __RPC_USER HMENU_UserFree     (ULONG *, HMENU *);
35303ULONG           __RPC_USER HGLOBAL_UserSize     (ULONG *, ULONG, HGLOBAL *);
35304unsigned char * __RPC_USER HGLOBAL_UserMarshal  (ULONG *, unsigned char *, HGLOBAL *);
35305unsigned char * __RPC_USER HGLOBAL_UserUnmarshal(ULONG *, unsigned char *, HGLOBAL *);
35306void            __RPC_USER HGLOBAL_UserFree     (ULONG *, HGLOBAL *);
35307ULONG           __RPC_USER HICON_UserSize     (ULONG *, ULONG, HICON *);
35308unsigned char * __RPC_USER HICON_UserMarshal  (ULONG *, unsigned char *, HICON *);
35309unsigned char * __RPC_USER HICON_UserUnmarshal(ULONG *, unsigned char *, HICON *);
35310void            __RPC_USER HICON_UserFree     (ULONG *, HICON *);
35311ULONG           __RPC_USER HACCEL_UserSize     (ULONG *, ULONG, HACCEL *);
35312unsigned char * __RPC_USER HACCEL_UserMarshal  (ULONG *, unsigned char *, HACCEL *);
35313unsigned char * __RPC_USER HACCEL_UserUnmarshal(ULONG *, unsigned char *, HACCEL *);
35314void            __RPC_USER HACCEL_UserFree     (ULONG *, HACCEL *);
35315ULONG           __RPC_USER HMONITOR_UserSize     (ULONG *, ULONG, HMONITOR *);
35316unsigned char * __RPC_USER HMONITOR_UserMarshal  (ULONG *, unsigned char *, HMONITOR *);
35317unsigned char * __RPC_USER HMONITOR_UserUnmarshal(ULONG *, unsigned char *, HMONITOR *);
35318void            __RPC_USER HMONITOR_UserFree     (ULONG *, HMONITOR *);
35319
35320/* End additional prototypes */
35321
35322#ifdef __cplusplus
35323}
35324#endif
35325
35326#endif /* __shobjidl_h__ */