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

📄 atlsam.h

📁 专题讲座二:内容包括ActiveX控件介绍、利用MFC开发ActiveX控件、 利用ATL(ActiveX模板库)创建ActiveX控件、调试并使用ActiveX控件等
💻 H
字号:
// ATLSam.h : Declaration of the CATLSam

#ifndef __ATLSAM_H_
#define __ATLSAM_H_

#include "resource.h"       // main symbols


/////////////////////////////////////////////////////////////////////////////
// CATLSam
class ATL_NO_VTABLE CATLSam : 
	public CComObjectRootEx<CComSingleThreadModel>,
	public CComCoClass<CATLSam, &CLSID_ATLSam>,
	public CComControl<CATLSam>,
	public IDispatchImpl<IATLSam, &IID_IATLSam, &LIBID_SAM_2Lib>,
	public IProvideClassInfo2Impl<&CLSID_ATLSam, NULL, &LIBID_SAM_2Lib>,
	public IPersistStreamInitImpl<CATLSam>,
	public IPersistStorageImpl<CATLSam>,
	public IQuickActivateImpl<CATLSam>,
	public IOleControlImpl<CATLSam>,
	public IOleObjectImpl<CATLSam>,
	public IOleInPlaceActiveObjectImpl<CATLSam>,
	public IViewObjectExImpl<CATLSam>,
	public IOleInPlaceObjectWindowlessImpl<CATLSam>,
	public IDataObjectImpl<CATLSam>,
	public ISupportErrorInfo,
	public IConnectionPointContainerImpl<CATLSam>,
	public ISpecifyPropertyPagesImpl<CATLSam>
{
public:
	char* m_pszCaption;
	CATLSam()
	{
		m_pszCaption=new char[20];
		strcpy(m_pszCaption,"默认字符");
	}

DECLARE_REGISTRY_RESOURCEID(IDR_ATLSAM)

BEGIN_COM_MAP(CATLSam)
	COM_INTERFACE_ENTRY(IATLSam)
	COM_INTERFACE_ENTRY(IDispatch)
	COM_INTERFACE_ENTRY_IMPL(IViewObjectEx)
	COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject2, IViewObjectEx)
	COM_INTERFACE_ENTRY_IMPL_IID(IID_IViewObject, IViewObjectEx)
	COM_INTERFACE_ENTRY_IMPL(IOleInPlaceObjectWindowless)
	COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleInPlaceObject, IOleInPlaceObjectWindowless)
	COM_INTERFACE_ENTRY_IMPL_IID(IID_IOleWindow, IOleInPlaceObjectWindowless)
	COM_INTERFACE_ENTRY_IMPL(IOleInPlaceActiveObject)
	COM_INTERFACE_ENTRY_IMPL(IOleControl)
	COM_INTERFACE_ENTRY_IMPL(IOleObject)
	COM_INTERFACE_ENTRY_IMPL(IQuickActivate)
	COM_INTERFACE_ENTRY_IMPL(IPersistStorage)
	COM_INTERFACE_ENTRY_IMPL(IPersistStreamInit)
	COM_INTERFACE_ENTRY_IMPL(ISpecifyPropertyPages)
	COM_INTERFACE_ENTRY_IMPL(IDataObject)
	COM_INTERFACE_ENTRY(IProvideClassInfo)
	COM_INTERFACE_ENTRY(IProvideClassInfo2)
	COM_INTERFACE_ENTRY(ISupportErrorInfo)
	COM_INTERFACE_ENTRY_IMPL(IConnectionPointContainer)
END_COM_MAP()

BEGIN_PROPERTY_MAP(CATLSam)
	// Example entries
	// PROP_ENTRY("Property Description", dispid, clsid)
	PROP_PAGE(CLSID_StockColorPage)
END_PROPERTY_MAP()


BEGIN_CONNECTION_POINT_MAP(CATLSam)
END_CONNECTION_POINT_MAP()


BEGIN_MSG_MAP(CATLSam)
	MESSAGE_HANDLER(WM_PAINT, OnPaint)
	MESSAGE_HANDLER(WM_SETFOCUS, OnSetFocus)
	MESSAGE_HANDLER(WM_KILLFOCUS, OnKillFocus)
END_MSG_MAP()


// ISupportsErrorInfo
	STDMETHOD(InterfaceSupportsErrorInfo)(REFIID riid);

// IViewObjectEx
	STDMETHOD(GetViewStatus)(DWORD* pdwStatus)
	{
		ATLTRACE(_T("IViewObjectExImpl::GetViewStatus\n"));
		*pdwStatus = VIEWSTATUS_SOLIDBKGND | VIEWSTATUS_OPAQUE;
		return S_OK;
	}

// IATLSam
public:
	STDMETHOD(GetCaptionLength)(/*[out]*/long* lLen);
	STDMETHOD(SetCaption)(/*[in]*/BSTR pszCaption);
	HRESULT OnDraw(ATL_DRAWINFO& di);

};

#endif //__ATLSAM_H_

⌨️ 快捷键说明

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