Gib mal bitte den Link zu dem Beitrag den du meinst. Ich habe 25 Beiträge pro Seite aktiviert, du vermutlich nicht?!
So, ansonsten war ich nochmal mit dem Debugger zugange. Wenn ich statt 185 die 191 (die
Unicode-Variante) aufrufe, bekomme ich stattdessen den Fehler 1400. Der Check nach dem Wert in besagtem Registrykey verläuft okay. Es wird also erkannt, daß er nicht existierte. Problem ist nun, daß die Funktionen nur als Ordinal exportiert werden, denn so fehlen wichtige Informationen über jene APIs, die von unserer Funktion aufgerufen werden. Der Einfachheit halber habe ich meinen Code auf statische Einbinden der Funktion getrimmt:
Delphi-Quellcode:
program Project1;
{$APPTYPE CONSOLE}
uses
CommCtrl,
Windows;
function SHMessageBoxCheckW(hWnd: THandle; Text: PWideChar; Title: PWideChar;
dwType: DWORD; Default: Integer; RegVal: PChar): Integer; stdcall; external 'shlwapi.dll' index 191;
function GetShellWindow():HWND; stdcall; external 'user32.dll';
begin
InitCommonControls();
SetLastError(ERROR_SUCCESS);
SHMessageBoxCheckW(GetShellWindow(), 'Dies ist nur ein Testtext.',
'Und dies ist der Titel', MB_OK or MB_ICONINFORMATION, IDNO,
'2A622957-D0A5-41CA-8571-898247531A2C');
Writeln(GetLastError());
Readln;
end.
Ich versuche mir noch die PDB zu besorgen, damit ich vielleicht doch noch weiterhelfen kann.