如何定义一个有模板的接口+1个问题

ohahu 2004-07-05 11:59:28
1.如何定义一个有模板的接口,包括idl怎么写
派生连接点的时候,有
template <class T>
class CProxy_IyEvents : public IConnectionPointImpl<T, &DIID__IyEvents, CComDynamicUnkArray>
{ //Warning this class may be recreated by the wizard.

像这样有模板的接口怎么写

2.VC自动添加的ATL对象都是和类一起添加的
怎么样只添加接口,不生成类方便一点
直接写??
...全文
92 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ohahu 2004-07-12
  • 打赏
  • 举报
回复
谢谢
jyc_nj 2004-07-06
  • 打赏
  • 举报
回复
晕. 刚才罗嗦不少, 竟然没帖上去!:(

觉得你这样不行.
idl文档会被编译成.h .c文档, 而模板参数不能在这种情况下被定下来.至少目前的编译器不行吧.

你可以用其他方法达到目标.
如:
template <class T>
class DispatchConvert
{
public:
DispatchConvert(T *pUnk)
{
pUnk->AddRef();
}
~DispatchConvert()
{
m_pUnk->Release();
}
operator IDispatch * () {}
};
使用
Add(DispatchConvert(pUnk));
ohahu 2004-07-05
  • 打赏
  • 举报
回复
to jyc_nj:
我是想这样的
有一个IPersonCollection接口,里面的一个函数Add(IPerson *person)

如果做成模板,则所有的接口,什么IPerson,IAnimal都可以放进去
这个Add放到接口里面,自然在idl文件也需要体现出来

我想到一个方法是Add(IDispatch *pDisp),不过这样每次都要转换成IDispatch比较麻烦
jyc_nj 2004-07-05
  • 打赏
  • 举报
回复
"有模板的接口"?
还是你这个接口实现类需要模板?
jyc_nj 2004-07-05
  • 打赏
  • 举报
回复
利用VC自己添加功能,有时候挺烦的, 还不如自己写, 接口定义本来就没有多少内容.

3,245

社区成员

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

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