Module: wine Branch: master Commit: 8646cd772b6ee06ffab9cd2eb96d8ab909cdf54a URL: http://source.winehq.org/git/wine.git/?a=commit;h=8646cd772b6ee06ffab9cd2eb9...
Author: Jacek Caban jacek@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,