• 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 > COM对象的传递,你肯定不会?我做了好几天也没有做出来。

COM对象的传递,你肯定不会?我做了好几天也没有做出来。

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

佚名通过本文主要向大家介绍了com对象,创建com对象失败,易语言com对象,vbox创建com对象失败,cad失败创建com对象等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: COM对象的传递,你肯定不会?我做了好几天也没有做出来。
描述:

我编写了一个程序,在其中使用了多线程,在主进程中创建了子线程,子线程中,调用了如下代码:
CLSID clsid;
CLSIDFromProgID(L"AutoCAD.Application",&clsid);
IUnknown* pUnk;
HRESULT hr=::CoCreateInstance(clsid,NULL,CLSCTX_SERVER,IID_IUnknown,(void**)&pUnk);
IDispatch* pDispApp;
IAcadApplication *IApp = new IAcadApplication();
IApp->SetVisible(FALSE);
hr = pUnk->QueryInterface(IID_IDispatch, (void**)&pDispApp);
*IApp=pDispApp;
我怎么才能在我的主函数中调用IApp指针呢?注意什么问题呢?
我用了
::PostMessage(hwnd, 1500,0,(LPARAM)IApp)
还是不行,主函数里虽然得到的地址相同,但是,去不能调用IApp指针所对应的函数,以调用,就挂。
谢谢大哥大姐帮忙。


解决方案1:

用列集跟散集:
IStream *pStram1 = NULL;
HRESULT hr = ::CoMarshalInterfaceInStream(IID_IDispatch, pDispApp, &pStream1);
if (hr == S_OK)  // 传递接口指针给另一个线程
    ::PostMessage(hwnd, 1500,0,(LPARAM)pStream1);
//////////////////////////////////////////////////////////////////////////
IDispatch* pDisp = NULL;
HRSULT hr = S_OK;
IStream *pStram2 = (IStream*)pStream1;
hr = ::CoGetInterfaceAndReleaseStream(pStream2, IID_IDispatch, (void**)&pDisp);
if (hr == S_OK)
   ;// 使用接口


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

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

  • COM对象作为结构成员不能初始化???
  • COM中如何创建窗口?
  • com对象是以文件的形式存于硬盘上么?若是,那么它是什么扩展名文件?是dll文件么?
  • COM中关于对象指针的传递
  • COM对象创建问题
  • 网页上的input输入框本质上是不是也是一个COM组件?用OLE/COM对象查看器怎么找到它?它的名称是什么?
  • COM+的对象池的问题!!!!
  • 我的COM对象里定义了一个返回接口的属性,我想根据不同情况返回不同接口该怎么实现
  • 关于聚合对象的一个问题COM
  • 创建com对象时为什么要用类厂?

相关文章

  • 2017-06-04 在vc里编译idl文件,出错提示为:Errorexecutingmidlexe,why?
  • 2017-06-05 CoCreateInstance需要clsid和iid,那类型库的guid是做什么用的呢?
  • 2017-06-05 如何做一个在后台一直运行的dll,直到装载它的进程退出。
  • 2017-06-05 2个进程间的自定义消息怎么收不到?
  • 2017-06-04 急急急急急!!!求:,在线等
  • 2017-06-05 OCX控件无法用SetWindowText来设置显示文本急高手来一展身手吧
  • 2017-06-04 msxml通过schema验证xml时,错误信息IXMLDomParseErrorPtr的问题
  • 2017-06-04 初学COM的一个问题?100分啦,一定给分。
  • 2017-06-05 VBDDEVC何用之?
  • 2017-06-05 关于通过进程获取窗口句柄的问题

文章分类

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

最近更新的内容

    • 如何根据一个进程的pid判断这个进程是否还存在
    • 实现com接口的时候,各个Ixxxx之间没有顺序关系,为什么调用时要注意顺序?
    • 请教:)有关数据采集与实时显示的问题。
    • 地图控件的编程问题?高手进,高分送!
    • 关于系统服务的问题。
    • 如何在程序运行时改变程序文件
    • VC中ActiveX控件的属性无字符型,如何将BSTR转化为Char,我已转化了英文,中文怎么办呢?
    • 有使用过setbaseurl和setautoplay函数的没有?
    • SORRY我没分了,,串口程序调试问题???在线急求??非常感谢!!
    • 使用MFC在应用程序中嵌入MSWord的问题

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

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