* Add TNoRefCountObject (delphi compatibility)

This commit is contained in:
Michaël Van Canneyt 2023-06-05 10:22:52 +02:00
parent d24eeffa2b
commit b8738944ed
2 changed files with 35 additions and 0 deletions

View File

@ -1165,6 +1165,33 @@
result:=longint(E_NOINTERFACE);
end;
{****************************************************************************
TNoRefCountObject
****************************************************************************}
function TNoRefCountObject.QueryInterface( {$IFDEF FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} iid : tguid;out obj) : longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
begin
if getinterface(iid,obj) then
result:=S_OK
else
result:=longint(E_NOINTERFACE);
end;
function TNoRefCountObject._AddRef : longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
begin
Result:=-1;
end;
function TNoRefCountObject._Release : longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
begin
Result:=-1;
end;
{****************************************************************************
TCustomAttribute
****************************************************************************}

View File

@ -334,6 +334,14 @@
function QueryInterface({$IFDEF FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} iid : tguid;out obj) : longint;virtual; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
end;
TNoRefCountObject = class(TObject, IInterface)
protected
function QueryInterface({$IFDEF FPC_HAS_CONSTREF}constref{$ELSE}const{$ENDIF} iid : tguid;out obj) : longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
function _AddRef : longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
function _Release : longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
end;
{ some pointer definitions }
PUnknown = ^IUnknown;
PPUnknown = ^PUnknown;