[SAL]
[reactos.git] / reactos / include / psdk / wuapi.idl
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
19 import "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 ]
32 library WUApiLib {
33
34 importlib("stdole2.tlb");
35
36 interface ICategoryCollection;
37 interface IStringCollection;
38 interface IUpdateCollection;
39 interface IUpdateDownloader;
40 interface IUpdateInstaller;
41 interface IUpdateSearcher;
42
43 typedef [public] enum tagDownloadPriority
44 {
45 dpLow = 1,
46 dpNormal = 2,
47 dpHigh = 3,
48 } DownloadPriority;
49
50 typedef [public] enum tagServerSelection
51 {
52 ssDefault = 0,
53 ssManagedServer = 1,
54 ssWindowsUpdate = 2,
55 ssOthers = 3,
56 } ServerSelection;
57
58 typedef [public] enum tagAutomaticUpdatesNotificationLevel
59 {
60 aunlNotConfigured,
61 aunlDisabled,
62 aunlNotifyBeforeDownload,
63 aunlNotifyBeforeInstallation,
64 aunlScheduledInstallation,
65 } AutomaticUpdatesNotificationLevel;
66
67 typedef [public] enum tagAutomaticUpdatesScheduledInstallationDay
68 {
69 ausidEveryDay,
70 ausidEverySunday,
71 ausidEveryMonday,
72 ausidEveryTuesday,
73 ausidEveryWednesday,
74 ausidEveryThursday,
75 ausidEveryFriday,
76 ausidEverySaturday,
77 } AutomaticUpdatesScheduledInstallationDay;
78
79 typedef [public] enum tagDownloadPhase
80 {
81 dphInitializing,
82 dphDownloading,
83 dphVerifying,
84 } DownloadPhase;
85
86 typedef [public] enum tagOperationResultCode
87 {
88 orcNotStarted,
89 orcInProgress,
90 orcSucceeded,
91 orcSucceededWithErrors,
92 orcFailed,
93 orcAborted,
94 } OperationResultCode;
95
96 typedef [public] enum tagUpdateExceptionContext
97 {
98 uecGeneral = 1,
99 uecWindowsDriver,
100 uecWindowsInstaller
101 } UpdateExceptionContext;
102
103 typedef [public] enum tagInstallationImpact
104 {
105 iiNormal,
106 iiMinor,
107 iiRequiresExclusiveHandling
108 } InstallationImpact;
109
110 typedef [public] enum tagInstallationRebootBehavior
111 {
112 irbNeverReboots,
113 irbAlwaysRequiresReboot,
114 irbCanRequestReboot
115 } InstallationRebootBehavior;
116
117 typedef [public] enum tagUpdateType
118 {
119 utSoftware = 1,
120 utDriver
121 } UpdateType;
122
123 typedef [public] enum tagUpdateOperation
124 {
125 uoInstallation = 1,
126 uoUninstallation
127 } UpdateOperation;
128
129 typedef [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 ]
145 interface 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 ]
187 interface 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 ]
213 interface 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 ]
268 interface 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 ]
308 interface 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 ]
331 interface 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 ]
369 interface 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 ]
391 interface 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 ]
436 interface 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 ]
456 interface 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 ]
477 interface 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 ]
495 interface 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 ]
518 interface 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 ]
532 interface 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 ]
554 interface 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 ]
703 interface 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 ]
748 interface 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 ]
771 interface 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 ]
794 interface 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 ]
847 interface 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 ]
868 interface 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 ]
953 interface 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 ]
970 interface 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 ]
1010 interface 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 ]
1039 interface 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 ]
1061 interface 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 ]
1117 interface 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 ]
1137 interface 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 ]
1161 interface 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 ]
1190 interface 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 ]
1214 interface 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 ]
1312 interface 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 ]
1330 coclass 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 ]
1339 coclass 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 ]
1348 coclass SystemInformation { interface ISystemInformation; }
1349
1350 } /* WUApiLib */