Das tue ich doch.
hr := SupportedSites.Test(PWideChar(MediaFile), false, url);
Nee, du prüfst aber doch das
hr
dann mit dem
SUCCEEDED()
Makro. Das Problem ist, dass sowohl
S_OK
, als auch
S_FALSE
keinen Fehler indizieren, weshalb du immer
true
erhälst. Du musst nach dem
SUCCEEDED()
Check nochmal genau prüfen, also:
Delphi-Quellcode:
if SUCCEEDED(hr) then
begin
if (hr = S_OK) then
// String sollte etwas beinhalten
else if (hr = S_FALSE) then
// String sollte nil sein
else
// nicht dokumentiert
end;
Die frage die da noch wäre ist das nun eine Procedure oder eine Funktion!
Code:
STDMETHOD(Test)(__in LPCWSTR
url, __in BOOL explicitly, __out_opt BSTR* canonical_url) = 0;
...
Ich habe es als Function ausgelegt da ich nicht weis wie ich sonst auf S_OK hin testen soll.
Das ist auch korrekt so, da
STDMETHOD
definiert ist als
#define STDMETHOD(method) virtual HRESULT STDMETHODCALLTYPE method
, also als Funktion mit
HRESULT
als Rückgabewert (nicht zu verwechseln mit
STDMETHOD_
).