Robert Shearman : ole: Make the CoCreateInstance test succeed.
Alexandre Julliard
julliard at wine.codeweavers.com
Wed Feb 22 15:30:20 CST 2006
Module: wine
Branch: refs/heads/master
Commit: 6c529a72737fdf54eac63faaedd36d46e720d06d
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=6c529a72737fdf54eac63faaedd36d46e720d06d
Author: Robert Shearman <rob at codeweavers.com>
Date: Wed Feb 22 16:26:25 2006 +0000
ole: Make the CoCreateInstance test succeed.
Move the uninitialized apartment check after zeroing out the return
value.
---
dlls/ole32/compobj.c | 12 ++++++------
dlls/ole32/tests/compobj.c | 2 --
2 files changed, 6 insertions(+), 8 deletions(-)
diff --git a/dlls/ole32/compobj.c b/dlls/ole32/compobj.c
index a757adb..67c8655 100644
--- a/dlls/ole32/compobj.c
+++ b/dlls/ole32/compobj.c
@@ -1836,12 +1836,6 @@ HRESULT WINAPI CoCreateInstance(
TRACE("(rclsid=%s, pUnkOuter=%p, dwClsContext=%08lx, riid=%s, ppv=%p)\n", debugstr_guid(rclsid),
pUnkOuter, dwClsContext, debugstr_guid(iid), ppv);
- if (!COM_CurrentApt())
- {
- ERR("apartment not initialised\n");
- return CO_E_NOTINITIALIZED;
- }
-
/*
* Sanity check
*/
@@ -1853,6 +1847,12 @@ HRESULT WINAPI CoCreateInstance(
*/
*ppv = 0;
+ if (!COM_CurrentApt())
+ {
+ ERR("apartment not initialised\n");
+ return CO_E_NOTINITIALIZED;
+ }
+
/*
* The Standard Global Interface Table (GIT) object is a process-wide singleton.
* Rather than create a class factory, we can just check for it here
diff --git a/dlls/ole32/tests/compobj.c b/dlls/ole32/tests/compobj.c
index 8882d28..f1f97cf 100644
--- a/dlls/ole32/tests/compobj.c
+++ b/dlls/ole32/tests/compobj.c
@@ -88,9 +88,7 @@ static void test_CoCreateInstance(void)
IUnknown *pUnk = (IUnknown *)0xdeadbeef;
HRESULT hr = CoCreateInstance(rclsid, NULL, CLSCTX_INPROC_SERVER, &IID_IUnknown, (void **)&pUnk);
ok(hr == CO_E_NOTINITIALIZED, "CoCreateInstance should have return CO_E_NOTINITIALIZED instead of 0x%08lx", hr);
- todo_wine {
ok(pUnk == NULL, "CoCreateInstance should have changed the passed in pointer to NULL, instead of %p\n", pUnk);
- }
OleInitialize(NULL);
hr = CoCreateInstance(rclsid, NULL, CLSCTX_INPROC_SERVER, &IID_IUnknown, (void **)&pUnk);
More information about the wine-cvs
mailing list