mshtml: COM cleanup for the IOleDocumentView iface.
This commit is contained in:
parent
041c6ec362
commit
37c3091f27
|
@ -1749,7 +1749,7 @@ static BOOL htmldoc_qi(HTMLDocument *This, REFIID riid, void **ppv)
|
|||
*ppv = &This->IOleDocument_iface;
|
||||
}else if(IsEqualGUID(&IID_IOleDocumentView, riid)) {
|
||||
TRACE("(%p)->(IID_IOleDocumentView, %p)\n", This, ppv);
|
||||
*ppv = DOCVIEW(This);
|
||||
*ppv = &This->IOleDocumentView_iface;
|
||||
}else if(IsEqualGUID(&IID_IOleInPlaceActiveObject, riid)) {
|
||||
TRACE("(%p)->(IID_IOleInPlaceActiveObject, %p)\n", This, ppv);
|
||||
*ppv = ACTOBJ(This);
|
||||
|
@ -2108,7 +2108,7 @@ static ULONG WINAPI CustomDoc_Release(ICustomDoc *iface)
|
|||
if(This->in_place_active)
|
||||
IOleInPlaceObjectWindowless_InPlaceDeactivate(INPLACEWIN(&This->basedoc));
|
||||
if(This->ipsite)
|
||||
IOleDocumentView_SetInPlaceSite(DOCVIEW(&This->basedoc), NULL);
|
||||
IOleDocumentView_SetInPlaceSite(&This->basedoc.IOleDocumentView_iface, NULL);
|
||||
if(This->undomgr)
|
||||
IOleUndoManager_Release(This->undomgr);
|
||||
if(This->tooltips_hwnd)
|
||||
|
|
|
@ -353,7 +353,7 @@ struct HTMLDocument {
|
|||
IMonikerProp IMonikerProp_iface;
|
||||
IOleObject IOleObject_iface;
|
||||
IOleDocument IOleDocument_iface;
|
||||
const IOleDocumentViewVtbl *lpOleDocumentViewVtbl;
|
||||
IOleDocumentView IOleDocumentView_iface;
|
||||
const IOleInPlaceActiveObjectVtbl *lpOleInPlaceActiveObjectVtbl;
|
||||
const IViewObjectExVtbl *lpViewObjectExVtbl;
|
||||
const IOleInPlaceObjectWindowlessVtbl *lpOleInPlaceObjectWindowlessVtbl;
|
||||
|
@ -625,8 +625,6 @@ struct HTMLDocumentNode {
|
|||
#define HTMLWINDOW2(x) ((IHTMLWindow2*) &(x)->lpHTMLWindow2Vtbl)
|
||||
#define HTMLWINDOW3(x) ((IHTMLWindow3*) &(x)->lpHTMLWindow3Vtbl)
|
||||
#define HTMLWINDOW4(x) ((IHTMLWindow4*) &(x)->lpHTMLWindow4Vtbl)
|
||||
|
||||
#define DOCVIEW(x) ((IOleDocumentView*) &(x)->lpOleDocumentViewVtbl)
|
||||
#define OLEWIN(x) ((IOleWindow*) &(x)->lpOleInPlaceActiveObjectVtbl)
|
||||
#define ACTOBJ(x) ((IOleInPlaceActiveObject*) &(x)->lpOleInPlaceActiveObjectVtbl)
|
||||
#define VIEWOBJ(x) ((IViewObject*) &(x)->lpViewObjectExVtbl)
|
||||
|
|
|
@ -328,17 +328,17 @@ static HRESULT WINAPI OleObject_DoVerb(IOleObject *iface, LONG iVerb, LPMSG lpms
|
|||
HTMLDocument_LockContainer(This->doc_obj, TRUE);
|
||||
|
||||
/* FIXME: Create new IOleDocumentView. See CreateView for more info. */
|
||||
hres = IOleDocumentSite_ActivateMe(pDocSite, DOCVIEW(This));
|
||||
hres = IOleDocumentSite_ActivateMe(pDocSite, &This->IOleDocumentView_iface);
|
||||
IOleDocumentSite_Release(pDocSite);
|
||||
}else {
|
||||
hres = IOleDocumentView_UIActivate(DOCVIEW(This), TRUE);
|
||||
hres = IOleDocumentView_UIActivate(&This->IOleDocumentView_iface, 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_SetRect(&This->IOleDocumentView_iface, &rect);
|
||||
}
|
||||
IOleDocumentView_Show(DOCVIEW(This), TRUE);
|
||||
IOleDocumentView_Show(&This->IOleDocumentView_iface, TRUE);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -532,7 +532,7 @@ static HRESULT WINAPI OleDocument_CreateView(IOleDocument *iface, IOleInPlaceSit
|
|||
*/
|
||||
|
||||
if(pIPSite) {
|
||||
hres = IOleDocumentView_SetInPlaceSite(DOCVIEW(This), pIPSite);
|
||||
hres = IOleDocumentView_SetInPlaceSite(&This->IOleDocumentView_iface, pIPSite);
|
||||
if(FAILED(hres))
|
||||
return hres;
|
||||
}
|
||||
|
@ -540,8 +540,8 @@ static HRESULT WINAPI OleDocument_CreateView(IOleDocument *iface, IOleInPlaceSit
|
|||
if(pstm)
|
||||
FIXME("pstm is not supported\n");
|
||||
|
||||
IOleDocumentView_AddRef(DOCVIEW(This));
|
||||
*ppView = DOCVIEW(This);
|
||||
IOleDocumentView_AddRef(&This->IOleDocumentView_iface);
|
||||
*ppView = &This->IOleDocumentView_iface;
|
||||
return S_OK;
|
||||
}
|
||||
|
||||
|
|
|
@ -187,7 +187,7 @@ static HRESULT WINAPI OleInPlaceObjectWindowless_InPlaceDeactivate(IOleInPlaceOb
|
|||
TRACE("(%p)\n", This);
|
||||
|
||||
if(This->doc_obj->ui_active)
|
||||
IOleDocumentView_UIActivate(DOCVIEW(This), FALSE);
|
||||
IOleDocumentView_UIActivate(&This->IOleDocumentView_iface, FALSE);
|
||||
This->doc_obj->window_active = FALSE;
|
||||
|
||||
if(!This->doc_obj->in_place_active)
|
||||
|
|
|
@ -445,29 +445,32 @@ HRESULT call_set_active_object(IOleInPlaceUIWindow *window, IOleInPlaceActiveObj
|
|||
* IOleDocumentView implementation
|
||||
*/
|
||||
|
||||
#define DOCVIEW_THIS(iface) DEFINE_THIS(HTMLDocument, OleDocumentView, iface)
|
||||
static inline HTMLDocument *impl_from_IOleDocumentView(IOleDocumentView *iface)
|
||||
{
|
||||
return CONTAINING_RECORD(iface, HTMLDocument, IOleDocumentView_iface);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI OleDocumentView_QueryInterface(IOleDocumentView *iface, REFIID riid, void **ppvObject)
|
||||
{
|
||||
HTMLDocument *This = DOCVIEW_THIS(iface);
|
||||
HTMLDocument *This = impl_from_IOleDocumentView(iface);
|
||||
return htmldoc_query_interface(This, riid, ppvObject);
|
||||
}
|
||||
|
||||
static ULONG WINAPI OleDocumentView_AddRef(IOleDocumentView *iface)
|
||||
{
|
||||
HTMLDocument *This = DOCVIEW_THIS(iface);
|
||||
HTMLDocument *This = impl_from_IOleDocumentView(iface);
|
||||
return htmldoc_addref(This);
|
||||
}
|
||||
|
||||
static ULONG WINAPI OleDocumentView_Release(IOleDocumentView *iface)
|
||||
{
|
||||
HTMLDocument *This = DOCVIEW_THIS(iface);
|
||||
HTMLDocument *This = impl_from_IOleDocumentView(iface);
|
||||
return htmldoc_release(This);
|
||||
}
|
||||
|
||||
static HRESULT WINAPI OleDocumentView_SetInPlaceSite(IOleDocumentView *iface, IOleInPlaceSite *pIPSite)
|
||||
{
|
||||
HTMLDocument *This = DOCVIEW_THIS(iface);
|
||||
HTMLDocument *This = impl_from_IOleDocumentView(iface);
|
||||
TRACE("(%p)->(%p)\n", This, pIPSite);
|
||||
|
||||
if(pIPSite)
|
||||
|
@ -483,7 +486,7 @@ static HRESULT WINAPI OleDocumentView_SetInPlaceSite(IOleDocumentView *iface, IO
|
|||
|
||||
static HRESULT WINAPI OleDocumentView_GetInPlaceSite(IOleDocumentView *iface, IOleInPlaceSite **ppIPSite)
|
||||
{
|
||||
HTMLDocument *This = DOCVIEW_THIS(iface);
|
||||
HTMLDocument *This = impl_from_IOleDocumentView(iface);
|
||||
TRACE("(%p)->(%p)\n", This, ppIPSite);
|
||||
|
||||
if(!ppIPSite)
|
||||
|
@ -498,7 +501,7 @@ static HRESULT WINAPI OleDocumentView_GetInPlaceSite(IOleDocumentView *iface, IO
|
|||
|
||||
static HRESULT WINAPI OleDocumentView_GetDocument(IOleDocumentView *iface, IUnknown **ppunk)
|
||||
{
|
||||
HTMLDocument *This = DOCVIEW_THIS(iface);
|
||||
HTMLDocument *This = impl_from_IOleDocumentView(iface);
|
||||
TRACE("(%p)->(%p)\n", This, ppunk);
|
||||
|
||||
if(!ppunk)
|
||||
|
@ -511,7 +514,7 @@ static HRESULT WINAPI OleDocumentView_GetDocument(IOleDocumentView *iface, IUnkn
|
|||
|
||||
static HRESULT WINAPI OleDocumentView_SetRect(IOleDocumentView *iface, LPRECT prcView)
|
||||
{
|
||||
HTMLDocument *This = DOCVIEW_THIS(iface);
|
||||
HTMLDocument *This = impl_from_IOleDocumentView(iface);
|
||||
RECT rect;
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, prcView);
|
||||
|
@ -533,7 +536,7 @@ static HRESULT WINAPI OleDocumentView_SetRect(IOleDocumentView *iface, LPRECT pr
|
|||
|
||||
static HRESULT WINAPI OleDocumentView_GetRect(IOleDocumentView *iface, LPRECT prcView)
|
||||
{
|
||||
HTMLDocument *This = DOCVIEW_THIS(iface);
|
||||
HTMLDocument *This = impl_from_IOleDocumentView(iface);
|
||||
|
||||
TRACE("(%p)->(%p)\n", This, prcView);
|
||||
|
||||
|
@ -547,14 +550,14 @@ static HRESULT WINAPI OleDocumentView_GetRect(IOleDocumentView *iface, LPRECT pr
|
|||
static HRESULT WINAPI OleDocumentView_SetRectComplex(IOleDocumentView *iface, LPRECT prcView,
|
||||
LPRECT prcHScroll, LPRECT prcVScroll, LPRECT prcSizeBox)
|
||||
{
|
||||
HTMLDocument *This = DOCVIEW_THIS(iface);
|
||||
HTMLDocument *This = impl_from_IOleDocumentView(iface);
|
||||
FIXME("(%p)->(%p %p %p %p)\n", This, prcView, prcHScroll, prcVScroll, prcSizeBox);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI OleDocumentView_Show(IOleDocumentView *iface, BOOL fShow)
|
||||
{
|
||||
HTMLDocument *This = DOCVIEW_THIS(iface);
|
||||
HTMLDocument *This = impl_from_IOleDocumentView(iface);
|
||||
HRESULT hres;
|
||||
|
||||
TRACE("(%p)->(%x)\n", This, fShow);
|
||||
|
@ -584,7 +587,7 @@ static HRESULT WINAPI OleDocumentView_Show(IOleDocumentView *iface, BOOL fShow)
|
|||
|
||||
static HRESULT WINAPI OleDocumentView_UIActivate(IOleDocumentView *iface, BOOL fUIActivate)
|
||||
{
|
||||
HTMLDocument *This = DOCVIEW_THIS(iface);
|
||||
HTMLDocument *This = impl_from_IOleDocumentView(iface);
|
||||
HRESULT hres;
|
||||
|
||||
TRACE("(%p)->(%x)\n", This, fUIActivate);
|
||||
|
@ -686,14 +689,14 @@ static HRESULT WINAPI OleDocumentView_UIActivate(IOleDocumentView *iface, BOOL f
|
|||
|
||||
static HRESULT WINAPI OleDocumentView_Open(IOleDocumentView *iface)
|
||||
{
|
||||
HTMLDocument *This = DOCVIEW_THIS(iface);
|
||||
HTMLDocument *This = impl_from_IOleDocumentView(iface);
|
||||
FIXME("(%p)\n", This);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI OleDocumentView_CloseView(IOleDocumentView *iface, DWORD dwReserved)
|
||||
{
|
||||
HTMLDocument *This = DOCVIEW_THIS(iface);
|
||||
HTMLDocument *This = impl_from_IOleDocumentView(iface);
|
||||
TRACE("(%p)->(%x)\n", This, dwReserved);
|
||||
|
||||
if(dwReserved)
|
||||
|
@ -711,14 +714,14 @@ static HRESULT WINAPI OleDocumentView_CloseView(IOleDocumentView *iface, DWORD d
|
|||
|
||||
static HRESULT WINAPI OleDocumentView_SaveViewState(IOleDocumentView *iface, LPSTREAM pstm)
|
||||
{
|
||||
HTMLDocument *This = DOCVIEW_THIS(iface);
|
||||
HTMLDocument *This = impl_from_IOleDocumentView(iface);
|
||||
FIXME("(%p)->(%p)\n", This, pstm);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
static HRESULT WINAPI OleDocumentView_ApplyViewState(IOleDocumentView *iface, LPSTREAM pstm)
|
||||
{
|
||||
HTMLDocument *This = DOCVIEW_THIS(iface);
|
||||
HTMLDocument *This = impl_from_IOleDocumentView(iface);
|
||||
FIXME("(%p)->(%p)\n", This, pstm);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
@ -726,13 +729,11 @@ static HRESULT WINAPI OleDocumentView_ApplyViewState(IOleDocumentView *iface, LP
|
|||
static HRESULT WINAPI OleDocumentView_Clone(IOleDocumentView *iface, IOleInPlaceSite *pIPSiteNew,
|
||||
IOleDocumentView **ppViewNew)
|
||||
{
|
||||
HTMLDocument *This = DOCVIEW_THIS(iface);
|
||||
HTMLDocument *This = impl_from_IOleDocumentView(iface);
|
||||
FIXME("(%p)->(%p %p)\n", This, pIPSiteNew, ppViewNew);
|
||||
return E_NOTIMPL;
|
||||
}
|
||||
|
||||
#undef DOCVIEW_THIS
|
||||
|
||||
static const IOleDocumentViewVtbl OleDocumentViewVtbl = {
|
||||
OleDocumentView_QueryInterface,
|
||||
OleDocumentView_AddRef,
|
||||
|
@ -904,6 +905,6 @@ static const IViewObjectExVtbl ViewObjectVtbl = {
|
|||
|
||||
void HTMLDocument_View_Init(HTMLDocument *This)
|
||||
{
|
||||
This->lpOleDocumentViewVtbl = &OleDocumentViewVtbl;
|
||||
This->IOleDocumentView_iface.lpVtbl = &OleDocumentViewVtbl;
|
||||
This->lpViewObjectExVtbl = &ViewObjectVtbl;
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue