[v2 3/5] compobj.dll16: Implement CoCreateInstance16().

Zebediah Figura z.figura12 at gmail.com
Thu Feb 9 00:17:13 CST 2017


Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
---
 dlls/compobj.dll16/compobj.c | 27 ++++++++++++++++-----------
 1 file changed, 16 insertions(+), 11 deletions(-)

diff --git a/dlls/compobj.dll16/compobj.c b/dlls/compobj.dll16/compobj.c
index aa87227..fa021b5 100644
--- a/dlls/compobj.dll16/compobj.c
+++ b/dlls/compobj.dll16/compobj.c
@@ -899,17 +899,22 @@ HRESULT WINAPI CoCreateGuid16(GUID *pguid)
  *           CoCreateInstance [COMPOBJ.13]
  */
 HRESULT WINAPI CoCreateInstance16(
-	REFCLSID rclsid,
-	LPUNKNOWN pUnkOuter,
-	DWORD dwClsContext,
-	REFIID iid,
-	LPVOID *ppv)
-{
-  FIXME("(%s, %p, %x, %s, %p), stub!\n",
-	debugstr_guid(rclsid), pUnkOuter, dwClsContext, debugstr_guid(iid),
-	ppv
-  );
-  return E_NOTIMPL;
+    REFCLSID rclsid,
+    LPUNKNOWN pUnkOuter,
+    DWORD dwClsContext,
+    REFIID riid,
+    LPVOID *ppv)
+{
+    IClassFactory *cf;
+    HRESULT hr;
+
+    hr = CoGetClassObject16(rclsid, dwClsContext, NULL, &IID_IClassFactory, (void **)&cf);
+    if (FAILED(hr))
+        return hr;
+
+    hr = IClassFactory_CreateInstance(cf, pUnkOuter, riid, ppv);
+    IClassFactory_Release(cf);
+    return hr;
 }
 
 /***********************************************************************
-- 
2.7.4




More information about the wine-patches mailing list