xref: /reactos/sdk/include/psdk/wuapi.idl (revision c2c66aff)
1*c2c66affSColin Finck/*
2*c2c66affSColin Finck * Copyright 2008 Hans Leidekker for CodeWeavers
3*c2c66affSColin Finck *
4*c2c66affSColin Finck * This library is free software; you can redistribute it and/or
5*c2c66affSColin Finck * modify it under the terms of the GNU Lesser General Public
6*c2c66affSColin Finck * License as published by the Free Software Foundation; either
7*c2c66affSColin Finck * version 2.1 of the License, or (at your option) any later version.
8*c2c66affSColin Finck *
9*c2c66affSColin Finck * This library is distributed in the hope that it will be useful,
10*c2c66affSColin Finck * but WITHOUT ANY WARRANTY; without even the implied warranty of
11*c2c66affSColin Finck * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12*c2c66affSColin Finck * Lesser General Public License for more details.
13*c2c66affSColin Finck *
14*c2c66affSColin Finck * You should have received a copy of the GNU Lesser General Public
15*c2c66affSColin Finck * License along with this library; if not, write to the Free Software
16*c2c66affSColin Finck * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
17*c2c66affSColin Finck */
18*c2c66affSColin Finck
19*c2c66affSColin Finckimport "oaidl.idl";
20*c2c66affSColin Finck
21*c2c66affSColin Finck#ifndef __WIDL__
22*c2c66affSColin Finck#define threading(model)
23*c2c66affSColin Finck#define progid(str)
24*c2c66affSColin Finck#define vi_progid(str)
25*c2c66affSColin Finck#endif
26*c2c66affSColin Finck
27*c2c66affSColin Finck[
28*c2c66affSColin Finck    helpstring("WUAPI 2.0 Type Library"),
29*c2c66affSColin Finck    uuid(b596cc9f-56e5-419e-a622-e01bb457431e),
30*c2c66affSColin Finck    version(2.0)
31*c2c66affSColin Finck]
32*c2c66affSColin Fincklibrary WUApiLib {
33*c2c66affSColin Finck
34*c2c66affSColin Finckimportlib("stdole2.tlb");
35*c2c66affSColin Finck
36*c2c66affSColin Finckinterface ICategoryCollection;
37*c2c66affSColin Finckinterface IStringCollection;
38*c2c66affSColin Finckinterface IUpdateCollection;
39*c2c66affSColin Finckinterface IUpdateDownloader;
40*c2c66affSColin Finckinterface IUpdateInstaller;
41*c2c66affSColin Finckinterface IUpdateSearcher;
42*c2c66affSColin Finck
43*c2c66affSColin Fincktypedef [public] enum tagDownloadPriority
44*c2c66affSColin Finck{
45*c2c66affSColin Finck    dpLow    = 1,
46*c2c66affSColin Finck    dpNormal = 2,
47*c2c66affSColin Finck    dpHigh   = 3,
48*c2c66affSColin Finck} DownloadPriority;
49*c2c66affSColin Finck
50*c2c66affSColin Fincktypedef [public] enum tagServerSelection
51*c2c66affSColin Finck{
52*c2c66affSColin Finck    ssDefault       = 0,
53*c2c66affSColin Finck    ssManagedServer = 1,
54*c2c66affSColin Finck    ssWindowsUpdate = 2,
55*c2c66affSColin Finck    ssOthers        = 3,
56*c2c66affSColin Finck} ServerSelection;
57*c2c66affSColin Finck
58*c2c66affSColin Fincktypedef [public] enum tagAutomaticUpdatesNotificationLevel
59*c2c66affSColin Finck{
60*c2c66affSColin Finck    aunlNotConfigured,
61*c2c66affSColin Finck    aunlDisabled,
62*c2c66affSColin Finck    aunlNotifyBeforeDownload,
63*c2c66affSColin Finck    aunlNotifyBeforeInstallation,
64*c2c66affSColin Finck    aunlScheduledInstallation,
65*c2c66affSColin Finck} AutomaticUpdatesNotificationLevel;
66*c2c66affSColin Finck
67*c2c66affSColin Fincktypedef [public] enum tagAutomaticUpdatesScheduledInstallationDay
68*c2c66affSColin Finck{
69*c2c66affSColin Finck    ausidEveryDay,
70*c2c66affSColin Finck    ausidEverySunday,
71*c2c66affSColin Finck    ausidEveryMonday,
72*c2c66affSColin Finck    ausidEveryTuesday,
73*c2c66affSColin Finck    ausidEveryWednesday,
74*c2c66affSColin Finck    ausidEveryThursday,
75*c2c66affSColin Finck    ausidEveryFriday,
76*c2c66affSColin Finck    ausidEverySaturday,
77*c2c66affSColin Finck} AutomaticUpdatesScheduledInstallationDay;
78*c2c66affSColin Finck
79*c2c66affSColin Fincktypedef [public] enum tagDownloadPhase
80*c2c66affSColin Finck{
81*c2c66affSColin Finck    dphInitializing,
82*c2c66affSColin Finck    dphDownloading,
83*c2c66affSColin Finck    dphVerifying,
84*c2c66affSColin Finck} DownloadPhase;
85*c2c66affSColin Finck
86*c2c66affSColin Fincktypedef [public] enum tagOperationResultCode
87*c2c66affSColin Finck{
88*c2c66affSColin Finck    orcNotStarted,
89*c2c66affSColin Finck    orcInProgress,
90*c2c66affSColin Finck    orcSucceeded,
91*c2c66affSColin Finck    orcSucceededWithErrors,
92*c2c66affSColin Finck    orcFailed,
93*c2c66affSColin Finck    orcAborted,
94*c2c66affSColin Finck} OperationResultCode;
95*c2c66affSColin Finck
96*c2c66affSColin Fincktypedef [public] enum tagUpdateExceptionContext
97*c2c66affSColin Finck{
98*c2c66affSColin Finck    uecGeneral = 1,
99*c2c66affSColin Finck    uecWindowsDriver,
100*c2c66affSColin Finck    uecWindowsInstaller
101*c2c66affSColin Finck} UpdateExceptionContext;
102*c2c66affSColin Finck
103*c2c66affSColin Fincktypedef [public] enum tagInstallationImpact
104*c2c66affSColin Finck{
105*c2c66affSColin Finck    iiNormal,
106*c2c66affSColin Finck    iiMinor,
107*c2c66affSColin Finck    iiRequiresExclusiveHandling
108*c2c66affSColin Finck} InstallationImpact;
109*c2c66affSColin Finck
110*c2c66affSColin Fincktypedef [public] enum tagInstallationRebootBehavior
111*c2c66affSColin Finck{
112*c2c66affSColin Finck    irbNeverReboots,
113*c2c66affSColin Finck    irbAlwaysRequiresReboot,
114*c2c66affSColin Finck    irbCanRequestReboot
115*c2c66affSColin Finck} InstallationRebootBehavior;
116*c2c66affSColin Finck
117*c2c66affSColin Fincktypedef [public] enum tagUpdateType
118*c2c66affSColin Finck{
119*c2c66affSColin Finck    utSoftware = 1,
120*c2c66affSColin Finck    utDriver
121*c2c66affSColin Finck} UpdateType;
122*c2c66affSColin Finck
123*c2c66affSColin Fincktypedef [public] enum tagUpdateOperation
124*c2c66affSColin Finck{
125*c2c66affSColin Finck    uoInstallation = 1,
126*c2c66affSColin Finck    uoUninstallation
127*c2c66affSColin Finck} UpdateOperation;
128*c2c66affSColin Finck
129*c2c66affSColin Fincktypedef [public] enum tagDeploymentAction
130*c2c66affSColin Finck{
131*c2c66affSColin Finck    daNone,
132*c2c66affSColin Finck    daInstallation,
133*c2c66affSColin Finck    daUninstallation,
134*c2c66affSColin Finck    daDetection
135*c2c66affSColin Finck} DeploymentAction;
136*c2c66affSColin Finck
137*c2c66affSColin Finck[
138*c2c66affSColin Finck    object,
139*c2c66affSColin Finck    oleautomation,
140*c2c66affSColin Finck    dual,
141*c2c66affSColin Finck    nonextensible,
142*c2c66affSColin Finck    uuid(2ee48f22-af3c-405f-8970-f71be12ee9a2),
143*c2c66affSColin Finck    pointer_default(unique)
144*c2c66affSColin Finck]
145*c2c66affSColin Finckinterface IAutomaticUpdatesSettings : IDispatch
146*c2c66affSColin Finck{
147*c2c66affSColin Finck    [propget, id(0x60020001)]
148*c2c66affSColin Finck    HRESULT NotificationLevel( [out, retval] AutomaticUpdatesNotificationLevel *retval );
149*c2c66affSColin Finck
150*c2c66affSColin Finck    [propput, id(0x60020001)]
151*c2c66affSColin Finck    HRESULT NotificationLevel( [in] AutomaticUpdatesNotificationLevel value );
152*c2c66affSColin Finck
153*c2c66affSColin Finck    [propget, id(0x60020002)]
154*c2c66affSColin Finck    HRESULT ReadOnly( [out, retval] VARIANT_BOOL *retval );
155*c2c66affSColin Finck
156*c2c66affSColin Finck    [propget, id(0x60020003)]
157*c2c66affSColin Finck    HRESULT Required( [out, retval] VARIANT_BOOL *retval );
158*c2c66affSColin Finck
159*c2c66affSColin Finck    [propget, id(0x60020004)]
160*c2c66affSColin Finck    HRESULT ScheduledInstallationDay( [out, retval] AutomaticUpdatesScheduledInstallationDay *retval );
161*c2c66affSColin Finck
162*c2c66affSColin Finck    [propput, id(0x60020004)]
163*c2c66affSColin Finck    HRESULT ScheduledInstallationDay( [in] AutomaticUpdatesScheduledInstallationDay value );
164*c2c66affSColin Finck
165*c2c66affSColin Finck    [propget, id(0x60020005)]
166*c2c66affSColin Finck    HRESULT ScheduledInstallationTime( [out, retval] LONG *retval );
167*c2c66affSColin Finck
168*c2c66affSColin Finck    [propput, id(0x60020005)]
169*c2c66affSColin Finck    HRESULT ScheduledInstallationTime( [in] LONG value );
170*c2c66affSColin Finck
171*c2c66affSColin Finck    [id(0x60020006)]
172*c2c66affSColin Finck    HRESULT Refresh();
173*c2c66affSColin Finck
174*c2c66affSColin Finck    [id(0x60020007)]
175*c2c66affSColin Finck    HRESULT Save();
176*c2c66affSColin Finck}
177*c2c66affSColin Finck
178*c2c66affSColin Finck[
179*c2c66affSColin Finck    object,
180*c2c66affSColin Finck    uuid(673425bf-c082-4c7c-bdfd-569464b8e0ce),
181*c2c66affSColin Finck    oleautomation,
182*c2c66affSColin Finck    dual,
183*c2c66affSColin Finck    nonextensible,
184*c2c66affSColin Finck    pointer_default(unique),
185*c2c66affSColin Finck    hidden
186*c2c66affSColin Finck]
187*c2c66affSColin Finckinterface IAutomaticUpdates : IDispatch
188*c2c66affSColin Finck{
189*c2c66affSColin Finck    HRESULT DetectNow();
190*c2c66affSColin Finck    HRESULT Pause();
191*c2c66affSColin Finck    HRESULT Resume();
192*c2c66affSColin Finck    HRESULT ShowSettingsDialog();
193*c2c66affSColin Finck
194*c2c66affSColin Finck    [propget]
195*c2c66affSColin Finck    HRESULT Settings(
196*c2c66affSColin Finck        [out, retval] IAutomaticUpdatesSettings **retval);
197*c2c66affSColin Finck
198*c2c66affSColin Finck    [propget]
199*c2c66affSColin Finck    HRESULT ServiceEnabled(
200*c2c66affSColin Finck        [out, retval] VARIANT_BOOL *retval);
201*c2c66affSColin Finck
202*c2c66affSColin Finck    HRESULT EnableService();
203*c2c66affSColin Finck}
204*c2c66affSColin Finck
205*c2c66affSColin Finck[
206*c2c66affSColin Finck    object,
207*c2c66affSColin Finck    oleautomation,
208*c2c66affSColin Finck    dual,
209*c2c66affSColin Finck    nonextensible,
210*c2c66affSColin Finck    uuid(174c81fe-aecd-4dae-b8a0-2c6318dd86a8),
211*c2c66affSColin Finck    pointer_default(unique),
212*c2c66affSColin Finck]
213*c2c66affSColin Finckinterface IWebProxy : IDispatch
214*c2c66affSColin Finck{
215*c2c66affSColin Finck    [propget, id(0x60020001)]
216*c2c66affSColin Finck    HRESULT Address( [out, retval] BSTR *retval );
217*c2c66affSColin Finck
218*c2c66affSColin Finck    [propput, id(0x60020001)]
219*c2c66affSColin Finck    HRESULT Address( [in] BSTR value );
220*c2c66affSColin Finck
221*c2c66affSColin Finck    [propget, id(0x60020002)]
222*c2c66affSColin Finck    HRESULT BypassList( [out, retval] IStringCollection **retval );
223*c2c66affSColin Finck
224*c2c66affSColin Finck    [propput, id(0x60020002)]
225*c2c66affSColin Finck    HRESULT BypassList( [in] IStringCollection *value );
226*c2c66affSColin Finck
227*c2c66affSColin Finck    [propget, id(0x60020003)]
228*c2c66affSColin Finck    HRESULT BypassProxyOnLocal( [out, retval] VARIANT_BOOL *retval );
229*c2c66affSColin Finck
230*c2c66affSColin Finck    [propput, id(0x60020003)]
231*c2c66affSColin Finck    HRESULT BypassProxyOnLocal( [in] VARIANT_BOOL value );
232*c2c66affSColin Finck
233*c2c66affSColin Finck    [propget, id(0x60020004)]
234*c2c66affSColin Finck    HRESULT ReadOnly( [out, retval] VARIANT_BOOL *retval );
235*c2c66affSColin Finck
236*c2c66affSColin Finck    [propget, id(0x60020005)]
237*c2c66affSColin Finck    HRESULT UserName( [out, retval] BSTR *retval );
238*c2c66affSColin Finck
239*c2c66affSColin Finck    [propput, id(0x60020005)]
240*c2c66affSColin Finck    HRESULT UserName( [in] BSTR value );
241*c2c66affSColin Finck
242*c2c66affSColin Finck    [id(0x60020006)]
243*c2c66affSColin Finck    HRESULT SetPassword( [in] BSTR value );
244*c2c66affSColin Finck
245*c2c66affSColin Finck    [id(0x60020007)]
246*c2c66affSColin Finck    HRESULT PromptForCredentials( [in, unique] IUnknown *parentWindow,
247*c2c66affSColin Finck                                  [in] BSTR title );
248*c2c66affSColin Finck
249*c2c66affSColin Finck    [restricted, id(0x60020008)]
250*c2c66affSColin Finck    HRESULT PromptForCredentialsFromHwnd( [in, unique] HWND parentWindow,
251*c2c66affSColin Finck                                          [in] BSTR title );
252*c2c66affSColin Finck
253*c2c66affSColin Finck    [propget, id(0x60020009)]
254*c2c66affSColin Finck    HRESULT AutoDetect( [out, retval] VARIANT_BOOL *retval );
255*c2c66affSColin Finck
256*c2c66affSColin Finck    [propput, id(0x60020009)]
257*c2c66affSColin Finck    HRESULT AutoDetect( [in] VARIANT_BOOL value );
258*c2c66affSColin Finck}
259*c2c66affSColin Finck
260*c2c66affSColin Finck[
261*c2c66affSColin Finck    object,
262*c2c66affSColin Finck    uuid(816858a4-260d-4260-933a-2585f1abc76b),
263*c2c66affSColin Finck    oleautomation,
264*c2c66affSColin Finck    dual,
265*c2c66affSColin Finck    nonextensible,
266*c2c66affSColin Finck    pointer_default(unique),
267*c2c66affSColin Finck]
268*c2c66affSColin Finckinterface IUpdateSession : IDispatch
269*c2c66affSColin Finck{
270*c2c66affSColin Finck    [propget]
271*c2c66affSColin Finck    HRESULT ClientApplicationID(
272*c2c66affSColin Finck        [out, retval] BSTR *retval);
273*c2c66affSColin Finck
274*c2c66affSColin Finck    [propput]
275*c2c66affSColin Finck    HRESULT ClientApplicationID(
276*c2c66affSColin Finck        [in] BSTR value);
277*c2c66affSColin Finck
278*c2c66affSColin Finck    [propget]
279*c2c66affSColin Finck    HRESULT ReadOnly(
280*c2c66affSColin Finck        [out, retval] VARIANT_BOOL *retval);
281*c2c66affSColin Finck
282*c2c66affSColin Finck    [propget]
283*c2c66affSColin Finck    HRESULT WebProxy(
284*c2c66affSColin Finck        [out, retval] IWebProxy **retval);
285*c2c66affSColin Finck
286*c2c66affSColin Finck    [propput]
287*c2c66affSColin Finck    HRESULT WebProxy(
288*c2c66affSColin Finck        [in, unique] IWebProxy *value);
289*c2c66affSColin Finck
290*c2c66affSColin Finck    HRESULT CreateUpdateSearcher(
291*c2c66affSColin Finck        [out, retval] IUpdateSearcher **retval);
292*c2c66affSColin Finck
293*c2c66affSColin Finck    HRESULT CreateUpdateDownloader(
294*c2c66affSColin Finck        [out, retval] IUpdateDownloader **retval);
295*c2c66affSColin Finck
296*c2c66affSColin Finck    HRESULT CreateUpdateInstaller(
297*c2c66affSColin Finck        [out, retval] IUpdateInstaller **retval);
298*c2c66affSColin Finck}
299*c2c66affSColin Finck
300*c2c66affSColin Finck[
301*c2c66affSColin Finck    object,
302*c2c66affSColin Finck    oleautomation,
303*c2c66affSColin Finck    dual,
304*c2c66affSColin Finck    nonextensible,
305*c2c66affSColin Finck    uuid(7c907864-346c-4aeb-8f3f-57da289f969f),
306*c2c66affSColin Finck    pointer_default(unique),
307*c2c66affSColin Finck]
308*c2c66affSColin Finckinterface IImageInformation : IDispatch
309*c2c66affSColin Finck{
310*c2c66affSColin Finck    [propget, id(0x60020001)]
311*c2c66affSColin Finck    HRESULT AltText( [out, retval] BSTR *retval );
312*c2c66affSColin Finck
313*c2c66affSColin Finck    [propget, id(0x60020002)]
314*c2c66affSColin Finck    HRESULT Height( [out, retval] LONG *retval );
315*c2c66affSColin Finck
316*c2c66affSColin Finck    [propget, id(0x60020003)]
317*c2c66affSColin Finck    HRESULT Source( [out, retval] BSTR *retval );
318*c2c66affSColin Finck
319*c2c66affSColin Finck    [propget, id(0x60020004)]
320*c2c66affSColin Finck    HRESULT Width( [out, retval] LONG *retval );
321*c2c66affSColin Finck}
322*c2c66affSColin Finck
323*c2c66affSColin Finck[
324*c2c66affSColin Finck    object,
325*c2c66affSColin Finck    oleautomation,
326*c2c66affSColin Finck    dual,
327*c2c66affSColin Finck    nonextensible,
328*c2c66affSColin Finck    uuid(81ddc1b8-9d35-47a6-b471-5b80f519223b),
329*c2c66affSColin Finck    pointer_default(unique),
330*c2c66affSColin Finck]
331*c2c66affSColin Finckinterface ICategory : IDispatch
332*c2c66affSColin Finck{
333*c2c66affSColin Finck    [propget, id(DISPID_VALUE)]
334*c2c66affSColin Finck    HRESULT Name( [out, retval] BSTR *retval );
335*c2c66affSColin Finck
336*c2c66affSColin Finck    [propget, id(0x60020001)]
337*c2c66affSColin Finck    HRESULT CategoryID( [out, retval] BSTR *retval );
338*c2c66affSColin Finck
339*c2c66affSColin Finck    [propget, id(0x60020002)]
340*c2c66affSColin Finck    HRESULT Children( [out, retval] ICategoryCollection **retval );
341*c2c66affSColin Finck
342*c2c66affSColin Finck    [propget, id(0x60020003)]
343*c2c66affSColin Finck    HRESULT Description( [out, retval] BSTR *retval );
344*c2c66affSColin Finck
345*c2c66affSColin Finck    [propget, id(0x60020004)]
346*c2c66affSColin Finck    HRESULT Image( [out, retval] IImageInformation **retval );
347*c2c66affSColin Finck
348*c2c66affSColin Finck    [propget, id(0x60020005)]
349*c2c66affSColin Finck    HRESULT Order( [out, retval] LONG *retval );
350*c2c66affSColin Finck
351*c2c66affSColin Finck    [propget, id(0x60020006)]
352*c2c66affSColin Finck    HRESULT Parent( [out, retval] ICategory **retval );
353*c2c66affSColin Finck
354*c2c66affSColin Finck    [propget, id(0x60020007)]
355*c2c66affSColin Finck    HRESULT Type( [out, retval] BSTR *retval );
356*c2c66affSColin Finck
357*c2c66affSColin Finck    [propget, id(0x60020008)]
358*c2c66affSColin Finck    HRESULT Updates( [out, retval] IUpdateCollection **retval );
359*c2c66affSColin Finck}
360*c2c66affSColin Finck
361*c2c66affSColin Finck[
362*c2c66affSColin Finck    object,
363*c2c66affSColin Finck    oleautomation,
364*c2c66affSColin Finck    dual,
365*c2c66affSColin Finck    nonextensible,
366*c2c66affSColin Finck    uuid(3a56bfb8-576c-43f7-9335-fe4838fd7e37),
367*c2c66affSColin Finck    pointer_default(unique),
368*c2c66affSColin Finck]
369*c2c66affSColin Finckinterface ICategoryCollection : IDispatch
370*c2c66affSColin Finck{
371*c2c66affSColin Finck    [propget, id(DISPID_VALUE)]
372*c2c66affSColin Finck    HRESULT Item( [in] LONG index,
373*c2c66affSColin Finck                [out, retval] ICategory **retval );
374*c2c66affSColin Finck
375*c2c66affSColin Finck    [propget, id(DISPID_NEWENUM)]
376*c2c66affSColin Finck    HRESULT _NewEnum( [out, retval] IUnknown **retval );
377*c2c66affSColin Finck
378*c2c66affSColin Finck    [propget, id(0x60020001)]
379*c2c66affSColin Finck    HRESULT Count( [out, retval] LONG *retval );
380*c2c66affSColin Finck}
381*c2c66affSColin Finck
382*c2c66affSColin Finck[
383*c2c66affSColin Finck    object,
384*c2c66affSColin Finck    oleautomation,
385*c2c66affSColin Finck    dual,
386*c2c66affSColin Finck    nonextensible,
387*c2c66affSColin Finck    uuid(eff90582-2ddc-480f-a06d-60f3fbc362c3),
388*c2c66affSColin Finck    pointer_default(unique),
389*c2c66affSColin Finck    hidden
390*c2c66affSColin Finck]
391*c2c66affSColin Finckinterface IStringCollection : IDispatch
392*c2c66affSColin Finck{
393*c2c66affSColin Finck    [propget, id(DISPID_VALUE)]
394*c2c66affSColin Finck    HRESULT Item( [in] LONG index,
395*c2c66affSColin Finck                  [out, retval] BSTR *retval );
396*c2c66affSColin Finck
397*c2c66affSColin Finck    [propput, id(DISPID_VALUE)]
398*c2c66affSColin Finck    HRESULT Item( [in] LONG index,
399*c2c66affSColin Finck                [in] BSTR value );
400*c2c66affSColin Finck
401*c2c66affSColin Finck    [propget, id(DISPID_NEWENUM)]
402*c2c66affSColin Finck    HRESULT _NewEnum( [out, retval] IUnknown **retval );
403*c2c66affSColin Finck
404*c2c66affSColin Finck    [propget, id(0x60020001)]
405*c2c66affSColin Finck    HRESULT Count( [out, retval] LONG *retval );
406*c2c66affSColin Finck
407*c2c66affSColin Finck    [propget, id(0x60020002)]
408*c2c66affSColin Finck    HRESULT ReadOnly( [out, retval] VARIANT_BOOL *retval );
409*c2c66affSColin Finck
410*c2c66affSColin Finck    [id(0x60020003)]
411*c2c66affSColin Finck    HRESULT Add( [in] BSTR value,
412*c2c66affSColin Finck                 [out, retval] LONG *retval );
413*c2c66affSColin Finck
414*c2c66affSColin Finck    [id(0x60020004)]
415*c2c66affSColin Finck    HRESULT Clear();
416*c2c66affSColin Finck
417*c2c66affSColin Finck    [id(0x60020005)]
418*c2c66affSColin Finck    HRESULT Copy( [out, retval] IStringCollection **retval );
419*c2c66affSColin Finck
420*c2c66affSColin Finck    [id(0x60020006)]
421*c2c66affSColin Finck    HRESULT Insert( [in] LONG index,
422*c2c66affSColin Finck                    [in] BSTR value );
423*c2c66affSColin Finck
424*c2c66affSColin Finck    [id(0x60020007)]
425*c2c66affSColin Finck    HRESULT RemoveAt( [in] LONG index );
426*c2c66affSColin Finck}
427*c2c66affSColin Finck
428*c2c66affSColin Finck[
429*c2c66affSColin Finck    object,
430*c2c66affSColin Finck    oleautomation,
431*c2c66affSColin Finck    dual,
432*c2c66affSColin Finck    nonextensible,
433*c2c66affSColin Finck    uuid(a376dd5e-09d4-427f-af7c-fed5b6e1c1d6),
434*c2c66affSColin Finck    pointer_default(unique),
435*c2c66affSColin Finck]
436*c2c66affSColin Finckinterface IUpdateException : IDispatch
437*c2c66affSColin Finck{
438*c2c66affSColin Finck    [propget, id(DISPID_VALUE)]
439*c2c66affSColin Finck    HRESULT Message( [out, retval] BSTR *retval );
440*c2c66affSColin Finck
441*c2c66affSColin Finck    [propget, id(0x60020001)]
442*c2c66affSColin Finck    HRESULT HResult( [out, retval] LONG *retval );
443*c2c66affSColin Finck
444*c2c66affSColin Finck    [propget, id(0x60020002)]
445*c2c66affSColin Finck    HRESULT Context( [out, retval] UpdateExceptionContext *retval );
446*c2c66affSColin Finck}
447*c2c66affSColin Finck
448*c2c66affSColin Finck[
449*c2c66affSColin Finck    object,
450*c2c66affSColin Finck    oleautomation,
451*c2c66affSColin Finck    dual,
452*c2c66affSColin Finck    nonextensible,
453*c2c66affSColin Finck    uuid(503626a3-8e14-4729-9355-0fe664bd2321),
454*c2c66affSColin Finck    pointer_default(unique),
455*c2c66affSColin Finck]
456*c2c66affSColin Finckinterface IUpdateExceptionCollection : IDispatch
457*c2c66affSColin Finck{
458*c2c66affSColin Finck    [propget, id(DISPID_VALUE)]
459*c2c66affSColin Finck    HRESULT Item( [in] LONG index,
460*c2c66affSColin Finck                  [out, retval] IUpdateException **retval );
461*c2c66affSColin Finck
462*c2c66affSColin Finck    [propget, id(DISPID_NEWENUM)]
463*c2c66affSColin Finck    HRESULT _NewEnum( [out, retval] IUnknown **retval );
464*c2c66affSColin Finck
465*c2c66affSColin Finck    [propget, id(0x60020001)]
466*c2c66affSColin Finck    HRESULT Count( [out, retval] LONG *retval );
467*c2c66affSColin Finck}
468*c2c66affSColin Finck
469*c2c66affSColin Finck[
470*c2c66affSColin Finck    object,
471*c2c66affSColin Finck    oleautomation,
472*c2c66affSColin Finck    dual,
473*c2c66affSColin Finck    nonextensible,
474*c2c66affSColin Finck    uuid(46297823-9940-4c09-aed9-cd3ea6d05968),
475*c2c66affSColin Finck    pointer_default(unique)
476*c2c66affSColin Finck]
477*c2c66affSColin Finckinterface IUpdateIdentity : IDispatch
478*c2c66affSColin Finck{
479*c2c66affSColin Finck    [propget, id(0x60020002)]
480*c2c66affSColin Finck    HRESULT RevisionNumber( [out, retval] LONG *retval );
481*c2c66affSColin Finck
482*c2c66affSColin Finck    [propget, id(0x60020003)]
483*c2c66affSColin Finck    HRESULT UpdateID( [out, retval] BSTR *retval );
484*c2c66affSColin Finck}
485*c2c66affSColin Finck
486*c2c66affSColin Finck[
487*c2c66affSColin Finck    ,
488*c2c66affSColin Finck    object,
489*c2c66affSColin Finck    oleautomation,
490*c2c66affSColin Finck    dual,
491*c2c66affSColin Finck    nonextensible,
492*c2c66affSColin Finck    uuid(d9a59339-e245-4dbd-9686-4d5763e39624),
493*c2c66affSColin Finck    pointer_default(unique),
494*c2c66affSColin Finck]
495*c2c66affSColin Finckinterface IInstallationBehavior : IDispatch
496*c2c66affSColin Finck{
497*c2c66affSColin Finck    [propget, id(0x60020001)]
498*c2c66affSColin Finck    HRESULT CanRequestUserInput( [out, retval] VARIANT_BOOL *retval );
499*c2c66affSColin Finck
500*c2c66affSColin Finck    [propget, id(0x60020002)]
501*c2c66affSColin Finck    HRESULT Impact( [out, retval] InstallationImpact *retval );
502*c2c66affSColin Finck
503*c2c66affSColin Finck    [propget, id(0x60020003)]
504*c2c66affSColin Finck    HRESULT RebootBehavior( [out, retval] InstallationRebootBehavior *retval );
505*c2c66affSColin Finck
506*c2c66affSColin Finck    [propget, id(0x60020004)]
507*c2c66affSColin Finck    HRESULT RequiresNetworkConnectivity( [out, retval] VARIANT_BOOL *retval );
508*c2c66affSColin Finck}
509*c2c66affSColin Finck
510*c2c66affSColin Finck[
511*c2c66affSColin Finck    object,
512*c2c66affSColin Finck    oleautomation,
513*c2c66affSColin Finck    dual,
514*c2c66affSColin Finck    nonextensible,
515*c2c66affSColin Finck    uuid(54a2cb2d-9a0c-48b6-8a50-9abb69ee2d02),
516*c2c66affSColin Finck    pointer_default(unique),
517*c2c66affSColin Finck]
518*c2c66affSColin Finckinterface IUpdateDownloadContent : IDispatch
519*c2c66affSColin Finck{
520*c2c66affSColin Finck    [propget, id(0x60020001)]
521*c2c66affSColin Finck    HRESULT DownloadUrl( [out, retval] BSTR *retval );
522*c2c66affSColin Finck}
523*c2c66affSColin Finck
524*c2c66affSColin Finck[
525*c2c66affSColin Finck    object,
526*c2c66affSColin Finck    oleautomation,
527*c2c66affSColin Finck    dual,
528*c2c66affSColin Finck    nonextensible,
529*c2c66affSColin Finck    uuid(bc5513c8-b3b8-4bf7-a4d4-361c0d8c88ba),
530*c2c66affSColin Finck    pointer_default(unique),
531*c2c66affSColin Finck]
532*c2c66affSColin Finckinterface IUpdateDownloadContentCollection : IDispatch
533*c2c66affSColin Finck{
534*c2c66affSColin Finck    [propget, id(DISPID_VALUE)]
535*c2c66affSColin Finck    HRESULT Item( [in] LONG index,
536*c2c66affSColin Finck                  [out, retval] IUpdateDownloadContent **retval );
537*c2c66affSColin Finck
538*c2c66affSColin Finck    [propget, id(DISPID_NEWENUM)]
539*c2c66affSColin Finck    HRESULT _NewEnum( [out, retval] IUnknown **retval );
540*c2c66affSColin Finck
541*c2c66affSColin Finck    [propget, id(0x60020001)]
542*c2c66affSColin Finck    HRESULT Count( [out, retval] LONG *retval );
543*c2c66affSColin Finck}
544*c2c66affSColin Finck
545*c2c66affSColin Finck[
546*c2c66affSColin Finck
547*c2c66affSColin Finck    object,
548*c2c66affSColin Finck    oleautomation,
549*c2c66affSColin Finck    dual,
550*c2c66affSColin Finck    nonextensible,
551*c2c66affSColin Finck    uuid(6a92b07a-d821-4682-b423-5c805022cc4d),
552*c2c66affSColin Finck    pointer_default(unique),
553*c2c66affSColin Finck]
554*c2c66affSColin Finckinterface IUpdate : IDispatch
555*c2c66affSColin Finck{
556*c2c66affSColin Finck    [propget, id(DISPID_VALUE)]
557*c2c66affSColin Finck    HRESULT Title( [out, retval] BSTR *retval );
558*c2c66affSColin Finck
559*c2c66affSColin Finck    [propget, id(0x60020001)]
560*c2c66affSColin Finck    HRESULT AutoSelectOnWebSites( [out, retval] VARIANT_BOOL *retval );
561*c2c66affSColin Finck
562*c2c66affSColin Finck    [propget, id(0x60020002)]
563*c2c66affSColin Finck    HRESULT BundledUpdates( [out, retval] IUpdateCollection **retval );
564*c2c66affSColin Finck
565*c2c66affSColin Finck    [propget, id(0x60020003)]
566*c2c66affSColin Finck    HRESULT CanRequireSource( [out, retval] VARIANT_BOOL *retval );
567*c2c66affSColin Finck
568*c2c66affSColin Finck    [propget, id(0x60020004)]
569*c2c66affSColin Finck    HRESULT Categories( [out, retval] ICategoryCollection **retval );
570*c2c66affSColin Finck
571*c2c66affSColin Finck    [propget, id(0x60020005)]
572*c2c66affSColin Finck    HRESULT Deadline( [out, retval] VARIANT *retval );
573*c2c66affSColin Finck
574*c2c66affSColin Finck    [propget, id(0x60020006)]
575*c2c66affSColin Finck    HRESULT DeltaCompressedContentAvailable( [out, retval] VARIANT_BOOL *retval );
576*c2c66affSColin Finck
577*c2c66affSColin Finck    [propget, id(0x60020007)]
578*c2c66affSColin Finck    HRESULT DeltaCompressedContentPreferred( [out, retval] VARIANT_BOOL *retval );
579*c2c66affSColin Finck
580*c2c66affSColin Finck    [propget, id(0x60020008)]
581*c2c66affSColin Finck    HRESULT Description( [out, retval] BSTR *retval );
582*c2c66affSColin Finck
583*c2c66affSColin Finck    [propget, id(0x60020009)]
584*c2c66affSColin Finck    HRESULT EulaAccepted( [out, retval] VARIANT_BOOL *retval );
585*c2c66affSColin Finck
586*c2c66affSColin Finck    [propget, id(0x6002000a)]
587*c2c66affSColin Finck    HRESULT EulaText( [out, retval] BSTR *retval );
588*c2c66affSColin Finck
589*c2c66affSColin Finck    [propget, id(0x6002000b)]
590*c2c66affSColin Finck    HRESULT HandlerID( [out, retval] BSTR *retval );
591*c2c66affSColin Finck
592*c2c66affSColin Finck    [propget, id(0x6002000c)]
593*c2c66affSColin Finck    HRESULT Identity( [out, retval] IUpdateIdentity **retval );
594*c2c66affSColin Finck
595*c2c66affSColin Finck    [propget, id(0x6002000d)]
596*c2c66affSColin Finck    HRESULT Image( [out, retval] IImageInformation **retval );
597*c2c66affSColin Finck
598*c2c66affSColin Finck    [propget, id(0x6002000e)]
599*c2c66affSColin Finck    HRESULT InstallationBehavior( [out, retval] IInstallationBehavior **retval );
600*c2c66affSColin Finck
601*c2c66affSColin Finck    [propget, id(0x6002000f)]
602*c2c66affSColin Finck    HRESULT IsBeta( [out, retval] VARIANT_BOOL *retval );
603*c2c66affSColin Finck
604*c2c66affSColin Finck    [propget, id(0x60020010)]
605*c2c66affSColin Finck    HRESULT IsDownloaded( [out, retval] VARIANT_BOOL *retval );
606*c2c66affSColin Finck
607*c2c66affSColin Finck    [propget, id(0x60020011)]
608*c2c66affSColin Finck    HRESULT IsHidden( [out, retval] VARIANT_BOOL *retval );
609*c2c66affSColin Finck
610*c2c66affSColin Finck    [propput, id(0x60020011)]
611*c2c66affSColin Finck    HRESULT IsHidden( [in] VARIANT_BOOL value );
612*c2c66affSColin Finck
613*c2c66affSColin Finck    [propget, id(0x60020012)]
614*c2c66affSColin Finck    HRESULT IsInstalled( [out, retval] VARIANT_BOOL *retval );
615*c2c66affSColin Finck
616*c2c66affSColin Finck    [propget, id(0x60020013)]
617*c2c66affSColin Finck    HRESULT IsMandatory( [out, retval] VARIANT_BOOL *retval );
618*c2c66affSColin Finck
619*c2c66affSColin Finck    [propget, id(0x60020014)]
620*c2c66affSColin Finck    HRESULT IsUninstallable( [out, retval] VARIANT_BOOL *retval );
621*c2c66affSColin Finck
622*c2c66affSColin Finck    [propget, id(0x60020015)]
623*c2c66affSColin Finck    HRESULT Languages( [out, retval] IStringCollection **retval );
624*c2c66affSColin Finck
625*c2c66affSColin Finck    [propget, id(0x60020016)]
626*c2c66affSColin Finck    HRESULT LastDeploymentChangeTime( [out, retval] DATE *retval );
627*c2c66affSColin Finck
628*c2c66affSColin Finck    [propget, id(0x60020017)]
629*c2c66affSColin Finck    HRESULT MaxDownloadSize( [out, retval] DECIMAL *retval );
630*c2c66affSColin Finck
631*c2c66affSColin Finck    [propget, id(0x60020018)]
632*c2c66affSColin Finck    HRESULT MinDownloadSize( [out, retval] DECIMAL *retval );
633*c2c66affSColin Finck
634*c2c66affSColin Finck    [propget, id(0x60020019)]
635*c2c66affSColin Finck    HRESULT MoreInfoUrls( [out, retval] IStringCollection **retval );
636*c2c66affSColin Finck
637*c2c66affSColin Finck    [propget, id(0x6002001a)]
638*c2c66affSColin Finck    HRESULT MsrcSeverity( [out, retval] BSTR *retval );
639*c2c66affSColin Finck
640*c2c66affSColin Finck    [propget, id(0x6002001b)]
641*c2c66affSColin Finck    HRESULT RecommendedCpuSpeed( [out, retval] LONG *retval );
642*c2c66affSColin Finck
643*c2c66affSColin Finck    [propget, id(0x6002001c)]
644*c2c66affSColin Finck    HRESULT RecommendedHardDiskSpace( [out, retval] LONG *retval );
645*c2c66affSColin Finck
646*c2c66affSColin Finck    [propget, id(0x6002001d)]
647*c2c66affSColin Finck    HRESULT RecommendedMemory( [out, retval] LONG *retval );
648*c2c66affSColin Finck
649*c2c66affSColin Finck    [propget, id(0x6002001e)]
650*c2c66affSColin Finck    HRESULT ReleaseNotes( [out, retval] BSTR *retval );
651*c2c66affSColin Finck
652*c2c66affSColin Finck    [propget, id(0x6002001f)]
653*c2c66affSColin Finck    HRESULT SecurityBulletinIDs( [out, retval] IStringCollection **retval );
654*c2c66affSColin Finck
655*c2c66affSColin Finck    [propget, id(0x60020021)]
656*c2c66affSColin Finck    HRESULT SupersededUpdateIDs( [out, retval] IStringCollection **retval );
657*c2c66affSColin Finck
658*c2c66affSColin Finck    [propget, id(0x60020022)]
659*c2c66affSColin Finck    HRESULT SupportUrl( [out, retval] BSTR *retval );
660*c2c66affSColin Finck
661*c2c66affSColin Finck    [propget, id(0x60020023)]
662*c2c66affSColin Finck    HRESULT Type( [out, retval] UpdateType *retval );
663*c2c66affSColin Finck
664*c2c66affSColin Finck    [propget, id(0x60020024)]
665*c2c66affSColin Finck    HRESULT UninstallationNotes( [out, retval] BSTR *retval );
666*c2c66affSColin Finck
667*c2c66affSColin Finck    [propget, id(0x60020025)]
668*c2c66affSColin Finck    HRESULT UninstallationBehavior( [out, retval] IInstallationBehavior **retval );
669*c2c66affSColin Finck
670*c2c66affSColin Finck    [propget, id(0x60020026)]
671*c2c66affSColin Finck    HRESULT UninstallationSteps( [out, retval] IStringCollection **retval );
672*c2c66affSColin Finck
673*c2c66affSColin Finck    [propget, id(0x60020028)]
674*c2c66affSColin Finck    HRESULT KBArticleIDs( [out, retval] IStringCollection **retval );
675*c2c66affSColin Finck
676*c2c66affSColin Finck    [id(0x60020027)]
677*c2c66affSColin Finck    HRESULT AcceptEula();
678*c2c66affSColin Finck
679*c2c66affSColin Finck    [propget, id(0x60020029)]
680*c2c66affSColin Finck    HRESULT DeploymentAction( [out, retval] DeploymentAction *retval );
681*c2c66affSColin Finck
682*c2c66affSColin Finck    [id(0x6002002a)]
683*c2c66affSColin Finck    HRESULT CopyFromCache( [in, ref] BSTR path,
684*c2c66affSColin Finck                           [in] VARIANT_BOOL toExtractCabFiles );
685*c2c66affSColin Finck
686*c2c66affSColin Finck    [propget, id(0x6002002b)]
687*c2c66affSColin Finck    HRESULT DownloadPriority( [out, retval] DownloadPriority *retval );
688*c2c66affSColin Finck
689*c2c66affSColin Finck    [propget, id(0x6002002c)]
690*c2c66affSColin Finck    HRESULT DownloadContents( [out, retval] IUpdateDownloadContentCollection **retval );
691*c2c66affSColin Finck}
692*c2c66affSColin Finck
693*c2c66affSColin Finck[
694*c2c66affSColin Finck
695*c2c66affSColin Finck    object,
696*c2c66affSColin Finck    oleautomation,
697*c2c66affSColin Finck    dual,
698*c2c66affSColin Finck    nonextensible,
699*c2c66affSColin Finck    uuid(07f7438c-7709-4ca5-b518-91279288134e),
700*c2c66affSColin Finck    pointer_default(unique),
701*c2c66affSColin Finck    hidden
702*c2c66affSColin Finck]
703*c2c66affSColin Finckinterface IUpdateCollection : IDispatch
704*c2c66affSColin Finck{
705*c2c66affSColin Finck    [propget, id(DISPID_VALUE)]
706*c2c66affSColin Finck    HRESULT Item( [in] LONG index,
707*c2c66affSColin Finck                  [out, retval] IUpdate **retval );
708*c2c66affSColin Finck
709*c2c66affSColin Finck    [propput, id(DISPID_VALUE)]
710*c2c66affSColin Finck    HRESULT Item( [in] LONG index,
711*c2c66affSColin Finck                  [in] IUpdate *value );
712*c2c66affSColin Finck
713*c2c66affSColin Finck    [propget, id(DISPID_NEWENUM)]
714*c2c66affSColin Finck    HRESULT _NewEnum( [out, retval] IUnknown **retval );
715*c2c66affSColin Finck
716*c2c66affSColin Finck    [propget, id(0x60020001)]
717*c2c66affSColin Finck    HRESULT Count( [out, retval] LONG *retval );
718*c2c66affSColin Finck
719*c2c66affSColin Finck    [propget, id(0x60020002)]
720*c2c66affSColin Finck    HRESULT ReadOnly( [out, retval] VARIANT_BOOL *retval );
721*c2c66affSColin Finck
722*c2c66affSColin Finck    [id(0x60020003)]
723*c2c66affSColin Finck    HRESULT Add( [in] IUpdate *value,
724*c2c66affSColin Finck                 [out, retval] LONG *retval );
725*c2c66affSColin Finck
726*c2c66affSColin Finck    [id(0x60020004)]
727*c2c66affSColin Finck    HRESULT Clear();
728*c2c66affSColin Finck
729*c2c66affSColin Finck    [id(0x60020005)]
730*c2c66affSColin Finck    HRESULT Copy( [out, retval] IUpdateCollection **retval );
731*c2c66affSColin Finck
732*c2c66affSColin Finck    [id(0x60020006)]
733*c2c66affSColin Finck    HRESULT Insert( [in] LONG index,
734*c2c66affSColin Finck                [in] IUpdate *value );
735*c2c66affSColin Finck
736*c2c66affSColin Finck    [id(0x60020007)]
737*c2c66affSColin Finck    HRESULT RemoveAt( [in] LONG index );
738*c2c66affSColin Finck}
739*c2c66affSColin Finck
740*c2c66affSColin Finck[
741*c2c66affSColin Finck    object,
742*c2c66affSColin Finck    oleautomation,
743*c2c66affSColin Finck    dual,
744*c2c66affSColin Finck    nonextensible,
745*c2c66affSColin Finck    uuid(7366ea16-7a1a-4ea2-b042-973d3e9cd99b),
746*c2c66affSColin Finck    pointer_default(unique),
747*c2c66affSColin Finck]
748*c2c66affSColin Finckinterface ISearchJob : IDispatch
749*c2c66affSColin Finck{
750*c2c66affSColin Finck    [propget, id(0x60020001)]
751*c2c66affSColin Finck    HRESULT AsyncState( [out, retval] VARIANT *retval );
752*c2c66affSColin Finck
753*c2c66affSColin Finck    [propget, id(0x60020002)]
754*c2c66affSColin Finck    HRESULT IsCompleted( [out, retval] VARIANT_BOOL *retval );
755*c2c66affSColin Finck
756*c2c66affSColin Finck    [id(0x60020003)]
757*c2c66affSColin Finck    HRESULT CleanUp();
758*c2c66affSColin Finck
759*c2c66affSColin Finck    [id(0x60020004)]
760*c2c66affSColin Finck    HRESULT RequestAbort();
761*c2c66affSColin Finck}
762*c2c66affSColin Finck
763*c2c66affSColin Finck[
764*c2c66affSColin Finck    object,
765*c2c66affSColin Finck    oleautomation,
766*c2c66affSColin Finck    dual,
767*c2c66affSColin Finck    nonextensible,
768*c2c66affSColin Finck    uuid(d40cff62-e08c-4498-941a-01e25f0fd33c),
769*c2c66affSColin Finck    pointer_default(unique),
770*c2c66affSColin Finck]
771*c2c66affSColin Finckinterface ISearchResult : IDispatch
772*c2c66affSColin Finck{
773*c2c66affSColin Finck    [propget, id(0x60020001)]
774*c2c66affSColin Finck    HRESULT ResultCode( [out, retval] OperationResultCode *retval );
775*c2c66affSColin Finck
776*c2c66affSColin Finck    [propget, id(0x60020002)]
777*c2c66affSColin Finck    HRESULT RootCategories( [out, retval] ICategoryCollection **retval );
778*c2c66affSColin Finck
779*c2c66affSColin Finck    [propget, id(0x60020003)]
780*c2c66affSColin Finck    HRESULT Updates( [out, retval] IUpdateCollection **retval );
781*c2c66affSColin Finck
782*c2c66affSColin Finck    [propget, id(0x60020004)]
783*c2c66affSColin Finck    HRESULT Warnings( [out, retval] IUpdateExceptionCollection **retval );
784*c2c66affSColin Finck}
785*c2c66affSColin Finck
786*c2c66affSColin Finck[
787*c2c66affSColin Finck    object,
788*c2c66affSColin Finck    oleautomation,
789*c2c66affSColin Finck    dual,
790*c2c66affSColin Finck    nonextensible,
791*c2c66affSColin Finck    uuid(be56a644-af0e-4e0e-a311-c1d8e695cbff),
792*c2c66affSColin Finck    pointer_default(unique),
793*c2c66affSColin Finck]
794*c2c66affSColin Finckinterface IUpdateHistoryEntry : IDispatch
795*c2c66affSColin Finck{
796*c2c66affSColin Finck    [propget, id(0x60020001)]
797*c2c66affSColin Finck    HRESULT Operation( [out, retval] UpdateOperation *retval );
798*c2c66affSColin Finck
799*c2c66affSColin Finck    [propget, id(0x60020002)]
800*c2c66affSColin Finck    HRESULT ResultCode( [out, retval] OperationResultCode *retval );
801*c2c66affSColin Finck
802*c2c66affSColin Finck    [propget, id(0x60020003)]
803*c2c66affSColin Finck    HRESULT HResult( [out, retval] LONG *retval );
804*c2c66affSColin Finck
805*c2c66affSColin Finck    [propget, id(0x60020004)]
806*c2c66affSColin Finck    HRESULT Date( [out, retval] DATE *retval );
807*c2c66affSColin Finck
808*c2c66affSColin Finck    [propget, id(0x60020005)]
809*c2c66affSColin Finck    HRESULT UpdateIdentity( [out, retval] IUpdateIdentity **retval );
810*c2c66affSColin Finck
811*c2c66affSColin Finck    [propget, id(0x60020006)]
812*c2c66affSColin Finck    HRESULT Title( [out, retval] BSTR *retval );
813*c2c66affSColin Finck
814*c2c66affSColin Finck    [propget, id(0x60020007)]
815*c2c66affSColin Finck    HRESULT Description( [out, retval] BSTR *retval );
816*c2c66affSColin Finck
817*c2c66affSColin Finck    [propget, id(0x60020008)]
818*c2c66affSColin Finck    HRESULT UnmappedResultCode( [out, retval] LONG *retval );
819*c2c66affSColin Finck
820*c2c66affSColin Finck    [propget, id(0x60020009)]
821*c2c66affSColin Finck    HRESULT ClientApplicationID( [out, retval] BSTR *retval );
822*c2c66affSColin Finck
823*c2c66affSColin Finck    [propget, id(0x6002000a)]
824*c2c66affSColin Finck    HRESULT ServerSelection( [out, retval] ServerSelection *retval );
825*c2c66affSColin Finck
826*c2c66affSColin Finck    [propget, id(0x6002000b)]
827*c2c66affSColin Finck    HRESULT ServiceID( [out, retval] BSTR *retval );
828*c2c66affSColin Finck
829*c2c66affSColin Finck    [propget, id(0x6002000c)]
830*c2c66affSColin Finck    HRESULT UninstallationSteps( [out, retval] IStringCollection **retval );
831*c2c66affSColin Finck
832*c2c66affSColin Finck    [propget, id(0x6002000d)]
833*c2c66affSColin Finck    HRESULT UninstallationNotes( [out, retval] BSTR *retval );
834*c2c66affSColin Finck
835*c2c66affSColin Finck    [propget, id(0x6002000e)]
836*c2c66affSColin Finck    HRESULT SupportUrl( [out, retval] BSTR *retval );
837*c2c66affSColin Finck}
838*c2c66affSColin Finck
839*c2c66affSColin Finck[
840*c2c66affSColin Finck    object,
841*c2c66affSColin Finck    oleautomation,
842*c2c66affSColin Finck    dual,
843*c2c66affSColin Finck    nonextensible,
844*c2c66affSColin Finck    uuid(a7f04f3c-a290-435b-aadf-a116c3357a5c),
845*c2c66affSColin Finck    pointer_default(unique),
846*c2c66affSColin Finck]
847*c2c66affSColin Finckinterface IUpdateHistoryEntryCollection : IDispatch
848*c2c66affSColin Finck{
849*c2c66affSColin Finck    [propget, id(DISPID_VALUE)]
850*c2c66affSColin Finck    HRESULT Item( [in] LONG index,
851*c2c66affSColin Finck                  [out, retval] IUpdateHistoryEntry **retval );
852*c2c66affSColin Finck
853*c2c66affSColin Finck    [propget, id(DISPID_NEWENUM)]
854*c2c66affSColin Finck    HRESULT _NewEnum( [out, retval] IUnknown **retval );
855*c2c66affSColin Finck
856*c2c66affSColin Finck    [propget, id(0x60020001)]
857*c2c66affSColin Finck    HRESULT Count( [out, retval] LONG *retval );
858*c2c66affSColin Finck}
859*c2c66affSColin Finck
860*c2c66affSColin Finck[
861*c2c66affSColin Finck    object,
862*c2c66affSColin Finck    uuid(8f45abf1-f9ae-4b95-a933-f0f66e5056ea),
863*c2c66affSColin Finck    oleautomation,
864*c2c66affSColin Finck    dual,
865*c2c66affSColin Finck    nonextensible,
866*c2c66affSColin Finck    pointer_default(unique),
867*c2c66affSColin Finck]
868*c2c66affSColin Finckinterface IUpdateSearcher : IDispatch
869*c2c66affSColin Finck{
870*c2c66affSColin Finck    [propget]
871*c2c66affSColin Finck    HRESULT CanAutomaticallyUpgradeService(
872*c2c66affSColin Finck        [out, retval] VARIANT_BOOL *retval);
873*c2c66affSColin Finck
874*c2c66affSColin Finck    [propput]
875*c2c66affSColin Finck    HRESULT CanAutomaticallyUpgradeService(
876*c2c66affSColin Finck        [in] VARIANT_BOOL value);
877*c2c66affSColin Finck
878*c2c66affSColin Finck    [propget]
879*c2c66affSColin Finck    HRESULT ClientApplicationID(
880*c2c66affSColin Finck        [out, retval] BSTR *retval);
881*c2c66affSColin Finck
882*c2c66affSColin Finck    [propput]
883*c2c66affSColin Finck    HRESULT ClientApplicationID(
884*c2c66affSColin Finck        [in] BSTR value);
885*c2c66affSColin Finck
886*c2c66affSColin Finck    [propget]
887*c2c66affSColin Finck    HRESULT IncludePotentiallySupersededUpdates(
888*c2c66affSColin Finck        [out, retval] VARIANT_BOOL *retval);
889*c2c66affSColin Finck
890*c2c66affSColin Finck    [propput]
891*c2c66affSColin Finck    HRESULT IncludePotentiallySupersededUpdates(
892*c2c66affSColin Finck        [in] VARIANT_BOOL value);
893*c2c66affSColin Finck
894*c2c66affSColin Finck    [propget]
895*c2c66affSColin Finck    HRESULT ServerSelection(
896*c2c66affSColin Finck        [out, retval] ServerSelection *retval);
897*c2c66affSColin Finck
898*c2c66affSColin Finck    [propput]
899*c2c66affSColin Finck    HRESULT ServerSelection(
900*c2c66affSColin Finck        [in] ServerSelection value);
901*c2c66affSColin Finck
902*c2c66affSColin Finck    HRESULT BeginSearch(
903*c2c66affSColin Finck        [in] BSTR criteria,
904*c2c66affSColin Finck        [in] IUnknown *onCompleted,
905*c2c66affSColin Finck        [in] VARIANT state,
906*c2c66affSColin Finck        [out, retval] ISearchJob **retval);
907*c2c66affSColin Finck
908*c2c66affSColin Finck    HRESULT EndSearch(
909*c2c66affSColin Finck        [in] ISearchJob *searchJob,
910*c2c66affSColin Finck        [out, retval] ISearchResult **retval);
911*c2c66affSColin Finck
912*c2c66affSColin Finck    HRESULT EscapeString(
913*c2c66affSColin Finck        [in] BSTR unescaped,
914*c2c66affSColin Finck        [out, retval] BSTR *retval);
915*c2c66affSColin Finck
916*c2c66affSColin Finck    HRESULT QueryHistory(
917*c2c66affSColin Finck        [in] LONG startIndex,
918*c2c66affSColin Finck        [in] LONG count,
919*c2c66affSColin Finck        [out, retval] IUpdateHistoryEntryCollection **retval);
920*c2c66affSColin Finck
921*c2c66affSColin Finck    HRESULT Search(
922*c2c66affSColin Finck        [in] BSTR criteria,
923*c2c66affSColin Finck        [out, retval] ISearchResult **retval);
924*c2c66affSColin Finck
925*c2c66affSColin Finck    [propget]
926*c2c66affSColin Finck    HRESULT Online(
927*c2c66affSColin Finck        [out, retval] VARIANT_BOOL *retval);
928*c2c66affSColin Finck
929*c2c66affSColin Finck    [propput]
930*c2c66affSColin Finck    HRESULT Online(
931*c2c66affSColin Finck        [in] VARIANT_BOOL value);
932*c2c66affSColin Finck
933*c2c66affSColin Finck    HRESULT GetTotalHistoryCount(
934*c2c66affSColin Finck        [out, retval] LONG *retval);
935*c2c66affSColin Finck
936*c2c66affSColin Finck    [propget]
937*c2c66affSColin Finck    HRESULT ServiceID(
938*c2c66affSColin Finck        [out, retval] BSTR *retval);
939*c2c66affSColin Finck
940*c2c66affSColin Finck    [propput]
941*c2c66affSColin Finck    HRESULT ServiceID(
942*c2c66affSColin Finck        [in] BSTR value);
943*c2c66affSColin Finck}
944*c2c66affSColin Finck
945*c2c66affSColin Finck[
946*c2c66affSColin Finck    object,
947*c2c66affSColin Finck    oleautomation,
948*c2c66affSColin Finck    dual,
949*c2c66affSColin Finck    nonextensible,
950*c2c66affSColin Finck    uuid(bf99af76-b575-42ad-8aa4-33cbb5477af1),
951*c2c66affSColin Finck    pointer_default(unique),
952*c2c66affSColin Finck]
953*c2c66affSColin Finckinterface IUpdateDownloadResult : IDispatch
954*c2c66affSColin Finck{
955*c2c66affSColin Finck    [propget, id(0x60020001)]
956*c2c66affSColin Finck    HRESULT HResult( [out, retval] LONG *retval );
957*c2c66affSColin Finck
958*c2c66affSColin Finck    [propget, id(0x60020002)]
959*c2c66affSColin Finck    HRESULT ResultCode( [out, retval] OperationResultCode *retval );
960*c2c66affSColin Finck}
961*c2c66affSColin Finck
962*c2c66affSColin Finck[
963*c2c66affSColin Finck    object,
964*c2c66affSColin Finck    oleautomation,
965*c2c66affSColin Finck    dual,
966*c2c66affSColin Finck    nonextensible,
967*c2c66affSColin Finck    uuid(d31a5bac-f719-4178-9dbb-5e2cb47fd18a),
968*c2c66affSColin Finck    pointer_default(unique),
969*c2c66affSColin Finck]
970*c2c66affSColin Finckinterface IDownloadProgress : IDispatch
971*c2c66affSColin Finck{
972*c2c66affSColin Finck    [propget, id(0x60020001)]
973*c2c66affSColin Finck    HRESULT CurrentUpdateBytesDownloaded( [out, retval] DECIMAL *retval );
974*c2c66affSColin Finck
975*c2c66affSColin Finck    [propget, id(0x60020002)]
976*c2c66affSColin Finck    HRESULT CurrentUpdateBytesToDownload( [out, retval] DECIMAL *retval );
977*c2c66affSColin Finck
978*c2c66affSColin Finck    [propget, id(0x60020003)]
979*c2c66affSColin Finck    HRESULT CurrentUpdateIndex( [out, retval] LONG *retval );
980*c2c66affSColin Finck
981*c2c66affSColin Finck    [propget, id(0x60020004)]
982*c2c66affSColin Finck    HRESULT PercentComplete( [out, retval] LONG *retval );
983*c2c66affSColin Finck
984*c2c66affSColin Finck    [propget, id(0x60020005)]
985*c2c66affSColin Finck    HRESULT TotalBytesDownloaded( [out, retval] DECIMAL *retval );
986*c2c66affSColin Finck
987*c2c66affSColin Finck    [propget, id(0x60020006)]
988*c2c66affSColin Finck    HRESULT TotalBytesToDownload( [out, retval] DECIMAL *retval );
989*c2c66affSColin Finck
990*c2c66affSColin Finck    [id(0x60020007)]
991*c2c66affSColin Finck    HRESULT GetUpdateResult( [in] LONG updateIndex,
992*c2c66affSColin Finck                             [out, retval] IUpdateDownloadResult **retval );
993*c2c66affSColin Finck
994*c2c66affSColin Finck
995*c2c66affSColin Finck    [propget, id(0x60020008)]
996*c2c66affSColin Finck    HRESULT CurrentUpdateDownloadPhase( [out, retval] DownloadPhase *retval );
997*c2c66affSColin Finck
998*c2c66affSColin Finck    [propget, id(0x60020009)]
999*c2c66affSColin Finck    HRESULT CurrentUpdatePercentComplete( [out, retval] LONG *retval );
1000*c2c66affSColin Finck}
1001*c2c66affSColin Finck
1002*c2c66affSColin Finck[
1003*c2c66affSColin Finck    object,
1004*c2c66affSColin Finck    oleautomation,
1005*c2c66affSColin Finck    dual,
1006*c2c66affSColin Finck    nonextensible,
1007*c2c66affSColin Finck    uuid(c574de85-7358-43f6-aae8-8697e62d8ba7),
1008*c2c66affSColin Finck    pointer_default(unique),
1009*c2c66affSColin Finck]
1010*c2c66affSColin Finckinterface IDownloadJob : IDispatch
1011*c2c66affSColin Finck{
1012*c2c66affSColin Finck    [propget, id(0x60020001)]
1013*c2c66affSColin Finck    HRESULT AsyncState( [out, retval] VARIANT *retval );
1014*c2c66affSColin Finck
1015*c2c66affSColin Finck    [propget, id(0x60020002)]
1016*c2c66affSColin Finck    HRESULT IsCompleted( [out, retval] VARIANT_BOOL *retval );
1017*c2c66affSColin Finck
1018*c2c66affSColin Finck    [propget, id(0x60020003)]
1019*c2c66affSColin Finck    HRESULT Updates( [out, retval] IUpdateCollection **retval );
1020*c2c66affSColin Finck
1021*c2c66affSColin Finck    [id(0x60020004)]
1022*c2c66affSColin Finck    HRESULT CleanUp();
1023*c2c66affSColin Finck
1024*c2c66affSColin Finck    [id(0x60020005)]
1025*c2c66affSColin Finck    HRESULT GetProgress( [out, retval] IDownloadProgress **retval );
1026*c2c66affSColin Finck
1027*c2c66affSColin Finck    [id(0x60020006)]
1028*c2c66affSColin Finck    HRESULT RequestAbort();
1029*c2c66affSColin Finck}
1030*c2c66affSColin Finck
1031*c2c66affSColin Finck[
1032*c2c66affSColin Finck    object,
1033*c2c66affSColin Finck    oleautomation,
1034*c2c66affSColin Finck    dual,
1035*c2c66affSColin Finck    nonextensible,
1036*c2c66affSColin Finck    uuid(daa4fdd0-4727-4dbe-a1e7-745dca317144),
1037*c2c66affSColin Finck    pointer_default(unique),
1038*c2c66affSColin Finck]
1039*c2c66affSColin Finckinterface IDownloadResult : IDispatch
1040*c2c66affSColin Finck{
1041*c2c66affSColin Finck    [propget, id(0x60020001)]
1042*c2c66affSColin Finck    HRESULT HResult( [out, retval] LONG *retval );
1043*c2c66affSColin Finck
1044*c2c66affSColin Finck    [propget, id(0x60020002)]
1045*c2c66affSColin Finck    HRESULT ResultCode( [out, retval] OperationResultCode *retval );
1046*c2c66affSColin Finck
1047*c2c66affSColin Finck    [id(0x60020003)]
1048*c2c66affSColin Finck    HRESULT GetUpdateResult( [in] LONG updateIndex,
1049*c2c66affSColin Finck                             [out, retval] IUpdateDownloadResult **retval );
1050*c2c66affSColin Finck}
1051*c2c66affSColin Finck
1052*c2c66affSColin Finck[
1053*c2c66affSColin Finck    object,
1054*c2c66affSColin Finck    uuid(68f1c6f9-7ecc-4666-a464-247fe12496c3),
1055*c2c66affSColin Finck    oleautomation,
1056*c2c66affSColin Finck    dual,
1057*c2c66affSColin Finck    nonextensible,
1058*c2c66affSColin Finck    pointer_default(unique),
1059*c2c66affSColin Finck    hidden
1060*c2c66affSColin Finck]
1061*c2c66affSColin Finckinterface IUpdateDownloader : IDispatch
1062*c2c66affSColin Finck{
1063*c2c66affSColin Finck    [propget]
1064*c2c66affSColin Finck    HRESULT ClientApplicationID(
1065*c2c66affSColin Finck        [out, retval] BSTR *retval);
1066*c2c66affSColin Finck
1067*c2c66affSColin Finck    [propput]
1068*c2c66affSColin Finck    HRESULT ClientApplicationID(
1069*c2c66affSColin Finck        [in] BSTR value);
1070*c2c66affSColin Finck
1071*c2c66affSColin Finck    [propget]
1072*c2c66affSColin Finck    HRESULT IsForced(
1073*c2c66affSColin Finck        [out, retval] VARIANT_BOOL *retval);
1074*c2c66affSColin Finck
1075*c2c66affSColin Finck    [propput]
1076*c2c66affSColin Finck    HRESULT IsForced(
1077*c2c66affSColin Finck        [in] VARIANT_BOOL value);
1078*c2c66affSColin Finck
1079*c2c66affSColin Finck    [propget]
1080*c2c66affSColin Finck    HRESULT Priority(
1081*c2c66affSColin Finck        [out, retval] DownloadPriority *retval);
1082*c2c66affSColin Finck
1083*c2c66affSColin Finck    [propput]
1084*c2c66affSColin Finck    HRESULT Priority(
1085*c2c66affSColin Finck        [in] DownloadPriority value);
1086*c2c66affSColin Finck
1087*c2c66affSColin Finck    [propget]
1088*c2c66affSColin Finck    HRESULT Updates(
1089*c2c66affSColin Finck        [out, retval] IUpdateCollection **retval);
1090*c2c66affSColin Finck
1091*c2c66affSColin Finck    [propput]
1092*c2c66affSColin Finck    HRESULT Updates(
1093*c2c66affSColin Finck        [in] IUpdateCollection *value);
1094*c2c66affSColin Finck
1095*c2c66affSColin Finck    HRESULT BeginDownload(
1096*c2c66affSColin Finck        [in] IUnknown *onProgressChanged,
1097*c2c66affSColin Finck        [in] IUnknown *onCompleted,
1098*c2c66affSColin Finck        [in] VARIANT state,
1099*c2c66affSColin Finck        [out, retval] IDownloadJob **retval);
1100*c2c66affSColin Finck
1101*c2c66affSColin Finck    HRESULT Download(
1102*c2c66affSColin Finck        [out, retval] IDownloadResult **retval);
1103*c2c66affSColin Finck
1104*c2c66affSColin Finck    HRESULT EndDownload(
1105*c2c66affSColin Finck        [in] IDownloadJob *value,
1106*c2c66affSColin Finck        [out, retval] IDownloadResult **retval);
1107*c2c66affSColin Finck}
1108*c2c66affSColin Finck
1109*c2c66affSColin Finck[
1110*c2c66affSColin Finck    object,
1111*c2c66affSColin Finck    oleautomation,
1112*c2c66affSColin Finck    dual,
1113*c2c66affSColin Finck    nonextensible,
1114*c2c66affSColin Finck    uuid(d940f0f8-3cbb-4fd0-993f-471e7f2328ad),
1115*c2c66affSColin Finck    pointer_default(unique),
1116*c2c66affSColin Finck]
1117*c2c66affSColin Finckinterface IUpdateInstallationResult : IDispatch
1118*c2c66affSColin Finck{
1119*c2c66affSColin Finck    [propget, id(0x60020001)]
1120*c2c66affSColin Finck    HRESULT HResult( [out, retval] LONG *retval );
1121*c2c66affSColin Finck
1122*c2c66affSColin Finck    [propget, id(0x60020002)]
1123*c2c66affSColin Finck    HRESULT RebootRequired( [out, retval] VARIANT_BOOL *retval );
1124*c2c66affSColin Finck
1125*c2c66affSColin Finck    [propget, id(0x60020003)]
1126*c2c66affSColin Finck    HRESULT ResultCode( [out, retval] OperationResultCode *retval );
1127*c2c66affSColin Finck}
1128*c2c66affSColin Finck
1129*c2c66affSColin Finck[
1130*c2c66affSColin Finck    object,
1131*c2c66affSColin Finck    oleautomation,
1132*c2c66affSColin Finck    dual,
1133*c2c66affSColin Finck    nonextensible,
1134*c2c66affSColin Finck    uuid(345c8244-43a3-4e32-a368-65f073b76f36),
1135*c2c66affSColin Finck    pointer_default(unique),
1136*c2c66affSColin Finck]
1137*c2c66affSColin Finckinterface IInstallationProgress : IDispatch
1138*c2c66affSColin Finck{
1139*c2c66affSColin Finck    [propget, id(0x60020001)]
1140*c2c66affSColin Finck    HRESULT CurrentUpdateIndex( [out, retval] LONG *retval );
1141*c2c66affSColin Finck
1142*c2c66affSColin Finck    [propget, id(0x60020002)]
1143*c2c66affSColin Finck    HRESULT CurrentUpdatePercentComplete( [out, retval] LONG *retval );
1144*c2c66affSColin Finck
1145*c2c66affSColin Finck    [propget, id(0x60020003)]
1146*c2c66affSColin Finck    HRESULT PercentComplete( [out, retval] LONG *retval );
1147*c2c66affSColin Finck
1148*c2c66affSColin Finck    [id(0x60020004)]
1149*c2c66affSColin Finck    HRESULT GetUpdateResult( [in] LONG updateIndex,
1150*c2c66affSColin Finck                             [out, retval] IUpdateInstallationResult **retval );
1151*c2c66affSColin Finck}
1152*c2c66affSColin Finck
1153*c2c66affSColin Finck[
1154*c2c66affSColin Finck    object,
1155*c2c66affSColin Finck    oleautomation,
1156*c2c66affSColin Finck    dual,
1157*c2c66affSColin Finck    nonextensible,
1158*c2c66affSColin Finck    uuid(5c209f0b-bad5-432a-9556-4699bed2638a),
1159*c2c66affSColin Finck    pointer_default(unique),
1160*c2c66affSColin Finck]
1161*c2c66affSColin Finckinterface IInstallationJob : IDispatch
1162*c2c66affSColin Finck{
1163*c2c66affSColin Finck    [propget, id(0x60020001)]
1164*c2c66affSColin Finck    HRESULT AsyncState( [out, retval] VARIANT *retval );
1165*c2c66affSColin Finck
1166*c2c66affSColin Finck    [propget, id(0x60020002)]
1167*c2c66affSColin Finck    HRESULT IsCompleted( [out, retval] VARIANT_BOOL *retval );
1168*c2c66affSColin Finck
1169*c2c66affSColin Finck    [propget, id(0x60020003)]
1170*c2c66affSColin Finck    HRESULT Updates( [out, retval] IUpdateCollection **retval );
1171*c2c66affSColin Finck
1172*c2c66affSColin Finck    [id(0x60020004)]
1173*c2c66affSColin Finck    HRESULT CleanUp();
1174*c2c66affSColin Finck
1175*c2c66affSColin Finck    [id(0x60020005)]
1176*c2c66affSColin Finck    HRESULT GetProgress( [out, retval] IInstallationProgress **retval );
1177*c2c66affSColin Finck
1178*c2c66affSColin Finck    [id(0x60020006)]
1179*c2c66affSColin Finck    HRESULT RequestAbort();
1180*c2c66affSColin Finck}
1181*c2c66affSColin Finck
1182*c2c66affSColin Finck[
1183*c2c66affSColin Finck    object,
1184*c2c66affSColin Finck    oleautomation,
1185*c2c66affSColin Finck    dual,
1186*c2c66affSColin Finck    nonextensible,
1187*c2c66affSColin Finck    uuid(a43c56d6-7451-48d4-af96-b6cd2d0d9b7a),
1188*c2c66affSColin Finck    pointer_default(unique),
1189*c2c66affSColin Finck]
1190*c2c66affSColin Finckinterface IInstallationResult : IDispatch
1191*c2c66affSColin Finck{
1192*c2c66affSColin Finck    [propget, id(0x60020001)]
1193*c2c66affSColin Finck    HRESULT HResult( [out, retval] LONG *retval );
1194*c2c66affSColin Finck
1195*c2c66affSColin Finck    [propget, id(0x60020002)]
1196*c2c66affSColin Finck    HRESULT RebootRequired( [out, retval] VARIANT_BOOL *retval );
1197*c2c66affSColin Finck
1198*c2c66affSColin Finck    [propget, id(0x60020003)]
1199*c2c66affSColin Finck    HRESULT ResultCode( [out, retval] OperationResultCode *retval );
1200*c2c66affSColin Finck
1201*c2c66affSColin Finck    [id(0x60020004)]
1202*c2c66affSColin Finck    HRESULT GetUpdateResult( [in] LONG updateIndex,
1203*c2c66affSColin Finck                             [out, retval] IUpdateInstallationResult **retval );
1204*c2c66affSColin Finck}
1205*c2c66affSColin Finck
1206*c2c66affSColin Finck[
1207*c2c66affSColin Finck    object,
1208*c2c66affSColin Finck    uuid(7b929c68-ccdc-4226-96b1-8724600b54c2),
1209*c2c66affSColin Finck    oleautomation,
1210*c2c66affSColin Finck    dual,
1211*c2c66affSColin Finck    nonextensible,
1212*c2c66affSColin Finck    pointer_default(unique),
1213*c2c66affSColin Finck]
1214*c2c66affSColin Finckinterface IUpdateInstaller : IDispatch
1215*c2c66affSColin Finck{
1216*c2c66affSColin Finck    [propget]
1217*c2c66affSColin Finck    HRESULT ClientApplicationID(
1218*c2c66affSColin Finck        [out, retval] BSTR *retval);
1219*c2c66affSColin Finck
1220*c2c66affSColin Finck    [propput]
1221*c2c66affSColin Finck    HRESULT ClientApplicationID(
1222*c2c66affSColin Finck        [in] BSTR value);
1223*c2c66affSColin Finck
1224*c2c66affSColin Finck    [propget]
1225*c2c66affSColin Finck    HRESULT IsForced(
1226*c2c66affSColin Finck        [out, retval] VARIANT_BOOL *retval);
1227*c2c66affSColin Finck
1228*c2c66affSColin Finck    [propput]
1229*c2c66affSColin Finck    HRESULT IsForced(
1230*c2c66affSColin Finck        [in] VARIANT_BOOL value);
1231*c2c66affSColin Finck
1232*c2c66affSColin Finck    [propget, restricted]
1233*c2c66affSColin Finck    HRESULT ParentHwnd(
1234*c2c66affSColin Finck        [out, retval] HWND *retval);
1235*c2c66affSColin Finck
1236*c2c66affSColin Finck    [propput, restricted]
1237*c2c66affSColin Finck    HRESULT ParentHwnd(
1238*c2c66affSColin Finck        [in, unique] HWND value);
1239*c2c66affSColin Finck
1240*c2c66affSColin Finck    [propput]
1241*c2c66affSColin Finck    HRESULT ParentWindow(
1242*c2c66affSColin Finck        [in, unique] IUnknown *value);
1243*c2c66affSColin Finck
1244*c2c66affSColin Finck    [propget]
1245*c2c66affSColin Finck    HRESULT ParentWindow(
1246*c2c66affSColin Finck        [out, retval] IUnknown **retval);
1247*c2c66affSColin Finck
1248*c2c66affSColin Finck    [propget]
1249*c2c66affSColin Finck    HRESULT Updates(
1250*c2c66affSColin Finck        [out, retval] IUpdateCollection **retval);
1251*c2c66affSColin Finck
1252*c2c66affSColin Finck    [propput]
1253*c2c66affSColin Finck    HRESULT Updates(
1254*c2c66affSColin Finck        [in] IUpdateCollection *value);
1255*c2c66affSColin Finck
1256*c2c66affSColin Finck    HRESULT BeginInstall(
1257*c2c66affSColin Finck        [in] IUnknown *onProgressChanged,
1258*c2c66affSColin Finck        [in] IUnknown *onCompleted,
1259*c2c66affSColin Finck        [in] VARIANT state,
1260*c2c66affSColin Finck        [out, retval] IInstallationJob **retval);
1261*c2c66affSColin Finck
1262*c2c66affSColin Finck    HRESULT BeginUninstall(
1263*c2c66affSColin Finck        [in] IUnknown *onProgressChanged,
1264*c2c66affSColin Finck        [in] IUnknown *onCompleted,
1265*c2c66affSColin Finck        [in] VARIANT state,
1266*c2c66affSColin Finck        [out, retval] IInstallationJob **retval);
1267*c2c66affSColin Finck
1268*c2c66affSColin Finck    HRESULT EndInstall(
1269*c2c66affSColin Finck        [in] IInstallationJob *value,
1270*c2c66affSColin Finck        [out, retval] IInstallationResult **retval);
1271*c2c66affSColin Finck
1272*c2c66affSColin Finck    HRESULT EndUninstall(
1273*c2c66affSColin Finck        [in] IInstallationJob *value,
1274*c2c66affSColin Finck        [out, retval] IInstallationResult **retval);
1275*c2c66affSColin Finck
1276*c2c66affSColin Finck    HRESULT Install(
1277*c2c66affSColin Finck        [out, retval] IInstallationResult **retval);
1278*c2c66affSColin Finck
1279*c2c66affSColin Finck    HRESULT RunWizard(
1280*c2c66affSColin Finck        [in, defaultvalue("")] BSTR dialogTitle,
1281*c2c66affSColin Finck        [out, retval] IInstallationResult **retval);
1282*c2c66affSColin Finck
1283*c2c66affSColin Finck    [propget]
1284*c2c66affSColin Finck    HRESULT IsBusy(
1285*c2c66affSColin Finck        [out, retval] VARIANT_BOOL *retval);
1286*c2c66affSColin Finck
1287*c2c66affSColin Finck    HRESULT Uninstall(
1288*c2c66affSColin Finck        [out, retval] IInstallationResult **retval);
1289*c2c66affSColin Finck
1290*c2c66affSColin Finck    [propget]
1291*c2c66affSColin Finck    HRESULT AllowSourcePrompts(
1292*c2c66affSColin Finck        [out, retval] VARIANT_BOOL *retval);
1293*c2c66affSColin Finck
1294*c2c66affSColin Finck    [propput]
1295*c2c66affSColin Finck    HRESULT AllowSourcePrompts(
1296*c2c66affSColin Finck        [in] VARIANT_BOOL value);
1297*c2c66affSColin Finck
1298*c2c66affSColin Finck    [propget]
1299*c2c66affSColin Finck    HRESULT RebootRequiredBeforeInstallation(
1300*c2c66affSColin Finck        [out, retval] VARIANT_BOOL *retval);
1301*c2c66affSColin Finck}
1302*c2c66affSColin Finck
1303*c2c66affSColin Finck[
1304*c2c66affSColin Finck    object,
1305*c2c66affSColin Finck    uuid(ADE87BF7-7B56-4275-8FAB-B9B0E591844B),
1306*c2c66affSColin Finck    oleautomation,
1307*c2c66affSColin Finck    hidden,
1308*c2c66affSColin Finck    dual,
1309*c2c66affSColin Finck    nonextensible,
1310*c2c66affSColin Finck    pointer_default(unique),
1311*c2c66affSColin Finck]
1312*c2c66affSColin Finckinterface ISystemInformation : IDispatch
1313*c2c66affSColin Finck{
1314*c2c66affSColin Finck    [propget]
1315*c2c66affSColin Finck    HRESULT OemHardwareSupportLink(
1316*c2c66affSColin Finck        [out, retval] BSTR *retval);
1317*c2c66affSColin Finck
1318*c2c66affSColin Finck    [propget]
1319*c2c66affSColin Finck    HRESULT RebootRequired(
1320*c2c66affSColin Finck        [out, retval] VARIANT_BOOL *retval);
1321*c2c66affSColin Finck}
1322*c2c66affSColin Finck
1323*c2c66affSColin Finck[
1324*c2c66affSColin Finck    helpstring("AutomaticUpdates Class"),
1325*c2c66affSColin Finck    threading(both),
1326*c2c66affSColin Finck    progid("Microsoft.Update.AutoUpdate.1"),
1327*c2c66affSColin Finck    vi_progid("Microsoft.Update.AutoUpdate"),
1328*c2c66affSColin Finck    uuid(bfe18e9c-6d87-4450-b37c-e02f0b373803)
1329*c2c66affSColin Finck]
1330*c2c66affSColin Finckcoclass AutomaticUpdates { interface IAutomaticUpdates; }
1331*c2c66affSColin Finck
1332*c2c66affSColin Finck[
1333*c2c66affSColin Finck    helpstring("UpdateSession Class"),
1334*c2c66affSColin Finck    threading(both),
1335*c2c66affSColin Finck    progid("Microsoft.Update.Session.1"),
1336*c2c66affSColin Finck    vi_progid("Microsoft.Update.Session"),
1337*c2c66affSColin Finck    uuid(4cb43d7f-7eee-4906-8698-60da1c38f2fe)
1338*c2c66affSColin Finck]
1339*c2c66affSColin Finckcoclass UpdateSession { interface IUpdateSession; }
1340*c2c66affSColin Finck
1341*c2c66affSColin Finck[
1342*c2c66affSColin Finck    helpstring("SystemInformation Class"),
1343*c2c66affSColin Finck    threading(both),
1344*c2c66affSColin Finck    progid("Microsoft.Update.SystemInfo.1"),
1345*c2c66affSColin Finck    vi_progid("Microsoft.Update.SystemInfo"),
1346*c2c66affSColin Finck    uuid(C01B9BA0-BEA7-41BA-B604-D0A36F469133)
1347*c2c66affSColin Finck]
1348*c2c66affSColin Finckcoclass SystemInformation { interface ISystemInformation; }
1349*c2c66affSColin Finck
1350*c2c66affSColin Finck} /* WUApiLib */
1351