Rob Shearman : ole32:
Add some tests for the flags input to CoRegisterClassObject.
Alexandre Julliard
julliard at wine.codeweavers.com
Fri Mar 9 15:47:46 CST 2007
Module: wine
Branch: master
Commit: 7ba4b81675e52c6db3c05ee7f9717f13395fb631
URL: http://source.winehq.org/git/wine.git/?a=commit;h=7ba4b81675e52c6db3c05ee7f9717f13395fb631
Author: Rob Shearman <rob at codeweavers.com>
Date: Fri Mar 9 17:49:05 2007 +0000
ole32: Add some tests for the flags input to CoRegisterClassObject.
---
dlls/ole32/tests/compobj.c | 62 ++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 62 insertions(+), 0 deletions(-)
diff --git a/dlls/ole32/tests/compobj.c b/dlls/ole32/tests/compobj.c
index 2d2cf12..e9b2ca9 100644
--- a/dlls/ole32/tests/compobj.c
+++ b/dlls/ole32/tests/compobj.c
@@ -640,6 +640,67 @@ static void test_CoMarshalInterThreadInterfaceInStream(void)
CoUninitialize();
}
+static void test_CoRegisterClassObject(void)
+{
+ static const CLSID CLSID_WineOOPTest = {
+ 0x5201163f,
+ 0x8164,
+ 0x4fd0,
+ {0xa1, 0xa2, 0x5d, 0x5a, 0x36, 0x54, 0xd3, 0xbd}
+ }; /* 5201163f-8164-4fd0-a1a2-5d5a3654d3bd */
+ DWORD cookie;
+ HRESULT hr;
+
+ pCoInitializeEx(NULL, COINIT_APARTMENTTHREADED);
+
+ /* CLSCTX_INPROC_SERVER */
+ hr = CoRegisterClassObject(&CLSID_WineOOPTest, (IUnknown *)&Test_ClassFactory,
+ CLSCTX_INPROC_SERVER, REGCLS_SINGLEUSE, &cookie);
+ ok_ole_success(hr, "CoRegisterClassObject");
+ hr = CoRevokeClassObject(cookie);
+ ok_ole_success(hr, "CoRevokeClassObject");
+
+ hr = CoRegisterClassObject(&CLSID_WineOOPTest, (IUnknown *)&Test_ClassFactory,
+ CLSCTX_INPROC_SERVER, REGCLS_MULTIPLEUSE, &cookie);
+ ok_ole_success(hr, "CoRegisterClassObject");
+ hr = CoRevokeClassObject(cookie);
+ ok_ole_success(hr, "CoRevokeClassObject");
+
+ hr = CoRegisterClassObject(&CLSID_WineOOPTest, (IUnknown *)&Test_ClassFactory,
+ CLSCTX_INPROC_SERVER, REGCLS_MULTI_SEPARATE, &cookie);
+ ok_ole_success(hr, "CoRegisterClassObject");
+ hr = CoRevokeClassObject(cookie);
+ ok_ole_success(hr, "CoRevokeClassObject");
+
+ /* CLSCTX_LOCAL_SERVER */
+ hr = CoRegisterClassObject(&CLSID_WineOOPTest, (IUnknown *)&Test_ClassFactory,
+ CLSCTX_LOCAL_SERVER, REGCLS_SINGLEUSE, &cookie);
+ ok_ole_success(hr, "CoRegisterClassObject");
+ hr = CoRevokeClassObject(cookie);
+ ok_ole_success(hr, "CoRevokeClassObject");
+
+ hr = CoRegisterClassObject(&CLSID_WineOOPTest, (IUnknown *)&Test_ClassFactory,
+ CLSCTX_LOCAL_SERVER, REGCLS_MULTIPLEUSE, &cookie);
+ ok_ole_success(hr, "CoRegisterClassObject");
+ hr = CoRevokeClassObject(cookie);
+ ok_ole_success(hr, "CoRevokeClassObject");
+
+ hr = CoRegisterClassObject(&CLSID_WineOOPTest, (IUnknown *)&Test_ClassFactory,
+ CLSCTX_LOCAL_SERVER, REGCLS_MULTI_SEPARATE, &cookie);
+ ok_ole_success(hr, "CoRegisterClassObject");
+ hr = CoRevokeClassObject(cookie);
+ ok_ole_success(hr, "CoRevokeClassObject");
+
+ /* CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER */
+ hr = CoRegisterClassObject(&CLSID_WineOOPTest, (IUnknown *)&Test_ClassFactory,
+ CLSCTX_INPROC_SERVER|CLSCTX_LOCAL_SERVER, REGCLS_SINGLEUSE, &cookie);
+ ok_ole_success(hr, "CoRegisterClassObject");
+ hr = CoRevokeClassObject(cookie);
+ ok_ole_success(hr, "CoRevokeClassObject");
+
+ CoUninitialize();
+}
+
START_TEST(compobj)
{
HMODULE hOle32 = GetModuleHandle("ole32");
@@ -662,4 +723,5 @@ START_TEST(compobj)
test_CoGetInterfaceAndReleaseStream();
test_CoMarshalInterface();
test_CoMarshalInterThreadInterfaceInStream();
+ test_CoRegisterClassObject();
}
More information about the wine-cvs
mailing list