聚合 包容 COM
来源:互联网 发布:冠军教父数据 编辑:程序博客网 时间:2024/06/11 00:34
//聚合
//定义集合的CLSID和IID定义的头文件
#include "../MyAtl/ATLServer_i.c"
//初始化指针
CMyMath():m_pITargetUnknown(0)
{
}
//得到关于GetControllingUnknown的编译器错误信息
DECLARE_GET_CONTROLLING_UNKNOWN()
BEGIN_COM_MAP(CMyMath)
//将被集合的接口添加到接口映射中
COM_INTERFACE_ENTRY_AGGREGATE(IID_ITarget, m_pITargetUnknown)
END_COM_MAP()
//覆盖FinalConstruct接口
HRESULT FinalConstruct()
{
HRESULT hr = CoCreateInstance(CLSID_Target/*目标类的CLSID*/,
GetControllingUnknown(),
CLSCTX_INPROC_SERVER,
IID_IUnknown/*目标类的IID_IUnknown*/,
(void**)&m_pITargetUnknown);
return S_OK;
}
//释放被集合的组件
void FinalRelease()
{
if(m_pIMathUnknwon)
m_pITargetUnknown->Release();
}
//定义目标接口的IUnknown接口指针
private:
IUnknown* m_pITargetUnknown;
////////////////////////////////////////////////////////
//包容
//导入包容类的头文件
#include “Target.h”
//在类声明中添加包容的接口
class ATL_NO_VTABLE CNowClass :
……,
……,
public IMath
{
//初始化指针
public:
CAdvancedMath() : m_pTarget( 0 )
{
}
//覆盖FinalConstruct接口
HRESULT FinalConstruct()
{
HRESULT hr = CoCreateInstance( CLSID_Target,
0,
CLSCTX_INPROC_SERVER,
IID_ITarget,
(void**) &m_pTarget );
return hr;
}
//释放被包容的组件
void FinalRelease()
{
if ( m_pTarget )
m_pTarget();
}
BEGIN_COM_MAP(CNowClass)
COM_INTERFACE_ENTRY(INowClass)
//响应包容的接口
COM_INTERFACE_ENTRY(ITarget)
END_COM_MAP()
//定义目标接口的 指针
private:
ITarget* m_pTarget;
};
//对包容的接口要添加使用方法
STDMETHOD(methodName)( parameter list);//声明
STDMETHODIMP CNowClass::methodName(parameter list)
{
return m_pTarget->xxx/*包容接口的方法*/(parameter list/*相应的参数列表*/)];
}
- 聚合 包容 COM
- COM 的聚合和包容
- COM笔记-包容与聚合
- COM特性 包容和聚合
- COM笔记-包容与聚合
- COM笔记-包容与聚合
- COM特性 包容和聚合
- com学习笔记(7)包容与聚合
- COM原理之包容与聚合
- Inside COM读书笔记-----包容和聚合
- COM技术内幕--包容和聚合
- COM---组件复用:包容与聚合
- 用MFC写的COM如何实现包容或聚合?
- COM 技术内幕学习之八(包容和聚合)
- 包容和聚合(COM技术内幕笔记五)
- COM--可重用性(包容和聚合)
- 包容 vs 聚合
- COM复用的中Containment(包容)和Aggregation(聚合)的实现
- 在列表控件中显示文件图标与类型
- 转贴: 电子渠道推广的五个秘诀
- 烧绳法计时间
- ASP.NET中Session高级使用技巧(在非Page类中使用Session)
- 你觉得工作快乐吗?你觉得是为自己工作吗?觉得自己有价值吗?
- 聚合 包容 COM
- 多核分布式队列的实现:偷与自私的运用
- 每个人都有创造的欲望
- CPNTools入门
- C#数据库操作
- web容器读取配置文件过程中的一个问题
- asp.net实现文件夹及文件压缩,并实现下载
- SVN提交时,发现文件的换行变成^M导致无法提交,怎么办?
- JSTL1.1拾遗(学习整理)