• 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 > 如何将OLE控件的对象传入到组件中去,请大家指教

如何将OLE控件的对象传入到组件中去,请大家指教

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

佚名通过本文主要向大家介绍了vb ole控件使用,ole控件,pb ole控件,vb ole控件,vb中ole控件等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 如何将OLE控件的对象传入到组件中去,请大家指教
描述:

在实践中碰到一些问题,弄了好久也无法解决,特向大家咨询:
  我的程序(vc)中使用了一个用vb开发的组件,这个组件里面用到了一个三维控件(OLE控件),它以变量的形式出现
在组件中. 现在我在vc中使用这个组件,组件初始化的时候,需要设置这个控件的变量,组件提供的设置该变量的方
法是
SetVRscene(IDispatch** arg),
 我在外面的程序使用了这个控件一个对象CVrscene m_Vrscene(Ole控件,派生自CWnd),这个控件用于三维显示用,
我怎么才能将它传递到组件里面去,作为组件的变量啊?我使用了强制转换,结果不成功,我又得到控件的IUNKONW指
针,然后通过这个指针查询到IVrscene接口指针.然后将这个指针强制转换为IDispatch* 然后传入,也不行.
清大家帮我解答下疑难,
不胜感激,谢谢!


解决方案1:

因为你是用MFC的CWnd类包装了该控件.是不能直接转换的
//
因为该控制的实际对象是由CWnd::m_pCtrlSite创建的.
通常情况下是保存在COleCtrlSite::m_pObject中的.
///////////////////////////////////////////////////////
所以你要访问该接口必须先查m_pCtrlSite->m_pObject.有效否.
再m_pObject->QueryInterface( IID_IDispatch, (void**)&ppOut );// 或IUnknown的接口
//查询代码应该放在这个包装类中,比如,增加一个QueryInterface.
//
HRESULT  YourCtrl::QueryInterface( const IID& riid, void** ppOut )
{
      if( ppOut == NULL ) return E_INVALIDARG;
      if( m_pCtrlSite == NULL ) return *ppOut = 0, E_NOINTERFACE;
      if( m_pCtrlSite->m_pObject == NULL) return *ppOut = 0, E_NOINTERFACE;
      return m_pCtrlSite->m_pObject->QueryInterface( riid, ppOut );
} 
//////////////////////////////////////////////////////
使用大概可以这样
CComPtr< Ixxxxx > spXXX;
HRESULT hr = YourCtrl.QueryInterface( IID_IDispatch, (void**)&spXXX );
if( FAILED( hr) || spXXX == NULL ) return ; // Error
vbCtrl.SetVRscene((IDispatch**)&spXXX );


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

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

  • com中怎么使用OLE控件?
  • 如何在vc中使用ole
  • mfc中,如何使用ole控件啊?
  • 怎样可以创建不可选中的ole控件
  • 如何用VC作有关图形的OLE控件
  • 如何将OLE控件的对象传入到组件中去,请大家指教
  • 怎么获取内嵌OLE控件中的数据?
  • OLE控件如何与WORD交互(MFC程序)
  • 做一OCX控件,完成类似VB的OLE控件的功能。
  • 如何在程序中移动一个OLE控件啊

相关文章

  • 2017-06-04 C#调用C++COM接口出现“尝试读取或写入受保护的内存这通常指示其他内存已损坏"错误
  • 2017-06-05 ===800分。求此问题解答。谢谢各位。。===
  • 2017-06-04 acitvex控件在ie中的刷新问题
  • 2017-06-05 一直对回调函数的概念很模糊,请明白人指点迷津。。。。
  • 2017-06-04 那里有简单的字符串加密和解密C/C++程序参考
  • 2017-06-05 怎样在启动一个程序的时候先启动自己的一个程序,然后才允许该程序启动就你有的病毒感染一样?
  • 2017-06-04 在控件属性页中,如何得到控件的指针
  • 2017-06-05 如何控制按钮的部分事件?
  • 2017-06-05 vbnet如何开发ActivX控件,最好有代码
  • 2017-06-05 请问一个vc中使用clr出现的问题?

文章分类

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

最近更新的内容

    • 请问如何把宏语言转为VC的实现?
    • pjf基于活动进程链的Win2000下进程隐藏--如何修改在XP。
    • VisiBrokerforC++不支持VC咋办?
    • 一个关于线程的非常细微的问题,我有点糊涂了,进来看看吧:)
    • EXE退出问题
    • 在线程外面终止线程的问题
    • VC中xml遍历
    • 关于获取网页按钮状态
    • debug下正确,release下出错,AfxBeginThread函数传递参数的问题
    • 欢迎大家下载我的软件,下载者有分

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

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