首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用实现多个接口的coclass

使用实现多个接口的coclass
EN

Stack Overflow用户
提问于 2012-07-11 02:11:41
回答 1查看 1K关注 0票数 1

我正在编写一个C++/CLI应用程序,它使用了一个COM dll,它提供了许多类。它们中的大多数实现了许多接口。我想知道如何访问每个不同接口的方法。例如,当我查看类型库时,其中一个类被定义为:

代码语言:javascript
复制
coclass FWFile {
    [default] interface IFWFile;
    interface _IFWFileInternal;
    [default, source] interface _FWFileEvents;
    interface CStatistics;
    interface IFWFile2;
    interface IFWFile3;
    interface IFWFile4;
};

当我创建这种类型的对象时,它似乎实现了IFWFile接口。但是,我想使用IFWFile2中的方法。我可以简单地创建一个IFWFile2类型的对象并转换它吗?

代码语言:javascript
复制
IFWFile2 file2 = (IFWFile2)file1;
EN

回答 1

Stack Overflow用户

发布于 2012-07-11 08:18:06

在使用CoCreateInstance()时,可以指定从新创建的对象中检索哪个接口。如果需要多个接口--在调用CoCreateInstance()时检索一个接口,并使用QueryInterface()检索其他接口。不要忘记为每个成功的接口检索都调用了Release()

只是不要用C样式转换COM指针--接口不能按照类型库中指定的顺序进行,而且实际的类也不能保证实际实现接口。始终使用QueryInterface()从COM对象检索接口指针。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11424607

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档