• 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 > 关于CoGetInterfaceAndReleaseStream取指针的问题

关于CoGetInterfaceAndReleaseStream取指针的问题

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

佚名通过本文主要向大家介绍了电流表指针偏转问题,鼠标指针出问题,指针赋值问题,鼠标指针出现问题,鼠标指针问题等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 关于CoGetInterfaceAndReleaseStream取指针的问题
描述:

我取得IwebBrowser2的指针m_pWebBrowser之后,需要把它从主线程(MainThread)中拿到另一个线程(DownThread)中使用;
于是我使用了CoMarshalInterThreadInterfaceInStream,CoGetInterfaceAndReleaseStream来封送指针;
代码如下:
在主线程中得到IwebBrowser2*pWebBrowser,然后
hrTemp = ::CoMarshalInterThreadInterfaceInStream
(
IID_IWebBrowser2, // interface ID to marshal
pWebbrowser, // ptr to interface to marshal
&pIStreamTemp // output variable
);
得到hrtemp = 0;
将pIStreamTemp保存到一个静态变量中.
然后在线程(DownThread)中取出指针:
IWebBrowser2* pWebBrowser = NULL;
        hrTemp = ::CoGetInterfaceAndReleaseStream( m_Stream,IID_IWebBrowser2, (void**)&pWebBrowser );
        pWebBrowser->AddRef();
取出指针后,使用它就会直接退出线程:
如:
       CComBSTR readystate
       pWebBrowser2->get_ReadyState(&readystate);
执行后,就跳出提示:
The thread 0xD48 has exited with code 0(0x0)
不知道什么原因,高手指点下,谢谢了.


解决方案1:

线程进行COM初始化了吗?

解决方案2:

MFC DLL,用到了MFC资源等,需要在导出函数一开始加上 AFX_MANAGE_STATE(AfxGetStaticModuleState());


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

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

  • 指针转换问题
  • 指针的指针和DLL的问题,望赐教。急!
  • 指针出错的问题,请高手帮忙看看了
  • 关于SendDlgItemMessage和指针访问问题
  • 巨难问题:如何通过运行期间动态定义函数指针,来实现变参的dll调用?
  • 关于接口指针创建的问题
  • 关于pThis指针的问题
  • 关于CoGetInterfaceAndReleaseStream取指针的问题

相关文章

  • 2017-06-04 VS2008下的ActiveX问题
  • 2017-06-04 控件在屏幕的起始位置,而不是包容器的起始位置
  • 2017-06-04 ATL开发Compositecontrol高手请进,进者有分)
  • 2017-06-04 初学者提问!1、在MFCActiveX中如何&在哪里添加方法?2、如何创建一静态窗体!
  • 2017-06-04 为什么我在ATL的OnDraw中画不了线???????
  • 2017-06-05 怎么得到一文件所加载的所有DLL
  • 2017-06-05 关于类的继承
  • 2017-06-04 ActiveMovieControlObject是那个dllORocx?
  • 2017-06-05 关于调试的问题
  • 2017-06-04 怎么在一个类里根据不同的clsid来做不同的处理?

文章分类

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

最近更新的内容

    • 请问namespaceextension开发,toolbar上增加一个按钮如何捕获事件?
    • vc开发com,供delphi调用,COM开发时需要调用另外的mfcsharedll库,怎么实现
    • ATL新建Service为什么什么操作也不做,全部编译器生成的代码直接注册服务报错。。折磨死我了
    • 求一个调用进程外的组件的例子,多谢了!
    • 新手问题:类的成员函数能不能做CreateThread线程函数的入口地址?
    • 关于dll的一个问题:选择生成一个MFCextensiondll,由向导会生成一个派生自CWinApp的类,做何用处呢?
    • 在win7下如何使SAPI使用系统内置的语言
    • COM客户端如何通过tlb文件获得组件的CLSID/IID?
    • 几个总结出来的小COM问题,搜索不到了,帮忙看看
    • ActiveX控件在IE中有关退格键的处理办法,请教!

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

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