// LegacyUpdate.idl : IDL source for LegacyUpdate // // This file will be processed by the MIDL tool to // produce the type library (LegacyUpdate.tlb) and marshalling code. #include #include import "oaidl.idl"; import "ocidl.idl"; import "wuapi.idl"; typedef enum OSVersionField { e_majorVer = 0, e_minorVer = 1, e_buildNumber = 2, e_platform = 3, e_SPMajor = 4, e_SPMinor = 5, e_productSuite = 6, e_productType = 7, e_systemMetric = 8, e_SPVersionString = 9, e_controlVersionString = 10, e_VistaProductType = 11, e_productName = 12, e_displayVersion = 13, e_maxOSVersionFieldValue = 13 } OSVersionField; typedef enum UserType { e_nonAdmin = 0, e_admin = 2, e_elevated = 3 } UserType; [ object, uuid(C33085BB-C3E1-4D27-A214-AF01953DF5E5), dual, nonextensible, helpstring("ILegacyUpdateCtrl Interface"), pointer_default(unique) ] interface ILegacyUpdateCtrl : IDispatch { [id(1)] HRESULT CheckControl([out, retval] VARIANT_BOOL *retval); [id(2)] HRESULT MessageForHresult(LONG inHresult, [out, retval] BSTR *retval); [id(3)] HRESULT GetOSVersionInfo(OSVersionField osField, LONG systemMetric, [out, retval] VARIANT *retval); [id(14)] HRESULT RequestElevation(void); [id(4)] HRESULT CreateObject(BSTR progID, [out, retval] IDispatch **retval); [id(15)] HRESULT SetBrowserHwnd(IUpdateInstaller *installer); [id(5)] HRESULT GetUserType([out, retval] UserType *retval); [id(8)] HRESULT RebootIfRequired(void); [id(9)] HRESULT ViewWindowsUpdateLog(void); [id(13)] HRESULT OpenWindowsUpdateSettings(void); [id(6), propget] HRESULT IsRebootRequired([out, retval] VARIANT_BOOL *retval); [id(7), propget] HRESULT IsWindowsUpdateDisabled([out, retval] VARIANT_BOOL *retval); [id(10), propget] HRESULT IsUsingWsusServer([out, retval] VARIANT_BOOL *retval); [id(11), propget] HRESULT WsusServerUrl([out, retval] BSTR *retval); [id(12), propget] HRESULT WsusStatusServerUrl([out, retval] BSTR *retval); }; [ object, uuid(4524BFBF-70BD-4EAC-AD33-6BADA4FB0638), dual, nonextensible, pointer_default(unique) ] interface IProgressBarControl : IDispatch { [id(1), propget] HRESULT Value([out, retval] SHORT *retval); [id(1), propput] HRESULT Value([in] SHORT newVal); }; [ object, uuid(3236E684-0E4B-4780-9F31-F1983F5AB78D), dual, nonextensible, pointer_default(unique), oleautomation ] interface IElevationHelper : IDispatch { [id(1)] HRESULT CreateObject(BSTR progID, [out, retval] IDispatch **retval); [id(2)] HRESULT Reboot(void); }; [ uuid(05D22F33-C7C3-4C90-BDD9-CEDC86EA8FBE), version(1.0), helpstring("Legacy Update Control") ] library LegacyUpdateLib { importlib(STDOLE_TLB); [ uuid(AD28E0DF-5F5A-40B5-9432-85EFD97D1F9F), control, helpstring("LegacyUpdateCtrl Class") ] coclass LegacyUpdateCtrl { [default] interface ILegacyUpdateCtrl; }; [ uuid(7B875A2F-2DFB-4D38-91F5-5C0BFB74C377), control, helpstring("ProgressBarControl Class") ] coclass ProgressBarControl { [default] interface IProgressBarControl; }; [ uuid(84F517AD-6438-478F-BEA8-F0B808DC257F), helpstring("ElevationHelper Class") ] coclass ElevationHelper { [default] interface IElevationHelper; }; };