Zitat von
Mephistopheles:
Die Konventionen nach denen die
Win32-
API funktioniert.
Wir lesen alle die selbe Dokumentation, aber wir interpretieren sie unterschiedlich. SHLWAPI ist eine
DLL, die eng an den Internet-Explorer gebunden ist. Wer XP SP1 betreibt und nicht auf SP2 upgraden will, der kann immer noch seinen IE auf die aktuelle Version heben. Das erhöht die Systemsicherheit und wer weiß, vielleicht wird ja dann auch der Dialog korrekt angezeigt.
Vielleicht ist ja unter SP1 ein Bug in der Implementierung? Der dürfte dann nur den wenigsten aufgefallen sein, da die
DLL fast ausschließlich von IE, Outlook und Frontpage verwendet wird. Irgendwann wird jemand mit Disassembler oder ICE die Fehlerstelle lokalisieren - und dann stellt sich das ganze als Vergangenheitsbewältigung heraus, da MS mittlerweile auf SP2 setzt. Das ist der Grund warum ich den Verdacht geäussert habe, es handele sich um einen Hacker-Wettstreit.
Zu meinen Versuchen: auch auf meiner Maschine (XP SP2, alle Patches) liefert GetLastError den Code 1400, mit allen
DLL Versionen - 6.0.2800.1106 bis 6.0.2900.2627 - und das obwohl der Dialog spezifikationsgemäß arbeitet. Den Fehlercode kann ich also vor dem Hintergrund meiner Tests nicht als Hinweis darauf verstehen, dass der Dialog bei XP1 nicht funktioniert.
Er ist für mich lediglich ein Hinweis darauf, dass MS bei einem der internen Aufrufe geschludert hat. Würde GetLastError SUCCESS melden, so darf daraus ja auch nicht geschlossen werden, dass in der Folge der intern verwendeten
API calls jeder einzelne erfolgreich war. Wenn ich in meinen Programmen nach einer lokalen Steuerdatei suche und bei deren Fehlen dann doch die globale verwende, dann ist auch ein Fehler aufgetreten, der aber nach außen hin nicht als solcher in Erscheinung tritt.
Zitat von
Mephistopheles:
Ich weiß zumindest mit Bestimmtheit, daß der Fehler während des Aufrufes auftrat. Nicht zwangsläufig innerhalb dieser Funktion - ggf. auch in einer Unterfunktion, die von der fraglichen Funktion aufgerufen wird. Das steht außer Frage.
Niemand bestreitet das.
Zitat von
Mephistopheles:
Damit du dich hier nicht veräppelt fühlst, hänge ich auch noch einen Screenshot ran (dort kannst du die Version von XP sehen, die Konsolenausgabe und die Zeit). Ich kann mir schon vorstellen, daß es dir genauso unglaublich erscheint wie uns anderen auch.
Ich hätte dir auch so geglaubt.
Noch eine Idee: Hast du es schon mal mit dem Application Profiler probiert? Der angehängte Trace ist mit SHLWAPI Version 6.0.2800.1106 gemacht. Da passiert wirklich nichts Weltbewegendes bei Aufruf der vermaledeiten SHMessageBoxCheck().
marabu
Funktionsbezeichner korrigiert