Einzelnen Beitrag anzeigen

Mephistopheles
(Gast)

n/a Beiträge
 
#46

Re: Wo ist oder wie heißt die Funktion: SHMessageBoxCheck?

  Alt 4. Mai 2005, 01:40
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.dllindex 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.
  Mit Zitat antworten Zitat