void ConnectionPointContainer_Init(ConnectionPointContainer *This, IUnknown *impl) { This->lpConnectionPointContainerVtbl = &ConnectionPointContainerVtbl; ConnectionPoint_Create(&DIID_DWebBrowserEvents2, &This->wbe2, CONPTCONT(This)); ConnectionPoint_Create(&DIID_DWebBrowserEvents, &This->wbe, CONPTCONT(This)); ConnectionPoint_Create(&IID_IPropertyNotifySink, &This->pns, CONPTCONT(This)); This->impl = impl; }
static HRESULT WINAPI ConnectionPointContainer_FindConnectionPoint(IConnectionPointContainer *iface, REFIID riid, IConnectionPoint **ppCP) { ConnectionPointContainer *This = CONPTCONT_THIS(iface); ConnectionPoint *iter; TRACE("(%p)->(%s %p)\n", This, debugstr_cp_guid(riid), ppCP); if(This->forward_container) return IConnectionPointContainer_FindConnectionPoint(CONPTCONT(This), riid, ppCP); *ppCP = NULL; for(iter = This->cp_list; iter; iter = iter->next) { if(IsEqualGUID(iter->iid, riid)) *ppCP = CONPOINT(iter); } if(*ppCP) { IConnectionPoint_AddRef(*ppCP); return S_OK; } FIXME("unsupported riid %s\n", debugstr_cp_guid(riid)); return CONNECT_E_NOCONNECTION; }
void ConnectionPoint_Init(ConnectionPoint *cp, ConnectionPointContainer *container, REFIID riid) { cp->lpConnectionPointVtbl = &ConnectionPointVtbl; cp->container = CONPTCONT(container); cp->sinks = NULL; cp->sinks_size = 0; cp->iid = riid; cp->next = NULL; cp->next = container->cp_list; container->cp_list = cp; }
static HRESULT WINAPI ConnectionPoint_GetConnectionPointContainer(IConnectionPoint *iface, IConnectionPointContainer **ppCPC) { ConnectionPoint *This = CONPOINT_THIS(iface); TRACE("(%p)->(%p)\n", This, ppCPC); if(!ppCPC) return E_POINTER; *ppCPC = CONPTCONT(This->container); IConnectionPointContainer_AddRef(*ppCPC); return S_OK; }
static ULONG WINAPI ConnectionPoint_Release(IConnectionPoint *iface) { ConnectionPoint *This = CONPOINT_THIS(iface); return IConnectionPointContainer_Release(CONPTCONT(This->container)); }
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; }