Du könntest anstatt PWideChar einfach WideString schreiben. Dann kann der Compiler seine Compiler-Magic richtig ausspielen. Das geht da WideString nichts anderes als ein PWideChar ist.
Der Compiler ruft bei PWideChar(MyWideString) folgende Funktion auf:
Delphi-Quellcode:
function _WStrToPWChar(const S: WideString): PWideChar;
const
EmptyString = '';
begin
if Pointer(S) = nil then
Result := EmptyString // nur wenn WideString = '' => Pointer(S) = nil => liefere #0
else
Result := Pointer(S);
end;