⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mdaggregate.pas

📁 Delphi7从入门到精通及附书源码 Delphi7从入门到精通及附书源码
💻 PAS
字号:
unit MdAggregate;

interface

type
  TMdAggregatedObject = class
  private
    FController: Pointer;
    function GetController: IInterface;
  protected
    { IInterface }
    function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
    function _AddRef: Integer; stdcall;
    function _Release: Integer; stdcall;
  public
    constructor Create(Controller: IInterface);
    property Controller: IInterface read GetController;
  end;

implementation

function TMdAggregatedObject._AddRef: Integer;
begin
  Result := IInterface(FController)._AddRef;
end;

function TMdAggregatedObject._Release: Integer;
begin
  Result := IInterface(FController)._Release;
end;

constructor TMdAggregatedObject.Create(Controller: IInterface);
begin
  FController := Pointer(Controller);
end;

function TMdAggregatedObject.GetController: IInterface;
begin
  Result := IInterface(FController);
end;

function TMdAggregatedObject.QueryInterface(const IID: TGUID;
  out Obj): HResult;
begin
  Result := IUnknown(FController).QueryInterface(IID, Obj);
end;

end.
 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -