static HRESULT WebBrowser_Create(INT version, IUnknown *pOuter, REFIID riid, void **ppv) { WebBrowser *ret; HRESULT hres; TRACE("(%p %s %p) version=%d\n", pOuter, debugstr_guid(riid), ppv, version); ret = heap_alloc_zero(sizeof(WebBrowser)); ret->lpWebBrowser2Vtbl = &WebBrowser2Vtbl; ret->lpServiceProviderVtbl = &ServiceProviderVtbl; ret->ref = 1; ret->version = version; DocHost_Init(&ret->doc_host, (IDispatch*)WEBBROWSER2(ret)); ret->visible = VARIANT_TRUE; ret->menu_bar = VARIANT_TRUE; ret->address_bar = VARIANT_TRUE; ret->status_bar = VARIANT_TRUE; ret->tool_bar = VARIANT_TRUE; WebBrowser_OleObject_Init(ret); WebBrowser_ViewObject_Init(ret); WebBrowser_Persist_Init(ret); WebBrowser_ClassInfo_Init(ret); WebBrowser_HlinkFrame_Init(ret); SHDOCVW_LockModule(); hres = IWebBrowser_QueryInterface(WEBBROWSER(ret), riid, ppv); IWebBrowser2_Release(WEBBROWSER(ret)); return hres; }
/* * 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 ULONG WINAPI WBOleCommandTarget_Release(IOleCommandTarget *iface) { WebBrowser *This = OLECMD_THIS(iface); return IWebBrowser2_Release(WEBBROWSER(This)); }
static HRESULT WINAPI WBOleCommandTarget_QueryInterface(IOleCommandTarget *iface, REFIID riid, void **ppv) { WebBrowser *This = OLECMD_THIS(iface); return IWebBrowser2_QueryInterface(WEBBROWSER(This), riid, ppv); }
static ULONG WINAPI OleControl_Release(IOleControl *iface) { WebBrowser *This = CONTROL_THIS(iface); return IWebBrowser_Release(WEBBROWSER(This)); }
static HRESULT WINAPI OleControl_QueryInterface(IOleControl *iface, REFIID riid, LPVOID *ppobj) { WebBrowser *This = CONTROL_THIS(iface); return IWebBrowser_QueryInterface(WEBBROWSER(This), riid, ppobj); }
static ULONG WINAPI OleInPlaceObject_Release(IOleInPlaceObject *iface) { WebBrowser *This = INPLACEOBJ_THIS(iface); return IWebBrowser_Release(WEBBROWSER(This)); }
static HRESULT WINAPI OleInPlaceObject_QueryInterface(IOleInPlaceObject *iface, REFIID riid, LPVOID *ppobj) { WebBrowser *This = INPLACEOBJ_THIS(iface); return IWebBrowser_QueryInterface(WEBBROWSER(This), riid, ppobj); }
static ULONG WINAPI OleObject_AddRef(IOleObject *iface) { WebBrowser *This = OLEOBJ_THIS(iface); return IWebBrowser_AddRef(WEBBROWSER(This)); }
static HRESULT WINAPI OleObject_QueryInterface(IOleObject *iface, REFIID riid, void **ppv) { WebBrowser *This = OLEOBJ_THIS(iface); return IWebBrowser_QueryInterface(WEBBROWSER(This), riid, ppv); }
static ULONG WINAPI PersistStorage_Release(IPersistStorage *iface) { WebBrowser *This = PERSTORAGE_THIS(iface); return IWebBrowser_Release(WEBBROWSER(This)); }
static HRESULT WINAPI PersistStorage_QueryInterface(IPersistStorage *iface, REFIID riid, LPVOID *ppobj) { WebBrowser *This = PERSTORAGE_THIS(iface); return IWebBrowser_QueryInterface(WEBBROWSER(This), riid, ppobj); }
static ULONG WINAPI PersistStreamInit_Release(IPersistStreamInit *iface) { WebBrowser *This = PERSTRINIT_THIS(iface); return IWebBrowser_Release(WEBBROWSER(This)); }
static HRESULT WINAPI PersistStreamInit_QueryInterface(IPersistStreamInit *iface, REFIID riid, LPVOID *ppobj) { WebBrowser *This = PERSTRINIT_THIS(iface); return IWebBrowser_QueryInterface(WEBBROWSER(This), riid, ppobj); }
static HRESULT WINAPI WebBrowser_QueryInterface(IWebBrowser2 *iface, REFIID riid, LPVOID *ppv) { WebBrowser *This = WEBBROWSER_THIS(iface); if (ppv == NULL) return E_POINTER; *ppv = NULL; if(IsEqualGUID(&IID_IUnknown, riid)) { TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv); *ppv = WEBBROWSER(This); }else if(IsEqualGUID(&IID_IDispatch, riid)) { TRACE("(%p)->(IID_IDispatch %p)\n", This, ppv); *ppv = WEBBROWSER(This); }else if(IsEqualGUID(&IID_IWebBrowser, riid)) { TRACE("(%p)->(IID_IWebBrowser %p)\n", This, ppv); *ppv = WEBBROWSER(This); }else if(IsEqualGUID(&IID_IWebBrowserApp, riid)) { TRACE("(%p)->(IID_IWebBrowserApp %p)\n", This, ppv); *ppv = WEBBROWSER(This); }else if(IsEqualGUID(&IID_IWebBrowser2, riid)) { TRACE("(%p)->(IID_IWebBrowser2 %p)\n", This, ppv); *ppv = WEBBROWSER(This); }else if(IsEqualGUID(&IID_IOleObject, riid)) { TRACE("(%p)->(IID_IOleObject %p)\n", This, ppv); *ppv = OLEOBJ(This); }else if(IsEqualGUID(&IID_IOleWindow, riid)) { TRACE("(%p)->(IID_IOleWindow %p)\n", This, ppv); *ppv = INPLACEOBJ(This); }else if(IsEqualGUID (&IID_IOleInPlaceObject, riid)) { TRACE("(%p)->(IID_IOleInPlaceObject %p)\n", This, ppv); *ppv = INPLACEOBJ(This); }else if(IsEqualGUID(&IID_IOleControl, riid)) { TRACE("(%p)->(IID_IOleControl %p)\n", This, ppv); *ppv = CONTROL(This); }else if(IsEqualGUID(&IID_IPersist, riid)) { TRACE("(%p)->(IID_IPersist %p)\n", This, ppv); *ppv = PERSTORAGE(This); }else if(IsEqualGUID(&IID_IPersistStorage, riid)) { TRACE("(%p)->(IID_IPersistStorage %p)\n", This, ppv); *ppv = PERSTORAGE(This); }else if(IsEqualGUID(&IID_IPersistMemory, riid)) { TRACE("(%p)->(IID_IPersistStorage %p)\n", This, ppv); *ppv = PERMEMORY(This); }else if(IsEqualGUID (&IID_IPersistStreamInit, riid)) { TRACE("(%p)->(IID_IPersistStreamInit %p)\n", This, ppv); *ppv = PERSTRINIT(This); }else if(IsEqualGUID(&IID_IProvideClassInfo, riid)) { TRACE("(%p)->(IID_IProvideClassInfo %p)\n", This, ppv); *ppv = CLASSINFO(This); }else if(IsEqualGUID(&IID_IProvideClassInfo2, riid)) { TRACE("(%p)->(IID_IProvideClassInfo2 %p)\n", This, ppv); *ppv = CLASSINFO(This); }else if(IsEqualGUID(&IID_IConnectionPointContainer, riid)) { TRACE("(%p)->(IID_IConnectionPointContainer %p)\n", This, ppv); *ppv = CONPTCONT(&This->doc_host.cps); }else if(IsEqualGUID(&IID_IViewObject, riid)) { TRACE("(%p)->(IID_IViewObject %p)\n", This, ppv); *ppv = VIEWOBJ(This); }else if(IsEqualGUID(&IID_IViewObject2, riid)) { TRACE("(%p)->(IID_IViewObject2 %p)\n", This, ppv); *ppv = VIEWOBJ2(This); }else if(IsEqualGUID(&IID_IOleInPlaceActiveObject, riid)) { TRACE("(%p)->(IID_IOleInPlaceActiveObject %p)\n", This, ppv); *ppv = ACTIVEOBJ(This); }else if(IsEqualGUID(&IID_IOleCommandTarget, riid)) { TRACE("(%p)->(IID_IOleCommandTarget %p)\n", This, ppv); *ppv = OLECMD(This); }else if(IsEqualGUID(&IID_IHlinkFrame, riid)) { TRACE("(%p)->(IID_IHlinkFrame %p)\n", This, ppv); *ppv = HLINKFRAME(This); }else if(IsEqualGUID(&IID_IServiceProvider, riid)) { *ppv = SERVPROV(This); TRACE("(%p)->(IID_IServiceProvider %p)\n", This, ppv); }else if(IsEqualGUID(&IID_IQuickActivate, riid)) { TRACE("(%p)->(IID_IQuickActivate %p) returning NULL\n", This, ppv); return E_NOINTERFACE; }else if(IsEqualGUID(&IID_IRunnableObject, riid)) { TRACE("(%p)->(IID_IRunnableObject %p) returning NULL\n", This, ppv); return E_NOINTERFACE; }else if(IsEqualGUID(&IID_IPerPropertyBrowsing, riid)) { TRACE("(%p)->(IID_IPerPropertyBrowsing %p) returning NULL\n", This, ppv); return E_NOINTERFACE; }else if(IsEqualGUID(&IID_IOleCache, riid)) { TRACE("(%p)->(IID_IOleCache %p) returning NULL\n", This, ppv); return E_NOINTERFACE; }else if(IsEqualGUID(&IID_IOleInPlaceSite, riid)) { TRACE("(%p)->(IID_IOleInPlaceSite %p) returning NULL\n", This, ppv); return E_NOINTERFACE; }else if(IsEqualGUID(&IID_IObjectWithSite, riid)) { TRACE("(%p)->(IID_IObjectWithSite %p) returning NULL\n", This, ppv); return E_NOINTERFACE; }else if(IsEqualGUID(&IID_IViewObjectEx, riid)) { TRACE("(%p)->(IID_IViewObjectEx %p) returning NULL\n", This, ppv); return E_NOINTERFACE; } 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 ULONG WINAPI WebBrowser_IServiceProvider_Release(IServiceProvider *iface) { WebBrowser *This = SERVPROV_THIS(iface); return IWebBrowser_Release(WEBBROWSER(This)); }