mshtml: Added IOleUndoManager stub implementation.
This commit is contained in:
parent
c66843693f
commit
fbdab04962
|
@ -160,6 +160,8 @@ static ULONG WINAPI HTMLDocument_Release(IHTMLDocument2 *iface)
|
||||||
IOleInPlaceObjectWindowless_InPlaceDeactivate(INPLACEWIN(This));
|
IOleInPlaceObjectWindowless_InPlaceDeactivate(INPLACEWIN(This));
|
||||||
if(This->ipsite)
|
if(This->ipsite)
|
||||||
IOleDocumentView_SetInPlaceSite(DOCVIEW(This), NULL);
|
IOleDocumentView_SetInPlaceSite(DOCVIEW(This), NULL);
|
||||||
|
if(This->undomgr)
|
||||||
|
IOleUndoManager_Release(This->undomgr);
|
||||||
|
|
||||||
set_document_bscallback(This, NULL);
|
set_document_bscallback(This, NULL);
|
||||||
set_current_mon(This, NULL);
|
set_current_mon(This, NULL);
|
||||||
|
|
|
@ -124,6 +124,8 @@ struct HTMLDocument {
|
||||||
IOleInPlaceFrame *frame;
|
IOleInPlaceFrame *frame;
|
||||||
IOleInPlaceUIWindow *ip_window;
|
IOleInPlaceUIWindow *ip_window;
|
||||||
|
|
||||||
|
IOleUndoManager *undomgr;
|
||||||
|
|
||||||
BSCallback *bscallback;
|
BSCallback *bscallback;
|
||||||
IMoniker *mon;
|
IMoniker *mon;
|
||||||
BSTR url;
|
BSTR url;
|
||||||
|
|
|
@ -34,6 +34,175 @@
|
||||||
|
|
||||||
WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
|
WINE_DEFAULT_DEBUG_CHANNEL(mshtml);
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
const IOleUndoManagerVtbl *lpOleUndoManagerVtbl;
|
||||||
|
|
||||||
|
LONG ref;
|
||||||
|
} UndoManager;
|
||||||
|
|
||||||
|
#define UNDOMGR(x) ((IOleUndoManager*) &(x)->lpOleUndoManagerVtbl)
|
||||||
|
|
||||||
|
#define UNDOMGR_THIS(iface) DEFINE_THIS(UndoManager, OleUndoManager, iface)
|
||||||
|
|
||||||
|
static HRESULT WINAPI OleUndoManager_QueryInterface(IOleUndoManager *iface, REFIID riid, void **ppv)
|
||||||
|
{
|
||||||
|
UndoManager *This = UNDOMGR_THIS(iface);
|
||||||
|
|
||||||
|
*ppv = NULL;
|
||||||
|
|
||||||
|
if(IsEqualGUID(riid, &IID_IUnknown)) {
|
||||||
|
TRACE("(%p)->(IID_IUnknown %p)\n", This, ppv);
|
||||||
|
*ppv = UNDOMGR(This);
|
||||||
|
}else if(IsEqualGUID(riid, &IID_IOleUndoManager)) {
|
||||||
|
TRACE("(%p)->(IID_IOleUndoManager %p)\n", This, ppv);
|
||||||
|
*ppv = UNDOMGR(This);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
FIXME("(%p)->(%s %p)\n", This, debugstr_guid(riid), ppv);
|
||||||
|
return E_NOINTERFACE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONG WINAPI OleUndoManager_AddRef(IOleUndoManager *iface)
|
||||||
|
{
|
||||||
|
UndoManager *This = UNDOMGR_THIS(iface);
|
||||||
|
LONG ref = InterlockedIncrement(&This->ref);
|
||||||
|
|
||||||
|
TRACE("(%p) ref=%d\n", This, ref);
|
||||||
|
|
||||||
|
return ref;
|
||||||
|
}
|
||||||
|
|
||||||
|
static ULONG WINAPI OleUndoManager_Release(IOleUndoManager *iface)
|
||||||
|
{
|
||||||
|
UndoManager *This = UNDOMGR_THIS(iface);
|
||||||
|
LONG ref = InterlockedDecrement(&This->ref);
|
||||||
|
|
||||||
|
TRACE("(%p) ref=%d\n", This, ref);
|
||||||
|
|
||||||
|
if(!ref)
|
||||||
|
mshtml_free(This);
|
||||||
|
|
||||||
|
return ref;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI OleUndoManager_Open(IOleUndoManager *iface, IOleParentUndoUnit *pPUU)
|
||||||
|
{
|
||||||
|
UndoManager *This = UNDOMGR_THIS(iface);
|
||||||
|
FIXME("(%p)->(%p)\n", This, pPUU);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI OleUndoManager_Close(IOleUndoManager *iface, IOleParentUndoUnit *pPUU,
|
||||||
|
BOOL fCommit)
|
||||||
|
{
|
||||||
|
UndoManager *This = UNDOMGR_THIS(iface);
|
||||||
|
FIXME("(%p)->(%p %x)\n", This, pPUU, fCommit);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI OleUndoManager_Add(IOleUndoManager *iface, IOleUndoUnit *pUU)
|
||||||
|
{
|
||||||
|
UndoManager *This = UNDOMGR_THIS(iface);
|
||||||
|
FIXME("(%p)->(%p)\n", This, pUU);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI OleUndoManager_GetOpenParentState(IOleUndoManager *iface, DWORD *pdwState)
|
||||||
|
{
|
||||||
|
UndoManager *This = UNDOMGR_THIS(iface);
|
||||||
|
FIXME("(%p)->(%p)\n", This, pdwState);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI OleUndoManager_DiscardFrom(IOleUndoManager *iface, IOleUndoUnit *pUU)
|
||||||
|
{
|
||||||
|
UndoManager *This = UNDOMGR_THIS(iface);
|
||||||
|
FIXME("(%p)->(%p)\n", This, pUU);
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI OleUndoManager_UndoTo(IOleUndoManager *iface, IOleUndoUnit *pUU)
|
||||||
|
{
|
||||||
|
UndoManager *This = UNDOMGR_THIS(iface);
|
||||||
|
FIXME("(%p)->(%p)\n", This, pUU);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI OleUndoManager_RedoTo(IOleUndoManager *iface, IOleUndoUnit *pUU)
|
||||||
|
{
|
||||||
|
UndoManager *This = UNDOMGR_THIS(iface);
|
||||||
|
FIXME("(%p)->(%p)\n", This, pUU);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI OleUndoManager_EnumUndoable(IOleUndoManager *iface,
|
||||||
|
IEnumOleUndoUnits **ppEnum)
|
||||||
|
{
|
||||||
|
UndoManager *This = UNDOMGR_THIS(iface);
|
||||||
|
FIXME("(%p)->(%p)\n", This, ppEnum);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI OleUndoManager_EnumRedoable(IOleUndoManager *iface,
|
||||||
|
IEnumOleUndoUnits **ppEnum)
|
||||||
|
{
|
||||||
|
UndoManager *This = UNDOMGR_THIS(iface);
|
||||||
|
FIXME("(%p)->(%p)\n", This, ppEnum);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI OleUndoManager_GetLastUndoDescription(IOleUndoManager *iface, BSTR *pBstr)
|
||||||
|
{
|
||||||
|
UndoManager *This = UNDOMGR_THIS(iface);
|
||||||
|
FIXME("(%p)->(%p)\n", This, pBstr);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI OleUndoManager_GetLastRedoDescription(IOleUndoManager *iface, BSTR *pBstr)
|
||||||
|
{
|
||||||
|
UndoManager *This = UNDOMGR_THIS(iface);
|
||||||
|
FIXME("(%p)->(%p)\n", This, pBstr);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
static HRESULT WINAPI OleUndoManager_Enable(IOleUndoManager *iface, BOOL fEnable)
|
||||||
|
{
|
||||||
|
UndoManager *This = UNDOMGR_THIS(iface);
|
||||||
|
FIXME("(%p)->(%x)\n", This, fEnable);
|
||||||
|
return E_NOTIMPL;
|
||||||
|
}
|
||||||
|
|
||||||
|
#undef UNDOMGR_THIS
|
||||||
|
|
||||||
|
static const IOleUndoManagerVtbl OleUndoManagerVtbl = {
|
||||||
|
OleUndoManager_QueryInterface,
|
||||||
|
OleUndoManager_AddRef,
|
||||||
|
OleUndoManager_Release,
|
||||||
|
OleUndoManager_Open,
|
||||||
|
OleUndoManager_Close,
|
||||||
|
OleUndoManager_Add,
|
||||||
|
OleUndoManager_GetOpenParentState,
|
||||||
|
OleUndoManager_DiscardFrom,
|
||||||
|
OleUndoManager_UndoTo,
|
||||||
|
OleUndoManager_RedoTo,
|
||||||
|
OleUndoManager_EnumUndoable,
|
||||||
|
OleUndoManager_EnumRedoable,
|
||||||
|
OleUndoManager_GetLastUndoDescription,
|
||||||
|
OleUndoManager_GetLastRedoDescription,
|
||||||
|
OleUndoManager_Enable
|
||||||
|
};
|
||||||
|
|
||||||
|
static IOleUndoManager *create_undomgr(void)
|
||||||
|
{
|
||||||
|
UndoManager *ret = mshtml_alloc(sizeof(UndoManager));
|
||||||
|
|
||||||
|
ret->lpOleUndoManagerVtbl = &OleUndoManagerVtbl;
|
||||||
|
ret->ref = 1;
|
||||||
|
|
||||||
|
return UNDOMGR(ret);
|
||||||
|
}
|
||||||
|
|
||||||
/**********************************************************
|
/**********************************************************
|
||||||
* IServiceProvider impementation
|
* IServiceProvider impementation
|
||||||
*/
|
*/
|
||||||
|
@ -69,6 +238,17 @@ static HRESULT WINAPI ServiceProvider_QueryService(IServiceProvider *iface, REFG
|
||||||
return E_NOINTERFACE;
|
return E_NOINTERFACE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(IsEqualGUID(&IID_IOleUndoManager, riid)) {
|
||||||
|
TRACE("(%p)->(IID_IOleUndoManager %p)\n", This, ppv);
|
||||||
|
|
||||||
|
if(!This->undomgr)
|
||||||
|
This->undomgr = create_undomgr();
|
||||||
|
|
||||||
|
IOleUndoManager_AddRef(This->undomgr);
|
||||||
|
*ppv = This->undomgr;
|
||||||
|
return S_OK;
|
||||||
|
}
|
||||||
|
|
||||||
FIXME("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv);
|
FIXME("(%p)->(%s %s %p)\n", This, debugstr_guid(guidService), debugstr_guid(riid), ppv);
|
||||||
|
|
||||||
return E_UNEXPECTED;
|
return E_UNEXPECTED;
|
||||||
|
@ -84,4 +264,6 @@ static const IServiceProviderVtbl ServiceProviderVtbl = {
|
||||||
void HTMLDocument_Service_Init(HTMLDocument *This)
|
void HTMLDocument_Service_Init(HTMLDocument *This)
|
||||||
{
|
{
|
||||||
This->lpServiceProviderVtbl = &ServiceProviderVtbl;
|
This->lpServiceProviderVtbl = &ServiceProviderVtbl;
|
||||||
|
|
||||||
|
This->undomgr = NULL;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue