Moin Mathias,
lass Dir doch mal bei nicht Erscheinen (if not Get...) den CommDlgExtendedError mal anzeigen.
Ich bin nämlich gestern noch unter
W2K darüber gestolpert, dass mir ein simples Beispiel immer den Fehler 3002 (ungültiger Dateiname) brachte statt den Dialog aufzurufen. Da der übergebene Dateiname einfach ein leerer Buffer war, konnte das nur nicht so ganz angehen.
Als ich dann mal im Single Step da durchgegangen bin, um mir die Werte der Struktur anzusehen, wurde der Dialog aufgerufen
Als nächstes habe ich dann einfach mal versucht die Funktion dynamisch zu importieren und nicht statisch: Gleicher Fehler.
Als ich dann statt der
ANSI Version die
UNICODE Version benutzt habe gings (dann müssen natürlich auch die PChar in der Struktur angepasst werden).
Das einzige was an Test noch aussteht:
Bei der
ANSI Version hatte ich den Filenamebuffer auf MAX_PATH initialisiert. Ich werd's nochmal mit MAX_PATH+1 versuchen.
Fazit:
Ich werde wohl die Funktionen dynamisch importieren müssen, und dann, abhängig vom
OS die
ANSI (9x/ME) oder die
UNICODE (NTff) Variante verwenden müssen.
Ob der Fehler auch bei den "normalen" Dateidialogen auftritt weiss ich noch nicht, aber um die Kompo nicht unnötig aufwändig zu machen (bislang eine Basiskompo für alle vier Dialoge) werde ich die Änderung beim Aufruf auch bei diesen machen.
BTW:
Ich hatte über das CPU Fenster schon mal nachgeschaut, von wo der Dialog gestartet wird: Es war die msvfw32.dll.
Aber ich werd's nochmal genauer verfolgen.
Ausserdem habe ich auch schon Screenshots eines New Style Preview Dialoges im Internet gefunden. Wenn die nicht gefakt waren, müsste es wohl doch irgendwie gehen.