描述:
// SimpleHost.h : CSimpleHost 的声明
#pragma once
#include <MsHtml.h>
#include <Mshtmdid.h>
#include <comutil.h>
#include <comdef.h>
#include <comdefsp.h>
#include <DocObj.h>
class ie_browser_dlg;
class ATL_NO_VTABLE CSimpleHost :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CSimpleHost, &CLSID_NULL>,
IDispatchImpl<IDocHostUIHandlerDispatch, &IID_IDocHostUIHandlerDispatch, &CAtlModule::m_libid, /*wMajor =*/ 0xFFFF, /*wMinor =*/ 0xFFFF>,
IInternetSecurityManager,
IOleContainer,
IOleCommandTarget,
IServiceProvider
{
public:
CSimpleHost(void);
~CSimpleHost(void);
BEGIN_COM_MAP(CSimpleHost)
COM_INTERFACE_ENTRY(IDocHostUIHandlerDispatch)
COM_INTERFACE_ENTRY(IInternetSecurityManager)
COM_INTERFACE_ENTRY(IOleCommandTarget)
COM_INTERFACE_ENTRY2(IDispatch, IDocHostUIHandlerDispatch)
COM_INTERFACE_ENTRY(IOleContainer)
COM_INTERFACE_ENTRY(IServiceProvider)
END_COM_MAP()
BEGIN_SERVICE_MAP(CSimpleHost)
SERVICE_ENTRY(__uuidof(IInternetSecurityManager))
END_SERVICE_MAP()
DECLARE_PROTECT_FINAL_CONSTRUCT()
HRESULT FinalConstruct()
{
return S_OK;
}
void FinalRelease()
{
}
// IDocHostUIHandlerDispatch Methods
public:
//Called from MSHTML to display a context menu.
virtual HRESULT STDMETHODCALLTYPE ShowContextMenu(
/* [in] */ DWORD dwID,
/* [in] */ DWORD x,
/* [in] */ DWORD y,
/* [in] */ IUnknown *pcmdtReserved,
/* [in] */ IDispatch *pdispReserved,
/* [retval][out] */ HRESULT *dwRetVal);
//Retrieves the UI capabilities of MSHTML host.
virtual HRESULT STDMETHODCALLTYPE GetHostInfo(
/* [out][in] */ DWORD *pdwFlags,
/* [out][in] */ DWORD *pdwDoubleClick);
//Allows the host to replace MSHTML menus and toolbars.
virtual HRESULT STDMETHODCALLTYPE ShowUI(
/* [in] */ DWORD dwID,
/* [in] */ IUnknown *pActiveObject,
/* [in] */ IUnknown *pCommandTarget,
/* [in] */ IUnknown *pFrame,
/* [in] */ IUnknown *pDoc,
/* [retval][out] */ HRESULT *dwRetVal);
//Called when MSHTML removes its menus and toolbars.
virtual HRESULT STDMETHODCALLTYPE HideUI( void);
//Notifies the host that the command state has changed.
virtual HRESULT STDMETHODCALLTYPE UpdateUI( void);
//Called from MSHTML implementation of IOleInPlaceActiveObject::EnableModeless.
//Also called when MSHTML displays modal UI.
virtual HRESULT STDMETHODCALLTYPE EnableModeless(/* [in] */ VARIANT_BOOL fEnable);
//Called from MSHTML implementation of IOleInPlaceActiveObject::OnDocWindowActivate.
virtual HRESULT STDMETHODCALLTYPE OnDocWindowActivate(/* [in] */ VARIANT_BOOL fActivate);
//Called from MSHTML implementation of IOleInPlaceActiveObject::OnFrameWindowActivate.
virtual HRESULT STDMETHODCALLTYPE OnFrameWindowActivate(/* [in] */ VARIANT_BOOL fActivate);
//Called from MSHTML implementation of IOleInPlaceActiveObject::ResizeBorder.
virtual HRESULT STDMETHODCALLTYPE ResizeBorder(
/* [in] */ long left,
/* [in] */ long top,
/* [in] */ long right,
/* [in] */ long bottom,
/* [in] */ IUnknown *pUIWindow,
/* [in] */ VARIANT_BOOL fFrameWindow);
//Called by MSHTML when IOleInPlaceActiveObject::TranslateAccelerator or
//IOleControlSite::TranslateAccelerator is called.
virtual HRESULT STDMETHODCALLTYPE TranslateAccelerator(
/* [in] */ DWORD_PTR hWnd,
/* [in] */ DWORD nMessage,
/* [in] */ DWORD_PTR wParam,
/* [in] */ DWORD_PTR lParam,
/* [in] */ BSTR bstrGuidCmdGroup,
/* [in] */ DWORD nCmdID,
/* [retval][out] */ HRESULT *dwRetVal);
//Returns the registry key under which MSHTML stores user preferences.
virtual HRESULT STDMETHODCALLTYPE GetOptionKeyPath(/* [out] */ BSTR *pbstrKey, /* [in] */ DWORD dw);
//Called by MSHTML when it is being used as a drop target to allow the host to supply an alternative IDropTarget.
virtual HRESULT STDMETHODCALLTYPE GetDropTarget(
/* [in] */ IUnknown *pDropTarget,
/* [out] */ IUnknown **ppDropTarget);
//Called by MSHTML to obtain the host's IDispatch interface.
virtual HRESULT STDMETHODCALLTYPE GetExternal(/* [out] */ IDispatch **ppDispatch);
//Called by MSHTML to allow the host an opportunity to modify the URL to be loaded.
virtual HRESULT STDMETHODCALLTYPE TranslateUrl(
/* [in] */ DWORD dwTranslate,
/* [in] */ BSTR bstrURLIn,
/* [out] */ BSTR *pbstrURLOut);
//Called on the host by MSHTML to allow the host to replace MSHTML's data object.
virtual HRESULT STDMETHODCALLTYPE FilterDataObject(
/* [in] */ IUnknown *pDO,
/* [out] */ IUnknown **ppDORet);
public:
virtual HRESULT STDMETHODCALLTYPE SetSecuritySite(IInternetSecurityMgrSite* pSite);
virtual HRESULT STDMETHODCALLTYPE GetSecuritySite(IInternetSecurityMgrSite** ppSite);
virtual HRESULT STDMETHODCALLTYPE MapUrlToZone(LPCWSTR pwszUrl,