In
COM sollten Funktionen immer ein HResult zurückgeben. Strings oder so gibt man als Rückgabeparameter zurück.
Zitat aus Andreas Kosch
COM-Buch:
Delphi-Quellcode:
function GetInfo(out RetVal: WideString):HResult; stdcall;
begin
try
RetVal := 'Der Text des COM_Objects';
Result := S_OK;
except
Result := E_UNEXPECTED;
end;
end;
Edit: Um zu diesem Ergebnis zu kommen reicht es auch, wenn Du Deine Deklaration nicht mit stdcall sondern mit safecall deklarierst.
function GetLastErrorMessage: WideString; safecall;
Sherlock