• 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 > 菜鸟问题:为什么接口也能CoCreateInstance?

菜鸟问题:为什么接口也能CoCreateInstance?

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

佚名通过本文主要向大家介绍了cocreateinstance,cocreateinstance失败,cocreateinstanceex,c cocreateinstance,cocreateinstance函数等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 菜鸟问题:为什么接口也能CoCreateInstance?
描述:

有微软的源码:
hr = CoCreateInstance(CLSID_MyPortManager,
                      NULL,
                      CLSCTX_INPROC_SERVER,
                      IID_IRTCPortManager,
                      reinterpret_cast<void **> (&pPortManager));
其中 pPortManager 是接口:
定义如下:
EXTERN_C const IID IID_IRTCPortManager;
#if defined(__cplusplus) && !defined(CINTERFACE)
    
    MIDL_INTERFACE("DA77C14B-6208-43ca-8DDF-5B60A0A69FAC")
    IRTCPortManager : public IUnknown
    {
    public:
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE GetMapping( 
            /* [in] */ BSTR bstrRemoteAddress,
            /* [in] */ RTC_PORT_TYPE enPortType,
            /* [out][in] */ BSTR *pbstrInternalLocalAddress,
            /* [out][in] */ long *plInternalLocalPort,
            /* [out][in] */ BSTR *pbstrExternalLocalAddress,
            /* [out][in] */ long *plExternalLocalPort) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE UpdateRemoteAddress( 
            /* [in] */ BSTR bstrRemoteAddress,
            /* [in] */ BSTR bstrInternalLocalAddress,
            /* [in] */ long lInternalLocalPort,
            /* [in] */ BSTR bstrExternalLocalAddress,
            /* [in] */ long lExternalLocalPort) = 0;
        
        virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ReleaseMapping( 
            /* [in] */ BSTR bstrInternalLocalAddress,
            /* [in] */ long lInternalLocalPort,
            /* [in] */ BSTR bstrExternalLocalAddress,
            /* [in] */ long lExternalLocalAddress) = 0;
        
    };


解决方案1:

你知道什么叫CLSID?就是Class ID,IID就是Interface ID,你连这个都不懂,还是先去把COM学学好再说吧。

解决方案2:

这是获得接口啊。
CoCreateInstance函数的语意:
    首先利用参数“CLSID_MyPortManager”创建类厂对象(调用CoGetClassObject),再利用类厂对象的接口指针创建参数“IID_IRTCPortManager”指定的接口,并把接口指针保存到“pPortManager”中,再将类厂对象释放。此后你可以“pPortManager->SomeMethod()”来调用接口方法了。


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

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

  • CoCreateInstance和CoCreateInstanceEx的区别??
  • 抓狂!看了几天了,CoCreateInstance总是出错!!!!救命啊!
  • 请教CoCreateInstanceEx产生E_ACCESSDENIED的原因
  • CoCreateInstance的内部实现问题??
  • 在DEV-CPP中编译建立快捷方式代码出现incompatibletypeforargument1of`CoCreateInstance'
  • 用dll的COM除了cocreateinstance能不能就当普通DLL用loadlibrary调用。
  • CoCreateInstanceEx问题
  • CoCreateInstance调用成功,CoGetClassObject调用失败,为什么?
  • CoCreateInstance调用出错,帮看看!
  • CoCreateInstance的问题

相关文章

  • 2017-06-05 大家看看这个错误时什么原因
  • 2017-06-05 哪里有进程,线程,socket编程的相关资料??
  • 2017-06-04 请问如何让ActiveX控件包含多个控件
  • 2017-06-04 求IE工具条插件定制开发
  • 2017-06-04 自定义控件的问题,高分相送!
  • 2017-06-05 请教各位大虾!关于线程的简单问题!!!在线等!
  • 2017-06-04 returnError在vb下咋没反应?(ATL之ActiveX)
  • 2017-06-04 组件的函数能否返回ADO的RecordSet对象
  • 2017-06-05 怎样在写文件时在文件的最后一行开始写,而不是覆盖以前的内容?
  • 2017-06-04 远程访问WMI的权限问题

文章分类

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

最近更新的内容

    • 有没有人能写一个正确的Wookbook::SavaAs函数出来
    • 请问我在DLL中调用ADO如何调?
    • 寻找与服务程序通信的有效方法
    • 关于串行化问题
    • vfwh开发视频捕捉程序
    • 天啊!我要进步,可是没书!"ATLInternals"谁有啊???
    • atl有没有gcc的移植版本?
    • COM真是个深渊,复杂啊,,,还不知道学会之后,会不会过时??
    • DLL对话框问题,急急急!!!
    • ActiveX封装窗体问题??

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

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