Piotr Caban : urlmon: Use CopyBindInfo in InternetBindInfo_GetBindInfo.

Alexandre Julliard julliard at winehq.org
Thu Mar 8 14:26:24 CST 2012


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Mar  8 13:45:51 2012 +0100

urlmon: Use CopyBindInfo in InternetBindInfo_GetBindInfo.

---

 dlls/urlmon/binding.c     |   14 +-------------
 dlls/urlmon/tests/url.c   |    5 +++++
 dlls/urlmon/urlmon_main.h |    2 ++
 3 files changed, 8 insertions(+), 13 deletions(-)

diff --git a/dlls/urlmon/binding.c b/dlls/urlmon/binding.c
index 5504f6f..c969eae 100644
--- a/dlls/urlmon/binding.c
+++ b/dlls/urlmon/binding.c
@@ -1150,19 +1150,7 @@ static HRESULT WINAPI InternetBindInfo_GetBindInfo(IInternetBindInfo *iface,
     TRACE("(%p)->(%p %p)\n", This, grfBINDF, pbindinfo);
 
     *grfBINDF = This->bindf;
-
-    *pbindinfo = This->bindinfo;
-
-    if(pbindinfo->szExtraInfo || pbindinfo->szCustomVerb)
-        FIXME("copy strings\n");
-
-    if(pbindinfo->stgmedData.pUnkForRelease)
-        IUnknown_AddRef(pbindinfo->stgmedData.pUnkForRelease);
-
-    if(pbindinfo->pUnk)
-        IUnknown_AddRef(pbindinfo->pUnk);
-
-    return S_OK;
+    return CopyBindInfo(&This->bindinfo, pbindinfo);
 }
 
 static HRESULT WINAPI InternetBindInfo_GetBindString(IInternetBindInfo *iface,
diff --git a/dlls/urlmon/tests/url.c b/dlls/urlmon/tests/url.c
index b9291ac..f9e7cb5 100644
--- a/dlls/urlmon/tests/url.c
+++ b/dlls/urlmon/tests/url.c
@@ -641,6 +641,11 @@ static HRESULT WINAPI Protocol_Start(IInternetProtocol *iface, LPCWSTR szUrl,
     }
 
     memset(&bindinfo, 0, sizeof(bindinfo));
+    bindinfo.cbSize = 0;
+    hres = IInternetBindInfo_GetBindInfo(pOIBindInfo, &bind_info, &bindinfo);
+    ok(hres == E_INVALIDARG, "GetBindInfo returned: %08x, expected E_INVALIDARG\n", hres);
+
+    memset(&bindinfo, 0, sizeof(bindinfo));
     bindinfo.cbSize = sizeof(bindinfo);
     hres = IInternetBindInfo_GetBindInfo(pOIBindInfo, &bind_info, &bindinfo);
     ok(hres == S_OK, "GetBindInfo failed: %08x\n", hres);
diff --git a/dlls/urlmon/urlmon_main.h b/dlls/urlmon/urlmon_main.h
index 28723e1..391b1b3 100644
--- a/dlls/urlmon/urlmon_main.h
+++ b/dlls/urlmon/urlmon_main.h
@@ -79,6 +79,8 @@ HRESULT bind_to_object(IMoniker*,IUri*,IBindCtx*,REFIID,void**ppv) DECLSPEC_HIDD
 HRESULT create_default_callback(IBindStatusCallback**) DECLSPEC_HIDDEN;
 HRESULT wrap_callback(IBindStatusCallback*,IBindStatusCallback**) DECLSPEC_HIDDEN;
 
+HRESULT WINAPI CopyBindInfo(const BINDINFO *pcbiSrc, BINDINFO *pcbiDest) DECLSPEC_HIDDEN;
+
 typedef struct ProtocolVtbl ProtocolVtbl;
 
 typedef struct {




More information about the wine-cvs mailing list