Zitat von
Mephistopheles:
Und so amateurhaft bin ich nun auch wieder nicht, daß ich nicht vorher SetLastError(ERROR_SUCCESS) setzen würde. Der Rückgabewert ist also irrelevant, weil der Fehler während des Aufrufs passiert sein muß.
Diese Implikation ist falsch, die Regeln sind laut
API Dokumentation nunmal anders. Wer garantiert dir, dass LastError nach deiner Initialisierung nur dann verändert wird, wenn ein Fehler auftritt?
Sagst du mir bitte was folgendes Code-Fragment ausgibt, wenn du es in deinem Konsolprojekt ausführst?
Delphi-Quellcode:
var
id: integer;
begin
id := SHMessageBoxCheckW(0, 'Dies ist nur ein Testtext.',
'Und dies ist der Titel', MB_OK or MB_ICONINFORMATION, IDNO,
'2A622957-D0A5-41CA-8571-898247531A2C');
if id = -1
then Writeln('LastError = ', GetLastError())
else WriteLn('ID = ', id);
Readln;
end;
marabu