diff --git a/dlls/wuapi/main.c b/dlls/wuapi/main.c index c2ed95ed42b..63392b3660c 100644 --- a/dlls/wuapi/main.c +++ b/dlls/wuapi/main.c @@ -111,6 +111,7 @@ static const struct IClassFactoryVtbl wucf_vtbl = static wucf sessioncf = { { &wucf_vtbl }, UpdateSession_create }; static wucf updatescf = { { &wucf_vtbl }, AutomaticUpdates_create }; static wucf sysinfocf = { { &wucf_vtbl }, SystemInformation_create }; +static wucf installercf = { { &wucf_vtbl }, UpdateInstaller_create }; static HINSTANCE instance; @@ -146,6 +147,10 @@ HRESULT WINAPI DllGetClassObject( REFCLSID rclsid, REFIID iid, LPVOID *ppv ) { cf = &sysinfocf.IClassFactory_iface; } + else if (IsEqualGUID( rclsid, &CLSID_UpdateInstaller )) + { + cf = &installercf.IClassFactory_iface; + } if (!cf) return CLASS_E_CLASSNOTAVAILABLE; return IClassFactory_QueryInterface( cf, iid, ppv ); } diff --git a/include/wuapi.idl b/include/wuapi.idl index d1a35930841..a0a8e4359a9 100644 --- a/include/wuapi.idl +++ b/include/wuapi.idl @@ -1329,6 +1329,15 @@ interface ISystemInformation : IDispatch ] coclass AutomaticUpdates { interface IAutomaticUpdates; } +[ + helpstring("UpdateInstaller Class"), + threading(both), + progid("Microsoft.Update.Installer.1"), + vi_progid("Microsoft.Update.Installer"), + uuid(d2e0fe7f-d23e-48e1-93c0-6fa8cc346474) +] +coclass UpdateInstaller { interface IUpdateInstaller; } + [ helpstring("UpdateSession Class"), threading(both),