美文网首页
Supports - C++ Builder

Supports - C++ Builder

作者: 玄坴 | 来源:发表于2022-05-08 13:39 被阅读0次

C++ Builder 参考手册System::SysutilsSupports


判断组件是否支持某个接口,如果支持,返回这个接口指针

头文件:#include <System.SysUtils.hpp>
命名空间:System::Sysutils
函数原型:

bool __fastcall Supports(const System::_di_IInterface Instance, const GUID &IID, void *Intf);
bool __fastcall Supports(System::TObject *const Instance, const GUID &IID, void *Intf);
bool __fastcall Supports(const System::_di_IInterface Instance, const GUID &IID);
bool __fastcall Supports(System::TObject *const Instance, const GUID &IID);
bool __fastcall Supports(const System::TClass AClass, const GUID &IID);

参数:

  • Instance:组件或接口;
  • IID:接口的 GUID;
  • Intf:返回接口指针;

返回值:

  • 参数 Instance 组件或接口是否支持参数 IID 指定的接口,true:支持,false:不支持,
    函数通过参数 Intf 返回接口指针 (如果有这个参数);
  • 函数内部通过 QueryInterface 实现;
  • 和直接调用 QueryInterface 不同的是,参数 Instance 允许为 nullptr,此时函数返回值为 false;
  • 由于这个函数运行的时候,会把 Instance 的引用计数加 1,运行结束时引用计数减 1,如果引用计数等于 0 会销毁 Instance,参数 Instance 是 System::TObject * 类型版本的函数由于函数执行之前,Instance 的初始时引用计数为 0 而在函数结束时被销毁。

相关:


C++ Builder 参考手册System::SysutilsSupports

相关文章

网友评论

      本文标题:Supports - C++ Builder

      本文链接:https://www.haomeiwen.com/subject/edidahtx.html