// .h
class CCustomControlSite:
public COleControlSite
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
public:
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
CCustomControlSite(COleControlContainer *pCnt):COleControlSite(pCnt){}
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
BEGIN_INTERFACE_PART(DocHostShowUI, IDocHostShowUI)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
INIT_INTERFACE_PART(CDocHostSite, DocHostShowUI)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(ShowHelp)(
/* [in ] */ HWND hwnd,
/* [in ] */ LPOLESTR pszHelpFile,
/* [in ] */ UINT uCommand,
/* [in ] */ DWORD dwData,
/* [in ] */ POINT ptMouse,
/* [out] */ IDispatch __RPC_FAR *pDispatchObjectHit);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(ShowMessage)(
/* [in ] */ HWND hwnd,
/* [in ] */ LPOLESTR lpstrText,
/* [in ] */ LPOLESTR lpstrCaption,
/* [in ] */ DWORD dwType,
/* [in ] */ LPOLESTR lpstrHelpFile,
/* [in ] */ DWORD dwHelpContext,
/* [out] */ LRESULT __RPC_FAR *plResult);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
END_INTERFACE_PART(DocHostShowUI)
protected:
DECLARE_INTERFACE_MAP();
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
BEGIN_INTERFACE_PART(DocHostUIHandler, IDocHostUIHandler)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(ShowContextMenu)(
/* [in] */ DWORD dwID,
/* [in] */ POINT __RPC_FAR *ppt,
/* [in] */ IUnknown __RPC_FAR *pcmdtReserved,
/* [in] */ IDispatch __RPC_FAR *pdispReserved);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(GetHostInfo)(
/* [out][in] */ DOCHOSTUIINFO __RPC_FAR *pInfo);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(ShowUI)(
/* [in] */ DWORD dwID,
/* [in] */ IOleInPlaceActiveObject __RPC_FAR *pActiveObject,
/* [in] */ IOleCommandTarget __RPC_FAR *pCommandTarget,
/* [in] */ IOleInPlaceFrame __RPC_FAR *pFrame,
/* [in] */ IOleInPlaceUIWindow __RPC_FAR *pDoc);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(HideUI)(
void);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(UpdateUI)(
void);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(EnableModeless)(
/* [in] */ BOOL fEnable);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(OnDocWindowActivate)(
/* [in] */ BOOL fEnable);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(OnFrameWindowActivate)(
/* [in] */ BOOL fEnable);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(ResizeBorder)(
/* [in] */ LPCRECT prcBorder,
/* [in] */ IOleInPlaceUIWindow __RPC_FAR *pUIWindow,
/* [in] */ BOOL fRameWindow);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(TranslateAccelerator)(
/* [in] */ LPMSG lpMsg,
/* [in] */
const GUID __RPC_FAR *pguidCmdGroup,
/* [in] */ DWORD nCmdID);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(GetOptionKeyPath)(
/* [out] */ LPOLESTR __RPC_FAR *pchKey,
/* [in] */ DWORD dw);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(GetDropTarget)(
/* [in] */ IDropTarget __RPC_FAR *pDropTarget,
/* [out] */ IDropTarget __RPC_FAR *__RPC_FAR *ppDropTarget);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(GetExternal)(
/* [out] */ IDispatch __RPC_FAR *__RPC_FAR *ppDispatch);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(TranslateUrl)(
/* [in] */ DWORD dwTranslate,
/* [in] */ OLECHAR __RPC_FAR *pchURLIn,
/* [out] */ OLECHAR __RPC_FAR *__RPC_FAR *ppchURLOut);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHOD(FilterDataObject)(
/* [in] */ IDataObject __RPC_FAR *pDO,
/* [out] */ IDataObject __RPC_FAR *__RPC_FAR *ppDORet);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
END_INTERFACE_PART(DocHostUIHandler)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
};
class CCustomOccManager :
public COccManager
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
public:
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
CCustomOccManager(){}
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
COleControlSite* CreateSite(COleControlContainer* pCtrlCont)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
CCustomControlSite *pSite =
new CCustomControlSite(pCtrlCont);
return pSite;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
};
// .cpp
BEGIN_INTERFACE_MAP(CCustomControlSite, COleControlSite)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
INTERFACE_PART(CCustomControlSite, IID_IDocHostShowUI, DocHostShowUI)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
INTERFACE_PART(CCustomControlSite, IID_IDocHostUIHandler, DocHostUIHandler)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
END_INTERFACE_MAP()
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
ULONG CCustomControlSite::XDocHostShowUI::AddRef()
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostShowUI);
return pThis->ExternalAddRef();
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
ULONG CCustomControlSite::XDocHostShowUI::Release()
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostShowUI);
return pThis->ExternalRelease();
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
HRESULT CCustomControlSite::XDocHostShowUI::QueryInterface(REFIID riid,
void ** ppvObj)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostShowUI);
return pThis->ExternalQueryInterface( &riid, ppvObj );
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
HRESULT CCustomControlSite::XDocHostShowUI::ShowHelp(HWND hwnd,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
LPOLESTR pszHelpFile,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
UINT nCommand,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
DWORD dwData,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
POINT ptMouse,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
IDispatch * pDispatchObjectHit)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostShowUI);
return S_OK;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
HRESULT CCustomControlSite::XDocHostShowUI::ShowMessage(HWND hwnd,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
LPOLESTR lpstrText,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
LPOLESTR lpstrCaption,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
DWORD dwType,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
LPOLESTR lpstrHelpFile,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
DWORD dwHelpContext,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
LRESULT * plResult)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostShowUI);
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
MessageBox(hwnd, (CString)lpstrText, _T(
"Cpp & JavaScript"),
/*dwType*/MB_ICONWARNING);
return S_OK;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
ULONG FAR EXPORT CCustomControlSite::XDocHostUIHandler::AddRef()
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
return pThis->ExternalAddRef();
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
ULONG FAR EXPORT CCustomControlSite::XDocHostUIHandler::Release()
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
return pThis->ExternalRelease();
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
HRESULT FAR EXPORT CCustomControlSite::XDocHostUIHandler::QueryInterface(REFIID riid,
void **ppvObj)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
HRESULT hr = (HRESULT)pThis->ExternalQueryInterface(&riid, ppvObj);
return hr;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
// * CImpIDocHostUIHandler::GetHostInfo
// *
// * Purpose: Called at initialization
// *
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
HRESULT FAR EXPORT CCustomControlSite::XDocHostUIHandler::GetHostInfo( DOCHOSTUIINFO* pInfo )
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
pInfo->dwFlags = DOCHOSTUIFLAG_NO3DBORDER;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
pInfo->dwDoubleClick = DOCHOSTUIDBLCLK_DEFAULT;
return S_OK;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
// * CImpIDocHostUIHandler::ShowUI
// *
// * Purpose: Called when MSHTML.DLL shows its UI
// *
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
HRESULT FAR EXPORT CCustomControlSite::XDocHostUIHandler::ShowUI(
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
DWORD dwID,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
IOleInPlaceActiveObject *
/*pActiveObject*/,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
IOleCommandTarget * pCommandTarget,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
IOleInPlaceFrame *
/*pFrame*/,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
IOleInPlaceUIWindow *
/*pDoc*/)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
// We've already got our own UI in place so just return S_OK
return S_OK;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
// * CImpIDocHostUIHandler::HideUI
// *
// * Purpose: Called when MSHTML.DLL hides its UI
// *
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
HRESULT FAR EXPORT CCustomControlSite::XDocHostUIHandler::HideUI(
void)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
return S_OK;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
// * CImpIDocHostUIHandler::UpdateUI
// *
// * Purpose: Called when MSHTML.DLL updates its UI
// *
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
HRESULT FAR EXPORT CCustomControlSite::XDocHostUIHandler::UpdateUI(
void)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
// MFC is pretty good about updating it's UI in it's Idle loop so I don't do anything here
return S_OK;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
// * CImpIDocHostUIHandler::EnableModeless
// *
// * Purpose: Called from MSHTML.DLL's IOleInPlaceActiveObject::EnableModeless
// *
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
HRESULT FAR EXPORT CCustomControlSite::XDocHostUIHandler::EnableModeless(BOOL
/*fEnable*/)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
return E_NOTIMPL;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
// * CImpIDocHostUIHandler::OnDocWindowActivate
// *
// * Purpose: Called from MSHTML.DLL's IOleInPlaceActiveObject::OnDocWindowActivate
// *
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
HRESULT FAR EXPORT CCustomControlSite::XDocHostUIHandler::OnDocWindowActivate(BOOL
/*fActivate*/)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
return E_NOTIMPL;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
// * CImpIDocHostUIHandler::OnFrameWindowActivate
// *
// * Purpose: Called from MSHTML.DLL's IOleInPlaceActiveObject::OnFrameWindowActivate
// *
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
HRESULT FAR EXPORT CCustomControlSite::XDocHostUIHandler::OnFrameWindowActivate(BOOL
/*fActivate*/)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
return E_NOTIMPL;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
// * CImpIDocHostUIHandler::ResizeBorder
// *
// * Purpose: Called from MSHTML.DLL's IOleInPlaceActiveObject::ResizeBorder
// *
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
HRESULT FAR EXPORT CCustomControlSite::XDocHostUIHandler::ResizeBorder(
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
LPCRECT
/*prcBorder*/,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
IOleInPlaceUIWindow*
/*pUIWindow*/,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
BOOL
/*fRameWindow*/)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
return E_NOTIMPL;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
// * CImpIDocHostUIHandler::ShowContextMenu
// *
// * Purpose: Called when MSHTML.DLL would normally display its context menu
// *
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
HRESULT FAR EXPORT CCustomControlSite::XDocHostUIHandler::ShowContextMenu(
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
DWORD
/*dwID*/,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
POINT* pptPosition,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
IUnknown*
/*pCommandTarget*/,
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
IDispatch*
/*pDispatchObjectHit*/)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
return E_NOTIMPL;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
// * CImpIDocHostUIHandler::TranslateAccelerator
// *
// * Purpose: Called from MSHTML.DLL's TranslateAccelerator routines
// *
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
HRESULT FAR EXPORT CCustomControlSite::XDocHostUIHandler::TranslateAccelerator(LPMSG lpMsg,
/* [in] */
const GUID __RPC_FAR *pguidCmdGroup,
/* [in] */ DWORD nCmdID)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
//disable F5
if(lpMsg->message == WM_KEYDOWN && GetAsyncKeyState(VK_F5) < 0)
return S_OK;
if(GetKeyState(VK_CONTROL) & 0x8000)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
//disable ctrl + O
if(lpMsg->message == WM_KEYDOWN && GetAsyncKeyState(0x4F) < 0)
return S_OK;
//disable ctrl + p
if(lpMsg->message == WM_KEYDOWN && GetAsyncKeyState(0x50) < 0)
return S_OK;
//disable ctrl + N
if(lpMsg->message == WM_KEYDOWN && GetAsyncKeyState(0x4E) < 0)
return S_OK;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
//disable back space
if(lpMsg->wParam == VK_BACK)
return S_OK;
return S_FALSE;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
// * CImpIDocHostUIHandler::GetOptionKeyPath
// *
// * Purpose: Called by MSHTML.DLL to find where the host wishes to store
// * its options in the registry
// *
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
HRESULT FAR EXPORT CCustomControlSite::XDocHostUIHandler::GetOptionKeyPath(BSTR* pbstrKey, DWORD)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
return E_NOTIMPL;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
STDMETHODIMP CCustomControlSite::XDocHostUIHandler::GetDropTarget(
/* [in] */ IDropTarget __RPC_FAR *pDropTarget,
/* [out] */ IDropTarget __RPC_FAR *__RPC_FAR *ppDropTarget)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
return E_NOTIMPL;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHODIMP CCustomControlSite::XDocHostUIHandler::GetExternal(
/* [out] */ IDispatch __RPC_FAR *__RPC_FAR *ppDispatch)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
// return the IDispatch we have for extending the object Model
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
IDispatch* pDisp = (IDispatch*)theApp.m_pDispOM;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
pDisp->AddRef();
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
*ppDispatch = pDisp;
return S_OK;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHODIMP CCustomControlSite::XDocHostUIHandler::TranslateUrl(
/* [in] */ DWORD dwTranslate,
/* [in] */ OLECHAR __RPC_FAR *pchURLIn,
/* [out] */ OLECHAR __RPC_FAR *__RPC_FAR *ppchURLOut)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
return E_NOTIMPL;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
STDMETHODIMP CCustomControlSite::XDocHostUIHandler::FilterDataObject(
/* [in] */ IDataObject __RPC_FAR *pDO,
/* [out] */ IDataObject __RPC_FAR *__RPC_FAR *ppDORet)
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
{
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
METHOD_PROLOGUE(CCustomControlSite, DocHostUIHandler)
return E_NOTIMPL;
![InBlock.gif](p_w_picpaths/editer/InBlock.gif)
}