DocHostUiHandler.h revision dee9e52b1688c0617890cbbd8a8488f9f315d1b7
#ifndef __DOC_HOST_UI_HANDLER__
#define __DOC_HOST_UI_HANDLER__
#include <windows.h>
#include <ExDisp.h>
#include <mshtml.h>
#include <mshtmhst.h>
#include <oaidl.h>
{
void ClientSite(IOleClientSite*);
{
}
{
if (ole_client_site_)
{
}
return E_NOINTERFACE;
}
{
return 1;
}
{
return 1;
}
{
return S_OK ;
}
{
return S_OK;
}
{
// We update our UI in our window message loop so we don't do anything here.
return S_OK;
}
{
return S_OK;
}
{
return S_OK;
}
{
return S_OK;
}
HRESULT STDMETHODCALLTYPE ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow __RPC_FAR *pUIWindow, BOOL fRameWindow)
{
return S_OK;
}
HRESULT STDMETHODCALLTYPE TranslateAccelerator(LPMSG lpMsg, const GUID __RPC_FAR *pguidCmdGroup, DWORD nCmdID);
HRESULT STDMETHODCALLTYPE GetDropTarget(IDropTarget __RPC_FAR *pDropTarget, IDropTarget __RPC_FAR *__RPC_FAR *ppDropTarget)
{
/*
Return our IDropTarget object associated with this IDocHostUIHandler object. I don't
know why we don't do this via QueryInterface(), but we don't.
IDropTarget functions, IDropTarget VTable, and create an IDropTarget object. We'd want to put
a pointer to the IDropTarget object in our own custom IDocHostUIHandlerEx object (like how
we may add an HWND field for the use of ShowContextMenu). So when we created our
IDocHostUIHandlerEx object, maybe we'd add a 'idrop' field to the end of it, and
store a pointer to our IDropTarget object there. Then we could return this pointer as so:
*pDropTarget = ((IDocHostUIHandlerEx FAR *)This)->idrop;
return S_OK;
But for our purposes, we don't need an IDropTarget object, so we'll tell whomever is calling
us that we don't have one. */
return S_FALSE;
}
HRESULT STDMETHODCALLTYPE TranslateUrl(DWORD dwTranslate, OLECHAR __RPC_FAR *pchURLIn, OLECHAR __RPC_FAR *__RPC_FAR *ppchURLOut);
HRESULT STDMETHODCALLTYPE FilterDataObject(IDataObject __RPC_FAR *pDO, IDataObject __RPC_FAR *__RPC_FAR *ppDORet)
{
/*
Return our IDataObject object associated with this IDocHostUIHandler object. I don't
know why we don't do this via QueryInterface(), but we don't.
IDataObject functions, IDataObject VTable, and create an IDataObject object. We'd want to put
a pointer to the IDataObject object in our custom _IDocHostUIHandlerEx object (like how
we may add an HWND field for the use of ShowContextMenu). So when we defined our
_IDocHostUIHandlerEx object, maybe we'd add a 'idata' field to the end of it, and
store a pointer to our IDataObject object there. Then we could return this pointer as so:
*ppDORet = ((_IDocHostUIHandlerEx FAR *)This)->idata;
return S_OK;
But for our purposes, we don't need an IDataObject object, so we'll tell whomever is calling
us that we don't have one. Note: We must set ppDORet to 0 if we don't return our own
IDataObject object. */
*ppDORet = 0;
return S_FALSE;
}
};
#endif