Supports - C++ Builder
2022-05-08 本文已影响0人
玄坴
C++ Builder 参考手册 ➙ System::Sysutils ➙ Supports
判断组件是否支持某个接口,如果支持,返回这个接口指针
头文件:#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 而在函数结束时被销毁。
相关:
- 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