让普通C++类中支持连接点(Windows系统)
来源:互联网 发布:淘宝怎样查看买家电话 编辑:程序博客网 时间:2024/05/22 13:45
容器不要Impl的,连接点可以使用Impl的,从如下继承
class YourClass:
public IYourBaseInterface,
public IConnectionPointContainer,
public IConnectionPointImpl< T >
查询连接点容器时要转换一下得到正确的vtbl
STDMETHOD(QueryInterface)(REFIID iid, LPVOID* ppvObj)
{
if (iid == __uuidof(IConnectionPointContainer))
{
*ppvObj = (IConnectionPointContainer*)this;
}
else
*ppvObj=this;
return S_OK;
}
重载IConnectionPointContainer::FindConnectionPoint
返回指针必须要转换正确,这里是关键
STDMETHOD(FindConnectionPoint)(REFIID riid, IConnectionPoint** ppCP)
{
if (riid == __uuidof(IMiooServiceWindowEvent))
{
*ppCP = (IConnectionPoint*)(IConnectionPointImpl< T >*)this;
return S_OK;
}
}
简单返回this不行的,若那样,当访问IConnectionPointContainer::FindConnectionPoint时就会访问YourClass的第二个函数了,很搞笑的
- 让普通C++类中支持连接点(Windows系统)
- 让英文Windows系统支持中文
- 让普通C++类轻松支持IDispatch自动化接口
- 让普通C++类轻松支持IDispatch自动化接口
- 让普通C++类轻松支持IDispatch自动化接口
- linux系统中支持让firefox支持jre总结
- 让arm-linux支持普通USB摄像头
- 让嵌入式Linux支持普通USB摄像头
- Windows系统中Apache支持SSL
- 让系统变快吧(Windows)
- 让虚拟机(VMWare)支持OEM系统
- 让ZMQ在windows中成功支持PGM
- 让TOMCAT支持软连接
- 宏定义的极致发挥---让你的普通C++类轻松支持IDispatch自动化接口
- 宏定义的极致发挥---让你的普通C++类轻松支持IDispatch自动化接口
- 让ubuntu支持windows编码
- 让php支持memcache-windows
- 让Windows Server 2008+IIS 7+ASP.NET突破默认限制,支持海量并发连接数
- 励志人生:青年人职场生存七大勇气不可缺少
- [心情]不再勉强自己,爱是最大权利
- NStarfaiNet的SQL XML文件示范(maps/sample.xml)
- 第一款中国人自主研发的普及型计算机高级编程语言
- test
- 让普通C++类中支持连接点(Windows系统)
- 安装SQL2000时候 出现 挂起操作不能继续安装
- WindowsXP启动过程
- SAM在注册表中的结构
- Infragistics的NetAdvantage控件使用中遇到的问题及解决方法
- 无题
- 重新安装WINDOWS后如何修复GRUB
- [c]今天好几个例题全错....
- IE主页被恶意修改处理办法