美文网首页
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