Module: wine Branch: master Commit: fde61d467abd7c8357c25d17b39b2a5e8e9b871c URL: http://source.winehq.org/git/wine.git/?a=commit;h=fde61d467abd7c8357c25d17b3...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Mon Mar 21 11:55:57 2016 +0300
ole32: Fix CreataDataCache() return value when requested riid is not IUnknown, for aggregation case.
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Huw Davies huw@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/ole32/datacache.c | 2 +- dlls/ole32/tests/ole2.c | 1 - 2 files changed, 1 insertion(+), 2 deletions(-)
diff --git a/dlls/ole32/datacache.c b/dlls/ole32/datacache.c index e93e867..21f63d3 100644 --- a/dlls/ole32/datacache.c +++ b/dlls/ole32/datacache.c @@ -2464,7 +2464,7 @@ HRESULT WINAPI CreateDataCache( * IUnknown pointer can be returned to the outside. */ if ( pUnkOuter && !IsEqualIID(&IID_IUnknown, riid) ) - return CLASS_E_NOAGGREGATION; + return E_INVALIDARG;
/* * Try to construct a new instance of the class. diff --git a/dlls/ole32/tests/ole2.c b/dlls/ole32/tests/ole2.c index d58105c..afff6ba 100644 --- a/dlls/ole32/tests/ole2.c +++ b/dlls/ole32/tests/ole2.c @@ -1598,7 +1598,6 @@ static void test_data_cache(void)
/* requested is not IUnknown */ hr = CreateDataCache(&unknown, &CLSID_NULL, &IID_IOleCache2, (void**)&pOleCache); -todo_wine ok(hr == E_INVALIDARG, "got 0x%08x\n", hr);
hr = CreateDataCache(&unknown, &CLSID_NULL, &IID_IUnknown, (void**)&unk);