ATL 8.0(VS2005) 我要创建一个继承自多个接口的组件类
来源:互联网 发布:ios10软件安装目录 编辑:程序博客网 时间:2024/05/07 08:01
1:假设我们已经比较熟悉COM了(VS2005)
问题集合:
001:我要创建一个继承自多个接口的组件类
用ATL"添加简单对象向"导->添加类->ATL->ATL简单对象
用Atl向导生成的组件类默认之继承了一个接口类。假设组建类为CMathFt(Math不允许用作自定类名)那么它默认继承和实现的一个接口为IMathFt.如果此时希望另外添加一个接口,比如IAdvancedMath.那么ATL有没有提供向导呢?答案是目前没有提供。但有时候我们需要这么干。有些资料上说这个问题时候,会告诉你如何更改IDL,添加映射等等。
事实上方法映射仍然可以利用ATL的向导(有向导我们似乎更相信向导),具体方法如下:
1:更改IDL文件
毫无办法有些代码还是得手动输入的
在IDL定义完IMath的下面输入如下代码,它们用来描述一个接口
[
object,
uuid(D81486DB-8431-4daf-9ED4-0FE3FD280E4B),
helpstring("IAdvancedMath 接口"),
pointer_default(unique)
]
interface IAdvancedMath : IUnknown{
};
修改一处idl代码,红色是添加的部分,其余为原有的
library Chapter3ServerLib
{
importlib("stdole2.tlb");
[
uuid(29C78992-77E2-462B-B615-66A79A091765),
helpstring("CMathFt Class")
]
coclass CMathFt
{
[default] interface IMathFt;
interface IAdvancedMath;
};
};
2:修改组件类CMath 红色是添加的部分,其余为原有的
class ATL_NO_VTABLE CMathFt :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CMathFt, &CLSID_Math>,
public IMathFt,
public IAdvancedMath
{
public:
CMathFt()
{
}
DECLARE_REGISTRY_RESOURCEID(IDR_MATHFT)
BEGIN_CATEGORY_MAP(CMathFt)
IMPLEMENTED_CATEGORY(CATID_ATLDevGuide)
END_CATEGORY_MAP()
BEGIN_COM_MAP(CMathFt)
COM_INTERFACE_ENTRY(IMathFt)
COM_INTERFACE_ENTRY(IAdvancedMath)
END_COM_MAP()
。。。
};
经过如上修改后那么你就可以像添加IMath方法那样去添加IAdvancedMath的方法了
- ATL 8.0(VS2005) 我要创建一个继承自多个接口的组件类
- ATL 8.0(VS2005) 我要删除一个接口方法
- ATL实现一个组件多个dual接口,multidisp
- VS2005 创建的ATL工程无法注册组件
- 一个类继承多个接口的简单例子
- 在用ATL创建组件时,如何在一个接口的实现中创建另一个已经实现了的接口的对象?
- ATL多继承情况下接口的取得
- VS2005下第一个ATL
- 通过ATL实现类厂和组件的创建
- 多个接口的继承
- vba调用vs2005使用atl开发的com组件
- 如何用ATL写一个C++的COM组件(C#轻松调用C/C++接口)
- ATL--创建简单的ATL之dll工程,给接口添加属性(实际上就是一个函数对)
- vs2005的ATL向导
- 接口继承多个
- ATL--创建简单的ATL之dll工程,添加类和类的接口并在MFC中调用
- 使用ATL类来创建一个对话框
- c#,一个类可以同时继承自一个普通类和一个接口
- GetQueuedCompletionStatus函数
- UML的概念模型
- 使用BoundsChecker
- 术语:Homoiconicity(同像)
- “十赌九炸”电子破解技术论文
- ATL 8.0(VS2005) 我要创建一个继承自多个接口的组件类
- 3D地形多层纹理混合加阴影渲染方法
- CEdit的自动滚动
- DOS命令行删除N天以前的文件
- ORACLE心得体会
- Linux下DNS配置文件祥解
- 用 C++ 创建简单的 Win32 服务程序
- 电信网络交换技术的发展与趋势
- 利用 openmp 实现在intel多核系统上 基本排序算法性能比较