[PATCH] ole32: fix composite moniker behaviour.
Reece Dunn
msclrhd at googlemail.com
Mon Mar 1 17:52:39 CST 2010
Hi,
This applies on top of the patch:
[PATCH] ole32: IMoniker_IsRunning returns E_INVALIDARG when bindctx is NULL.
and fixes the remaining composite moniker tests.
- Reece
-------------- next part --------------
From 2c4755bed57a04f0a7c5e5dbba71d4db8e70394d Mon Sep 17 00:00:00 2001
From: Reece Dunn <msclrhd at gmail.com>
Date: Mon, 1 Mar 2010 23:48:13 +0000
Subject: [PATCH] ole32: fix composite moniker behaviour.
---
dlls/ole32/compositemoniker.c | 5 ++---
dlls/ole32/tests/moniker.c | 2 --
2 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/dlls/ole32/compositemoniker.c b/dlls/ole32/compositemoniker.c
index 7402b8e..b49c550 100644
--- a/dlls/ole32/compositemoniker.c
+++ b/dlls/ole32/compositemoniker.c
@@ -365,8 +365,7 @@ CompositeMonikerImpl_BindToObject(IMoniker* iface, IBindCtx* pbc,
/* if the requested class was loaded before ! we don't need to reload it */
res = IRunningObjectTable_GetObject(prot,iface,(IUnknown**)ppvResult);
- if (res==S_OK)
- return res;
+ return res==S_OK ? S_OK : E_INVALIDARG;
}
}
else{
@@ -703,7 +702,7 @@ CompositeMonikerImpl_IsRunning(IMoniker* iface, IBindCtx* pbc,
IMoniker_Release(tempMk);
IMoniker_Release(mostRigthMk);
- return res;
+ return SUCCEEDED(res) ? res : S_FALSE;
}
}
}
diff --git a/dlls/ole32/tests/moniker.c b/dlls/ole32/tests/moniker.c
index b4e3e2f..6576c50 100644
--- a/dlls/ole32/tests/moniker.c
+++ b/dlls/ole32/tests/moniker.c
@@ -1633,14 +1633,12 @@ static void test_generic_composite_moniker(void)
ok(hr == E_INVALIDARG, "IMoniker_IsRunning should return E_INVALIDARG, not 0x%08x\n", hr);
hr = IMoniker_IsRunning(moniker, bindctx, NULL, NULL);
- todo_wine
ok(hr == S_FALSE, "IMoniker_IsRunning should return S_FALSE, not 0x%08x\n", hr);
hr = IMoniker_GetTimeOfLastChange(moniker, bindctx, NULL, &filetime);
ok(hr == MK_E_NOTBINDABLE, "IMoniker_GetTimeOfLastChange should return MK_E_NOTBINDABLE, not 0x%08x\n", hr);
hr = IMoniker_BindToObject(moniker, bindctx, NULL, &IID_IUnknown, (void **)&unknown);
- todo_wine
ok(hr == E_INVALIDARG, "IMoniker_BindToObject should return E_INVALIDARG, not 0x%08x\n", hr);
hr = IMoniker_BindToStorage(moniker, bindctx, NULL, &IID_IUnknown, (void **)&unknown);
--
1.6.3.3
More information about the wine-patches
mailing list