Module: wine Branch: master Commit: 959814a3bdb8bb7337840e7cb93cea9f2fbd00fc URL: http://source.winehq.org/git/wine.git/?a=commit;h=959814a3bdb8bb7337840e7cb9...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Tue Jul 17 11:22:59 2012 +0400
ole32: Fix QueryInterface for IErrorInfo to return IUnknown pointer.
---
dlls/ole32/errorinfo.c | 2 +- dlls/ole32/tests/errorinfo.c | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletions(-)
diff --git a/dlls/ole32/errorinfo.c b/dlls/ole32/errorinfo.c index 6a499fc..055d6a5 100644 --- a/dlls/ole32/errorinfo.c +++ b/dlls/ole32/errorinfo.c @@ -160,7 +160,7 @@ static HRESULT WINAPI IErrorInfoImpl_QueryInterface(
*ppvoid = NULL;
- if(IsEqualIID(riid, &IID_IErrorInfo)) + if (IsEqualIID(riid, &IID_IUnknown) || IsEqualIID(riid, &IID_IErrorInfo)) { *ppvoid = &This->IErrorInfo_iface; } diff --git a/dlls/ole32/tests/errorinfo.c b/dlls/ole32/tests/errorinfo.c index f55d480..bb350ae 100644 --- a/dlls/ole32/tests/errorinfo.c +++ b/dlls/ole32/tests/errorinfo.c @@ -47,10 +47,15 @@ static void test_error_info(void) static WCHAR wszDescription[] = {'F','a','i','l','e','d',' ','S','p','r','o','c','k','e','t',0}; static WCHAR wszHelpFile[] = {'s','p','r','o','c','k','e','t','.','h','l','p',0}; static WCHAR wszSource[] = {'s','p','r','o','c','k','e','t',0}; + IUnknown *unk;
hr = CreateErrorInfo(&pCreateErrorInfo); ok_ole_success(hr, "CreateErrorInfo");
+ hr = ICreateErrorInfo_QueryInterface(pCreateErrorInfo, &IID_IUnknown, (void**)&unk); + ok_ole_success(hr, "QI"); + IUnknown_Release(unk); + hr = ICreateErrorInfo_SetDescription(pCreateErrorInfo, NULL); ok_ole_success(hr, "ICreateErrorInfo_SetDescription");
@@ -78,6 +83,10 @@ static void test_error_info(void) hr = ICreateErrorInfo_QueryInterface(pCreateErrorInfo, &IID_IErrorInfo, (void **)&pErrorInfo); ok_ole_success(hr, "ICreateErrorInfo_QueryInterface");
+ hr = IErrorInfo_QueryInterface(pErrorInfo, &IID_IUnknown, (void**)&unk); + ok_ole_success(hr, "QI"); + IUnknown_Release(unk); + ICreateErrorInfo_Release(pCreateErrorInfo);
hr = SetErrorInfo(0, pErrorInfo);