forked from Mirrors/wine-wine
urlmon: Fixed UriBuilderFactory IUnknown implementation.
parent
d420797002
commit
e6b2b580bf
|
@ -5034,47 +5034,19 @@ static inline Uri* impl_from_IUriBuilderFactory(IUriBuilderFactory *iface)
|
||||||
static HRESULT WINAPI UriBuilderFactory_QueryInterface(IUriBuilderFactory *iface, REFIID riid, void **ppv)
|
static HRESULT WINAPI UriBuilderFactory_QueryInterface(IUriBuilderFactory *iface, REFIID riid, void **ppv)
|
||||||
{
|
{
|
||||||
Uri *This = impl_from_IUriBuilderFactory(iface);
|
Uri *This = impl_from_IUriBuilderFactory(iface);
|
||||||
|
return IUri_QueryInterface(&This->IUri_iface, riid, ppv);
|
||||||
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;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI UriBuilderFactory_AddRef(IUriBuilderFactory *iface)
|
static ULONG WINAPI UriBuilderFactory_AddRef(IUriBuilderFactory *iface)
|
||||||
{
|
{
|
||||||
Uri *This = impl_from_IUriBuilderFactory(iface);
|
Uri *This = impl_from_IUriBuilderFactory(iface);
|
||||||
LONG ref = InterlockedIncrement(&This->ref);
|
return IUri_AddRef(&This->IUri_iface);
|
||||||
|
|
||||||
TRACE("(%p) ref=%d\n", This, ref);
|
|
||||||
|
|
||||||
return ref;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static ULONG WINAPI UriBuilderFactory_Release(IUriBuilderFactory *iface)
|
static ULONG WINAPI UriBuilderFactory_Release(IUriBuilderFactory *iface)
|
||||||
{
|
{
|
||||||
Uri *This = impl_from_IUriBuilderFactory(iface);
|
Uri *This = impl_from_IUriBuilderFactory(iface);
|
||||||
LONG ref = InterlockedDecrement(&This->ref);
|
return IUri_Release(&This->IUri_iface);
|
||||||
|
|
||||||
TRACE("(%p) ref=%d\n", This, ref);
|
|
||||||
|
|
||||||
if(!ref)
|
|
||||||
destory_uri_obj(This);
|
|
||||||
|
|
||||||
return ref;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static HRESULT WINAPI UriBuilderFactory_CreateIUriBuilder(IUriBuilderFactory *iface,
|
static HRESULT WINAPI UriBuilderFactory_CreateIUriBuilder(IUriBuilderFactory *iface,
|
||||||
|
|
Loading…
Reference in New Issue