Commit 723aceb2 authored by Robert Shearman's avatar Robert Shearman Committed by Alexandre Julliard

ole32: Add a test for CoCreateInstance doing object hosting by

automatically creating an appropriate apartment for the object and returning a proxy to it.
parent b0efdcbd
...@@ -26,6 +26,7 @@ ...@@ -26,6 +26,7 @@
#include "windef.h" #include "windef.h"
#include "winbase.h" #include "winbase.h"
#include "objbase.h" #include "objbase.h"
#include "shlguid.h"
#include "wine/test.h" #include "wine/test.h"
...@@ -59,6 +60,26 @@ static void test_CoGetPSClsid(void) ...@@ -59,6 +60,26 @@ static void test_CoGetPSClsid(void)
hr); 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 const LARGE_INTEGER ullZero;
static LONG cLocks; static LONG cLocks;
...@@ -2214,6 +2235,8 @@ START_TEST(marshal) ...@@ -2214,6 +2235,8 @@ START_TEST(marshal)
wndclass.lpszClassName = "WineCOMTest"; wndclass.lpszClassName = "WineCOMTest";
RegisterClass(&wndclass); RegisterClass(&wndclass);
test_cocreateinstance_proxy();
pCoInitializeEx(NULL, COINIT_APARTMENTTHREADED); pCoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
/* FIXME: test CoCreateInstanceEx */ /* FIXME: test CoCreateInstanceEx */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment