关于END_COM_MAP,子类里为什么还能存在纯虚函数,感觉没看懂

dllg1988 2013-11-06 12:13:32

class ATL_NO_VTABLE CFun :
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CFun, &CLSID_Fun>,
public IFun,
public IStr
{
public:
CFun()
{
}

DECLARE_REGISTRY_RESOURCEID(IDR_FUN)


BEGIN_COM_MAP(CFun)
COM_INTERFACE_ENTRY(IFun)
COM_INTERFACE_ENTRY(IStr)
END_COM_MAP()



DECLARE_PROTECT_FINAL_CONSTRUCT()

HRESULT FinalConstruct()
{
return S_OK;
}

void FinalRelease()
{
}

public:

STDMETHOD(Sub)(LONG n1, LONG n2, LONG* pRes);
STDMETHOD(Add2)(LONG n1, LONG n2, LONG* pRes);
STDMETHOD(Cat)(BSTR s1, BSTR s2, BSTR* psVal);
};

OBJECT_ENTRY_AUTO(__uuidof(Fun), CFun)

ATL插入简单对象,END_COM_MAP宏展开里面声明了几个纯虚函数(Add,Release,QueryInterface),有点没明白,客户可以调用CoCreateInstance创建com对象,为什么这个com类还能存在纯虚函数?
...全文
79 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
ysjyniiq 2013-11-08
  • 打赏
  • 举报
回复
恭喜楼主,接分!
dllg1988 2013-11-06
  • 打赏
  • 举报
回复
问题已解决,http://blog.csdn.net/biblereader/article/details/799244,类厂中并没有直接new一个CFun对象,而是把CFun作为CComobject类的模版参数,最终new了个CComobject<CFun>。 来个人接个分吧,话说现在论坛好冷清啊。。。
dllg1988 2013-11-06
  • 打赏
  • 举报
回复
感觉CFun还不是com类,还只是的接口,定义个CFun的全局对象会编译不过,说抽象类不能实例化。那类厂里实例化的com对象是哪个?求高手指点下。。。

3,245

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧