ATL_____
所属分类:ActiveX/DCOM/ATL
开发工具:Visual C++
文件大小:10KB
下载次数:7
上传日期:2005-01-25 11:33:59
上 传 者:
ttttttt
说明: C++标准模板库
(C standard template library)
文件列表:
ATL (0, 2005-01-16)
ATL\ATLCPImplMT.h (7892, 2004-04-15)
ATL\doc (0, 2005-01-16)
ATL\doc\ATL多线程修正.doc (32256, 2004-08-17)
ATL\doc\releasenote.txt (305, 2004-08-17)
/* ATL多线程修正 */
[模块版本号] #ATL_MT_20040420-1
提供人姓名:黎达文
[程序功能简介]
由于ATL在实现多线程公寓的时候无法和VB6等语言兼容,需要更换缺省的实现。
此模块就是其中一个可行的替代方案
[编译环境说明]
1、VC6,VC7
[使用说明]
本模块只适合在使用ATL实现COM(ActiveX)的情况下使用。
1. 复制本模块的文件到你的工程项目中
2. 将下面的#include语句添加到由WIZARD创建***类代码的最后一个#include语句之后
#include "ATLCPImplMT.h"
3. 修改CProxy{EventInterfaceName}创建的基类,让它从IConnectionPointImplMT派生而不是从IConnectionPointImpl派生
IConnectionPointImplMT 和IConnectionPointImpl有一样的接口操作。
比如:
//template
//class CProxy_IEvntFirerEvents : public IConnectionPointImpl
//==》
template
class CProxy_IEvntFirerEvents : public IConnectionPointImplMT
4. 在***类的每个***方法(Fire_{EventName})中做如下事情:
将循环内的如下代码注释
// pT->Lock();
// CComPtr sp = m_vec.GetAt(nConnectionIndex);
// pT->Unlock();
插入如下代码:
CComPtr sp;
sp.Attach (GetInterfaceAt(nConnectionIndex));
近期下载者:
相关文件:
收藏者: