ole32: Add a test for CoCreateInstance doing object hosting by

automatically creating an appropriate apartment for the object and
returning a proxy to it.
This commit is contained in:
Robert Shearman 2006-06-28 21:24:58 +01:00 committed by Alexandre Julliard
parent b0efdcbdbd
commit 723aceb20f

View File

@ -26,6 +26,7 @@
#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 */