MdAggregate.pas
上传用户:fh681027
上传日期:2022-07-23
资源大小:1959k
文件大小:1k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit MdAggregate;
  2. interface
  3. type
  4.   TMdAggregatedObject = class
  5.   private
  6.     FController: Pointer;
  7.     function GetController: IInterface;
  8.   protected
  9.     { IInterface }
  10.     function QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
  11.     function _AddRef: Integer; stdcall;
  12.     function _Release: Integer; stdcall;
  13.   public
  14.     constructor Create(Controller: IInterface);
  15.     property Controller: IInterface read GetController;
  16.   end;
  17. implementation
  18. function TMdAggregatedObject._AddRef: Integer;
  19. begin
  20.   Result := IInterface(FController)._AddRef;
  21. end;
  22. function TMdAggregatedObject._Release: Integer;
  23. begin
  24.   Result := IInterface(FController)._Release;
  25. end;
  26. constructor TMdAggregatedObject.Create(Controller: IInterface);
  27. begin
  28.   FController := Pointer(Controller);
  29. end;
  30. function TMdAggregatedObject.GetController: IInterface;
  31. begin
  32.   Result := IInterface(FController);
  33. end;
  34. function TMdAggregatedObject.QueryInterface(const IID: TGUID;
  35.   out Obj): HResult;
  36. begin
  37.   Result := IUnknown(FController).QueryInterface(IID, Obj);
  38. end;
  39. end.
  40.