static HRESULT WINAPI DwlServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv) { DownloadBSC *This = SERVPROV_THIS(iface); IServiceProvider *serv_prov; HRESULT hres; TRACE("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv); if(!This->callback) return E_NOINTERFACE; hres = IBindStatusCallback_QueryInterface(This->callback, riid, ppv); if(SUCCEEDED(hres)) return S_OK; hres = IBindStatusCallback_QueryInterface(This->callback, &IID_IServiceProvider, (void**)&serv_prov); if(SUCCEEDED(hres)) { hres = IServiceProvider_QueryService(serv_prov, guidService, riid, ppv); IServiceProvider_Release(serv_prov); return hres; } return E_NOINTERFACE; }
static HRESULT WINAPI BSCServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv) { BindStatusCallback *This = SERVPROV_THIS(iface); HRESULT hres; if(IsEqualGUID(&IID_IHttpNegotiate, guidService)) { TRACE("(%p)->(IID_IHttpNegotiate %s %p)\n", This, debugstr_guid(riid), ppv); return IBindStatusCallback_QueryInterface(STATUSCLB(This), riid, ppv); } if(IsEqualGUID(&IID_IHttpNegotiate2, guidService)) { TRACE("(%p)->(IID_IHttpNegotiate2 %s %p)\n", This, debugstr_guid(riid), ppv); return IBindStatusCallback_QueryInterface(STATUSCLB(This), riid, ppv); } if(IsEqualGUID(&IID_IAuthenticate, guidService)) { TRACE("(%p)->(IID_IAuthenticate %s %p)\n", This, debugstr_guid(riid), ppv); return IBindStatusCallback_QueryInterface(STATUSCLB(This), riid, ppv); } TRACE("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv); hres = IBindStatusCallback_QueryInterface(This->callback, riid, ppv); if(SUCCEEDED(hres)) return S_OK; if(This->serv_prov) { hres = IServiceProvider_QueryService(This->serv_prov, guidService, riid, ppv); if(SUCCEEDED(hres)) return S_OK; } return E_NOINTERFACE; }
/* * IServiceProvider interface. */ static HRESULT WINAPI WebBrowser_IServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, LPVOID *ppv) { WebBrowser *This = SERVPROV_THIS(iface); if (ppv == NULL) return E_POINTER; *ppv = NULL; if(IsEqualGUID(&IID_IUnknown, riid)) { *ppv = WEBBROWSER(This); TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); }else if(IsEqualGUID(&IID_IServiceProvider, riid)) { *ppv = WEBBROWSER(This); TRACE("(%p)->(IID_IServiceProvider %p)\n", This, ppv); } if(*ppv) { IUnknown_AddRef((IUnknown*)*ppv); return S_OK; } FIXME("(%p)->(%s %p) interface not supported\n", This, debugstr_guid(riid), ppv); return E_NOINTERFACE; }
static HRESULT WINAPI AXSite_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv) { AXSite *This = SERVPROV_THIS(iface); TRACE("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv); return IServiceProvider_QueryService(This->sp, guidService, riid, ppv); }
static ULONG WINAPI AXSite_AddRef(IServiceProvider *iface) { AXSite *This = SERVPROV_THIS(iface); LONG ref = InterlockedIncrement(&This->ref); TRACE("(%p) ref=%d\n", This, ref); return ref; }
static HRESULT WINAPI BPServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv) { BindProtocol *This = SERVPROV_THIS(iface); TRACE("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv); if(!This->service_provider) return E_NOINTERFACE; return IServiceProvider_QueryService(This->service_provider, guidService, riid, ppv); }
static ULONG WINAPI AXSite_Release(IServiceProvider *iface) { AXSite *This = SERVPROV_THIS(iface); LONG ref = InterlockedDecrement(&This->ref); TRACE("(%p) ref=%d\n", This, ref); if(!ref) heap_free(This); return ref; }
static HRESULT WINAPI ClServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv) { DocHost *This = SERVPROV_THIS(iface); if(IsEqualGUID(&IID_IHlinkFrame, guidService)) { TRACE("(%p)->(IID_IHlinkFrame %s %p)\n", This, debugstr_guid(riid), ppv); return IDispatch_QueryInterface(This->disp, riid, ppv); } FIXME("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv); return E_NOINTERFACE; }
static HRESULT WINAPI ServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv) { Binding *This = SERVPROV_THIS(iface); HRESULT hres; TRACE("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv); if(This->service_provider) { hres = IServiceProvider_QueryService(This->service_provider, guidService, riid, ppv); if(SUCCEEDED(hres)) return hres; } WARN("unknown service %s\n", debugstr_guid(guidService)); return E_NOINTERFACE; }
static HRESULT STDMETHODCALLTYPE WebBrowser_IServiceProvider_QueryService(IServiceProvider *iface, REFGUID guidService, REFIID riid, void **ppv) { WebBrowser *This = SERVPROV_THIS(iface); static const IID IID_IBrowserService2 = {0x68BD21CC,0x438B,0x11d2,{0xA5,0x60,0x00,0xA0,0xC,0x2D,0xBF,0xE8}}; if(*ppv) ppv = NULL; if(IsEqualGUID(&IID_IBrowserService2, riid)) { TRACE("(%p)->(IID_IBrowserService2 return E_FAIL)\n", This); return E_FAIL; } FIXME("(%p)->(%s, %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv); return E_NOINTERFACE; }
static HRESULT WINAPI AXSite_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv) { AXSite *This = SERVPROV_THIS(iface); if(IsEqualGUID(&IID_IUnknown, riid)) { TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = SERVPROV(This); }else if(IsEqualGUID(&IID_IServiceProvider, riid)) { TRACE("(%p)->(IID_IServiceProvider %p)\n", This, ppv); *ppv = SERVPROV(This); }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 ClServiceProvider_Release(IServiceProvider *iface) { DocHost *This = SERVPROV_THIS(iface); return IOleClientSite_Release(CLIENTSITE(This)); }
static HRESULT WINAPI ServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv) { Binding *This = SERVPROV_THIS(iface); return IBinding_QueryInterface(BINDING(This), riid, ppv); }
static ULONG WINAPI ServiceProvider_Release(IServiceProvider *iface) { Binding *This = SERVPROV_THIS(iface); return IBinding_Release(BINDING(This)); }
static ULONG WINAPI BPServiceProvider_Release(IServiceProvider *iface) { BindProtocol *This = SERVPROV_THIS(iface); return IInternetProtocol_Release(PROTOCOL(This)); }
static ULONG WINAPI WebBrowser_IServiceProvider_Release(IServiceProvider *iface) { WebBrowser *This = SERVPROV_THIS(iface); return IWebBrowser_Release(WEBBROWSER(This)); }
static HRESULT WINAPI BPServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv) { BindProtocol *This = SERVPROV_THIS(iface); return IInternetProtocol_QueryInterface(PROTOCOL(This), riid, ppv); }
static ULONG WINAPI BSCServiceProvider_AddRef(IServiceProvider *iface) { BindStatusCallback *This = SERVPROV_THIS(iface); return IBindStatusCallback_AddRef(STATUSCLB(This)); }
static ULONG WINAPI DwlServiceProvider_Release(IServiceProvider *iface) { DownloadBSC *This = SERVPROV_THIS(iface); return IBindStatusCallback_Release(STATUSCLB(This)); }
static HRESULT WINAPI DwlServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv) { DownloadBSC *This = SERVPROV_THIS(iface); return IBindStatusCallback_QueryInterface(STATUSCLB(This), riid, ppv); }
static HRESULT WINAPI ClServiceProvider_QueryInterface(IServiceProvider *iface, REFIID riid, void **ppv) { DocHost *This = SERVPROV_THIS(iface); return IOleClientSite_QueryInterface(CLIENTSITE(This), riid, ppv); }