RichEdit嵌入自开发OLE控件技术要点(ATL)

本文介绍了如何在RichEdit中插入自开发的OLE控件,通过ATL Wizard创建复合文档控件,并详细讲解了设置控件属性、实现IRichEditOleCallBack接口来处理复制和粘贴操作的关键步骤。
摘要由CSDN通过智能技术生成

richedit插入gif实例下载:

OLE封装库

RICHEDIT_DEMO

1、创建ATL复合文档控件。可通过wizard创建。
下面是创建OLE控件的最小头文件

// CSimpleOleObject
class ATL_NO_VTABLE CSimpleOleObject :
	public CComObjectRootEx<CComSingleThreadModel>,
	public IDispatchImpl<ISimpleOleObject, &IID_ISimpleOleObject, &LIBID_atlsdLib, /*wMajor =*/ 1, /*wMinor =*/ 0>,
	public IPersistStreamInitImpl<CSimpleOleObject>,
	public IOleControlImpl<CSimpleOleObject>,
	public IOleObjectImpl<CSimpleOleObject>,
	public IOleInPlaceActiveObjectImpl<CSimpleOleObject>,
	public IViewObjectExImpl<CSimpleOleObject>,
	public IOleInPlaceObjectWindowlessImpl<CSimpleOleObject>,
#ifdef _WIN32_WCE // 要在 Windows CE 上正确加载该控件,要求 IObjectSafety
	public IObjectSafetyImpl<CSimpleOleObject, INTERFACESAFE_FOR_UNTRUSTED_CALLER>,
#endif
	public CComCoClass<CSimpleOleObject, &CLSID_SimpleOleObject>,
	public CComCompositeControl<CSimpleOleObject>
{
public:


	CSimpleOleObject()
	{
		m_bWindowOnly = TRUE;
		CalcExtent(m_sizeExtent);
	}

DECLARE_OLEMISC_STATUS(OLEMISC_RECOMPOSEONRESIZE |
	OLEMISC_CANTLINKINSIDE |
	OLEMISC_INSIDEOUT |
	OLEMISC_ACTIVATEWHENVISIBLE |
	OLEMISC_SETCLIENTSITEFIRST
)

DECLARE_REGISTRY_RESOURCEID(IDR_SIMPLEOLEOBJECT)


BEGIN_COM_MAP(CSimpleOleObject)
	COM_INTERFACE_ENTRY(ISimpleOleObjec
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值