mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-14 14:29:44 +02:00
* Make IInterface methods virtual, as in Delphi
This commit is contained in:
parent
7e4aca384f
commit
54b8de47f0
@ -682,7 +682,9 @@ type
|
|||||||
fImpls: array of TMethodImplementation;
|
fImpls: array of TMethodImplementation;
|
||||||
fVmt: PCodePointer;
|
fVmt: PCodePointer;
|
||||||
protected
|
protected
|
||||||
function QueryInterface(constref aIID: TGuid; out aObj): LongInt;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
|
function QueryInterface(constref aIID: TGuid; out aObj): LongInt;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF}; reintroduce; virtual;
|
||||||
|
function _AddRef : longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF}; reintroduce; virtual;
|
||||||
|
function _Release : longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF}; reintroduce; virtual;
|
||||||
|
|
||||||
procedure HandleUserCallback(aUserData: Pointer; const aArgs: TValueArray; out aResult: TValue);
|
procedure HandleUserCallback(aUserData: Pointer; const aArgs: TValueArray; out aResult: TValue);
|
||||||
public
|
public
|
||||||
@ -6128,6 +6130,16 @@ begin
|
|||||||
Result := inherited QueryInterface(aIID, aObj);
|
Result := inherited QueryInterface(aIID, aObj);
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
function TVirtualInterface._AddRef : longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
|
||||||
|
begin
|
||||||
|
Result:=Inherited _AddRef;
|
||||||
|
end;
|
||||||
|
|
||||||
|
function TVirtualInterface._Release : longint;{$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};
|
||||||
|
begin
|
||||||
|
Result:=Inherited _Release;
|
||||||
|
end;
|
||||||
|
|
||||||
procedure TVirtualInterface.HandleUserCallback(aUserData: Pointer; const aArgs: TValueArray; out aResult: TValue);
|
procedure TVirtualInterface.HandleUserCallback(aUserData: Pointer; const aArgs: TValueArray; out aResult: TValue);
|
||||||
begin
|
begin
|
||||||
{$IFDEF DEBUG_VIRTINTF}Writeln('Call for ', TRttiMethod(aUserData).Name);{$ENDIF}
|
{$IFDEF DEBUG_VIRTINTF}Writeln('Call for ', TRttiMethod(aUserData).Name);{$ENDIF}
|
||||||
|
Loading…
Reference in New Issue
Block a user