Robert Shearman : ole32: Add a test for CoCreateInstance doing object hosting by

Alexandre Julliard julliard at wine.codeweavers.com
Thu Jun 29 08:32:02 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 723aceb20f8b759340074592da7d3ca4d201fe0b
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=723aceb20f8b759340074592da7d3ca4d201fe0b

Author: Robert Shearman <rob at codeweavers.com>
Date:   Wed Jun 28 21:24:58 2006 +0100

ole32: Add a test for CoCreateInstance doing object hosting by
automatically creating an appropriate apartment for the object and
returning a proxy to it.

---

 dlls/ole32/tests/marshal.c |   23 +++++++++++++++++++++++
 1 files changed, 23 insertions(+), 0 deletions(-)

diff --git a/dlls/ole32/tests/marshal.c b/dlls/ole32/tests/marshal.c
index a1be2c3..24f9268 100644
--- a/dlls/ole32/tests/marshal.c
+++ b/dlls/ole32/tests/marshal.c
@@ -26,6 +26,7 @@ #include <stdarg.h>
 #include "windef.h"
 #include "winbase.h"
 #include "objbase.h"
+#include "shlguid.h"
 
 #include "wine/test.h"
 
@@ -59,6 +60,26 @@ static void test_CoGetPSClsid(void)
 	   hr);
 }
 
+static void test_cocreateinstance_proxy(void)
+{
+    IUnknown *pProxy;
+    IMultiQI *pMQI;
+    HRESULT hr;
+
+    pCoInitializeEx(NULL, COINIT_MULTITHREADED);
+
+    hr = CoCreateInstance(&CLSID_ShellDesktop, NULL, CLSCTX_INPROC, &IID_IUnknown, (void **)&pProxy);
+    ok_ole_success(hr, CoCreateInstance);
+    hr = IUnknown_QueryInterface(pProxy, &IID_IMultiQI, (void **)&pMQI);
+    todo_wine
+    ok(hr == S_OK, "created object is not a proxy, so was created in the wrong apartment\n");
+    if (hr == S_OK)
+        IMultiQI_Release(pMQI);
+    IUnknown_Release(pProxy);
+
+    CoUninitialize();
+}
+
 static const LARGE_INTEGER ullZero;
 static LONG cLocks;
 
@@ -2214,6 +2235,8 @@ START_TEST(marshal)
     wndclass.lpszClassName = "WineCOMTest";
     RegisterClass(&wndclass);
 
+    test_cocreateinstance_proxy();
+
     pCoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
 
     /* FIXME: test CoCreateInstanceEx */




More information about the wine-cvs mailing list