对com接口的访问

4 篇文章 0 订阅
1 篇文章 0 订阅

对com接口的访问

com API中最重要的一个函数是CoCreateInstance,该函数是客户应用程序在创建组建实例的时使用的。
函数基本模型如下:
HRESULT _stdcall CoCreateInstance(REFCLSID rclsid,
LPUNKNOWN pUnkOuter,
DWORD dwClsContext,
REFIID riid,
LPVOID * ppv);

参数释义:第一个待创建组建的CLSID
(CLSID是指windows系统对于不同的应用程序,文件类型,OLE对象,特殊文件夹以及各种系统组件分配一个唯一表示它的ID代码,用于对其身份的标示和与其他对象进行区分。一般长这样“”
先得说下GUID,它是Globally Unique Identifier的简称,中文翻译为“全局唯一标示符”,在Windows系统中也称之为Class ID,缩写为CLSID。)
第二个参数:指向接口IUnknown的指针,一般可缺省,为null
第三个:执行组件的上下文。
第四个:创建的Com对象的接口标识符
第五个:接受com组件的实例指针(输出)

com要求在改变一个已有的接口时必须实现一个新的接口,例如
已经存在com组件:IComInterface,该方法中只有func1的接口方法(IUnKnown暂且不管)
class IComInterface
{
public:
virtual void Func1();
}
要改变IComInterface 必须继承他重新写IComInterfaceEx
class IComInterfaceEx : public IComInterface
{
public:
virtual void Func2();
}

IComInterfaceEx 添加了接口Func2.

新街口是从旧接口派生出来的,它相对于旧接口添加了新方法。这样的好处是可以在不打乱任何使用旧代码的前提下,发布一个新版本的组件。新客户可以使用新的IComInterfaceEx接口掌握旧的功能和新的功能。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值