Zitat:
Habe leider auch nicht wirklich Ahnung, wie BSTR* definiert ist (die wäre wichtig),
Hat mich jetzt auch interessiert, was ich
hier finde ist allerdings gruselig
Also BSTR ist WideString auf Delphi Seite.
Delphi-Quellcode:
function GetName(
index: UINT): WideString;
stdcall;
function Test(
url: PWideChar; explicitly: BOOL;
out canonical_url: WideString): HRESULT;
stdcall;
Mhh, schwer zu sagen, was hier stimmt. Ich hatte ein paar Posts zuvor eine andere Definition gefunden. Das
WideString
kommt mir allerdings sehr komisch vor, da dies ein Delphi Typ mit Ref-Counter und allem drum und dran ist.
So oder so ist der Output Zeiger ja
nil
. Entsprechend der Dokumentation der Funktion ist das ja in Ordnung, falls
S_FALSE
zurückgeliefert wird. Jetzt kommt der Knackpunkt:
Zitat von
MSDN:
The constants S_OK and S_FALSE are both success codes
Entsprechend liefert das
SUCCEEDED()
Makro jeweils
true
zurück. Hier müsstest du also nachher noch explizit auf
S_OK
oder
S_FALSE
testen.