202 lines
5.2 KiB
C++
202 lines
5.2 KiB
C++
|
|
//=--------------------------------------------------------------------------=
|
|
// (C) Copyright 1996-1999 Microsoft Corporation. All Rights Reserved.
|
|
//=--------------------------------------------------------------------------=
|
|
|
|
|
|
//
|
|
// NOTE:
|
|
// Some of the code in this file is MFC implementation specific.
|
|
// Changes in future versions of MFC implementation may require
|
|
// the code to be changed. Please check the readme of this
|
|
// sample for more information
|
|
//
|
|
|
|
#include "stdafx.h"
|
|
#include "StylerView.h"
|
|
#include "Styler.h"
|
|
|
|
|
|
//DEFINE_GUID(CGID_DocHostCommandHandler,0xf38bc242,0xb950,0x11d1,0x89,0x18,0x00,0xc0,0x4f,0xc2,0xc8,0x36);
|
|
|
|
//static CLSID const CGID_DocHostCommandHandler
|
|
// = { 0xf38bc242, 0xb950, 0x11d1, { 0x89,0x18,0x00,0xc0,0x4f,0xc2,0xc8,0x36 } };
|
|
|
|
BEGIN_INTERFACE_MAP(CStylerView, CCmdTarget)
|
|
INTERFACE_PART(CStylerView, IID_IDocHostUIHandler, DocHostUIHandler)
|
|
INTERFACE_PART(CStylerView, IID_IOleClientSite, OleClientSite)
|
|
INTERFACE_PART(CStylerView, IID_IDispatch, Dispatch)
|
|
END_INTERFACE_MAP()
|
|
|
|
|
|
|
|
|
|
|
|
#define DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE 16384
|
|
|
|
|
|
#define IMPLEMENT_INTERFACE_PART(theClass, localClass)\
|
|
STDMETHODIMP_(ULONG) theClass::X##localClass::AddRef()\
|
|
{\
|
|
METHOD_PROLOGUE(theClass, localClass)\
|
|
return pThis->ExternalAddRef();\
|
|
}\
|
|
STDMETHODIMP_(ULONG) theClass::X##localClass::Release()\
|
|
{\
|
|
METHOD_PROLOGUE(theClass, localClass)\
|
|
return pThis->ExternalRelease();\
|
|
}\
|
|
STDMETHODIMP theClass::X##localClass::QueryInterface(REFIID riid, void **ppvObj)\
|
|
{\
|
|
METHOD_PROLOGUE(theClass, localClass)\
|
|
HRESULT hr = (HRESULT)pThis->ExternalQueryInterface(&riid, ppvObj);\
|
|
return hr;\
|
|
}
|
|
|
|
|
|
IMPLEMENT_INTERFACE_PART(CStylerView, DocHostUIHandler)
|
|
IMPLEMENT_INTERFACE_PART(CStylerView, OleClientSite)
|
|
IMPLEMENT_INTERFACE_PART(CStylerView, Dispatch)
|
|
|
|
STDMETHODIMP CStylerView::XDocHostUIHandler::GetHostInfo( DOCHOSTUIINFO* pInfo )
|
|
{
|
|
pInfo->dwFlags = DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE |DOCHOSTUIFLAG_FLAT_SCROLLBAR|0x40000;
|
|
pInfo->dwDoubleClick = DOCHOSTUIDBLCLK_DEFAULT;
|
|
return S_OK;
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDocHostUIHandler::ShowUI(
|
|
DWORD /*dwID*/,
|
|
IOleInPlaceActiveObject * /*pActiveObject*/,
|
|
IOleCommandTarget * /*pCommandTarget*/,
|
|
IOleInPlaceFrame * /*pFrame*/,
|
|
IOleInPlaceUIWindow * /*pDoc*/)
|
|
{
|
|
return S_OK;
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDocHostUIHandler::HideUI(void)
|
|
{
|
|
return S_OK;
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDocHostUIHandler::UpdateUI(void)
|
|
{
|
|
return S_OK;
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDocHostUIHandler::EnableModeless(BOOL /*fEnable*/)
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDocHostUIHandler::OnDocWindowActivate(BOOL /*fActivate*/)
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDocHostUIHandler::OnFrameWindowActivate(BOOL /*fActivate*/)
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDocHostUIHandler::ResizeBorder(
|
|
LPCRECT /*prcBorder*/,
|
|
IOleInPlaceUIWindow* /*pUIWindow*/,
|
|
BOOL /*fRameWindow*/)
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDocHostUIHandler::ShowContextMenu(
|
|
DWORD /*dwID*/,
|
|
POINT* /*pptPosition*/,
|
|
IUnknown* /*pCommandTarget*/,
|
|
IDispatch* /*pDispatchObjectHit*/)
|
|
{
|
|
|
|
return E_NOTIMPL; // We've shown our own context menu. MSHTML.DLL will no longer try to show its own.
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDocHostUIHandler::TranslateAccelerator(LPMSG /*lpMsg*/,
|
|
/* [in] */ const GUID __RPC_FAR* /*pguidCmdGroup*/,
|
|
/* [in] */ DWORD /*nCmdID*/)
|
|
{
|
|
return S_FALSE;
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDocHostUIHandler::GetOptionKeyPath(BSTR* /*pbstrKey*/, DWORD)
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDocHostUIHandler::GetDropTarget(
|
|
/* [in] */ IDropTarget __RPC_FAR* /*pDropTarget*/,
|
|
/* [out] */ IDropTarget __RPC_FAR *__RPC_FAR* /*ppDropTarget*/)
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDocHostUIHandler::GetExternal(
|
|
/* [out] */ IDispatch __RPC_FAR *__RPC_FAR* /*ppDispatch*/)
|
|
{
|
|
return E_NOTIMPL;
|
|
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDocHostUIHandler::TranslateUrl(
|
|
/* [in] */ DWORD /*dwTranslate*/,
|
|
/* [in] */ OLECHAR __RPC_FAR* /*pchURLIn*/,
|
|
/* [out] */ OLECHAR __RPC_FAR *__RPC_FAR* /*ppchURLOut*/)
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDocHostUIHandler::FilterDataObject(
|
|
/* [in] */ IDataObject __RPC_FAR* /*pDO*/,
|
|
/* [out] */ IDataObject __RPC_FAR *__RPC_FAR* /*ppDORet*/)
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
|
|
|
|
STDMETHODIMP CStylerView::XDispatch::GetTypeInfoCount(unsigned int*)
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDispatch::GetTypeInfo(
|
|
unsigned int, LCID, ITypeInfo**)
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDispatch::GetIDsOfNames(
|
|
REFIID, LPOLESTR*, unsigned int, LCID, DISPID*)
|
|
{
|
|
return E_NOTIMPL;
|
|
}
|
|
|
|
STDMETHODIMP CStylerView::XDispatch::Invoke(
|
|
DISPID dispid, REFIID, LCID, unsigned short /*wFlags*/,
|
|
DISPPARAMS* /*pDispParams*/, VARIANT* pvarResult,
|
|
EXCEPINFO*, unsigned int*)
|
|
{
|
|
switch (dispid)
|
|
{
|
|
case DISPID_AMBIENT_DLCONTROL:
|
|
pvarResult->lVal = DLCTL_VIDEOS | DLCTL_BGSOUNDS;
|
|
if (m_bShowImages) pvarResult->lVal |= DLCTL_DLIMAGES;
|
|
|
|
pvarResult->vt = VT_I4;
|
|
|
|
break;
|
|
|
|
default:
|
|
return DISP_E_MEMBERNOTFOUND;
|
|
}
|
|
|
|
return S_OK;
|
|
}
|
|
|