⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 idochostuihandlerdispatchimpl.h

📁 一个使用wtl写的完整的多窗口浏览器
💻 H
字号:

#pragma once

class ATL_NO_VTABLE _IDocHostUIHandlerDispatch
{
public:
	//this method needs a different name than QueryInterface
	STDMETHOD(_LocDHUHQueryInterface)(REFIID riid, void ** ppvObject) = 0;
	virtual ULONG STDMETHODCALLTYPE AddRef(void) = 0;
	virtual ULONG STDMETHODCALLTYPE Release(void) = 0;
};

class ATL_NO_VTABLE _IDocHostUIHandlerDispatchLocator : public _IDocHostUIHandlerDispatch
{
public:
};

class ATL_NO_VTABLE IDocHostUIHandlerDispatchImpl : public _IDocHostUIHandlerDispatchLocator
{
public:
// COM identity
	STDMETHOD(_LocDHUHQueryInterface)(REFIID riid, void ** ppvObject)
	{
		if (InlineIsEqualUnknown(riid) ||
			InlineIsEqualGUID(riid, IID_IDocHostUIHandlerDispatch))
		{
			if (ppvObject == NULL)
				return E_POINTER;
			*ppvObject = this;
			AddRef();
#ifdef _ATL_DEBUG_INTERFACES
			_Module.AddThunk((IUnknown**)ppvObject, _T("IDocHostUIHandlerDispatchImpl"), riid);
#endif // _ATL_DEBUG_INTERFACES
			return S_OK;
		}
		else
			return E_NOINTERFACE;
	}
	 ULONG STDMETHODCALLTYPE AddRef()
	{
		return 1;
	}
	 ULONG STDMETHODCALLTYPE Release()
	{
		return 1;
	}

// IDispatch
	STDMETHOD(GetTypeInfoCount)(UINT* pctinfo)
	{return E_NOTIMPL;}

	STDMETHOD(GetTypeInfo)(UINT itinfo, LCID lcid, ITypeInfo** pptinfo)
	{return E_NOTIMPL;}

	STDMETHOD(GetIDsOfNames)(REFIID riid, LPOLESTR* rgszNames, UINT cNames,
		LCID lcid, DISPID* rgdispid)
	{return E_NOTIMPL;}

	STDMETHOD(Invoke)(DISPID dispidMember, REFIID riid,
		LCID lcid, WORD /*wFlags*/, DISPPARAMS* pdispparams, VARIANT* pvarResult,
		EXCEPINFO* /*pexcepinfo*/, UINT* /*puArgErr*/)
	{return E_NOTIMPL;}


// IDocHostUIHandlerDispatch
	STDMETHOD(ShowContextMenu)(
			/* [in] */ DWORD dwID,
            /* [in] */ DWORD x,
            /* [in] */ DWORD y,
            /* [in] */ IUnknown  *pcmdtReserved,
            /* [in] */ IDispatch  *pdispReserved,
            /* [retval][out] */ HRESULT  *dwRetVal)
	{return E_NOTIMPL;}
        
	STDMETHOD(GetHostInfo)( 
            /* [out][in] */ DWORD  *pdwFlags,
            /* [out][in] */ DWORD  *pdwDoubleClick)
	{return E_NOTIMPL;}
        
    STDMETHOD(SShowUI)( 
            /* [in] */ DWORD dwID,
            /* [in] */ IUnknown  *pActiveObject,
            /* [in] */ IUnknown  *pCommandTarget,
            /* [in] */ IUnknown  *pFrame,
            /* [in] */ IUnknown  *pDoc,
            /* [retval][out] */ HRESULT  *dwRetVal)
	{return E_NOTIMPL;}
        
    STDMETHOD(HideUI)(void)
	{return E_NOTIMPL;}
    STDMETHOD(UpdateUI)(void)
	{return E_NOTIMPL;}    
	STDMETHOD(EnableModeless)( 
           /* [in] */ VARIANT_BOOL fEnable)
	{return E_NOTIMPL;}   
    STDMETHOD(OnDocWindowActivate)( 
            /* [in] */ VARIANT_BOOL fActivate)
 	{return E_NOTIMPL;}       
    STDMETHOD(OnFrameWindowActivate)( 
            /* [in] */ VARIANT_BOOL fActivate)
   	{return E_NOTIMPL;}     
    STDMETHOD(ResizeBorder)( 
            /* [in] */ long left,
            /* [in] */ long top,
            /* [in] */ long right,
            /* [in] */ long bottom,
            /* [in] */ IUnknown  *pUIWindow,
            /* [in] */ VARIANT_BOOL fFrameWindow)
  	{return E_NOTIMPL;}      
    STDMETHOD(TranslateAccelerator)( 
            /* [in] */ DWORD hWnd,
            /* [in] */ DWORD nMessage,
            /* [in] */ DWORD wParam,
            /* [in] */ DWORD lParam,
            /* [in] */ BSTR bstrGuidCmdGroup,
            /* [in] */ DWORD nCmdID,
            /* [retval][out] */ HRESULT  *dwRetVal)
  	{return E_NOTIMPL;}      
     STDMETHOD(GetOptionKeyPath)( 
            /* [out] */ BSTR  *pbstrKey,
            /* [in] */ DWORD dw)
  	{return E_NOTIMPL;}
     STDMETHOD(GetDropTarget)( 
            /* [in] */ IUnknown  *pDropTarget,
            /* [out] */ IUnknown  **ppDropTarget)
    {return E_NOTIMPL;}    
	STDMETHOD(GetExternal)( 
            /* [out] */ IDispatch  **ppDispatch)
    {return E_NOTIMPL;} 
    STDMETHOD(TranslateUrl)( 
            /* [in] */ DWORD dwTranslate,
            /* [in] */ BSTR bstrURLIn,
            /* [out] */ BSTR  *pbstrURLOut)
	{return E_NOTIMPL;}  
    STDMETHOD(FilterDataObject)( 
            /* [in] */ IUnknown  *pDO,
            /* [out] */ IUnknown  **ppDORet)
	{return E_NOTIMPL;}

// Methods
	bool InstallExternalUIHandler(IAxWinHostWindow* pAxWinHostWindow)
	{
		HRESULT hr = pAxWinHostWindow->SetExternalUIHandler((IDocHostUIHandlerDispatch*)this);
		if (FAILED(hr))
			return false;

		return true;
	}

	bool UninstallExternalUIHandler(IAxWinHostWindow* pAxWinHostWindow)
	{
		HRESULT hr = pAxWinHostWindow->SetExternalUIHandler(NULL);
		if (FAILED(hr))
			return false;

		return true;
	}
};

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -