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