Piotr Caban : urlmon: Fixed UriBuilderFactory IUnknown implementation.

Alexandre Julliard julliard at winehq.org
Thu Jan 12 13:19:24 CST 2012


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

Author: Piotr Caban <piotr at codeweavers.com>
Date:   Thu Jan 12 15:34:20 2012 +0100

urlmon: Fixed UriBuilderFactory IUnknown implementation.

---

 dlls/urlmon/uri.c |   34 +++-------------------------------
 1 files changed, 3 insertions(+), 31 deletions(-)

diff --git a/dlls/urlmon/uri.c b/dlls/urlmon/uri.c
index 55488d9..d334b9e 100644
--- a/dlls/urlmon/uri.c
+++ b/dlls/urlmon/uri.c
@@ -5034,47 +5034,19 @@ static inline Uri* impl_from_IUriBuilderFactory(IUriBuilderFactory *iface)
 static HRESULT WINAPI UriBuilderFactory_QueryInterface(IUriBuilderFactory *iface, REFIID riid, void **ppv)
 {
     Uri *This = impl_from_IUriBuilderFactory(iface);
-
-    if(IsEqualGUID(&IID_IUnknown, riid)) {
-        TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
-        *ppv = &This->IUriBuilderFactory_iface;
-    }else if(IsEqualGUID(&IID_IUriBuilderFactory, riid)) {
-        TRACE("(%p)->(IID_IUriBuilderFactory %p)\n", This, ppv);
-        *ppv = &This->IUriBuilderFactory_iface;
-    }else if(IsEqualGUID(&IID_IUri, riid)) {
-        TRACE("(%p)->(IID_IUri %p)\n", This, ppv);
-        *ppv = &This->IUri_iface;
-    }else {
-        TRACE("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
-        *ppv = NULL;
-        return E_NOINTERFACE;
-    }
-
-    IUnknown_AddRef((IUnknown*)*ppv);
-    return S_OK;
+    return IUri_QueryInterface(&This->IUri_iface, riid, ppv);
 }
 
 static ULONG WINAPI UriBuilderFactory_AddRef(IUriBuilderFactory *iface)
 {
     Uri *This = impl_from_IUriBuilderFactory(iface);
-    LONG ref = InterlockedIncrement(&This->ref);
-
-    TRACE("(%p) ref=%d\n", This, ref);
-
-    return ref;
+    return IUri_AddRef(&This->IUri_iface);
 }
 
 static ULONG WINAPI UriBuilderFactory_Release(IUriBuilderFactory *iface)
 {
     Uri *This = impl_from_IUriBuilderFactory(iface);
-    LONG ref = InterlockedDecrement(&This->ref);
-
-    TRACE("(%p) ref=%d\n", This, ref);
-
-    if(!ref)
-        destory_uri_obj(This);
-
-    return ref;
+    return IUri_Release(&This->IUri_iface);
 }
 
 static HRESULT WINAPI UriBuilderFactory_CreateIUriBuilder(IUriBuilderFactory *iface,




More information about the wine-cvs mailing list