//======================================================================= // // (C) Copyright 2003-2004 Microsoft Corporation. All Rights Reserved. // // File: wuapi.idl // // Contents: Windows Update Services Client Interfaces. // //======================================================================= cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("// wuapi.h") cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("// (C) Copyright 2003-2004 Microsoft Corporation. All Rights Reserved.") cpp_quote("//") cpp_quote("// THIS CODE AND INFORMATION IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF") cpp_quote("// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO") cpp_quote("// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A") cpp_quote("// PARTICULAR PURPOSE.") cpp_quote("//=--------------------------------------------------------------------------=") cpp_quote("") cpp_quote("#pragma comment(lib, \"wuguid.lib\")") cpp_quote("") cpp_quote("//--------------------------------------------------------------------------") cpp_quote("// Windows Update Services Client Interfaces.") cpp_quote("// --------------------------------------------------------------------------------") cpp_quote("// GUIDS") cpp_quote("// --------------------------------------------------------------------------------") cpp_quote("// {B596CC9F-56E5-419E-A622-E01BB457431E}") cpp_quote("DEFINE_GUID(LIBID_WUApiLib,0xB596CC9F,0x56E5,0x419E,0xA6,0x22,0xE0,0x1B,0xB4,0x57,0x43,0x1E);") cpp_quote("") cpp_quote("// {A976C28D-75A1-42AA-94AE-8AF8B872089A}") cpp_quote("DEFINE_GUID(IID_IUpdateLockdown,0xa976c28d,0x75a1,0x42aa,0x94,0xae,0x8a,0xf8,0xb8,0x72,0x08,0x9a);") cpp_quote("") cpp_quote("// {EFF90582-2DDC-480F-A06D-60F3FBC362C3}") cpp_quote("DEFINE_GUID(IID_IStringCollection,0xeff90582,0x2ddc,0x480f,0xa0,0x6d,0x60,0xf3,0xfb,0xc3,0x62,0xc3);") cpp_quote("") cpp_quote("// {174C81FE-AECD-4DAE-B8A0-2C6318DD86A8}") cpp_quote("DEFINE_GUID(IID_IWebProxy,0x174c81fe,0xaecd,0x4dae,0xb8,0xa0,0x2c,0x63,0x18,0xdd,0x86,0xa8);") cpp_quote("") cpp_quote("// {ADE87BF7-7B56-4275-8FAB-B9B0E591844B}") cpp_quote("DEFINE_GUID(IID_ISystemInformation,0xade87bf7,0x7b56,0x4275,0x8f,0xab,0xb9,0xb0,0xe5,0x91,0x84,0x4b);") cpp_quote("") cpp_quote("// {2EE48F22-AF3C-405F-8970-F71BE12EE9A2}") cpp_quote("DEFINE_GUID(IID_IAutomaticUpdatesSettings,0x2ee48f22,0xaf3c,0x405f,0x89,0x70,0xf7,0x1b,0xe1,0x2e,0xe9,0xa2);") cpp_quote("") cpp_quote("// {673425BF-C082-4C7C-BDFD-569464B8E0CE}") cpp_quote("DEFINE_GUID(IID_IAutomaticUpdates,0x673425bf,0xc082,0x4c7c,0xbd,0xfd,0x56,0x94,0x64,0xb8,0xe0,0xce);") cpp_quote("") cpp_quote("// {46297823-9940-4C09-AED9-CD3EA6D05968}") cpp_quote("DEFINE_GUID(IID_IUpdateIdentity,0x46297823,0x9940,0x4c09,0xae,0xd9,0xcd,0x3e,0xa6,0xd0,0x59,0x68);") cpp_quote("") cpp_quote("// {7C907864-346C-4AEB-8F3F-57DA289F969F}") cpp_quote("DEFINE_GUID(IID_IImageInformation,0x7c907864,0x346c,0x4aeb,0x8f,0x3f,0x57,0xda,0x28,0x9f,0x96,0x9f);") cpp_quote("") cpp_quote("// {81DDC1B8-9D35-47A6-B471-5B80F519223B}") cpp_quote("DEFINE_GUID(IID_ICategory,0x81ddc1b8,0x9d35,0x47a6,0xb4,0x71,0x5b,0x80,0xf5,0x19,0x22,0x3b);") cpp_quote("") cpp_quote("// {3A56BFB8-576C-43F7-9335-FE4838FD7E37}") cpp_quote("DEFINE_GUID(IID_ICategoryCollection,0x3a56bfb8,0x576c,0x43f7,0x93,0x35,0xfe,0x48,0x38,0xfd,0x7e,0x37);") cpp_quote("") cpp_quote("// {D9A59339-E245-4DBD-9686-4D5763E39624}") cpp_quote("DEFINE_GUID(IID_IInstallationBehavior,0xd9a59339,0xe245,0x4dbd,0x96,0x86,0x4d,0x57,0x63,0xe3,0x96,0x24);") cpp_quote("") cpp_quote("// {6A92B07A-D821-4682-B423-5C805022CC4D}") cpp_quote("DEFINE_GUID(IID_IUpdate,0x6a92b07a,0xd821,0x4682,0xb4,0x23,0x5c,0x80,0x50,0x22,0xcc,0x4d);") cpp_quote("") cpp_quote("// {B383CD1A-5CE9-4504-9F63-764B1236F191}") cpp_quote("DEFINE_GUID(IID_IWindowsDriverUpdate,0xb383cd1a,0x5ce9,0x4504,0x9f,0x63,0x76,0x4b,0x12,0x36,0xf1,0x91);") cpp_quote("") cpp_quote("// {07F7438C-7709-4CA5-B518-91279288134E}") cpp_quote("DEFINE_GUID(IID_IUpdateCollection,0x07f7438c,0x7709,0x4ca5,0xb5,0x18,0x91,0x27,0x92,0x88,0x13,0x4e);") cpp_quote("") cpp_quote("// {A376DD5E-09D4-427F-AF7C-FED5B6E1C1D6}") cpp_quote("DEFINE_GUID(IID_IUpdateException,0xa376dd5e,0x09d4,0x427f,0xaf,0x7c,0xfe,0xd5,0xb6,0xe1,0xc1,0xd6);") cpp_quote("") cpp_quote("// {A37D00F5-7BB0-4953-B414-F9E98326F2E8}") cpp_quote("DEFINE_GUID(IID_IInvalidProductLicenseException,0xa37d00f5,0x7bb0,0x4953,0xb4,0x14,0xf9,0xe9,0x83,0x26,0xf2,0xe8);") cpp_quote("") cpp_quote("// {A37D00F5-7BB0-4953-B414-F9E98326F2E8}") cpp_quote("DEFINE_GUID(IID_IUpdateExceptionCollection,0x503626a3,0x8e14,0x4729,0x93,0x55,0x0f,0xe6,0x64,0xbd,0x23,0x21);") cpp_quote("") cpp_quote("// {D40CFF62-E08C-4498-941A-01E25F0FD33C}") cpp_quote("DEFINE_GUID(IID_ISearchResult,0xd40cff62,0xe08c,0x4498,0x94,0x1a,0x01,0xe2,0x5f,0x0f,0xd3,0x3c);") cpp_quote("") cpp_quote("// {7366EA16-7A1A-4EA2-B042-973D3E9CD99B}") cpp_quote("DEFINE_GUID(IID_ISearchJob,0x7366ea16,0x7a1a,0x4ea2,0xb0,0x42,0x97,0x3d,0x3e,0x9c,0xd9,0x9b);") cpp_quote("") cpp_quote("// {A700A634-2850-4C47-938A-9E4B6E5AF9A6}") cpp_quote("DEFINE_GUID(IID_ISearchCompletedCallbackArgs,0xa700a634,0x2850,0x4c47,0x93,0x8a,0x9e,0x4b,0x6e,0x5a,0xf9,0xa6);") cpp_quote("") cpp_quote("// {88AEE058-D4B0-4725-A2F1-814A67AE964C}") cpp_quote("DEFINE_GUID(IID_ISearchCompletedCallback,0x88aee058,0xd4b0,0x4725,0xa2,0xf1,0x81,0x4a,0x67,0xae,0x96,0x4c);") cpp_quote("") cpp_quote("// {BE56A644-AF0E-4E0E-A311-C1D8E695CBFF}") cpp_quote("DEFINE_GUID(IID_IUpdateHistoryEntry,0xbe56a644,0xaf0e,0x4e0e,0xa3,0x11,0xc1,0xd8,0xe6,0x95,0xcb,0xff);") cpp_quote("") cpp_quote("// {A7F04F3C-A290-435B-AADF-A116C3357A5C}") cpp_quote("DEFINE_GUID(IID_IUpdateHistoryEntryCollection,0xa7f04f3c,0xa290,0x435b,0xaa,0xdf,0xa1,0x16,0xc3,0x35,0x7a,0x5c);") cpp_quote("") cpp_quote("// {8F45ABF1-F9AE-4B95-A933-F0F66E5056EA}") cpp_quote("DEFINE_GUID(IID_IUpdateSearcher,0x8f45abf1,0xf9ae,0x4b95,0xa9,0x33,0xf0,0xf6,0x6e,0x50,0x56,0xea);") cpp_quote("") cpp_quote("// {BF99AF76-B575-42AD-8AA4-33CBB5477AF1}") cpp_quote("DEFINE_GUID(IID_IUpdateDownloadResult,0xbf99af76,0xb575,0x42ad,0x8a,0xa4,0x33,0xcb,0xb5,0x47,0x7a,0xf1);") cpp_quote("") cpp_quote("// {DAA4FDD0-4727-4DBE-A1E7-745DCA317144}") cpp_quote("DEFINE_GUID(IID_IDownloadResult,0xdaa4fdd0,0x4727,0x4dbe,0xa1,0xe7,0x74,0x5d,0xca,0x31,0x71,0x44);") cpp_quote("") cpp_quote("// {D31A5BAC-F719-4178-9DBB-5E2CB47FD18A}") cpp_quote("DEFINE_GUID(IID_IDownloadProgress,0xd31a5bac,0xf719,0x4178,0x9d,0xbb,0x5e,0x2c,0xb4,0x7f,0xd1,0x8a);") cpp_quote("") cpp_quote("// {C574DE85-7358-43F6-AAE8-8697E62D8BA7}") cpp_quote("DEFINE_GUID(IID_IDownloadJob,0xc574de85,0x7358,0x43f6,0xaa,0xe8,0x86,0x97,0xe6,0x2d,0x8b,0xa7);") cpp_quote("") cpp_quote("// {FA565B23-498C-47A0-979D-E7D5B1813360}") cpp_quote("DEFINE_GUID(IID_IDownloadCompletedCallbackArgs,0xfa565b23,0x498c,0x47a0,0x97,0x9d,0xe7,0xd5,0xb1,0x81,0x33,0x60);") cpp_quote("") cpp_quote("// {77254866-9F5B-4C8E-B9E2-C77A8530D64B}") cpp_quote("DEFINE_GUID(IID_IDownloadCompletedCallback,0x77254866,0x9f5b,0x4c8e,0xb9,0xe2,0xc7,0x7a,0x85,0x30,0xd6,0x4b);") cpp_quote("") cpp_quote("// {324FF2C6-4981-4B04-9412-57481745AB24}") cpp_quote("DEFINE_GUID(IID_IDownloadProgressChangedCallbackArgs,0x324ff2c6,0x4981,0x4b04,0x94,0x12,0x57,0x48,0x17,0x45,0xab,0x24);") cpp_quote("") cpp_quote("// {8C3F1CDD-6173-4591-AEBD-A56A53CA77C1}") cpp_quote("DEFINE_GUID(IID_IDownloadProgressChangedCallback,0x8c3f1cdd,0x6173,0x4591,0xae,0xbd,0xa5,0x6a,0x53,0xca,0x77,0xc1);") cpp_quote("") cpp_quote("// {68F1C6F9-7ECC-4666-A464-247FE12496C3}") cpp_quote("DEFINE_GUID(IID_IUpdateDownloader,0x68f1c6f9,0x7ecc,0x4666,0xa4,0x64,0x24,0x7f,0xe1,0x24,0x96,0xc3);") cpp_quote("") cpp_quote("// {D940F0F8-3CBB-4FD0-993F-471E7F2328AD}") cpp_quote("DEFINE_GUID(IID_IUpdateInstallationResult,0xd940f0f8,0x3cbb,0x4fd0,0x99,0x3f,0x47,0x1e,0x7f,0x23,0x28,0xad);") cpp_quote("") cpp_quote("// {A43C56D6-7451-48D4-AF96-B6CD2D0D9B7A}") cpp_quote("DEFINE_GUID(IID_IInstallationResult,0xa43c56d6,0x7451,0x48d4,0xaf,0x96,0xb6,0xcd,0x2d,0x0d,0x9b,0x7a);") cpp_quote("") cpp_quote("// {345C8244-43A3-4E32-A368-65F073B76F36}") cpp_quote("DEFINE_GUID(IID_IInstallationProgress,0x345c8244,0x43a3,0x4e32,0xa3,0x68,0x65,0xf0,0x73,0xb7,0x6f,0x36);") cpp_quote("") cpp_quote("// {5C209F0B-BAD5-432A-9556-4699BED2638A}") cpp_quote("DEFINE_GUID(IID_IInstallationJob,0x5c209f0b,0xbad5,0x432a,0x95,0x56,0x46,0x99,0xbe,0xd2,0x63,0x8a);") cpp_quote("") cpp_quote("// {250E2106-8EFB-4705-9653-EF13C581B6A1}") cpp_quote("DEFINE_GUID(IID_IInstallationCompletedCallbackArgs,0x250e2106,0x8efb,0x4705,0x96,0x53,0xef,0x13,0xc5,0x81,0xb6,0xa1);") cpp_quote("") cpp_quote("// {45F4F6F3-D602-4F98-9A8A-3EFA152AD2D3}") cpp_quote("DEFINE_GUID(IID_IInstallationCompletedCallback,0x45f4f6f3,0xd602,0x4f98,0x9a,0x8a,0x3e,0xfa,0x15,0x2a,0xd2,0xd3);") cpp_quote("") cpp_quote("// {E4F14E1E-689D-4218-A0B9-BC189C484A01}") cpp_quote("DEFINE_GUID(IID_IInstallationProgressChangedCallbackArgs,0xe4f14e1e,0x689d,0x4218,0xa0,0xb9,0xbc,0x18,0x9c,0x48,0x4a,0x01);") cpp_quote("") cpp_quote("// {E01402D5-F8DA-43BA-A012-38894BD048F1}") cpp_quote("DEFINE_GUID(IID_IInstallationProgressChangedCallback,0xe01402d5,0xf8da,0x43ba,0xa0,0x12,0x38,0x89,0x4b,0xd0,0x48,0xf1);") cpp_quote("") cpp_quote("// {7B929C68-CCDC-4226-96B1-8724600B54C2}") cpp_quote("DEFINE_GUID(IID_IUpdateInstaller,0x7b929c68,0xccdc,0x4226,0x96,0xb1,0x87,0x24,0x60,0x0b,0x54,0xc2);") cpp_quote("") cpp_quote("// {816858A4-260D-4260-933A-2585F1ABC76B}") cpp_quote("DEFINE_GUID(IID_IUpdateSession,0x816858a4,0x260d,0x4260,0x93,0x3a,0x25,0x85,0xf1,0xab,0xc7,0x6b);") cpp_quote("") cpp_quote("// {9F95119D-2FE8-4A9F-BF1E-D5ACB4699F3C}") cpp_quote("DEFINE_GUID(IID_IUpdateService,0x9f95119d,0x2fe8,0x4a9f,0xbf,0x1e,0xd5,0xac,0xb4,0x69,0x9f,0x3c);") cpp_quote("") cpp_quote("// {9B0353AA-0E52-44FF-B8B0-1F7FA0437F88}") cpp_quote("DEFINE_GUID(IID_IUpdateServiceCollection,0x9b0353aa,0x0e52,0x44ff,0xb8,0xb0,0x1f,0x7f,0xa0,0x43,0x7f,0x88);") cpp_quote("") cpp_quote("// {C165FA56-6F87-43AA-9D92-6CEBCC7BCFE4}") cpp_quote("DEFINE_GUID(IID_IUpdateServiceManager,0xc165fa56,0x6f87,0x43aa,0x9d,0x92,0x6c,0xeb,0xcc,0x7b,0xcf,0xe4);") cpp_quote("") cpp_quote("// {72C97D74-7C3B-40AE-B77D-ABDB22EBA6FB}") cpp_quote("DEFINE_GUID(CLSID_StringCollection,0x72C97D74,0x7C3B,0x40AE,0xB7,0x7D,0xAB,0xDB,0x22,0xEB,0xA6,0xFB);") cpp_quote("") cpp_quote("// {B699E5E8-67FF-4177-88B0-3684A3388BFB}") cpp_quote("DEFINE_GUID(CLSID_UpdateSearcher,0xB699E5E8,0x67FF,0x4177,0x88,0xB0,0x36,0x84,0xA3,0x38,0x8B,0xFB);") cpp_quote("") cpp_quote("// {650503cf-9108-4ddc-a2ce-6c2341e1c582}") cpp_quote("DEFINE_GUID(CLSID_WebProxy,0x650503cf,0x9108,0x4ddc,0xa2,0xce,0x6c,0x23,0x41,0xe1,0xc5,0x82);") cpp_quote("") cpp_quote("// {C01B9BA0-BEA7-41BA-B604-D0A36F469133}") cpp_quote("DEFINE_GUID(CLSID_SystemInformation,0xC01B9BA0,0xBEA7,0x41BA,0xB6,0x04,0xD0,0xA3,0x6F,0x46,0x91,0x33);") cpp_quote("") cpp_quote("// {BFE18E9C-6D87-4450-B37C-E02F0B373803}") cpp_quote("DEFINE_GUID(CLSID_AutomaticUpdates,0xBFE18E9C,0x6D87,0x4450,0xB3,0x7C,0xE0,0x2F,0x0B,0x37,0x38,0x03);") cpp_quote("") cpp_quote("// {13639463-00DB-4646-803D-528026140D88}") cpp_quote("DEFINE_GUID(CLSID_UpdateCollection,0x13639463,0x00DB,0x4646,0x80,0x3D,0x52,0x80,0x26,0x14,0x0D,0x88);") cpp_quote("") cpp_quote("// {5BAF654A-5A07-4264-A255-9FF54C7151E7}") cpp_quote("DEFINE_GUID(CLSID_UpdateDownloader,0x5BAF654A,0x5A07,0x4264,0xA2,0x55,0x9F,0xF5,0x4C,0x71,0x51,0xE7);") cpp_quote("") cpp_quote("// {D2E0FE7F-D23E-48E1-93C0-6FA8CC346474}") cpp_quote("DEFINE_GUID(CLSID_UpdateInstaller,0xD2E0FE7F,0xD23E,0x48E1,0x93,0xC0,0x6F,0xA8,0xCC,0x34,0x64,0x74);") cpp_quote("") cpp_quote("// {4CB43D7F-7EEE-4906-8698-60DA1C38F2FE}") cpp_quote("DEFINE_GUID(CLSID_UpdateSession,0x4CB43D7F,0x7EEE,0x4906,0x86,0x98,0x60,0xDA,0x1C,0x38,0xF2,0xFE);") cpp_quote("") cpp_quote("// {91353063-774C-4F84-B05B-498FEC7FBE25}") cpp_quote("DEFINE_GUID(CLSID_UpdateServiceManager,0x91353063,0x774C,0x4F84,0xB0,0x5B,0x49,0x8F,0xEC,0x7F,0xBE,0x25);") cpp_quote("") #ifndef DO_NO_IMPORTS import "oaidl.idl"; #endif [ helpstring( "Defines possible ways in which elevated users will be notified about " "Automatic Updates events."), v1_enum ] typedef [public] enum tagAutomaticUpdatesNotificationLevel { [helpstring("Not configured")] aunlNotConfigured = 0, [helpstring("Disabled")] aunlDisabled = 1, [helpstring("Notify before download")] aunlNotifyBeforeDownload = 2, [helpstring("Notify before installation")] aunlNotifyBeforeInstallation = 3, [helpstring("Scheduled installation")] aunlScheduledInstallation = 4, } AutomaticUpdatesNotificationLevel; [ helpstring( "Defines possible day(s) of week when Automatic Updates may " "(un)install updates."), v1_enum ] typedef [public] enum tagAutomaticUpdatesScheduledInstallationDay { [helpstring("Every Day")] ausidEveryDay = 0, [helpstring("Every Sunday")] ausidEverySunday = 1, [helpstring("Every Monday")] ausidEveryMonday = 2, [helpstring("Every Tuesday")] ausidEveryTuesday = 3, [helpstring("Every Wednesday")] ausidEveryWednesday = 4, [helpstring("Every Thursday")] ausidEveryThursday = 5, [helpstring("Every Friday")] ausidEveryFriday = 6, [helpstring("Every Saturday")] ausidEverySaturday = 7, } AutomaticUpdatesScheduledInstallationDay; [ helpstring("Defines the possible phases during a download operation."), v1_enum ] typedef [public] enum tagDownloadPhase { [helpstring("Initializing")] dphInitializing = 1, [helpstring("Downloading")] dphDownloading = 2, [helpstring("Verifying")] dphVerifying = 3, } DownloadPhase; [ helpstring("Defines possible priorities for a download operation."), v1_enum ] typedef [public] enum tagDownloadPriority { [helpstring("Low")] dpLow = 1, [helpstring("Normal")] dpNormal = 2, [helpstring("High")] dpHigh = 3, } DownloadPriority; [ helpstring( "Defines possible levels of impact that may be caused by (un)installing" " an Update."), v1_enum ] typedef [public] enum tagInstallationImpact { [helpstring("Normal")] iiNormal = 0, [helpstring("Minor")] iiMinor = 1, [helpstring("Requires exclusive handling")] iiRequiresExclusiveHandling = 2, } InstallationImpact; [ helpstring( "Defines possible reboot behaviors exhibited by an Update during " "(un)installation."), v1_enum ] typedef [public] enum tagInstallationRebootBehavior { [helpstring("Never reboots")] irbNeverReboots = 0, [helpstring("Always requires reboot")] irbAlwaysRequiresReboot = 1, [helpstring("Can request reboot")] irbCanRequestReboot = 2, } InstallationRebootBehavior; [ helpstring( "Defines possible results of a download, (un)install, or verification " "operation on an update."), v1_enum ] typedef [public] enum tagOperationResultCode { /* In the order of significance */ [helpstring("Not started")] orcNotStarted = 0, [helpstring("In progress")] orcInProgress = 1, [helpstring("Succeeded")] orcSucceeded = 2, [helpstring("Succeeded with errors")] orcSucceededWithErrors = 3, [helpstring("Failed")] orcFailed = 4, [helpstring("Aborted")] orcAborted = 5, } OperationResultCode; [ helpstring( "Defines possible server selections the Searcher can search against."), v1_enum ] typedef [public] enum tagServerSelection { [helpstring("Default")] ssDefault = 0, [helpstring("Managed server")] ssManagedServer = 1, [helpstring("Windows Update")] ssWindowsUpdate = 2, [helpstring("Others")] ssOthers = 3, } ServerSelection; cpp_quote("#define IsValidServerSelection(x) ((x) >= ssMin && (x)<= ssMax)") [ helpstring("Defines possible types of an update."), v1_enum ] typedef [public] enum tagUpdateType { [helpstring("Software")] utSoftware = 1, [helpstring("Driver")] utDriver = 2, } UpdateType; [ helpstring( "Defines operations that can be attempted on an Update."), v1_enum ] typedef [public] enum tagUpdateOperation { [helpstring("Installation")] uoInstallation = 1, [helpstring("Uninstallation")] uoUninstallation = 2, } UpdateOperation; [ helpstring("Defines actions an Update can be explicitly deployed for."), v1_enum ] typedef [public] enum tagDeploymentAction { [helpstring("None")] daNone = 0, [helpstring("Installation")] daInstallation = 1, [helpstring("Uninstallation")] daUninstallation = 2, } DeploymentAction; [ helpstring("Defines contexts under which an UpdateException can be raised."), v1_enum ] typedef [public] enum tagUpdateExceptionContext { [helpstring("General")] uecGeneral = 1, [helpstring("WindowsDriver")] uecWindowsDriver = 2, [helpstring("WindowsInstaller")] uecWindowsInstaller = 3, } UpdateExceptionContext; const LONG UPDATE_LOCKDOWN_WEBSITE_ACCESS = 0x00000001; // all other bits are reserved. //Forward declarations interface ICategoryCollection; interface IUpdateCollection; interface IUpdate; [ helpstring("IUpdateLockdown Interface"), object, oleautomation, nonextensible, uuid(a976c28d-75a1-42aa-94ae-8af8b872089a), pointer_default(unique) ] interface IUpdateLockdown : IUnknown { //methods: [ id(0x60010001), helpstring("Restricts access to functionality the object provides.") ] HRESULT LockDown( [in] LONG flags); } [ helpstring("IStringCollection Interface"), object, oleautomation, dual, nonextensible, uuid(eff90582-2ddc-480f-a06d-60f3fbc362c3), pointer_default(unique), hidden // already exposed by a class ] interface IStringCollection : IDispatch { //properties: [ id(DISPID_VALUE), propget, helpstring("Gets an element in the collection.") ] HRESULT Item( [in] LONG index, [out, retval] BSTR* retval); [ id(DISPID_VALUE), propput, helpstring("Sets an element in the collection.") ] HRESULT Item( [in] LONG index, [in] BSTR value); [ id(DISPID_NEWENUM), propget, helpstring( "Gets an IEnumVARIANT interface on an object that can be used to " "enumerate the collection.") ] HRESULT _NewEnum( [out, retval] IUnknown** retval); [ id(0x60020001), propget, helpstring("Gets the number of elements contained in the collection.") ] HRESULT Count( [out, retval] LONG* retval); [ id(0x60020002), propget, helpstring( "Gets a boolean value indicating whether the collection is " "read-only.") ] HRESULT ReadOnly( [out, retval] VARIANT_BOOL* retval); //methods: [ id(0x60020003), helpstring("Adds an item to the collection.") ] HRESULT Add( [in] BSTR value, [out, retval] LONG* retval); [ id(0x60020004), helpstring("Removes all elements from the collection.") ] HRESULT Clear( ); [ id(0x60020005), helpstring("Creates a deep read-writable copy of the collection.") ] HRESULT Copy( [out, retval] IStringCollection** retval); [ id(0x60020006), helpstring( "Inserts an item to the collection at the specified position.") ] HRESULT Insert( [in] LONG index, [in] BSTR value); [ id(0x60020007), helpstring( "Removes the item at the specified index from the collection.") ] HRESULT RemoveAt( [in] LONG index); } [ helpstring("IWebProxy Interface"), object, oleautomation, dual, nonextensible, uuid(174c81fe-aecd-4dae-b8a0-2c6318dd86a8), pointer_default(unique), ] interface IWebProxy : IDispatch { //properties: [ id(0x60020001), propget, helpstring("Gets the address of the proxy server.") ] HRESULT Address( [out, retval] BSTR* retval); [ id(0x60020001), propput, helpstring("Sets the address of the proxy server.") ] HRESULT Address( [in] BSTR value); [ id(0x60020002), propget, helpstring( "Gets a collection of addresses that do not use the proxy server.") ] HRESULT BypassList( [out, retval] IStringCollection** retval); [ id(0x60020002), propput, helpstring( "Sets a collection of addresses that do not use the proxy server.") ] HRESULT BypassList( [in] IStringCollection* value); [ id(0x60020003), propget, helpstring( "Gets a value indicating whether to bypass the proxy server for " "local addresses.") ] HRESULT BypassProxyOnLocal( [out, retval] VARIANT_BOOL* retval); [ id(0x60020003), propput, helpstring( "Sets a value indicating whether to bypass the proxy server for " "local addresses.") ] HRESULT BypassProxyOnLocal( [in] VARIANT_BOOL value); [ id(0x60020004), propget, helpstring( "Gets a boolean value indicating whether the WebProxy object is " "read-only.") ] HRESULT ReadOnly( [out, retval] VARIANT_BOOL* retval); [ id(0x60020005), propget, helpstring( "Gets the user name to submit to the proxy server for " "authentication.") ] HRESULT UserName( [out, retval] BSTR* retval); [ id(0x60020005), propput, helpstring( "Sets the user name to submit to the proxy server for authentication.") ] HRESULT UserName( [in] BSTR value); //methods: [ id(0x60020006), helpstring( "Sets the password to submit to the proxy server for " "authentication.") ] HRESULT SetPassword( [in] BSTR value); [ id(0x60020007), helpstring( "Launches the Credentials UI to prompt user for password for proxy " "authentication.") ] HRESULT PromptForCredentials( [in, unique] IUnknown* pParentWindow, [in] BSTR bstrTitle); [ id(0x60020008), restricted, helpstring( "Launches the Credentials UI to prompt user for password for proxy " "authentication.") ] HRESULT PromptForCredentialsFromHwnd( [in, unique] HWND hwndParent, [in] BSTR bstrTitle); //properties: [ id(0x60020009), propget, helpstring("Indicates whether to automatically detect proxy settings.") ] HRESULT AutoDetect( [out, retval] VARIANT_BOOL* retval); [ id(0x60020009), propput, helpstring("Specifies whether to automatically detect proxy settings.") ] HRESULT AutoDetect( [in] VARIANT_BOOL value); } [ helpstring("ISystemInformation Interface"), object, oleautomation, dual, nonextensible, uuid(ade87bf7-7b56-4275-8fab-b9b0e591844b), pointer_default(unique), hidden // already exposed by a class ] interface ISystemInformation : IDispatch { //properties: [ id(0x60020001), propget, helpstring( "Gets the hyperlink to the support infomation on the OEM hardware.") ] HRESULT OemHardwareSupportLink( [out, retval] BSTR* retval); [ id(0x60020002), propget, helpstring( "Gets a value indicating whether a system reboot is required to " "complete (un)installation of one or more Updates.") ] HRESULT RebootRequired( [out, retval] VARIANT_BOOL* retval); } [ helpstring("IAutomaticUpdatesSettings Interface"), object, oleautomation, dual, nonextensible, uuid(2ee48f22-af3c-405f-8970-f71be12ee9a2), pointer_default(unique) ] interface IAutomaticUpdatesSettings : IDispatch { //properties: [ id(0x60020001), propget, helpstring( "Indicates how elevated users will be notified about Automatic " "Updates events.") ] HRESULT NotificationLevel( [out, retval] AutomaticUpdatesNotificationLevel* retval); [ id(0x60020001), propput, helpstring( "Specifies how elevated users will be notified about Automatic " "Updates events.") ] HRESULT NotificationLevel( [in] AutomaticUpdatesNotificationLevel value); [ id(0x60020002), propget, helpstring("Indicates whether the settings are read-only.") ] HRESULT ReadOnly( [out, retval] VARIANT_BOOL* retval); [ id(0x60020003), propget, helpstring( "Indicates whether the Automatic Updates service is required by " "Group Policy.") ] HRESULT Required( [out, retval] VARIANT_BOOL* retval); [ id(0x60020004), propget, helpstring( "Indicates which day(s) of week Automatic Updates may (un)install " "updates.") ] HRESULT ScheduledInstallationDay( [out, retval] AutomaticUpdatesScheduledInstallationDay* retval); [ id(0x60020004), propput, helpstring( "Specifies which day(s) of week Automatic Updates may (un)install " "updates.") ] HRESULT ScheduledInstallationDay( [in] AutomaticUpdatesScheduledInstallationDay value); [ id(0x60020005), propget, helpstring( "Indicates the time when Automatic Updates may (un)install " "updates.") ] HRESULT ScheduledInstallationTime( [out, retval] LONG* retval); [ id(0x60020005), propput, helpstring( "Specifies the time when Automatic Updates may (un)install " "updates.") ] HRESULT ScheduledInstallationTime( [in] LONG value); //methods: [ id(0x60020006), helpstring("Gets the up-to-date settings.") ] HRESULT Refresh(); [ id(0x60020007), helpstring("Applies the settings.") ] HRESULT Save(); } [ helpstring("IAutomaticUpdates Interface"), object, oleautomation, dual, nonextensible, uuid(673425bf-c082-4c7c-bdfd-569464b8e0ce), pointer_default(unique), hidden // already exposed by a class ] interface IAutomaticUpdates : IDispatch { //methods: [ id(0x60020001), helpstring("Triggers automatic updating now if it is not yet started.") ] HRESULT DetectNow(); [ id(0x60020002), helpstring("Pauses automatic updating.") ] HRESULT Pause(); [ id(0x60020003), helpstring("Resumes automatic updating if paused.") ] HRESULT Resume(); [ id(0x60020004), helpstring( "Display a dialog box showing settings for Automatic Updates.") ] HRESULT ShowSettingsDialog(); //properties: [ id(0x60020005), propget, helpstring("Returns the settings to configure Automatic Updates.") ] HRESULT Settings( [out, retval] IAutomaticUpdatesSettings** retval); [ id(0x60020006), propget, helpstring( "Indicates whether all the components that Automatic Updates " "requires are up and running.") ] HRESULT ServiceEnabled( [out, retval] VARIANT_BOOL* retval); //methods: [ id(0x60020007), helpstring( "Enables all the components that Automatic Updates requires.") ] HRESULT EnableService(); } [ helpstring("IUpdateIdentity Interface"), object, oleautomation, dual, nonextensible, uuid(46297823-9940-4c09-aed9-cd3ea6d05968), pointer_default(unique), hidden // already exposed by a class ] interface IUpdateIdentity : IDispatch { //properties: [ id(0x60020002), propget, helpstring("Gets the revision number of the Update.") ] HRESULT RevisionNumber( [out, retval] LONG* retval); [ id(0x60020003), propget, helpstring( "Gets a string identifying the Update in a globally-unique manner.") ] HRESULT UpdateID( [out, retval] BSTR* retval); } [ helpstring("IImageInformation Interface"), object, oleautomation, dual, nonextensible, uuid(7c907864-346c-4aeb-8f3f-57da289f969f), pointer_default(unique), ] interface IImageInformation : IDispatch { //properties: [ id(0x60020001), propget, helpstring("Gets the ATL text of the image.") ] HRESULT AltText( [out, retval] BSTR* retval); [ id(0x60020002), propget, helpstring("Gets the height of the image, in pixels.") ] HRESULT Height( [out, retval] LONG* retval); [ id(0x60020003), propget, helpstring("Gets the source location of the image.") ] HRESULT Source( [out, retval] BSTR* retval); [ id(0x60020004), propget, helpstring("Gets the width of the image, in pixels.") ] HRESULT Width( [out, retval] LONG* retval); } [ helpstring("ICategory Interface"), object, oleautomation, dual, nonextensible, uuid(81ddc1b8-9d35-47a6-b471-5b80f519223b), pointer_default(unique), ] interface ICategory : IDispatch { //properties: [ id(DISPID_VALUE), propget, helpstring("Gets the localized name of the Category.") ] HRESULT Name( [out, retval] BSTR* retval); [ id(0x60020001), propget, helpstring("Gets the category ID of the Category.") ] HRESULT CategoryID( [out, retval] BSTR* retval); [ id(0x60020002), propget, helpstring("Gets the children of the Category.") ] HRESULT Children( [out, retval] ICategoryCollection** retval); [ id(0x60020003), propget, helpstring("Gets the description of the Category.") ] HRESULT Description( [out, retval] BSTR* retval); [ id(0x60020004), propget, helpstring( "Gets information on the image associated with the Category.") ] HRESULT Image( [out, retval] IImageInformation** retval); [ id(0x60020005), propget, helpstring( "Gets the recommended display order of the Category among its " "siblings.") ] HRESULT Order( [out, retval] LONG* retval); [ id(0x60020006), propget, helpstring("Gets the parent of the Category.") ] HRESULT Parent( [out, retval] ICategory** retval); [ id(0x60020007), propget, helpstring("Gets the type of the Category.") ] HRESULT Type( [out, retval] BSTR* retval); [ id(0x60020008), propget, helpstring("Gets the updates which immediately belong to the Category.") ] HRESULT Updates( [out, retval] IUpdateCollection** retval); } [ helpstring("ICategoryCollection Interface"), object, oleautomation, dual, nonextensible, uuid(3a56bfb8-576c-43f7-9335-fe4838fd7e37), pointer_default(unique), ] interface ICategoryCollection : IDispatch { //properties: [ id(DISPID_VALUE), propget, helpstring("Gets an element in the collection.") ] HRESULT Item( [in] LONG index, [out, retval] ICategory** retval); [ id(DISPID_NEWENUM), propget, helpstring( "Gets an IEnumVARIANT interface on an object that can be used to " "enumerate the collection.") ] HRESULT _NewEnum( [out, retval] IUnknown** retval); [ id(0x60020001), propget, helpstring("Gets the number of elements contained in the collection.") ] HRESULT Count( [out, retval] LONG* retval); } [ helpstring("IInstallationBehavior Interface"), object, oleautomation, dual, nonextensible, uuid(d9a59339-e245-4dbd-9686-4d5763e39624), pointer_default(unique), ] interface IInstallationBehavior : IDispatch { //properties: [ id(0x60020001), propget, helpstring("Gets a value indicating whether (un)installation of the Update can request user input.") ] HRESULT CanRequestUserInput( [out, retval] VARIANT_BOOL* retval); [ id(0x60020002), propget, helpstring("Gets a value assessing how (un)installation of the Update will impact the target computer.") ] HRESULT Impact( [out, retval] InstallationImpact* retval); [ id(0x60020003), propget, helpstring("Gets a value specifying the reboot behavior exhibited by (un)installing the Update.") ] HRESULT RebootBehavior( [out, retval] InstallationRebootBehavior* retval); [ id(0x60020004), propget, helpstring("Gets a value indicating whether (un)installation of the Update requires network connectivity.") ] HRESULT RequiresNetworkConnectivity( [out, retval] VARIANT_BOOL* retval); } [ helpstring("IUpdateDownloadContent Interface"), object, oleautomation, dual, nonextensible, uuid(54a2cb2d-9a0c-48b6-8a50-9abb69ee2d02), pointer_default(unique), ] interface IUpdateDownloadContent : IDispatch { //properties: [ id(0x60020001), propget, helpstring( "Gets the location of the download content on the hosting server.") ] HRESULT DownloadUrl( [out, retval] BSTR* retval); } [ helpstring("IUpdateDownloadContentCollection Interface"), object, oleautomation, dual, nonextensible, uuid(bc5513c8-b3b8-4bf7-a4d4-361c0d8c88ba), pointer_default(unique), ] interface IUpdateDownloadContentCollection : IDispatch { //properties: [ id(DISPID_VALUE), propget, helpstring("Gets an element in the collection.") ] HRESULT Item( [in] LONG index, [out, retval] IUpdateDownloadContent** retval); [ id(DISPID_NEWENUM), propget, helpstring( "Gets an IEnumVARIANT interface on an object that can be used to " "enumerate the collection.") ] HRESULT _NewEnum( [out, retval] IUnknown** retval); [ id(0x60020001), propget, helpstring("Gets the number of elements contained in the collection.") ] HRESULT Count( [out, retval] LONG* retval); } [ helpstring("IUpdate Interface"), object, oleautomation, dual, nonextensible, uuid(6a92b07a-d821-4682-b423-5c805022cc4d), pointer_default(unique), ] interface IUpdate : IDispatch { //properties: [ id(DISPID_VALUE), propget, helpstring("Gets the localized title of the Update.") ] HRESULT Title( [out, retval] BSTR* retval); [ id(0x60020001), propget, helpstring( "Gets a value indicating whether the Update is flagged to be " "automatically selected by web sites such as Windows Update or " "Microsoft Update.") ] HRESULT AutoSelectOnWebSites( [out, retval] VARIANT_BOOL* retval); [ id(0x60020002), propget, helpstring( "Gets information on the ordered list of bundled updates of the " "Update.") ] HRESULT BundledUpdates( [out, retval] IUpdateCollection** retval); [ id(0x60020003), propget, helpstring( "Indicates whether the source media of the Update is potentially " "required for (un)installation.") ] HRESULT CanRequireSource( [out, retval] VARIANT_BOOL* retval); [ id(0x60020004), propget, helpstring("Gets the categories that the update belongs to.") ] HRESULT Categories( [out, retval] ICategoryCollection** retval); [ id(0x60020005), propget, helpstring("Gets the date by which the Update must be installed.") ] HRESULT Deadline( [out, retval] VARIANT* retval); [ id(0x60020006), propget, helpstring( "Indicates whether delta-compressed content is available on the " "server for the Update.") ] HRESULT DeltaCompressedContentAvailable( [out, retval] VARIANT_BOOL* retval); [ id(0x60020007), propget, helpstring( "Indicates whether to prefer delta-compressed content when " "downloading and/or (un)installing the Update, if such content is " "available.") ] HRESULT DeltaCompressedContentPreferred( [out, retval] VARIANT_BOOL* retval); [ id(0x60020008), propget, helpstring("Gets the localized description of the Update.") ] HRESULT Description( [out, retval] BSTR* retval); [ id(0x60020009), propget, helpstring( "Indicates whether the end-user license agreement associated with " "the Update has been accepted for the target computer.") ] HRESULT EulaAccepted( [out, retval] VARIANT_BOOL* retval); [ id(0x6002000a), propget, helpstring( "Gets the full, localized text of the end-user license agreement " "associated with the Update.") ] HRESULT EulaText( [out, retval] BSTR* retval); [ id(0x6002000b), propget, helpstring("Gets a value specifying the install handler of the Update.") ] HRESULT HandlerID( [out, retval] BSTR* retval); [ id(0x6002000c), propget, helpstring("Gets the globally-unique identity of the Update.") ] HRESULT Identity( [out, retval] IUpdateIdentity** retval); [ id(0x6002000d), propget, helpstring( "Gets information on the image associated with the Update.") ] HRESULT Image( [out, retval] IImageInformation** retval); [ id(0x6002000e), propget, helpstring( "Gets the installation options of the Update.") ] HRESULT InstallationBehavior( [out, retval] IInstallationBehavior** retval); [ id(0x6002000f), propget, helpstring( "Gets a value indicating whether the Update is a beta release.") ] HRESULT IsBeta( [out, retval] VARIANT_BOOL* retval); [ id(0x60020010), propget, helpstring( "Indicates whether all of the Update's content is cached on the " "target computer.") ] HRESULT IsDownloaded( [out, retval] VARIANT_BOOL* retval); [ id(0x60020011), propget, helpstring( "Indicates whether the Update has been hidden by the user for " "installation.") ] HRESULT IsHidden( [out, retval] VARIANT_BOOL* retval); [ id(0x60020011), propput, helpstring( "(Un)marks the update as \"hidden\" on the target computer.") ] HRESULT IsHidden( [in] VARIANT_BOOL value); [ id(0x60020012), propget, helpstring( "Indicates whether the Update was installed on the target " "computer when the search was performed.") ] HRESULT IsInstalled( [out, retval] VARIANT_BOOL* retval); [ id(0x60020013), propget, helpstring( "Gets a value indicating whether installation of the Update is " "mandatory.") ] HRESULT IsMandatory( [out, retval] VARIANT_BOOL* retval); [ id(0x60020014), propget, helpstring( "Indicates whether the caller can uninstall the Update, if " "installed, from the target computer.") ] HRESULT IsUninstallable( [out, retval] VARIANT_BOOL* retval); [ id(0x60020015), propget, helpstring("Gets the languages that the Update supports.") ] HRESULT Languages( [out, retval] IStringCollection** retval); [ id(0x60020016), propget, helpstring("Gets the published date of the Update.") ] HRESULT LastDeploymentChangeTime( [out, retval] DATE* retval); [ id(0x60020017), propget, helpstring("Gets the maximum download size of the Update.") ] HRESULT MaxDownloadSize( [out, retval] DECIMAL* retval); [ id(0x60020018), propget, helpstring("Gets the minimum download size of the Update.") ] HRESULT MinDownloadSize( [out, retval] DECIMAL* retval); [ id(0x60020019), propget, helpstring( "Gets language-specific strings specifying the hyperlinks to more " "info on the Update.") ] HRESULT MoreInfoUrls( [out, retval] IStringCollection** retval); [ id(0x6002001a), propget, helpstring( "Gets the Microsoft Security Response Center severity rating of the" " Update.") ] HRESULT MsrcSeverity( [out, retval] BSTR* retval); [ id(0x6002001b), propget, helpstring( "Gets the recommended CPU speed, in megahertz, for installing the " "Update.") ] HRESULT RecommendedCpuSpeed( [out, retval] LONG* retval); [ id(0x6002001c), propget, helpstring( "Gets the recommended hard disk free space, in megabytes, for " "installing the Update.") ] HRESULT RecommendedHardDiskSpace( [out, retval] LONG* retval); [ id(0x6002001d), propget, helpstring( "Gets the recommended physical memory size, in megabytes, for " "installing the Update.") ] HRESULT RecommendedMemory( [out, retval] LONG* retval); [ id(0x6002001e), propget, helpstring("Gets the localized release notes of the Update.") ] HRESULT ReleaseNotes( [out, retval] BSTR* retval); [ id(0x6002001f), propget, helpstring( "Gets the security bulletin IDs associated with the Update.") ] HRESULT SecurityBulletinIDs( [out, retval] IStringCollection** retval); [ id(0x60020021), propget, helpstring( "Gets a collection of update IDs specifying the Updates that the " "Update supersedes.") ] HRESULT SupersededUpdateIDs( [out, retval] IStringCollection** retval); [ id(0x60020022), propget, helpstring( "Gets the language-specific hyperlink to the support information on" " the Update.") ] HRESULT SupportUrl( [out, retval] BSTR* retval); [ id(0x60020023), propget, helpstring("Gets the type of the Update.") ] HRESULT Type( [out, retval] UpdateType* retval); [ id(0x60020024), propget, helpstring("Gets the uninstallation notes of the Update.") ] HRESULT UninstallationNotes( [out, retval] BSTR* retval); [ id(0x60020025), propget, helpstring("Gets the uninstallation options of the Update.") ] HRESULT UninstallationBehavior( [out, retval] IInstallationBehavior** retval); [ id(0x60020026), propget, helpstring("Gets the uninstallation steps of the Update.") ] HRESULT UninstallationSteps( [out, retval] IStringCollection** retval); [ id(0x60020028), propget, helpstring( "Gets the knowledge base article IDs associated with the Update.") ] HRESULT KBArticleIDs( [out, retval] IStringCollection** retval); //methods: [ id(0x60020027), helpstring( "Accepts the end-user license agreement associated with the " "Update.") ] HRESULT AcceptEula(); //properties: [ id(0x60020029), propget, helpstring("Indicates the action an Update is deployed for.") ] HRESULT DeploymentAction( [out, retval] DeploymentAction* retval); //methods: [ id(0x6002002a), helpstring("Copies the contents of the Update into a specified path.") ] HRESULT CopyFromCache( [in, ref] BSTR path, [in] VARIANT_BOOL toExtractCabFiles); //properties: [ id(0x6002002b), propget, helpstring("Indicates the suggested download priority of the Update.") ] HRESULT DownloadPriority( [out, retval] DownloadPriority* retval); [ id(0x6002002c), propget, helpstring( "Gets file information on the immediate download contents of the " "Update.") ] HRESULT DownloadContents( [out, retval] IUpdateDownloadContentCollection** retval); } [ helpstring("IWindowsDriverUpdate Interface"), object, oleautomation, dual, nonextensible, uuid(b383cd1a-5ce9-4504-9f63-764b1236f191), pointer_default(unique), ] interface IWindowsDriverUpdate : IUpdate { //properties: [ id(0x60030001), propget, helpstring( "Specifes the class of the WindowsDriverUpdate.") ] HRESULT DriverClass( [out, retval] BSTR* retval); [ id(0x60030002), propget, helpstring( "Specifies the hardware ID or compatible ID that the " "WindowsDriverUpdate must match to be installable.") ] HRESULT DriverHardwareID( [out, retval] BSTR* retval); [ id(0x60030003), propget, helpstring( "Specifies the language-invariant name of the manufacturer " "of the WindowsDriverUpdate.") ] HRESULT DriverManufacturer( [out, retval] BSTR* retval); [ id(0x60030004), propget, helpstring( "Specifies the language-invariant model name of the device for " "which the WindowsDriverUpdate is intended.") ] HRESULT DriverModel( [out, retval] BSTR* retval); [ id(0x60030005), propget, helpstring( "Specifies the language-invariant name of the provider of the" "WindowsDriverUpdate.") ] HRESULT DriverProvider( [out, retval] BSTR* retval); [ id(0x60030006), propget, helpstring( "Specifies the driver version date of the WindowsDriverUpdate.") ] HRESULT DriverVerDate( [out, retval] DATE* retval); [ id(0x60030007), propget, helpstring( "Returns the problem number of the matching device for the " "WindowsDriverUpdate.") ] HRESULT DeviceProblemNumber( [out, retval] LONG* retval); [ id(0x60030008), propget, helpstring( "Returns the status of the matching device for the " "WindowsDriverUpdate.") ] HRESULT DeviceStatus( [out, retval] LONG* retval); } [ helpstring("IUpdateCollection Interface"), object, oleautomation, dual, nonextensible, uuid(07f7438c-7709-4ca5-b518-91279288134e), pointer_default(unique), hidden // already exposed by a class ] interface IUpdateCollection : IDispatch { //properties: [ id(DISPID_VALUE), propget, helpstring("Gets an element in the collection.") ] HRESULT Item( [in] LONG index, [out, retval] IUpdate** retval); [ id(DISPID_VALUE), propput, helpstring("Sets an element in the collection.") ] HRESULT Item( [in] LONG index, [in] IUpdate* value); [ id(DISPID_NEWENUM), propget, helpstring( "Gets an IEnumVARIANT interface on an object that can be used to " "enumerate the collection.") ] HRESULT _NewEnum( [out, retval] IUnknown** retval); [ id(0x60020001), propget, helpstring("Gets the number of elements contained in the collection.") ] HRESULT Count( [out, retval] LONG* retval); [ id(0x60020002), propget, helpstring( "Gets a boolean value indicating whether the collection is " "read-only.") ] HRESULT ReadOnly( [out, retval] VARIANT_BOOL* retval); //methods: [ id(0x60020003), helpstring("Adds an item to the collection.") ] HRESULT Add( [in] IUpdate* value, [out, retval] LONG* retval); [ id(0x60020004), helpstring("Removes all elements from the collection.") ] HRESULT Clear( ); [ id(0x60020005), helpstring("Creates a shallow read-writable copy of the collection.") ] HRESULT Copy( [out, retval] IUpdateCollection** retval); [ id(0x60020006), helpstring( "Inserts an item to the collection at the specified position.") ] HRESULT Insert( [in] LONG index, [in] IUpdate* value); [ id(0x60020007), helpstring( "Removes the item at the specified index from the collection.") ] HRESULT RemoveAt( [in] LONG index); } [ helpstring("IUpdateException Interface"), object, oleautomation, dual, nonextensible, uuid(a376dd5e-09d4-427f-af7c-fed5b6e1c1d6), pointer_default(unique), ] interface IUpdateException : IDispatch { //properties: [ id(DISPID_VALUE), propget, helpstring("Gets a message that describes the current exception.") ] HRESULT Message( [out, retval] BSTR* retval); [ id(0x60020001), propget, helpstring( "Gets HRESULT, a coded numerical value that is assigned to a " "specific exception.") ] HRESULT HResult( [out, retval] LONG* retval); [ id(0x60020002), propget, helpstring( "Gets a numerical value that indicates the context of the current " "exception.") ] HRESULT Context( [out, retval] UpdateExceptionContext* retval); } [ helpstring("IInvalidProductLicenseException Interface"), object, oleautomation, dual, nonextensible, uuid(a37d00f5-7bb0-4953-b414-f9e98326f2e8), pointer_default(unique), ] interface IInvalidProductLicenseException : IUpdateException { //properties: [ id(0x60030001), propget, helpstring("Gets the language-invariant name of the product") ] HRESULT Product( [out, retval] BSTR* retval); } [ helpstring("IUpdateExceptionCollection Interface"), object, oleautomation, dual, nonextensible, uuid(503626a3-8e14-4729-9355-0fe664bd2321), pointer_default(unique), ] interface IUpdateExceptionCollection : IDispatch { //properties: [ id(DISPID_VALUE), propget, helpstring("Gets an element in the collection.") ] HRESULT Item( [in] LONG index, [out, retval] IUpdateException** retval); [ id(DISPID_NEWENUM), propget, helpstring( "Gets an IEnumVARIANT interface on an object that can be used to " "enumerate the collection.") ] HRESULT _NewEnum( [out, retval] IUnknown** retval); [ id(0x60020001), propget, helpstring("Gets the number of elements contained in the collection.") ] HRESULT Count( [out, retval] LONG* retval); } [ helpstring("ISearchResult Interface"), object, oleautomation, dual, nonextensible, uuid(d40cff62-e08c-4498-941a-01e25f0fd33c), pointer_default(unique), ] interface ISearchResult : IDispatch { //properties: [ id(0x60020001), propget, helpstring( "Gets an OperationResultCode enumeration value specifying the " "overall result of the search.") ] HRESULT ResultCode( [out, retval] OperationResultCode* retval); [ id(0x60020002), propget, helpstring( "Gets the root categories currently available on the target " " computer.") ] HRESULT RootCategories( [out, retval] ICategoryCollection** retval); [ id(0x60020003), propget, helpstring("Gets a collection of Updates resulted from the search.") ] HRESULT Updates( [out, retval] IUpdateCollection** retval); [ id(0x60020004), propget, helpstring("Gets a collection of warnings resulted from the search.") ] HRESULT Warnings( [out, retval] IUpdateExceptionCollection** retval); } [ helpstring("ISearchJob Interface"), object, oleautomation, dual, nonextensible, uuid(7366ea16-7a1a-4ea2-b042-973d3e9cd99b), pointer_default(unique), ] interface ISearchJob : IDispatch { //properties: [ id(0x60020001), propget, helpstring( "Gets the caller-specified state object passed to the " "UpdateSearcher.BeginSearch method.") ] HRESULT AsyncState( [out, retval] VARIANT* retval); [ id(0x60020002), propget, helpstring( "Gets a value indicating whether the call has been completely " "processed.") ] HRESULT IsCompleted( [out, retval] VARIANT_BOOL* retval); //methods: [ id(0x60020003), helpstring( "Waits for asynchronous operation to complete and releases all " "callbacks, if any.") ] HRESULT CleanUp(); [ id(0x60020004), helpstring("Requests to abort the asynchronous search.") ] HRESULT RequestAbort(); } [ helpstring("ISearchCompletedCallbackArgs Interface"), object, oleautomation, dual, nonextensible, uuid(a700a634-2850-4c47-938a-9e4b6e5af9a6), pointer_default(unique), ] interface ISearchCompletedCallbackArgs : IDispatch { } [ helpstring("ISearchCompletedCallback Interface"), object, oleautomation, nonextensible, uuid(88aee058-d4b0-4725-a2f1-814a67ae964c), pointer_default(unique) ] interface ISearchCompletedCallback : IUnknown { //methods: [ id(0x60010001), helpstring( "Handles the notification about the completion of an asynchronous " "search initiated by calling UpdateSearcher.BeginSearch.") ] HRESULT Invoke( [in] ISearchJob* searchJob, [in] ISearchCompletedCallbackArgs* callbackArgs); } [ helpstring("IUpdateHistoryEntry Interface"), object, oleautomation, dual, nonextensible, uuid(be56a644-af0e-4e0e-a311-c1d8e695cbff), pointer_default(unique), ] interface IUpdateHistoryEntry : IDispatch { //properties: [ id(0x60020001), propget, helpstring( "Gets an Operation enumeration value specifying the " "the operation on the update.") ] HRESULT Operation( [out, retval] UpdateOperation* retval ); [ id(0x60020002), propget, helpstring( "Gets an OperationResultCode enumeration value specifying the " "result of the operation on the update.") ] HRESULT ResultCode( [out, retval] OperationResultCode* retval ); [ id(0x60020003), propget, helpstring( "Gets the HRESULT value returned from the operation on the update.") ] HRESULT HResult( [out, retval] LONG* retval ); [ id(0x60020004), propget, helpstring("Gets the date and time when the update was applied.") ] HRESULT Date( [out, retval] DATE* retval); [ id(0x60020005), propget, helpstring( "Gets the globally-unique identity of the update.") ] HRESULT UpdateIdentity( [out, retval] IUpdateIdentity** retval); [ id(0x60020006), propget, helpstring("Gets the title of the update.") ] HRESULT Title( [out, retval] BSTR* retval); [ id(0x60020007), propget, helpstring("Gets the description of the update.") ] HRESULT Description( [out, retval] BSTR* retval); [ id(0x60020008), propget, helpstring( "Gets the unmapped result code returned from the operation on the " "update.") ] HRESULT UnmappedResultCode( [out, retval] LONG* retval); [ id(0x60020009), propget, helpstring( "Gets the identifier of the client application that processed the " "update.") ] HRESULT ClientApplicationID( [out, retval] BSTR* retval); [ id(0x6002000a), propget, helpstring("Gets where the update came from.") ] HRESULT ServerSelection( [out, retval] ServerSelection* retval ); [ id(0x6002000b), propget, helpstring("Gets Non-Windows Updates Service ID.") ] HRESULT ServiceID( [out, retval] BSTR* retval ); [ id(0x6002000c), propget, helpstring("Gets steps to uninstall update.") ] HRESULT UninstallationSteps( [out, retval] IStringCollection** retval); [ id(0x6002000d), propget, helpstring("Gets uninstallation notes.") ] HRESULT UninstallationNotes( [out, retval] BSTR* retval); [ id(0x6002000e), propget, helpstring("Gets support URL.") ] HRESULT SupportUrl( [out, retval] BSTR* retval); } [ helpstring("IUpdateHistoryEntryCollection Interface"), object, oleautomation, dual, nonextensible, uuid(a7f04f3c-a290-435b-aadf-a116c3357a5c), pointer_default(unique), ] interface IUpdateHistoryEntryCollection : IDispatch { [ id(DISPID_VALUE), propget, helpstring("Gets an element in the collection.") ] HRESULT Item( [in] LONG index, [out, retval] IUpdateHistoryEntry** retval); [ id(DISPID_NEWENUM), propget, helpstring( "Gets an IEnumVARIANT interface on an object that can be used to " "enumerate the collection.") ] HRESULT _NewEnum( [out, retval] IUnknown** retval); [ id(0x60020001), propget, helpstring("Gets the number of elements contained in the collection.") ] HRESULT Count( [out, retval] LONG* retval); } [ helpstring("IUpdateSearcher Interface"), object, oleautomation, dual, nonextensible, uuid(8f45abf1-f9ae-4b95-a933-f0f66e5056ea), pointer_default(unique), hidden // already exposed by a class ] interface IUpdateSearcher : IDispatch { //properties: [ id(0x60020001), propget, helpstring( "Indicates whether future calls to BeginSearch and Search can " "automatically upgrade the MSUS client as a side-effect.") ] HRESULT CanAutomaticallyUpgradeService( [out, retval] VARIANT_BOOL* retval); [ id(0x60020001), propput, helpstring( "Specifies whether future calls to BeginSearch and Search can " "automatically upgrade the MSUS client as a side-effect.") ] HRESULT CanAutomaticallyUpgradeService( [in] VARIANT_BOOL value); [ id(0x60020003), propget, helpstring("Gets the identifier of the current client application.") ] HRESULT ClientApplicationID( [out, retval] BSTR* retval); [ id(0x60020003), propput, helpstring("Sets the identifier of the current client application.") ] HRESULT ClientApplicationID( [in] BSTR value); [ id(0x60020004), propget, helpstring( "Indicates whether to include, in the search results, updates that " "are superseded by any other updates in the results.") ] HRESULT IncludePotentiallySupersededUpdates( [out, retval] VARIANT_BOOL* retval); [ id(0x60020004), propput, helpstring( "Specifies whether to include, in the search results, updates that " "are superseded by any other updates in the results.") ] HRESULT IncludePotentiallySupersededUpdates( [in] VARIANT_BOOL value); [ id(0x60020007), propget, helpstring("Specifies which server to search") ] HRESULT ServerSelection( [out, retval] ServerSelection* retval); [ id(0x60020007), propput, helpstring("Specifies which server to search") ] HRESULT ServerSelection( [in] ServerSelection value); //methods: [ id(0x60020008), helpstring( "Starts an asynchronous search using the currently configured " "search options.") ] HRESULT BeginSearch( [in] BSTR criteria, [in] IUnknown* onCompleted, [in] VARIANT state, [out, retval] ISearchJob** retval); [ id(0x60020009), helpstring("Completes an asynchronous search.") ] HRESULT EndSearch( [in] ISearchJob* searchJob, [out, retval] ISearchResult** retval); [ id(0x6002000a), helpstring( "Convert string into one that can be used as a literal value in a " "search criteria string.") ] HRESULT EscapeString( [in] BSTR unescaped, [out, retval] BSTR* retval); [ id(0x6002000b), helpstring( "Synchronously queries the target computer for the history of " "update events.") ] HRESULT QueryHistory( [in] LONG startIndex, [in] LONG count, [out, retval] IUpdateHistoryEntryCollection** retval); [ id(0x6002000c), helpstring( "Perform a synchronous search using the currently configured " "search options.") ] HRESULT Search( [in] BSTR criteria, [out, retval] ISearchResult** retval); //properties: [ id(0x6002000d), propget, helpstring( "Indicates whether the UpdateSearcher goes online when searching " "for updates.") ] HRESULT Online( [out, retval] VARIANT_BOOL* retval); [ id(0x6002000d), propput, helpstring( "Specifies whether the UpdateSearcher goes online when searching " "for updates.") ] HRESULT Online( [in] VARIANT_BOOL value); [ id(0x6002000e), helpstring( "Get number of update events on the target computer.") ] HRESULT GetTotalHistoryCount( [out, retval] LONG* retval); [ id(0x6002000f), propget, helpstring("Specifies Non-Windows Updates Service to search.") ] HRESULT ServiceID( [out, retval] BSTR* retval); [ id(0x6002000f), propput, helpstring("Specifies Non-Windows Updates Service to search.") ] HRESULT ServiceID( [in] BSTR value); } [ helpstring("IUpdateDownloadResult Interface"), object, oleautomation, dual, nonextensible, uuid(bf99af76-b575-42ad-8aa4-33cbb5477af1), pointer_default(unique), ] interface IUpdateDownloadResult : IDispatch { //properties: [ id(0x60020001), propget, helpstring( "Gets the HRESULT value returned from the operation on the update.") ] HRESULT HResult( [out, retval] LONG* retval); [ id(0x60020002), propget, helpstring( "Gets an OperationResultCode enumeration value specifying the " "result of the operation on the update.") ] HRESULT ResultCode( [out, retval] OperationResultCode* retval); } [ helpstring("IDownloadResult Interface"), object, oleautomation, dual, nonextensible, uuid(daa4fdd0-4727-4dbe-a1e7-745dca317144), pointer_default(unique), ] interface IDownloadResult : IDispatch { //properties: [ id(0x60020001), propget, helpstring( "Gets the HRESULT value returned from the download.") ] HRESULT HResult( [out, retval] LONG* retval); [ id(0x60020002), propget, helpstring( "Gets an OperationResultCode enumeration value specifying the " "overall result of the download.") ] HRESULT ResultCode( [out, retval] OperationResultCode* retval); //methods: [ id(0x60020003), helpstring( "Gets the result of the download on a specified update.") ] HRESULT GetUpdateResult( [in] LONG updateIndex, [out, retval] IUpdateDownloadResult** retval); } [ helpstring("IDownloadProgress Interface"), object, oleautomation, dual, nonextensible, uuid(d31a5bac-f719-4178-9dbb-5e2cb47fd18a), pointer_default(unique), ] interface IDownloadProgress : IDispatch { //properties: [ id(0x60020001), propget, helpstring( "Gets a value specifying how much data has been transferred for " "the content file(s) of the update being downloaded, in bytes.") ] HRESULT CurrentUpdateBytesDownloaded( [out, retval] DECIMAL* retval); [ id(0x60020002), propget, helpstring( "Gets a value approximating how much data should be transferred " "for the content file(s) of the update being downloaded, in bytes.") ] HRESULT CurrentUpdateBytesToDownload( [out, retval] DECIMAL* retval); [ id(0x60020003), propget, helpstring( "Gets a zero-based index value into the updates specified in the " "download for the one which content file(s) are being downloaded.") ] HRESULT CurrentUpdateIndex( [out, retval] LONG* retval); [ id(0x60020004), propget, helpstring( "Gets a value estimating how far the download has progressed, in " "percents.") ] HRESULT PercentComplete( [out, retval] LONG* retval); [ id(0x60020005), propget, helpstring( "Gets a value specifying how much overall data has been " "transferred by the download, in bytes.") ] HRESULT TotalBytesDownloaded( [out, retval] DECIMAL* retval); [ id(0x60020006), propget, helpstring( "Gets a value approximating how much data should be transferred " "over all updates by the download, in bytes.") ] HRESULT TotalBytesToDownload( [out, retval] DECIMAL* retval); //methods: [ id(0x60020007), helpstring( "Gets the result of the download on a specified update.") ] HRESULT GetUpdateResult( [in] LONG updateIndex, [out, retval] IUpdateDownloadResult** retval); //additional properties: [ id(0x60020008), propget, helpstring( "Gets a DownloadPhase enumeration value specifying the " "current phase of the download in progress.") ] HRESULT CurrentUpdateDownloadPhase( [out, retval] DownloadPhase* retval); [ id(0x60020009), propget, helpstring( "Gets a value estimating how far the download of the current" " update has progressed, in percents.") ] HRESULT CurrentUpdatePercentComplete( [out, retval] LONG* retval); } [ helpstring("IDownloadJob Interface"), object, oleautomation, dual, nonextensible, uuid(c574de85-7358-43f6-aae8-8697e62d8ba7), pointer_default(unique), ] interface IDownloadJob : IDispatch { //properties: [ id(0x60020001), propget, helpstring( "Gets the caller-specified state object passed to the " "UpdateDownloader.BeginDownload method.") ] HRESULT AsyncState( [out, retval] VARIANT* retval); [ id(0x60020002), propget, helpstring( "Gets a value indicating whether the call has been completely " "processed.") ] HRESULT IsCompleted( [out, retval] VARIANT_BOOL* retval); [ id(0x60020003), propget, helpstring( "Gets a read-only collection of the updates specified in the " "download.") ] HRESULT Updates( [out, retval] IUpdateCollection** retval); //methods: [ id(0x60020004), helpstring( "Waits for asynchronous operation to complete and releases all " "callbacks, if any.") ] HRESULT CleanUp(); [ id(0x60020005), helpstring("Gets the current progress of the download.") ] HRESULT GetProgress( [out, retval] IDownloadProgress** retval); [ id(0x60020006), helpstring("Requests to abort the asynchronous download.") ] HRESULT RequestAbort(); } [ helpstring("IDownloadCompletedCallbackArgs Interface"), object, oleautomation, dual, nonextensible, uuid(fa565b23-498c-47a0-979d-e7d5b1813360), pointer_default(unique), ] interface IDownloadCompletedCallbackArgs : IDispatch { } [ helpstring("IDownloadCompletedCallback Interface"), object, oleautomation, nonextensible, uuid(77254866-9f5b-4c8e-b9e2-c77a8530d64b), pointer_default(unique) ] interface IDownloadCompletedCallback : IUnknown { //methods: [ id(0x60010001), helpstring( "Handles the notification about the completion of an asynchronous " "download initiated by calling UpdateDownloader.BeginDownload.") ] HRESULT Invoke( [in] IDownloadJob* downloadJob, [in] IDownloadCompletedCallbackArgs* callbackArgs); } [ helpstring("IDownloadProgressChangedCallbackArgs Interface"), object, oleautomation, dual, nonextensible, uuid(324ff2c6-4981-4b04-9412-57481745ab24), pointer_default(unique), ] interface IDownloadProgressChangedCallbackArgs : IDispatch { //properties: [ id(0x60020001), propget, helpstring( "Gets the progress of the asynchronous download at the time the " "callback was made.") ] HRESULT Progress( [out, retval] IDownloadProgress** retval); } [ helpstring("IDownloadProgressChangedCallback Interface"), object, oleautomation, nonextensible, uuid(8c3f1cdd-6173-4591-aebd-a56a53ca77c1), pointer_default(unique) ] interface IDownloadProgressChangedCallback : IUnknown { //methods: [ id(0x60010001), helpstring( "Handles the notification about the change of progress of an " "asynchronous download initiated by calling " "UpdateDownloader.BeginDownload.") ] HRESULT Invoke( [in] IDownloadJob* downloadJob, [in] IDownloadProgressChangedCallbackArgs* callbackArgs); } [ helpstring("IUpdateDownloader Interface"), object, oleautomation, dual, nonextensible, uuid(68f1c6f9-7ecc-4666-a464-247fe12496c3), pointer_default(unique), hidden // already exposed by a class ] interface IUpdateDownloader : IDispatch { //properties: [ id(0x60020001), propget, helpstring("Gets the identifier of the current client application.") ] HRESULT ClientApplicationID( [out, retval] BSTR* retval); [ id(0x60020001), propput, helpstring("Sets the identifier of the current client application.") ] HRESULT ClientApplicationID( [in] BSTR value); [ id(0x60020002), propget, helpstring( "Indicates whether to forcefully download the specified updates.") ] HRESULT IsForced( [out, retval] VARIANT_BOOL* retval); [ id(0x60020002), propput, helpstring( "Specifies whether to forcefully download the specified updates.") ] HRESULT IsForced( [in] VARIANT_BOOL value); [ id(0x60020003), propget, helpstring("Gets the desired priority level of the download.") ] HRESULT Priority( [out, retval] DownloadPriority* retval); [ id(0x60020003), propput, helpstring("Specifies the desired priority level of the download.") ] HRESULT Priority( [in] DownloadPriority value); [ id(0x60020004), propget, helpstring( "Gets the updates to download.") ] HRESULT Updates( [out, retval] IUpdateCollection** retval); [ id(0x60020004), propput, helpstring("Specifies the updates to download.") ] HRESULT Updates( [in] IUpdateCollection* value); //methods [ id(0x60020005), helpstring( "Begins an asynchronous operation to download the content file(s) " "associated with the updates.") ] HRESULT BeginDownload( [in] IUnknown* onProgressChanged, [in] IUnknown* onCompleted, [in] VARIANT state, [out, retval] IDownloadJob** retval); [ id(0x60020006), helpstring( "Synchronously downloads the content file(s) of the update(s) " "to the local cache on the target computer.") ] HRESULT Download( [out, retval] IDownloadResult** retval); [ id(0x60020007), helpstring("Completes an asynchronous download.") ] HRESULT EndDownload( [in] IDownloadJob* value, [out, retval] IDownloadResult** retval); } [ helpstring("IUpdateInstallationResult Interface"), object, oleautomation, dual, nonextensible, uuid(d940f0f8-3cbb-4fd0-993f-471e7f2328ad), pointer_default(unique), ] interface IUpdateInstallationResult : IDispatch { //properties: [ id(0x60020001), propget, helpstring("Gets the HRESULT value from the operation on the update.") ] HRESULT HResult( [out, retval] LONG* retval); [ id(0x60020002), propget, helpstring( "Indicates whether system reboot is required on the target " "computer to complete the installation on the Update.") ] HRESULT RebootRequired( [out, retval] VARIANT_BOOL* retval); [ id(0x60020003), propget, helpstring( "Gets an OperationResultCode enumeration value specifying the " "result of the operation on the update.") ] HRESULT ResultCode( [out, retval] OperationResultCode* retval); } [ helpstring("IInstallationResult Interface"), object, oleautomation, dual, nonextensible, uuid(a43c56d6-7451-48d4-af96-b6cd2d0d9b7a), pointer_default(unique), ] interface IInstallationResult : IDispatch { //properties: [ id(0x60020001), propget, helpstring("Gets the HRESULT returned from the (un)installation.") ] HRESULT HResult( [out, retval] LONG* retval); [ id(0x60020002), propget, helpstring( "Indicates whether a system reboot is required on the target " "computer to complete the (un)installation.") ] HRESULT RebootRequired( [out, retval] VARIANT_BOOL* retval); [ id(0x60020003), propget, helpstring( "Gets an OperationResultCode enumeration value specifying the " "overall result of the (un)installation.") ] HRESULT ResultCode( [out, retval] OperationResultCode* retval); //methods: [ id(0x60020004), helpstring( "Gets the result of the (un)installation on a specified update.") ] HRESULT GetUpdateResult( [in] LONG updateIndex, [out, retval] IUpdateInstallationResult** retval); } [ helpstring("IInstallationProgress Interface"), object, oleautomation, dual, nonextensible, uuid(345c8244-43a3-4e32-a368-65f073b76f36), pointer_default(unique), ] interface IInstallationProgress : IDispatch { //properties: [ id(0x60020001), propget, helpstring( "Gets a zero-based index value into the updates specified in the " "(un)installation for the one which content file(s) are being " "(un)installed.") ] HRESULT CurrentUpdateIndex( [out, retval] LONG* retval); [ id(0x60020002), propget, helpstring( "Gets a value specifying how much the (un)installation has " "completed upon the update being (un)installed, in percents.") ] HRESULT CurrentUpdatePercentComplete( [out, retval] LONG* retval); [ id(0x60020003), propget, helpstring( "Gets a value specifying how much overall the (un)installation has " "completed, in percents.") ] HRESULT PercentComplete( [out, retval] LONG* retval); //methods: [ id(0x60020004), helpstring( "Gets the result of the (un)installation on a specified update.") ] HRESULT GetUpdateResult( [in] LONG updateIndex, [out, retval] IUpdateInstallationResult** retval); } [ helpstring("IInstallationJob Interface"), object, oleautomation, dual, nonextensible, uuid(5c209f0b-bad5-432a-9556-4699bed2638a), pointer_default(unique), ] interface IInstallationJob : IDispatch { //properties: [ id(0x60020001), propget, helpstring( "Gets the caller-specified state object passed to the " "corresponding UpdateInstaller.BeginInstall or " "UpdateInstaller.BeginUninstall methods.") ] HRESULT AsyncState( [out, retval] VARIANT* retval); [ id(0x60020002), propget, helpstring( "Gets a value indicating whether the call has been completely " "processed.") ] HRESULT IsCompleted( [out, retval] VARIANT_BOOL* retval); [ id(0x60020003), propget, helpstring( "Gets a read-only collection of the updates specified in the " "(un)installation.") ] HRESULT Updates( [out, retval] IUpdateCollection** retval); //methods: [ id(0x60020004), helpstring( "Waits for asynchronous operation to complete and releases all " "callbacks, if any.") ] HRESULT CleanUp(); [ id(0x60020005), helpstring("Gets the current progress of the (un)installation.") ] HRESULT GetProgress( [out, retval] IInstallationProgress** retval); [ id(0x60020006), helpstring("Requests to abort the asynchronous (un)installation.") ] HRESULT RequestAbort(); } [ helpstring("IInstallationCompletedCallbackArgs Interface"), object, oleautomation, dual, nonextensible, uuid(250e2106-8efb-4705-9653-ef13c581b6a1), pointer_default(unique), ] interface IInstallationCompletedCallbackArgs : IDispatch { } [ helpstring("IInstallationCompletedCallback Interface"), object, oleautomation, nonextensible, uuid(45f4f6f3-d602-4f98-9a8a-3efa152ad2d3), pointer_default(unique) ] interface IInstallationCompletedCallback : IUnknown { //methods: [ id(0x60010001), helpstring( "Handles the notification about the completion of an asynchronous " "(un)installation initiated by the corresponding " "UpdateInstaller.BeginInstall or UpdateInstaller.BeginUninstall " "call.") ] HRESULT Invoke( [in] IInstallationJob* installationJob, [in] IInstallationCompletedCallbackArgs* callbackArgs); } [ helpstring("IInstallationProgressChangedCallbackArgs Interface"), object, oleautomation, dual, nonextensible, uuid(e4f14e1e-689d-4218-a0b9-bc189c484a01), pointer_default(unique), ] interface IInstallationProgressChangedCallbackArgs : IDispatch { //properties: [ id(0x60020001), propget, helpstring( "Gets the progress of the asynchronous (un)installation at the " "time the callback was made.") ] HRESULT Progress( [out, retval] IInstallationProgress** retval); //methods: } [ helpstring("IInstallationProgressChangedCallback Interface"), object, oleautomation, nonextensible, uuid(e01402d5-f8da-43ba-a012-38894bd048f1), pointer_default(unique) ] interface IInstallationProgressChangedCallback : IUnknown { //methods: [ id(0x60010001), helpstring( "Handles the notification about the change of progress of an " "asynchronous (un)installation initiated by the corresponding " "UpdateInstaller.BeginInstall or Update.BeginUninstall call.") ] HRESULT Invoke( [in] IInstallationJob* installationJob, [in] IInstallationProgressChangedCallbackArgs* callbackArgs); } [ helpstring("IUpdateInstaller Interface"), object, oleautomation, dual, nonextensible, uuid(7b929c68-ccdc-4226-96b1-8724600b54c2), pointer_default(unique), hidden // already exposed by a class ] interface IUpdateInstaller : IDispatch { //properties: [ id(0x60020001), propget, helpstring("Gets the identifier of the current client application.") ] HRESULT ClientApplicationID( [out, retval] BSTR* retval); [ id(0x60020001), propput, helpstring("Sets the identifier of the current client application.") ] HRESULT ClientApplicationID( [in] BSTR value); [ id(0x60020002), propget, helpstring( "Indicates whether to forcefully (un)install the specified updates.") ] HRESULT IsForced( [out, retval] VARIANT_BOOL* retval); [ id(0x60020002), propput, helpstring( "Specifies whether to forcefully (un)install the specified updates.") ] HRESULT IsForced( [in] VARIANT_BOOL value); [ id(0x60020003), propget, restricted, // Script caller can't read the type anyways helpstring( "Gets the window on top of which the wizard dialog box should " "be shown.") ] HRESULT ParentHwnd( [out, retval] HWND* retval); [ id(0x60020003), propput, restricted, // Script caller can't read the type anyways helpstring( "Sets the window on top of which the wizard dialog box should " "be shown.") ] HRESULT ParentHwnd( [in, unique] HWND value); [ id(0x60020004), propput, helpstring( "Sets the web browser window on top of which the wizard dialog box " "should be shown.") ] HRESULT ParentWindow( [in, unique] IUnknown* value); [ id(0x60020004), propget, helpstring( "Gets the web browser window on top of which the wizard dialog box " "should be shown.") ] HRESULT ParentWindow( [out, retval] IUnknown** retval); [ id(0x60020005), propget, helpstring( "Gets the updates to (un)install.") ] HRESULT Updates( [out, retval] IUpdateCollection** retval); [ id(0x60020005), propput, helpstring("Specifies the updates to (un)install.") ] HRESULT Updates( [in] IUpdateCollection* value); //methods [ id(0x60020006), helpstring( "Begins an asynchronous operation to install the updates.") ] HRESULT BeginInstall( [in] IUnknown* onProgressChanged, [in] IUnknown* onCompleted, [in] VARIANT state, [out, retval] IInstallationJob** retval); [ id(0x60020007), helpstring( "Begins an asynchronous operation to uninstall the updates.") ] HRESULT BeginUninstall( [in] IUnknown* onProgressChanged, [in] IUnknown* onCompleted, [in] VARIANT state, [out, retval] IInstallationJob** retval); [ id(0x60020008), helpstring("Completes an asynchronous installation.") ] HRESULT EndInstall( [in] IInstallationJob* value, [out, retval] IInstallationResult** retval); [ id(0x60020009), helpstring("Completes an asynchronous uninstallation.") ] HRESULT EndUninstall( [in] IInstallationJob* value, [out, retval] IInstallationResult** retval); [ id(0x6002000a), helpstring("Synchronously installs updates onto the target computer.") ] HRESULT Install( [out, retval] IInstallationResult** retval); [ id(0x6002000b), helpstring( "Interactively guides the local user to go through the steps to " "install updates.") ] HRESULT RunWizard( [in, defaultvalue("")] BSTR dialogTitle, [out, retval] IInstallationResult** retval); [ id(0x6002000c), propget, helpstring( "Indicates whether (un)installation can be performed on the target " "computer at this moment.") ] HRESULT IsBusy( [out, retval] VARIANT_BOOL* retval); [ id(0x6002000d), helpstring( "Synchronously uninstalls the updates from the target computer.") ] HRESULT Uninstall( [out, retval] IInstallationResult** retval); //properties: [ id(0x6002000e), propget, helpstring( "Indicates whether to show source prompts to the user, when " "needed, while installing updates.") ] HRESULT AllowSourcePrompts( [out, retval] VARIANT_BOOL* retval); [ id(0x6002000e), propput, helpstring( "Specifies whether to show source prompts to the user, when " "needed, while installing updates.") ] HRESULT AllowSourcePrompts( [in] VARIANT_BOOL value); [ id(0x6002000f), propget, helpstring( "Gets a value indicating whether a system reboot is required " "before (un)installing updates.") ] HRESULT RebootRequiredBeforeInstallation( [out, retval] VARIANT_BOOL* retval); } [ helpstring("IUpdateSession Interface"), object, oleautomation, dual, nonextensible, uuid(816858a4-260d-4260-933a-2585f1abc76b), pointer_default(unique), hidden // already exposed by a class ] interface IUpdateSession : IDispatch { //properties: [ id(0x60020001), propget, helpstring("Gets the identifier of the current client application.") ] HRESULT ClientApplicationID( [out, retval] BSTR* retval); [ id(0x60020001), propput, helpstring("Sets the identifier of the current client application.") ] HRESULT ClientApplicationID( [in] BSTR value); [ id(0x60020002), propget, helpstring( "Gets a boolean value indicating whether the UpdateSession object " "is read-only.") ] HRESULT ReadOnly( [out, retval] VARIANT_BOOL* retval); [ id(0x60020003), propget, helpstring( "Gets the proxy settings required to reaching the server for " "future operations in the UpdateSession.") ] HRESULT WebProxy( [out, retval] IWebProxy** retval); [ id(0x60020003), propput, helpstring( "Sets the proxy settings required to reach the server for " "future operations in the UpdateSession.") ] HRESULT WebProxy( [in, unique] IWebProxy* value); //methods: [ id(0x60020004), helpstring("Creates an UpdateSearcher within the UpdateSession.") ] HRESULT CreateUpdateSearcher( [out, retval] IUpdateSearcher** retval); [ id(0x60020005), helpstring("Creates an UpdateDownloader within the UpdateSession.") ] HRESULT CreateUpdateDownloader( [out, retval] IUpdateDownloader** retval); [ id(0x60020006), helpstring("Creates an UpdateInstaller within the UpdateSession.") ] HRESULT CreateUpdateInstaller( [out, retval] IUpdateInstaller** retval); } [ helpstring("IUpdateService Interface"), object, oleautomation, dual, nonextensible, uuid(9f95119d-2fe8-4a9f-bf1e-d5acb4699f3c), pointer_default(unique) ] interface IUpdateService : IDispatch { //properties: [ id(DISPID_VALUE), propget, helpstring("Name of the Service.") ] HRESULT Name( [out, retval] BSTR* retval); [ id(0x60020001), propget, helpstring("SHA1 hash of the certificate used to sign contents.") ] HRESULT ContentValidationCert( [out, retval] VARIANT* retval); [ id(0x60020002), propget, helpstring("Gets the date on which the Authorization Cab expires.") ] HRESULT ExpirationDate( [out, retval] DATE* retval); [ id(0x60020003), propget, helpstring("Indicates whether the Service is a managed service.") ] HRESULT IsManaged( [out, retval] VARIANT_BOOL* retval); [ id(0x60020004), propget, helpstring("Indicates whether the Service is registered with Automatic Updates.") ] HRESULT IsRegisteredWithAU( [out, retval] VARIANT_BOOL* retval); [ id(0x60020005), propget, helpstring("Gets the date on which the Authorization Cab was issued.") ] HRESULT IssueDate( [out, retval] DATE* retval); [ id(0x60020006), propget, helpstring( "Indicates whether the Service offers Windows updates.") ] HRESULT OffersWindowsUpdates( [out, retval] VARIANT_BOOL* retval); [ id(0x60020007), propget, helpstring("URL for the redirector cab.") ] HRESULT RedirectUrl( [out, retval] BSTR* retval); [ id(0x60020008), propget, helpstring("Gets the identifier of the Service.") ] HRESULT ServiceID( [out, retval] BSTR* retval); [ id(0x60020009), propget, helpstring( "Returns the CLSID registered by the Service to provide the user " "interface.") ] HRESULT UIPluginClsid( [out, retval] BSTR* retval); } [ helpstring("IUpdateServiceCollection Interface"), object, oleautomation, dual, nonextensible, uuid(9b0353aa-0e52-44ff-b8b0-1f7fa0437f88), pointer_default(unique) ] interface IUpdateServiceCollection : IDispatch { //properties: [ id(DISPID_VALUE), propget, helpstring("Gets an element in the collection.") ] HRESULT Item( [in] LONG index, [out, retval] IUpdateService** retval); [ id(DISPID_NEWENUM), propget, helpstring( "Gets an IEnumVARIANT interface on an object that can be used to " "enumerate the collection.") ] HRESULT _NewEnum( [out, retval] IUnknown** retval); [ id(0x60020001), propget, helpstring("Gets the number of elements contained in the collection.") ] HRESULT Count( [out, retval] LONG* retval); } [ helpstring("IUpdateServiceManager Interface"), object, oleautomation, dual, nonextensible, uuid(c165fa56-6f87-43aa-9d92-6cebcc7bcfe4), pointer_default(unique), hidden // already exposed by a class ] interface IUpdateServiceManager : IDispatch { //properties: [ id(0x60020001), propget, helpstring("Gets the services registered with the SUS Client.") ] HRESULT Services( [out, retval] IUpdateServiceCollection** retval); //methods: [ id(0x60020002), helpstring("Registers a service with SUS Client.") ] HRESULT AddService( [in] BSTR serviceID, [in] BSTR authorizationCabPath, [out, retval] IUpdateService** retval); [ id(0x60020003), helpstring("Registers the service with AU.") ] HRESULT RegisterServiceWithAU( [in] BSTR serviceID); [ id(0x60020004), helpstring("Removes a service registration from SUS Client.") ] HRESULT RemoveService( [in] BSTR serviceID); [ id(0x60020005), helpstring("Unregisters the service with AU.") ] HRESULT UnregisterServiceWithAU( [in] BSTR serviceID); } [ uuid(B596CC9F-56E5-419E-A622-E01BB457431E), version(2.0), helpstring("WUAPI 2.0 Type Library") ] library WUApiLib { importlib("stdole2.tlb"); interface IInvalidProductLicenseException; interface IWindowsDriverUpdate; interface ISearchCompletedCallback; interface ISearchProgressChangedCallback; interface IDownloadCompletedCallback; interface IDownloadProgressChangedCallback; interface IInstallationCompletedCallback; interface IInstallationProgressChangedCallback; [ helpstring("StringCollection Class"), uuid(72C97D74-7C3B-40AE-B77D-ABDB22EBA6FB) ] coclass StringCollection { [default] interface IStringCollection; }; [ helpstring("UpdateSearcher Class"), uuid(B699E5E8-67FF-4177-88B0-3684A3388BFB) ] coclass UpdateSearcher { [default] interface IUpdateSearcher; }; [ helpstring("WebProxy Class"), uuid(650503cf-9108-4ddc-a2ce-6c2341e1c582) ] coclass WebProxy { [default] interface IWebProxy; }; [ helpstring("SystemInformation Class"), uuid(C01B9BA0-BEA7-41BA-B604-D0A36F469133) ] coclass SystemInformation { [default] interface ISystemInformation; }; [ helpstring("AutomaticUpdates Class"), uuid(BFE18E9C-6D87-4450-B37C-E02F0B373803) ] coclass AutomaticUpdates { [default] interface IAutomaticUpdates; }; [ helpstring("UpdateCollection Class"), uuid(13639463-00DB-4646-803D-528026140D88) ] coclass UpdateCollection { [default] interface IUpdateCollection; }; [ helpstring("UpdateDownloader Class"), uuid(5BAF654A-5A07-4264-A255-9FF54C7151E7) ] coclass UpdateDownloader { [default] interface IUpdateDownloader; }; [ helpstring("UpdateInstaller Class"), uuid(D2E0FE7F-D23E-48E1-93C0-6FA8CC346474) ] coclass UpdateInstaller { [default] interface IUpdateInstaller; }; [ helpstring("UpdateSession Class"), uuid(4CB43D7F-7EEE-4906-8698-60DA1C38F2FE) ] coclass UpdateSession { [default] interface IUpdateSession; }; [ helpstring("UpdateServiceManager Class"), uuid(91353063-774C-4F84-B05B-498FEC7FBE25) ] coclass UpdateServiceManager { [default] interface IUpdateServiceManager; }; };