• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 用ATL如何写一个具有事件event的COM组件?

用ATL如何写一个具有事件event的COM组件?

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了atl组件,com atl,atl,atl71.dll,atl100.dll下载等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 用ATL如何写一个具有事件event的COM组件?
描述:

在VC6下如何用ATL编写具有事件功能的COM组件,使得该组件可以在VB或VC下应用.
该组件的事件功能同ActiveX控件相同,就是数据有变化的时候给客户端一个消息,叫客户端去处理。
我在vc中写了这个事件,代码如下:
HRESULT Fire_msgNotif(INT msgID, INT pri, INT msgType, INT dataLen, BSTR body)
{
CComVariant varResult;
T* pT = static_cast<T*>(this);
int nConnectionIndex;
CComVariant* pvars = new CComVariant[5];
int nConnections = m_vec.GetSize();
for (nConnectionIndex = 0; nConnectionIndex < nConnections; nConnectionIndex++)
{
pT->Lock();
CComPtr<IUnknown> sp = m_vec.GetAt(nConnectionIndex);
pT->Unlock();
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
if (pDispatch != NULL)
{
VariantClear(&varResult);
pvars[4] = msgID;
pvars[3] = pri;
pvars[2] = msgType;
pvars[1] = dataLen;
pvars[0] = body;
DISPPARAMS disp = { pvars, NULL, 12, 0 };
pDispatch->Invoke(0x3, IID_NULL, LOCALE_USER_DEFAULT, DISPATCH_METHOD, &disp, &varResult, NULL, NULL);
}
}
delete[] pvars;
return varResult.scode;
}
然后我在另外一个接口函数中数据变化时候调用Fire_msgNotif,
可是我在vb客户端调用这个dll出错,收不到任何消息,
请教怎么编写vc和vb的客户端,
在回答时请举一个简单的例子示范.谢谢


解决方案1:

gz

解决方案2:

关注!


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 谁能帮我看一下关于ATL编写COM组件
  • 怎样用ATL写一个含有其它组件的进程外COM
  • 如何在ATL的COM组件里为MFC的MDI程序创建一个MDI子窗口?
  • 采用ATL写的COM组件,Debug没问题,Release就出问题了。
  • ATL能不能继承VB编写的COM组件再封装成COM组件?
  • 用ATL写的COM组件在VC里怎样使用?!
  • 用ATL编写COM组件,如何操作DATE类型
  • 写ATL组件时发现一个难以理解的问题?
  • 关于ATL组件用web方式调用,我遇到一个小问题,请帮忙指点一下
  • 为何我用ATL开发的com组件在release版编译后出问题

相关文章

  • 2017-06-04 关于ActiveX控件制作cab用于web发布,各位达人帮忙谢谢!
  • 2017-06-05 ActiveX属性页当点击OK或者Apply按钮时,如何加一些判断?
  • 2017-06-04 关于COM+的负载平衡,大家来讨论!
  • 2017-06-04 又是几个高深问题,关键字(IE,控件,插件),请大家帮忙,急!!!
  • 2017-06-05 救命啦,简单问题,多线程。
  • 2017-06-05 线程同步问题,主线程利用变量是否为真,无限循环等待线程结束,运行结果死机,代码如下
  • 2017-06-04 问一下怎么写插件给OUTLOOKORFOXMAIL增加发语音邮件功能(RockyZheng)
  • 2017-06-05 全局鼠标钩子的问题。
  • 2017-06-05 求助!VC程序调用控制
  • 2017-06-04 怎样在installshield中注册ocx

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 高分请教:关于写COM返回值类型问题
    • 有没有函数能方便的截取OLECHAR的一段内容。
    • 在动态库中还能调用com组件啊?我调用老是失败
    • 关于数据库(DAO类的)与多线程的问题。
    • mfc生成com进程外组件???
    • 是不是在dll中字符串处理函数就不可用了
    • 如何隐藏另一个进程的主窗口
    • CTOOLBAR的tooltip显示问题
    • 请问CoCreateInstance创建了COM控件后接下来如何在窗口中显示它?
    • 在线急求!mscomm控件接收的数据个数一次最多可以有多少个???

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有