zig

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

wuapi.h (278982B) - Raw


      1 /*** Autogenerated by WIDL 10.4 from include/wuapi.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 __wuapi_h__
     17 #define __wuapi_h__
     18 
     19 /* Forward declarations */
     20 
     21 #ifndef __IAutomaticUpdatesSettings_FWD_DEFINED__
     22 #define __IAutomaticUpdatesSettings_FWD_DEFINED__
     23 typedef interface IAutomaticUpdatesSettings IAutomaticUpdatesSettings;
     24 #ifdef __cplusplus
     25 interface IAutomaticUpdatesSettings;
     26 #endif /* __cplusplus */
     27 #endif
     28 
     29 #ifndef __IAutomaticUpdates_FWD_DEFINED__
     30 #define __IAutomaticUpdates_FWD_DEFINED__
     31 typedef interface IAutomaticUpdates IAutomaticUpdates;
     32 #ifdef __cplusplus
     33 interface IAutomaticUpdates;
     34 #endif /* __cplusplus */
     35 #endif
     36 
     37 #ifndef __IWebProxy_FWD_DEFINED__
     38 #define __IWebProxy_FWD_DEFINED__
     39 typedef interface IWebProxy IWebProxy;
     40 #ifdef __cplusplus
     41 interface IWebProxy;
     42 #endif /* __cplusplus */
     43 #endif
     44 
     45 #ifndef __IUpdateSession_FWD_DEFINED__
     46 #define __IUpdateSession_FWD_DEFINED__
     47 typedef interface IUpdateSession IUpdateSession;
     48 #ifdef __cplusplus
     49 interface IUpdateSession;
     50 #endif /* __cplusplus */
     51 #endif
     52 
     53 #ifndef __IImageInformation_FWD_DEFINED__
     54 #define __IImageInformation_FWD_DEFINED__
     55 typedef interface IImageInformation IImageInformation;
     56 #ifdef __cplusplus
     57 interface IImageInformation;
     58 #endif /* __cplusplus */
     59 #endif
     60 
     61 #ifndef __ICategory_FWD_DEFINED__
     62 #define __ICategory_FWD_DEFINED__
     63 typedef interface ICategory ICategory;
     64 #ifdef __cplusplus
     65 interface ICategory;
     66 #endif /* __cplusplus */
     67 #endif
     68 
     69 #ifndef __ICategoryCollection_FWD_DEFINED__
     70 #define __ICategoryCollection_FWD_DEFINED__
     71 typedef interface ICategoryCollection ICategoryCollection;
     72 #ifdef __cplusplus
     73 interface ICategoryCollection;
     74 #endif /* __cplusplus */
     75 #endif
     76 
     77 #ifndef __IStringCollection_FWD_DEFINED__
     78 #define __IStringCollection_FWD_DEFINED__
     79 typedef interface IStringCollection IStringCollection;
     80 #ifdef __cplusplus
     81 interface IStringCollection;
     82 #endif /* __cplusplus */
     83 #endif
     84 
     85 #ifndef __IUpdateException_FWD_DEFINED__
     86 #define __IUpdateException_FWD_DEFINED__
     87 typedef interface IUpdateException IUpdateException;
     88 #ifdef __cplusplus
     89 interface IUpdateException;
     90 #endif /* __cplusplus */
     91 #endif
     92 
     93 #ifndef __IUpdateExceptionCollection_FWD_DEFINED__
     94 #define __IUpdateExceptionCollection_FWD_DEFINED__
     95 typedef interface IUpdateExceptionCollection IUpdateExceptionCollection;
     96 #ifdef __cplusplus
     97 interface IUpdateExceptionCollection;
     98 #endif /* __cplusplus */
     99 #endif
    100 
    101 #ifndef __IUpdateIdentity_FWD_DEFINED__
    102 #define __IUpdateIdentity_FWD_DEFINED__
    103 typedef interface IUpdateIdentity IUpdateIdentity;
    104 #ifdef __cplusplus
    105 interface IUpdateIdentity;
    106 #endif /* __cplusplus */
    107 #endif
    108 
    109 #ifndef __IInstallationBehavior_FWD_DEFINED__
    110 #define __IInstallationBehavior_FWD_DEFINED__
    111 typedef interface IInstallationBehavior IInstallationBehavior;
    112 #ifdef __cplusplus
    113 interface IInstallationBehavior;
    114 #endif /* __cplusplus */
    115 #endif
    116 
    117 #ifndef __IUpdateDownloadContent_FWD_DEFINED__
    118 #define __IUpdateDownloadContent_FWD_DEFINED__
    119 typedef interface IUpdateDownloadContent IUpdateDownloadContent;
    120 #ifdef __cplusplus
    121 interface IUpdateDownloadContent;
    122 #endif /* __cplusplus */
    123 #endif
    124 
    125 #ifndef __IUpdateDownloadContentCollection_FWD_DEFINED__
    126 #define __IUpdateDownloadContentCollection_FWD_DEFINED__
    127 typedef interface IUpdateDownloadContentCollection IUpdateDownloadContentCollection;
    128 #ifdef __cplusplus
    129 interface IUpdateDownloadContentCollection;
    130 #endif /* __cplusplus */
    131 #endif
    132 
    133 #ifndef __IUpdate_FWD_DEFINED__
    134 #define __IUpdate_FWD_DEFINED__
    135 typedef interface IUpdate IUpdate;
    136 #ifdef __cplusplus
    137 interface IUpdate;
    138 #endif /* __cplusplus */
    139 #endif
    140 
    141 #ifndef __IUpdateCollection_FWD_DEFINED__
    142 #define __IUpdateCollection_FWD_DEFINED__
    143 typedef interface IUpdateCollection IUpdateCollection;
    144 #ifdef __cplusplus
    145 interface IUpdateCollection;
    146 #endif /* __cplusplus */
    147 #endif
    148 
    149 #ifndef __ISearchJob_FWD_DEFINED__
    150 #define __ISearchJob_FWD_DEFINED__
    151 typedef interface ISearchJob ISearchJob;
    152 #ifdef __cplusplus
    153 interface ISearchJob;
    154 #endif /* __cplusplus */
    155 #endif
    156 
    157 #ifndef __ISearchResult_FWD_DEFINED__
    158 #define __ISearchResult_FWD_DEFINED__
    159 typedef interface ISearchResult ISearchResult;
    160 #ifdef __cplusplus
    161 interface ISearchResult;
    162 #endif /* __cplusplus */
    163 #endif
    164 
    165 #ifndef __IUpdateHistoryEntry_FWD_DEFINED__
    166 #define __IUpdateHistoryEntry_FWD_DEFINED__
    167 typedef interface IUpdateHistoryEntry IUpdateHistoryEntry;
    168 #ifdef __cplusplus
    169 interface IUpdateHistoryEntry;
    170 #endif /* __cplusplus */
    171 #endif
    172 
    173 #ifndef __IUpdateHistoryEntryCollection_FWD_DEFINED__
    174 #define __IUpdateHistoryEntryCollection_FWD_DEFINED__
    175 typedef interface IUpdateHistoryEntryCollection IUpdateHistoryEntryCollection;
    176 #ifdef __cplusplus
    177 interface IUpdateHistoryEntryCollection;
    178 #endif /* __cplusplus */
    179 #endif
    180 
    181 #ifndef __IUpdateSearcher_FWD_DEFINED__
    182 #define __IUpdateSearcher_FWD_DEFINED__
    183 typedef interface IUpdateSearcher IUpdateSearcher;
    184 #ifdef __cplusplus
    185 interface IUpdateSearcher;
    186 #endif /* __cplusplus */
    187 #endif
    188 
    189 #ifndef __IUpdateDownloadResult_FWD_DEFINED__
    190 #define __IUpdateDownloadResult_FWD_DEFINED__
    191 typedef interface IUpdateDownloadResult IUpdateDownloadResult;
    192 #ifdef __cplusplus
    193 interface IUpdateDownloadResult;
    194 #endif /* __cplusplus */
    195 #endif
    196 
    197 #ifndef __IDownloadProgress_FWD_DEFINED__
    198 #define __IDownloadProgress_FWD_DEFINED__
    199 typedef interface IDownloadProgress IDownloadProgress;
    200 #ifdef __cplusplus
    201 interface IDownloadProgress;
    202 #endif /* __cplusplus */
    203 #endif
    204 
    205 #ifndef __IDownloadJob_FWD_DEFINED__
    206 #define __IDownloadJob_FWD_DEFINED__
    207 typedef interface IDownloadJob IDownloadJob;
    208 #ifdef __cplusplus
    209 interface IDownloadJob;
    210 #endif /* __cplusplus */
    211 #endif
    212 
    213 #ifndef __IDownloadResult_FWD_DEFINED__
    214 #define __IDownloadResult_FWD_DEFINED__
    215 typedef interface IDownloadResult IDownloadResult;
    216 #ifdef __cplusplus
    217 interface IDownloadResult;
    218 #endif /* __cplusplus */
    219 #endif
    220 
    221 #ifndef __IUpdateDownloader_FWD_DEFINED__
    222 #define __IUpdateDownloader_FWD_DEFINED__
    223 typedef interface IUpdateDownloader IUpdateDownloader;
    224 #ifdef __cplusplus
    225 interface IUpdateDownloader;
    226 #endif /* __cplusplus */
    227 #endif
    228 
    229 #ifndef __IUpdateInstallationResult_FWD_DEFINED__
    230 #define __IUpdateInstallationResult_FWD_DEFINED__
    231 typedef interface IUpdateInstallationResult IUpdateInstallationResult;
    232 #ifdef __cplusplus
    233 interface IUpdateInstallationResult;
    234 #endif /* __cplusplus */
    235 #endif
    236 
    237 #ifndef __IInstallationProgress_FWD_DEFINED__
    238 #define __IInstallationProgress_FWD_DEFINED__
    239 typedef interface IInstallationProgress IInstallationProgress;
    240 #ifdef __cplusplus
    241 interface IInstallationProgress;
    242 #endif /* __cplusplus */
    243 #endif
    244 
    245 #ifndef __IInstallationJob_FWD_DEFINED__
    246 #define __IInstallationJob_FWD_DEFINED__
    247 typedef interface IInstallationJob IInstallationJob;
    248 #ifdef __cplusplus
    249 interface IInstallationJob;
    250 #endif /* __cplusplus */
    251 #endif
    252 
    253 #ifndef __IInstallationResult_FWD_DEFINED__
    254 #define __IInstallationResult_FWD_DEFINED__
    255 typedef interface IInstallationResult IInstallationResult;
    256 #ifdef __cplusplus
    257 interface IInstallationResult;
    258 #endif /* __cplusplus */
    259 #endif
    260 
    261 #ifndef __IUpdateInstaller_FWD_DEFINED__
    262 #define __IUpdateInstaller_FWD_DEFINED__
    263 typedef interface IUpdateInstaller IUpdateInstaller;
    264 #ifdef __cplusplus
    265 interface IUpdateInstaller;
    266 #endif /* __cplusplus */
    267 #endif
    268 
    269 #ifndef __ISystemInformation_FWD_DEFINED__
    270 #define __ISystemInformation_FWD_DEFINED__
    271 typedef interface ISystemInformation ISystemInformation;
    272 #ifdef __cplusplus
    273 interface ISystemInformation;
    274 #endif /* __cplusplus */
    275 #endif
    276 
    277 #ifndef __IWindowsUpdateAgentInfo_FWD_DEFINED__
    278 #define __IWindowsUpdateAgentInfo_FWD_DEFINED__
    279 typedef interface IWindowsUpdateAgentInfo IWindowsUpdateAgentInfo;
    280 #ifdef __cplusplus
    281 interface IWindowsUpdateAgentInfo;
    282 #endif /* __cplusplus */
    283 #endif
    284 
    285 #ifndef __AutomaticUpdates_FWD_DEFINED__
    286 #define __AutomaticUpdates_FWD_DEFINED__
    287 #ifdef __cplusplus
    288 typedef class AutomaticUpdates AutomaticUpdates;
    289 #else
    290 typedef struct AutomaticUpdates AutomaticUpdates;
    291 #endif /* defined __cplusplus */
    292 #endif /* defined __AutomaticUpdates_FWD_DEFINED__ */
    293 
    294 #ifndef __UpdateInstaller_FWD_DEFINED__
    295 #define __UpdateInstaller_FWD_DEFINED__
    296 #ifdef __cplusplus
    297 typedef class UpdateInstaller UpdateInstaller;
    298 #else
    299 typedef struct UpdateInstaller UpdateInstaller;
    300 #endif /* defined __cplusplus */
    301 #endif /* defined __UpdateInstaller_FWD_DEFINED__ */
    302 
    303 #ifndef __UpdateSession_FWD_DEFINED__
    304 #define __UpdateSession_FWD_DEFINED__
    305 #ifdef __cplusplus
    306 typedef class UpdateSession UpdateSession;
    307 #else
    308 typedef struct UpdateSession UpdateSession;
    309 #endif /* defined __cplusplus */
    310 #endif /* defined __UpdateSession_FWD_DEFINED__ */
    311 
    312 #ifndef __SystemInformation_FWD_DEFINED__
    313 #define __SystemInformation_FWD_DEFINED__
    314 #ifdef __cplusplus
    315 typedef class SystemInformation SystemInformation;
    316 #else
    317 typedef struct SystemInformation SystemInformation;
    318 #endif /* defined __cplusplus */
    319 #endif /* defined __SystemInformation_FWD_DEFINED__ */
    320 
    321 #ifndef __WindowsUpdateAgentInfo_FWD_DEFINED__
    322 #define __WindowsUpdateAgentInfo_FWD_DEFINED__
    323 #ifdef __cplusplus
    324 typedef class WindowsUpdateAgentInfo WindowsUpdateAgentInfo;
    325 #else
    326 typedef struct WindowsUpdateAgentInfo WindowsUpdateAgentInfo;
    327 #endif /* defined __cplusplus */
    328 #endif /* defined __WindowsUpdateAgentInfo_FWD_DEFINED__ */
    329 
    330 /* Headers for imported files */
    331 
    332 #include <oaidl.h>
    333 
    334 #ifdef __cplusplus
    335 extern "C" {
    336 #endif
    337 
    338 #ifndef __WUApiLib_LIBRARY_DEFINED__
    339 #define __WUApiLib_LIBRARY_DEFINED__
    340 
    341 DEFINE_GUID(LIBID_WUApiLib, 0xb596cc9f, 0x56e5, 0x419e, 0xa6,0x22, 0xe0,0x1b,0xb4,0x57,0x43,0x1e);
    342 
    343 #ifndef __ICategoryCollection_FWD_DEFINED__
    344 #define __ICategoryCollection_FWD_DEFINED__
    345 typedef interface ICategoryCollection ICategoryCollection;
    346 #ifdef __cplusplus
    347 interface ICategoryCollection;
    348 #endif /* __cplusplus */
    349 #endif
    350 
    351 #ifndef __IStringCollection_FWD_DEFINED__
    352 #define __IStringCollection_FWD_DEFINED__
    353 typedef interface IStringCollection IStringCollection;
    354 #ifdef __cplusplus
    355 interface IStringCollection;
    356 #endif /* __cplusplus */
    357 #endif
    358 
    359 #ifndef __IUpdateCollection_FWD_DEFINED__
    360 #define __IUpdateCollection_FWD_DEFINED__
    361 typedef interface IUpdateCollection IUpdateCollection;
    362 #ifdef __cplusplus
    363 interface IUpdateCollection;
    364 #endif /* __cplusplus */
    365 #endif
    366 
    367 #ifndef __IUpdateDownloader_FWD_DEFINED__
    368 #define __IUpdateDownloader_FWD_DEFINED__
    369 typedef interface IUpdateDownloader IUpdateDownloader;
    370 #ifdef __cplusplus
    371 interface IUpdateDownloader;
    372 #endif /* __cplusplus */
    373 #endif
    374 
    375 #ifndef __IUpdateInstaller_FWD_DEFINED__
    376 #define __IUpdateInstaller_FWD_DEFINED__
    377 typedef interface IUpdateInstaller IUpdateInstaller;
    378 #ifdef __cplusplus
    379 interface IUpdateInstaller;
    380 #endif /* __cplusplus */
    381 #endif
    382 
    383 #ifndef __IUpdateSearcher_FWD_DEFINED__
    384 #define __IUpdateSearcher_FWD_DEFINED__
    385 typedef interface IUpdateSearcher IUpdateSearcher;
    386 #ifdef __cplusplus
    387 interface IUpdateSearcher;
    388 #endif /* __cplusplus */
    389 #endif
    390 
    391 typedef enum tagDownloadPriority {
    392     dpLow = 1,
    393     dpNormal = 2,
    394     dpHigh = 3
    395 } DownloadPriority;
    396 typedef enum tagServerSelection {
    397     ssDefault = 0,
    398     ssManagedServer = 1,
    399     ssWindowsUpdate = 2,
    400     ssOthers = 3
    401 } ServerSelection;
    402 typedef enum tagAutomaticUpdatesNotificationLevel {
    403     aunlNotConfigured = 0,
    404     aunlDisabled = 1,
    405     aunlNotifyBeforeDownload = 2,
    406     aunlNotifyBeforeInstallation = 3,
    407     aunlScheduledInstallation = 4
    408 } AutomaticUpdatesNotificationLevel;
    409 typedef enum tagAutomaticUpdatesScheduledInstallationDay {
    410     ausidEveryDay = 0,
    411     ausidEverySunday = 1,
    412     ausidEveryMonday = 2,
    413     ausidEveryTuesday = 3,
    414     ausidEveryWednesday = 4,
    415     ausidEveryThursday = 5,
    416     ausidEveryFriday = 6,
    417     ausidEverySaturday = 7
    418 } AutomaticUpdatesScheduledInstallationDay;
    419 typedef enum tagDownloadPhase {
    420     dphInitializing = 0,
    421     dphDownloading = 1,
    422     dphVerifying = 2
    423 } DownloadPhase;
    424 typedef enum tagOperationResultCode {
    425     orcNotStarted = 0,
    426     orcInProgress = 1,
    427     orcSucceeded = 2,
    428     orcSucceededWithErrors = 3,
    429     orcFailed = 4,
    430     orcAborted = 5
    431 } OperationResultCode;
    432 typedef enum tagUpdateExceptionContext {
    433     uecGeneral = 1,
    434     uecWindowsDriver = 2,
    435     uecWindowsInstaller = 3
    436 } UpdateExceptionContext;
    437 typedef enum tagInstallationImpact {
    438     iiNormal = 0,
    439     iiMinor = 1,
    440     iiRequiresExclusiveHandling = 2
    441 } InstallationImpact;
    442 typedef enum tagInstallationRebootBehavior {
    443     irbNeverReboots = 0,
    444     irbAlwaysRequiresReboot = 1,
    445     irbCanRequestReboot = 2
    446 } InstallationRebootBehavior;
    447 typedef enum tagUpdateType {
    448     utSoftware = 1,
    449     utDriver = 2
    450 } UpdateType;
    451 typedef enum tagUpdateOperation {
    452     uoInstallation = 1,
    453     uoUninstallation = 2
    454 } UpdateOperation;
    455 typedef enum tagDeploymentAction {
    456     daNone = 0,
    457     daInstallation = 1,
    458     daUninstallation = 2,
    459     daDetection = 3
    460 } DeploymentAction;
    461 /*****************************************************************************
    462  * IAutomaticUpdatesSettings interface
    463  */
    464 #ifndef __IAutomaticUpdatesSettings_INTERFACE_DEFINED__
    465 #define __IAutomaticUpdatesSettings_INTERFACE_DEFINED__
    466 
    467 DEFINE_GUID(IID_IAutomaticUpdatesSettings, 0x2ee48f22, 0xaf3c, 0x405f, 0x89,0x70, 0xf7,0x1b,0xe1,0x2e,0xe9,0xa2);
    468 #if defined(__cplusplus) && !defined(CINTERFACE)
    469 MIDL_INTERFACE("2ee48f22-af3c-405f-8970-f71be12ee9a2")
    470 IAutomaticUpdatesSettings : public IDispatch
    471 {
    472     virtual HRESULT STDMETHODCALLTYPE get_NotificationLevel(
    473         AutomaticUpdatesNotificationLevel *retval) = 0;
    474 
    475     virtual HRESULT STDMETHODCALLTYPE put_NotificationLevel(
    476         AutomaticUpdatesNotificationLevel value) = 0;
    477 
    478     virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(
    479         VARIANT_BOOL *retval) = 0;
    480 
    481     virtual HRESULT STDMETHODCALLTYPE get_Required(
    482         VARIANT_BOOL *retval) = 0;
    483 
    484     virtual HRESULT STDMETHODCALLTYPE get_ScheduledInstallationDay(
    485         AutomaticUpdatesScheduledInstallationDay *retval) = 0;
    486 
    487     virtual HRESULT STDMETHODCALLTYPE put_ScheduledInstallationDay(
    488         AutomaticUpdatesScheduledInstallationDay value) = 0;
    489 
    490     virtual HRESULT STDMETHODCALLTYPE get_ScheduledInstallationTime(
    491         LONG *retval) = 0;
    492 
    493     virtual HRESULT STDMETHODCALLTYPE put_ScheduledInstallationTime(
    494         LONG value) = 0;
    495 
    496     virtual HRESULT STDMETHODCALLTYPE Refresh(
    497         ) = 0;
    498 
    499     virtual HRESULT STDMETHODCALLTYPE Save(
    500         ) = 0;
    501 
    502 };
    503 #ifdef __CRT_UUID_DECL
    504 __CRT_UUID_DECL(IAutomaticUpdatesSettings, 0x2ee48f22, 0xaf3c, 0x405f, 0x89,0x70, 0xf7,0x1b,0xe1,0x2e,0xe9,0xa2)
    505 #endif
    506 #else
    507 typedef struct IAutomaticUpdatesSettingsVtbl {
    508     BEGIN_INTERFACE
    509 
    510     /*** IUnknown methods ***/
    511     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    512         IAutomaticUpdatesSettings *This,
    513         REFIID riid,
    514         void **ppvObject);
    515 
    516     ULONG (STDMETHODCALLTYPE *AddRef)(
    517         IAutomaticUpdatesSettings *This);
    518 
    519     ULONG (STDMETHODCALLTYPE *Release)(
    520         IAutomaticUpdatesSettings *This);
    521 
    522     /*** IDispatch methods ***/
    523     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
    524         IAutomaticUpdatesSettings *This,
    525         UINT *pctinfo);
    526 
    527     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
    528         IAutomaticUpdatesSettings *This,
    529         UINT iTInfo,
    530         LCID lcid,
    531         ITypeInfo **ppTInfo);
    532 
    533     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
    534         IAutomaticUpdatesSettings *This,
    535         REFIID riid,
    536         LPOLESTR *rgszNames,
    537         UINT cNames,
    538         LCID lcid,
    539         DISPID *rgDispId);
    540 
    541     HRESULT (STDMETHODCALLTYPE *Invoke)(
    542         IAutomaticUpdatesSettings *This,
    543         DISPID dispIdMember,
    544         REFIID riid,
    545         LCID lcid,
    546         WORD wFlags,
    547         DISPPARAMS *pDispParams,
    548         VARIANT *pVarResult,
    549         EXCEPINFO *pExcepInfo,
    550         UINT *puArgErr);
    551 
    552     /*** IAutomaticUpdatesSettings methods ***/
    553     HRESULT (STDMETHODCALLTYPE *get_NotificationLevel)(
    554         IAutomaticUpdatesSettings *This,
    555         AutomaticUpdatesNotificationLevel *retval);
    556 
    557     HRESULT (STDMETHODCALLTYPE *put_NotificationLevel)(
    558         IAutomaticUpdatesSettings *This,
    559         AutomaticUpdatesNotificationLevel value);
    560 
    561     HRESULT (STDMETHODCALLTYPE *get_ReadOnly)(
    562         IAutomaticUpdatesSettings *This,
    563         VARIANT_BOOL *retval);
    564 
    565     HRESULT (STDMETHODCALLTYPE *get_Required)(
    566         IAutomaticUpdatesSettings *This,
    567         VARIANT_BOOL *retval);
    568 
    569     HRESULT (STDMETHODCALLTYPE *get_ScheduledInstallationDay)(
    570         IAutomaticUpdatesSettings *This,
    571         AutomaticUpdatesScheduledInstallationDay *retval);
    572 
    573     HRESULT (STDMETHODCALLTYPE *put_ScheduledInstallationDay)(
    574         IAutomaticUpdatesSettings *This,
    575         AutomaticUpdatesScheduledInstallationDay value);
    576 
    577     HRESULT (STDMETHODCALLTYPE *get_ScheduledInstallationTime)(
    578         IAutomaticUpdatesSettings *This,
    579         LONG *retval);
    580 
    581     HRESULT (STDMETHODCALLTYPE *put_ScheduledInstallationTime)(
    582         IAutomaticUpdatesSettings *This,
    583         LONG value);
    584 
    585     HRESULT (STDMETHODCALLTYPE *Refresh)(
    586         IAutomaticUpdatesSettings *This);
    587 
    588     HRESULT (STDMETHODCALLTYPE *Save)(
    589         IAutomaticUpdatesSettings *This);
    590 
    591     END_INTERFACE
    592 } IAutomaticUpdatesSettingsVtbl;
    593 
    594 interface IAutomaticUpdatesSettings {
    595     CONST_VTBL IAutomaticUpdatesSettingsVtbl* lpVtbl;
    596 };
    597 
    598 #ifdef COBJMACROS
    599 #ifndef WIDL_C_INLINE_WRAPPERS
    600 /*** IUnknown methods ***/
    601 #define IAutomaticUpdatesSettings_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    602 #define IAutomaticUpdatesSettings_AddRef(This) (This)->lpVtbl->AddRef(This)
    603 #define IAutomaticUpdatesSettings_Release(This) (This)->lpVtbl->Release(This)
    604 /*** IDispatch methods ***/
    605 #define IAutomaticUpdatesSettings_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    606 #define IAutomaticUpdatesSettings_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    607 #define IAutomaticUpdatesSettings_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    608 #define IAutomaticUpdatesSettings_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    609 /*** IAutomaticUpdatesSettings methods ***/
    610 #define IAutomaticUpdatesSettings_get_NotificationLevel(This,retval) (This)->lpVtbl->get_NotificationLevel(This,retval)
    611 #define IAutomaticUpdatesSettings_put_NotificationLevel(This,value) (This)->lpVtbl->put_NotificationLevel(This,value)
    612 #define IAutomaticUpdatesSettings_get_ReadOnly(This,retval) (This)->lpVtbl->get_ReadOnly(This,retval)
    613 #define IAutomaticUpdatesSettings_get_Required(This,retval) (This)->lpVtbl->get_Required(This,retval)
    614 #define IAutomaticUpdatesSettings_get_ScheduledInstallationDay(This,retval) (This)->lpVtbl->get_ScheduledInstallationDay(This,retval)
    615 #define IAutomaticUpdatesSettings_put_ScheduledInstallationDay(This,value) (This)->lpVtbl->put_ScheduledInstallationDay(This,value)
    616 #define IAutomaticUpdatesSettings_get_ScheduledInstallationTime(This,retval) (This)->lpVtbl->get_ScheduledInstallationTime(This,retval)
    617 #define IAutomaticUpdatesSettings_put_ScheduledInstallationTime(This,value) (This)->lpVtbl->put_ScheduledInstallationTime(This,value)
    618 #define IAutomaticUpdatesSettings_Refresh(This) (This)->lpVtbl->Refresh(This)
    619 #define IAutomaticUpdatesSettings_Save(This) (This)->lpVtbl->Save(This)
    620 #else
    621 /*** IUnknown methods ***/
    622 static inline HRESULT IAutomaticUpdatesSettings_QueryInterface(IAutomaticUpdatesSettings* This,REFIID riid,void **ppvObject) {
    623     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    624 }
    625 static inline ULONG IAutomaticUpdatesSettings_AddRef(IAutomaticUpdatesSettings* This) {
    626     return This->lpVtbl->AddRef(This);
    627 }
    628 static inline ULONG IAutomaticUpdatesSettings_Release(IAutomaticUpdatesSettings* This) {
    629     return This->lpVtbl->Release(This);
    630 }
    631 /*** IDispatch methods ***/
    632 static inline HRESULT IAutomaticUpdatesSettings_GetTypeInfoCount(IAutomaticUpdatesSettings* This,UINT *pctinfo) {
    633     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
    634 }
    635 static inline HRESULT IAutomaticUpdatesSettings_GetTypeInfo(IAutomaticUpdatesSettings* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    636     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
    637 }
    638 static inline HRESULT IAutomaticUpdatesSettings_GetIDsOfNames(IAutomaticUpdatesSettings* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    639     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
    640 }
    641 static inline HRESULT IAutomaticUpdatesSettings_Invoke(IAutomaticUpdatesSettings* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    642     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
    643 }
    644 /*** IAutomaticUpdatesSettings methods ***/
    645 static inline HRESULT IAutomaticUpdatesSettings_get_NotificationLevel(IAutomaticUpdatesSettings* This,AutomaticUpdatesNotificationLevel *retval) {
    646     return This->lpVtbl->get_NotificationLevel(This,retval);
    647 }
    648 static inline HRESULT IAutomaticUpdatesSettings_put_NotificationLevel(IAutomaticUpdatesSettings* This,AutomaticUpdatesNotificationLevel value) {
    649     return This->lpVtbl->put_NotificationLevel(This,value);
    650 }
    651 static inline HRESULT IAutomaticUpdatesSettings_get_ReadOnly(IAutomaticUpdatesSettings* This,VARIANT_BOOL *retval) {
    652     return This->lpVtbl->get_ReadOnly(This,retval);
    653 }
    654 static inline HRESULT IAutomaticUpdatesSettings_get_Required(IAutomaticUpdatesSettings* This,VARIANT_BOOL *retval) {
    655     return This->lpVtbl->get_Required(This,retval);
    656 }
    657 static inline HRESULT IAutomaticUpdatesSettings_get_ScheduledInstallationDay(IAutomaticUpdatesSettings* This,AutomaticUpdatesScheduledInstallationDay *retval) {
    658     return This->lpVtbl->get_ScheduledInstallationDay(This,retval);
    659 }
    660 static inline HRESULT IAutomaticUpdatesSettings_put_ScheduledInstallationDay(IAutomaticUpdatesSettings* This,AutomaticUpdatesScheduledInstallationDay value) {
    661     return This->lpVtbl->put_ScheduledInstallationDay(This,value);
    662 }
    663 static inline HRESULT IAutomaticUpdatesSettings_get_ScheduledInstallationTime(IAutomaticUpdatesSettings* This,LONG *retval) {
    664     return This->lpVtbl->get_ScheduledInstallationTime(This,retval);
    665 }
    666 static inline HRESULT IAutomaticUpdatesSettings_put_ScheduledInstallationTime(IAutomaticUpdatesSettings* This,LONG value) {
    667     return This->lpVtbl->put_ScheduledInstallationTime(This,value);
    668 }
    669 static inline HRESULT IAutomaticUpdatesSettings_Refresh(IAutomaticUpdatesSettings* This) {
    670     return This->lpVtbl->Refresh(This);
    671 }
    672 static inline HRESULT IAutomaticUpdatesSettings_Save(IAutomaticUpdatesSettings* This) {
    673     return This->lpVtbl->Save(This);
    674 }
    675 #endif
    676 #endif
    677 
    678 #endif
    679 
    680 
    681 #endif  /* __IAutomaticUpdatesSettings_INTERFACE_DEFINED__ */
    682 
    683 /*****************************************************************************
    684  * IAutomaticUpdates interface
    685  */
    686 #ifndef __IAutomaticUpdates_INTERFACE_DEFINED__
    687 #define __IAutomaticUpdates_INTERFACE_DEFINED__
    688 
    689 DEFINE_GUID(IID_IAutomaticUpdates, 0x673425bf, 0xc082, 0x4c7c, 0xbd,0xfd, 0x56,0x94,0x64,0xb8,0xe0,0xce);
    690 #if defined(__cplusplus) && !defined(CINTERFACE)
    691 MIDL_INTERFACE("673425bf-c082-4c7c-bdfd-569464b8e0ce")
    692 IAutomaticUpdates : public IDispatch
    693 {
    694     virtual HRESULT STDMETHODCALLTYPE DetectNow(
    695         ) = 0;
    696 
    697     virtual HRESULT STDMETHODCALLTYPE Pause(
    698         ) = 0;
    699 
    700     virtual HRESULT STDMETHODCALLTYPE Resume(
    701         ) = 0;
    702 
    703     virtual HRESULT STDMETHODCALLTYPE ShowSettingsDialog(
    704         ) = 0;
    705 
    706     virtual HRESULT STDMETHODCALLTYPE get_Settings(
    707         IAutomaticUpdatesSettings **retval) = 0;
    708 
    709     virtual HRESULT STDMETHODCALLTYPE get_ServiceEnabled(
    710         VARIANT_BOOL *retval) = 0;
    711 
    712     virtual HRESULT STDMETHODCALLTYPE EnableService(
    713         ) = 0;
    714 
    715 };
    716 #ifdef __CRT_UUID_DECL
    717 __CRT_UUID_DECL(IAutomaticUpdates, 0x673425bf, 0xc082, 0x4c7c, 0xbd,0xfd, 0x56,0x94,0x64,0xb8,0xe0,0xce)
    718 #endif
    719 #else
    720 typedef struct IAutomaticUpdatesVtbl {
    721     BEGIN_INTERFACE
    722 
    723     /*** IUnknown methods ***/
    724     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    725         IAutomaticUpdates *This,
    726         REFIID riid,
    727         void **ppvObject);
    728 
    729     ULONG (STDMETHODCALLTYPE *AddRef)(
    730         IAutomaticUpdates *This);
    731 
    732     ULONG (STDMETHODCALLTYPE *Release)(
    733         IAutomaticUpdates *This);
    734 
    735     /*** IDispatch methods ***/
    736     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
    737         IAutomaticUpdates *This,
    738         UINT *pctinfo);
    739 
    740     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
    741         IAutomaticUpdates *This,
    742         UINT iTInfo,
    743         LCID lcid,
    744         ITypeInfo **ppTInfo);
    745 
    746     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
    747         IAutomaticUpdates *This,
    748         REFIID riid,
    749         LPOLESTR *rgszNames,
    750         UINT cNames,
    751         LCID lcid,
    752         DISPID *rgDispId);
    753 
    754     HRESULT (STDMETHODCALLTYPE *Invoke)(
    755         IAutomaticUpdates *This,
    756         DISPID dispIdMember,
    757         REFIID riid,
    758         LCID lcid,
    759         WORD wFlags,
    760         DISPPARAMS *pDispParams,
    761         VARIANT *pVarResult,
    762         EXCEPINFO *pExcepInfo,
    763         UINT *puArgErr);
    764 
    765     /*** IAutomaticUpdates methods ***/
    766     HRESULT (STDMETHODCALLTYPE *DetectNow)(
    767         IAutomaticUpdates *This);
    768 
    769     HRESULT (STDMETHODCALLTYPE *Pause)(
    770         IAutomaticUpdates *This);
    771 
    772     HRESULT (STDMETHODCALLTYPE *Resume)(
    773         IAutomaticUpdates *This);
    774 
    775     HRESULT (STDMETHODCALLTYPE *ShowSettingsDialog)(
    776         IAutomaticUpdates *This);
    777 
    778     HRESULT (STDMETHODCALLTYPE *get_Settings)(
    779         IAutomaticUpdates *This,
    780         IAutomaticUpdatesSettings **retval);
    781 
    782     HRESULT (STDMETHODCALLTYPE *get_ServiceEnabled)(
    783         IAutomaticUpdates *This,
    784         VARIANT_BOOL *retval);
    785 
    786     HRESULT (STDMETHODCALLTYPE *EnableService)(
    787         IAutomaticUpdates *This);
    788 
    789     END_INTERFACE
    790 } IAutomaticUpdatesVtbl;
    791 
    792 interface IAutomaticUpdates {
    793     CONST_VTBL IAutomaticUpdatesVtbl* lpVtbl;
    794 };
    795 
    796 #ifdef COBJMACROS
    797 #ifndef WIDL_C_INLINE_WRAPPERS
    798 /*** IUnknown methods ***/
    799 #define IAutomaticUpdates_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
    800 #define IAutomaticUpdates_AddRef(This) (This)->lpVtbl->AddRef(This)
    801 #define IAutomaticUpdates_Release(This) (This)->lpVtbl->Release(This)
    802 /*** IDispatch methods ***/
    803 #define IAutomaticUpdates_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
    804 #define IAutomaticUpdates_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
    805 #define IAutomaticUpdates_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
    806 #define IAutomaticUpdates_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
    807 /*** IAutomaticUpdates methods ***/
    808 #define IAutomaticUpdates_DetectNow(This) (This)->lpVtbl->DetectNow(This)
    809 #define IAutomaticUpdates_Pause(This) (This)->lpVtbl->Pause(This)
    810 #define IAutomaticUpdates_Resume(This) (This)->lpVtbl->Resume(This)
    811 #define IAutomaticUpdates_ShowSettingsDialog(This) (This)->lpVtbl->ShowSettingsDialog(This)
    812 #define IAutomaticUpdates_get_Settings(This,retval) (This)->lpVtbl->get_Settings(This,retval)
    813 #define IAutomaticUpdates_get_ServiceEnabled(This,retval) (This)->lpVtbl->get_ServiceEnabled(This,retval)
    814 #define IAutomaticUpdates_EnableService(This) (This)->lpVtbl->EnableService(This)
    815 #else
    816 /*** IUnknown methods ***/
    817 static inline HRESULT IAutomaticUpdates_QueryInterface(IAutomaticUpdates* This,REFIID riid,void **ppvObject) {
    818     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
    819 }
    820 static inline ULONG IAutomaticUpdates_AddRef(IAutomaticUpdates* This) {
    821     return This->lpVtbl->AddRef(This);
    822 }
    823 static inline ULONG IAutomaticUpdates_Release(IAutomaticUpdates* This) {
    824     return This->lpVtbl->Release(This);
    825 }
    826 /*** IDispatch methods ***/
    827 static inline HRESULT IAutomaticUpdates_GetTypeInfoCount(IAutomaticUpdates* This,UINT *pctinfo) {
    828     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
    829 }
    830 static inline HRESULT IAutomaticUpdates_GetTypeInfo(IAutomaticUpdates* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
    831     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
    832 }
    833 static inline HRESULT IAutomaticUpdates_GetIDsOfNames(IAutomaticUpdates* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
    834     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
    835 }
    836 static inline HRESULT IAutomaticUpdates_Invoke(IAutomaticUpdates* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
    837     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
    838 }
    839 /*** IAutomaticUpdates methods ***/
    840 static inline HRESULT IAutomaticUpdates_DetectNow(IAutomaticUpdates* This) {
    841     return This->lpVtbl->DetectNow(This);
    842 }
    843 static inline HRESULT IAutomaticUpdates_Pause(IAutomaticUpdates* This) {
    844     return This->lpVtbl->Pause(This);
    845 }
    846 static inline HRESULT IAutomaticUpdates_Resume(IAutomaticUpdates* This) {
    847     return This->lpVtbl->Resume(This);
    848 }
    849 static inline HRESULT IAutomaticUpdates_ShowSettingsDialog(IAutomaticUpdates* This) {
    850     return This->lpVtbl->ShowSettingsDialog(This);
    851 }
    852 static inline HRESULT IAutomaticUpdates_get_Settings(IAutomaticUpdates* This,IAutomaticUpdatesSettings **retval) {
    853     return This->lpVtbl->get_Settings(This,retval);
    854 }
    855 static inline HRESULT IAutomaticUpdates_get_ServiceEnabled(IAutomaticUpdates* This,VARIANT_BOOL *retval) {
    856     return This->lpVtbl->get_ServiceEnabled(This,retval);
    857 }
    858 static inline HRESULT IAutomaticUpdates_EnableService(IAutomaticUpdates* This) {
    859     return This->lpVtbl->EnableService(This);
    860 }
    861 #endif
    862 #endif
    863 
    864 #endif
    865 
    866 
    867 #endif  /* __IAutomaticUpdates_INTERFACE_DEFINED__ */
    868 
    869 /*****************************************************************************
    870  * IWebProxy interface
    871  */
    872 #ifndef __IWebProxy_INTERFACE_DEFINED__
    873 #define __IWebProxy_INTERFACE_DEFINED__
    874 
    875 DEFINE_GUID(IID_IWebProxy, 0x174c81fe, 0xaecd, 0x4dae, 0xb8,0xa0, 0x2c,0x63,0x18,0xdd,0x86,0xa8);
    876 #if defined(__cplusplus) && !defined(CINTERFACE)
    877 MIDL_INTERFACE("174c81fe-aecd-4dae-b8a0-2c6318dd86a8")
    878 IWebProxy : public IDispatch
    879 {
    880     virtual HRESULT STDMETHODCALLTYPE get_Address(
    881         BSTR *retval) = 0;
    882 
    883     virtual HRESULT STDMETHODCALLTYPE put_Address(
    884         BSTR value) = 0;
    885 
    886     virtual HRESULT STDMETHODCALLTYPE get_BypassList(
    887         IStringCollection **retval) = 0;
    888 
    889     virtual HRESULT STDMETHODCALLTYPE put_BypassList(
    890         IStringCollection *value) = 0;
    891 
    892     virtual HRESULT STDMETHODCALLTYPE get_BypassProxyOnLocal(
    893         VARIANT_BOOL *retval) = 0;
    894 
    895     virtual HRESULT STDMETHODCALLTYPE put_BypassProxyOnLocal(
    896         VARIANT_BOOL value) = 0;
    897 
    898     virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(
    899         VARIANT_BOOL *retval) = 0;
    900 
    901     virtual HRESULT STDMETHODCALLTYPE get_UserName(
    902         BSTR *retval) = 0;
    903 
    904     virtual HRESULT STDMETHODCALLTYPE put_UserName(
    905         BSTR value) = 0;
    906 
    907     virtual HRESULT STDMETHODCALLTYPE SetPassword(
    908         BSTR value) = 0;
    909 
    910     virtual HRESULT STDMETHODCALLTYPE PromptForCredentials(
    911         IUnknown *parentWindow,
    912         BSTR title) = 0;
    913 
    914     virtual HRESULT STDMETHODCALLTYPE PromptForCredentialsFromHwnd(
    915         HWND parentWindow,
    916         BSTR title) = 0;
    917 
    918     virtual HRESULT STDMETHODCALLTYPE get_AutoDetect(
    919         VARIANT_BOOL *retval) = 0;
    920 
    921     virtual HRESULT STDMETHODCALLTYPE put_AutoDetect(
    922         VARIANT_BOOL value) = 0;
    923 
    924 };
    925 #ifdef __CRT_UUID_DECL
    926 __CRT_UUID_DECL(IWebProxy, 0x174c81fe, 0xaecd, 0x4dae, 0xb8,0xa0, 0x2c,0x63,0x18,0xdd,0x86,0xa8)
    927 #endif
    928 #else
    929 typedef struct IWebProxyVtbl {
    930     BEGIN_INTERFACE
    931 
    932     /*** IUnknown methods ***/
    933     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
    934         IWebProxy *This,
    935         REFIID riid,
    936         void **ppvObject);
    937 
    938     ULONG (STDMETHODCALLTYPE *AddRef)(
    939         IWebProxy *This);
    940 
    941     ULONG (STDMETHODCALLTYPE *Release)(
    942         IWebProxy *This);
    943 
    944     /*** IDispatch methods ***/
    945     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
    946         IWebProxy *This,
    947         UINT *pctinfo);
    948 
    949     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
    950         IWebProxy *This,
    951         UINT iTInfo,
    952         LCID lcid,
    953         ITypeInfo **ppTInfo);
    954 
    955     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
    956         IWebProxy *This,
    957         REFIID riid,
    958         LPOLESTR *rgszNames,
    959         UINT cNames,
    960         LCID lcid,
    961         DISPID *rgDispId);
    962 
    963     HRESULT (STDMETHODCALLTYPE *Invoke)(
    964         IWebProxy *This,
    965         DISPID dispIdMember,
    966         REFIID riid,
    967         LCID lcid,
    968         WORD wFlags,
    969         DISPPARAMS *pDispParams,
    970         VARIANT *pVarResult,
    971         EXCEPINFO *pExcepInfo,
    972         UINT *puArgErr);
    973 
    974     /*** IWebProxy methods ***/
    975     HRESULT (STDMETHODCALLTYPE *get_Address)(
    976         IWebProxy *This,
    977         BSTR *retval);
    978 
    979     HRESULT (STDMETHODCALLTYPE *put_Address)(
    980         IWebProxy *This,
    981         BSTR value);
    982 
    983     HRESULT (STDMETHODCALLTYPE *get_BypassList)(
    984         IWebProxy *This,
    985         IStringCollection **retval);
    986 
    987     HRESULT (STDMETHODCALLTYPE *put_BypassList)(
    988         IWebProxy *This,
    989         IStringCollection *value);
    990 
    991     HRESULT (STDMETHODCALLTYPE *get_BypassProxyOnLocal)(
    992         IWebProxy *This,
    993         VARIANT_BOOL *retval);
    994 
    995     HRESULT (STDMETHODCALLTYPE *put_BypassProxyOnLocal)(
    996         IWebProxy *This,
    997         VARIANT_BOOL value);
    998 
    999     HRESULT (STDMETHODCALLTYPE *get_ReadOnly)(
   1000         IWebProxy *This,
   1001         VARIANT_BOOL *retval);
   1002 
   1003     HRESULT (STDMETHODCALLTYPE *get_UserName)(
   1004         IWebProxy *This,
   1005         BSTR *retval);
   1006 
   1007     HRESULT (STDMETHODCALLTYPE *put_UserName)(
   1008         IWebProxy *This,
   1009         BSTR value);
   1010 
   1011     HRESULT (STDMETHODCALLTYPE *SetPassword)(
   1012         IWebProxy *This,
   1013         BSTR value);
   1014 
   1015     HRESULT (STDMETHODCALLTYPE *PromptForCredentials)(
   1016         IWebProxy *This,
   1017         IUnknown *parentWindow,
   1018         BSTR title);
   1019 
   1020     HRESULT (STDMETHODCALLTYPE *PromptForCredentialsFromHwnd)(
   1021         IWebProxy *This,
   1022         HWND parentWindow,
   1023         BSTR title);
   1024 
   1025     HRESULT (STDMETHODCALLTYPE *get_AutoDetect)(
   1026         IWebProxy *This,
   1027         VARIANT_BOOL *retval);
   1028 
   1029     HRESULT (STDMETHODCALLTYPE *put_AutoDetect)(
   1030         IWebProxy *This,
   1031         VARIANT_BOOL value);
   1032 
   1033     END_INTERFACE
   1034 } IWebProxyVtbl;
   1035 
   1036 interface IWebProxy {
   1037     CONST_VTBL IWebProxyVtbl* lpVtbl;
   1038 };
   1039 
   1040 #ifdef COBJMACROS
   1041 #ifndef WIDL_C_INLINE_WRAPPERS
   1042 /*** IUnknown methods ***/
   1043 #define IWebProxy_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1044 #define IWebProxy_AddRef(This) (This)->lpVtbl->AddRef(This)
   1045 #define IWebProxy_Release(This) (This)->lpVtbl->Release(This)
   1046 /*** IDispatch methods ***/
   1047 #define IWebProxy_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   1048 #define IWebProxy_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   1049 #define IWebProxy_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   1050 #define IWebProxy_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   1051 /*** IWebProxy methods ***/
   1052 #define IWebProxy_get_Address(This,retval) (This)->lpVtbl->get_Address(This,retval)
   1053 #define IWebProxy_put_Address(This,value) (This)->lpVtbl->put_Address(This,value)
   1054 #define IWebProxy_get_BypassList(This,retval) (This)->lpVtbl->get_BypassList(This,retval)
   1055 #define IWebProxy_put_BypassList(This,value) (This)->lpVtbl->put_BypassList(This,value)
   1056 #define IWebProxy_get_BypassProxyOnLocal(This,retval) (This)->lpVtbl->get_BypassProxyOnLocal(This,retval)
   1057 #define IWebProxy_put_BypassProxyOnLocal(This,value) (This)->lpVtbl->put_BypassProxyOnLocal(This,value)
   1058 #define IWebProxy_get_ReadOnly(This,retval) (This)->lpVtbl->get_ReadOnly(This,retval)
   1059 #define IWebProxy_get_UserName(This,retval) (This)->lpVtbl->get_UserName(This,retval)
   1060 #define IWebProxy_put_UserName(This,value) (This)->lpVtbl->put_UserName(This,value)
   1061 #define IWebProxy_SetPassword(This,value) (This)->lpVtbl->SetPassword(This,value)
   1062 #define IWebProxy_PromptForCredentials(This,parentWindow,title) (This)->lpVtbl->PromptForCredentials(This,parentWindow,title)
   1063 #define IWebProxy_PromptForCredentialsFromHwnd(This,parentWindow,title) (This)->lpVtbl->PromptForCredentialsFromHwnd(This,parentWindow,title)
   1064 #define IWebProxy_get_AutoDetect(This,retval) (This)->lpVtbl->get_AutoDetect(This,retval)
   1065 #define IWebProxy_put_AutoDetect(This,value) (This)->lpVtbl->put_AutoDetect(This,value)
   1066 #else
   1067 /*** IUnknown methods ***/
   1068 static inline HRESULT IWebProxy_QueryInterface(IWebProxy* This,REFIID riid,void **ppvObject) {
   1069     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1070 }
   1071 static inline ULONG IWebProxy_AddRef(IWebProxy* This) {
   1072     return This->lpVtbl->AddRef(This);
   1073 }
   1074 static inline ULONG IWebProxy_Release(IWebProxy* This) {
   1075     return This->lpVtbl->Release(This);
   1076 }
   1077 /*** IDispatch methods ***/
   1078 static inline HRESULT IWebProxy_GetTypeInfoCount(IWebProxy* This,UINT *pctinfo) {
   1079     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   1080 }
   1081 static inline HRESULT IWebProxy_GetTypeInfo(IWebProxy* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   1082     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   1083 }
   1084 static inline HRESULT IWebProxy_GetIDsOfNames(IWebProxy* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   1085     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   1086 }
   1087 static inline HRESULT IWebProxy_Invoke(IWebProxy* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   1088     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   1089 }
   1090 /*** IWebProxy methods ***/
   1091 static inline HRESULT IWebProxy_get_Address(IWebProxy* This,BSTR *retval) {
   1092     return This->lpVtbl->get_Address(This,retval);
   1093 }
   1094 static inline HRESULT IWebProxy_put_Address(IWebProxy* This,BSTR value) {
   1095     return This->lpVtbl->put_Address(This,value);
   1096 }
   1097 static inline HRESULT IWebProxy_get_BypassList(IWebProxy* This,IStringCollection **retval) {
   1098     return This->lpVtbl->get_BypassList(This,retval);
   1099 }
   1100 static inline HRESULT IWebProxy_put_BypassList(IWebProxy* This,IStringCollection *value) {
   1101     return This->lpVtbl->put_BypassList(This,value);
   1102 }
   1103 static inline HRESULT IWebProxy_get_BypassProxyOnLocal(IWebProxy* This,VARIANT_BOOL *retval) {
   1104     return This->lpVtbl->get_BypassProxyOnLocal(This,retval);
   1105 }
   1106 static inline HRESULT IWebProxy_put_BypassProxyOnLocal(IWebProxy* This,VARIANT_BOOL value) {
   1107     return This->lpVtbl->put_BypassProxyOnLocal(This,value);
   1108 }
   1109 static inline HRESULT IWebProxy_get_ReadOnly(IWebProxy* This,VARIANT_BOOL *retval) {
   1110     return This->lpVtbl->get_ReadOnly(This,retval);
   1111 }
   1112 static inline HRESULT IWebProxy_get_UserName(IWebProxy* This,BSTR *retval) {
   1113     return This->lpVtbl->get_UserName(This,retval);
   1114 }
   1115 static inline HRESULT IWebProxy_put_UserName(IWebProxy* This,BSTR value) {
   1116     return This->lpVtbl->put_UserName(This,value);
   1117 }
   1118 static inline HRESULT IWebProxy_SetPassword(IWebProxy* This,BSTR value) {
   1119     return This->lpVtbl->SetPassword(This,value);
   1120 }
   1121 static inline HRESULT IWebProxy_PromptForCredentials(IWebProxy* This,IUnknown *parentWindow,BSTR title) {
   1122     return This->lpVtbl->PromptForCredentials(This,parentWindow,title);
   1123 }
   1124 static inline HRESULT IWebProxy_PromptForCredentialsFromHwnd(IWebProxy* This,HWND parentWindow,BSTR title) {
   1125     return This->lpVtbl->PromptForCredentialsFromHwnd(This,parentWindow,title);
   1126 }
   1127 static inline HRESULT IWebProxy_get_AutoDetect(IWebProxy* This,VARIANT_BOOL *retval) {
   1128     return This->lpVtbl->get_AutoDetect(This,retval);
   1129 }
   1130 static inline HRESULT IWebProxy_put_AutoDetect(IWebProxy* This,VARIANT_BOOL value) {
   1131     return This->lpVtbl->put_AutoDetect(This,value);
   1132 }
   1133 #endif
   1134 #endif
   1135 
   1136 #endif
   1137 
   1138 
   1139 #endif  /* __IWebProxy_INTERFACE_DEFINED__ */
   1140 
   1141 /*****************************************************************************
   1142  * IUpdateSession interface
   1143  */
   1144 #ifndef __IUpdateSession_INTERFACE_DEFINED__
   1145 #define __IUpdateSession_INTERFACE_DEFINED__
   1146 
   1147 DEFINE_GUID(IID_IUpdateSession, 0x816858a4, 0x260d, 0x4260, 0x93,0x3a, 0x25,0x85,0xf1,0xab,0xc7,0x6b);
   1148 #if defined(__cplusplus) && !defined(CINTERFACE)
   1149 MIDL_INTERFACE("816858a4-260d-4260-933a-2585f1abc76b")
   1150 IUpdateSession : public IDispatch
   1151 {
   1152     virtual HRESULT STDMETHODCALLTYPE get_ClientApplicationID(
   1153         BSTR *retval) = 0;
   1154 
   1155     virtual HRESULT STDMETHODCALLTYPE put_ClientApplicationID(
   1156         BSTR value) = 0;
   1157 
   1158     virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(
   1159         VARIANT_BOOL *retval) = 0;
   1160 
   1161     virtual HRESULT STDMETHODCALLTYPE get_WebProxy(
   1162         IWebProxy **retval) = 0;
   1163 
   1164     virtual HRESULT STDMETHODCALLTYPE put_WebProxy(
   1165         IWebProxy *value) = 0;
   1166 
   1167     virtual HRESULT STDMETHODCALLTYPE CreateUpdateSearcher(
   1168         IUpdateSearcher **retval) = 0;
   1169 
   1170     virtual HRESULT STDMETHODCALLTYPE CreateUpdateDownloader(
   1171         IUpdateDownloader **retval) = 0;
   1172 
   1173     virtual HRESULT STDMETHODCALLTYPE CreateUpdateInstaller(
   1174         IUpdateInstaller **retval) = 0;
   1175 
   1176 };
   1177 #ifdef __CRT_UUID_DECL
   1178 __CRT_UUID_DECL(IUpdateSession, 0x816858a4, 0x260d, 0x4260, 0x93,0x3a, 0x25,0x85,0xf1,0xab,0xc7,0x6b)
   1179 #endif
   1180 #else
   1181 typedef struct IUpdateSessionVtbl {
   1182     BEGIN_INTERFACE
   1183 
   1184     /*** IUnknown methods ***/
   1185     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1186         IUpdateSession *This,
   1187         REFIID riid,
   1188         void **ppvObject);
   1189 
   1190     ULONG (STDMETHODCALLTYPE *AddRef)(
   1191         IUpdateSession *This);
   1192 
   1193     ULONG (STDMETHODCALLTYPE *Release)(
   1194         IUpdateSession *This);
   1195 
   1196     /*** IDispatch methods ***/
   1197     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   1198         IUpdateSession *This,
   1199         UINT *pctinfo);
   1200 
   1201     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   1202         IUpdateSession *This,
   1203         UINT iTInfo,
   1204         LCID lcid,
   1205         ITypeInfo **ppTInfo);
   1206 
   1207     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   1208         IUpdateSession *This,
   1209         REFIID riid,
   1210         LPOLESTR *rgszNames,
   1211         UINT cNames,
   1212         LCID lcid,
   1213         DISPID *rgDispId);
   1214 
   1215     HRESULT (STDMETHODCALLTYPE *Invoke)(
   1216         IUpdateSession *This,
   1217         DISPID dispIdMember,
   1218         REFIID riid,
   1219         LCID lcid,
   1220         WORD wFlags,
   1221         DISPPARAMS *pDispParams,
   1222         VARIANT *pVarResult,
   1223         EXCEPINFO *pExcepInfo,
   1224         UINT *puArgErr);
   1225 
   1226     /*** IUpdateSession methods ***/
   1227     HRESULT (STDMETHODCALLTYPE *get_ClientApplicationID)(
   1228         IUpdateSession *This,
   1229         BSTR *retval);
   1230 
   1231     HRESULT (STDMETHODCALLTYPE *put_ClientApplicationID)(
   1232         IUpdateSession *This,
   1233         BSTR value);
   1234 
   1235     HRESULT (STDMETHODCALLTYPE *get_ReadOnly)(
   1236         IUpdateSession *This,
   1237         VARIANT_BOOL *retval);
   1238 
   1239     HRESULT (STDMETHODCALLTYPE *get_WebProxy)(
   1240         IUpdateSession *This,
   1241         IWebProxy **retval);
   1242 
   1243     HRESULT (STDMETHODCALLTYPE *put_WebProxy)(
   1244         IUpdateSession *This,
   1245         IWebProxy *value);
   1246 
   1247     HRESULT (STDMETHODCALLTYPE *CreateUpdateSearcher)(
   1248         IUpdateSession *This,
   1249         IUpdateSearcher **retval);
   1250 
   1251     HRESULT (STDMETHODCALLTYPE *CreateUpdateDownloader)(
   1252         IUpdateSession *This,
   1253         IUpdateDownloader **retval);
   1254 
   1255     HRESULT (STDMETHODCALLTYPE *CreateUpdateInstaller)(
   1256         IUpdateSession *This,
   1257         IUpdateInstaller **retval);
   1258 
   1259     END_INTERFACE
   1260 } IUpdateSessionVtbl;
   1261 
   1262 interface IUpdateSession {
   1263     CONST_VTBL IUpdateSessionVtbl* lpVtbl;
   1264 };
   1265 
   1266 #ifdef COBJMACROS
   1267 #ifndef WIDL_C_INLINE_WRAPPERS
   1268 /*** IUnknown methods ***/
   1269 #define IUpdateSession_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1270 #define IUpdateSession_AddRef(This) (This)->lpVtbl->AddRef(This)
   1271 #define IUpdateSession_Release(This) (This)->lpVtbl->Release(This)
   1272 /*** IDispatch methods ***/
   1273 #define IUpdateSession_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   1274 #define IUpdateSession_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   1275 #define IUpdateSession_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   1276 #define IUpdateSession_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   1277 /*** IUpdateSession methods ***/
   1278 #define IUpdateSession_get_ClientApplicationID(This,retval) (This)->lpVtbl->get_ClientApplicationID(This,retval)
   1279 #define IUpdateSession_put_ClientApplicationID(This,value) (This)->lpVtbl->put_ClientApplicationID(This,value)
   1280 #define IUpdateSession_get_ReadOnly(This,retval) (This)->lpVtbl->get_ReadOnly(This,retval)
   1281 #define IUpdateSession_get_WebProxy(This,retval) (This)->lpVtbl->get_WebProxy(This,retval)
   1282 #define IUpdateSession_put_WebProxy(This,value) (This)->lpVtbl->put_WebProxy(This,value)
   1283 #define IUpdateSession_CreateUpdateSearcher(This,retval) (This)->lpVtbl->CreateUpdateSearcher(This,retval)
   1284 #define IUpdateSession_CreateUpdateDownloader(This,retval) (This)->lpVtbl->CreateUpdateDownloader(This,retval)
   1285 #define IUpdateSession_CreateUpdateInstaller(This,retval) (This)->lpVtbl->CreateUpdateInstaller(This,retval)
   1286 #else
   1287 /*** IUnknown methods ***/
   1288 static inline HRESULT IUpdateSession_QueryInterface(IUpdateSession* This,REFIID riid,void **ppvObject) {
   1289     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1290 }
   1291 static inline ULONG IUpdateSession_AddRef(IUpdateSession* This) {
   1292     return This->lpVtbl->AddRef(This);
   1293 }
   1294 static inline ULONG IUpdateSession_Release(IUpdateSession* This) {
   1295     return This->lpVtbl->Release(This);
   1296 }
   1297 /*** IDispatch methods ***/
   1298 static inline HRESULT IUpdateSession_GetTypeInfoCount(IUpdateSession* This,UINT *pctinfo) {
   1299     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   1300 }
   1301 static inline HRESULT IUpdateSession_GetTypeInfo(IUpdateSession* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   1302     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   1303 }
   1304 static inline HRESULT IUpdateSession_GetIDsOfNames(IUpdateSession* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   1305     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   1306 }
   1307 static inline HRESULT IUpdateSession_Invoke(IUpdateSession* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   1308     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   1309 }
   1310 /*** IUpdateSession methods ***/
   1311 static inline HRESULT IUpdateSession_get_ClientApplicationID(IUpdateSession* This,BSTR *retval) {
   1312     return This->lpVtbl->get_ClientApplicationID(This,retval);
   1313 }
   1314 static inline HRESULT IUpdateSession_put_ClientApplicationID(IUpdateSession* This,BSTR value) {
   1315     return This->lpVtbl->put_ClientApplicationID(This,value);
   1316 }
   1317 static inline HRESULT IUpdateSession_get_ReadOnly(IUpdateSession* This,VARIANT_BOOL *retval) {
   1318     return This->lpVtbl->get_ReadOnly(This,retval);
   1319 }
   1320 static inline HRESULT IUpdateSession_get_WebProxy(IUpdateSession* This,IWebProxy **retval) {
   1321     return This->lpVtbl->get_WebProxy(This,retval);
   1322 }
   1323 static inline HRESULT IUpdateSession_put_WebProxy(IUpdateSession* This,IWebProxy *value) {
   1324     return This->lpVtbl->put_WebProxy(This,value);
   1325 }
   1326 static inline HRESULT IUpdateSession_CreateUpdateSearcher(IUpdateSession* This,IUpdateSearcher **retval) {
   1327     return This->lpVtbl->CreateUpdateSearcher(This,retval);
   1328 }
   1329 static inline HRESULT IUpdateSession_CreateUpdateDownloader(IUpdateSession* This,IUpdateDownloader **retval) {
   1330     return This->lpVtbl->CreateUpdateDownloader(This,retval);
   1331 }
   1332 static inline HRESULT IUpdateSession_CreateUpdateInstaller(IUpdateSession* This,IUpdateInstaller **retval) {
   1333     return This->lpVtbl->CreateUpdateInstaller(This,retval);
   1334 }
   1335 #endif
   1336 #endif
   1337 
   1338 #endif
   1339 
   1340 
   1341 #endif  /* __IUpdateSession_INTERFACE_DEFINED__ */
   1342 
   1343 /*****************************************************************************
   1344  * IImageInformation interface
   1345  */
   1346 #ifndef __IImageInformation_INTERFACE_DEFINED__
   1347 #define __IImageInformation_INTERFACE_DEFINED__
   1348 
   1349 DEFINE_GUID(IID_IImageInformation, 0x7c907864, 0x346c, 0x4aeb, 0x8f,0x3f, 0x57,0xda,0x28,0x9f,0x96,0x9f);
   1350 #if defined(__cplusplus) && !defined(CINTERFACE)
   1351 MIDL_INTERFACE("7c907864-346c-4aeb-8f3f-57da289f969f")
   1352 IImageInformation : public IDispatch
   1353 {
   1354     virtual HRESULT STDMETHODCALLTYPE get_AltText(
   1355         BSTR *retval) = 0;
   1356 
   1357     virtual HRESULT STDMETHODCALLTYPE get_Height(
   1358         LONG *retval) = 0;
   1359 
   1360     virtual HRESULT STDMETHODCALLTYPE get_Source(
   1361         BSTR *retval) = 0;
   1362 
   1363     virtual HRESULT STDMETHODCALLTYPE get_Width(
   1364         LONG *retval) = 0;
   1365 
   1366 };
   1367 #ifdef __CRT_UUID_DECL
   1368 __CRT_UUID_DECL(IImageInformation, 0x7c907864, 0x346c, 0x4aeb, 0x8f,0x3f, 0x57,0xda,0x28,0x9f,0x96,0x9f)
   1369 #endif
   1370 #else
   1371 typedef struct IImageInformationVtbl {
   1372     BEGIN_INTERFACE
   1373 
   1374     /*** IUnknown methods ***/
   1375     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1376         IImageInformation *This,
   1377         REFIID riid,
   1378         void **ppvObject);
   1379 
   1380     ULONG (STDMETHODCALLTYPE *AddRef)(
   1381         IImageInformation *This);
   1382 
   1383     ULONG (STDMETHODCALLTYPE *Release)(
   1384         IImageInformation *This);
   1385 
   1386     /*** IDispatch methods ***/
   1387     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   1388         IImageInformation *This,
   1389         UINT *pctinfo);
   1390 
   1391     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   1392         IImageInformation *This,
   1393         UINT iTInfo,
   1394         LCID lcid,
   1395         ITypeInfo **ppTInfo);
   1396 
   1397     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   1398         IImageInformation *This,
   1399         REFIID riid,
   1400         LPOLESTR *rgszNames,
   1401         UINT cNames,
   1402         LCID lcid,
   1403         DISPID *rgDispId);
   1404 
   1405     HRESULT (STDMETHODCALLTYPE *Invoke)(
   1406         IImageInformation *This,
   1407         DISPID dispIdMember,
   1408         REFIID riid,
   1409         LCID lcid,
   1410         WORD wFlags,
   1411         DISPPARAMS *pDispParams,
   1412         VARIANT *pVarResult,
   1413         EXCEPINFO *pExcepInfo,
   1414         UINT *puArgErr);
   1415 
   1416     /*** IImageInformation methods ***/
   1417     HRESULT (STDMETHODCALLTYPE *get_AltText)(
   1418         IImageInformation *This,
   1419         BSTR *retval);
   1420 
   1421     HRESULT (STDMETHODCALLTYPE *get_Height)(
   1422         IImageInformation *This,
   1423         LONG *retval);
   1424 
   1425     HRESULT (STDMETHODCALLTYPE *get_Source)(
   1426         IImageInformation *This,
   1427         BSTR *retval);
   1428 
   1429     HRESULT (STDMETHODCALLTYPE *get_Width)(
   1430         IImageInformation *This,
   1431         LONG *retval);
   1432 
   1433     END_INTERFACE
   1434 } IImageInformationVtbl;
   1435 
   1436 interface IImageInformation {
   1437     CONST_VTBL IImageInformationVtbl* lpVtbl;
   1438 };
   1439 
   1440 #ifdef COBJMACROS
   1441 #ifndef WIDL_C_INLINE_WRAPPERS
   1442 /*** IUnknown methods ***/
   1443 #define IImageInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1444 #define IImageInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
   1445 #define IImageInformation_Release(This) (This)->lpVtbl->Release(This)
   1446 /*** IDispatch methods ***/
   1447 #define IImageInformation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   1448 #define IImageInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   1449 #define IImageInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   1450 #define IImageInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   1451 /*** IImageInformation methods ***/
   1452 #define IImageInformation_get_AltText(This,retval) (This)->lpVtbl->get_AltText(This,retval)
   1453 #define IImageInformation_get_Height(This,retval) (This)->lpVtbl->get_Height(This,retval)
   1454 #define IImageInformation_get_Source(This,retval) (This)->lpVtbl->get_Source(This,retval)
   1455 #define IImageInformation_get_Width(This,retval) (This)->lpVtbl->get_Width(This,retval)
   1456 #else
   1457 /*** IUnknown methods ***/
   1458 static inline HRESULT IImageInformation_QueryInterface(IImageInformation* This,REFIID riid,void **ppvObject) {
   1459     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1460 }
   1461 static inline ULONG IImageInformation_AddRef(IImageInformation* This) {
   1462     return This->lpVtbl->AddRef(This);
   1463 }
   1464 static inline ULONG IImageInformation_Release(IImageInformation* This) {
   1465     return This->lpVtbl->Release(This);
   1466 }
   1467 /*** IDispatch methods ***/
   1468 static inline HRESULT IImageInformation_GetTypeInfoCount(IImageInformation* This,UINT *pctinfo) {
   1469     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   1470 }
   1471 static inline HRESULT IImageInformation_GetTypeInfo(IImageInformation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   1472     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   1473 }
   1474 static inline HRESULT IImageInformation_GetIDsOfNames(IImageInformation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   1475     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   1476 }
   1477 static inline HRESULT IImageInformation_Invoke(IImageInformation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   1478     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   1479 }
   1480 /*** IImageInformation methods ***/
   1481 static inline HRESULT IImageInformation_get_AltText(IImageInformation* This,BSTR *retval) {
   1482     return This->lpVtbl->get_AltText(This,retval);
   1483 }
   1484 static inline HRESULT IImageInformation_get_Height(IImageInformation* This,LONG *retval) {
   1485     return This->lpVtbl->get_Height(This,retval);
   1486 }
   1487 static inline HRESULT IImageInformation_get_Source(IImageInformation* This,BSTR *retval) {
   1488     return This->lpVtbl->get_Source(This,retval);
   1489 }
   1490 static inline HRESULT IImageInformation_get_Width(IImageInformation* This,LONG *retval) {
   1491     return This->lpVtbl->get_Width(This,retval);
   1492 }
   1493 #endif
   1494 #endif
   1495 
   1496 #endif
   1497 
   1498 
   1499 #endif  /* __IImageInformation_INTERFACE_DEFINED__ */
   1500 
   1501 /*****************************************************************************
   1502  * ICategory interface
   1503  */
   1504 #ifndef __ICategory_INTERFACE_DEFINED__
   1505 #define __ICategory_INTERFACE_DEFINED__
   1506 
   1507 DEFINE_GUID(IID_ICategory, 0x81ddc1b8, 0x9d35, 0x47a6, 0xb4,0x71, 0x5b,0x80,0xf5,0x19,0x22,0x3b);
   1508 #if defined(__cplusplus) && !defined(CINTERFACE)
   1509 MIDL_INTERFACE("81ddc1b8-9d35-47a6-b471-5b80f519223b")
   1510 ICategory : public IDispatch
   1511 {
   1512     virtual HRESULT STDMETHODCALLTYPE get_Name(
   1513         BSTR *retval) = 0;
   1514 
   1515     virtual HRESULT STDMETHODCALLTYPE get_CategoryID(
   1516         BSTR *retval) = 0;
   1517 
   1518     virtual HRESULT STDMETHODCALLTYPE get_Children(
   1519         ICategoryCollection **retval) = 0;
   1520 
   1521     virtual HRESULT STDMETHODCALLTYPE get_Description(
   1522         BSTR *retval) = 0;
   1523 
   1524     virtual HRESULT STDMETHODCALLTYPE get_Image(
   1525         IImageInformation **retval) = 0;
   1526 
   1527     virtual HRESULT STDMETHODCALLTYPE get_Order(
   1528         LONG *retval) = 0;
   1529 
   1530     virtual HRESULT STDMETHODCALLTYPE get_Parent(
   1531         ICategory **retval) = 0;
   1532 
   1533     virtual HRESULT STDMETHODCALLTYPE get_Type(
   1534         BSTR *retval) = 0;
   1535 
   1536     virtual HRESULT STDMETHODCALLTYPE get_Updates(
   1537         IUpdateCollection **retval) = 0;
   1538 
   1539 };
   1540 #ifdef __CRT_UUID_DECL
   1541 __CRT_UUID_DECL(ICategory, 0x81ddc1b8, 0x9d35, 0x47a6, 0xb4,0x71, 0x5b,0x80,0xf5,0x19,0x22,0x3b)
   1542 #endif
   1543 #else
   1544 typedef struct ICategoryVtbl {
   1545     BEGIN_INTERFACE
   1546 
   1547     /*** IUnknown methods ***/
   1548     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1549         ICategory *This,
   1550         REFIID riid,
   1551         void **ppvObject);
   1552 
   1553     ULONG (STDMETHODCALLTYPE *AddRef)(
   1554         ICategory *This);
   1555 
   1556     ULONG (STDMETHODCALLTYPE *Release)(
   1557         ICategory *This);
   1558 
   1559     /*** IDispatch methods ***/
   1560     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   1561         ICategory *This,
   1562         UINT *pctinfo);
   1563 
   1564     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   1565         ICategory *This,
   1566         UINT iTInfo,
   1567         LCID lcid,
   1568         ITypeInfo **ppTInfo);
   1569 
   1570     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   1571         ICategory *This,
   1572         REFIID riid,
   1573         LPOLESTR *rgszNames,
   1574         UINT cNames,
   1575         LCID lcid,
   1576         DISPID *rgDispId);
   1577 
   1578     HRESULT (STDMETHODCALLTYPE *Invoke)(
   1579         ICategory *This,
   1580         DISPID dispIdMember,
   1581         REFIID riid,
   1582         LCID lcid,
   1583         WORD wFlags,
   1584         DISPPARAMS *pDispParams,
   1585         VARIANT *pVarResult,
   1586         EXCEPINFO *pExcepInfo,
   1587         UINT *puArgErr);
   1588 
   1589     /*** ICategory methods ***/
   1590     HRESULT (STDMETHODCALLTYPE *get_Name)(
   1591         ICategory *This,
   1592         BSTR *retval);
   1593 
   1594     HRESULT (STDMETHODCALLTYPE *get_CategoryID)(
   1595         ICategory *This,
   1596         BSTR *retval);
   1597 
   1598     HRESULT (STDMETHODCALLTYPE *get_Children)(
   1599         ICategory *This,
   1600         ICategoryCollection **retval);
   1601 
   1602     HRESULT (STDMETHODCALLTYPE *get_Description)(
   1603         ICategory *This,
   1604         BSTR *retval);
   1605 
   1606     HRESULT (STDMETHODCALLTYPE *get_Image)(
   1607         ICategory *This,
   1608         IImageInformation **retval);
   1609 
   1610     HRESULT (STDMETHODCALLTYPE *get_Order)(
   1611         ICategory *This,
   1612         LONG *retval);
   1613 
   1614     HRESULT (STDMETHODCALLTYPE *get_Parent)(
   1615         ICategory *This,
   1616         ICategory **retval);
   1617 
   1618     HRESULT (STDMETHODCALLTYPE *get_Type)(
   1619         ICategory *This,
   1620         BSTR *retval);
   1621 
   1622     HRESULT (STDMETHODCALLTYPE *get_Updates)(
   1623         ICategory *This,
   1624         IUpdateCollection **retval);
   1625 
   1626     END_INTERFACE
   1627 } ICategoryVtbl;
   1628 
   1629 interface ICategory {
   1630     CONST_VTBL ICategoryVtbl* lpVtbl;
   1631 };
   1632 
   1633 #ifdef COBJMACROS
   1634 #ifndef WIDL_C_INLINE_WRAPPERS
   1635 /*** IUnknown methods ***/
   1636 #define ICategory_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1637 #define ICategory_AddRef(This) (This)->lpVtbl->AddRef(This)
   1638 #define ICategory_Release(This) (This)->lpVtbl->Release(This)
   1639 /*** IDispatch methods ***/
   1640 #define ICategory_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   1641 #define ICategory_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   1642 #define ICategory_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   1643 #define ICategory_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   1644 /*** ICategory methods ***/
   1645 #define ICategory_get_Name(This,retval) (This)->lpVtbl->get_Name(This,retval)
   1646 #define ICategory_get_CategoryID(This,retval) (This)->lpVtbl->get_CategoryID(This,retval)
   1647 #define ICategory_get_Children(This,retval) (This)->lpVtbl->get_Children(This,retval)
   1648 #define ICategory_get_Description(This,retval) (This)->lpVtbl->get_Description(This,retval)
   1649 #define ICategory_get_Image(This,retval) (This)->lpVtbl->get_Image(This,retval)
   1650 #define ICategory_get_Order(This,retval) (This)->lpVtbl->get_Order(This,retval)
   1651 #define ICategory_get_Parent(This,retval) (This)->lpVtbl->get_Parent(This,retval)
   1652 #define ICategory_get_Type(This,retval) (This)->lpVtbl->get_Type(This,retval)
   1653 #define ICategory_get_Updates(This,retval) (This)->lpVtbl->get_Updates(This,retval)
   1654 #else
   1655 /*** IUnknown methods ***/
   1656 static inline HRESULT ICategory_QueryInterface(ICategory* This,REFIID riid,void **ppvObject) {
   1657     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1658 }
   1659 static inline ULONG ICategory_AddRef(ICategory* This) {
   1660     return This->lpVtbl->AddRef(This);
   1661 }
   1662 static inline ULONG ICategory_Release(ICategory* This) {
   1663     return This->lpVtbl->Release(This);
   1664 }
   1665 /*** IDispatch methods ***/
   1666 static inline HRESULT ICategory_GetTypeInfoCount(ICategory* This,UINT *pctinfo) {
   1667     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   1668 }
   1669 static inline HRESULT ICategory_GetTypeInfo(ICategory* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   1670     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   1671 }
   1672 static inline HRESULT ICategory_GetIDsOfNames(ICategory* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   1673     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   1674 }
   1675 static inline HRESULT ICategory_Invoke(ICategory* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   1676     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   1677 }
   1678 /*** ICategory methods ***/
   1679 static inline HRESULT ICategory_get_Name(ICategory* This,BSTR *retval) {
   1680     return This->lpVtbl->get_Name(This,retval);
   1681 }
   1682 static inline HRESULT ICategory_get_CategoryID(ICategory* This,BSTR *retval) {
   1683     return This->lpVtbl->get_CategoryID(This,retval);
   1684 }
   1685 static inline HRESULT ICategory_get_Children(ICategory* This,ICategoryCollection **retval) {
   1686     return This->lpVtbl->get_Children(This,retval);
   1687 }
   1688 static inline HRESULT ICategory_get_Description(ICategory* This,BSTR *retval) {
   1689     return This->lpVtbl->get_Description(This,retval);
   1690 }
   1691 static inline HRESULT ICategory_get_Image(ICategory* This,IImageInformation **retval) {
   1692     return This->lpVtbl->get_Image(This,retval);
   1693 }
   1694 static inline HRESULT ICategory_get_Order(ICategory* This,LONG *retval) {
   1695     return This->lpVtbl->get_Order(This,retval);
   1696 }
   1697 static inline HRESULT ICategory_get_Parent(ICategory* This,ICategory **retval) {
   1698     return This->lpVtbl->get_Parent(This,retval);
   1699 }
   1700 static inline HRESULT ICategory_get_Type(ICategory* This,BSTR *retval) {
   1701     return This->lpVtbl->get_Type(This,retval);
   1702 }
   1703 static inline HRESULT ICategory_get_Updates(ICategory* This,IUpdateCollection **retval) {
   1704     return This->lpVtbl->get_Updates(This,retval);
   1705 }
   1706 #endif
   1707 #endif
   1708 
   1709 #endif
   1710 
   1711 
   1712 #endif  /* __ICategory_INTERFACE_DEFINED__ */
   1713 
   1714 /*****************************************************************************
   1715  * ICategoryCollection interface
   1716  */
   1717 #ifndef __ICategoryCollection_INTERFACE_DEFINED__
   1718 #define __ICategoryCollection_INTERFACE_DEFINED__
   1719 
   1720 DEFINE_GUID(IID_ICategoryCollection, 0x3a56bfb8, 0x576c, 0x43f7, 0x93,0x35, 0xfe,0x48,0x38,0xfd,0x7e,0x37);
   1721 #if defined(__cplusplus) && !defined(CINTERFACE)
   1722 MIDL_INTERFACE("3a56bfb8-576c-43f7-9335-fe4838fd7e37")
   1723 ICategoryCollection : public IDispatch
   1724 {
   1725     virtual HRESULT STDMETHODCALLTYPE get_Item(
   1726         LONG index,
   1727         ICategory **retval) = 0;
   1728 
   1729     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
   1730         IUnknown **retval) = 0;
   1731 
   1732     virtual HRESULT STDMETHODCALLTYPE get_Count(
   1733         LONG *retval) = 0;
   1734 
   1735 };
   1736 #ifdef __CRT_UUID_DECL
   1737 __CRT_UUID_DECL(ICategoryCollection, 0x3a56bfb8, 0x576c, 0x43f7, 0x93,0x35, 0xfe,0x48,0x38,0xfd,0x7e,0x37)
   1738 #endif
   1739 #else
   1740 typedef struct ICategoryCollectionVtbl {
   1741     BEGIN_INTERFACE
   1742 
   1743     /*** IUnknown methods ***/
   1744     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1745         ICategoryCollection *This,
   1746         REFIID riid,
   1747         void **ppvObject);
   1748 
   1749     ULONG (STDMETHODCALLTYPE *AddRef)(
   1750         ICategoryCollection *This);
   1751 
   1752     ULONG (STDMETHODCALLTYPE *Release)(
   1753         ICategoryCollection *This);
   1754 
   1755     /*** IDispatch methods ***/
   1756     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   1757         ICategoryCollection *This,
   1758         UINT *pctinfo);
   1759 
   1760     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   1761         ICategoryCollection *This,
   1762         UINT iTInfo,
   1763         LCID lcid,
   1764         ITypeInfo **ppTInfo);
   1765 
   1766     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   1767         ICategoryCollection *This,
   1768         REFIID riid,
   1769         LPOLESTR *rgszNames,
   1770         UINT cNames,
   1771         LCID lcid,
   1772         DISPID *rgDispId);
   1773 
   1774     HRESULT (STDMETHODCALLTYPE *Invoke)(
   1775         ICategoryCollection *This,
   1776         DISPID dispIdMember,
   1777         REFIID riid,
   1778         LCID lcid,
   1779         WORD wFlags,
   1780         DISPPARAMS *pDispParams,
   1781         VARIANT *pVarResult,
   1782         EXCEPINFO *pExcepInfo,
   1783         UINT *puArgErr);
   1784 
   1785     /*** ICategoryCollection methods ***/
   1786     HRESULT (STDMETHODCALLTYPE *get_Item)(
   1787         ICategoryCollection *This,
   1788         LONG index,
   1789         ICategory **retval);
   1790 
   1791     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
   1792         ICategoryCollection *This,
   1793         IUnknown **retval);
   1794 
   1795     HRESULT (STDMETHODCALLTYPE *get_Count)(
   1796         ICategoryCollection *This,
   1797         LONG *retval);
   1798 
   1799     END_INTERFACE
   1800 } ICategoryCollectionVtbl;
   1801 
   1802 interface ICategoryCollection {
   1803     CONST_VTBL ICategoryCollectionVtbl* lpVtbl;
   1804 };
   1805 
   1806 #ifdef COBJMACROS
   1807 #ifndef WIDL_C_INLINE_WRAPPERS
   1808 /*** IUnknown methods ***/
   1809 #define ICategoryCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   1810 #define ICategoryCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
   1811 #define ICategoryCollection_Release(This) (This)->lpVtbl->Release(This)
   1812 /*** IDispatch methods ***/
   1813 #define ICategoryCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   1814 #define ICategoryCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   1815 #define ICategoryCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   1816 #define ICategoryCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   1817 /*** ICategoryCollection methods ***/
   1818 #define ICategoryCollection_get_Item(This,index,retval) (This)->lpVtbl->get_Item(This,index,retval)
   1819 #define ICategoryCollection_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
   1820 #define ICategoryCollection_get_Count(This,retval) (This)->lpVtbl->get_Count(This,retval)
   1821 #else
   1822 /*** IUnknown methods ***/
   1823 static inline HRESULT ICategoryCollection_QueryInterface(ICategoryCollection* This,REFIID riid,void **ppvObject) {
   1824     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   1825 }
   1826 static inline ULONG ICategoryCollection_AddRef(ICategoryCollection* This) {
   1827     return This->lpVtbl->AddRef(This);
   1828 }
   1829 static inline ULONG ICategoryCollection_Release(ICategoryCollection* This) {
   1830     return This->lpVtbl->Release(This);
   1831 }
   1832 /*** IDispatch methods ***/
   1833 static inline HRESULT ICategoryCollection_GetTypeInfoCount(ICategoryCollection* This,UINT *pctinfo) {
   1834     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   1835 }
   1836 static inline HRESULT ICategoryCollection_GetTypeInfo(ICategoryCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   1837     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   1838 }
   1839 static inline HRESULT ICategoryCollection_GetIDsOfNames(ICategoryCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   1840     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   1841 }
   1842 static inline HRESULT ICategoryCollection_Invoke(ICategoryCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   1843     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   1844 }
   1845 /*** ICategoryCollection methods ***/
   1846 static inline HRESULT ICategoryCollection_get_Item(ICategoryCollection* This,LONG index,ICategory **retval) {
   1847     return This->lpVtbl->get_Item(This,index,retval);
   1848 }
   1849 static inline HRESULT ICategoryCollection_get__NewEnum(ICategoryCollection* This,IUnknown **retval) {
   1850     return This->lpVtbl->get__NewEnum(This,retval);
   1851 }
   1852 static inline HRESULT ICategoryCollection_get_Count(ICategoryCollection* This,LONG *retval) {
   1853     return This->lpVtbl->get_Count(This,retval);
   1854 }
   1855 #endif
   1856 #endif
   1857 
   1858 #endif
   1859 
   1860 
   1861 #endif  /* __ICategoryCollection_INTERFACE_DEFINED__ */
   1862 
   1863 /*****************************************************************************
   1864  * IStringCollection interface
   1865  */
   1866 #ifndef __IStringCollection_INTERFACE_DEFINED__
   1867 #define __IStringCollection_INTERFACE_DEFINED__
   1868 
   1869 DEFINE_GUID(IID_IStringCollection, 0xeff90582, 0x2ddc, 0x480f, 0xa0,0x6d, 0x60,0xf3,0xfb,0xc3,0x62,0xc3);
   1870 #if defined(__cplusplus) && !defined(CINTERFACE)
   1871 MIDL_INTERFACE("eff90582-2ddc-480f-a06d-60f3fbc362c3")
   1872 IStringCollection : public IDispatch
   1873 {
   1874     virtual HRESULT STDMETHODCALLTYPE get_Item(
   1875         LONG index,
   1876         BSTR *retval) = 0;
   1877 
   1878     virtual HRESULT STDMETHODCALLTYPE put_Item(
   1879         LONG index,
   1880         BSTR value) = 0;
   1881 
   1882     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
   1883         IUnknown **retval) = 0;
   1884 
   1885     virtual HRESULT STDMETHODCALLTYPE get_Count(
   1886         LONG *retval) = 0;
   1887 
   1888     virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(
   1889         VARIANT_BOOL *retval) = 0;
   1890 
   1891     virtual HRESULT STDMETHODCALLTYPE Add(
   1892         BSTR value,
   1893         LONG *retval) = 0;
   1894 
   1895     virtual HRESULT STDMETHODCALLTYPE Clear(
   1896         ) = 0;
   1897 
   1898     virtual HRESULT STDMETHODCALLTYPE Copy(
   1899         IStringCollection **retval) = 0;
   1900 
   1901     virtual HRESULT STDMETHODCALLTYPE Insert(
   1902         LONG index,
   1903         BSTR value) = 0;
   1904 
   1905     virtual HRESULT STDMETHODCALLTYPE RemoveAt(
   1906         LONG index) = 0;
   1907 
   1908 };
   1909 #ifdef __CRT_UUID_DECL
   1910 __CRT_UUID_DECL(IStringCollection, 0xeff90582, 0x2ddc, 0x480f, 0xa0,0x6d, 0x60,0xf3,0xfb,0xc3,0x62,0xc3)
   1911 #endif
   1912 #else
   1913 typedef struct IStringCollectionVtbl {
   1914     BEGIN_INTERFACE
   1915 
   1916     /*** IUnknown methods ***/
   1917     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   1918         IStringCollection *This,
   1919         REFIID riid,
   1920         void **ppvObject);
   1921 
   1922     ULONG (STDMETHODCALLTYPE *AddRef)(
   1923         IStringCollection *This);
   1924 
   1925     ULONG (STDMETHODCALLTYPE *Release)(
   1926         IStringCollection *This);
   1927 
   1928     /*** IDispatch methods ***/
   1929     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   1930         IStringCollection *This,
   1931         UINT *pctinfo);
   1932 
   1933     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   1934         IStringCollection *This,
   1935         UINT iTInfo,
   1936         LCID lcid,
   1937         ITypeInfo **ppTInfo);
   1938 
   1939     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   1940         IStringCollection *This,
   1941         REFIID riid,
   1942         LPOLESTR *rgszNames,
   1943         UINT cNames,
   1944         LCID lcid,
   1945         DISPID *rgDispId);
   1946 
   1947     HRESULT (STDMETHODCALLTYPE *Invoke)(
   1948         IStringCollection *This,
   1949         DISPID dispIdMember,
   1950         REFIID riid,
   1951         LCID lcid,
   1952         WORD wFlags,
   1953         DISPPARAMS *pDispParams,
   1954         VARIANT *pVarResult,
   1955         EXCEPINFO *pExcepInfo,
   1956         UINT *puArgErr);
   1957 
   1958     /*** IStringCollection methods ***/
   1959     HRESULT (STDMETHODCALLTYPE *get_Item)(
   1960         IStringCollection *This,
   1961         LONG index,
   1962         BSTR *retval);
   1963 
   1964     HRESULT (STDMETHODCALLTYPE *put_Item)(
   1965         IStringCollection *This,
   1966         LONG index,
   1967         BSTR value);
   1968 
   1969     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
   1970         IStringCollection *This,
   1971         IUnknown **retval);
   1972 
   1973     HRESULT (STDMETHODCALLTYPE *get_Count)(
   1974         IStringCollection *This,
   1975         LONG *retval);
   1976 
   1977     HRESULT (STDMETHODCALLTYPE *get_ReadOnly)(
   1978         IStringCollection *This,
   1979         VARIANT_BOOL *retval);
   1980 
   1981     HRESULT (STDMETHODCALLTYPE *Add)(
   1982         IStringCollection *This,
   1983         BSTR value,
   1984         LONG *retval);
   1985 
   1986     HRESULT (STDMETHODCALLTYPE *Clear)(
   1987         IStringCollection *This);
   1988 
   1989     HRESULT (STDMETHODCALLTYPE *Copy)(
   1990         IStringCollection *This,
   1991         IStringCollection **retval);
   1992 
   1993     HRESULT (STDMETHODCALLTYPE *Insert)(
   1994         IStringCollection *This,
   1995         LONG index,
   1996         BSTR value);
   1997 
   1998     HRESULT (STDMETHODCALLTYPE *RemoveAt)(
   1999         IStringCollection *This,
   2000         LONG index);
   2001 
   2002     END_INTERFACE
   2003 } IStringCollectionVtbl;
   2004 
   2005 interface IStringCollection {
   2006     CONST_VTBL IStringCollectionVtbl* lpVtbl;
   2007 };
   2008 
   2009 #ifdef COBJMACROS
   2010 #ifndef WIDL_C_INLINE_WRAPPERS
   2011 /*** IUnknown methods ***/
   2012 #define IStringCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2013 #define IStringCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
   2014 #define IStringCollection_Release(This) (This)->lpVtbl->Release(This)
   2015 /*** IDispatch methods ***/
   2016 #define IStringCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   2017 #define IStringCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   2018 #define IStringCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   2019 #define IStringCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   2020 /*** IStringCollection methods ***/
   2021 #define IStringCollection_get_Item(This,index,retval) (This)->lpVtbl->get_Item(This,index,retval)
   2022 #define IStringCollection_put_Item(This,index,value) (This)->lpVtbl->put_Item(This,index,value)
   2023 #define IStringCollection_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
   2024 #define IStringCollection_get_Count(This,retval) (This)->lpVtbl->get_Count(This,retval)
   2025 #define IStringCollection_get_ReadOnly(This,retval) (This)->lpVtbl->get_ReadOnly(This,retval)
   2026 #define IStringCollection_Add(This,value,retval) (This)->lpVtbl->Add(This,value,retval)
   2027 #define IStringCollection_Clear(This) (This)->lpVtbl->Clear(This)
   2028 #define IStringCollection_Copy(This,retval) (This)->lpVtbl->Copy(This,retval)
   2029 #define IStringCollection_Insert(This,index,value) (This)->lpVtbl->Insert(This,index,value)
   2030 #define IStringCollection_RemoveAt(This,index) (This)->lpVtbl->RemoveAt(This,index)
   2031 #else
   2032 /*** IUnknown methods ***/
   2033 static inline HRESULT IStringCollection_QueryInterface(IStringCollection* This,REFIID riid,void **ppvObject) {
   2034     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2035 }
   2036 static inline ULONG IStringCollection_AddRef(IStringCollection* This) {
   2037     return This->lpVtbl->AddRef(This);
   2038 }
   2039 static inline ULONG IStringCollection_Release(IStringCollection* This) {
   2040     return This->lpVtbl->Release(This);
   2041 }
   2042 /*** IDispatch methods ***/
   2043 static inline HRESULT IStringCollection_GetTypeInfoCount(IStringCollection* This,UINT *pctinfo) {
   2044     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   2045 }
   2046 static inline HRESULT IStringCollection_GetTypeInfo(IStringCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   2047     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   2048 }
   2049 static inline HRESULT IStringCollection_GetIDsOfNames(IStringCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   2050     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   2051 }
   2052 static inline HRESULT IStringCollection_Invoke(IStringCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   2053     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   2054 }
   2055 /*** IStringCollection methods ***/
   2056 static inline HRESULT IStringCollection_get_Item(IStringCollection* This,LONG index,BSTR *retval) {
   2057     return This->lpVtbl->get_Item(This,index,retval);
   2058 }
   2059 static inline HRESULT IStringCollection_put_Item(IStringCollection* This,LONG index,BSTR value) {
   2060     return This->lpVtbl->put_Item(This,index,value);
   2061 }
   2062 static inline HRESULT IStringCollection_get__NewEnum(IStringCollection* This,IUnknown **retval) {
   2063     return This->lpVtbl->get__NewEnum(This,retval);
   2064 }
   2065 static inline HRESULT IStringCollection_get_Count(IStringCollection* This,LONG *retval) {
   2066     return This->lpVtbl->get_Count(This,retval);
   2067 }
   2068 static inline HRESULT IStringCollection_get_ReadOnly(IStringCollection* This,VARIANT_BOOL *retval) {
   2069     return This->lpVtbl->get_ReadOnly(This,retval);
   2070 }
   2071 static inline HRESULT IStringCollection_Add(IStringCollection* This,BSTR value,LONG *retval) {
   2072     return This->lpVtbl->Add(This,value,retval);
   2073 }
   2074 static inline HRESULT IStringCollection_Clear(IStringCollection* This) {
   2075     return This->lpVtbl->Clear(This);
   2076 }
   2077 static inline HRESULT IStringCollection_Copy(IStringCollection* This,IStringCollection **retval) {
   2078     return This->lpVtbl->Copy(This,retval);
   2079 }
   2080 static inline HRESULT IStringCollection_Insert(IStringCollection* This,LONG index,BSTR value) {
   2081     return This->lpVtbl->Insert(This,index,value);
   2082 }
   2083 static inline HRESULT IStringCollection_RemoveAt(IStringCollection* This,LONG index) {
   2084     return This->lpVtbl->RemoveAt(This,index);
   2085 }
   2086 #endif
   2087 #endif
   2088 
   2089 #endif
   2090 
   2091 
   2092 #endif  /* __IStringCollection_INTERFACE_DEFINED__ */
   2093 
   2094 /*****************************************************************************
   2095  * IUpdateException interface
   2096  */
   2097 #ifndef __IUpdateException_INTERFACE_DEFINED__
   2098 #define __IUpdateException_INTERFACE_DEFINED__
   2099 
   2100 DEFINE_GUID(IID_IUpdateException, 0xa376dd5e, 0x09d4, 0x427f, 0xaf,0x7c, 0xfe,0xd5,0xb6,0xe1,0xc1,0xd6);
   2101 #if defined(__cplusplus) && !defined(CINTERFACE)
   2102 MIDL_INTERFACE("a376dd5e-09d4-427f-af7c-fed5b6e1c1d6")
   2103 IUpdateException : public IDispatch
   2104 {
   2105     virtual HRESULT STDMETHODCALLTYPE get_Message(
   2106         BSTR *retval) = 0;
   2107 
   2108     virtual HRESULT STDMETHODCALLTYPE get_HResult(
   2109         LONG *retval) = 0;
   2110 
   2111     virtual HRESULT STDMETHODCALLTYPE get_Context(
   2112         UpdateExceptionContext *retval) = 0;
   2113 
   2114 };
   2115 #ifdef __CRT_UUID_DECL
   2116 __CRT_UUID_DECL(IUpdateException, 0xa376dd5e, 0x09d4, 0x427f, 0xaf,0x7c, 0xfe,0xd5,0xb6,0xe1,0xc1,0xd6)
   2117 #endif
   2118 #else
   2119 typedef struct IUpdateExceptionVtbl {
   2120     BEGIN_INTERFACE
   2121 
   2122     /*** IUnknown methods ***/
   2123     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2124         IUpdateException *This,
   2125         REFIID riid,
   2126         void **ppvObject);
   2127 
   2128     ULONG (STDMETHODCALLTYPE *AddRef)(
   2129         IUpdateException *This);
   2130 
   2131     ULONG (STDMETHODCALLTYPE *Release)(
   2132         IUpdateException *This);
   2133 
   2134     /*** IDispatch methods ***/
   2135     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   2136         IUpdateException *This,
   2137         UINT *pctinfo);
   2138 
   2139     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   2140         IUpdateException *This,
   2141         UINT iTInfo,
   2142         LCID lcid,
   2143         ITypeInfo **ppTInfo);
   2144 
   2145     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   2146         IUpdateException *This,
   2147         REFIID riid,
   2148         LPOLESTR *rgszNames,
   2149         UINT cNames,
   2150         LCID lcid,
   2151         DISPID *rgDispId);
   2152 
   2153     HRESULT (STDMETHODCALLTYPE *Invoke)(
   2154         IUpdateException *This,
   2155         DISPID dispIdMember,
   2156         REFIID riid,
   2157         LCID lcid,
   2158         WORD wFlags,
   2159         DISPPARAMS *pDispParams,
   2160         VARIANT *pVarResult,
   2161         EXCEPINFO *pExcepInfo,
   2162         UINT *puArgErr);
   2163 
   2164     /*** IUpdateException methods ***/
   2165     HRESULT (STDMETHODCALLTYPE *get_Message)(
   2166         IUpdateException *This,
   2167         BSTR *retval);
   2168 
   2169     HRESULT (STDMETHODCALLTYPE *get_HResult)(
   2170         IUpdateException *This,
   2171         LONG *retval);
   2172 
   2173     HRESULT (STDMETHODCALLTYPE *get_Context)(
   2174         IUpdateException *This,
   2175         UpdateExceptionContext *retval);
   2176 
   2177     END_INTERFACE
   2178 } IUpdateExceptionVtbl;
   2179 
   2180 interface IUpdateException {
   2181     CONST_VTBL IUpdateExceptionVtbl* lpVtbl;
   2182 };
   2183 
   2184 #ifdef COBJMACROS
   2185 #ifndef WIDL_C_INLINE_WRAPPERS
   2186 /*** IUnknown methods ***/
   2187 #define IUpdateException_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2188 #define IUpdateException_AddRef(This) (This)->lpVtbl->AddRef(This)
   2189 #define IUpdateException_Release(This) (This)->lpVtbl->Release(This)
   2190 /*** IDispatch methods ***/
   2191 #define IUpdateException_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   2192 #define IUpdateException_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   2193 #define IUpdateException_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   2194 #define IUpdateException_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   2195 /*** IUpdateException methods ***/
   2196 #define IUpdateException_get_Message(This,retval) (This)->lpVtbl->get_Message(This,retval)
   2197 #define IUpdateException_get_HResult(This,retval) (This)->lpVtbl->get_HResult(This,retval)
   2198 #define IUpdateException_get_Context(This,retval) (This)->lpVtbl->get_Context(This,retval)
   2199 #else
   2200 /*** IUnknown methods ***/
   2201 static inline HRESULT IUpdateException_QueryInterface(IUpdateException* This,REFIID riid,void **ppvObject) {
   2202     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2203 }
   2204 static inline ULONG IUpdateException_AddRef(IUpdateException* This) {
   2205     return This->lpVtbl->AddRef(This);
   2206 }
   2207 static inline ULONG IUpdateException_Release(IUpdateException* This) {
   2208     return This->lpVtbl->Release(This);
   2209 }
   2210 /*** IDispatch methods ***/
   2211 static inline HRESULT IUpdateException_GetTypeInfoCount(IUpdateException* This,UINT *pctinfo) {
   2212     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   2213 }
   2214 static inline HRESULT IUpdateException_GetTypeInfo(IUpdateException* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   2215     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   2216 }
   2217 static inline HRESULT IUpdateException_GetIDsOfNames(IUpdateException* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   2218     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   2219 }
   2220 static inline HRESULT IUpdateException_Invoke(IUpdateException* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   2221     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   2222 }
   2223 /*** IUpdateException methods ***/
   2224 static inline HRESULT IUpdateException_get_Message(IUpdateException* This,BSTR *retval) {
   2225     return This->lpVtbl->get_Message(This,retval);
   2226 }
   2227 static inline HRESULT IUpdateException_get_HResult(IUpdateException* This,LONG *retval) {
   2228     return This->lpVtbl->get_HResult(This,retval);
   2229 }
   2230 static inline HRESULT IUpdateException_get_Context(IUpdateException* This,UpdateExceptionContext *retval) {
   2231     return This->lpVtbl->get_Context(This,retval);
   2232 }
   2233 #endif
   2234 #endif
   2235 
   2236 #endif
   2237 
   2238 
   2239 #endif  /* __IUpdateException_INTERFACE_DEFINED__ */
   2240 
   2241 /*****************************************************************************
   2242  * IUpdateExceptionCollection interface
   2243  */
   2244 #ifndef __IUpdateExceptionCollection_INTERFACE_DEFINED__
   2245 #define __IUpdateExceptionCollection_INTERFACE_DEFINED__
   2246 
   2247 DEFINE_GUID(IID_IUpdateExceptionCollection, 0x503626a3, 0x8e14, 0x4729, 0x93,0x55, 0x0f,0xe6,0x64,0xbd,0x23,0x21);
   2248 #if defined(__cplusplus) && !defined(CINTERFACE)
   2249 MIDL_INTERFACE("503626a3-8e14-4729-9355-0fe664bd2321")
   2250 IUpdateExceptionCollection : public IDispatch
   2251 {
   2252     virtual HRESULT STDMETHODCALLTYPE get_Item(
   2253         LONG index,
   2254         IUpdateException **retval) = 0;
   2255 
   2256     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
   2257         IUnknown **retval) = 0;
   2258 
   2259     virtual HRESULT STDMETHODCALLTYPE get_Count(
   2260         LONG *retval) = 0;
   2261 
   2262 };
   2263 #ifdef __CRT_UUID_DECL
   2264 __CRT_UUID_DECL(IUpdateExceptionCollection, 0x503626a3, 0x8e14, 0x4729, 0x93,0x55, 0x0f,0xe6,0x64,0xbd,0x23,0x21)
   2265 #endif
   2266 #else
   2267 typedef struct IUpdateExceptionCollectionVtbl {
   2268     BEGIN_INTERFACE
   2269 
   2270     /*** IUnknown methods ***/
   2271     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2272         IUpdateExceptionCollection *This,
   2273         REFIID riid,
   2274         void **ppvObject);
   2275 
   2276     ULONG (STDMETHODCALLTYPE *AddRef)(
   2277         IUpdateExceptionCollection *This);
   2278 
   2279     ULONG (STDMETHODCALLTYPE *Release)(
   2280         IUpdateExceptionCollection *This);
   2281 
   2282     /*** IDispatch methods ***/
   2283     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   2284         IUpdateExceptionCollection *This,
   2285         UINT *pctinfo);
   2286 
   2287     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   2288         IUpdateExceptionCollection *This,
   2289         UINT iTInfo,
   2290         LCID lcid,
   2291         ITypeInfo **ppTInfo);
   2292 
   2293     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   2294         IUpdateExceptionCollection *This,
   2295         REFIID riid,
   2296         LPOLESTR *rgszNames,
   2297         UINT cNames,
   2298         LCID lcid,
   2299         DISPID *rgDispId);
   2300 
   2301     HRESULT (STDMETHODCALLTYPE *Invoke)(
   2302         IUpdateExceptionCollection *This,
   2303         DISPID dispIdMember,
   2304         REFIID riid,
   2305         LCID lcid,
   2306         WORD wFlags,
   2307         DISPPARAMS *pDispParams,
   2308         VARIANT *pVarResult,
   2309         EXCEPINFO *pExcepInfo,
   2310         UINT *puArgErr);
   2311 
   2312     /*** IUpdateExceptionCollection methods ***/
   2313     HRESULT (STDMETHODCALLTYPE *get_Item)(
   2314         IUpdateExceptionCollection *This,
   2315         LONG index,
   2316         IUpdateException **retval);
   2317 
   2318     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
   2319         IUpdateExceptionCollection *This,
   2320         IUnknown **retval);
   2321 
   2322     HRESULT (STDMETHODCALLTYPE *get_Count)(
   2323         IUpdateExceptionCollection *This,
   2324         LONG *retval);
   2325 
   2326     END_INTERFACE
   2327 } IUpdateExceptionCollectionVtbl;
   2328 
   2329 interface IUpdateExceptionCollection {
   2330     CONST_VTBL IUpdateExceptionCollectionVtbl* lpVtbl;
   2331 };
   2332 
   2333 #ifdef COBJMACROS
   2334 #ifndef WIDL_C_INLINE_WRAPPERS
   2335 /*** IUnknown methods ***/
   2336 #define IUpdateExceptionCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2337 #define IUpdateExceptionCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
   2338 #define IUpdateExceptionCollection_Release(This) (This)->lpVtbl->Release(This)
   2339 /*** IDispatch methods ***/
   2340 #define IUpdateExceptionCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   2341 #define IUpdateExceptionCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   2342 #define IUpdateExceptionCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   2343 #define IUpdateExceptionCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   2344 /*** IUpdateExceptionCollection methods ***/
   2345 #define IUpdateExceptionCollection_get_Item(This,index,retval) (This)->lpVtbl->get_Item(This,index,retval)
   2346 #define IUpdateExceptionCollection_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
   2347 #define IUpdateExceptionCollection_get_Count(This,retval) (This)->lpVtbl->get_Count(This,retval)
   2348 #else
   2349 /*** IUnknown methods ***/
   2350 static inline HRESULT IUpdateExceptionCollection_QueryInterface(IUpdateExceptionCollection* This,REFIID riid,void **ppvObject) {
   2351     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2352 }
   2353 static inline ULONG IUpdateExceptionCollection_AddRef(IUpdateExceptionCollection* This) {
   2354     return This->lpVtbl->AddRef(This);
   2355 }
   2356 static inline ULONG IUpdateExceptionCollection_Release(IUpdateExceptionCollection* This) {
   2357     return This->lpVtbl->Release(This);
   2358 }
   2359 /*** IDispatch methods ***/
   2360 static inline HRESULT IUpdateExceptionCollection_GetTypeInfoCount(IUpdateExceptionCollection* This,UINT *pctinfo) {
   2361     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   2362 }
   2363 static inline HRESULT IUpdateExceptionCollection_GetTypeInfo(IUpdateExceptionCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   2364     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   2365 }
   2366 static inline HRESULT IUpdateExceptionCollection_GetIDsOfNames(IUpdateExceptionCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   2367     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   2368 }
   2369 static inline HRESULT IUpdateExceptionCollection_Invoke(IUpdateExceptionCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   2370     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   2371 }
   2372 /*** IUpdateExceptionCollection methods ***/
   2373 static inline HRESULT IUpdateExceptionCollection_get_Item(IUpdateExceptionCollection* This,LONG index,IUpdateException **retval) {
   2374     return This->lpVtbl->get_Item(This,index,retval);
   2375 }
   2376 static inline HRESULT IUpdateExceptionCollection_get__NewEnum(IUpdateExceptionCollection* This,IUnknown **retval) {
   2377     return This->lpVtbl->get__NewEnum(This,retval);
   2378 }
   2379 static inline HRESULT IUpdateExceptionCollection_get_Count(IUpdateExceptionCollection* This,LONG *retval) {
   2380     return This->lpVtbl->get_Count(This,retval);
   2381 }
   2382 #endif
   2383 #endif
   2384 
   2385 #endif
   2386 
   2387 
   2388 #endif  /* __IUpdateExceptionCollection_INTERFACE_DEFINED__ */
   2389 
   2390 /*****************************************************************************
   2391  * IUpdateIdentity interface
   2392  */
   2393 #ifndef __IUpdateIdentity_INTERFACE_DEFINED__
   2394 #define __IUpdateIdentity_INTERFACE_DEFINED__
   2395 
   2396 DEFINE_GUID(IID_IUpdateIdentity, 0x46297823, 0x9940, 0x4c09, 0xae,0xd9, 0xcd,0x3e,0xa6,0xd0,0x59,0x68);
   2397 #if defined(__cplusplus) && !defined(CINTERFACE)
   2398 MIDL_INTERFACE("46297823-9940-4c09-aed9-cd3ea6d05968")
   2399 IUpdateIdentity : public IDispatch
   2400 {
   2401     virtual HRESULT STDMETHODCALLTYPE get_RevisionNumber(
   2402         LONG *retval) = 0;
   2403 
   2404     virtual HRESULT STDMETHODCALLTYPE get_UpdateID(
   2405         BSTR *retval) = 0;
   2406 
   2407 };
   2408 #ifdef __CRT_UUID_DECL
   2409 __CRT_UUID_DECL(IUpdateIdentity, 0x46297823, 0x9940, 0x4c09, 0xae,0xd9, 0xcd,0x3e,0xa6,0xd0,0x59,0x68)
   2410 #endif
   2411 #else
   2412 typedef struct IUpdateIdentityVtbl {
   2413     BEGIN_INTERFACE
   2414 
   2415     /*** IUnknown methods ***/
   2416     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2417         IUpdateIdentity *This,
   2418         REFIID riid,
   2419         void **ppvObject);
   2420 
   2421     ULONG (STDMETHODCALLTYPE *AddRef)(
   2422         IUpdateIdentity *This);
   2423 
   2424     ULONG (STDMETHODCALLTYPE *Release)(
   2425         IUpdateIdentity *This);
   2426 
   2427     /*** IDispatch methods ***/
   2428     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   2429         IUpdateIdentity *This,
   2430         UINT *pctinfo);
   2431 
   2432     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   2433         IUpdateIdentity *This,
   2434         UINT iTInfo,
   2435         LCID lcid,
   2436         ITypeInfo **ppTInfo);
   2437 
   2438     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   2439         IUpdateIdentity *This,
   2440         REFIID riid,
   2441         LPOLESTR *rgszNames,
   2442         UINT cNames,
   2443         LCID lcid,
   2444         DISPID *rgDispId);
   2445 
   2446     HRESULT (STDMETHODCALLTYPE *Invoke)(
   2447         IUpdateIdentity *This,
   2448         DISPID dispIdMember,
   2449         REFIID riid,
   2450         LCID lcid,
   2451         WORD wFlags,
   2452         DISPPARAMS *pDispParams,
   2453         VARIANT *pVarResult,
   2454         EXCEPINFO *pExcepInfo,
   2455         UINT *puArgErr);
   2456 
   2457     /*** IUpdateIdentity methods ***/
   2458     HRESULT (STDMETHODCALLTYPE *get_RevisionNumber)(
   2459         IUpdateIdentity *This,
   2460         LONG *retval);
   2461 
   2462     HRESULT (STDMETHODCALLTYPE *get_UpdateID)(
   2463         IUpdateIdentity *This,
   2464         BSTR *retval);
   2465 
   2466     END_INTERFACE
   2467 } IUpdateIdentityVtbl;
   2468 
   2469 interface IUpdateIdentity {
   2470     CONST_VTBL IUpdateIdentityVtbl* lpVtbl;
   2471 };
   2472 
   2473 #ifdef COBJMACROS
   2474 #ifndef WIDL_C_INLINE_WRAPPERS
   2475 /*** IUnknown methods ***/
   2476 #define IUpdateIdentity_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2477 #define IUpdateIdentity_AddRef(This) (This)->lpVtbl->AddRef(This)
   2478 #define IUpdateIdentity_Release(This) (This)->lpVtbl->Release(This)
   2479 /*** IDispatch methods ***/
   2480 #define IUpdateIdentity_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   2481 #define IUpdateIdentity_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   2482 #define IUpdateIdentity_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   2483 #define IUpdateIdentity_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   2484 /*** IUpdateIdentity methods ***/
   2485 #define IUpdateIdentity_get_RevisionNumber(This,retval) (This)->lpVtbl->get_RevisionNumber(This,retval)
   2486 #define IUpdateIdentity_get_UpdateID(This,retval) (This)->lpVtbl->get_UpdateID(This,retval)
   2487 #else
   2488 /*** IUnknown methods ***/
   2489 static inline HRESULT IUpdateIdentity_QueryInterface(IUpdateIdentity* This,REFIID riid,void **ppvObject) {
   2490     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2491 }
   2492 static inline ULONG IUpdateIdentity_AddRef(IUpdateIdentity* This) {
   2493     return This->lpVtbl->AddRef(This);
   2494 }
   2495 static inline ULONG IUpdateIdentity_Release(IUpdateIdentity* This) {
   2496     return This->lpVtbl->Release(This);
   2497 }
   2498 /*** IDispatch methods ***/
   2499 static inline HRESULT IUpdateIdentity_GetTypeInfoCount(IUpdateIdentity* This,UINT *pctinfo) {
   2500     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   2501 }
   2502 static inline HRESULT IUpdateIdentity_GetTypeInfo(IUpdateIdentity* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   2503     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   2504 }
   2505 static inline HRESULT IUpdateIdentity_GetIDsOfNames(IUpdateIdentity* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   2506     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   2507 }
   2508 static inline HRESULT IUpdateIdentity_Invoke(IUpdateIdentity* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   2509     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   2510 }
   2511 /*** IUpdateIdentity methods ***/
   2512 static inline HRESULT IUpdateIdentity_get_RevisionNumber(IUpdateIdentity* This,LONG *retval) {
   2513     return This->lpVtbl->get_RevisionNumber(This,retval);
   2514 }
   2515 static inline HRESULT IUpdateIdentity_get_UpdateID(IUpdateIdentity* This,BSTR *retval) {
   2516     return This->lpVtbl->get_UpdateID(This,retval);
   2517 }
   2518 #endif
   2519 #endif
   2520 
   2521 #endif
   2522 
   2523 
   2524 #endif  /* __IUpdateIdentity_INTERFACE_DEFINED__ */
   2525 
   2526 /*****************************************************************************
   2527  * IInstallationBehavior interface
   2528  */
   2529 #ifndef __IInstallationBehavior_INTERFACE_DEFINED__
   2530 #define __IInstallationBehavior_INTERFACE_DEFINED__
   2531 
   2532 DEFINE_GUID(IID_IInstallationBehavior, 0xd9a59339, 0xe245, 0x4dbd, 0x96,0x86, 0x4d,0x57,0x63,0xe3,0x96,0x24);
   2533 #if defined(__cplusplus) && !defined(CINTERFACE)
   2534 MIDL_INTERFACE("d9a59339-e245-4dbd-9686-4d5763e39624")
   2535 IInstallationBehavior : public IDispatch
   2536 {
   2537     virtual HRESULT STDMETHODCALLTYPE get_CanRequestUserInput(
   2538         VARIANT_BOOL *retval) = 0;
   2539 
   2540     virtual HRESULT STDMETHODCALLTYPE get_Impact(
   2541         InstallationImpact *retval) = 0;
   2542 
   2543     virtual HRESULT STDMETHODCALLTYPE get_RebootBehavior(
   2544         InstallationRebootBehavior *retval) = 0;
   2545 
   2546     virtual HRESULT STDMETHODCALLTYPE get_RequiresNetworkConnectivity(
   2547         VARIANT_BOOL *retval) = 0;
   2548 
   2549 };
   2550 #ifdef __CRT_UUID_DECL
   2551 __CRT_UUID_DECL(IInstallationBehavior, 0xd9a59339, 0xe245, 0x4dbd, 0x96,0x86, 0x4d,0x57,0x63,0xe3,0x96,0x24)
   2552 #endif
   2553 #else
   2554 typedef struct IInstallationBehaviorVtbl {
   2555     BEGIN_INTERFACE
   2556 
   2557     /*** IUnknown methods ***/
   2558     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2559         IInstallationBehavior *This,
   2560         REFIID riid,
   2561         void **ppvObject);
   2562 
   2563     ULONG (STDMETHODCALLTYPE *AddRef)(
   2564         IInstallationBehavior *This);
   2565 
   2566     ULONG (STDMETHODCALLTYPE *Release)(
   2567         IInstallationBehavior *This);
   2568 
   2569     /*** IDispatch methods ***/
   2570     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   2571         IInstallationBehavior *This,
   2572         UINT *pctinfo);
   2573 
   2574     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   2575         IInstallationBehavior *This,
   2576         UINT iTInfo,
   2577         LCID lcid,
   2578         ITypeInfo **ppTInfo);
   2579 
   2580     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   2581         IInstallationBehavior *This,
   2582         REFIID riid,
   2583         LPOLESTR *rgszNames,
   2584         UINT cNames,
   2585         LCID lcid,
   2586         DISPID *rgDispId);
   2587 
   2588     HRESULT (STDMETHODCALLTYPE *Invoke)(
   2589         IInstallationBehavior *This,
   2590         DISPID dispIdMember,
   2591         REFIID riid,
   2592         LCID lcid,
   2593         WORD wFlags,
   2594         DISPPARAMS *pDispParams,
   2595         VARIANT *pVarResult,
   2596         EXCEPINFO *pExcepInfo,
   2597         UINT *puArgErr);
   2598 
   2599     /*** IInstallationBehavior methods ***/
   2600     HRESULT (STDMETHODCALLTYPE *get_CanRequestUserInput)(
   2601         IInstallationBehavior *This,
   2602         VARIANT_BOOL *retval);
   2603 
   2604     HRESULT (STDMETHODCALLTYPE *get_Impact)(
   2605         IInstallationBehavior *This,
   2606         InstallationImpact *retval);
   2607 
   2608     HRESULT (STDMETHODCALLTYPE *get_RebootBehavior)(
   2609         IInstallationBehavior *This,
   2610         InstallationRebootBehavior *retval);
   2611 
   2612     HRESULT (STDMETHODCALLTYPE *get_RequiresNetworkConnectivity)(
   2613         IInstallationBehavior *This,
   2614         VARIANT_BOOL *retval);
   2615 
   2616     END_INTERFACE
   2617 } IInstallationBehaviorVtbl;
   2618 
   2619 interface IInstallationBehavior {
   2620     CONST_VTBL IInstallationBehaviorVtbl* lpVtbl;
   2621 };
   2622 
   2623 #ifdef COBJMACROS
   2624 #ifndef WIDL_C_INLINE_WRAPPERS
   2625 /*** IUnknown methods ***/
   2626 #define IInstallationBehavior_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2627 #define IInstallationBehavior_AddRef(This) (This)->lpVtbl->AddRef(This)
   2628 #define IInstallationBehavior_Release(This) (This)->lpVtbl->Release(This)
   2629 /*** IDispatch methods ***/
   2630 #define IInstallationBehavior_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   2631 #define IInstallationBehavior_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   2632 #define IInstallationBehavior_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   2633 #define IInstallationBehavior_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   2634 /*** IInstallationBehavior methods ***/
   2635 #define IInstallationBehavior_get_CanRequestUserInput(This,retval) (This)->lpVtbl->get_CanRequestUserInput(This,retval)
   2636 #define IInstallationBehavior_get_Impact(This,retval) (This)->lpVtbl->get_Impact(This,retval)
   2637 #define IInstallationBehavior_get_RebootBehavior(This,retval) (This)->lpVtbl->get_RebootBehavior(This,retval)
   2638 #define IInstallationBehavior_get_RequiresNetworkConnectivity(This,retval) (This)->lpVtbl->get_RequiresNetworkConnectivity(This,retval)
   2639 #else
   2640 /*** IUnknown methods ***/
   2641 static inline HRESULT IInstallationBehavior_QueryInterface(IInstallationBehavior* This,REFIID riid,void **ppvObject) {
   2642     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2643 }
   2644 static inline ULONG IInstallationBehavior_AddRef(IInstallationBehavior* This) {
   2645     return This->lpVtbl->AddRef(This);
   2646 }
   2647 static inline ULONG IInstallationBehavior_Release(IInstallationBehavior* This) {
   2648     return This->lpVtbl->Release(This);
   2649 }
   2650 /*** IDispatch methods ***/
   2651 static inline HRESULT IInstallationBehavior_GetTypeInfoCount(IInstallationBehavior* This,UINT *pctinfo) {
   2652     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   2653 }
   2654 static inline HRESULT IInstallationBehavior_GetTypeInfo(IInstallationBehavior* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   2655     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   2656 }
   2657 static inline HRESULT IInstallationBehavior_GetIDsOfNames(IInstallationBehavior* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   2658     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   2659 }
   2660 static inline HRESULT IInstallationBehavior_Invoke(IInstallationBehavior* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   2661     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   2662 }
   2663 /*** IInstallationBehavior methods ***/
   2664 static inline HRESULT IInstallationBehavior_get_CanRequestUserInput(IInstallationBehavior* This,VARIANT_BOOL *retval) {
   2665     return This->lpVtbl->get_CanRequestUserInput(This,retval);
   2666 }
   2667 static inline HRESULT IInstallationBehavior_get_Impact(IInstallationBehavior* This,InstallationImpact *retval) {
   2668     return This->lpVtbl->get_Impact(This,retval);
   2669 }
   2670 static inline HRESULT IInstallationBehavior_get_RebootBehavior(IInstallationBehavior* This,InstallationRebootBehavior *retval) {
   2671     return This->lpVtbl->get_RebootBehavior(This,retval);
   2672 }
   2673 static inline HRESULT IInstallationBehavior_get_RequiresNetworkConnectivity(IInstallationBehavior* This,VARIANT_BOOL *retval) {
   2674     return This->lpVtbl->get_RequiresNetworkConnectivity(This,retval);
   2675 }
   2676 #endif
   2677 #endif
   2678 
   2679 #endif
   2680 
   2681 
   2682 #endif  /* __IInstallationBehavior_INTERFACE_DEFINED__ */
   2683 
   2684 /*****************************************************************************
   2685  * IUpdateDownloadContent interface
   2686  */
   2687 #ifndef __IUpdateDownloadContent_INTERFACE_DEFINED__
   2688 #define __IUpdateDownloadContent_INTERFACE_DEFINED__
   2689 
   2690 DEFINE_GUID(IID_IUpdateDownloadContent, 0x54a2cb2d, 0x9a0c, 0x48b6, 0x8a,0x50, 0x9a,0xbb,0x69,0xee,0x2d,0x02);
   2691 #if defined(__cplusplus) && !defined(CINTERFACE)
   2692 MIDL_INTERFACE("54a2cb2d-9a0c-48b6-8a50-9abb69ee2d02")
   2693 IUpdateDownloadContent : public IDispatch
   2694 {
   2695     virtual HRESULT STDMETHODCALLTYPE get_DownloadUrl(
   2696         BSTR *retval) = 0;
   2697 
   2698 };
   2699 #ifdef __CRT_UUID_DECL
   2700 __CRT_UUID_DECL(IUpdateDownloadContent, 0x54a2cb2d, 0x9a0c, 0x48b6, 0x8a,0x50, 0x9a,0xbb,0x69,0xee,0x2d,0x02)
   2701 #endif
   2702 #else
   2703 typedef struct IUpdateDownloadContentVtbl {
   2704     BEGIN_INTERFACE
   2705 
   2706     /*** IUnknown methods ***/
   2707     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2708         IUpdateDownloadContent *This,
   2709         REFIID riid,
   2710         void **ppvObject);
   2711 
   2712     ULONG (STDMETHODCALLTYPE *AddRef)(
   2713         IUpdateDownloadContent *This);
   2714 
   2715     ULONG (STDMETHODCALLTYPE *Release)(
   2716         IUpdateDownloadContent *This);
   2717 
   2718     /*** IDispatch methods ***/
   2719     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   2720         IUpdateDownloadContent *This,
   2721         UINT *pctinfo);
   2722 
   2723     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   2724         IUpdateDownloadContent *This,
   2725         UINT iTInfo,
   2726         LCID lcid,
   2727         ITypeInfo **ppTInfo);
   2728 
   2729     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   2730         IUpdateDownloadContent *This,
   2731         REFIID riid,
   2732         LPOLESTR *rgszNames,
   2733         UINT cNames,
   2734         LCID lcid,
   2735         DISPID *rgDispId);
   2736 
   2737     HRESULT (STDMETHODCALLTYPE *Invoke)(
   2738         IUpdateDownloadContent *This,
   2739         DISPID dispIdMember,
   2740         REFIID riid,
   2741         LCID lcid,
   2742         WORD wFlags,
   2743         DISPPARAMS *pDispParams,
   2744         VARIANT *pVarResult,
   2745         EXCEPINFO *pExcepInfo,
   2746         UINT *puArgErr);
   2747 
   2748     /*** IUpdateDownloadContent methods ***/
   2749     HRESULT (STDMETHODCALLTYPE *get_DownloadUrl)(
   2750         IUpdateDownloadContent *This,
   2751         BSTR *retval);
   2752 
   2753     END_INTERFACE
   2754 } IUpdateDownloadContentVtbl;
   2755 
   2756 interface IUpdateDownloadContent {
   2757     CONST_VTBL IUpdateDownloadContentVtbl* lpVtbl;
   2758 };
   2759 
   2760 #ifdef COBJMACROS
   2761 #ifndef WIDL_C_INLINE_WRAPPERS
   2762 /*** IUnknown methods ***/
   2763 #define IUpdateDownloadContent_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2764 #define IUpdateDownloadContent_AddRef(This) (This)->lpVtbl->AddRef(This)
   2765 #define IUpdateDownloadContent_Release(This) (This)->lpVtbl->Release(This)
   2766 /*** IDispatch methods ***/
   2767 #define IUpdateDownloadContent_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   2768 #define IUpdateDownloadContent_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   2769 #define IUpdateDownloadContent_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   2770 #define IUpdateDownloadContent_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   2771 /*** IUpdateDownloadContent methods ***/
   2772 #define IUpdateDownloadContent_get_DownloadUrl(This,retval) (This)->lpVtbl->get_DownloadUrl(This,retval)
   2773 #else
   2774 /*** IUnknown methods ***/
   2775 static inline HRESULT IUpdateDownloadContent_QueryInterface(IUpdateDownloadContent* This,REFIID riid,void **ppvObject) {
   2776     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2777 }
   2778 static inline ULONG IUpdateDownloadContent_AddRef(IUpdateDownloadContent* This) {
   2779     return This->lpVtbl->AddRef(This);
   2780 }
   2781 static inline ULONG IUpdateDownloadContent_Release(IUpdateDownloadContent* This) {
   2782     return This->lpVtbl->Release(This);
   2783 }
   2784 /*** IDispatch methods ***/
   2785 static inline HRESULT IUpdateDownloadContent_GetTypeInfoCount(IUpdateDownloadContent* This,UINT *pctinfo) {
   2786     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   2787 }
   2788 static inline HRESULT IUpdateDownloadContent_GetTypeInfo(IUpdateDownloadContent* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   2789     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   2790 }
   2791 static inline HRESULT IUpdateDownloadContent_GetIDsOfNames(IUpdateDownloadContent* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   2792     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   2793 }
   2794 static inline HRESULT IUpdateDownloadContent_Invoke(IUpdateDownloadContent* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   2795     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   2796 }
   2797 /*** IUpdateDownloadContent methods ***/
   2798 static inline HRESULT IUpdateDownloadContent_get_DownloadUrl(IUpdateDownloadContent* This,BSTR *retval) {
   2799     return This->lpVtbl->get_DownloadUrl(This,retval);
   2800 }
   2801 #endif
   2802 #endif
   2803 
   2804 #endif
   2805 
   2806 
   2807 #endif  /* __IUpdateDownloadContent_INTERFACE_DEFINED__ */
   2808 
   2809 /*****************************************************************************
   2810  * IUpdateDownloadContentCollection interface
   2811  */
   2812 #ifndef __IUpdateDownloadContentCollection_INTERFACE_DEFINED__
   2813 #define __IUpdateDownloadContentCollection_INTERFACE_DEFINED__
   2814 
   2815 DEFINE_GUID(IID_IUpdateDownloadContentCollection, 0xbc5513c8, 0xb3b8, 0x4bf7, 0xa4,0xd4, 0x36,0x1c,0x0d,0x8c,0x88,0xba);
   2816 #if defined(__cplusplus) && !defined(CINTERFACE)
   2817 MIDL_INTERFACE("bc5513c8-b3b8-4bf7-a4d4-361c0d8c88ba")
   2818 IUpdateDownloadContentCollection : public IDispatch
   2819 {
   2820     virtual HRESULT STDMETHODCALLTYPE get_Item(
   2821         LONG index,
   2822         IUpdateDownloadContent **retval) = 0;
   2823 
   2824     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
   2825         IUnknown **retval) = 0;
   2826 
   2827     virtual HRESULT STDMETHODCALLTYPE get_Count(
   2828         LONG *retval) = 0;
   2829 
   2830 };
   2831 #ifdef __CRT_UUID_DECL
   2832 __CRT_UUID_DECL(IUpdateDownloadContentCollection, 0xbc5513c8, 0xb3b8, 0x4bf7, 0xa4,0xd4, 0x36,0x1c,0x0d,0x8c,0x88,0xba)
   2833 #endif
   2834 #else
   2835 typedef struct IUpdateDownloadContentCollectionVtbl {
   2836     BEGIN_INTERFACE
   2837 
   2838     /*** IUnknown methods ***/
   2839     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   2840         IUpdateDownloadContentCollection *This,
   2841         REFIID riid,
   2842         void **ppvObject);
   2843 
   2844     ULONG (STDMETHODCALLTYPE *AddRef)(
   2845         IUpdateDownloadContentCollection *This);
   2846 
   2847     ULONG (STDMETHODCALLTYPE *Release)(
   2848         IUpdateDownloadContentCollection *This);
   2849 
   2850     /*** IDispatch methods ***/
   2851     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   2852         IUpdateDownloadContentCollection *This,
   2853         UINT *pctinfo);
   2854 
   2855     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   2856         IUpdateDownloadContentCollection *This,
   2857         UINT iTInfo,
   2858         LCID lcid,
   2859         ITypeInfo **ppTInfo);
   2860 
   2861     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   2862         IUpdateDownloadContentCollection *This,
   2863         REFIID riid,
   2864         LPOLESTR *rgszNames,
   2865         UINT cNames,
   2866         LCID lcid,
   2867         DISPID *rgDispId);
   2868 
   2869     HRESULT (STDMETHODCALLTYPE *Invoke)(
   2870         IUpdateDownloadContentCollection *This,
   2871         DISPID dispIdMember,
   2872         REFIID riid,
   2873         LCID lcid,
   2874         WORD wFlags,
   2875         DISPPARAMS *pDispParams,
   2876         VARIANT *pVarResult,
   2877         EXCEPINFO *pExcepInfo,
   2878         UINT *puArgErr);
   2879 
   2880     /*** IUpdateDownloadContentCollection methods ***/
   2881     HRESULT (STDMETHODCALLTYPE *get_Item)(
   2882         IUpdateDownloadContentCollection *This,
   2883         LONG index,
   2884         IUpdateDownloadContent **retval);
   2885 
   2886     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
   2887         IUpdateDownloadContentCollection *This,
   2888         IUnknown **retval);
   2889 
   2890     HRESULT (STDMETHODCALLTYPE *get_Count)(
   2891         IUpdateDownloadContentCollection *This,
   2892         LONG *retval);
   2893 
   2894     END_INTERFACE
   2895 } IUpdateDownloadContentCollectionVtbl;
   2896 
   2897 interface IUpdateDownloadContentCollection {
   2898     CONST_VTBL IUpdateDownloadContentCollectionVtbl* lpVtbl;
   2899 };
   2900 
   2901 #ifdef COBJMACROS
   2902 #ifndef WIDL_C_INLINE_WRAPPERS
   2903 /*** IUnknown methods ***/
   2904 #define IUpdateDownloadContentCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   2905 #define IUpdateDownloadContentCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
   2906 #define IUpdateDownloadContentCollection_Release(This) (This)->lpVtbl->Release(This)
   2907 /*** IDispatch methods ***/
   2908 #define IUpdateDownloadContentCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   2909 #define IUpdateDownloadContentCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   2910 #define IUpdateDownloadContentCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   2911 #define IUpdateDownloadContentCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   2912 /*** IUpdateDownloadContentCollection methods ***/
   2913 #define IUpdateDownloadContentCollection_get_Item(This,index,retval) (This)->lpVtbl->get_Item(This,index,retval)
   2914 #define IUpdateDownloadContentCollection_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
   2915 #define IUpdateDownloadContentCollection_get_Count(This,retval) (This)->lpVtbl->get_Count(This,retval)
   2916 #else
   2917 /*** IUnknown methods ***/
   2918 static inline HRESULT IUpdateDownloadContentCollection_QueryInterface(IUpdateDownloadContentCollection* This,REFIID riid,void **ppvObject) {
   2919     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   2920 }
   2921 static inline ULONG IUpdateDownloadContentCollection_AddRef(IUpdateDownloadContentCollection* This) {
   2922     return This->lpVtbl->AddRef(This);
   2923 }
   2924 static inline ULONG IUpdateDownloadContentCollection_Release(IUpdateDownloadContentCollection* This) {
   2925     return This->lpVtbl->Release(This);
   2926 }
   2927 /*** IDispatch methods ***/
   2928 static inline HRESULT IUpdateDownloadContentCollection_GetTypeInfoCount(IUpdateDownloadContentCollection* This,UINT *pctinfo) {
   2929     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   2930 }
   2931 static inline HRESULT IUpdateDownloadContentCollection_GetTypeInfo(IUpdateDownloadContentCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   2932     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   2933 }
   2934 static inline HRESULT IUpdateDownloadContentCollection_GetIDsOfNames(IUpdateDownloadContentCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   2935     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   2936 }
   2937 static inline HRESULT IUpdateDownloadContentCollection_Invoke(IUpdateDownloadContentCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   2938     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   2939 }
   2940 /*** IUpdateDownloadContentCollection methods ***/
   2941 static inline HRESULT IUpdateDownloadContentCollection_get_Item(IUpdateDownloadContentCollection* This,LONG index,IUpdateDownloadContent **retval) {
   2942     return This->lpVtbl->get_Item(This,index,retval);
   2943 }
   2944 static inline HRESULT IUpdateDownloadContentCollection_get__NewEnum(IUpdateDownloadContentCollection* This,IUnknown **retval) {
   2945     return This->lpVtbl->get__NewEnum(This,retval);
   2946 }
   2947 static inline HRESULT IUpdateDownloadContentCollection_get_Count(IUpdateDownloadContentCollection* This,LONG *retval) {
   2948     return This->lpVtbl->get_Count(This,retval);
   2949 }
   2950 #endif
   2951 #endif
   2952 
   2953 #endif
   2954 
   2955 
   2956 #endif  /* __IUpdateDownloadContentCollection_INTERFACE_DEFINED__ */
   2957 
   2958 /*****************************************************************************
   2959  * IUpdate interface
   2960  */
   2961 #ifndef __IUpdate_INTERFACE_DEFINED__
   2962 #define __IUpdate_INTERFACE_DEFINED__
   2963 
   2964 DEFINE_GUID(IID_IUpdate, 0x6a92b07a, 0xd821, 0x4682, 0xb4,0x23, 0x5c,0x80,0x50,0x22,0xcc,0x4d);
   2965 #if defined(__cplusplus) && !defined(CINTERFACE)
   2966 MIDL_INTERFACE("6a92b07a-d821-4682-b423-5c805022cc4d")
   2967 IUpdate : public IDispatch
   2968 {
   2969     virtual HRESULT STDMETHODCALLTYPE get_Title(
   2970         BSTR *retval) = 0;
   2971 
   2972     virtual HRESULT STDMETHODCALLTYPE get_AutoSelectOnWebSites(
   2973         VARIANT_BOOL *retval) = 0;
   2974 
   2975     virtual HRESULT STDMETHODCALLTYPE get_BundledUpdates(
   2976         IUpdateCollection **retval) = 0;
   2977 
   2978     virtual HRESULT STDMETHODCALLTYPE get_CanRequireSource(
   2979         VARIANT_BOOL *retval) = 0;
   2980 
   2981     virtual HRESULT STDMETHODCALLTYPE get_Categories(
   2982         ICategoryCollection **retval) = 0;
   2983 
   2984     virtual HRESULT STDMETHODCALLTYPE get_Deadline(
   2985         VARIANT *retval) = 0;
   2986 
   2987     virtual HRESULT STDMETHODCALLTYPE get_DeltaCompressedContentAvailable(
   2988         VARIANT_BOOL *retval) = 0;
   2989 
   2990     virtual HRESULT STDMETHODCALLTYPE get_DeltaCompressedContentPreferred(
   2991         VARIANT_BOOL *retval) = 0;
   2992 
   2993     virtual HRESULT STDMETHODCALLTYPE get_Description(
   2994         BSTR *retval) = 0;
   2995 
   2996     virtual HRESULT STDMETHODCALLTYPE get_EulaAccepted(
   2997         VARIANT_BOOL *retval) = 0;
   2998 
   2999     virtual HRESULT STDMETHODCALLTYPE get_EulaText(
   3000         BSTR *retval) = 0;
   3001 
   3002     virtual HRESULT STDMETHODCALLTYPE get_HandlerID(
   3003         BSTR *retval) = 0;
   3004 
   3005     virtual HRESULT STDMETHODCALLTYPE get_Identity(
   3006         IUpdateIdentity **retval) = 0;
   3007 
   3008     virtual HRESULT STDMETHODCALLTYPE get_Image(
   3009         IImageInformation **retval) = 0;
   3010 
   3011     virtual HRESULT STDMETHODCALLTYPE get_InstallationBehavior(
   3012         IInstallationBehavior **retval) = 0;
   3013 
   3014     virtual HRESULT STDMETHODCALLTYPE get_IsBeta(
   3015         VARIANT_BOOL *retval) = 0;
   3016 
   3017     virtual HRESULT STDMETHODCALLTYPE get_IsDownloaded(
   3018         VARIANT_BOOL *retval) = 0;
   3019 
   3020     virtual HRESULT STDMETHODCALLTYPE get_IsHidden(
   3021         VARIANT_BOOL *retval) = 0;
   3022 
   3023     virtual HRESULT STDMETHODCALLTYPE put_IsHidden(
   3024         VARIANT_BOOL value) = 0;
   3025 
   3026     virtual HRESULT STDMETHODCALLTYPE get_IsInstalled(
   3027         VARIANT_BOOL *retval) = 0;
   3028 
   3029     virtual HRESULT STDMETHODCALLTYPE get_IsMandatory(
   3030         VARIANT_BOOL *retval) = 0;
   3031 
   3032     virtual HRESULT STDMETHODCALLTYPE get_IsUninstallable(
   3033         VARIANT_BOOL *retval) = 0;
   3034 
   3035     virtual HRESULT STDMETHODCALLTYPE get_Languages(
   3036         IStringCollection **retval) = 0;
   3037 
   3038     virtual HRESULT STDMETHODCALLTYPE get_LastDeploymentChangeTime(
   3039         DATE *retval) = 0;
   3040 
   3041     virtual HRESULT STDMETHODCALLTYPE get_MaxDownloadSize(
   3042         DECIMAL *retval) = 0;
   3043 
   3044     virtual HRESULT STDMETHODCALLTYPE get_MinDownloadSize(
   3045         DECIMAL *retval) = 0;
   3046 
   3047     virtual HRESULT STDMETHODCALLTYPE get_MoreInfoUrls(
   3048         IStringCollection **retval) = 0;
   3049 
   3050     virtual HRESULT STDMETHODCALLTYPE get_MsrcSeverity(
   3051         BSTR *retval) = 0;
   3052 
   3053     virtual HRESULT STDMETHODCALLTYPE get_RecommendedCpuSpeed(
   3054         LONG *retval) = 0;
   3055 
   3056     virtual HRESULT STDMETHODCALLTYPE get_RecommendedHardDiskSpace(
   3057         LONG *retval) = 0;
   3058 
   3059     virtual HRESULT STDMETHODCALLTYPE get_RecommendedMemory(
   3060         LONG *retval) = 0;
   3061 
   3062     virtual HRESULT STDMETHODCALLTYPE get_ReleaseNotes(
   3063         BSTR *retval) = 0;
   3064 
   3065     virtual HRESULT STDMETHODCALLTYPE get_SecurityBulletinIDs(
   3066         IStringCollection **retval) = 0;
   3067 
   3068     virtual HRESULT STDMETHODCALLTYPE get_SupersededUpdateIDs(
   3069         IStringCollection **retval) = 0;
   3070 
   3071     virtual HRESULT STDMETHODCALLTYPE get_SupportUrl(
   3072         BSTR *retval) = 0;
   3073 
   3074     virtual HRESULT STDMETHODCALLTYPE get_Type(
   3075         UpdateType *retval) = 0;
   3076 
   3077     virtual HRESULT STDMETHODCALLTYPE get_UninstallationNotes(
   3078         BSTR *retval) = 0;
   3079 
   3080     virtual HRESULT STDMETHODCALLTYPE get_UninstallationBehavior(
   3081         IInstallationBehavior **retval) = 0;
   3082 
   3083     virtual HRESULT STDMETHODCALLTYPE get_UninstallationSteps(
   3084         IStringCollection **retval) = 0;
   3085 
   3086     virtual HRESULT STDMETHODCALLTYPE get_KBArticleIDs(
   3087         IStringCollection **retval) = 0;
   3088 
   3089     virtual HRESULT STDMETHODCALLTYPE AcceptEula(
   3090         ) = 0;
   3091 
   3092     virtual HRESULT STDMETHODCALLTYPE get_DeploymentAction(
   3093         DeploymentAction *retval) = 0;
   3094 
   3095     virtual HRESULT STDMETHODCALLTYPE CopyFromCache(
   3096         BSTR path,
   3097         VARIANT_BOOL toExtractCabFiles) = 0;
   3098 
   3099     virtual HRESULT STDMETHODCALLTYPE get_DownloadPriority(
   3100         DownloadPriority *retval) = 0;
   3101 
   3102     virtual HRESULT STDMETHODCALLTYPE get_DownloadContents(
   3103         IUpdateDownloadContentCollection **retval) = 0;
   3104 
   3105 };
   3106 #ifdef __CRT_UUID_DECL
   3107 __CRT_UUID_DECL(IUpdate, 0x6a92b07a, 0xd821, 0x4682, 0xb4,0x23, 0x5c,0x80,0x50,0x22,0xcc,0x4d)
   3108 #endif
   3109 #else
   3110 typedef struct IUpdateVtbl {
   3111     BEGIN_INTERFACE
   3112 
   3113     /*** IUnknown methods ***/
   3114     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3115         IUpdate *This,
   3116         REFIID riid,
   3117         void **ppvObject);
   3118 
   3119     ULONG (STDMETHODCALLTYPE *AddRef)(
   3120         IUpdate *This);
   3121 
   3122     ULONG (STDMETHODCALLTYPE *Release)(
   3123         IUpdate *This);
   3124 
   3125     /*** IDispatch methods ***/
   3126     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   3127         IUpdate *This,
   3128         UINT *pctinfo);
   3129 
   3130     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   3131         IUpdate *This,
   3132         UINT iTInfo,
   3133         LCID lcid,
   3134         ITypeInfo **ppTInfo);
   3135 
   3136     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   3137         IUpdate *This,
   3138         REFIID riid,
   3139         LPOLESTR *rgszNames,
   3140         UINT cNames,
   3141         LCID lcid,
   3142         DISPID *rgDispId);
   3143 
   3144     HRESULT (STDMETHODCALLTYPE *Invoke)(
   3145         IUpdate *This,
   3146         DISPID dispIdMember,
   3147         REFIID riid,
   3148         LCID lcid,
   3149         WORD wFlags,
   3150         DISPPARAMS *pDispParams,
   3151         VARIANT *pVarResult,
   3152         EXCEPINFO *pExcepInfo,
   3153         UINT *puArgErr);
   3154 
   3155     /*** IUpdate methods ***/
   3156     HRESULT (STDMETHODCALLTYPE *get_Title)(
   3157         IUpdate *This,
   3158         BSTR *retval);
   3159 
   3160     HRESULT (STDMETHODCALLTYPE *get_AutoSelectOnWebSites)(
   3161         IUpdate *This,
   3162         VARIANT_BOOL *retval);
   3163 
   3164     HRESULT (STDMETHODCALLTYPE *get_BundledUpdates)(
   3165         IUpdate *This,
   3166         IUpdateCollection **retval);
   3167 
   3168     HRESULT (STDMETHODCALLTYPE *get_CanRequireSource)(
   3169         IUpdate *This,
   3170         VARIANT_BOOL *retval);
   3171 
   3172     HRESULT (STDMETHODCALLTYPE *get_Categories)(
   3173         IUpdate *This,
   3174         ICategoryCollection **retval);
   3175 
   3176     HRESULT (STDMETHODCALLTYPE *get_Deadline)(
   3177         IUpdate *This,
   3178         VARIANT *retval);
   3179 
   3180     HRESULT (STDMETHODCALLTYPE *get_DeltaCompressedContentAvailable)(
   3181         IUpdate *This,
   3182         VARIANT_BOOL *retval);
   3183 
   3184     HRESULT (STDMETHODCALLTYPE *get_DeltaCompressedContentPreferred)(
   3185         IUpdate *This,
   3186         VARIANT_BOOL *retval);
   3187 
   3188     HRESULT (STDMETHODCALLTYPE *get_Description)(
   3189         IUpdate *This,
   3190         BSTR *retval);
   3191 
   3192     HRESULT (STDMETHODCALLTYPE *get_EulaAccepted)(
   3193         IUpdate *This,
   3194         VARIANT_BOOL *retval);
   3195 
   3196     HRESULT (STDMETHODCALLTYPE *get_EulaText)(
   3197         IUpdate *This,
   3198         BSTR *retval);
   3199 
   3200     HRESULT (STDMETHODCALLTYPE *get_HandlerID)(
   3201         IUpdate *This,
   3202         BSTR *retval);
   3203 
   3204     HRESULT (STDMETHODCALLTYPE *get_Identity)(
   3205         IUpdate *This,
   3206         IUpdateIdentity **retval);
   3207 
   3208     HRESULT (STDMETHODCALLTYPE *get_Image)(
   3209         IUpdate *This,
   3210         IImageInformation **retval);
   3211 
   3212     HRESULT (STDMETHODCALLTYPE *get_InstallationBehavior)(
   3213         IUpdate *This,
   3214         IInstallationBehavior **retval);
   3215 
   3216     HRESULT (STDMETHODCALLTYPE *get_IsBeta)(
   3217         IUpdate *This,
   3218         VARIANT_BOOL *retval);
   3219 
   3220     HRESULT (STDMETHODCALLTYPE *get_IsDownloaded)(
   3221         IUpdate *This,
   3222         VARIANT_BOOL *retval);
   3223 
   3224     HRESULT (STDMETHODCALLTYPE *get_IsHidden)(
   3225         IUpdate *This,
   3226         VARIANT_BOOL *retval);
   3227 
   3228     HRESULT (STDMETHODCALLTYPE *put_IsHidden)(
   3229         IUpdate *This,
   3230         VARIANT_BOOL value);
   3231 
   3232     HRESULT (STDMETHODCALLTYPE *get_IsInstalled)(
   3233         IUpdate *This,
   3234         VARIANT_BOOL *retval);
   3235 
   3236     HRESULT (STDMETHODCALLTYPE *get_IsMandatory)(
   3237         IUpdate *This,
   3238         VARIANT_BOOL *retval);
   3239 
   3240     HRESULT (STDMETHODCALLTYPE *get_IsUninstallable)(
   3241         IUpdate *This,
   3242         VARIANT_BOOL *retval);
   3243 
   3244     HRESULT (STDMETHODCALLTYPE *get_Languages)(
   3245         IUpdate *This,
   3246         IStringCollection **retval);
   3247 
   3248     HRESULT (STDMETHODCALLTYPE *get_LastDeploymentChangeTime)(
   3249         IUpdate *This,
   3250         DATE *retval);
   3251 
   3252     HRESULT (STDMETHODCALLTYPE *get_MaxDownloadSize)(
   3253         IUpdate *This,
   3254         DECIMAL *retval);
   3255 
   3256     HRESULT (STDMETHODCALLTYPE *get_MinDownloadSize)(
   3257         IUpdate *This,
   3258         DECIMAL *retval);
   3259 
   3260     HRESULT (STDMETHODCALLTYPE *get_MoreInfoUrls)(
   3261         IUpdate *This,
   3262         IStringCollection **retval);
   3263 
   3264     HRESULT (STDMETHODCALLTYPE *get_MsrcSeverity)(
   3265         IUpdate *This,
   3266         BSTR *retval);
   3267 
   3268     HRESULT (STDMETHODCALLTYPE *get_RecommendedCpuSpeed)(
   3269         IUpdate *This,
   3270         LONG *retval);
   3271 
   3272     HRESULT (STDMETHODCALLTYPE *get_RecommendedHardDiskSpace)(
   3273         IUpdate *This,
   3274         LONG *retval);
   3275 
   3276     HRESULT (STDMETHODCALLTYPE *get_RecommendedMemory)(
   3277         IUpdate *This,
   3278         LONG *retval);
   3279 
   3280     HRESULT (STDMETHODCALLTYPE *get_ReleaseNotes)(
   3281         IUpdate *This,
   3282         BSTR *retval);
   3283 
   3284     HRESULT (STDMETHODCALLTYPE *get_SecurityBulletinIDs)(
   3285         IUpdate *This,
   3286         IStringCollection **retval);
   3287 
   3288     HRESULT (STDMETHODCALLTYPE *get_SupersededUpdateIDs)(
   3289         IUpdate *This,
   3290         IStringCollection **retval);
   3291 
   3292     HRESULT (STDMETHODCALLTYPE *get_SupportUrl)(
   3293         IUpdate *This,
   3294         BSTR *retval);
   3295 
   3296     HRESULT (STDMETHODCALLTYPE *get_Type)(
   3297         IUpdate *This,
   3298         UpdateType *retval);
   3299 
   3300     HRESULT (STDMETHODCALLTYPE *get_UninstallationNotes)(
   3301         IUpdate *This,
   3302         BSTR *retval);
   3303 
   3304     HRESULT (STDMETHODCALLTYPE *get_UninstallationBehavior)(
   3305         IUpdate *This,
   3306         IInstallationBehavior **retval);
   3307 
   3308     HRESULT (STDMETHODCALLTYPE *get_UninstallationSteps)(
   3309         IUpdate *This,
   3310         IStringCollection **retval);
   3311 
   3312     HRESULT (STDMETHODCALLTYPE *get_KBArticleIDs)(
   3313         IUpdate *This,
   3314         IStringCollection **retval);
   3315 
   3316     HRESULT (STDMETHODCALLTYPE *AcceptEula)(
   3317         IUpdate *This);
   3318 
   3319     HRESULT (STDMETHODCALLTYPE *get_DeploymentAction)(
   3320         IUpdate *This,
   3321         DeploymentAction *retval);
   3322 
   3323     HRESULT (STDMETHODCALLTYPE *CopyFromCache)(
   3324         IUpdate *This,
   3325         BSTR path,
   3326         VARIANT_BOOL toExtractCabFiles);
   3327 
   3328     HRESULT (STDMETHODCALLTYPE *get_DownloadPriority)(
   3329         IUpdate *This,
   3330         DownloadPriority *retval);
   3331 
   3332     HRESULT (STDMETHODCALLTYPE *get_DownloadContents)(
   3333         IUpdate *This,
   3334         IUpdateDownloadContentCollection **retval);
   3335 
   3336     END_INTERFACE
   3337 } IUpdateVtbl;
   3338 
   3339 interface IUpdate {
   3340     CONST_VTBL IUpdateVtbl* lpVtbl;
   3341 };
   3342 
   3343 #ifdef COBJMACROS
   3344 #ifndef WIDL_C_INLINE_WRAPPERS
   3345 /*** IUnknown methods ***/
   3346 #define IUpdate_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3347 #define IUpdate_AddRef(This) (This)->lpVtbl->AddRef(This)
   3348 #define IUpdate_Release(This) (This)->lpVtbl->Release(This)
   3349 /*** IDispatch methods ***/
   3350 #define IUpdate_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   3351 #define IUpdate_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   3352 #define IUpdate_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   3353 #define IUpdate_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   3354 /*** IUpdate methods ***/
   3355 #define IUpdate_get_Title(This,retval) (This)->lpVtbl->get_Title(This,retval)
   3356 #define IUpdate_get_AutoSelectOnWebSites(This,retval) (This)->lpVtbl->get_AutoSelectOnWebSites(This,retval)
   3357 #define IUpdate_get_BundledUpdates(This,retval) (This)->lpVtbl->get_BundledUpdates(This,retval)
   3358 #define IUpdate_get_CanRequireSource(This,retval) (This)->lpVtbl->get_CanRequireSource(This,retval)
   3359 #define IUpdate_get_Categories(This,retval) (This)->lpVtbl->get_Categories(This,retval)
   3360 #define IUpdate_get_Deadline(This,retval) (This)->lpVtbl->get_Deadline(This,retval)
   3361 #define IUpdate_get_DeltaCompressedContentAvailable(This,retval) (This)->lpVtbl->get_DeltaCompressedContentAvailable(This,retval)
   3362 #define IUpdate_get_DeltaCompressedContentPreferred(This,retval) (This)->lpVtbl->get_DeltaCompressedContentPreferred(This,retval)
   3363 #define IUpdate_get_Description(This,retval) (This)->lpVtbl->get_Description(This,retval)
   3364 #define IUpdate_get_EulaAccepted(This,retval) (This)->lpVtbl->get_EulaAccepted(This,retval)
   3365 #define IUpdate_get_EulaText(This,retval) (This)->lpVtbl->get_EulaText(This,retval)
   3366 #define IUpdate_get_HandlerID(This,retval) (This)->lpVtbl->get_HandlerID(This,retval)
   3367 #define IUpdate_get_Identity(This,retval) (This)->lpVtbl->get_Identity(This,retval)
   3368 #define IUpdate_get_Image(This,retval) (This)->lpVtbl->get_Image(This,retval)
   3369 #define IUpdate_get_InstallationBehavior(This,retval) (This)->lpVtbl->get_InstallationBehavior(This,retval)
   3370 #define IUpdate_get_IsBeta(This,retval) (This)->lpVtbl->get_IsBeta(This,retval)
   3371 #define IUpdate_get_IsDownloaded(This,retval) (This)->lpVtbl->get_IsDownloaded(This,retval)
   3372 #define IUpdate_get_IsHidden(This,retval) (This)->lpVtbl->get_IsHidden(This,retval)
   3373 #define IUpdate_put_IsHidden(This,value) (This)->lpVtbl->put_IsHidden(This,value)
   3374 #define IUpdate_get_IsInstalled(This,retval) (This)->lpVtbl->get_IsInstalled(This,retval)
   3375 #define IUpdate_get_IsMandatory(This,retval) (This)->lpVtbl->get_IsMandatory(This,retval)
   3376 #define IUpdate_get_IsUninstallable(This,retval) (This)->lpVtbl->get_IsUninstallable(This,retval)
   3377 #define IUpdate_get_Languages(This,retval) (This)->lpVtbl->get_Languages(This,retval)
   3378 #define IUpdate_get_LastDeploymentChangeTime(This,retval) (This)->lpVtbl->get_LastDeploymentChangeTime(This,retval)
   3379 #define IUpdate_get_MaxDownloadSize(This,retval) (This)->lpVtbl->get_MaxDownloadSize(This,retval)
   3380 #define IUpdate_get_MinDownloadSize(This,retval) (This)->lpVtbl->get_MinDownloadSize(This,retval)
   3381 #define IUpdate_get_MoreInfoUrls(This,retval) (This)->lpVtbl->get_MoreInfoUrls(This,retval)
   3382 #define IUpdate_get_MsrcSeverity(This,retval) (This)->lpVtbl->get_MsrcSeverity(This,retval)
   3383 #define IUpdate_get_RecommendedCpuSpeed(This,retval) (This)->lpVtbl->get_RecommendedCpuSpeed(This,retval)
   3384 #define IUpdate_get_RecommendedHardDiskSpace(This,retval) (This)->lpVtbl->get_RecommendedHardDiskSpace(This,retval)
   3385 #define IUpdate_get_RecommendedMemory(This,retval) (This)->lpVtbl->get_RecommendedMemory(This,retval)
   3386 #define IUpdate_get_ReleaseNotes(This,retval) (This)->lpVtbl->get_ReleaseNotes(This,retval)
   3387 #define IUpdate_get_SecurityBulletinIDs(This,retval) (This)->lpVtbl->get_SecurityBulletinIDs(This,retval)
   3388 #define IUpdate_get_SupersededUpdateIDs(This,retval) (This)->lpVtbl->get_SupersededUpdateIDs(This,retval)
   3389 #define IUpdate_get_SupportUrl(This,retval) (This)->lpVtbl->get_SupportUrl(This,retval)
   3390 #define IUpdate_get_Type(This,retval) (This)->lpVtbl->get_Type(This,retval)
   3391 #define IUpdate_get_UninstallationNotes(This,retval) (This)->lpVtbl->get_UninstallationNotes(This,retval)
   3392 #define IUpdate_get_UninstallationBehavior(This,retval) (This)->lpVtbl->get_UninstallationBehavior(This,retval)
   3393 #define IUpdate_get_UninstallationSteps(This,retval) (This)->lpVtbl->get_UninstallationSteps(This,retval)
   3394 #define IUpdate_get_KBArticleIDs(This,retval) (This)->lpVtbl->get_KBArticleIDs(This,retval)
   3395 #define IUpdate_AcceptEula(This) (This)->lpVtbl->AcceptEula(This)
   3396 #define IUpdate_get_DeploymentAction(This,retval) (This)->lpVtbl->get_DeploymentAction(This,retval)
   3397 #define IUpdate_CopyFromCache(This,path,toExtractCabFiles) (This)->lpVtbl->CopyFromCache(This,path,toExtractCabFiles)
   3398 #define IUpdate_get_DownloadPriority(This,retval) (This)->lpVtbl->get_DownloadPriority(This,retval)
   3399 #define IUpdate_get_DownloadContents(This,retval) (This)->lpVtbl->get_DownloadContents(This,retval)
   3400 #else
   3401 /*** IUnknown methods ***/
   3402 static inline HRESULT IUpdate_QueryInterface(IUpdate* This,REFIID riid,void **ppvObject) {
   3403     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3404 }
   3405 static inline ULONG IUpdate_AddRef(IUpdate* This) {
   3406     return This->lpVtbl->AddRef(This);
   3407 }
   3408 static inline ULONG IUpdate_Release(IUpdate* This) {
   3409     return This->lpVtbl->Release(This);
   3410 }
   3411 /*** IDispatch methods ***/
   3412 static inline HRESULT IUpdate_GetTypeInfoCount(IUpdate* This,UINT *pctinfo) {
   3413     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   3414 }
   3415 static inline HRESULT IUpdate_GetTypeInfo(IUpdate* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   3416     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   3417 }
   3418 static inline HRESULT IUpdate_GetIDsOfNames(IUpdate* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   3419     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   3420 }
   3421 static inline HRESULT IUpdate_Invoke(IUpdate* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   3422     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   3423 }
   3424 /*** IUpdate methods ***/
   3425 static inline HRESULT IUpdate_get_Title(IUpdate* This,BSTR *retval) {
   3426     return This->lpVtbl->get_Title(This,retval);
   3427 }
   3428 static inline HRESULT IUpdate_get_AutoSelectOnWebSites(IUpdate* This,VARIANT_BOOL *retval) {
   3429     return This->lpVtbl->get_AutoSelectOnWebSites(This,retval);
   3430 }
   3431 static inline HRESULT IUpdate_get_BundledUpdates(IUpdate* This,IUpdateCollection **retval) {
   3432     return This->lpVtbl->get_BundledUpdates(This,retval);
   3433 }
   3434 static inline HRESULT IUpdate_get_CanRequireSource(IUpdate* This,VARIANT_BOOL *retval) {
   3435     return This->lpVtbl->get_CanRequireSource(This,retval);
   3436 }
   3437 static inline HRESULT IUpdate_get_Categories(IUpdate* This,ICategoryCollection **retval) {
   3438     return This->lpVtbl->get_Categories(This,retval);
   3439 }
   3440 static inline HRESULT IUpdate_get_Deadline(IUpdate* This,VARIANT *retval) {
   3441     return This->lpVtbl->get_Deadline(This,retval);
   3442 }
   3443 static inline HRESULT IUpdate_get_DeltaCompressedContentAvailable(IUpdate* This,VARIANT_BOOL *retval) {
   3444     return This->lpVtbl->get_DeltaCompressedContentAvailable(This,retval);
   3445 }
   3446 static inline HRESULT IUpdate_get_DeltaCompressedContentPreferred(IUpdate* This,VARIANT_BOOL *retval) {
   3447     return This->lpVtbl->get_DeltaCompressedContentPreferred(This,retval);
   3448 }
   3449 static inline HRESULT IUpdate_get_Description(IUpdate* This,BSTR *retval) {
   3450     return This->lpVtbl->get_Description(This,retval);
   3451 }
   3452 static inline HRESULT IUpdate_get_EulaAccepted(IUpdate* This,VARIANT_BOOL *retval) {
   3453     return This->lpVtbl->get_EulaAccepted(This,retval);
   3454 }
   3455 static inline HRESULT IUpdate_get_EulaText(IUpdate* This,BSTR *retval) {
   3456     return This->lpVtbl->get_EulaText(This,retval);
   3457 }
   3458 static inline HRESULT IUpdate_get_HandlerID(IUpdate* This,BSTR *retval) {
   3459     return This->lpVtbl->get_HandlerID(This,retval);
   3460 }
   3461 static inline HRESULT IUpdate_get_Identity(IUpdate* This,IUpdateIdentity **retval) {
   3462     return This->lpVtbl->get_Identity(This,retval);
   3463 }
   3464 static inline HRESULT IUpdate_get_Image(IUpdate* This,IImageInformation **retval) {
   3465     return This->lpVtbl->get_Image(This,retval);
   3466 }
   3467 static inline HRESULT IUpdate_get_InstallationBehavior(IUpdate* This,IInstallationBehavior **retval) {
   3468     return This->lpVtbl->get_InstallationBehavior(This,retval);
   3469 }
   3470 static inline HRESULT IUpdate_get_IsBeta(IUpdate* This,VARIANT_BOOL *retval) {
   3471     return This->lpVtbl->get_IsBeta(This,retval);
   3472 }
   3473 static inline HRESULT IUpdate_get_IsDownloaded(IUpdate* This,VARIANT_BOOL *retval) {
   3474     return This->lpVtbl->get_IsDownloaded(This,retval);
   3475 }
   3476 static inline HRESULT IUpdate_get_IsHidden(IUpdate* This,VARIANT_BOOL *retval) {
   3477     return This->lpVtbl->get_IsHidden(This,retval);
   3478 }
   3479 static inline HRESULT IUpdate_put_IsHidden(IUpdate* This,VARIANT_BOOL value) {
   3480     return This->lpVtbl->put_IsHidden(This,value);
   3481 }
   3482 static inline HRESULT IUpdate_get_IsInstalled(IUpdate* This,VARIANT_BOOL *retval) {
   3483     return This->lpVtbl->get_IsInstalled(This,retval);
   3484 }
   3485 static inline HRESULT IUpdate_get_IsMandatory(IUpdate* This,VARIANT_BOOL *retval) {
   3486     return This->lpVtbl->get_IsMandatory(This,retval);
   3487 }
   3488 static inline HRESULT IUpdate_get_IsUninstallable(IUpdate* This,VARIANT_BOOL *retval) {
   3489     return This->lpVtbl->get_IsUninstallable(This,retval);
   3490 }
   3491 static inline HRESULT IUpdate_get_Languages(IUpdate* This,IStringCollection **retval) {
   3492     return This->lpVtbl->get_Languages(This,retval);
   3493 }
   3494 static inline HRESULT IUpdate_get_LastDeploymentChangeTime(IUpdate* This,DATE *retval) {
   3495     return This->lpVtbl->get_LastDeploymentChangeTime(This,retval);
   3496 }
   3497 static inline HRESULT IUpdate_get_MaxDownloadSize(IUpdate* This,DECIMAL *retval) {
   3498     return This->lpVtbl->get_MaxDownloadSize(This,retval);
   3499 }
   3500 static inline HRESULT IUpdate_get_MinDownloadSize(IUpdate* This,DECIMAL *retval) {
   3501     return This->lpVtbl->get_MinDownloadSize(This,retval);
   3502 }
   3503 static inline HRESULT IUpdate_get_MoreInfoUrls(IUpdate* This,IStringCollection **retval) {
   3504     return This->lpVtbl->get_MoreInfoUrls(This,retval);
   3505 }
   3506 static inline HRESULT IUpdate_get_MsrcSeverity(IUpdate* This,BSTR *retval) {
   3507     return This->lpVtbl->get_MsrcSeverity(This,retval);
   3508 }
   3509 static inline HRESULT IUpdate_get_RecommendedCpuSpeed(IUpdate* This,LONG *retval) {
   3510     return This->lpVtbl->get_RecommendedCpuSpeed(This,retval);
   3511 }
   3512 static inline HRESULT IUpdate_get_RecommendedHardDiskSpace(IUpdate* This,LONG *retval) {
   3513     return This->lpVtbl->get_RecommendedHardDiskSpace(This,retval);
   3514 }
   3515 static inline HRESULT IUpdate_get_RecommendedMemory(IUpdate* This,LONG *retval) {
   3516     return This->lpVtbl->get_RecommendedMemory(This,retval);
   3517 }
   3518 static inline HRESULT IUpdate_get_ReleaseNotes(IUpdate* This,BSTR *retval) {
   3519     return This->lpVtbl->get_ReleaseNotes(This,retval);
   3520 }
   3521 static inline HRESULT IUpdate_get_SecurityBulletinIDs(IUpdate* This,IStringCollection **retval) {
   3522     return This->lpVtbl->get_SecurityBulletinIDs(This,retval);
   3523 }
   3524 static inline HRESULT IUpdate_get_SupersededUpdateIDs(IUpdate* This,IStringCollection **retval) {
   3525     return This->lpVtbl->get_SupersededUpdateIDs(This,retval);
   3526 }
   3527 static inline HRESULT IUpdate_get_SupportUrl(IUpdate* This,BSTR *retval) {
   3528     return This->lpVtbl->get_SupportUrl(This,retval);
   3529 }
   3530 static inline HRESULT IUpdate_get_Type(IUpdate* This,UpdateType *retval) {
   3531     return This->lpVtbl->get_Type(This,retval);
   3532 }
   3533 static inline HRESULT IUpdate_get_UninstallationNotes(IUpdate* This,BSTR *retval) {
   3534     return This->lpVtbl->get_UninstallationNotes(This,retval);
   3535 }
   3536 static inline HRESULT IUpdate_get_UninstallationBehavior(IUpdate* This,IInstallationBehavior **retval) {
   3537     return This->lpVtbl->get_UninstallationBehavior(This,retval);
   3538 }
   3539 static inline HRESULT IUpdate_get_UninstallationSteps(IUpdate* This,IStringCollection **retval) {
   3540     return This->lpVtbl->get_UninstallationSteps(This,retval);
   3541 }
   3542 static inline HRESULT IUpdate_get_KBArticleIDs(IUpdate* This,IStringCollection **retval) {
   3543     return This->lpVtbl->get_KBArticleIDs(This,retval);
   3544 }
   3545 static inline HRESULT IUpdate_AcceptEula(IUpdate* This) {
   3546     return This->lpVtbl->AcceptEula(This);
   3547 }
   3548 static inline HRESULT IUpdate_get_DeploymentAction(IUpdate* This,DeploymentAction *retval) {
   3549     return This->lpVtbl->get_DeploymentAction(This,retval);
   3550 }
   3551 static inline HRESULT IUpdate_CopyFromCache(IUpdate* This,BSTR path,VARIANT_BOOL toExtractCabFiles) {
   3552     return This->lpVtbl->CopyFromCache(This,path,toExtractCabFiles);
   3553 }
   3554 static inline HRESULT IUpdate_get_DownloadPriority(IUpdate* This,DownloadPriority *retval) {
   3555     return This->lpVtbl->get_DownloadPriority(This,retval);
   3556 }
   3557 static inline HRESULT IUpdate_get_DownloadContents(IUpdate* This,IUpdateDownloadContentCollection **retval) {
   3558     return This->lpVtbl->get_DownloadContents(This,retval);
   3559 }
   3560 #endif
   3561 #endif
   3562 
   3563 #endif
   3564 
   3565 
   3566 #endif  /* __IUpdate_INTERFACE_DEFINED__ */
   3567 
   3568 /*****************************************************************************
   3569  * IUpdateCollection interface
   3570  */
   3571 #ifndef __IUpdateCollection_INTERFACE_DEFINED__
   3572 #define __IUpdateCollection_INTERFACE_DEFINED__
   3573 
   3574 DEFINE_GUID(IID_IUpdateCollection, 0x07f7438c, 0x7709, 0x4ca5, 0xb5,0x18, 0x91,0x27,0x92,0x88,0x13,0x4e);
   3575 #if defined(__cplusplus) && !defined(CINTERFACE)
   3576 MIDL_INTERFACE("07f7438c-7709-4ca5-b518-91279288134e")
   3577 IUpdateCollection : public IDispatch
   3578 {
   3579     virtual HRESULT STDMETHODCALLTYPE get_Item(
   3580         LONG index,
   3581         IUpdate **retval) = 0;
   3582 
   3583     virtual HRESULT STDMETHODCALLTYPE put_Item(
   3584         LONG index,
   3585         IUpdate *value) = 0;
   3586 
   3587     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
   3588         IUnknown **retval) = 0;
   3589 
   3590     virtual HRESULT STDMETHODCALLTYPE get_Count(
   3591         LONG *retval) = 0;
   3592 
   3593     virtual HRESULT STDMETHODCALLTYPE get_ReadOnly(
   3594         VARIANT_BOOL *retval) = 0;
   3595 
   3596     virtual HRESULT STDMETHODCALLTYPE Add(
   3597         IUpdate *value,
   3598         LONG *retval) = 0;
   3599 
   3600     virtual HRESULT STDMETHODCALLTYPE Clear(
   3601         ) = 0;
   3602 
   3603     virtual HRESULT STDMETHODCALLTYPE Copy(
   3604         IUpdateCollection **retval) = 0;
   3605 
   3606     virtual HRESULT STDMETHODCALLTYPE Insert(
   3607         LONG index,
   3608         IUpdate *value) = 0;
   3609 
   3610     virtual HRESULT STDMETHODCALLTYPE RemoveAt(
   3611         LONG index) = 0;
   3612 
   3613 };
   3614 #ifdef __CRT_UUID_DECL
   3615 __CRT_UUID_DECL(IUpdateCollection, 0x07f7438c, 0x7709, 0x4ca5, 0xb5,0x18, 0x91,0x27,0x92,0x88,0x13,0x4e)
   3616 #endif
   3617 #else
   3618 typedef struct IUpdateCollectionVtbl {
   3619     BEGIN_INTERFACE
   3620 
   3621     /*** IUnknown methods ***/
   3622     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3623         IUpdateCollection *This,
   3624         REFIID riid,
   3625         void **ppvObject);
   3626 
   3627     ULONG (STDMETHODCALLTYPE *AddRef)(
   3628         IUpdateCollection *This);
   3629 
   3630     ULONG (STDMETHODCALLTYPE *Release)(
   3631         IUpdateCollection *This);
   3632 
   3633     /*** IDispatch methods ***/
   3634     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   3635         IUpdateCollection *This,
   3636         UINT *pctinfo);
   3637 
   3638     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   3639         IUpdateCollection *This,
   3640         UINT iTInfo,
   3641         LCID lcid,
   3642         ITypeInfo **ppTInfo);
   3643 
   3644     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   3645         IUpdateCollection *This,
   3646         REFIID riid,
   3647         LPOLESTR *rgszNames,
   3648         UINT cNames,
   3649         LCID lcid,
   3650         DISPID *rgDispId);
   3651 
   3652     HRESULT (STDMETHODCALLTYPE *Invoke)(
   3653         IUpdateCollection *This,
   3654         DISPID dispIdMember,
   3655         REFIID riid,
   3656         LCID lcid,
   3657         WORD wFlags,
   3658         DISPPARAMS *pDispParams,
   3659         VARIANT *pVarResult,
   3660         EXCEPINFO *pExcepInfo,
   3661         UINT *puArgErr);
   3662 
   3663     /*** IUpdateCollection methods ***/
   3664     HRESULT (STDMETHODCALLTYPE *get_Item)(
   3665         IUpdateCollection *This,
   3666         LONG index,
   3667         IUpdate **retval);
   3668 
   3669     HRESULT (STDMETHODCALLTYPE *put_Item)(
   3670         IUpdateCollection *This,
   3671         LONG index,
   3672         IUpdate *value);
   3673 
   3674     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
   3675         IUpdateCollection *This,
   3676         IUnknown **retval);
   3677 
   3678     HRESULT (STDMETHODCALLTYPE *get_Count)(
   3679         IUpdateCollection *This,
   3680         LONG *retval);
   3681 
   3682     HRESULT (STDMETHODCALLTYPE *get_ReadOnly)(
   3683         IUpdateCollection *This,
   3684         VARIANT_BOOL *retval);
   3685 
   3686     HRESULT (STDMETHODCALLTYPE *Add)(
   3687         IUpdateCollection *This,
   3688         IUpdate *value,
   3689         LONG *retval);
   3690 
   3691     HRESULT (STDMETHODCALLTYPE *Clear)(
   3692         IUpdateCollection *This);
   3693 
   3694     HRESULT (STDMETHODCALLTYPE *Copy)(
   3695         IUpdateCollection *This,
   3696         IUpdateCollection **retval);
   3697 
   3698     HRESULT (STDMETHODCALLTYPE *Insert)(
   3699         IUpdateCollection *This,
   3700         LONG index,
   3701         IUpdate *value);
   3702 
   3703     HRESULT (STDMETHODCALLTYPE *RemoveAt)(
   3704         IUpdateCollection *This,
   3705         LONG index);
   3706 
   3707     END_INTERFACE
   3708 } IUpdateCollectionVtbl;
   3709 
   3710 interface IUpdateCollection {
   3711     CONST_VTBL IUpdateCollectionVtbl* lpVtbl;
   3712 };
   3713 
   3714 #ifdef COBJMACROS
   3715 #ifndef WIDL_C_INLINE_WRAPPERS
   3716 /*** IUnknown methods ***/
   3717 #define IUpdateCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3718 #define IUpdateCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
   3719 #define IUpdateCollection_Release(This) (This)->lpVtbl->Release(This)
   3720 /*** IDispatch methods ***/
   3721 #define IUpdateCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   3722 #define IUpdateCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   3723 #define IUpdateCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   3724 #define IUpdateCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   3725 /*** IUpdateCollection methods ***/
   3726 #define IUpdateCollection_get_Item(This,index,retval) (This)->lpVtbl->get_Item(This,index,retval)
   3727 #define IUpdateCollection_put_Item(This,index,value) (This)->lpVtbl->put_Item(This,index,value)
   3728 #define IUpdateCollection_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
   3729 #define IUpdateCollection_get_Count(This,retval) (This)->lpVtbl->get_Count(This,retval)
   3730 #define IUpdateCollection_get_ReadOnly(This,retval) (This)->lpVtbl->get_ReadOnly(This,retval)
   3731 #define IUpdateCollection_Add(This,value,retval) (This)->lpVtbl->Add(This,value,retval)
   3732 #define IUpdateCollection_Clear(This) (This)->lpVtbl->Clear(This)
   3733 #define IUpdateCollection_Copy(This,retval) (This)->lpVtbl->Copy(This,retval)
   3734 #define IUpdateCollection_Insert(This,index,value) (This)->lpVtbl->Insert(This,index,value)
   3735 #define IUpdateCollection_RemoveAt(This,index) (This)->lpVtbl->RemoveAt(This,index)
   3736 #else
   3737 /*** IUnknown methods ***/
   3738 static inline HRESULT IUpdateCollection_QueryInterface(IUpdateCollection* This,REFIID riid,void **ppvObject) {
   3739     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3740 }
   3741 static inline ULONG IUpdateCollection_AddRef(IUpdateCollection* This) {
   3742     return This->lpVtbl->AddRef(This);
   3743 }
   3744 static inline ULONG IUpdateCollection_Release(IUpdateCollection* This) {
   3745     return This->lpVtbl->Release(This);
   3746 }
   3747 /*** IDispatch methods ***/
   3748 static inline HRESULT IUpdateCollection_GetTypeInfoCount(IUpdateCollection* This,UINT *pctinfo) {
   3749     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   3750 }
   3751 static inline HRESULT IUpdateCollection_GetTypeInfo(IUpdateCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   3752     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   3753 }
   3754 static inline HRESULT IUpdateCollection_GetIDsOfNames(IUpdateCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   3755     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   3756 }
   3757 static inline HRESULT IUpdateCollection_Invoke(IUpdateCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   3758     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   3759 }
   3760 /*** IUpdateCollection methods ***/
   3761 static inline HRESULT IUpdateCollection_get_Item(IUpdateCollection* This,LONG index,IUpdate **retval) {
   3762     return This->lpVtbl->get_Item(This,index,retval);
   3763 }
   3764 static inline HRESULT IUpdateCollection_put_Item(IUpdateCollection* This,LONG index,IUpdate *value) {
   3765     return This->lpVtbl->put_Item(This,index,value);
   3766 }
   3767 static inline HRESULT IUpdateCollection_get__NewEnum(IUpdateCollection* This,IUnknown **retval) {
   3768     return This->lpVtbl->get__NewEnum(This,retval);
   3769 }
   3770 static inline HRESULT IUpdateCollection_get_Count(IUpdateCollection* This,LONG *retval) {
   3771     return This->lpVtbl->get_Count(This,retval);
   3772 }
   3773 static inline HRESULT IUpdateCollection_get_ReadOnly(IUpdateCollection* This,VARIANT_BOOL *retval) {
   3774     return This->lpVtbl->get_ReadOnly(This,retval);
   3775 }
   3776 static inline HRESULT IUpdateCollection_Add(IUpdateCollection* This,IUpdate *value,LONG *retval) {
   3777     return This->lpVtbl->Add(This,value,retval);
   3778 }
   3779 static inline HRESULT IUpdateCollection_Clear(IUpdateCollection* This) {
   3780     return This->lpVtbl->Clear(This);
   3781 }
   3782 static inline HRESULT IUpdateCollection_Copy(IUpdateCollection* This,IUpdateCollection **retval) {
   3783     return This->lpVtbl->Copy(This,retval);
   3784 }
   3785 static inline HRESULT IUpdateCollection_Insert(IUpdateCollection* This,LONG index,IUpdate *value) {
   3786     return This->lpVtbl->Insert(This,index,value);
   3787 }
   3788 static inline HRESULT IUpdateCollection_RemoveAt(IUpdateCollection* This,LONG index) {
   3789     return This->lpVtbl->RemoveAt(This,index);
   3790 }
   3791 #endif
   3792 #endif
   3793 
   3794 #endif
   3795 
   3796 
   3797 #endif  /* __IUpdateCollection_INTERFACE_DEFINED__ */
   3798 
   3799 /*****************************************************************************
   3800  * ISearchJob interface
   3801  */
   3802 #ifndef __ISearchJob_INTERFACE_DEFINED__
   3803 #define __ISearchJob_INTERFACE_DEFINED__
   3804 
   3805 DEFINE_GUID(IID_ISearchJob, 0x7366ea16, 0x7a1a, 0x4ea2, 0xb0,0x42, 0x97,0x3d,0x3e,0x9c,0xd9,0x9b);
   3806 #if defined(__cplusplus) && !defined(CINTERFACE)
   3807 MIDL_INTERFACE("7366ea16-7a1a-4ea2-b042-973d3e9cd99b")
   3808 ISearchJob : public IDispatch
   3809 {
   3810     virtual HRESULT STDMETHODCALLTYPE get_AsyncState(
   3811         VARIANT *retval) = 0;
   3812 
   3813     virtual HRESULT STDMETHODCALLTYPE get_IsCompleted(
   3814         VARIANT_BOOL *retval) = 0;
   3815 
   3816     virtual HRESULT STDMETHODCALLTYPE CleanUp(
   3817         ) = 0;
   3818 
   3819     virtual HRESULT STDMETHODCALLTYPE RequestAbort(
   3820         ) = 0;
   3821 
   3822 };
   3823 #ifdef __CRT_UUID_DECL
   3824 __CRT_UUID_DECL(ISearchJob, 0x7366ea16, 0x7a1a, 0x4ea2, 0xb0,0x42, 0x97,0x3d,0x3e,0x9c,0xd9,0x9b)
   3825 #endif
   3826 #else
   3827 typedef struct ISearchJobVtbl {
   3828     BEGIN_INTERFACE
   3829 
   3830     /*** IUnknown methods ***/
   3831     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3832         ISearchJob *This,
   3833         REFIID riid,
   3834         void **ppvObject);
   3835 
   3836     ULONG (STDMETHODCALLTYPE *AddRef)(
   3837         ISearchJob *This);
   3838 
   3839     ULONG (STDMETHODCALLTYPE *Release)(
   3840         ISearchJob *This);
   3841 
   3842     /*** IDispatch methods ***/
   3843     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   3844         ISearchJob *This,
   3845         UINT *pctinfo);
   3846 
   3847     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   3848         ISearchJob *This,
   3849         UINT iTInfo,
   3850         LCID lcid,
   3851         ITypeInfo **ppTInfo);
   3852 
   3853     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   3854         ISearchJob *This,
   3855         REFIID riid,
   3856         LPOLESTR *rgszNames,
   3857         UINT cNames,
   3858         LCID lcid,
   3859         DISPID *rgDispId);
   3860 
   3861     HRESULT (STDMETHODCALLTYPE *Invoke)(
   3862         ISearchJob *This,
   3863         DISPID dispIdMember,
   3864         REFIID riid,
   3865         LCID lcid,
   3866         WORD wFlags,
   3867         DISPPARAMS *pDispParams,
   3868         VARIANT *pVarResult,
   3869         EXCEPINFO *pExcepInfo,
   3870         UINT *puArgErr);
   3871 
   3872     /*** ISearchJob methods ***/
   3873     HRESULT (STDMETHODCALLTYPE *get_AsyncState)(
   3874         ISearchJob *This,
   3875         VARIANT *retval);
   3876 
   3877     HRESULT (STDMETHODCALLTYPE *get_IsCompleted)(
   3878         ISearchJob *This,
   3879         VARIANT_BOOL *retval);
   3880 
   3881     HRESULT (STDMETHODCALLTYPE *CleanUp)(
   3882         ISearchJob *This);
   3883 
   3884     HRESULT (STDMETHODCALLTYPE *RequestAbort)(
   3885         ISearchJob *This);
   3886 
   3887     END_INTERFACE
   3888 } ISearchJobVtbl;
   3889 
   3890 interface ISearchJob {
   3891     CONST_VTBL ISearchJobVtbl* lpVtbl;
   3892 };
   3893 
   3894 #ifdef COBJMACROS
   3895 #ifndef WIDL_C_INLINE_WRAPPERS
   3896 /*** IUnknown methods ***/
   3897 #define ISearchJob_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   3898 #define ISearchJob_AddRef(This) (This)->lpVtbl->AddRef(This)
   3899 #define ISearchJob_Release(This) (This)->lpVtbl->Release(This)
   3900 /*** IDispatch methods ***/
   3901 #define ISearchJob_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   3902 #define ISearchJob_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   3903 #define ISearchJob_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   3904 #define ISearchJob_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   3905 /*** ISearchJob methods ***/
   3906 #define ISearchJob_get_AsyncState(This,retval) (This)->lpVtbl->get_AsyncState(This,retval)
   3907 #define ISearchJob_get_IsCompleted(This,retval) (This)->lpVtbl->get_IsCompleted(This,retval)
   3908 #define ISearchJob_CleanUp(This) (This)->lpVtbl->CleanUp(This)
   3909 #define ISearchJob_RequestAbort(This) (This)->lpVtbl->RequestAbort(This)
   3910 #else
   3911 /*** IUnknown methods ***/
   3912 static inline HRESULT ISearchJob_QueryInterface(ISearchJob* This,REFIID riid,void **ppvObject) {
   3913     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   3914 }
   3915 static inline ULONG ISearchJob_AddRef(ISearchJob* This) {
   3916     return This->lpVtbl->AddRef(This);
   3917 }
   3918 static inline ULONG ISearchJob_Release(ISearchJob* This) {
   3919     return This->lpVtbl->Release(This);
   3920 }
   3921 /*** IDispatch methods ***/
   3922 static inline HRESULT ISearchJob_GetTypeInfoCount(ISearchJob* This,UINT *pctinfo) {
   3923     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   3924 }
   3925 static inline HRESULT ISearchJob_GetTypeInfo(ISearchJob* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   3926     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   3927 }
   3928 static inline HRESULT ISearchJob_GetIDsOfNames(ISearchJob* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   3929     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   3930 }
   3931 static inline HRESULT ISearchJob_Invoke(ISearchJob* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   3932     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   3933 }
   3934 /*** ISearchJob methods ***/
   3935 static inline HRESULT ISearchJob_get_AsyncState(ISearchJob* This,VARIANT *retval) {
   3936     return This->lpVtbl->get_AsyncState(This,retval);
   3937 }
   3938 static inline HRESULT ISearchJob_get_IsCompleted(ISearchJob* This,VARIANT_BOOL *retval) {
   3939     return This->lpVtbl->get_IsCompleted(This,retval);
   3940 }
   3941 static inline HRESULT ISearchJob_CleanUp(ISearchJob* This) {
   3942     return This->lpVtbl->CleanUp(This);
   3943 }
   3944 static inline HRESULT ISearchJob_RequestAbort(ISearchJob* This) {
   3945     return This->lpVtbl->RequestAbort(This);
   3946 }
   3947 #endif
   3948 #endif
   3949 
   3950 #endif
   3951 
   3952 
   3953 #endif  /* __ISearchJob_INTERFACE_DEFINED__ */
   3954 
   3955 /*****************************************************************************
   3956  * ISearchResult interface
   3957  */
   3958 #ifndef __ISearchResult_INTERFACE_DEFINED__
   3959 #define __ISearchResult_INTERFACE_DEFINED__
   3960 
   3961 DEFINE_GUID(IID_ISearchResult, 0xd40cff62, 0xe08c, 0x4498, 0x94,0x1a, 0x01,0xe2,0x5f,0x0f,0xd3,0x3c);
   3962 #if defined(__cplusplus) && !defined(CINTERFACE)
   3963 MIDL_INTERFACE("d40cff62-e08c-4498-941a-01e25f0fd33c")
   3964 ISearchResult : public IDispatch
   3965 {
   3966     virtual HRESULT STDMETHODCALLTYPE get_ResultCode(
   3967         OperationResultCode *retval) = 0;
   3968 
   3969     virtual HRESULT STDMETHODCALLTYPE get_RootCategories(
   3970         ICategoryCollection **retval) = 0;
   3971 
   3972     virtual HRESULT STDMETHODCALLTYPE get_Updates(
   3973         IUpdateCollection **retval) = 0;
   3974 
   3975     virtual HRESULT STDMETHODCALLTYPE get_Warnings(
   3976         IUpdateExceptionCollection **retval) = 0;
   3977 
   3978 };
   3979 #ifdef __CRT_UUID_DECL
   3980 __CRT_UUID_DECL(ISearchResult, 0xd40cff62, 0xe08c, 0x4498, 0x94,0x1a, 0x01,0xe2,0x5f,0x0f,0xd3,0x3c)
   3981 #endif
   3982 #else
   3983 typedef struct ISearchResultVtbl {
   3984     BEGIN_INTERFACE
   3985 
   3986     /*** IUnknown methods ***/
   3987     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   3988         ISearchResult *This,
   3989         REFIID riid,
   3990         void **ppvObject);
   3991 
   3992     ULONG (STDMETHODCALLTYPE *AddRef)(
   3993         ISearchResult *This);
   3994 
   3995     ULONG (STDMETHODCALLTYPE *Release)(
   3996         ISearchResult *This);
   3997 
   3998     /*** IDispatch methods ***/
   3999     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   4000         ISearchResult *This,
   4001         UINT *pctinfo);
   4002 
   4003     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   4004         ISearchResult *This,
   4005         UINT iTInfo,
   4006         LCID lcid,
   4007         ITypeInfo **ppTInfo);
   4008 
   4009     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   4010         ISearchResult *This,
   4011         REFIID riid,
   4012         LPOLESTR *rgszNames,
   4013         UINT cNames,
   4014         LCID lcid,
   4015         DISPID *rgDispId);
   4016 
   4017     HRESULT (STDMETHODCALLTYPE *Invoke)(
   4018         ISearchResult *This,
   4019         DISPID dispIdMember,
   4020         REFIID riid,
   4021         LCID lcid,
   4022         WORD wFlags,
   4023         DISPPARAMS *pDispParams,
   4024         VARIANT *pVarResult,
   4025         EXCEPINFO *pExcepInfo,
   4026         UINT *puArgErr);
   4027 
   4028     /*** ISearchResult methods ***/
   4029     HRESULT (STDMETHODCALLTYPE *get_ResultCode)(
   4030         ISearchResult *This,
   4031         OperationResultCode *retval);
   4032 
   4033     HRESULT (STDMETHODCALLTYPE *get_RootCategories)(
   4034         ISearchResult *This,
   4035         ICategoryCollection **retval);
   4036 
   4037     HRESULT (STDMETHODCALLTYPE *get_Updates)(
   4038         ISearchResult *This,
   4039         IUpdateCollection **retval);
   4040 
   4041     HRESULT (STDMETHODCALLTYPE *get_Warnings)(
   4042         ISearchResult *This,
   4043         IUpdateExceptionCollection **retval);
   4044 
   4045     END_INTERFACE
   4046 } ISearchResultVtbl;
   4047 
   4048 interface ISearchResult {
   4049     CONST_VTBL ISearchResultVtbl* lpVtbl;
   4050 };
   4051 
   4052 #ifdef COBJMACROS
   4053 #ifndef WIDL_C_INLINE_WRAPPERS
   4054 /*** IUnknown methods ***/
   4055 #define ISearchResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4056 #define ISearchResult_AddRef(This) (This)->lpVtbl->AddRef(This)
   4057 #define ISearchResult_Release(This) (This)->lpVtbl->Release(This)
   4058 /*** IDispatch methods ***/
   4059 #define ISearchResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   4060 #define ISearchResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   4061 #define ISearchResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   4062 #define ISearchResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   4063 /*** ISearchResult methods ***/
   4064 #define ISearchResult_get_ResultCode(This,retval) (This)->lpVtbl->get_ResultCode(This,retval)
   4065 #define ISearchResult_get_RootCategories(This,retval) (This)->lpVtbl->get_RootCategories(This,retval)
   4066 #define ISearchResult_get_Updates(This,retval) (This)->lpVtbl->get_Updates(This,retval)
   4067 #define ISearchResult_get_Warnings(This,retval) (This)->lpVtbl->get_Warnings(This,retval)
   4068 #else
   4069 /*** IUnknown methods ***/
   4070 static inline HRESULT ISearchResult_QueryInterface(ISearchResult* This,REFIID riid,void **ppvObject) {
   4071     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4072 }
   4073 static inline ULONG ISearchResult_AddRef(ISearchResult* This) {
   4074     return This->lpVtbl->AddRef(This);
   4075 }
   4076 static inline ULONG ISearchResult_Release(ISearchResult* This) {
   4077     return This->lpVtbl->Release(This);
   4078 }
   4079 /*** IDispatch methods ***/
   4080 static inline HRESULT ISearchResult_GetTypeInfoCount(ISearchResult* This,UINT *pctinfo) {
   4081     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   4082 }
   4083 static inline HRESULT ISearchResult_GetTypeInfo(ISearchResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   4084     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   4085 }
   4086 static inline HRESULT ISearchResult_GetIDsOfNames(ISearchResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   4087     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   4088 }
   4089 static inline HRESULT ISearchResult_Invoke(ISearchResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   4090     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   4091 }
   4092 /*** ISearchResult methods ***/
   4093 static inline HRESULT ISearchResult_get_ResultCode(ISearchResult* This,OperationResultCode *retval) {
   4094     return This->lpVtbl->get_ResultCode(This,retval);
   4095 }
   4096 static inline HRESULT ISearchResult_get_RootCategories(ISearchResult* This,ICategoryCollection **retval) {
   4097     return This->lpVtbl->get_RootCategories(This,retval);
   4098 }
   4099 static inline HRESULT ISearchResult_get_Updates(ISearchResult* This,IUpdateCollection **retval) {
   4100     return This->lpVtbl->get_Updates(This,retval);
   4101 }
   4102 static inline HRESULT ISearchResult_get_Warnings(ISearchResult* This,IUpdateExceptionCollection **retval) {
   4103     return This->lpVtbl->get_Warnings(This,retval);
   4104 }
   4105 #endif
   4106 #endif
   4107 
   4108 #endif
   4109 
   4110 
   4111 #endif  /* __ISearchResult_INTERFACE_DEFINED__ */
   4112 
   4113 /*****************************************************************************
   4114  * IUpdateHistoryEntry interface
   4115  */
   4116 #ifndef __IUpdateHistoryEntry_INTERFACE_DEFINED__
   4117 #define __IUpdateHistoryEntry_INTERFACE_DEFINED__
   4118 
   4119 DEFINE_GUID(IID_IUpdateHistoryEntry, 0xbe56a644, 0xaf0e, 0x4e0e, 0xa3,0x11, 0xc1,0xd8,0xe6,0x95,0xcb,0xff);
   4120 #if defined(__cplusplus) && !defined(CINTERFACE)
   4121 MIDL_INTERFACE("be56a644-af0e-4e0e-a311-c1d8e695cbff")
   4122 IUpdateHistoryEntry : public IDispatch
   4123 {
   4124     virtual HRESULT STDMETHODCALLTYPE get_Operation(
   4125         UpdateOperation *retval) = 0;
   4126 
   4127     virtual HRESULT STDMETHODCALLTYPE get_ResultCode(
   4128         OperationResultCode *retval) = 0;
   4129 
   4130     virtual HRESULT STDMETHODCALLTYPE get_HResult(
   4131         LONG *retval) = 0;
   4132 
   4133     virtual HRESULT STDMETHODCALLTYPE get_Date(
   4134         DATE *retval) = 0;
   4135 
   4136     virtual HRESULT STDMETHODCALLTYPE get_UpdateIdentity(
   4137         IUpdateIdentity **retval) = 0;
   4138 
   4139     virtual HRESULT STDMETHODCALLTYPE get_Title(
   4140         BSTR *retval) = 0;
   4141 
   4142     virtual HRESULT STDMETHODCALLTYPE get_Description(
   4143         BSTR *retval) = 0;
   4144 
   4145     virtual HRESULT STDMETHODCALLTYPE get_UnmappedResultCode(
   4146         LONG *retval) = 0;
   4147 
   4148     virtual HRESULT STDMETHODCALLTYPE get_ClientApplicationID(
   4149         BSTR *retval) = 0;
   4150 
   4151     virtual HRESULT STDMETHODCALLTYPE get_ServerSelection(
   4152         ServerSelection *retval) = 0;
   4153 
   4154     virtual HRESULT STDMETHODCALLTYPE get_ServiceID(
   4155         BSTR *retval) = 0;
   4156 
   4157     virtual HRESULT STDMETHODCALLTYPE get_UninstallationSteps(
   4158         IStringCollection **retval) = 0;
   4159 
   4160     virtual HRESULT STDMETHODCALLTYPE get_UninstallationNotes(
   4161         BSTR *retval) = 0;
   4162 
   4163     virtual HRESULT STDMETHODCALLTYPE get_SupportUrl(
   4164         BSTR *retval) = 0;
   4165 
   4166 };
   4167 #ifdef __CRT_UUID_DECL
   4168 __CRT_UUID_DECL(IUpdateHistoryEntry, 0xbe56a644, 0xaf0e, 0x4e0e, 0xa3,0x11, 0xc1,0xd8,0xe6,0x95,0xcb,0xff)
   4169 #endif
   4170 #else
   4171 typedef struct IUpdateHistoryEntryVtbl {
   4172     BEGIN_INTERFACE
   4173 
   4174     /*** IUnknown methods ***/
   4175     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4176         IUpdateHistoryEntry *This,
   4177         REFIID riid,
   4178         void **ppvObject);
   4179 
   4180     ULONG (STDMETHODCALLTYPE *AddRef)(
   4181         IUpdateHistoryEntry *This);
   4182 
   4183     ULONG (STDMETHODCALLTYPE *Release)(
   4184         IUpdateHistoryEntry *This);
   4185 
   4186     /*** IDispatch methods ***/
   4187     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   4188         IUpdateHistoryEntry *This,
   4189         UINT *pctinfo);
   4190 
   4191     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   4192         IUpdateHistoryEntry *This,
   4193         UINT iTInfo,
   4194         LCID lcid,
   4195         ITypeInfo **ppTInfo);
   4196 
   4197     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   4198         IUpdateHistoryEntry *This,
   4199         REFIID riid,
   4200         LPOLESTR *rgszNames,
   4201         UINT cNames,
   4202         LCID lcid,
   4203         DISPID *rgDispId);
   4204 
   4205     HRESULT (STDMETHODCALLTYPE *Invoke)(
   4206         IUpdateHistoryEntry *This,
   4207         DISPID dispIdMember,
   4208         REFIID riid,
   4209         LCID lcid,
   4210         WORD wFlags,
   4211         DISPPARAMS *pDispParams,
   4212         VARIANT *pVarResult,
   4213         EXCEPINFO *pExcepInfo,
   4214         UINT *puArgErr);
   4215 
   4216     /*** IUpdateHistoryEntry methods ***/
   4217     HRESULT (STDMETHODCALLTYPE *get_Operation)(
   4218         IUpdateHistoryEntry *This,
   4219         UpdateOperation *retval);
   4220 
   4221     HRESULT (STDMETHODCALLTYPE *get_ResultCode)(
   4222         IUpdateHistoryEntry *This,
   4223         OperationResultCode *retval);
   4224 
   4225     HRESULT (STDMETHODCALLTYPE *get_HResult)(
   4226         IUpdateHistoryEntry *This,
   4227         LONG *retval);
   4228 
   4229     HRESULT (STDMETHODCALLTYPE *get_Date)(
   4230         IUpdateHistoryEntry *This,
   4231         DATE *retval);
   4232 
   4233     HRESULT (STDMETHODCALLTYPE *get_UpdateIdentity)(
   4234         IUpdateHistoryEntry *This,
   4235         IUpdateIdentity **retval);
   4236 
   4237     HRESULT (STDMETHODCALLTYPE *get_Title)(
   4238         IUpdateHistoryEntry *This,
   4239         BSTR *retval);
   4240 
   4241     HRESULT (STDMETHODCALLTYPE *get_Description)(
   4242         IUpdateHistoryEntry *This,
   4243         BSTR *retval);
   4244 
   4245     HRESULT (STDMETHODCALLTYPE *get_UnmappedResultCode)(
   4246         IUpdateHistoryEntry *This,
   4247         LONG *retval);
   4248 
   4249     HRESULT (STDMETHODCALLTYPE *get_ClientApplicationID)(
   4250         IUpdateHistoryEntry *This,
   4251         BSTR *retval);
   4252 
   4253     HRESULT (STDMETHODCALLTYPE *get_ServerSelection)(
   4254         IUpdateHistoryEntry *This,
   4255         ServerSelection *retval);
   4256 
   4257     HRESULT (STDMETHODCALLTYPE *get_ServiceID)(
   4258         IUpdateHistoryEntry *This,
   4259         BSTR *retval);
   4260 
   4261     HRESULT (STDMETHODCALLTYPE *get_UninstallationSteps)(
   4262         IUpdateHistoryEntry *This,
   4263         IStringCollection **retval);
   4264 
   4265     HRESULT (STDMETHODCALLTYPE *get_UninstallationNotes)(
   4266         IUpdateHistoryEntry *This,
   4267         BSTR *retval);
   4268 
   4269     HRESULT (STDMETHODCALLTYPE *get_SupportUrl)(
   4270         IUpdateHistoryEntry *This,
   4271         BSTR *retval);
   4272 
   4273     END_INTERFACE
   4274 } IUpdateHistoryEntryVtbl;
   4275 
   4276 interface IUpdateHistoryEntry {
   4277     CONST_VTBL IUpdateHistoryEntryVtbl* lpVtbl;
   4278 };
   4279 
   4280 #ifdef COBJMACROS
   4281 #ifndef WIDL_C_INLINE_WRAPPERS
   4282 /*** IUnknown methods ***/
   4283 #define IUpdateHistoryEntry_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4284 #define IUpdateHistoryEntry_AddRef(This) (This)->lpVtbl->AddRef(This)
   4285 #define IUpdateHistoryEntry_Release(This) (This)->lpVtbl->Release(This)
   4286 /*** IDispatch methods ***/
   4287 #define IUpdateHistoryEntry_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   4288 #define IUpdateHistoryEntry_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   4289 #define IUpdateHistoryEntry_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   4290 #define IUpdateHistoryEntry_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   4291 /*** IUpdateHistoryEntry methods ***/
   4292 #define IUpdateHistoryEntry_get_Operation(This,retval) (This)->lpVtbl->get_Operation(This,retval)
   4293 #define IUpdateHistoryEntry_get_ResultCode(This,retval) (This)->lpVtbl->get_ResultCode(This,retval)
   4294 #define IUpdateHistoryEntry_get_HResult(This,retval) (This)->lpVtbl->get_HResult(This,retval)
   4295 #define IUpdateHistoryEntry_get_Date(This,retval) (This)->lpVtbl->get_Date(This,retval)
   4296 #define IUpdateHistoryEntry_get_UpdateIdentity(This,retval) (This)->lpVtbl->get_UpdateIdentity(This,retval)
   4297 #define IUpdateHistoryEntry_get_Title(This,retval) (This)->lpVtbl->get_Title(This,retval)
   4298 #define IUpdateHistoryEntry_get_Description(This,retval) (This)->lpVtbl->get_Description(This,retval)
   4299 #define IUpdateHistoryEntry_get_UnmappedResultCode(This,retval) (This)->lpVtbl->get_UnmappedResultCode(This,retval)
   4300 #define IUpdateHistoryEntry_get_ClientApplicationID(This,retval) (This)->lpVtbl->get_ClientApplicationID(This,retval)
   4301 #define IUpdateHistoryEntry_get_ServerSelection(This,retval) (This)->lpVtbl->get_ServerSelection(This,retval)
   4302 #define IUpdateHistoryEntry_get_ServiceID(This,retval) (This)->lpVtbl->get_ServiceID(This,retval)
   4303 #define IUpdateHistoryEntry_get_UninstallationSteps(This,retval) (This)->lpVtbl->get_UninstallationSteps(This,retval)
   4304 #define IUpdateHistoryEntry_get_UninstallationNotes(This,retval) (This)->lpVtbl->get_UninstallationNotes(This,retval)
   4305 #define IUpdateHistoryEntry_get_SupportUrl(This,retval) (This)->lpVtbl->get_SupportUrl(This,retval)
   4306 #else
   4307 /*** IUnknown methods ***/
   4308 static inline HRESULT IUpdateHistoryEntry_QueryInterface(IUpdateHistoryEntry* This,REFIID riid,void **ppvObject) {
   4309     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4310 }
   4311 static inline ULONG IUpdateHistoryEntry_AddRef(IUpdateHistoryEntry* This) {
   4312     return This->lpVtbl->AddRef(This);
   4313 }
   4314 static inline ULONG IUpdateHistoryEntry_Release(IUpdateHistoryEntry* This) {
   4315     return This->lpVtbl->Release(This);
   4316 }
   4317 /*** IDispatch methods ***/
   4318 static inline HRESULT IUpdateHistoryEntry_GetTypeInfoCount(IUpdateHistoryEntry* This,UINT *pctinfo) {
   4319     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   4320 }
   4321 static inline HRESULT IUpdateHistoryEntry_GetTypeInfo(IUpdateHistoryEntry* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   4322     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   4323 }
   4324 static inline HRESULT IUpdateHistoryEntry_GetIDsOfNames(IUpdateHistoryEntry* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   4325     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   4326 }
   4327 static inline HRESULT IUpdateHistoryEntry_Invoke(IUpdateHistoryEntry* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   4328     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   4329 }
   4330 /*** IUpdateHistoryEntry methods ***/
   4331 static inline HRESULT IUpdateHistoryEntry_get_Operation(IUpdateHistoryEntry* This,UpdateOperation *retval) {
   4332     return This->lpVtbl->get_Operation(This,retval);
   4333 }
   4334 static inline HRESULT IUpdateHistoryEntry_get_ResultCode(IUpdateHistoryEntry* This,OperationResultCode *retval) {
   4335     return This->lpVtbl->get_ResultCode(This,retval);
   4336 }
   4337 static inline HRESULT IUpdateHistoryEntry_get_HResult(IUpdateHistoryEntry* This,LONG *retval) {
   4338     return This->lpVtbl->get_HResult(This,retval);
   4339 }
   4340 static inline HRESULT IUpdateHistoryEntry_get_Date(IUpdateHistoryEntry* This,DATE *retval) {
   4341     return This->lpVtbl->get_Date(This,retval);
   4342 }
   4343 static inline HRESULT IUpdateHistoryEntry_get_UpdateIdentity(IUpdateHistoryEntry* This,IUpdateIdentity **retval) {
   4344     return This->lpVtbl->get_UpdateIdentity(This,retval);
   4345 }
   4346 static inline HRESULT IUpdateHistoryEntry_get_Title(IUpdateHistoryEntry* This,BSTR *retval) {
   4347     return This->lpVtbl->get_Title(This,retval);
   4348 }
   4349 static inline HRESULT IUpdateHistoryEntry_get_Description(IUpdateHistoryEntry* This,BSTR *retval) {
   4350     return This->lpVtbl->get_Description(This,retval);
   4351 }
   4352 static inline HRESULT IUpdateHistoryEntry_get_UnmappedResultCode(IUpdateHistoryEntry* This,LONG *retval) {
   4353     return This->lpVtbl->get_UnmappedResultCode(This,retval);
   4354 }
   4355 static inline HRESULT IUpdateHistoryEntry_get_ClientApplicationID(IUpdateHistoryEntry* This,BSTR *retval) {
   4356     return This->lpVtbl->get_ClientApplicationID(This,retval);
   4357 }
   4358 static inline HRESULT IUpdateHistoryEntry_get_ServerSelection(IUpdateHistoryEntry* This,ServerSelection *retval) {
   4359     return This->lpVtbl->get_ServerSelection(This,retval);
   4360 }
   4361 static inline HRESULT IUpdateHistoryEntry_get_ServiceID(IUpdateHistoryEntry* This,BSTR *retval) {
   4362     return This->lpVtbl->get_ServiceID(This,retval);
   4363 }
   4364 static inline HRESULT IUpdateHistoryEntry_get_UninstallationSteps(IUpdateHistoryEntry* This,IStringCollection **retval) {
   4365     return This->lpVtbl->get_UninstallationSteps(This,retval);
   4366 }
   4367 static inline HRESULT IUpdateHistoryEntry_get_UninstallationNotes(IUpdateHistoryEntry* This,BSTR *retval) {
   4368     return This->lpVtbl->get_UninstallationNotes(This,retval);
   4369 }
   4370 static inline HRESULT IUpdateHistoryEntry_get_SupportUrl(IUpdateHistoryEntry* This,BSTR *retval) {
   4371     return This->lpVtbl->get_SupportUrl(This,retval);
   4372 }
   4373 #endif
   4374 #endif
   4375 
   4376 #endif
   4377 
   4378 
   4379 #endif  /* __IUpdateHistoryEntry_INTERFACE_DEFINED__ */
   4380 
   4381 /*****************************************************************************
   4382  * IUpdateHistoryEntryCollection interface
   4383  */
   4384 #ifndef __IUpdateHistoryEntryCollection_INTERFACE_DEFINED__
   4385 #define __IUpdateHistoryEntryCollection_INTERFACE_DEFINED__
   4386 
   4387 DEFINE_GUID(IID_IUpdateHistoryEntryCollection, 0xa7f04f3c, 0xa290, 0x435b, 0xaa,0xdf, 0xa1,0x16,0xc3,0x35,0x7a,0x5c);
   4388 #if defined(__cplusplus) && !defined(CINTERFACE)
   4389 MIDL_INTERFACE("a7f04f3c-a290-435b-aadf-a116c3357a5c")
   4390 IUpdateHistoryEntryCollection : public IDispatch
   4391 {
   4392     virtual HRESULT STDMETHODCALLTYPE get_Item(
   4393         LONG index,
   4394         IUpdateHistoryEntry **retval) = 0;
   4395 
   4396     virtual HRESULT STDMETHODCALLTYPE get__NewEnum(
   4397         IUnknown **retval) = 0;
   4398 
   4399     virtual HRESULT STDMETHODCALLTYPE get_Count(
   4400         LONG *retval) = 0;
   4401 
   4402 };
   4403 #ifdef __CRT_UUID_DECL
   4404 __CRT_UUID_DECL(IUpdateHistoryEntryCollection, 0xa7f04f3c, 0xa290, 0x435b, 0xaa,0xdf, 0xa1,0x16,0xc3,0x35,0x7a,0x5c)
   4405 #endif
   4406 #else
   4407 typedef struct IUpdateHistoryEntryCollectionVtbl {
   4408     BEGIN_INTERFACE
   4409 
   4410     /*** IUnknown methods ***/
   4411     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4412         IUpdateHistoryEntryCollection *This,
   4413         REFIID riid,
   4414         void **ppvObject);
   4415 
   4416     ULONG (STDMETHODCALLTYPE *AddRef)(
   4417         IUpdateHistoryEntryCollection *This);
   4418 
   4419     ULONG (STDMETHODCALLTYPE *Release)(
   4420         IUpdateHistoryEntryCollection *This);
   4421 
   4422     /*** IDispatch methods ***/
   4423     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   4424         IUpdateHistoryEntryCollection *This,
   4425         UINT *pctinfo);
   4426 
   4427     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   4428         IUpdateHistoryEntryCollection *This,
   4429         UINT iTInfo,
   4430         LCID lcid,
   4431         ITypeInfo **ppTInfo);
   4432 
   4433     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   4434         IUpdateHistoryEntryCollection *This,
   4435         REFIID riid,
   4436         LPOLESTR *rgszNames,
   4437         UINT cNames,
   4438         LCID lcid,
   4439         DISPID *rgDispId);
   4440 
   4441     HRESULT (STDMETHODCALLTYPE *Invoke)(
   4442         IUpdateHistoryEntryCollection *This,
   4443         DISPID dispIdMember,
   4444         REFIID riid,
   4445         LCID lcid,
   4446         WORD wFlags,
   4447         DISPPARAMS *pDispParams,
   4448         VARIANT *pVarResult,
   4449         EXCEPINFO *pExcepInfo,
   4450         UINT *puArgErr);
   4451 
   4452     /*** IUpdateHistoryEntryCollection methods ***/
   4453     HRESULT (STDMETHODCALLTYPE *get_Item)(
   4454         IUpdateHistoryEntryCollection *This,
   4455         LONG index,
   4456         IUpdateHistoryEntry **retval);
   4457 
   4458     HRESULT (STDMETHODCALLTYPE *get__NewEnum)(
   4459         IUpdateHistoryEntryCollection *This,
   4460         IUnknown **retval);
   4461 
   4462     HRESULT (STDMETHODCALLTYPE *get_Count)(
   4463         IUpdateHistoryEntryCollection *This,
   4464         LONG *retval);
   4465 
   4466     END_INTERFACE
   4467 } IUpdateHistoryEntryCollectionVtbl;
   4468 
   4469 interface IUpdateHistoryEntryCollection {
   4470     CONST_VTBL IUpdateHistoryEntryCollectionVtbl* lpVtbl;
   4471 };
   4472 
   4473 #ifdef COBJMACROS
   4474 #ifndef WIDL_C_INLINE_WRAPPERS
   4475 /*** IUnknown methods ***/
   4476 #define IUpdateHistoryEntryCollection_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4477 #define IUpdateHistoryEntryCollection_AddRef(This) (This)->lpVtbl->AddRef(This)
   4478 #define IUpdateHistoryEntryCollection_Release(This) (This)->lpVtbl->Release(This)
   4479 /*** IDispatch methods ***/
   4480 #define IUpdateHistoryEntryCollection_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   4481 #define IUpdateHistoryEntryCollection_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   4482 #define IUpdateHistoryEntryCollection_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   4483 #define IUpdateHistoryEntryCollection_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   4484 /*** IUpdateHistoryEntryCollection methods ***/
   4485 #define IUpdateHistoryEntryCollection_get_Item(This,index,retval) (This)->lpVtbl->get_Item(This,index,retval)
   4486 #define IUpdateHistoryEntryCollection_get__NewEnum(This,retval) (This)->lpVtbl->get__NewEnum(This,retval)
   4487 #define IUpdateHistoryEntryCollection_get_Count(This,retval) (This)->lpVtbl->get_Count(This,retval)
   4488 #else
   4489 /*** IUnknown methods ***/
   4490 static inline HRESULT IUpdateHistoryEntryCollection_QueryInterface(IUpdateHistoryEntryCollection* This,REFIID riid,void **ppvObject) {
   4491     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4492 }
   4493 static inline ULONG IUpdateHistoryEntryCollection_AddRef(IUpdateHistoryEntryCollection* This) {
   4494     return This->lpVtbl->AddRef(This);
   4495 }
   4496 static inline ULONG IUpdateHistoryEntryCollection_Release(IUpdateHistoryEntryCollection* This) {
   4497     return This->lpVtbl->Release(This);
   4498 }
   4499 /*** IDispatch methods ***/
   4500 static inline HRESULT IUpdateHistoryEntryCollection_GetTypeInfoCount(IUpdateHistoryEntryCollection* This,UINT *pctinfo) {
   4501     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   4502 }
   4503 static inline HRESULT IUpdateHistoryEntryCollection_GetTypeInfo(IUpdateHistoryEntryCollection* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   4504     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   4505 }
   4506 static inline HRESULT IUpdateHistoryEntryCollection_GetIDsOfNames(IUpdateHistoryEntryCollection* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   4507     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   4508 }
   4509 static inline HRESULT IUpdateHistoryEntryCollection_Invoke(IUpdateHistoryEntryCollection* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   4510     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   4511 }
   4512 /*** IUpdateHistoryEntryCollection methods ***/
   4513 static inline HRESULT IUpdateHistoryEntryCollection_get_Item(IUpdateHistoryEntryCollection* This,LONG index,IUpdateHistoryEntry **retval) {
   4514     return This->lpVtbl->get_Item(This,index,retval);
   4515 }
   4516 static inline HRESULT IUpdateHistoryEntryCollection_get__NewEnum(IUpdateHistoryEntryCollection* This,IUnknown **retval) {
   4517     return This->lpVtbl->get__NewEnum(This,retval);
   4518 }
   4519 static inline HRESULT IUpdateHistoryEntryCollection_get_Count(IUpdateHistoryEntryCollection* This,LONG *retval) {
   4520     return This->lpVtbl->get_Count(This,retval);
   4521 }
   4522 #endif
   4523 #endif
   4524 
   4525 #endif
   4526 
   4527 
   4528 #endif  /* __IUpdateHistoryEntryCollection_INTERFACE_DEFINED__ */
   4529 
   4530 /*****************************************************************************
   4531  * IUpdateSearcher interface
   4532  */
   4533 #ifndef __IUpdateSearcher_INTERFACE_DEFINED__
   4534 #define __IUpdateSearcher_INTERFACE_DEFINED__
   4535 
   4536 DEFINE_GUID(IID_IUpdateSearcher, 0x8f45abf1, 0xf9ae, 0x4b95, 0xa9,0x33, 0xf0,0xf6,0x6e,0x50,0x56,0xea);
   4537 #if defined(__cplusplus) && !defined(CINTERFACE)
   4538 MIDL_INTERFACE("8f45abf1-f9ae-4b95-a933-f0f66e5056ea")
   4539 IUpdateSearcher : public IDispatch
   4540 {
   4541     virtual HRESULT STDMETHODCALLTYPE get_CanAutomaticallyUpgradeService(
   4542         VARIANT_BOOL *retval) = 0;
   4543 
   4544     virtual HRESULT STDMETHODCALLTYPE put_CanAutomaticallyUpgradeService(
   4545         VARIANT_BOOL value) = 0;
   4546 
   4547     virtual HRESULT STDMETHODCALLTYPE get_ClientApplicationID(
   4548         BSTR *retval) = 0;
   4549 
   4550     virtual HRESULT STDMETHODCALLTYPE put_ClientApplicationID(
   4551         BSTR value) = 0;
   4552 
   4553     virtual HRESULT STDMETHODCALLTYPE get_IncludePotentiallySupersededUpdates(
   4554         VARIANT_BOOL *retval) = 0;
   4555 
   4556     virtual HRESULT STDMETHODCALLTYPE put_IncludePotentiallySupersededUpdates(
   4557         VARIANT_BOOL value) = 0;
   4558 
   4559     virtual HRESULT STDMETHODCALLTYPE get_ServerSelection(
   4560         ServerSelection *retval) = 0;
   4561 
   4562     virtual HRESULT STDMETHODCALLTYPE put_ServerSelection(
   4563         ServerSelection value) = 0;
   4564 
   4565     virtual HRESULT STDMETHODCALLTYPE BeginSearch(
   4566         BSTR criteria,
   4567         IUnknown *onCompleted,
   4568         VARIANT state,
   4569         ISearchJob **retval) = 0;
   4570 
   4571     virtual HRESULT STDMETHODCALLTYPE EndSearch(
   4572         ISearchJob *searchJob,
   4573         ISearchResult **retval) = 0;
   4574 
   4575     virtual HRESULT STDMETHODCALLTYPE EscapeString(
   4576         BSTR unescaped,
   4577         BSTR *retval) = 0;
   4578 
   4579     virtual HRESULT STDMETHODCALLTYPE QueryHistory(
   4580         LONG startIndex,
   4581         LONG count,
   4582         IUpdateHistoryEntryCollection **retval) = 0;
   4583 
   4584     virtual HRESULT STDMETHODCALLTYPE Search(
   4585         BSTR criteria,
   4586         ISearchResult **retval) = 0;
   4587 
   4588     virtual HRESULT STDMETHODCALLTYPE get_Online(
   4589         VARIANT_BOOL *retval) = 0;
   4590 
   4591     virtual HRESULT STDMETHODCALLTYPE put_Online(
   4592         VARIANT_BOOL value) = 0;
   4593 
   4594     virtual HRESULT STDMETHODCALLTYPE GetTotalHistoryCount(
   4595         LONG *retval) = 0;
   4596 
   4597     virtual HRESULT STDMETHODCALLTYPE get_ServiceID(
   4598         BSTR *retval) = 0;
   4599 
   4600     virtual HRESULT STDMETHODCALLTYPE put_ServiceID(
   4601         BSTR value) = 0;
   4602 
   4603 };
   4604 #ifdef __CRT_UUID_DECL
   4605 __CRT_UUID_DECL(IUpdateSearcher, 0x8f45abf1, 0xf9ae, 0x4b95, 0xa9,0x33, 0xf0,0xf6,0x6e,0x50,0x56,0xea)
   4606 #endif
   4607 #else
   4608 typedef struct IUpdateSearcherVtbl {
   4609     BEGIN_INTERFACE
   4610 
   4611     /*** IUnknown methods ***/
   4612     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4613         IUpdateSearcher *This,
   4614         REFIID riid,
   4615         void **ppvObject);
   4616 
   4617     ULONG (STDMETHODCALLTYPE *AddRef)(
   4618         IUpdateSearcher *This);
   4619 
   4620     ULONG (STDMETHODCALLTYPE *Release)(
   4621         IUpdateSearcher *This);
   4622 
   4623     /*** IDispatch methods ***/
   4624     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   4625         IUpdateSearcher *This,
   4626         UINT *pctinfo);
   4627 
   4628     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   4629         IUpdateSearcher *This,
   4630         UINT iTInfo,
   4631         LCID lcid,
   4632         ITypeInfo **ppTInfo);
   4633 
   4634     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   4635         IUpdateSearcher *This,
   4636         REFIID riid,
   4637         LPOLESTR *rgszNames,
   4638         UINT cNames,
   4639         LCID lcid,
   4640         DISPID *rgDispId);
   4641 
   4642     HRESULT (STDMETHODCALLTYPE *Invoke)(
   4643         IUpdateSearcher *This,
   4644         DISPID dispIdMember,
   4645         REFIID riid,
   4646         LCID lcid,
   4647         WORD wFlags,
   4648         DISPPARAMS *pDispParams,
   4649         VARIANT *pVarResult,
   4650         EXCEPINFO *pExcepInfo,
   4651         UINT *puArgErr);
   4652 
   4653     /*** IUpdateSearcher methods ***/
   4654     HRESULT (STDMETHODCALLTYPE *get_CanAutomaticallyUpgradeService)(
   4655         IUpdateSearcher *This,
   4656         VARIANT_BOOL *retval);
   4657 
   4658     HRESULT (STDMETHODCALLTYPE *put_CanAutomaticallyUpgradeService)(
   4659         IUpdateSearcher *This,
   4660         VARIANT_BOOL value);
   4661 
   4662     HRESULT (STDMETHODCALLTYPE *get_ClientApplicationID)(
   4663         IUpdateSearcher *This,
   4664         BSTR *retval);
   4665 
   4666     HRESULT (STDMETHODCALLTYPE *put_ClientApplicationID)(
   4667         IUpdateSearcher *This,
   4668         BSTR value);
   4669 
   4670     HRESULT (STDMETHODCALLTYPE *get_IncludePotentiallySupersededUpdates)(
   4671         IUpdateSearcher *This,
   4672         VARIANT_BOOL *retval);
   4673 
   4674     HRESULT (STDMETHODCALLTYPE *put_IncludePotentiallySupersededUpdates)(
   4675         IUpdateSearcher *This,
   4676         VARIANT_BOOL value);
   4677 
   4678     HRESULT (STDMETHODCALLTYPE *get_ServerSelection)(
   4679         IUpdateSearcher *This,
   4680         ServerSelection *retval);
   4681 
   4682     HRESULT (STDMETHODCALLTYPE *put_ServerSelection)(
   4683         IUpdateSearcher *This,
   4684         ServerSelection value);
   4685 
   4686     HRESULT (STDMETHODCALLTYPE *BeginSearch)(
   4687         IUpdateSearcher *This,
   4688         BSTR criteria,
   4689         IUnknown *onCompleted,
   4690         VARIANT state,
   4691         ISearchJob **retval);
   4692 
   4693     HRESULT (STDMETHODCALLTYPE *EndSearch)(
   4694         IUpdateSearcher *This,
   4695         ISearchJob *searchJob,
   4696         ISearchResult **retval);
   4697 
   4698     HRESULT (STDMETHODCALLTYPE *EscapeString)(
   4699         IUpdateSearcher *This,
   4700         BSTR unescaped,
   4701         BSTR *retval);
   4702 
   4703     HRESULT (STDMETHODCALLTYPE *QueryHistory)(
   4704         IUpdateSearcher *This,
   4705         LONG startIndex,
   4706         LONG count,
   4707         IUpdateHistoryEntryCollection **retval);
   4708 
   4709     HRESULT (STDMETHODCALLTYPE *Search)(
   4710         IUpdateSearcher *This,
   4711         BSTR criteria,
   4712         ISearchResult **retval);
   4713 
   4714     HRESULT (STDMETHODCALLTYPE *get_Online)(
   4715         IUpdateSearcher *This,
   4716         VARIANT_BOOL *retval);
   4717 
   4718     HRESULT (STDMETHODCALLTYPE *put_Online)(
   4719         IUpdateSearcher *This,
   4720         VARIANT_BOOL value);
   4721 
   4722     HRESULT (STDMETHODCALLTYPE *GetTotalHistoryCount)(
   4723         IUpdateSearcher *This,
   4724         LONG *retval);
   4725 
   4726     HRESULT (STDMETHODCALLTYPE *get_ServiceID)(
   4727         IUpdateSearcher *This,
   4728         BSTR *retval);
   4729 
   4730     HRESULT (STDMETHODCALLTYPE *put_ServiceID)(
   4731         IUpdateSearcher *This,
   4732         BSTR value);
   4733 
   4734     END_INTERFACE
   4735 } IUpdateSearcherVtbl;
   4736 
   4737 interface IUpdateSearcher {
   4738     CONST_VTBL IUpdateSearcherVtbl* lpVtbl;
   4739 };
   4740 
   4741 #ifdef COBJMACROS
   4742 #ifndef WIDL_C_INLINE_WRAPPERS
   4743 /*** IUnknown methods ***/
   4744 #define IUpdateSearcher_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4745 #define IUpdateSearcher_AddRef(This) (This)->lpVtbl->AddRef(This)
   4746 #define IUpdateSearcher_Release(This) (This)->lpVtbl->Release(This)
   4747 /*** IDispatch methods ***/
   4748 #define IUpdateSearcher_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   4749 #define IUpdateSearcher_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   4750 #define IUpdateSearcher_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   4751 #define IUpdateSearcher_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   4752 /*** IUpdateSearcher methods ***/
   4753 #define IUpdateSearcher_get_CanAutomaticallyUpgradeService(This,retval) (This)->lpVtbl->get_CanAutomaticallyUpgradeService(This,retval)
   4754 #define IUpdateSearcher_put_CanAutomaticallyUpgradeService(This,value) (This)->lpVtbl->put_CanAutomaticallyUpgradeService(This,value)
   4755 #define IUpdateSearcher_get_ClientApplicationID(This,retval) (This)->lpVtbl->get_ClientApplicationID(This,retval)
   4756 #define IUpdateSearcher_put_ClientApplicationID(This,value) (This)->lpVtbl->put_ClientApplicationID(This,value)
   4757 #define IUpdateSearcher_get_IncludePotentiallySupersededUpdates(This,retval) (This)->lpVtbl->get_IncludePotentiallySupersededUpdates(This,retval)
   4758 #define IUpdateSearcher_put_IncludePotentiallySupersededUpdates(This,value) (This)->lpVtbl->put_IncludePotentiallySupersededUpdates(This,value)
   4759 #define IUpdateSearcher_get_ServerSelection(This,retval) (This)->lpVtbl->get_ServerSelection(This,retval)
   4760 #define IUpdateSearcher_put_ServerSelection(This,value) (This)->lpVtbl->put_ServerSelection(This,value)
   4761 #define IUpdateSearcher_BeginSearch(This,criteria,onCompleted,state,retval) (This)->lpVtbl->BeginSearch(This,criteria,onCompleted,state,retval)
   4762 #define IUpdateSearcher_EndSearch(This,searchJob,retval) (This)->lpVtbl->EndSearch(This,searchJob,retval)
   4763 #define IUpdateSearcher_EscapeString(This,unescaped,retval) (This)->lpVtbl->EscapeString(This,unescaped,retval)
   4764 #define IUpdateSearcher_QueryHistory(This,startIndex,count,retval) (This)->lpVtbl->QueryHistory(This,startIndex,count,retval)
   4765 #define IUpdateSearcher_Search(This,criteria,retval) (This)->lpVtbl->Search(This,criteria,retval)
   4766 #define IUpdateSearcher_get_Online(This,retval) (This)->lpVtbl->get_Online(This,retval)
   4767 #define IUpdateSearcher_put_Online(This,value) (This)->lpVtbl->put_Online(This,value)
   4768 #define IUpdateSearcher_GetTotalHistoryCount(This,retval) (This)->lpVtbl->GetTotalHistoryCount(This,retval)
   4769 #define IUpdateSearcher_get_ServiceID(This,retval) (This)->lpVtbl->get_ServiceID(This,retval)
   4770 #define IUpdateSearcher_put_ServiceID(This,value) (This)->lpVtbl->put_ServiceID(This,value)
   4771 #else
   4772 /*** IUnknown methods ***/
   4773 static inline HRESULT IUpdateSearcher_QueryInterface(IUpdateSearcher* This,REFIID riid,void **ppvObject) {
   4774     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4775 }
   4776 static inline ULONG IUpdateSearcher_AddRef(IUpdateSearcher* This) {
   4777     return This->lpVtbl->AddRef(This);
   4778 }
   4779 static inline ULONG IUpdateSearcher_Release(IUpdateSearcher* This) {
   4780     return This->lpVtbl->Release(This);
   4781 }
   4782 /*** IDispatch methods ***/
   4783 static inline HRESULT IUpdateSearcher_GetTypeInfoCount(IUpdateSearcher* This,UINT *pctinfo) {
   4784     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   4785 }
   4786 static inline HRESULT IUpdateSearcher_GetTypeInfo(IUpdateSearcher* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   4787     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   4788 }
   4789 static inline HRESULT IUpdateSearcher_GetIDsOfNames(IUpdateSearcher* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   4790     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   4791 }
   4792 static inline HRESULT IUpdateSearcher_Invoke(IUpdateSearcher* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   4793     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   4794 }
   4795 /*** IUpdateSearcher methods ***/
   4796 static inline HRESULT IUpdateSearcher_get_CanAutomaticallyUpgradeService(IUpdateSearcher* This,VARIANT_BOOL *retval) {
   4797     return This->lpVtbl->get_CanAutomaticallyUpgradeService(This,retval);
   4798 }
   4799 static inline HRESULT IUpdateSearcher_put_CanAutomaticallyUpgradeService(IUpdateSearcher* This,VARIANT_BOOL value) {
   4800     return This->lpVtbl->put_CanAutomaticallyUpgradeService(This,value);
   4801 }
   4802 static inline HRESULT IUpdateSearcher_get_ClientApplicationID(IUpdateSearcher* This,BSTR *retval) {
   4803     return This->lpVtbl->get_ClientApplicationID(This,retval);
   4804 }
   4805 static inline HRESULT IUpdateSearcher_put_ClientApplicationID(IUpdateSearcher* This,BSTR value) {
   4806     return This->lpVtbl->put_ClientApplicationID(This,value);
   4807 }
   4808 static inline HRESULT IUpdateSearcher_get_IncludePotentiallySupersededUpdates(IUpdateSearcher* This,VARIANT_BOOL *retval) {
   4809     return This->lpVtbl->get_IncludePotentiallySupersededUpdates(This,retval);
   4810 }
   4811 static inline HRESULT IUpdateSearcher_put_IncludePotentiallySupersededUpdates(IUpdateSearcher* This,VARIANT_BOOL value) {
   4812     return This->lpVtbl->put_IncludePotentiallySupersededUpdates(This,value);
   4813 }
   4814 static inline HRESULT IUpdateSearcher_get_ServerSelection(IUpdateSearcher* This,ServerSelection *retval) {
   4815     return This->lpVtbl->get_ServerSelection(This,retval);
   4816 }
   4817 static inline HRESULT IUpdateSearcher_put_ServerSelection(IUpdateSearcher* This,ServerSelection value) {
   4818     return This->lpVtbl->put_ServerSelection(This,value);
   4819 }
   4820 static inline HRESULT IUpdateSearcher_BeginSearch(IUpdateSearcher* This,BSTR criteria,IUnknown *onCompleted,VARIANT state,ISearchJob **retval) {
   4821     return This->lpVtbl->BeginSearch(This,criteria,onCompleted,state,retval);
   4822 }
   4823 static inline HRESULT IUpdateSearcher_EndSearch(IUpdateSearcher* This,ISearchJob *searchJob,ISearchResult **retval) {
   4824     return This->lpVtbl->EndSearch(This,searchJob,retval);
   4825 }
   4826 static inline HRESULT IUpdateSearcher_EscapeString(IUpdateSearcher* This,BSTR unescaped,BSTR *retval) {
   4827     return This->lpVtbl->EscapeString(This,unescaped,retval);
   4828 }
   4829 static inline HRESULT IUpdateSearcher_QueryHistory(IUpdateSearcher* This,LONG startIndex,LONG count,IUpdateHistoryEntryCollection **retval) {
   4830     return This->lpVtbl->QueryHistory(This,startIndex,count,retval);
   4831 }
   4832 static inline HRESULT IUpdateSearcher_Search(IUpdateSearcher* This,BSTR criteria,ISearchResult **retval) {
   4833     return This->lpVtbl->Search(This,criteria,retval);
   4834 }
   4835 static inline HRESULT IUpdateSearcher_get_Online(IUpdateSearcher* This,VARIANT_BOOL *retval) {
   4836     return This->lpVtbl->get_Online(This,retval);
   4837 }
   4838 static inline HRESULT IUpdateSearcher_put_Online(IUpdateSearcher* This,VARIANT_BOOL value) {
   4839     return This->lpVtbl->put_Online(This,value);
   4840 }
   4841 static inline HRESULT IUpdateSearcher_GetTotalHistoryCount(IUpdateSearcher* This,LONG *retval) {
   4842     return This->lpVtbl->GetTotalHistoryCount(This,retval);
   4843 }
   4844 static inline HRESULT IUpdateSearcher_get_ServiceID(IUpdateSearcher* This,BSTR *retval) {
   4845     return This->lpVtbl->get_ServiceID(This,retval);
   4846 }
   4847 static inline HRESULT IUpdateSearcher_put_ServiceID(IUpdateSearcher* This,BSTR value) {
   4848     return This->lpVtbl->put_ServiceID(This,value);
   4849 }
   4850 #endif
   4851 #endif
   4852 
   4853 #endif
   4854 
   4855 
   4856 #endif  /* __IUpdateSearcher_INTERFACE_DEFINED__ */
   4857 
   4858 /*****************************************************************************
   4859  * IUpdateDownloadResult interface
   4860  */
   4861 #ifndef __IUpdateDownloadResult_INTERFACE_DEFINED__
   4862 #define __IUpdateDownloadResult_INTERFACE_DEFINED__
   4863 
   4864 DEFINE_GUID(IID_IUpdateDownloadResult, 0xbf99af76, 0xb575, 0x42ad, 0x8a,0xa4, 0x33,0xcb,0xb5,0x47,0x7a,0xf1);
   4865 #if defined(__cplusplus) && !defined(CINTERFACE)
   4866 MIDL_INTERFACE("bf99af76-b575-42ad-8aa4-33cbb5477af1")
   4867 IUpdateDownloadResult : public IDispatch
   4868 {
   4869     virtual HRESULT STDMETHODCALLTYPE get_HResult(
   4870         LONG *retval) = 0;
   4871 
   4872     virtual HRESULT STDMETHODCALLTYPE get_ResultCode(
   4873         OperationResultCode *retval) = 0;
   4874 
   4875 };
   4876 #ifdef __CRT_UUID_DECL
   4877 __CRT_UUID_DECL(IUpdateDownloadResult, 0xbf99af76, 0xb575, 0x42ad, 0x8a,0xa4, 0x33,0xcb,0xb5,0x47,0x7a,0xf1)
   4878 #endif
   4879 #else
   4880 typedef struct IUpdateDownloadResultVtbl {
   4881     BEGIN_INTERFACE
   4882 
   4883     /*** IUnknown methods ***/
   4884     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   4885         IUpdateDownloadResult *This,
   4886         REFIID riid,
   4887         void **ppvObject);
   4888 
   4889     ULONG (STDMETHODCALLTYPE *AddRef)(
   4890         IUpdateDownloadResult *This);
   4891 
   4892     ULONG (STDMETHODCALLTYPE *Release)(
   4893         IUpdateDownloadResult *This);
   4894 
   4895     /*** IDispatch methods ***/
   4896     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   4897         IUpdateDownloadResult *This,
   4898         UINT *pctinfo);
   4899 
   4900     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   4901         IUpdateDownloadResult *This,
   4902         UINT iTInfo,
   4903         LCID lcid,
   4904         ITypeInfo **ppTInfo);
   4905 
   4906     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   4907         IUpdateDownloadResult *This,
   4908         REFIID riid,
   4909         LPOLESTR *rgszNames,
   4910         UINT cNames,
   4911         LCID lcid,
   4912         DISPID *rgDispId);
   4913 
   4914     HRESULT (STDMETHODCALLTYPE *Invoke)(
   4915         IUpdateDownloadResult *This,
   4916         DISPID dispIdMember,
   4917         REFIID riid,
   4918         LCID lcid,
   4919         WORD wFlags,
   4920         DISPPARAMS *pDispParams,
   4921         VARIANT *pVarResult,
   4922         EXCEPINFO *pExcepInfo,
   4923         UINT *puArgErr);
   4924 
   4925     /*** IUpdateDownloadResult methods ***/
   4926     HRESULT (STDMETHODCALLTYPE *get_HResult)(
   4927         IUpdateDownloadResult *This,
   4928         LONG *retval);
   4929 
   4930     HRESULT (STDMETHODCALLTYPE *get_ResultCode)(
   4931         IUpdateDownloadResult *This,
   4932         OperationResultCode *retval);
   4933 
   4934     END_INTERFACE
   4935 } IUpdateDownloadResultVtbl;
   4936 
   4937 interface IUpdateDownloadResult {
   4938     CONST_VTBL IUpdateDownloadResultVtbl* lpVtbl;
   4939 };
   4940 
   4941 #ifdef COBJMACROS
   4942 #ifndef WIDL_C_INLINE_WRAPPERS
   4943 /*** IUnknown methods ***/
   4944 #define IUpdateDownloadResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   4945 #define IUpdateDownloadResult_AddRef(This) (This)->lpVtbl->AddRef(This)
   4946 #define IUpdateDownloadResult_Release(This) (This)->lpVtbl->Release(This)
   4947 /*** IDispatch methods ***/
   4948 #define IUpdateDownloadResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   4949 #define IUpdateDownloadResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   4950 #define IUpdateDownloadResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   4951 #define IUpdateDownloadResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   4952 /*** IUpdateDownloadResult methods ***/
   4953 #define IUpdateDownloadResult_get_HResult(This,retval) (This)->lpVtbl->get_HResult(This,retval)
   4954 #define IUpdateDownloadResult_get_ResultCode(This,retval) (This)->lpVtbl->get_ResultCode(This,retval)
   4955 #else
   4956 /*** IUnknown methods ***/
   4957 static inline HRESULT IUpdateDownloadResult_QueryInterface(IUpdateDownloadResult* This,REFIID riid,void **ppvObject) {
   4958     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   4959 }
   4960 static inline ULONG IUpdateDownloadResult_AddRef(IUpdateDownloadResult* This) {
   4961     return This->lpVtbl->AddRef(This);
   4962 }
   4963 static inline ULONG IUpdateDownloadResult_Release(IUpdateDownloadResult* This) {
   4964     return This->lpVtbl->Release(This);
   4965 }
   4966 /*** IDispatch methods ***/
   4967 static inline HRESULT IUpdateDownloadResult_GetTypeInfoCount(IUpdateDownloadResult* This,UINT *pctinfo) {
   4968     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   4969 }
   4970 static inline HRESULT IUpdateDownloadResult_GetTypeInfo(IUpdateDownloadResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   4971     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   4972 }
   4973 static inline HRESULT IUpdateDownloadResult_GetIDsOfNames(IUpdateDownloadResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   4974     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   4975 }
   4976 static inline HRESULT IUpdateDownloadResult_Invoke(IUpdateDownloadResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   4977     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   4978 }
   4979 /*** IUpdateDownloadResult methods ***/
   4980 static inline HRESULT IUpdateDownloadResult_get_HResult(IUpdateDownloadResult* This,LONG *retval) {
   4981     return This->lpVtbl->get_HResult(This,retval);
   4982 }
   4983 static inline HRESULT IUpdateDownloadResult_get_ResultCode(IUpdateDownloadResult* This,OperationResultCode *retval) {
   4984     return This->lpVtbl->get_ResultCode(This,retval);
   4985 }
   4986 #endif
   4987 #endif
   4988 
   4989 #endif
   4990 
   4991 
   4992 #endif  /* __IUpdateDownloadResult_INTERFACE_DEFINED__ */
   4993 
   4994 /*****************************************************************************
   4995  * IDownloadProgress interface
   4996  */
   4997 #ifndef __IDownloadProgress_INTERFACE_DEFINED__
   4998 #define __IDownloadProgress_INTERFACE_DEFINED__
   4999 
   5000 DEFINE_GUID(IID_IDownloadProgress, 0xd31a5bac, 0xf719, 0x4178, 0x9d,0xbb, 0x5e,0x2c,0xb4,0x7f,0xd1,0x8a);
   5001 #if defined(__cplusplus) && !defined(CINTERFACE)
   5002 MIDL_INTERFACE("d31a5bac-f719-4178-9dbb-5e2cb47fd18a")
   5003 IDownloadProgress : public IDispatch
   5004 {
   5005     virtual HRESULT STDMETHODCALLTYPE get_CurrentUpdateBytesDownloaded(
   5006         DECIMAL *retval) = 0;
   5007 
   5008     virtual HRESULT STDMETHODCALLTYPE get_CurrentUpdateBytesToDownload(
   5009         DECIMAL *retval) = 0;
   5010 
   5011     virtual HRESULT STDMETHODCALLTYPE get_CurrentUpdateIndex(
   5012         LONG *retval) = 0;
   5013 
   5014     virtual HRESULT STDMETHODCALLTYPE get_PercentComplete(
   5015         LONG *retval) = 0;
   5016 
   5017     virtual HRESULT STDMETHODCALLTYPE get_TotalBytesDownloaded(
   5018         DECIMAL *retval) = 0;
   5019 
   5020     virtual HRESULT STDMETHODCALLTYPE get_TotalBytesToDownload(
   5021         DECIMAL *retval) = 0;
   5022 
   5023     virtual HRESULT STDMETHODCALLTYPE GetUpdateResult(
   5024         LONG updateIndex,
   5025         IUpdateDownloadResult **retval) = 0;
   5026 
   5027     virtual HRESULT STDMETHODCALLTYPE get_CurrentUpdateDownloadPhase(
   5028         DownloadPhase *retval) = 0;
   5029 
   5030     virtual HRESULT STDMETHODCALLTYPE get_CurrentUpdatePercentComplete(
   5031         LONG *retval) = 0;
   5032 
   5033 };
   5034 #ifdef __CRT_UUID_DECL
   5035 __CRT_UUID_DECL(IDownloadProgress, 0xd31a5bac, 0xf719, 0x4178, 0x9d,0xbb, 0x5e,0x2c,0xb4,0x7f,0xd1,0x8a)
   5036 #endif
   5037 #else
   5038 typedef struct IDownloadProgressVtbl {
   5039     BEGIN_INTERFACE
   5040 
   5041     /*** IUnknown methods ***/
   5042     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5043         IDownloadProgress *This,
   5044         REFIID riid,
   5045         void **ppvObject);
   5046 
   5047     ULONG (STDMETHODCALLTYPE *AddRef)(
   5048         IDownloadProgress *This);
   5049 
   5050     ULONG (STDMETHODCALLTYPE *Release)(
   5051         IDownloadProgress *This);
   5052 
   5053     /*** IDispatch methods ***/
   5054     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   5055         IDownloadProgress *This,
   5056         UINT *pctinfo);
   5057 
   5058     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   5059         IDownloadProgress *This,
   5060         UINT iTInfo,
   5061         LCID lcid,
   5062         ITypeInfo **ppTInfo);
   5063 
   5064     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   5065         IDownloadProgress *This,
   5066         REFIID riid,
   5067         LPOLESTR *rgszNames,
   5068         UINT cNames,
   5069         LCID lcid,
   5070         DISPID *rgDispId);
   5071 
   5072     HRESULT (STDMETHODCALLTYPE *Invoke)(
   5073         IDownloadProgress *This,
   5074         DISPID dispIdMember,
   5075         REFIID riid,
   5076         LCID lcid,
   5077         WORD wFlags,
   5078         DISPPARAMS *pDispParams,
   5079         VARIANT *pVarResult,
   5080         EXCEPINFO *pExcepInfo,
   5081         UINT *puArgErr);
   5082 
   5083     /*** IDownloadProgress methods ***/
   5084     HRESULT (STDMETHODCALLTYPE *get_CurrentUpdateBytesDownloaded)(
   5085         IDownloadProgress *This,
   5086         DECIMAL *retval);
   5087 
   5088     HRESULT (STDMETHODCALLTYPE *get_CurrentUpdateBytesToDownload)(
   5089         IDownloadProgress *This,
   5090         DECIMAL *retval);
   5091 
   5092     HRESULT (STDMETHODCALLTYPE *get_CurrentUpdateIndex)(
   5093         IDownloadProgress *This,
   5094         LONG *retval);
   5095 
   5096     HRESULT (STDMETHODCALLTYPE *get_PercentComplete)(
   5097         IDownloadProgress *This,
   5098         LONG *retval);
   5099 
   5100     HRESULT (STDMETHODCALLTYPE *get_TotalBytesDownloaded)(
   5101         IDownloadProgress *This,
   5102         DECIMAL *retval);
   5103 
   5104     HRESULT (STDMETHODCALLTYPE *get_TotalBytesToDownload)(
   5105         IDownloadProgress *This,
   5106         DECIMAL *retval);
   5107 
   5108     HRESULT (STDMETHODCALLTYPE *GetUpdateResult)(
   5109         IDownloadProgress *This,
   5110         LONG updateIndex,
   5111         IUpdateDownloadResult **retval);
   5112 
   5113     HRESULT (STDMETHODCALLTYPE *get_CurrentUpdateDownloadPhase)(
   5114         IDownloadProgress *This,
   5115         DownloadPhase *retval);
   5116 
   5117     HRESULT (STDMETHODCALLTYPE *get_CurrentUpdatePercentComplete)(
   5118         IDownloadProgress *This,
   5119         LONG *retval);
   5120 
   5121     END_INTERFACE
   5122 } IDownloadProgressVtbl;
   5123 
   5124 interface IDownloadProgress {
   5125     CONST_VTBL IDownloadProgressVtbl* lpVtbl;
   5126 };
   5127 
   5128 #ifdef COBJMACROS
   5129 #ifndef WIDL_C_INLINE_WRAPPERS
   5130 /*** IUnknown methods ***/
   5131 #define IDownloadProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5132 #define IDownloadProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
   5133 #define IDownloadProgress_Release(This) (This)->lpVtbl->Release(This)
   5134 /*** IDispatch methods ***/
   5135 #define IDownloadProgress_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   5136 #define IDownloadProgress_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   5137 #define IDownloadProgress_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   5138 #define IDownloadProgress_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   5139 /*** IDownloadProgress methods ***/
   5140 #define IDownloadProgress_get_CurrentUpdateBytesDownloaded(This,retval) (This)->lpVtbl->get_CurrentUpdateBytesDownloaded(This,retval)
   5141 #define IDownloadProgress_get_CurrentUpdateBytesToDownload(This,retval) (This)->lpVtbl->get_CurrentUpdateBytesToDownload(This,retval)
   5142 #define IDownloadProgress_get_CurrentUpdateIndex(This,retval) (This)->lpVtbl->get_CurrentUpdateIndex(This,retval)
   5143 #define IDownloadProgress_get_PercentComplete(This,retval) (This)->lpVtbl->get_PercentComplete(This,retval)
   5144 #define IDownloadProgress_get_TotalBytesDownloaded(This,retval) (This)->lpVtbl->get_TotalBytesDownloaded(This,retval)
   5145 #define IDownloadProgress_get_TotalBytesToDownload(This,retval) (This)->lpVtbl->get_TotalBytesToDownload(This,retval)
   5146 #define IDownloadProgress_GetUpdateResult(This,updateIndex,retval) (This)->lpVtbl->GetUpdateResult(This,updateIndex,retval)
   5147 #define IDownloadProgress_get_CurrentUpdateDownloadPhase(This,retval) (This)->lpVtbl->get_CurrentUpdateDownloadPhase(This,retval)
   5148 #define IDownloadProgress_get_CurrentUpdatePercentComplete(This,retval) (This)->lpVtbl->get_CurrentUpdatePercentComplete(This,retval)
   5149 #else
   5150 /*** IUnknown methods ***/
   5151 static inline HRESULT IDownloadProgress_QueryInterface(IDownloadProgress* This,REFIID riid,void **ppvObject) {
   5152     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5153 }
   5154 static inline ULONG IDownloadProgress_AddRef(IDownloadProgress* This) {
   5155     return This->lpVtbl->AddRef(This);
   5156 }
   5157 static inline ULONG IDownloadProgress_Release(IDownloadProgress* This) {
   5158     return This->lpVtbl->Release(This);
   5159 }
   5160 /*** IDispatch methods ***/
   5161 static inline HRESULT IDownloadProgress_GetTypeInfoCount(IDownloadProgress* This,UINT *pctinfo) {
   5162     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   5163 }
   5164 static inline HRESULT IDownloadProgress_GetTypeInfo(IDownloadProgress* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   5165     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   5166 }
   5167 static inline HRESULT IDownloadProgress_GetIDsOfNames(IDownloadProgress* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   5168     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   5169 }
   5170 static inline HRESULT IDownloadProgress_Invoke(IDownloadProgress* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   5171     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   5172 }
   5173 /*** IDownloadProgress methods ***/
   5174 static inline HRESULT IDownloadProgress_get_CurrentUpdateBytesDownloaded(IDownloadProgress* This,DECIMAL *retval) {
   5175     return This->lpVtbl->get_CurrentUpdateBytesDownloaded(This,retval);
   5176 }
   5177 static inline HRESULT IDownloadProgress_get_CurrentUpdateBytesToDownload(IDownloadProgress* This,DECIMAL *retval) {
   5178     return This->lpVtbl->get_CurrentUpdateBytesToDownload(This,retval);
   5179 }
   5180 static inline HRESULT IDownloadProgress_get_CurrentUpdateIndex(IDownloadProgress* This,LONG *retval) {
   5181     return This->lpVtbl->get_CurrentUpdateIndex(This,retval);
   5182 }
   5183 static inline HRESULT IDownloadProgress_get_PercentComplete(IDownloadProgress* This,LONG *retval) {
   5184     return This->lpVtbl->get_PercentComplete(This,retval);
   5185 }
   5186 static inline HRESULT IDownloadProgress_get_TotalBytesDownloaded(IDownloadProgress* This,DECIMAL *retval) {
   5187     return This->lpVtbl->get_TotalBytesDownloaded(This,retval);
   5188 }
   5189 static inline HRESULT IDownloadProgress_get_TotalBytesToDownload(IDownloadProgress* This,DECIMAL *retval) {
   5190     return This->lpVtbl->get_TotalBytesToDownload(This,retval);
   5191 }
   5192 static inline HRESULT IDownloadProgress_GetUpdateResult(IDownloadProgress* This,LONG updateIndex,IUpdateDownloadResult **retval) {
   5193     return This->lpVtbl->GetUpdateResult(This,updateIndex,retval);
   5194 }
   5195 static inline HRESULT IDownloadProgress_get_CurrentUpdateDownloadPhase(IDownloadProgress* This,DownloadPhase *retval) {
   5196     return This->lpVtbl->get_CurrentUpdateDownloadPhase(This,retval);
   5197 }
   5198 static inline HRESULT IDownloadProgress_get_CurrentUpdatePercentComplete(IDownloadProgress* This,LONG *retval) {
   5199     return This->lpVtbl->get_CurrentUpdatePercentComplete(This,retval);
   5200 }
   5201 #endif
   5202 #endif
   5203 
   5204 #endif
   5205 
   5206 
   5207 #endif  /* __IDownloadProgress_INTERFACE_DEFINED__ */
   5208 
   5209 /*****************************************************************************
   5210  * IDownloadJob interface
   5211  */
   5212 #ifndef __IDownloadJob_INTERFACE_DEFINED__
   5213 #define __IDownloadJob_INTERFACE_DEFINED__
   5214 
   5215 DEFINE_GUID(IID_IDownloadJob, 0xc574de85, 0x7358, 0x43f6, 0xaa,0xe8, 0x86,0x97,0xe6,0x2d,0x8b,0xa7);
   5216 #if defined(__cplusplus) && !defined(CINTERFACE)
   5217 MIDL_INTERFACE("c574de85-7358-43f6-aae8-8697e62d8ba7")
   5218 IDownloadJob : public IDispatch
   5219 {
   5220     virtual HRESULT STDMETHODCALLTYPE get_AsyncState(
   5221         VARIANT *retval) = 0;
   5222 
   5223     virtual HRESULT STDMETHODCALLTYPE get_IsCompleted(
   5224         VARIANT_BOOL *retval) = 0;
   5225 
   5226     virtual HRESULT STDMETHODCALLTYPE get_Updates(
   5227         IUpdateCollection **retval) = 0;
   5228 
   5229     virtual HRESULT STDMETHODCALLTYPE CleanUp(
   5230         ) = 0;
   5231 
   5232     virtual HRESULT STDMETHODCALLTYPE GetProgress(
   5233         IDownloadProgress **retval) = 0;
   5234 
   5235     virtual HRESULT STDMETHODCALLTYPE RequestAbort(
   5236         ) = 0;
   5237 
   5238 };
   5239 #ifdef __CRT_UUID_DECL
   5240 __CRT_UUID_DECL(IDownloadJob, 0xc574de85, 0x7358, 0x43f6, 0xaa,0xe8, 0x86,0x97,0xe6,0x2d,0x8b,0xa7)
   5241 #endif
   5242 #else
   5243 typedef struct IDownloadJobVtbl {
   5244     BEGIN_INTERFACE
   5245 
   5246     /*** IUnknown methods ***/
   5247     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5248         IDownloadJob *This,
   5249         REFIID riid,
   5250         void **ppvObject);
   5251 
   5252     ULONG (STDMETHODCALLTYPE *AddRef)(
   5253         IDownloadJob *This);
   5254 
   5255     ULONG (STDMETHODCALLTYPE *Release)(
   5256         IDownloadJob *This);
   5257 
   5258     /*** IDispatch methods ***/
   5259     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   5260         IDownloadJob *This,
   5261         UINT *pctinfo);
   5262 
   5263     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   5264         IDownloadJob *This,
   5265         UINT iTInfo,
   5266         LCID lcid,
   5267         ITypeInfo **ppTInfo);
   5268 
   5269     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   5270         IDownloadJob *This,
   5271         REFIID riid,
   5272         LPOLESTR *rgszNames,
   5273         UINT cNames,
   5274         LCID lcid,
   5275         DISPID *rgDispId);
   5276 
   5277     HRESULT (STDMETHODCALLTYPE *Invoke)(
   5278         IDownloadJob *This,
   5279         DISPID dispIdMember,
   5280         REFIID riid,
   5281         LCID lcid,
   5282         WORD wFlags,
   5283         DISPPARAMS *pDispParams,
   5284         VARIANT *pVarResult,
   5285         EXCEPINFO *pExcepInfo,
   5286         UINT *puArgErr);
   5287 
   5288     /*** IDownloadJob methods ***/
   5289     HRESULT (STDMETHODCALLTYPE *get_AsyncState)(
   5290         IDownloadJob *This,
   5291         VARIANT *retval);
   5292 
   5293     HRESULT (STDMETHODCALLTYPE *get_IsCompleted)(
   5294         IDownloadJob *This,
   5295         VARIANT_BOOL *retval);
   5296 
   5297     HRESULT (STDMETHODCALLTYPE *get_Updates)(
   5298         IDownloadJob *This,
   5299         IUpdateCollection **retval);
   5300 
   5301     HRESULT (STDMETHODCALLTYPE *CleanUp)(
   5302         IDownloadJob *This);
   5303 
   5304     HRESULT (STDMETHODCALLTYPE *GetProgress)(
   5305         IDownloadJob *This,
   5306         IDownloadProgress **retval);
   5307 
   5308     HRESULT (STDMETHODCALLTYPE *RequestAbort)(
   5309         IDownloadJob *This);
   5310 
   5311     END_INTERFACE
   5312 } IDownloadJobVtbl;
   5313 
   5314 interface IDownloadJob {
   5315     CONST_VTBL IDownloadJobVtbl* lpVtbl;
   5316 };
   5317 
   5318 #ifdef COBJMACROS
   5319 #ifndef WIDL_C_INLINE_WRAPPERS
   5320 /*** IUnknown methods ***/
   5321 #define IDownloadJob_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5322 #define IDownloadJob_AddRef(This) (This)->lpVtbl->AddRef(This)
   5323 #define IDownloadJob_Release(This) (This)->lpVtbl->Release(This)
   5324 /*** IDispatch methods ***/
   5325 #define IDownloadJob_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   5326 #define IDownloadJob_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   5327 #define IDownloadJob_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   5328 #define IDownloadJob_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   5329 /*** IDownloadJob methods ***/
   5330 #define IDownloadJob_get_AsyncState(This,retval) (This)->lpVtbl->get_AsyncState(This,retval)
   5331 #define IDownloadJob_get_IsCompleted(This,retval) (This)->lpVtbl->get_IsCompleted(This,retval)
   5332 #define IDownloadJob_get_Updates(This,retval) (This)->lpVtbl->get_Updates(This,retval)
   5333 #define IDownloadJob_CleanUp(This) (This)->lpVtbl->CleanUp(This)
   5334 #define IDownloadJob_GetProgress(This,retval) (This)->lpVtbl->GetProgress(This,retval)
   5335 #define IDownloadJob_RequestAbort(This) (This)->lpVtbl->RequestAbort(This)
   5336 #else
   5337 /*** IUnknown methods ***/
   5338 static inline HRESULT IDownloadJob_QueryInterface(IDownloadJob* This,REFIID riid,void **ppvObject) {
   5339     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5340 }
   5341 static inline ULONG IDownloadJob_AddRef(IDownloadJob* This) {
   5342     return This->lpVtbl->AddRef(This);
   5343 }
   5344 static inline ULONG IDownloadJob_Release(IDownloadJob* This) {
   5345     return This->lpVtbl->Release(This);
   5346 }
   5347 /*** IDispatch methods ***/
   5348 static inline HRESULT IDownloadJob_GetTypeInfoCount(IDownloadJob* This,UINT *pctinfo) {
   5349     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   5350 }
   5351 static inline HRESULT IDownloadJob_GetTypeInfo(IDownloadJob* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   5352     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   5353 }
   5354 static inline HRESULT IDownloadJob_GetIDsOfNames(IDownloadJob* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   5355     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   5356 }
   5357 static inline HRESULT IDownloadJob_Invoke(IDownloadJob* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   5358     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   5359 }
   5360 /*** IDownloadJob methods ***/
   5361 static inline HRESULT IDownloadJob_get_AsyncState(IDownloadJob* This,VARIANT *retval) {
   5362     return This->lpVtbl->get_AsyncState(This,retval);
   5363 }
   5364 static inline HRESULT IDownloadJob_get_IsCompleted(IDownloadJob* This,VARIANT_BOOL *retval) {
   5365     return This->lpVtbl->get_IsCompleted(This,retval);
   5366 }
   5367 static inline HRESULT IDownloadJob_get_Updates(IDownloadJob* This,IUpdateCollection **retval) {
   5368     return This->lpVtbl->get_Updates(This,retval);
   5369 }
   5370 static inline HRESULT IDownloadJob_CleanUp(IDownloadJob* This) {
   5371     return This->lpVtbl->CleanUp(This);
   5372 }
   5373 static inline HRESULT IDownloadJob_GetProgress(IDownloadJob* This,IDownloadProgress **retval) {
   5374     return This->lpVtbl->GetProgress(This,retval);
   5375 }
   5376 static inline HRESULT IDownloadJob_RequestAbort(IDownloadJob* This) {
   5377     return This->lpVtbl->RequestAbort(This);
   5378 }
   5379 #endif
   5380 #endif
   5381 
   5382 #endif
   5383 
   5384 
   5385 #endif  /* __IDownloadJob_INTERFACE_DEFINED__ */
   5386 
   5387 /*****************************************************************************
   5388  * IDownloadResult interface
   5389  */
   5390 #ifndef __IDownloadResult_INTERFACE_DEFINED__
   5391 #define __IDownloadResult_INTERFACE_DEFINED__
   5392 
   5393 DEFINE_GUID(IID_IDownloadResult, 0xdaa4fdd0, 0x4727, 0x4dbe, 0xa1,0xe7, 0x74,0x5d,0xca,0x31,0x71,0x44);
   5394 #if defined(__cplusplus) && !defined(CINTERFACE)
   5395 MIDL_INTERFACE("daa4fdd0-4727-4dbe-a1e7-745dca317144")
   5396 IDownloadResult : public IDispatch
   5397 {
   5398     virtual HRESULT STDMETHODCALLTYPE get_HResult(
   5399         LONG *retval) = 0;
   5400 
   5401     virtual HRESULT STDMETHODCALLTYPE get_ResultCode(
   5402         OperationResultCode *retval) = 0;
   5403 
   5404     virtual HRESULT STDMETHODCALLTYPE GetUpdateResult(
   5405         LONG updateIndex,
   5406         IUpdateDownloadResult **retval) = 0;
   5407 
   5408 };
   5409 #ifdef __CRT_UUID_DECL
   5410 __CRT_UUID_DECL(IDownloadResult, 0xdaa4fdd0, 0x4727, 0x4dbe, 0xa1,0xe7, 0x74,0x5d,0xca,0x31,0x71,0x44)
   5411 #endif
   5412 #else
   5413 typedef struct IDownloadResultVtbl {
   5414     BEGIN_INTERFACE
   5415 
   5416     /*** IUnknown methods ***/
   5417     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5418         IDownloadResult *This,
   5419         REFIID riid,
   5420         void **ppvObject);
   5421 
   5422     ULONG (STDMETHODCALLTYPE *AddRef)(
   5423         IDownloadResult *This);
   5424 
   5425     ULONG (STDMETHODCALLTYPE *Release)(
   5426         IDownloadResult *This);
   5427 
   5428     /*** IDispatch methods ***/
   5429     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   5430         IDownloadResult *This,
   5431         UINT *pctinfo);
   5432 
   5433     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   5434         IDownloadResult *This,
   5435         UINT iTInfo,
   5436         LCID lcid,
   5437         ITypeInfo **ppTInfo);
   5438 
   5439     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   5440         IDownloadResult *This,
   5441         REFIID riid,
   5442         LPOLESTR *rgszNames,
   5443         UINT cNames,
   5444         LCID lcid,
   5445         DISPID *rgDispId);
   5446 
   5447     HRESULT (STDMETHODCALLTYPE *Invoke)(
   5448         IDownloadResult *This,
   5449         DISPID dispIdMember,
   5450         REFIID riid,
   5451         LCID lcid,
   5452         WORD wFlags,
   5453         DISPPARAMS *pDispParams,
   5454         VARIANT *pVarResult,
   5455         EXCEPINFO *pExcepInfo,
   5456         UINT *puArgErr);
   5457 
   5458     /*** IDownloadResult methods ***/
   5459     HRESULT (STDMETHODCALLTYPE *get_HResult)(
   5460         IDownloadResult *This,
   5461         LONG *retval);
   5462 
   5463     HRESULT (STDMETHODCALLTYPE *get_ResultCode)(
   5464         IDownloadResult *This,
   5465         OperationResultCode *retval);
   5466 
   5467     HRESULT (STDMETHODCALLTYPE *GetUpdateResult)(
   5468         IDownloadResult *This,
   5469         LONG updateIndex,
   5470         IUpdateDownloadResult **retval);
   5471 
   5472     END_INTERFACE
   5473 } IDownloadResultVtbl;
   5474 
   5475 interface IDownloadResult {
   5476     CONST_VTBL IDownloadResultVtbl* lpVtbl;
   5477 };
   5478 
   5479 #ifdef COBJMACROS
   5480 #ifndef WIDL_C_INLINE_WRAPPERS
   5481 /*** IUnknown methods ***/
   5482 #define IDownloadResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5483 #define IDownloadResult_AddRef(This) (This)->lpVtbl->AddRef(This)
   5484 #define IDownloadResult_Release(This) (This)->lpVtbl->Release(This)
   5485 /*** IDispatch methods ***/
   5486 #define IDownloadResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   5487 #define IDownloadResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   5488 #define IDownloadResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   5489 #define IDownloadResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   5490 /*** IDownloadResult methods ***/
   5491 #define IDownloadResult_get_HResult(This,retval) (This)->lpVtbl->get_HResult(This,retval)
   5492 #define IDownloadResult_get_ResultCode(This,retval) (This)->lpVtbl->get_ResultCode(This,retval)
   5493 #define IDownloadResult_GetUpdateResult(This,updateIndex,retval) (This)->lpVtbl->GetUpdateResult(This,updateIndex,retval)
   5494 #else
   5495 /*** IUnknown methods ***/
   5496 static inline HRESULT IDownloadResult_QueryInterface(IDownloadResult* This,REFIID riid,void **ppvObject) {
   5497     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5498 }
   5499 static inline ULONG IDownloadResult_AddRef(IDownloadResult* This) {
   5500     return This->lpVtbl->AddRef(This);
   5501 }
   5502 static inline ULONG IDownloadResult_Release(IDownloadResult* This) {
   5503     return This->lpVtbl->Release(This);
   5504 }
   5505 /*** IDispatch methods ***/
   5506 static inline HRESULT IDownloadResult_GetTypeInfoCount(IDownloadResult* This,UINT *pctinfo) {
   5507     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   5508 }
   5509 static inline HRESULT IDownloadResult_GetTypeInfo(IDownloadResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   5510     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   5511 }
   5512 static inline HRESULT IDownloadResult_GetIDsOfNames(IDownloadResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   5513     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   5514 }
   5515 static inline HRESULT IDownloadResult_Invoke(IDownloadResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   5516     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   5517 }
   5518 /*** IDownloadResult methods ***/
   5519 static inline HRESULT IDownloadResult_get_HResult(IDownloadResult* This,LONG *retval) {
   5520     return This->lpVtbl->get_HResult(This,retval);
   5521 }
   5522 static inline HRESULT IDownloadResult_get_ResultCode(IDownloadResult* This,OperationResultCode *retval) {
   5523     return This->lpVtbl->get_ResultCode(This,retval);
   5524 }
   5525 static inline HRESULT IDownloadResult_GetUpdateResult(IDownloadResult* This,LONG updateIndex,IUpdateDownloadResult **retval) {
   5526     return This->lpVtbl->GetUpdateResult(This,updateIndex,retval);
   5527 }
   5528 #endif
   5529 #endif
   5530 
   5531 #endif
   5532 
   5533 
   5534 #endif  /* __IDownloadResult_INTERFACE_DEFINED__ */
   5535 
   5536 /*****************************************************************************
   5537  * IUpdateDownloader interface
   5538  */
   5539 #ifndef __IUpdateDownloader_INTERFACE_DEFINED__
   5540 #define __IUpdateDownloader_INTERFACE_DEFINED__
   5541 
   5542 DEFINE_GUID(IID_IUpdateDownloader, 0x68f1c6f9, 0x7ecc, 0x4666, 0xa4,0x64, 0x24,0x7f,0xe1,0x24,0x96,0xc3);
   5543 #if defined(__cplusplus) && !defined(CINTERFACE)
   5544 MIDL_INTERFACE("68f1c6f9-7ecc-4666-a464-247fe12496c3")
   5545 IUpdateDownloader : public IDispatch
   5546 {
   5547     virtual HRESULT STDMETHODCALLTYPE get_ClientApplicationID(
   5548         BSTR *retval) = 0;
   5549 
   5550     virtual HRESULT STDMETHODCALLTYPE put_ClientApplicationID(
   5551         BSTR value) = 0;
   5552 
   5553     virtual HRESULT STDMETHODCALLTYPE get_IsForced(
   5554         VARIANT_BOOL *retval) = 0;
   5555 
   5556     virtual HRESULT STDMETHODCALLTYPE put_IsForced(
   5557         VARIANT_BOOL value) = 0;
   5558 
   5559     virtual HRESULT STDMETHODCALLTYPE get_Priority(
   5560         DownloadPriority *retval) = 0;
   5561 
   5562     virtual HRESULT STDMETHODCALLTYPE put_Priority(
   5563         DownloadPriority value) = 0;
   5564 
   5565     virtual HRESULT STDMETHODCALLTYPE get_Updates(
   5566         IUpdateCollection **retval) = 0;
   5567 
   5568     virtual HRESULT STDMETHODCALLTYPE put_Updates(
   5569         IUpdateCollection *value) = 0;
   5570 
   5571     virtual HRESULT STDMETHODCALLTYPE BeginDownload(
   5572         IUnknown *onProgressChanged,
   5573         IUnknown *onCompleted,
   5574         VARIANT state,
   5575         IDownloadJob **retval) = 0;
   5576 
   5577     virtual HRESULT STDMETHODCALLTYPE Download(
   5578         IDownloadResult **retval) = 0;
   5579 
   5580     virtual HRESULT STDMETHODCALLTYPE EndDownload(
   5581         IDownloadJob *value,
   5582         IDownloadResult **retval) = 0;
   5583 
   5584 };
   5585 #ifdef __CRT_UUID_DECL
   5586 __CRT_UUID_DECL(IUpdateDownloader, 0x68f1c6f9, 0x7ecc, 0x4666, 0xa4,0x64, 0x24,0x7f,0xe1,0x24,0x96,0xc3)
   5587 #endif
   5588 #else
   5589 typedef struct IUpdateDownloaderVtbl {
   5590     BEGIN_INTERFACE
   5591 
   5592     /*** IUnknown methods ***/
   5593     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5594         IUpdateDownloader *This,
   5595         REFIID riid,
   5596         void **ppvObject);
   5597 
   5598     ULONG (STDMETHODCALLTYPE *AddRef)(
   5599         IUpdateDownloader *This);
   5600 
   5601     ULONG (STDMETHODCALLTYPE *Release)(
   5602         IUpdateDownloader *This);
   5603 
   5604     /*** IDispatch methods ***/
   5605     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   5606         IUpdateDownloader *This,
   5607         UINT *pctinfo);
   5608 
   5609     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   5610         IUpdateDownloader *This,
   5611         UINT iTInfo,
   5612         LCID lcid,
   5613         ITypeInfo **ppTInfo);
   5614 
   5615     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   5616         IUpdateDownloader *This,
   5617         REFIID riid,
   5618         LPOLESTR *rgszNames,
   5619         UINT cNames,
   5620         LCID lcid,
   5621         DISPID *rgDispId);
   5622 
   5623     HRESULT (STDMETHODCALLTYPE *Invoke)(
   5624         IUpdateDownloader *This,
   5625         DISPID dispIdMember,
   5626         REFIID riid,
   5627         LCID lcid,
   5628         WORD wFlags,
   5629         DISPPARAMS *pDispParams,
   5630         VARIANT *pVarResult,
   5631         EXCEPINFO *pExcepInfo,
   5632         UINT *puArgErr);
   5633 
   5634     /*** IUpdateDownloader methods ***/
   5635     HRESULT (STDMETHODCALLTYPE *get_ClientApplicationID)(
   5636         IUpdateDownloader *This,
   5637         BSTR *retval);
   5638 
   5639     HRESULT (STDMETHODCALLTYPE *put_ClientApplicationID)(
   5640         IUpdateDownloader *This,
   5641         BSTR value);
   5642 
   5643     HRESULT (STDMETHODCALLTYPE *get_IsForced)(
   5644         IUpdateDownloader *This,
   5645         VARIANT_BOOL *retval);
   5646 
   5647     HRESULT (STDMETHODCALLTYPE *put_IsForced)(
   5648         IUpdateDownloader *This,
   5649         VARIANT_BOOL value);
   5650 
   5651     HRESULT (STDMETHODCALLTYPE *get_Priority)(
   5652         IUpdateDownloader *This,
   5653         DownloadPriority *retval);
   5654 
   5655     HRESULT (STDMETHODCALLTYPE *put_Priority)(
   5656         IUpdateDownloader *This,
   5657         DownloadPriority value);
   5658 
   5659     HRESULT (STDMETHODCALLTYPE *get_Updates)(
   5660         IUpdateDownloader *This,
   5661         IUpdateCollection **retval);
   5662 
   5663     HRESULT (STDMETHODCALLTYPE *put_Updates)(
   5664         IUpdateDownloader *This,
   5665         IUpdateCollection *value);
   5666 
   5667     HRESULT (STDMETHODCALLTYPE *BeginDownload)(
   5668         IUpdateDownloader *This,
   5669         IUnknown *onProgressChanged,
   5670         IUnknown *onCompleted,
   5671         VARIANT state,
   5672         IDownloadJob **retval);
   5673 
   5674     HRESULT (STDMETHODCALLTYPE *Download)(
   5675         IUpdateDownloader *This,
   5676         IDownloadResult **retval);
   5677 
   5678     HRESULT (STDMETHODCALLTYPE *EndDownload)(
   5679         IUpdateDownloader *This,
   5680         IDownloadJob *value,
   5681         IDownloadResult **retval);
   5682 
   5683     END_INTERFACE
   5684 } IUpdateDownloaderVtbl;
   5685 
   5686 interface IUpdateDownloader {
   5687     CONST_VTBL IUpdateDownloaderVtbl* lpVtbl;
   5688 };
   5689 
   5690 #ifdef COBJMACROS
   5691 #ifndef WIDL_C_INLINE_WRAPPERS
   5692 /*** IUnknown methods ***/
   5693 #define IUpdateDownloader_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5694 #define IUpdateDownloader_AddRef(This) (This)->lpVtbl->AddRef(This)
   5695 #define IUpdateDownloader_Release(This) (This)->lpVtbl->Release(This)
   5696 /*** IDispatch methods ***/
   5697 #define IUpdateDownloader_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   5698 #define IUpdateDownloader_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   5699 #define IUpdateDownloader_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   5700 #define IUpdateDownloader_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   5701 /*** IUpdateDownloader methods ***/
   5702 #define IUpdateDownloader_get_ClientApplicationID(This,retval) (This)->lpVtbl->get_ClientApplicationID(This,retval)
   5703 #define IUpdateDownloader_put_ClientApplicationID(This,value) (This)->lpVtbl->put_ClientApplicationID(This,value)
   5704 #define IUpdateDownloader_get_IsForced(This,retval) (This)->lpVtbl->get_IsForced(This,retval)
   5705 #define IUpdateDownloader_put_IsForced(This,value) (This)->lpVtbl->put_IsForced(This,value)
   5706 #define IUpdateDownloader_get_Priority(This,retval) (This)->lpVtbl->get_Priority(This,retval)
   5707 #define IUpdateDownloader_put_Priority(This,value) (This)->lpVtbl->put_Priority(This,value)
   5708 #define IUpdateDownloader_get_Updates(This,retval) (This)->lpVtbl->get_Updates(This,retval)
   5709 #define IUpdateDownloader_put_Updates(This,value) (This)->lpVtbl->put_Updates(This,value)
   5710 #define IUpdateDownloader_BeginDownload(This,onProgressChanged,onCompleted,state,retval) (This)->lpVtbl->BeginDownload(This,onProgressChanged,onCompleted,state,retval)
   5711 #define IUpdateDownloader_Download(This,retval) (This)->lpVtbl->Download(This,retval)
   5712 #define IUpdateDownloader_EndDownload(This,value,retval) (This)->lpVtbl->EndDownload(This,value,retval)
   5713 #else
   5714 /*** IUnknown methods ***/
   5715 static inline HRESULT IUpdateDownloader_QueryInterface(IUpdateDownloader* This,REFIID riid,void **ppvObject) {
   5716     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5717 }
   5718 static inline ULONG IUpdateDownloader_AddRef(IUpdateDownloader* This) {
   5719     return This->lpVtbl->AddRef(This);
   5720 }
   5721 static inline ULONG IUpdateDownloader_Release(IUpdateDownloader* This) {
   5722     return This->lpVtbl->Release(This);
   5723 }
   5724 /*** IDispatch methods ***/
   5725 static inline HRESULT IUpdateDownloader_GetTypeInfoCount(IUpdateDownloader* This,UINT *pctinfo) {
   5726     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   5727 }
   5728 static inline HRESULT IUpdateDownloader_GetTypeInfo(IUpdateDownloader* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   5729     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   5730 }
   5731 static inline HRESULT IUpdateDownloader_GetIDsOfNames(IUpdateDownloader* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   5732     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   5733 }
   5734 static inline HRESULT IUpdateDownloader_Invoke(IUpdateDownloader* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   5735     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   5736 }
   5737 /*** IUpdateDownloader methods ***/
   5738 static inline HRESULT IUpdateDownloader_get_ClientApplicationID(IUpdateDownloader* This,BSTR *retval) {
   5739     return This->lpVtbl->get_ClientApplicationID(This,retval);
   5740 }
   5741 static inline HRESULT IUpdateDownloader_put_ClientApplicationID(IUpdateDownloader* This,BSTR value) {
   5742     return This->lpVtbl->put_ClientApplicationID(This,value);
   5743 }
   5744 static inline HRESULT IUpdateDownloader_get_IsForced(IUpdateDownloader* This,VARIANT_BOOL *retval) {
   5745     return This->lpVtbl->get_IsForced(This,retval);
   5746 }
   5747 static inline HRESULT IUpdateDownloader_put_IsForced(IUpdateDownloader* This,VARIANT_BOOL value) {
   5748     return This->lpVtbl->put_IsForced(This,value);
   5749 }
   5750 static inline HRESULT IUpdateDownloader_get_Priority(IUpdateDownloader* This,DownloadPriority *retval) {
   5751     return This->lpVtbl->get_Priority(This,retval);
   5752 }
   5753 static inline HRESULT IUpdateDownloader_put_Priority(IUpdateDownloader* This,DownloadPriority value) {
   5754     return This->lpVtbl->put_Priority(This,value);
   5755 }
   5756 static inline HRESULT IUpdateDownloader_get_Updates(IUpdateDownloader* This,IUpdateCollection **retval) {
   5757     return This->lpVtbl->get_Updates(This,retval);
   5758 }
   5759 static inline HRESULT IUpdateDownloader_put_Updates(IUpdateDownloader* This,IUpdateCollection *value) {
   5760     return This->lpVtbl->put_Updates(This,value);
   5761 }
   5762 static inline HRESULT IUpdateDownloader_BeginDownload(IUpdateDownloader* This,IUnknown *onProgressChanged,IUnknown *onCompleted,VARIANT state,IDownloadJob **retval) {
   5763     return This->lpVtbl->BeginDownload(This,onProgressChanged,onCompleted,state,retval);
   5764 }
   5765 static inline HRESULT IUpdateDownloader_Download(IUpdateDownloader* This,IDownloadResult **retval) {
   5766     return This->lpVtbl->Download(This,retval);
   5767 }
   5768 static inline HRESULT IUpdateDownloader_EndDownload(IUpdateDownloader* This,IDownloadJob *value,IDownloadResult **retval) {
   5769     return This->lpVtbl->EndDownload(This,value,retval);
   5770 }
   5771 #endif
   5772 #endif
   5773 
   5774 #endif
   5775 
   5776 
   5777 #endif  /* __IUpdateDownloader_INTERFACE_DEFINED__ */
   5778 
   5779 /*****************************************************************************
   5780  * IUpdateInstallationResult interface
   5781  */
   5782 #ifndef __IUpdateInstallationResult_INTERFACE_DEFINED__
   5783 #define __IUpdateInstallationResult_INTERFACE_DEFINED__
   5784 
   5785 DEFINE_GUID(IID_IUpdateInstallationResult, 0xd940f0f8, 0x3cbb, 0x4fd0, 0x99,0x3f, 0x47,0x1e,0x7f,0x23,0x28,0xad);
   5786 #if defined(__cplusplus) && !defined(CINTERFACE)
   5787 MIDL_INTERFACE("d940f0f8-3cbb-4fd0-993f-471e7f2328ad")
   5788 IUpdateInstallationResult : public IDispatch
   5789 {
   5790     virtual HRESULT STDMETHODCALLTYPE get_HResult(
   5791         LONG *retval) = 0;
   5792 
   5793     virtual HRESULT STDMETHODCALLTYPE get_RebootRequired(
   5794         VARIANT_BOOL *retval) = 0;
   5795 
   5796     virtual HRESULT STDMETHODCALLTYPE get_ResultCode(
   5797         OperationResultCode *retval) = 0;
   5798 
   5799 };
   5800 #ifdef __CRT_UUID_DECL
   5801 __CRT_UUID_DECL(IUpdateInstallationResult, 0xd940f0f8, 0x3cbb, 0x4fd0, 0x99,0x3f, 0x47,0x1e,0x7f,0x23,0x28,0xad)
   5802 #endif
   5803 #else
   5804 typedef struct IUpdateInstallationResultVtbl {
   5805     BEGIN_INTERFACE
   5806 
   5807     /*** IUnknown methods ***/
   5808     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5809         IUpdateInstallationResult *This,
   5810         REFIID riid,
   5811         void **ppvObject);
   5812 
   5813     ULONG (STDMETHODCALLTYPE *AddRef)(
   5814         IUpdateInstallationResult *This);
   5815 
   5816     ULONG (STDMETHODCALLTYPE *Release)(
   5817         IUpdateInstallationResult *This);
   5818 
   5819     /*** IDispatch methods ***/
   5820     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   5821         IUpdateInstallationResult *This,
   5822         UINT *pctinfo);
   5823 
   5824     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   5825         IUpdateInstallationResult *This,
   5826         UINT iTInfo,
   5827         LCID lcid,
   5828         ITypeInfo **ppTInfo);
   5829 
   5830     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   5831         IUpdateInstallationResult *This,
   5832         REFIID riid,
   5833         LPOLESTR *rgszNames,
   5834         UINT cNames,
   5835         LCID lcid,
   5836         DISPID *rgDispId);
   5837 
   5838     HRESULT (STDMETHODCALLTYPE *Invoke)(
   5839         IUpdateInstallationResult *This,
   5840         DISPID dispIdMember,
   5841         REFIID riid,
   5842         LCID lcid,
   5843         WORD wFlags,
   5844         DISPPARAMS *pDispParams,
   5845         VARIANT *pVarResult,
   5846         EXCEPINFO *pExcepInfo,
   5847         UINT *puArgErr);
   5848 
   5849     /*** IUpdateInstallationResult methods ***/
   5850     HRESULT (STDMETHODCALLTYPE *get_HResult)(
   5851         IUpdateInstallationResult *This,
   5852         LONG *retval);
   5853 
   5854     HRESULT (STDMETHODCALLTYPE *get_RebootRequired)(
   5855         IUpdateInstallationResult *This,
   5856         VARIANT_BOOL *retval);
   5857 
   5858     HRESULT (STDMETHODCALLTYPE *get_ResultCode)(
   5859         IUpdateInstallationResult *This,
   5860         OperationResultCode *retval);
   5861 
   5862     END_INTERFACE
   5863 } IUpdateInstallationResultVtbl;
   5864 
   5865 interface IUpdateInstallationResult {
   5866     CONST_VTBL IUpdateInstallationResultVtbl* lpVtbl;
   5867 };
   5868 
   5869 #ifdef COBJMACROS
   5870 #ifndef WIDL_C_INLINE_WRAPPERS
   5871 /*** IUnknown methods ***/
   5872 #define IUpdateInstallationResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   5873 #define IUpdateInstallationResult_AddRef(This) (This)->lpVtbl->AddRef(This)
   5874 #define IUpdateInstallationResult_Release(This) (This)->lpVtbl->Release(This)
   5875 /*** IDispatch methods ***/
   5876 #define IUpdateInstallationResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   5877 #define IUpdateInstallationResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   5878 #define IUpdateInstallationResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   5879 #define IUpdateInstallationResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   5880 /*** IUpdateInstallationResult methods ***/
   5881 #define IUpdateInstallationResult_get_HResult(This,retval) (This)->lpVtbl->get_HResult(This,retval)
   5882 #define IUpdateInstallationResult_get_RebootRequired(This,retval) (This)->lpVtbl->get_RebootRequired(This,retval)
   5883 #define IUpdateInstallationResult_get_ResultCode(This,retval) (This)->lpVtbl->get_ResultCode(This,retval)
   5884 #else
   5885 /*** IUnknown methods ***/
   5886 static inline HRESULT IUpdateInstallationResult_QueryInterface(IUpdateInstallationResult* This,REFIID riid,void **ppvObject) {
   5887     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   5888 }
   5889 static inline ULONG IUpdateInstallationResult_AddRef(IUpdateInstallationResult* This) {
   5890     return This->lpVtbl->AddRef(This);
   5891 }
   5892 static inline ULONG IUpdateInstallationResult_Release(IUpdateInstallationResult* This) {
   5893     return This->lpVtbl->Release(This);
   5894 }
   5895 /*** IDispatch methods ***/
   5896 static inline HRESULT IUpdateInstallationResult_GetTypeInfoCount(IUpdateInstallationResult* This,UINT *pctinfo) {
   5897     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   5898 }
   5899 static inline HRESULT IUpdateInstallationResult_GetTypeInfo(IUpdateInstallationResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   5900     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   5901 }
   5902 static inline HRESULT IUpdateInstallationResult_GetIDsOfNames(IUpdateInstallationResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   5903     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   5904 }
   5905 static inline HRESULT IUpdateInstallationResult_Invoke(IUpdateInstallationResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   5906     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   5907 }
   5908 /*** IUpdateInstallationResult methods ***/
   5909 static inline HRESULT IUpdateInstallationResult_get_HResult(IUpdateInstallationResult* This,LONG *retval) {
   5910     return This->lpVtbl->get_HResult(This,retval);
   5911 }
   5912 static inline HRESULT IUpdateInstallationResult_get_RebootRequired(IUpdateInstallationResult* This,VARIANT_BOOL *retval) {
   5913     return This->lpVtbl->get_RebootRequired(This,retval);
   5914 }
   5915 static inline HRESULT IUpdateInstallationResult_get_ResultCode(IUpdateInstallationResult* This,OperationResultCode *retval) {
   5916     return This->lpVtbl->get_ResultCode(This,retval);
   5917 }
   5918 #endif
   5919 #endif
   5920 
   5921 #endif
   5922 
   5923 
   5924 #endif  /* __IUpdateInstallationResult_INTERFACE_DEFINED__ */
   5925 
   5926 /*****************************************************************************
   5927  * IInstallationProgress interface
   5928  */
   5929 #ifndef __IInstallationProgress_INTERFACE_DEFINED__
   5930 #define __IInstallationProgress_INTERFACE_DEFINED__
   5931 
   5932 DEFINE_GUID(IID_IInstallationProgress, 0x345c8244, 0x43a3, 0x4e32, 0xa3,0x68, 0x65,0xf0,0x73,0xb7,0x6f,0x36);
   5933 #if defined(__cplusplus) && !defined(CINTERFACE)
   5934 MIDL_INTERFACE("345c8244-43a3-4e32-a368-65f073b76f36")
   5935 IInstallationProgress : public IDispatch
   5936 {
   5937     virtual HRESULT STDMETHODCALLTYPE get_CurrentUpdateIndex(
   5938         LONG *retval) = 0;
   5939 
   5940     virtual HRESULT STDMETHODCALLTYPE get_CurrentUpdatePercentComplete(
   5941         LONG *retval) = 0;
   5942 
   5943     virtual HRESULT STDMETHODCALLTYPE get_PercentComplete(
   5944         LONG *retval) = 0;
   5945 
   5946     virtual HRESULT STDMETHODCALLTYPE GetUpdateResult(
   5947         LONG updateIndex,
   5948         IUpdateInstallationResult **retval) = 0;
   5949 
   5950 };
   5951 #ifdef __CRT_UUID_DECL
   5952 __CRT_UUID_DECL(IInstallationProgress, 0x345c8244, 0x43a3, 0x4e32, 0xa3,0x68, 0x65,0xf0,0x73,0xb7,0x6f,0x36)
   5953 #endif
   5954 #else
   5955 typedef struct IInstallationProgressVtbl {
   5956     BEGIN_INTERFACE
   5957 
   5958     /*** IUnknown methods ***/
   5959     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   5960         IInstallationProgress *This,
   5961         REFIID riid,
   5962         void **ppvObject);
   5963 
   5964     ULONG (STDMETHODCALLTYPE *AddRef)(
   5965         IInstallationProgress *This);
   5966 
   5967     ULONG (STDMETHODCALLTYPE *Release)(
   5968         IInstallationProgress *This);
   5969 
   5970     /*** IDispatch methods ***/
   5971     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   5972         IInstallationProgress *This,
   5973         UINT *pctinfo);
   5974 
   5975     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   5976         IInstallationProgress *This,
   5977         UINT iTInfo,
   5978         LCID lcid,
   5979         ITypeInfo **ppTInfo);
   5980 
   5981     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   5982         IInstallationProgress *This,
   5983         REFIID riid,
   5984         LPOLESTR *rgszNames,
   5985         UINT cNames,
   5986         LCID lcid,
   5987         DISPID *rgDispId);
   5988 
   5989     HRESULT (STDMETHODCALLTYPE *Invoke)(
   5990         IInstallationProgress *This,
   5991         DISPID dispIdMember,
   5992         REFIID riid,
   5993         LCID lcid,
   5994         WORD wFlags,
   5995         DISPPARAMS *pDispParams,
   5996         VARIANT *pVarResult,
   5997         EXCEPINFO *pExcepInfo,
   5998         UINT *puArgErr);
   5999 
   6000     /*** IInstallationProgress methods ***/
   6001     HRESULT (STDMETHODCALLTYPE *get_CurrentUpdateIndex)(
   6002         IInstallationProgress *This,
   6003         LONG *retval);
   6004 
   6005     HRESULT (STDMETHODCALLTYPE *get_CurrentUpdatePercentComplete)(
   6006         IInstallationProgress *This,
   6007         LONG *retval);
   6008 
   6009     HRESULT (STDMETHODCALLTYPE *get_PercentComplete)(
   6010         IInstallationProgress *This,
   6011         LONG *retval);
   6012 
   6013     HRESULT (STDMETHODCALLTYPE *GetUpdateResult)(
   6014         IInstallationProgress *This,
   6015         LONG updateIndex,
   6016         IUpdateInstallationResult **retval);
   6017 
   6018     END_INTERFACE
   6019 } IInstallationProgressVtbl;
   6020 
   6021 interface IInstallationProgress {
   6022     CONST_VTBL IInstallationProgressVtbl* lpVtbl;
   6023 };
   6024 
   6025 #ifdef COBJMACROS
   6026 #ifndef WIDL_C_INLINE_WRAPPERS
   6027 /*** IUnknown methods ***/
   6028 #define IInstallationProgress_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6029 #define IInstallationProgress_AddRef(This) (This)->lpVtbl->AddRef(This)
   6030 #define IInstallationProgress_Release(This) (This)->lpVtbl->Release(This)
   6031 /*** IDispatch methods ***/
   6032 #define IInstallationProgress_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   6033 #define IInstallationProgress_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   6034 #define IInstallationProgress_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   6035 #define IInstallationProgress_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   6036 /*** IInstallationProgress methods ***/
   6037 #define IInstallationProgress_get_CurrentUpdateIndex(This,retval) (This)->lpVtbl->get_CurrentUpdateIndex(This,retval)
   6038 #define IInstallationProgress_get_CurrentUpdatePercentComplete(This,retval) (This)->lpVtbl->get_CurrentUpdatePercentComplete(This,retval)
   6039 #define IInstallationProgress_get_PercentComplete(This,retval) (This)->lpVtbl->get_PercentComplete(This,retval)
   6040 #define IInstallationProgress_GetUpdateResult(This,updateIndex,retval) (This)->lpVtbl->GetUpdateResult(This,updateIndex,retval)
   6041 #else
   6042 /*** IUnknown methods ***/
   6043 static inline HRESULT IInstallationProgress_QueryInterface(IInstallationProgress* This,REFIID riid,void **ppvObject) {
   6044     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6045 }
   6046 static inline ULONG IInstallationProgress_AddRef(IInstallationProgress* This) {
   6047     return This->lpVtbl->AddRef(This);
   6048 }
   6049 static inline ULONG IInstallationProgress_Release(IInstallationProgress* This) {
   6050     return This->lpVtbl->Release(This);
   6051 }
   6052 /*** IDispatch methods ***/
   6053 static inline HRESULT IInstallationProgress_GetTypeInfoCount(IInstallationProgress* This,UINT *pctinfo) {
   6054     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   6055 }
   6056 static inline HRESULT IInstallationProgress_GetTypeInfo(IInstallationProgress* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   6057     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   6058 }
   6059 static inline HRESULT IInstallationProgress_GetIDsOfNames(IInstallationProgress* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   6060     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   6061 }
   6062 static inline HRESULT IInstallationProgress_Invoke(IInstallationProgress* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   6063     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   6064 }
   6065 /*** IInstallationProgress methods ***/
   6066 static inline HRESULT IInstallationProgress_get_CurrentUpdateIndex(IInstallationProgress* This,LONG *retval) {
   6067     return This->lpVtbl->get_CurrentUpdateIndex(This,retval);
   6068 }
   6069 static inline HRESULT IInstallationProgress_get_CurrentUpdatePercentComplete(IInstallationProgress* This,LONG *retval) {
   6070     return This->lpVtbl->get_CurrentUpdatePercentComplete(This,retval);
   6071 }
   6072 static inline HRESULT IInstallationProgress_get_PercentComplete(IInstallationProgress* This,LONG *retval) {
   6073     return This->lpVtbl->get_PercentComplete(This,retval);
   6074 }
   6075 static inline HRESULT IInstallationProgress_GetUpdateResult(IInstallationProgress* This,LONG updateIndex,IUpdateInstallationResult **retval) {
   6076     return This->lpVtbl->GetUpdateResult(This,updateIndex,retval);
   6077 }
   6078 #endif
   6079 #endif
   6080 
   6081 #endif
   6082 
   6083 
   6084 #endif  /* __IInstallationProgress_INTERFACE_DEFINED__ */
   6085 
   6086 /*****************************************************************************
   6087  * IInstallationJob interface
   6088  */
   6089 #ifndef __IInstallationJob_INTERFACE_DEFINED__
   6090 #define __IInstallationJob_INTERFACE_DEFINED__
   6091 
   6092 DEFINE_GUID(IID_IInstallationJob, 0x5c209f0b, 0xbad5, 0x432a, 0x95,0x56, 0x46,0x99,0xbe,0xd2,0x63,0x8a);
   6093 #if defined(__cplusplus) && !defined(CINTERFACE)
   6094 MIDL_INTERFACE("5c209f0b-bad5-432a-9556-4699bed2638a")
   6095 IInstallationJob : public IDispatch
   6096 {
   6097     virtual HRESULT STDMETHODCALLTYPE get_AsyncState(
   6098         VARIANT *retval) = 0;
   6099 
   6100     virtual HRESULT STDMETHODCALLTYPE get_IsCompleted(
   6101         VARIANT_BOOL *retval) = 0;
   6102 
   6103     virtual HRESULT STDMETHODCALLTYPE get_Updates(
   6104         IUpdateCollection **retval) = 0;
   6105 
   6106     virtual HRESULT STDMETHODCALLTYPE CleanUp(
   6107         ) = 0;
   6108 
   6109     virtual HRESULT STDMETHODCALLTYPE GetProgress(
   6110         IInstallationProgress **retval) = 0;
   6111 
   6112     virtual HRESULT STDMETHODCALLTYPE RequestAbort(
   6113         ) = 0;
   6114 
   6115 };
   6116 #ifdef __CRT_UUID_DECL
   6117 __CRT_UUID_DECL(IInstallationJob, 0x5c209f0b, 0xbad5, 0x432a, 0x95,0x56, 0x46,0x99,0xbe,0xd2,0x63,0x8a)
   6118 #endif
   6119 #else
   6120 typedef struct IInstallationJobVtbl {
   6121     BEGIN_INTERFACE
   6122 
   6123     /*** IUnknown methods ***/
   6124     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6125         IInstallationJob *This,
   6126         REFIID riid,
   6127         void **ppvObject);
   6128 
   6129     ULONG (STDMETHODCALLTYPE *AddRef)(
   6130         IInstallationJob *This);
   6131 
   6132     ULONG (STDMETHODCALLTYPE *Release)(
   6133         IInstallationJob *This);
   6134 
   6135     /*** IDispatch methods ***/
   6136     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   6137         IInstallationJob *This,
   6138         UINT *pctinfo);
   6139 
   6140     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   6141         IInstallationJob *This,
   6142         UINT iTInfo,
   6143         LCID lcid,
   6144         ITypeInfo **ppTInfo);
   6145 
   6146     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   6147         IInstallationJob *This,
   6148         REFIID riid,
   6149         LPOLESTR *rgszNames,
   6150         UINT cNames,
   6151         LCID lcid,
   6152         DISPID *rgDispId);
   6153 
   6154     HRESULT (STDMETHODCALLTYPE *Invoke)(
   6155         IInstallationJob *This,
   6156         DISPID dispIdMember,
   6157         REFIID riid,
   6158         LCID lcid,
   6159         WORD wFlags,
   6160         DISPPARAMS *pDispParams,
   6161         VARIANT *pVarResult,
   6162         EXCEPINFO *pExcepInfo,
   6163         UINT *puArgErr);
   6164 
   6165     /*** IInstallationJob methods ***/
   6166     HRESULT (STDMETHODCALLTYPE *get_AsyncState)(
   6167         IInstallationJob *This,
   6168         VARIANT *retval);
   6169 
   6170     HRESULT (STDMETHODCALLTYPE *get_IsCompleted)(
   6171         IInstallationJob *This,
   6172         VARIANT_BOOL *retval);
   6173 
   6174     HRESULT (STDMETHODCALLTYPE *get_Updates)(
   6175         IInstallationJob *This,
   6176         IUpdateCollection **retval);
   6177 
   6178     HRESULT (STDMETHODCALLTYPE *CleanUp)(
   6179         IInstallationJob *This);
   6180 
   6181     HRESULT (STDMETHODCALLTYPE *GetProgress)(
   6182         IInstallationJob *This,
   6183         IInstallationProgress **retval);
   6184 
   6185     HRESULT (STDMETHODCALLTYPE *RequestAbort)(
   6186         IInstallationJob *This);
   6187 
   6188     END_INTERFACE
   6189 } IInstallationJobVtbl;
   6190 
   6191 interface IInstallationJob {
   6192     CONST_VTBL IInstallationJobVtbl* lpVtbl;
   6193 };
   6194 
   6195 #ifdef COBJMACROS
   6196 #ifndef WIDL_C_INLINE_WRAPPERS
   6197 /*** IUnknown methods ***/
   6198 #define IInstallationJob_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6199 #define IInstallationJob_AddRef(This) (This)->lpVtbl->AddRef(This)
   6200 #define IInstallationJob_Release(This) (This)->lpVtbl->Release(This)
   6201 /*** IDispatch methods ***/
   6202 #define IInstallationJob_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   6203 #define IInstallationJob_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   6204 #define IInstallationJob_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   6205 #define IInstallationJob_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   6206 /*** IInstallationJob methods ***/
   6207 #define IInstallationJob_get_AsyncState(This,retval) (This)->lpVtbl->get_AsyncState(This,retval)
   6208 #define IInstallationJob_get_IsCompleted(This,retval) (This)->lpVtbl->get_IsCompleted(This,retval)
   6209 #define IInstallationJob_get_Updates(This,retval) (This)->lpVtbl->get_Updates(This,retval)
   6210 #define IInstallationJob_CleanUp(This) (This)->lpVtbl->CleanUp(This)
   6211 #define IInstallationJob_GetProgress(This,retval) (This)->lpVtbl->GetProgress(This,retval)
   6212 #define IInstallationJob_RequestAbort(This) (This)->lpVtbl->RequestAbort(This)
   6213 #else
   6214 /*** IUnknown methods ***/
   6215 static inline HRESULT IInstallationJob_QueryInterface(IInstallationJob* This,REFIID riid,void **ppvObject) {
   6216     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6217 }
   6218 static inline ULONG IInstallationJob_AddRef(IInstallationJob* This) {
   6219     return This->lpVtbl->AddRef(This);
   6220 }
   6221 static inline ULONG IInstallationJob_Release(IInstallationJob* This) {
   6222     return This->lpVtbl->Release(This);
   6223 }
   6224 /*** IDispatch methods ***/
   6225 static inline HRESULT IInstallationJob_GetTypeInfoCount(IInstallationJob* This,UINT *pctinfo) {
   6226     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   6227 }
   6228 static inline HRESULT IInstallationJob_GetTypeInfo(IInstallationJob* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   6229     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   6230 }
   6231 static inline HRESULT IInstallationJob_GetIDsOfNames(IInstallationJob* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   6232     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   6233 }
   6234 static inline HRESULT IInstallationJob_Invoke(IInstallationJob* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   6235     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   6236 }
   6237 /*** IInstallationJob methods ***/
   6238 static inline HRESULT IInstallationJob_get_AsyncState(IInstallationJob* This,VARIANT *retval) {
   6239     return This->lpVtbl->get_AsyncState(This,retval);
   6240 }
   6241 static inline HRESULT IInstallationJob_get_IsCompleted(IInstallationJob* This,VARIANT_BOOL *retval) {
   6242     return This->lpVtbl->get_IsCompleted(This,retval);
   6243 }
   6244 static inline HRESULT IInstallationJob_get_Updates(IInstallationJob* This,IUpdateCollection **retval) {
   6245     return This->lpVtbl->get_Updates(This,retval);
   6246 }
   6247 static inline HRESULT IInstallationJob_CleanUp(IInstallationJob* This) {
   6248     return This->lpVtbl->CleanUp(This);
   6249 }
   6250 static inline HRESULT IInstallationJob_GetProgress(IInstallationJob* This,IInstallationProgress **retval) {
   6251     return This->lpVtbl->GetProgress(This,retval);
   6252 }
   6253 static inline HRESULT IInstallationJob_RequestAbort(IInstallationJob* This) {
   6254     return This->lpVtbl->RequestAbort(This);
   6255 }
   6256 #endif
   6257 #endif
   6258 
   6259 #endif
   6260 
   6261 
   6262 #endif  /* __IInstallationJob_INTERFACE_DEFINED__ */
   6263 
   6264 /*****************************************************************************
   6265  * IInstallationResult interface
   6266  */
   6267 #ifndef __IInstallationResult_INTERFACE_DEFINED__
   6268 #define __IInstallationResult_INTERFACE_DEFINED__
   6269 
   6270 DEFINE_GUID(IID_IInstallationResult, 0xa43c56d6, 0x7451, 0x48d4, 0xaf,0x96, 0xb6,0xcd,0x2d,0x0d,0x9b,0x7a);
   6271 #if defined(__cplusplus) && !defined(CINTERFACE)
   6272 MIDL_INTERFACE("a43c56d6-7451-48d4-af96-b6cd2d0d9b7a")
   6273 IInstallationResult : public IDispatch
   6274 {
   6275     virtual HRESULT STDMETHODCALLTYPE get_HResult(
   6276         LONG *retval) = 0;
   6277 
   6278     virtual HRESULT STDMETHODCALLTYPE get_RebootRequired(
   6279         VARIANT_BOOL *retval) = 0;
   6280 
   6281     virtual HRESULT STDMETHODCALLTYPE get_ResultCode(
   6282         OperationResultCode *retval) = 0;
   6283 
   6284     virtual HRESULT STDMETHODCALLTYPE GetUpdateResult(
   6285         LONG updateIndex,
   6286         IUpdateInstallationResult **retval) = 0;
   6287 
   6288 };
   6289 #ifdef __CRT_UUID_DECL
   6290 __CRT_UUID_DECL(IInstallationResult, 0xa43c56d6, 0x7451, 0x48d4, 0xaf,0x96, 0xb6,0xcd,0x2d,0x0d,0x9b,0x7a)
   6291 #endif
   6292 #else
   6293 typedef struct IInstallationResultVtbl {
   6294     BEGIN_INTERFACE
   6295 
   6296     /*** IUnknown methods ***/
   6297     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6298         IInstallationResult *This,
   6299         REFIID riid,
   6300         void **ppvObject);
   6301 
   6302     ULONG (STDMETHODCALLTYPE *AddRef)(
   6303         IInstallationResult *This);
   6304 
   6305     ULONG (STDMETHODCALLTYPE *Release)(
   6306         IInstallationResult *This);
   6307 
   6308     /*** IDispatch methods ***/
   6309     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   6310         IInstallationResult *This,
   6311         UINT *pctinfo);
   6312 
   6313     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   6314         IInstallationResult *This,
   6315         UINT iTInfo,
   6316         LCID lcid,
   6317         ITypeInfo **ppTInfo);
   6318 
   6319     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   6320         IInstallationResult *This,
   6321         REFIID riid,
   6322         LPOLESTR *rgszNames,
   6323         UINT cNames,
   6324         LCID lcid,
   6325         DISPID *rgDispId);
   6326 
   6327     HRESULT (STDMETHODCALLTYPE *Invoke)(
   6328         IInstallationResult *This,
   6329         DISPID dispIdMember,
   6330         REFIID riid,
   6331         LCID lcid,
   6332         WORD wFlags,
   6333         DISPPARAMS *pDispParams,
   6334         VARIANT *pVarResult,
   6335         EXCEPINFO *pExcepInfo,
   6336         UINT *puArgErr);
   6337 
   6338     /*** IInstallationResult methods ***/
   6339     HRESULT (STDMETHODCALLTYPE *get_HResult)(
   6340         IInstallationResult *This,
   6341         LONG *retval);
   6342 
   6343     HRESULT (STDMETHODCALLTYPE *get_RebootRequired)(
   6344         IInstallationResult *This,
   6345         VARIANT_BOOL *retval);
   6346 
   6347     HRESULT (STDMETHODCALLTYPE *get_ResultCode)(
   6348         IInstallationResult *This,
   6349         OperationResultCode *retval);
   6350 
   6351     HRESULT (STDMETHODCALLTYPE *GetUpdateResult)(
   6352         IInstallationResult *This,
   6353         LONG updateIndex,
   6354         IUpdateInstallationResult **retval);
   6355 
   6356     END_INTERFACE
   6357 } IInstallationResultVtbl;
   6358 
   6359 interface IInstallationResult {
   6360     CONST_VTBL IInstallationResultVtbl* lpVtbl;
   6361 };
   6362 
   6363 #ifdef COBJMACROS
   6364 #ifndef WIDL_C_INLINE_WRAPPERS
   6365 /*** IUnknown methods ***/
   6366 #define IInstallationResult_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6367 #define IInstallationResult_AddRef(This) (This)->lpVtbl->AddRef(This)
   6368 #define IInstallationResult_Release(This) (This)->lpVtbl->Release(This)
   6369 /*** IDispatch methods ***/
   6370 #define IInstallationResult_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   6371 #define IInstallationResult_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   6372 #define IInstallationResult_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   6373 #define IInstallationResult_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   6374 /*** IInstallationResult methods ***/
   6375 #define IInstallationResult_get_HResult(This,retval) (This)->lpVtbl->get_HResult(This,retval)
   6376 #define IInstallationResult_get_RebootRequired(This,retval) (This)->lpVtbl->get_RebootRequired(This,retval)
   6377 #define IInstallationResult_get_ResultCode(This,retval) (This)->lpVtbl->get_ResultCode(This,retval)
   6378 #define IInstallationResult_GetUpdateResult(This,updateIndex,retval) (This)->lpVtbl->GetUpdateResult(This,updateIndex,retval)
   6379 #else
   6380 /*** IUnknown methods ***/
   6381 static inline HRESULT IInstallationResult_QueryInterface(IInstallationResult* This,REFIID riid,void **ppvObject) {
   6382     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6383 }
   6384 static inline ULONG IInstallationResult_AddRef(IInstallationResult* This) {
   6385     return This->lpVtbl->AddRef(This);
   6386 }
   6387 static inline ULONG IInstallationResult_Release(IInstallationResult* This) {
   6388     return This->lpVtbl->Release(This);
   6389 }
   6390 /*** IDispatch methods ***/
   6391 static inline HRESULT IInstallationResult_GetTypeInfoCount(IInstallationResult* This,UINT *pctinfo) {
   6392     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   6393 }
   6394 static inline HRESULT IInstallationResult_GetTypeInfo(IInstallationResult* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   6395     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   6396 }
   6397 static inline HRESULT IInstallationResult_GetIDsOfNames(IInstallationResult* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   6398     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   6399 }
   6400 static inline HRESULT IInstallationResult_Invoke(IInstallationResult* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   6401     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   6402 }
   6403 /*** IInstallationResult methods ***/
   6404 static inline HRESULT IInstallationResult_get_HResult(IInstallationResult* This,LONG *retval) {
   6405     return This->lpVtbl->get_HResult(This,retval);
   6406 }
   6407 static inline HRESULT IInstallationResult_get_RebootRequired(IInstallationResult* This,VARIANT_BOOL *retval) {
   6408     return This->lpVtbl->get_RebootRequired(This,retval);
   6409 }
   6410 static inline HRESULT IInstallationResult_get_ResultCode(IInstallationResult* This,OperationResultCode *retval) {
   6411     return This->lpVtbl->get_ResultCode(This,retval);
   6412 }
   6413 static inline HRESULT IInstallationResult_GetUpdateResult(IInstallationResult* This,LONG updateIndex,IUpdateInstallationResult **retval) {
   6414     return This->lpVtbl->GetUpdateResult(This,updateIndex,retval);
   6415 }
   6416 #endif
   6417 #endif
   6418 
   6419 #endif
   6420 
   6421 
   6422 #endif  /* __IInstallationResult_INTERFACE_DEFINED__ */
   6423 
   6424 /*****************************************************************************
   6425  * IUpdateInstaller interface
   6426  */
   6427 #ifndef __IUpdateInstaller_INTERFACE_DEFINED__
   6428 #define __IUpdateInstaller_INTERFACE_DEFINED__
   6429 
   6430 DEFINE_GUID(IID_IUpdateInstaller, 0x7b929c68, 0xccdc, 0x4226, 0x96,0xb1, 0x87,0x24,0x60,0x0b,0x54,0xc2);
   6431 #if defined(__cplusplus) && !defined(CINTERFACE)
   6432 MIDL_INTERFACE("7b929c68-ccdc-4226-96b1-8724600b54c2")
   6433 IUpdateInstaller : public IDispatch
   6434 {
   6435     virtual HRESULT STDMETHODCALLTYPE get_ClientApplicationID(
   6436         BSTR *retval) = 0;
   6437 
   6438     virtual HRESULT STDMETHODCALLTYPE put_ClientApplicationID(
   6439         BSTR value) = 0;
   6440 
   6441     virtual HRESULT STDMETHODCALLTYPE get_IsForced(
   6442         VARIANT_BOOL *retval) = 0;
   6443 
   6444     virtual HRESULT STDMETHODCALLTYPE put_IsForced(
   6445         VARIANT_BOOL value) = 0;
   6446 
   6447     virtual HRESULT STDMETHODCALLTYPE get_ParentHwnd(
   6448         HWND *retval) = 0;
   6449 
   6450     virtual HRESULT STDMETHODCALLTYPE put_ParentHwnd(
   6451         HWND value) = 0;
   6452 
   6453     virtual HRESULT STDMETHODCALLTYPE put_ParentWindow(
   6454         IUnknown *value) = 0;
   6455 
   6456     virtual HRESULT STDMETHODCALLTYPE get_ParentWindow(
   6457         IUnknown **retval) = 0;
   6458 
   6459     virtual HRESULT STDMETHODCALLTYPE get_Updates(
   6460         IUpdateCollection **retval) = 0;
   6461 
   6462     virtual HRESULT STDMETHODCALLTYPE put_Updates(
   6463         IUpdateCollection *value) = 0;
   6464 
   6465     virtual HRESULT STDMETHODCALLTYPE BeginInstall(
   6466         IUnknown *onProgressChanged,
   6467         IUnknown *onCompleted,
   6468         VARIANT state,
   6469         IInstallationJob **retval) = 0;
   6470 
   6471     virtual HRESULT STDMETHODCALLTYPE BeginUninstall(
   6472         IUnknown *onProgressChanged,
   6473         IUnknown *onCompleted,
   6474         VARIANT state,
   6475         IInstallationJob **retval) = 0;
   6476 
   6477     virtual HRESULT STDMETHODCALLTYPE EndInstall(
   6478         IInstallationJob *value,
   6479         IInstallationResult **retval) = 0;
   6480 
   6481     virtual HRESULT STDMETHODCALLTYPE EndUninstall(
   6482         IInstallationJob *value,
   6483         IInstallationResult **retval) = 0;
   6484 
   6485     virtual HRESULT STDMETHODCALLTYPE Install(
   6486         IInstallationResult **retval) = 0;
   6487 
   6488     virtual HRESULT STDMETHODCALLTYPE RunWizard(
   6489         BSTR dialogTitle,
   6490         IInstallationResult **retval) = 0;
   6491 
   6492     virtual HRESULT STDMETHODCALLTYPE get_IsBusy(
   6493         VARIANT_BOOL *retval) = 0;
   6494 
   6495     virtual HRESULT STDMETHODCALLTYPE Uninstall(
   6496         IInstallationResult **retval) = 0;
   6497 
   6498     virtual HRESULT STDMETHODCALLTYPE get_AllowSourcePrompts(
   6499         VARIANT_BOOL *retval) = 0;
   6500 
   6501     virtual HRESULT STDMETHODCALLTYPE put_AllowSourcePrompts(
   6502         VARIANT_BOOL value) = 0;
   6503 
   6504     virtual HRESULT STDMETHODCALLTYPE get_RebootRequiredBeforeInstallation(
   6505         VARIANT_BOOL *retval) = 0;
   6506 
   6507 };
   6508 #ifdef __CRT_UUID_DECL
   6509 __CRT_UUID_DECL(IUpdateInstaller, 0x7b929c68, 0xccdc, 0x4226, 0x96,0xb1, 0x87,0x24,0x60,0x0b,0x54,0xc2)
   6510 #endif
   6511 #else
   6512 typedef struct IUpdateInstallerVtbl {
   6513     BEGIN_INTERFACE
   6514 
   6515     /*** IUnknown methods ***/
   6516     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6517         IUpdateInstaller *This,
   6518         REFIID riid,
   6519         void **ppvObject);
   6520 
   6521     ULONG (STDMETHODCALLTYPE *AddRef)(
   6522         IUpdateInstaller *This);
   6523 
   6524     ULONG (STDMETHODCALLTYPE *Release)(
   6525         IUpdateInstaller *This);
   6526 
   6527     /*** IDispatch methods ***/
   6528     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   6529         IUpdateInstaller *This,
   6530         UINT *pctinfo);
   6531 
   6532     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   6533         IUpdateInstaller *This,
   6534         UINT iTInfo,
   6535         LCID lcid,
   6536         ITypeInfo **ppTInfo);
   6537 
   6538     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   6539         IUpdateInstaller *This,
   6540         REFIID riid,
   6541         LPOLESTR *rgszNames,
   6542         UINT cNames,
   6543         LCID lcid,
   6544         DISPID *rgDispId);
   6545 
   6546     HRESULT (STDMETHODCALLTYPE *Invoke)(
   6547         IUpdateInstaller *This,
   6548         DISPID dispIdMember,
   6549         REFIID riid,
   6550         LCID lcid,
   6551         WORD wFlags,
   6552         DISPPARAMS *pDispParams,
   6553         VARIANT *pVarResult,
   6554         EXCEPINFO *pExcepInfo,
   6555         UINT *puArgErr);
   6556 
   6557     /*** IUpdateInstaller methods ***/
   6558     HRESULT (STDMETHODCALLTYPE *get_ClientApplicationID)(
   6559         IUpdateInstaller *This,
   6560         BSTR *retval);
   6561 
   6562     HRESULT (STDMETHODCALLTYPE *put_ClientApplicationID)(
   6563         IUpdateInstaller *This,
   6564         BSTR value);
   6565 
   6566     HRESULT (STDMETHODCALLTYPE *get_IsForced)(
   6567         IUpdateInstaller *This,
   6568         VARIANT_BOOL *retval);
   6569 
   6570     HRESULT (STDMETHODCALLTYPE *put_IsForced)(
   6571         IUpdateInstaller *This,
   6572         VARIANT_BOOL value);
   6573 
   6574     HRESULT (STDMETHODCALLTYPE *get_ParentHwnd)(
   6575         IUpdateInstaller *This,
   6576         HWND *retval);
   6577 
   6578     HRESULT (STDMETHODCALLTYPE *put_ParentHwnd)(
   6579         IUpdateInstaller *This,
   6580         HWND value);
   6581 
   6582     HRESULT (STDMETHODCALLTYPE *put_ParentWindow)(
   6583         IUpdateInstaller *This,
   6584         IUnknown *value);
   6585 
   6586     HRESULT (STDMETHODCALLTYPE *get_ParentWindow)(
   6587         IUpdateInstaller *This,
   6588         IUnknown **retval);
   6589 
   6590     HRESULT (STDMETHODCALLTYPE *get_Updates)(
   6591         IUpdateInstaller *This,
   6592         IUpdateCollection **retval);
   6593 
   6594     HRESULT (STDMETHODCALLTYPE *put_Updates)(
   6595         IUpdateInstaller *This,
   6596         IUpdateCollection *value);
   6597 
   6598     HRESULT (STDMETHODCALLTYPE *BeginInstall)(
   6599         IUpdateInstaller *This,
   6600         IUnknown *onProgressChanged,
   6601         IUnknown *onCompleted,
   6602         VARIANT state,
   6603         IInstallationJob **retval);
   6604 
   6605     HRESULT (STDMETHODCALLTYPE *BeginUninstall)(
   6606         IUpdateInstaller *This,
   6607         IUnknown *onProgressChanged,
   6608         IUnknown *onCompleted,
   6609         VARIANT state,
   6610         IInstallationJob **retval);
   6611 
   6612     HRESULT (STDMETHODCALLTYPE *EndInstall)(
   6613         IUpdateInstaller *This,
   6614         IInstallationJob *value,
   6615         IInstallationResult **retval);
   6616 
   6617     HRESULT (STDMETHODCALLTYPE *EndUninstall)(
   6618         IUpdateInstaller *This,
   6619         IInstallationJob *value,
   6620         IInstallationResult **retval);
   6621 
   6622     HRESULT (STDMETHODCALLTYPE *Install)(
   6623         IUpdateInstaller *This,
   6624         IInstallationResult **retval);
   6625 
   6626     HRESULT (STDMETHODCALLTYPE *RunWizard)(
   6627         IUpdateInstaller *This,
   6628         BSTR dialogTitle,
   6629         IInstallationResult **retval);
   6630 
   6631     HRESULT (STDMETHODCALLTYPE *get_IsBusy)(
   6632         IUpdateInstaller *This,
   6633         VARIANT_BOOL *retval);
   6634 
   6635     HRESULT (STDMETHODCALLTYPE *Uninstall)(
   6636         IUpdateInstaller *This,
   6637         IInstallationResult **retval);
   6638 
   6639     HRESULT (STDMETHODCALLTYPE *get_AllowSourcePrompts)(
   6640         IUpdateInstaller *This,
   6641         VARIANT_BOOL *retval);
   6642 
   6643     HRESULT (STDMETHODCALLTYPE *put_AllowSourcePrompts)(
   6644         IUpdateInstaller *This,
   6645         VARIANT_BOOL value);
   6646 
   6647     HRESULT (STDMETHODCALLTYPE *get_RebootRequiredBeforeInstallation)(
   6648         IUpdateInstaller *This,
   6649         VARIANT_BOOL *retval);
   6650 
   6651     END_INTERFACE
   6652 } IUpdateInstallerVtbl;
   6653 
   6654 interface IUpdateInstaller {
   6655     CONST_VTBL IUpdateInstallerVtbl* lpVtbl;
   6656 };
   6657 
   6658 #ifdef COBJMACROS
   6659 #ifndef WIDL_C_INLINE_WRAPPERS
   6660 /*** IUnknown methods ***/
   6661 #define IUpdateInstaller_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6662 #define IUpdateInstaller_AddRef(This) (This)->lpVtbl->AddRef(This)
   6663 #define IUpdateInstaller_Release(This) (This)->lpVtbl->Release(This)
   6664 /*** IDispatch methods ***/
   6665 #define IUpdateInstaller_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   6666 #define IUpdateInstaller_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   6667 #define IUpdateInstaller_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   6668 #define IUpdateInstaller_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   6669 /*** IUpdateInstaller methods ***/
   6670 #define IUpdateInstaller_get_ClientApplicationID(This,retval) (This)->lpVtbl->get_ClientApplicationID(This,retval)
   6671 #define IUpdateInstaller_put_ClientApplicationID(This,value) (This)->lpVtbl->put_ClientApplicationID(This,value)
   6672 #define IUpdateInstaller_get_IsForced(This,retval) (This)->lpVtbl->get_IsForced(This,retval)
   6673 #define IUpdateInstaller_put_IsForced(This,value) (This)->lpVtbl->put_IsForced(This,value)
   6674 #define IUpdateInstaller_get_ParentHwnd(This,retval) (This)->lpVtbl->get_ParentHwnd(This,retval)
   6675 #define IUpdateInstaller_put_ParentHwnd(This,value) (This)->lpVtbl->put_ParentHwnd(This,value)
   6676 #define IUpdateInstaller_put_ParentWindow(This,value) (This)->lpVtbl->put_ParentWindow(This,value)
   6677 #define IUpdateInstaller_get_ParentWindow(This,retval) (This)->lpVtbl->get_ParentWindow(This,retval)
   6678 #define IUpdateInstaller_get_Updates(This,retval) (This)->lpVtbl->get_Updates(This,retval)
   6679 #define IUpdateInstaller_put_Updates(This,value) (This)->lpVtbl->put_Updates(This,value)
   6680 #define IUpdateInstaller_BeginInstall(This,onProgressChanged,onCompleted,state,retval) (This)->lpVtbl->BeginInstall(This,onProgressChanged,onCompleted,state,retval)
   6681 #define IUpdateInstaller_BeginUninstall(This,onProgressChanged,onCompleted,state,retval) (This)->lpVtbl->BeginUninstall(This,onProgressChanged,onCompleted,state,retval)
   6682 #define IUpdateInstaller_EndInstall(This,value,retval) (This)->lpVtbl->EndInstall(This,value,retval)
   6683 #define IUpdateInstaller_EndUninstall(This,value,retval) (This)->lpVtbl->EndUninstall(This,value,retval)
   6684 #define IUpdateInstaller_Install(This,retval) (This)->lpVtbl->Install(This,retval)
   6685 #define IUpdateInstaller_RunWizard(This,dialogTitle,retval) (This)->lpVtbl->RunWizard(This,dialogTitle,retval)
   6686 #define IUpdateInstaller_get_IsBusy(This,retval) (This)->lpVtbl->get_IsBusy(This,retval)
   6687 #define IUpdateInstaller_Uninstall(This,retval) (This)->lpVtbl->Uninstall(This,retval)
   6688 #define IUpdateInstaller_get_AllowSourcePrompts(This,retval) (This)->lpVtbl->get_AllowSourcePrompts(This,retval)
   6689 #define IUpdateInstaller_put_AllowSourcePrompts(This,value) (This)->lpVtbl->put_AllowSourcePrompts(This,value)
   6690 #define IUpdateInstaller_get_RebootRequiredBeforeInstallation(This,retval) (This)->lpVtbl->get_RebootRequiredBeforeInstallation(This,retval)
   6691 #else
   6692 /*** IUnknown methods ***/
   6693 static inline HRESULT IUpdateInstaller_QueryInterface(IUpdateInstaller* This,REFIID riid,void **ppvObject) {
   6694     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6695 }
   6696 static inline ULONG IUpdateInstaller_AddRef(IUpdateInstaller* This) {
   6697     return This->lpVtbl->AddRef(This);
   6698 }
   6699 static inline ULONG IUpdateInstaller_Release(IUpdateInstaller* This) {
   6700     return This->lpVtbl->Release(This);
   6701 }
   6702 /*** IDispatch methods ***/
   6703 static inline HRESULT IUpdateInstaller_GetTypeInfoCount(IUpdateInstaller* This,UINT *pctinfo) {
   6704     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   6705 }
   6706 static inline HRESULT IUpdateInstaller_GetTypeInfo(IUpdateInstaller* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   6707     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   6708 }
   6709 static inline HRESULT IUpdateInstaller_GetIDsOfNames(IUpdateInstaller* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   6710     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   6711 }
   6712 static inline HRESULT IUpdateInstaller_Invoke(IUpdateInstaller* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   6713     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   6714 }
   6715 /*** IUpdateInstaller methods ***/
   6716 static inline HRESULT IUpdateInstaller_get_ClientApplicationID(IUpdateInstaller* This,BSTR *retval) {
   6717     return This->lpVtbl->get_ClientApplicationID(This,retval);
   6718 }
   6719 static inline HRESULT IUpdateInstaller_put_ClientApplicationID(IUpdateInstaller* This,BSTR value) {
   6720     return This->lpVtbl->put_ClientApplicationID(This,value);
   6721 }
   6722 static inline HRESULT IUpdateInstaller_get_IsForced(IUpdateInstaller* This,VARIANT_BOOL *retval) {
   6723     return This->lpVtbl->get_IsForced(This,retval);
   6724 }
   6725 static inline HRESULT IUpdateInstaller_put_IsForced(IUpdateInstaller* This,VARIANT_BOOL value) {
   6726     return This->lpVtbl->put_IsForced(This,value);
   6727 }
   6728 static inline HRESULT IUpdateInstaller_get_ParentHwnd(IUpdateInstaller* This,HWND *retval) {
   6729     return This->lpVtbl->get_ParentHwnd(This,retval);
   6730 }
   6731 static inline HRESULT IUpdateInstaller_put_ParentHwnd(IUpdateInstaller* This,HWND value) {
   6732     return This->lpVtbl->put_ParentHwnd(This,value);
   6733 }
   6734 static inline HRESULT IUpdateInstaller_put_ParentWindow(IUpdateInstaller* This,IUnknown *value) {
   6735     return This->lpVtbl->put_ParentWindow(This,value);
   6736 }
   6737 static inline HRESULT IUpdateInstaller_get_ParentWindow(IUpdateInstaller* This,IUnknown **retval) {
   6738     return This->lpVtbl->get_ParentWindow(This,retval);
   6739 }
   6740 static inline HRESULT IUpdateInstaller_get_Updates(IUpdateInstaller* This,IUpdateCollection **retval) {
   6741     return This->lpVtbl->get_Updates(This,retval);
   6742 }
   6743 static inline HRESULT IUpdateInstaller_put_Updates(IUpdateInstaller* This,IUpdateCollection *value) {
   6744     return This->lpVtbl->put_Updates(This,value);
   6745 }
   6746 static inline HRESULT IUpdateInstaller_BeginInstall(IUpdateInstaller* This,IUnknown *onProgressChanged,IUnknown *onCompleted,VARIANT state,IInstallationJob **retval) {
   6747     return This->lpVtbl->BeginInstall(This,onProgressChanged,onCompleted,state,retval);
   6748 }
   6749 static inline HRESULT IUpdateInstaller_BeginUninstall(IUpdateInstaller* This,IUnknown *onProgressChanged,IUnknown *onCompleted,VARIANT state,IInstallationJob **retval) {
   6750     return This->lpVtbl->BeginUninstall(This,onProgressChanged,onCompleted,state,retval);
   6751 }
   6752 static inline HRESULT IUpdateInstaller_EndInstall(IUpdateInstaller* This,IInstallationJob *value,IInstallationResult **retval) {
   6753     return This->lpVtbl->EndInstall(This,value,retval);
   6754 }
   6755 static inline HRESULT IUpdateInstaller_EndUninstall(IUpdateInstaller* This,IInstallationJob *value,IInstallationResult **retval) {
   6756     return This->lpVtbl->EndUninstall(This,value,retval);
   6757 }
   6758 static inline HRESULT IUpdateInstaller_Install(IUpdateInstaller* This,IInstallationResult **retval) {
   6759     return This->lpVtbl->Install(This,retval);
   6760 }
   6761 static inline HRESULT IUpdateInstaller_RunWizard(IUpdateInstaller* This,BSTR dialogTitle,IInstallationResult **retval) {
   6762     return This->lpVtbl->RunWizard(This,dialogTitle,retval);
   6763 }
   6764 static inline HRESULT IUpdateInstaller_get_IsBusy(IUpdateInstaller* This,VARIANT_BOOL *retval) {
   6765     return This->lpVtbl->get_IsBusy(This,retval);
   6766 }
   6767 static inline HRESULT IUpdateInstaller_Uninstall(IUpdateInstaller* This,IInstallationResult **retval) {
   6768     return This->lpVtbl->Uninstall(This,retval);
   6769 }
   6770 static inline HRESULT IUpdateInstaller_get_AllowSourcePrompts(IUpdateInstaller* This,VARIANT_BOOL *retval) {
   6771     return This->lpVtbl->get_AllowSourcePrompts(This,retval);
   6772 }
   6773 static inline HRESULT IUpdateInstaller_put_AllowSourcePrompts(IUpdateInstaller* This,VARIANT_BOOL value) {
   6774     return This->lpVtbl->put_AllowSourcePrompts(This,value);
   6775 }
   6776 static inline HRESULT IUpdateInstaller_get_RebootRequiredBeforeInstallation(IUpdateInstaller* This,VARIANT_BOOL *retval) {
   6777     return This->lpVtbl->get_RebootRequiredBeforeInstallation(This,retval);
   6778 }
   6779 #endif
   6780 #endif
   6781 
   6782 #endif
   6783 
   6784 
   6785 #endif  /* __IUpdateInstaller_INTERFACE_DEFINED__ */
   6786 
   6787 /*****************************************************************************
   6788  * ISystemInformation interface
   6789  */
   6790 #ifndef __ISystemInformation_INTERFACE_DEFINED__
   6791 #define __ISystemInformation_INTERFACE_DEFINED__
   6792 
   6793 DEFINE_GUID(IID_ISystemInformation, 0xade87bf7, 0x7b56, 0x4275, 0x8f,0xab, 0xb9,0xb0,0xe5,0x91,0x84,0x4b);
   6794 #if defined(__cplusplus) && !defined(CINTERFACE)
   6795 MIDL_INTERFACE("ade87bf7-7b56-4275-8fab-b9b0e591844b")
   6796 ISystemInformation : public IDispatch
   6797 {
   6798     virtual HRESULT STDMETHODCALLTYPE get_OemHardwareSupportLink(
   6799         BSTR *retval) = 0;
   6800 
   6801     virtual HRESULT STDMETHODCALLTYPE get_RebootRequired(
   6802         VARIANT_BOOL *retval) = 0;
   6803 
   6804 };
   6805 #ifdef __CRT_UUID_DECL
   6806 __CRT_UUID_DECL(ISystemInformation, 0xade87bf7, 0x7b56, 0x4275, 0x8f,0xab, 0xb9,0xb0,0xe5,0x91,0x84,0x4b)
   6807 #endif
   6808 #else
   6809 typedef struct ISystemInformationVtbl {
   6810     BEGIN_INTERFACE
   6811 
   6812     /*** IUnknown methods ***/
   6813     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6814         ISystemInformation *This,
   6815         REFIID riid,
   6816         void **ppvObject);
   6817 
   6818     ULONG (STDMETHODCALLTYPE *AddRef)(
   6819         ISystemInformation *This);
   6820 
   6821     ULONG (STDMETHODCALLTYPE *Release)(
   6822         ISystemInformation *This);
   6823 
   6824     /*** IDispatch methods ***/
   6825     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   6826         ISystemInformation *This,
   6827         UINT *pctinfo);
   6828 
   6829     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   6830         ISystemInformation *This,
   6831         UINT iTInfo,
   6832         LCID lcid,
   6833         ITypeInfo **ppTInfo);
   6834 
   6835     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   6836         ISystemInformation *This,
   6837         REFIID riid,
   6838         LPOLESTR *rgszNames,
   6839         UINT cNames,
   6840         LCID lcid,
   6841         DISPID *rgDispId);
   6842 
   6843     HRESULT (STDMETHODCALLTYPE *Invoke)(
   6844         ISystemInformation *This,
   6845         DISPID dispIdMember,
   6846         REFIID riid,
   6847         LCID lcid,
   6848         WORD wFlags,
   6849         DISPPARAMS *pDispParams,
   6850         VARIANT *pVarResult,
   6851         EXCEPINFO *pExcepInfo,
   6852         UINT *puArgErr);
   6853 
   6854     /*** ISystemInformation methods ***/
   6855     HRESULT (STDMETHODCALLTYPE *get_OemHardwareSupportLink)(
   6856         ISystemInformation *This,
   6857         BSTR *retval);
   6858 
   6859     HRESULT (STDMETHODCALLTYPE *get_RebootRequired)(
   6860         ISystemInformation *This,
   6861         VARIANT_BOOL *retval);
   6862 
   6863     END_INTERFACE
   6864 } ISystemInformationVtbl;
   6865 
   6866 interface ISystemInformation {
   6867     CONST_VTBL ISystemInformationVtbl* lpVtbl;
   6868 };
   6869 
   6870 #ifdef COBJMACROS
   6871 #ifndef WIDL_C_INLINE_WRAPPERS
   6872 /*** IUnknown methods ***/
   6873 #define ISystemInformation_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   6874 #define ISystemInformation_AddRef(This) (This)->lpVtbl->AddRef(This)
   6875 #define ISystemInformation_Release(This) (This)->lpVtbl->Release(This)
   6876 /*** IDispatch methods ***/
   6877 #define ISystemInformation_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   6878 #define ISystemInformation_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   6879 #define ISystemInformation_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   6880 #define ISystemInformation_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   6881 /*** ISystemInformation methods ***/
   6882 #define ISystemInformation_get_OemHardwareSupportLink(This,retval) (This)->lpVtbl->get_OemHardwareSupportLink(This,retval)
   6883 #define ISystemInformation_get_RebootRequired(This,retval) (This)->lpVtbl->get_RebootRequired(This,retval)
   6884 #else
   6885 /*** IUnknown methods ***/
   6886 static inline HRESULT ISystemInformation_QueryInterface(ISystemInformation* This,REFIID riid,void **ppvObject) {
   6887     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   6888 }
   6889 static inline ULONG ISystemInformation_AddRef(ISystemInformation* This) {
   6890     return This->lpVtbl->AddRef(This);
   6891 }
   6892 static inline ULONG ISystemInformation_Release(ISystemInformation* This) {
   6893     return This->lpVtbl->Release(This);
   6894 }
   6895 /*** IDispatch methods ***/
   6896 static inline HRESULT ISystemInformation_GetTypeInfoCount(ISystemInformation* This,UINT *pctinfo) {
   6897     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   6898 }
   6899 static inline HRESULT ISystemInformation_GetTypeInfo(ISystemInformation* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   6900     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   6901 }
   6902 static inline HRESULT ISystemInformation_GetIDsOfNames(ISystemInformation* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   6903     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   6904 }
   6905 static inline HRESULT ISystemInformation_Invoke(ISystemInformation* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   6906     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   6907 }
   6908 /*** ISystemInformation methods ***/
   6909 static inline HRESULT ISystemInformation_get_OemHardwareSupportLink(ISystemInformation* This,BSTR *retval) {
   6910     return This->lpVtbl->get_OemHardwareSupportLink(This,retval);
   6911 }
   6912 static inline HRESULT ISystemInformation_get_RebootRequired(ISystemInformation* This,VARIANT_BOOL *retval) {
   6913     return This->lpVtbl->get_RebootRequired(This,retval);
   6914 }
   6915 #endif
   6916 #endif
   6917 
   6918 #endif
   6919 
   6920 
   6921 #endif  /* __ISystemInformation_INTERFACE_DEFINED__ */
   6922 
   6923 /*****************************************************************************
   6924  * IWindowsUpdateAgentInfo interface
   6925  */
   6926 #ifndef __IWindowsUpdateAgentInfo_INTERFACE_DEFINED__
   6927 #define __IWindowsUpdateAgentInfo_INTERFACE_DEFINED__
   6928 
   6929 DEFINE_GUID(IID_IWindowsUpdateAgentInfo, 0x85713fa1, 0x7796, 0x4fa2, 0xbe,0x3b, 0xe2,0xd6,0x12,0x4d,0xd3,0x73);
   6930 #if defined(__cplusplus) && !defined(CINTERFACE)
   6931 MIDL_INTERFACE("85713fa1-7796-4fa2-be3b-e2d6124dd373")
   6932 IWindowsUpdateAgentInfo : public IDispatch
   6933 {
   6934     virtual HRESULT STDMETHODCALLTYPE GetInfo(
   6935         VARIANT varInfoIdentifier,
   6936         VARIANT *retval) = 0;
   6937 
   6938 };
   6939 #ifdef __CRT_UUID_DECL
   6940 __CRT_UUID_DECL(IWindowsUpdateAgentInfo, 0x85713fa1, 0x7796, 0x4fa2, 0xbe,0x3b, 0xe2,0xd6,0x12,0x4d,0xd3,0x73)
   6941 #endif
   6942 #else
   6943 typedef struct IWindowsUpdateAgentInfoVtbl {
   6944     BEGIN_INTERFACE
   6945 
   6946     /*** IUnknown methods ***/
   6947     HRESULT (STDMETHODCALLTYPE *QueryInterface)(
   6948         IWindowsUpdateAgentInfo *This,
   6949         REFIID riid,
   6950         void **ppvObject);
   6951 
   6952     ULONG (STDMETHODCALLTYPE *AddRef)(
   6953         IWindowsUpdateAgentInfo *This);
   6954 
   6955     ULONG (STDMETHODCALLTYPE *Release)(
   6956         IWindowsUpdateAgentInfo *This);
   6957 
   6958     /*** IDispatch methods ***/
   6959     HRESULT (STDMETHODCALLTYPE *GetTypeInfoCount)(
   6960         IWindowsUpdateAgentInfo *This,
   6961         UINT *pctinfo);
   6962 
   6963     HRESULT (STDMETHODCALLTYPE *GetTypeInfo)(
   6964         IWindowsUpdateAgentInfo *This,
   6965         UINT iTInfo,
   6966         LCID lcid,
   6967         ITypeInfo **ppTInfo);
   6968 
   6969     HRESULT (STDMETHODCALLTYPE *GetIDsOfNames)(
   6970         IWindowsUpdateAgentInfo *This,
   6971         REFIID riid,
   6972         LPOLESTR *rgszNames,
   6973         UINT cNames,
   6974         LCID lcid,
   6975         DISPID *rgDispId);
   6976 
   6977     HRESULT (STDMETHODCALLTYPE *Invoke)(
   6978         IWindowsUpdateAgentInfo *This,
   6979         DISPID dispIdMember,
   6980         REFIID riid,
   6981         LCID lcid,
   6982         WORD wFlags,
   6983         DISPPARAMS *pDispParams,
   6984         VARIANT *pVarResult,
   6985         EXCEPINFO *pExcepInfo,
   6986         UINT *puArgErr);
   6987 
   6988     /*** IWindowsUpdateAgentInfo methods ***/
   6989     HRESULT (STDMETHODCALLTYPE *GetInfo)(
   6990         IWindowsUpdateAgentInfo *This,
   6991         VARIANT varInfoIdentifier,
   6992         VARIANT *retval);
   6993 
   6994     END_INTERFACE
   6995 } IWindowsUpdateAgentInfoVtbl;
   6996 
   6997 interface IWindowsUpdateAgentInfo {
   6998     CONST_VTBL IWindowsUpdateAgentInfoVtbl* lpVtbl;
   6999 };
   7000 
   7001 #ifdef COBJMACROS
   7002 #ifndef WIDL_C_INLINE_WRAPPERS
   7003 /*** IUnknown methods ***/
   7004 #define IWindowsUpdateAgentInfo_QueryInterface(This,riid,ppvObject) (This)->lpVtbl->QueryInterface(This,riid,ppvObject)
   7005 #define IWindowsUpdateAgentInfo_AddRef(This) (This)->lpVtbl->AddRef(This)
   7006 #define IWindowsUpdateAgentInfo_Release(This) (This)->lpVtbl->Release(This)
   7007 /*** IDispatch methods ***/
   7008 #define IWindowsUpdateAgentInfo_GetTypeInfoCount(This,pctinfo) (This)->lpVtbl->GetTypeInfoCount(This,pctinfo)
   7009 #define IWindowsUpdateAgentInfo_GetTypeInfo(This,iTInfo,lcid,ppTInfo) (This)->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo)
   7010 #define IWindowsUpdateAgentInfo_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) (This)->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId)
   7011 #define IWindowsUpdateAgentInfo_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) (This)->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr)
   7012 /*** IWindowsUpdateAgentInfo methods ***/
   7013 #define IWindowsUpdateAgentInfo_GetInfo(This,varInfoIdentifier,retval) (This)->lpVtbl->GetInfo(This,varInfoIdentifier,retval)
   7014 #else
   7015 /*** IUnknown methods ***/
   7016 static inline HRESULT IWindowsUpdateAgentInfo_QueryInterface(IWindowsUpdateAgentInfo* This,REFIID riid,void **ppvObject) {
   7017     return This->lpVtbl->QueryInterface(This,riid,ppvObject);
   7018 }
   7019 static inline ULONG IWindowsUpdateAgentInfo_AddRef(IWindowsUpdateAgentInfo* This) {
   7020     return This->lpVtbl->AddRef(This);
   7021 }
   7022 static inline ULONG IWindowsUpdateAgentInfo_Release(IWindowsUpdateAgentInfo* This) {
   7023     return This->lpVtbl->Release(This);
   7024 }
   7025 /*** IDispatch methods ***/
   7026 static inline HRESULT IWindowsUpdateAgentInfo_GetTypeInfoCount(IWindowsUpdateAgentInfo* This,UINT *pctinfo) {
   7027     return This->lpVtbl->GetTypeInfoCount(This,pctinfo);
   7028 }
   7029 static inline HRESULT IWindowsUpdateAgentInfo_GetTypeInfo(IWindowsUpdateAgentInfo* This,UINT iTInfo,LCID lcid,ITypeInfo **ppTInfo) {
   7030     return This->lpVtbl->GetTypeInfo(This,iTInfo,lcid,ppTInfo);
   7031 }
   7032 static inline HRESULT IWindowsUpdateAgentInfo_GetIDsOfNames(IWindowsUpdateAgentInfo* This,REFIID riid,LPOLESTR *rgszNames,UINT cNames,LCID lcid,DISPID *rgDispId) {
   7033     return This->lpVtbl->GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId);
   7034 }
   7035 static inline HRESULT IWindowsUpdateAgentInfo_Invoke(IWindowsUpdateAgentInfo* This,DISPID dispIdMember,REFIID riid,LCID lcid,WORD wFlags,DISPPARAMS *pDispParams,VARIANT *pVarResult,EXCEPINFO *pExcepInfo,UINT *puArgErr) {
   7036     return This->lpVtbl->Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr);
   7037 }
   7038 /*** IWindowsUpdateAgentInfo methods ***/
   7039 static inline HRESULT IWindowsUpdateAgentInfo_GetInfo(IWindowsUpdateAgentInfo* This,VARIANT varInfoIdentifier,VARIANT *retval) {
   7040     return This->lpVtbl->GetInfo(This,varInfoIdentifier,retval);
   7041 }
   7042 #endif
   7043 #endif
   7044 
   7045 #endif
   7046 
   7047 
   7048 #endif  /* __IWindowsUpdateAgentInfo_INTERFACE_DEFINED__ */
   7049 
   7050 /*****************************************************************************
   7051  * AutomaticUpdates coclass
   7052  */
   7053 
   7054 DEFINE_GUID(CLSID_AutomaticUpdates, 0xbfe18e9c, 0x6d87, 0x4450, 0xb3,0x7c, 0xe0,0x2f,0x0b,0x37,0x38,0x03);
   7055 
   7056 #ifdef __cplusplus
   7057 class DECLSPEC_UUID("bfe18e9c-6d87-4450-b37c-e02f0b373803") AutomaticUpdates;
   7058 #ifdef __CRT_UUID_DECL
   7059 __CRT_UUID_DECL(AutomaticUpdates, 0xbfe18e9c, 0x6d87, 0x4450, 0xb3,0x7c, 0xe0,0x2f,0x0b,0x37,0x38,0x03)
   7060 #endif
   7061 #endif
   7062 
   7063 /*****************************************************************************
   7064  * UpdateInstaller coclass
   7065  */
   7066 
   7067 DEFINE_GUID(CLSID_UpdateInstaller, 0xd2e0fe7f, 0xd23e, 0x48e1, 0x93,0xc0, 0x6f,0xa8,0xcc,0x34,0x64,0x74);
   7068 
   7069 #ifdef __cplusplus
   7070 class DECLSPEC_UUID("d2e0fe7f-d23e-48e1-93c0-6fa8cc346474") UpdateInstaller;
   7071 #ifdef __CRT_UUID_DECL
   7072 __CRT_UUID_DECL(UpdateInstaller, 0xd2e0fe7f, 0xd23e, 0x48e1, 0x93,0xc0, 0x6f,0xa8,0xcc,0x34,0x64,0x74)
   7073 #endif
   7074 #endif
   7075 
   7076 /*****************************************************************************
   7077  * UpdateSession coclass
   7078  */
   7079 
   7080 DEFINE_GUID(CLSID_UpdateSession, 0x4cb43d7f, 0x7eee, 0x4906, 0x86,0x98, 0x60,0xda,0x1c,0x38,0xf2,0xfe);
   7081 
   7082 #ifdef __cplusplus
   7083 class DECLSPEC_UUID("4cb43d7f-7eee-4906-8698-60da1c38f2fe") UpdateSession;
   7084 #ifdef __CRT_UUID_DECL
   7085 __CRT_UUID_DECL(UpdateSession, 0x4cb43d7f, 0x7eee, 0x4906, 0x86,0x98, 0x60,0xda,0x1c,0x38,0xf2,0xfe)
   7086 #endif
   7087 #endif
   7088 
   7089 /*****************************************************************************
   7090  * SystemInformation coclass
   7091  */
   7092 
   7093 DEFINE_GUID(CLSID_SystemInformation, 0xc01b9ba0, 0xbea7, 0x41ba, 0xb6,0x04, 0xd0,0xa3,0x6f,0x46,0x91,0x33);
   7094 
   7095 #ifdef __cplusplus
   7096 class DECLSPEC_UUID("c01b9ba0-bea7-41ba-b604-d0a36f469133") SystemInformation;
   7097 #ifdef __CRT_UUID_DECL
   7098 __CRT_UUID_DECL(SystemInformation, 0xc01b9ba0, 0xbea7, 0x41ba, 0xb6,0x04, 0xd0,0xa3,0x6f,0x46,0x91,0x33)
   7099 #endif
   7100 #endif
   7101 
   7102 /*****************************************************************************
   7103  * WindowsUpdateAgentInfo coclass
   7104  */
   7105 
   7106 DEFINE_GUID(CLSID_WindowsUpdateAgentInfo, 0xc2e88c2f, 0x6f5b, 0x4aaa, 0x89,0x4b, 0x55,0xc8,0x47,0xad,0x3a,0x2d);
   7107 
   7108 #ifdef __cplusplus
   7109 class DECLSPEC_UUID("c2e88c2f-6f5b-4aaa-894b-55c847ad3a2d") WindowsUpdateAgentInfo;
   7110 #ifdef __CRT_UUID_DECL
   7111 __CRT_UUID_DECL(WindowsUpdateAgentInfo, 0xc2e88c2f, 0x6f5b, 0x4aaa, 0x89,0x4b, 0x55,0xc8,0x47,0xad,0x3a,0x2d)
   7112 #endif
   7113 #endif
   7114 
   7115 #endif /* __WUApiLib_LIBRARY_DEFINED__ */
   7116 /* Begin additional prototypes for all interfaces */
   7117 
   7118 ULONG           __RPC_USER BSTR_UserSize     (ULONG *, ULONG, BSTR *);
   7119 unsigned char * __RPC_USER BSTR_UserMarshal  (ULONG *, unsigned char *, BSTR *);
   7120 unsigned char * __RPC_USER BSTR_UserUnmarshal(ULONG *, unsigned char *, BSTR *);
   7121 void            __RPC_USER BSTR_UserFree     (ULONG *, BSTR *);
   7122 ULONG           __RPC_USER HWND_UserSize     (ULONG *, ULONG, HWND *);
   7123 unsigned char * __RPC_USER HWND_UserMarshal  (ULONG *, unsigned char *, HWND *);
   7124 unsigned char * __RPC_USER HWND_UserUnmarshal(ULONG *, unsigned char *, HWND *);
   7125 void            __RPC_USER HWND_UserFree     (ULONG *, HWND *);
   7126 ULONG           __RPC_USER VARIANT_UserSize     (ULONG *, ULONG, VARIANT *);
   7127 unsigned char * __RPC_USER VARIANT_UserMarshal  (ULONG *, unsigned char *, VARIANT *);
   7128 unsigned char * __RPC_USER VARIANT_UserUnmarshal(ULONG *, unsigned char *, VARIANT *);
   7129 void            __RPC_USER VARIANT_UserFree     (ULONG *, VARIANT *);
   7130 
   7131 /* End additional prototypes */
   7132 
   7133 #ifdef __cplusplus
   7134 }
   7135 #endif
   7136 
   7137 #endif /* __wuapi_h__ */