Schonmal auf die vollkommen abwägige Idee gekommen, die
API zu fragen, was sie hat, also dir Rückgaben zu prüfen?
GetLastError, also so, wie es auch in der Dokumentation dieser APIs beschrieben wird.

oder
SysErrorMessage(GetLastError)
Delphi-Quellcode:
if hUrl = 0 then
RaiseLastOSError; // oder RaiseLastWin32Error, falls FreePascal das Andere nicht kennt
Und natürlich auch für hOpen.
Ein Therapeut entspricht 1024 Gigapeut.