Vielen Dank, Super, das ist es !!!!!!
Für den Fall, dass noch irgendjemand dieses Problem haben sollte,
folgt nun die
1:1 Umsetzung des Tips :
in unit
zclasses müssen 2 Zeilen überschrieben werden :
Code: Alles auswählen
TContainedObject = class(TAggregatedObject, IInterface)
protected
function QueryInterface(constref IID: TGUID; out Obj): HResult; virtual; {$IFNDEF WINDOWS}cdecl{$ELSE}stdcall{$ENDIF};//<-- New
// old: function QueryInterface(const IID: TGUID; out Obj): HResult; virtual; stdcall;
end;
Code: Alles auswählen
function TContainedObject.QueryInterface(constref IID: TGUID; out Obj): HResult;//<--- New
// Old.: function TContainedObject.QueryInterface(const IID: TGUID; out Obj): HResult;
begin
if GetInterface(IID, Obj) then
Result := S_OK
if Value <> nil then
begin
Result := (IZInterface(Self) = Value)
or ((Self as IZInterface) = (Value as IZInterface));
end else
Result := False;
end;
Auch wenn es für die meisten sofort offensichtlich ist :
Vielleicht hilft es ja irgendjemandem, der den Tip nicht auf Anhieb umsetzen kann....