static HRESULT WINAPI OleObject_Advise(IOleObject *iface, IAdviseSink *pAdvSink, DWORD* pdwConnection) { WebBrowser *This = OLEOBJ_THIS(iface); FIXME("(%p)->(%p, %p)\n", This, pAdvSink, pdwConnection); return E_NOTIMPL; }
static HRESULT WINAPI OleObject_InitFromData(IOleObject *iface, IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved) { HTMLDocument *This = OLEOBJ_THIS(iface); FIXME("(%p)->(%p %x %d)\n", This, pDataObject, fCreation, dwReserved); return E_NOTIMPL; }
static HRESULT WINAPI OleObject_GetMoniker(IOleObject *iface, DWORD dwAssign, DWORD dwWhichMoniker, LPMONIKER *ppmk) { WebBrowser *This = OLEOBJ_THIS(iface); FIXME("(%p)->(%ld, %ld, %p)\n", This, dwAssign, dwWhichMoniker, ppmk); return E_NOTIMPL; }
static HRESULT WINAPI OleObject_SetHostNames(IOleObject *iface, LPCOLESTR szContainerApp, LPCOLESTR szContainerObj) { WebBrowser *This = OLEOBJ_THIS(iface); FIXME("(%p)->(%s, %s)\n", This, debugstr_w(szContainerApp), debugstr_w(szContainerObj)); return E_NOTIMPL; }
static HRESULT WINAPI OleObject_GetClipboardData(IOleObject *iface, DWORD dwReserved, LPDATAOBJECT *ppDataObject) { WebBrowser *This = OLEOBJ_THIS(iface); FIXME("(%p)->(%ld, %p)\n", This, dwReserved, ppDataObject); return E_NOTIMPL; }
static HRESULT WINAPI OleObject_GetUserType(IOleObject *iface, DWORD dwFormOfType, LPOLESTR* pszUserType) { WebBrowser *This = OLEOBJ_THIS(iface); TRACE("(%p, %ld, %p)\n", This, dwFormOfType, pszUserType); return OleRegGetUserType(&CLSID_WebBrowser, dwFormOfType, pszUserType); }
static HRESULT WINAPI OleObject_DoVerb(IOleObject *iface, LONG iVerb, struct tagMSG* lpmsg, LPOLECLIENTSITE pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect) { WebBrowser *This = OLEOBJ_THIS(iface); TRACE("(%p)->(%ld %p %p %ld %p %p)\n", This, iVerb, lpmsg, pActiveSite, lindex, hwndParent, lprcPosRect); switch (iVerb) { case OLEIVERB_SHOW: TRACE("OLEIVERB_SHOW\n"); return activate_ui(This, pActiveSite, hwndParent); case OLEIVERB_UIACTIVATE: TRACE("OLEIVERB_UIACTIVATE\n"); return activate_ui(This, pActiveSite, hwndParent); case OLEIVERB_INPLACEACTIVATE: TRACE("OLEIVERB_INPLACEACTIVATE\n"); return activate_inplace(This, pActiveSite, hwndParent); default: FIXME("stub for %ld\n", iVerb); break; } return E_NOTIMPL; }
static HRESULT WINAPI OleObject_InitFromData(IOleObject *iface, LPDATAOBJECT pDataObject, BOOL fCreation, DWORD dwReserved) { WebBrowser *This = OLEOBJ_THIS(iface); FIXME("(%p)->(%p, %d, %ld)\n", This, pDataObject, fCreation, dwReserved); return E_NOTIMPL; }
static HRESULT WINAPI OleObject_SetExtent(IOleObject *iface, DWORD dwDrawAspect, SIZEL *psizel) { WebBrowser *This = OLEOBJ_THIS(iface); TRACE("(%p)->(%x %p)\n", This, dwDrawAspect, psizel); /* Tests show that dwDrawAspect is ignored */ This->extent = *psizel; return S_OK; }
static HRESULT WINAPI OleObject_SetHostNames(IOleObject *iface, LPCOLESTR szContainerApp, LPCOLESTR szContainerObj) { WebBrowser *This = OLEOBJ_THIS(iface); TRACE("(%p)->(%s, %s)\n", This, debugstr_w(szContainerApp), debugstr_w(szContainerObj)); /* We have nothing to do here. */ return S_OK; }
static HRESULT WINAPI OleObject_Unadvise(IOleObject *iface, DWORD dwConnection) { HTMLDocument *This = OLEOBJ_THIS(iface); TRACE("(%p)->(%d)\n", This, dwConnection); if(!This->advise_holder) return OLE_E_NOCONNECTION; return IOleAdviseHolder_Unadvise(This->advise_holder, dwConnection); }
static HRESULT WINAPI OleObject_GetExtent(IOleObject *iface, DWORD dwDrawAspect, SIZEL *psizel) { WebBrowser *This = OLEOBJ_THIS(iface); TRACE("(%p)->(%lx, %p)\n", This, dwDrawAspect, psizel); /* Tests show that dwDrawAspect is ignored */ memcpy(psizel, &This->extent, sizeof(SIZEL)); return S_OK; }
static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, LPOLECLIENTSITE pClientSite) { WebBrowser *This = OLEOBJ_THIS(iface); IDocHostUIHandler *hostui; IOleContainer *container; IDispatch *disp; HRESULT hres; TRACE("(%p)->(%p)\n", This, pClientSite); if(This->client == pClientSite) return S_OK; release_client_site(This); if(!pClientSite) { if(This->doc_host.document) deactivate_document(&This->doc_host); return S_OK; } IOleClientSite_AddRef(pClientSite); This->client = pClientSite; hres = IOleClientSite_QueryInterface(This->client, &IID_IDispatch, (void**)&disp); if(SUCCEEDED(hres)) This->doc_host.client_disp = disp; hres = IOleClientSite_QueryInterface(This->client, &IID_IDocHostUIHandler, (void**)&hostui); if(SUCCEEDED(hres)) This->doc_host.hostui = hostui; hres = IOleClientSite_GetContainer(This->client, &container); if(SUCCEEDED(hres)) { ITargetContainer *target_container; hres = IOleContainer_QueryInterface(container, &IID_ITargetContainer, (void**)&target_container); if(SUCCEEDED(hres)) { FIXME("Unsupported ITargetContainer\n"); ITargetContainer_Release(target_container); } IOleContainer_Release(container); } create_shell_embedding_hwnd(This); on_offlineconnected_change(This); on_silent_change(This); return S_OK; }
static HRESULT WINAPI OleObject_GetMiscStatus(IOleObject *iface, DWORD dwAspect, DWORD *pdwStatus) { WebBrowser *This = OLEOBJ_THIS(iface); TRACE("(%p)->(%lx, %p)\n", This, dwAspect, pdwStatus); *pdwStatus = OLEMISC_SETCLIENTSITEFIRST|OLEMISC_ACTIVATEWHENVISIBLE|OLEMISC_INSIDEOUT |OLEMISC_CANTLINKINSIDE|OLEMISC_RECOMPOSEONRESIZE; return S_OK; }
static HRESULT WINAPI OleObject_EnumAdvise(IOleObject *iface, IEnumSTATDATA **ppenumAdvise) { HTMLDocument *This = OLEOBJ_THIS(iface); if(!This->advise_holder) { *ppenumAdvise = NULL; return S_OK; } return IOleAdviseHolder_EnumAdvise(This->advise_holder, ppenumAdvise); }
static HRESULT WINAPI OleObject_GetUserClassID(IOleObject *iface, CLSID *pClsid) { HTMLDocument *This = OLEOBJ_THIS(iface); TRACE("(%p)->(%p)\n", This, pClsid); if(!pClsid) return E_INVALIDARG; *pClsid = CLSID_HTMLDocument; return S_OK; }
static HRESULT WINAPI OleObject_GetClientSite(IOleObject *iface, LPOLECLIENTSITE *ppClientSite) { WebBrowser *This = OLEOBJ_THIS(iface); TRACE("(%p)->(%p)\n", This, ppClientSite); if(!ppClientSite) return E_INVALIDARG; if(This->client) IOleClientSite_AddRef(This->client); *ppClientSite = This->client; return S_OK; }
static HRESULT WINAPI OleObject_GetClientSite(IOleObject *iface, IOleClientSite **ppClientSite) { HTMLDocument *This = OLEOBJ_THIS(iface); TRACE("(%p)->(%p)\n", This, ppClientSite); if(!ppClientSite) return E_INVALIDARG; if(This->doc_obj->client) IOleClientSite_AddRef(This->doc_obj->client); *ppClientSite = This->doc_obj->client; return S_OK; }
static HRESULT WINAPI OleObject_Close(IOleObject *iface, DWORD dwSaveOption) { HTMLDocument *This = OLEOBJ_THIS(iface); TRACE("(%p)->(%08x)\n", This, dwSaveOption); if(dwSaveOption == OLECLOSE_PROMPTSAVE) FIXME("OLECLOSE_PROMPTSAVE not implemented\n"); if(This->doc_obj->in_place_active) IOleInPlaceObjectWindowless_InPlaceDeactivate(INPLACEWIN(This)); HTMLDocument_LockContainer(This->doc_obj, FALSE); if(This->advise_holder) IOleAdviseHolder_SendOnClose(This->advise_holder); return S_OK; }
static HRESULT WINAPI OleObject_Advise(IOleObject *iface, IAdviseSink *pAdvSink, DWORD *pdwConnection) { HTMLDocument *This = OLEOBJ_THIS(iface); TRACE("(%p)->(%p %p)\n", This, pAdvSink, pdwConnection); if(!pdwConnection) return E_INVALIDARG; if(!pAdvSink) { *pdwConnection = 0; return E_INVALIDARG; } if(!This->advise_holder) { CreateOleAdviseHolder(&This->advise_holder); if(!This->advise_holder) return E_OUTOFMEMORY; } return IOleAdviseHolder_Advise(This->advise_holder, pAdvSink, pdwConnection); }
static HRESULT WINAPI OleObject_DoVerb(IOleObject *iface, LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect) { HTMLDocument *This = OLEOBJ_THIS(iface); IOleDocumentSite *pDocSite; HRESULT hres; TRACE("(%p)->(%d %p %p %d %p %p)\n", This, iVerb, lpmsg, pActiveSite, lindex, hwndParent, lprcPosRect); if(iVerb != OLEIVERB_SHOW && iVerb != OLEIVERB_UIACTIVATE && iVerb != OLEIVERB_INPLACEACTIVATE) { FIXME("iVerb = %d not supported\n", iVerb); return E_NOTIMPL; } if(!pActiveSite) pActiveSite = This->doc_obj->client; hres = IOleClientSite_QueryInterface(pActiveSite, &IID_IOleDocumentSite, (void**)&pDocSite); if(SUCCEEDED(hres)) { HTMLDocument_LockContainer(This->doc_obj, TRUE); /* FIXME: Create new IOleDocumentView. See CreateView for more info. */ hres = IOleDocumentSite_ActivateMe(pDocSite, DOCVIEW(This)); IOleDocumentSite_Release(pDocSite); }else { hres = IOleDocumentView_UIActivate(DOCVIEW(This), TRUE); if(SUCCEEDED(hres)) { if(lprcPosRect) { RECT rect; /* We need to pass rect as not const pointer */ rect = *lprcPosRect; IOleDocumentView_SetRect(DOCVIEW(This), &rect); } IOleDocumentView_Show(DOCVIEW(This), TRUE); } } return hres; }
static HRESULT WINAPI OleObject_EnumAdvise(IOleObject *iface, IEnumSTATDATA **ppenumAdvise) { WebBrowser *This = OLEOBJ_THIS(iface); FIXME("(%p)->(%p)\n", This, ppenumAdvise); return S_OK; }
static HRESULT WINAPI OleObject_Unadvise(IOleObject *iface, DWORD dwConnection) { WebBrowser *This = OLEOBJ_THIS(iface); FIXME("(%p)->(%ld)\n", This, dwConnection); return E_NOTIMPL; }
static ULONG WINAPI OleObject_Release(IOleObject *iface) { WebBrowser *This = OLEOBJ_THIS(iface); return IWebBrowser_Release(WEBBROWSER(This)); }
static HRESULT WINAPI OleObject_GetUserClassID(IOleObject *iface, CLSID* pClsid) { WebBrowser *This = OLEOBJ_THIS(iface); FIXME("(%p)->(%p)\n", This, pClsid); return E_NOTIMPL; }
static HRESULT WINAPI OleObject_IsUpToDate(IOleObject *iface) { WebBrowser *This = OLEOBJ_THIS(iface); FIXME("(%p)\n", This); return E_NOTIMPL; }
static HRESULT WINAPI OleObject_EnumVerbs(IOleObject *iface, IEnumOLEVERB **ppEnumOleVerb) { WebBrowser *This = OLEOBJ_THIS(iface); TRACE("(%p)->(%p)\n", This, ppEnumOleVerb); return OleRegEnumVerbs(&CLSID_WebBrowser, ppEnumOleVerb); }
static HRESULT WINAPI OleObject_SetClientSite(IOleObject *iface, LPOLECLIENTSITE pClientSite) { WebBrowser *This = OLEOBJ_THIS(iface); IOleContainer *container; HRESULT hres; TRACE("(%p)->(%p)\n", This, pClientSite); if(This->client == pClientSite) return S_OK; if(This->doc_host.hwnd) { DestroyWindow(This->doc_host.hwnd); This->doc_host.hwnd = NULL; } if(This->shell_embedding_hwnd) { DestroyWindow(This->shell_embedding_hwnd); This->shell_embedding_hwnd = NULL; } if(This->inplace) { IOleInPlaceSite_Release(This->inplace); This->inplace = NULL; } if(This->doc_host.hostui) IDocHostUIHandler_Release(This->doc_host.hostui); if(This->client) IOleClientSite_Release(This->client); if(!pClientSite) { if(This->doc_host.document) deactivate_document(&This->doc_host); This->client = NULL; return S_OK; } This->client = pClientSite; IOleClientSite_AddRef(pClientSite); hres = IOleClientSite_QueryInterface(This->client, &IID_IDocHostUIHandler, (void**)&This->doc_host.hostui); if(FAILED(hres)) This->doc_host.hostui = NULL; hres = IOleClientSite_GetContainer(This->client, &container); if(SUCCEEDED(hres)) { ITargetContainer *target_container; hres = IOleContainer_QueryInterface(container, &IID_ITargetContainer, (void**)&target_container); if(SUCCEEDED(hres)) { FIXME("Unsupported ITargetContainer\n"); ITargetContainer_Release(target_container); } IOleContainer_Release(container); } create_shell_embedding_hwnd(This); return S_OK; }
static HRESULT WINAPI OleObject_SetColorScheme(IOleObject *iface, LOGPALETTE* pLogpal) { WebBrowser *This = OLEOBJ_THIS(iface); FIXME("(%p)->(%p)\n", This, pLogpal); return E_NOTIMPL; }
static HRESULT WINAPI OleObject_SetMoniker(IOleObject *iface, DWORD dwWhichMoniker, IMoniker* pmk) { WebBrowser *This = OLEOBJ_THIS(iface); FIXME("(%p)->(%ld, %p)\n", This, dwWhichMoniker, pmk); return E_NOTIMPL; }