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