ole32: Fix QueryInterface for IErrorInfo to return IUnknown pointer.

This commit is contained in:
Nikolay Sivov 2012-07-17 11:22:59 +04:00 committed by Alexandre Julliard
parent fa4db6d9ef
commit 959814a3bd
2 changed files with 10 additions and 1 deletions

View File

@ -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;
}

View File

@ -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);