[5/5] ole32: Fix QI for IErrorInfo to return IUnknown pointer

Nikolay Sivov nsivov at codeweavers.com
Tue Jul 17 02:29:35 CDT 2012


Fix QI for IErrorInfo to return IUnknown pointer
-------------- next part --------------
>From eb9fe089d47447653079a52c1e9fcff542fd3a13 Mon Sep 17 00:00:00 2001
From: Nikolay Sivov <nsivov at codeweavers.com>
Date: Tue, 17 Jul 2012 11:22:59 +0400
Subject: [PATCH 6/6] Fix QI 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);
-- 
1.5.6.5




More information about the wine-patches mailing list