Registriert seit: 18. Nov 2015
Ort: Kehl
678 Beiträge
Delphi 11 Alexandria
|
AW: Abstrakter Vorfahr + Interface gemeinsam
15. Dez 2021, 14:37
Etwas in die Richtung?
Delphi-Quellcode:
unit Unit24;
interface
type
Tabstract = class
protected
function getint : integer; virtual; abstract;
end;
IBaseInterface = Interface
[' {3803EF76-0C39-4992-AD91-B2F7F6EED72E}']
end;
Tconcret = class(Tabstract, IBaseInterface)
private
FRefCount: Integer;
protected
function getint: Integer; override;
public
function QueryInterface( const IID: TGUID; out Obj): HRESULT; stdcall;
function _AddRef: Integer; stdcall;
function _Release: Integer; stdcall;
end;
implementation
{ Tconcret }
function Tconcret.getint: Integer;
begin
result := 0;
end;
function Tconcret.QueryInterface( const IID: TGUID; out Obj): HRESULT;
begin
if GetInterface(IID, Obj) then
Result := 0
else
Result := E_NOINTERFACE;
end;
function Tconcret._AddRef: Integer;
begin
AtomicIncrement(FRefCount)
end;
function Tconcret._Release: Integer;
begin
Result := AtomicDecrement(FRefCount);
if Result = 0 then
begin
Destroy;
end;
end;
end.
Fritz Westermann
|
|
Zitat
|