Rob Shearman : ole32: Allow the getting of different interfaces from the global interface table than that with what the object was registered with .

Alexandre Julliard julliard at wine.codeweavers.com
Wed May 23 08:10:56 CDT 2007


Module: wine
Branch: master
Commit: 7d90b6ce295fe876dc7b3474146e965cdc4a5cdc
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=7d90b6ce295fe876dc7b3474146e965cdc4a5cdc

Author: Rob Shearman <rob at codeweavers.com>
Date:   Tue May 22 10:32:19 2007 +0100

ole32: Allow the getting of different interfaces from the global interface table than that with what the object was registered with.

---

 dlls/ole32/git.c           |    6 +-----
 dlls/ole32/tests/marshal.c |    3 +--
 2 files changed, 2 insertions(+), 7 deletions(-)

diff --git a/dlls/ole32/git.c b/dlls/ole32/git.c
index b51990d..c310249 100644
--- a/dlls/ole32/git.c
+++ b/dlls/ole32/git.c
@@ -271,15 +271,11 @@ StdGlobalInterfaceTable_GetInterfaceFromGlobal(
 
   entry = StdGlobalInterfaceTable_FindEntry(iface, dwCookie);
   if (entry == NULL) {
+    WARN("Entry for cookie 0x%x not found\n", dwCookie);
     LeaveCriticalSection(&git_section);
     return E_INVALIDARG;
   }
 
-  if (!IsEqualIID(&entry->iid, riid)) {
-    LeaveCriticalSection(&git_section);
-    WARN("entry->iid (%s) != riid\n", debugstr_guid(&entry->iid));
-    return E_INVALIDARG;
-  }
   TRACE("entry=%p\n", entry);
 
   hres = IStream_Clone(entry->stream, &stream);
diff --git a/dlls/ole32/tests/marshal.c b/dlls/ole32/tests/marshal.c
index d0735fc..0b3cfeb 100644
--- a/dlls/ole32/tests/marshal.c
+++ b/dlls/ole32/tests/marshal.c
@@ -2640,9 +2640,8 @@ static void test_globalinterfacetable(void)
 
 	/* test getting interface from global with different iid */
 	hr = IGlobalInterfaceTable_GetInterfaceFromGlobal(git, cookie, &IID_IUnknown, (void **)&object);
-	todo_wine
 	ok_ole_success(hr, IGlobalInterfaceTable_GetInterfaceFromGlobal);
-	if (SUCCEEDED(hr)) IUnknown_Release(object);
+	IUnknown_Release(object);
 
 	/* test getting interface from global with same iid */
 	hr = IGlobalInterfaceTable_GetInterfaceFromGlobal(git, cookie, &IID_IClassFactory, (void **)&object);




More information about the wine-cvs mailing list