Jacek Caban : urlmon: Use proper IUri in BindToObject implementation.

Alexandre Julliard julliard at winehq.org
Fri Jun 24 13:54:01 CDT 2011


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

Author: Jacek Caban <jacek at codeweavers.com>
Date:   Thu Jun 23 13:44:57 2011 +0200

urlmon: Use proper IUri in BindToObject implementation.

---

 dlls/urlmon/tests/url.c |    5 +++++
 dlls/urlmon/umon.c      |   13 +++++--------
 2 files changed, 10 insertions(+), 8 deletions(-)

diff --git a/dlls/urlmon/tests/url.c b/dlls/urlmon/tests/url.c
index 4924154..d752759 100644
--- a/dlls/urlmon/tests/url.c
+++ b/dlls/urlmon/tests/url.c
@@ -3626,6 +3626,11 @@ static void test_StdURLMoniker(void)
     ok(hres == MK_E_SYNTAX, "BindToStorage failed: %08x, expected MK_E_SYNTAX\n", hres);
     ok(!unk, "unk = %p\n", unk);
 
+    unk = (void*)0xdeadbeef;
+    hres = IMoniker_BindToObject(mon, bctx, NULL, &IID_IUnknown, (void**)&unk);
+    ok(hres == MK_E_SYNTAX, "BindToStorage failed: %08x, expected MK_E_SYNTAX\n", hres);
+    ok(!unk, "unk = %p\n", unk);
+
     IMoniker_Release(mon);
 }
 
diff --git a/dlls/urlmon/umon.c b/dlls/urlmon/umon.c
index 0e6c764..d3eb44e 100644
--- a/dlls/urlmon/umon.c
+++ b/dlls/urlmon/umon.c
@@ -227,7 +227,6 @@ static HRESULT WINAPI URLMoniker_BindToObject(IMoniker *iface, IBindCtx* pbc, IM
 {
     URLMoniker *This = impl_from_IMoniker(iface);
     IRunningObjectTable *obj_tbl;
-    IUri *uri;
     HRESULT hres;
 
     TRACE("(%p)->(%p,%p,%s,%p): stub\n", This, pbc, pmkToLeft, debugstr_guid(riid), ppv);
@@ -238,14 +237,12 @@ static HRESULT WINAPI URLMoniker_BindToObject(IMoniker *iface, IBindCtx* pbc, IM
         IRunningObjectTable_Release(obj_tbl);
     }
 
-    hres = CreateUri(This->URLName, Uri_CREATE_FILE_USE_DOS_PATH, 0, &uri);
-    if(FAILED(hres))
-        return hres;
-
-    hres = bind_to_object(iface, uri, pbc, riid, ppv);
+    if(!This->uri) {
+        *ppv = NULL;
+        return MK_E_SYNTAX;
+    }
 
-    IUri_Release(uri);
-    return hres;
+    return bind_to_object(&This->IMoniker_iface, This->uri, pbc, riid, ppv);
 }
 
 static HRESULT WINAPI URLMoniker_BindToStorage(IMoniker* iface, IBindCtx* pbc,




More information about the wine-cvs mailing list