Gijs Vermeulen : wuapi: Add UpdateInstaller coclass.

Alexandre Julliard julliard at winehq.org
Thu May 28 17:11:09 CDT 2020


Module: wine
Branch: master
Commit: 45cb03f4878dc80df6624d246bfb1ad1f925af51
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=45cb03f4878dc80df6624d246bfb1ad1f925af51

Author: Gijs Vermeulen <gijsvrm at gmail.com>
Date:   Sat May 23 16:41:31 2020 +0200

wuapi: Add UpdateInstaller coclass.

Signed-off-by: Gijs Vermeulen <gijsvrm at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/wuapi/main.c | 5 +++++
 include/wuapi.idl | 9 +++++++++
 2 files changed, 14 insertions(+)

diff --git a/dlls/wuapi/main.c b/dlls/wuapi/main.c
index c2ed95ed42..63392b3660 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 d1a3593084..a0a8e4359a 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),




More information about the wine-cvs mailing list