Supports - C++ Builder

C++ Builder 参考手册 ➙ System::Sysutils ➙ Supports


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

头文件:#include
命名空间: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 而在函数结束时被销毁。

相关:

  • System::Sysutils::CreateGUID
  • System::Sysutils::GUIDToString
  • System::Sysutils::StringToGUID
  • System::Sysutils
  • System::Variants::VarSupports
  • System::Variants
  • System::Classes::TComponent
  • System::Classes
  • System::_di_IInterface
  • System

C++ Builder 参考手册 ➙ System::Sysutils ➙ Supports

你可能感兴趣的:(Supports - C++ Builder)