Einzelnen Beitrag anzeigen

Assarbad
(Gast)

n/a Beiträge
 
#11

Re: C++ --> Delphi übersetzen

  Alt 16. Jan 2005, 18:58
Zitat von toms:
Code:
IHTMLDocument2 *lpHtmlDocument
Habe noch nicht soviel mit Interfaces in Delphi gearbeitet. IMO ist der Typ IHTMLDocument2 aber schon ein Pointer. Die C++-Syntax sagt nix weiter als daß lpHtmlDocument ein Pointer auf den Typ IHTMLDocument2 ist.

Zitat von toms:
Code:
if(!lpHtmlDocument)
    return;
so ?
Delphi-Quellcode:
 
if lpHtmlDocument = nil then
   Exit;
Ja!

Zitat von toms:
Code:
IUnknown *lpUnk;
IEnumVARIANT *lpNewEnum;
Siehe 1.)

Zitat von toms:
Code:
((IDispatch*)frame).QueryInterface(IID_IHTMLWindow2, (void**)&elem);
Hier wurde vom Autor offenbar die besch***en lesbare alte C-Casting-Syntax genommen. Die neue C++-Syntax entspricht in etwa der von Delphi, außer daß man Typen auch inline deklarieren kann (dann müssen sie wie hier in Klammern stehen). Lies es so:

Code:
(IDispatch*)(frame).QueryInterface(IID_IHTMLWindow2, (void**)(&elem));
Es ist nur der Typecast von "frame" nach "Pointer auf IDispatch" um dann direkt die Methode von IDispatch QueryInterface() aufzurufen und das IHTMLWindow2-Interface in "elem" zu bekommen.

Code:
(void**)(&elem)
wäre in Delphi wohl ungefähr:
var elem:Pointer
  Mit Zitat antworten Zitat