Zitat von
Mavarik:
Also drei Mal QueryInterface mit unterschiedlichen Auswirkungen...
Naja, nicht ganz.
Wolltest du es vielleicht so?
Delphi-Quellcode:
// ungetestet
function TForm1.QueryInterface(const IID: TGUID; out Obj): HResult; stdcall;
begin
Result := S_OK;
if IsEqualGUID(IID, IID_IElementBehaviorFactory) then
IInterface(Obj) := self as IElementBehaviorFactory else
if IsEqualGUID(IID, IID_IElementBehavior) then
IInterface(Obj) := self as IElementBehavior else
if IsEqualGUID(IID, IID_IHTMLPainter) then
IInterface(Obj) := self as IHTMLPainter else
Result := inherited QueryInterface(IID, Obj);
end;
marabu