OPENFILENAMEA-Struktur (commdlg.h)
[Ab Windows Vista wurden die allgemeinen Dialogfelder Öffnen und Speichern unter durch das Dialogfeld "Gemeinsame Elemente" ersetzt. Es wird empfohlen, anstelle dieser Dialogfelder aus der Common Dialog Box Library die API für allgemeine Elemente zu verwenden.]
Enthält Informationen, die die Funktionen GetOpenFileName und GetSaveFileName verwenden, um ein Dialogfeld Öffnen oder Speichern unter zu initialisieren. Nachdem der Benutzer das Dialogfeld geschlossen hat, gibt das System Informationen zur Auswahl des Benutzers in dieser Struktur zurück.
Syntax
typedef struct tagOFNA {
DWORD lStructSize;
HWND hwndOwner;
HINSTANCE hInstance;
LPCSTR lpstrFilter;
LPSTR lpstrCustomFilter;
DWORD nMaxCustFilter;
DWORD nFilterIndex;
LPSTR lpstrFile;
DWORD nMaxFile;
LPSTR lpstrFileTitle;
DWORD nMaxFileTitle;
LPCSTR lpstrInitialDir;
LPCSTR lpstrTitle;
DWORD Flags;
WORD nFileOffset;
WORD nFileExtension;
LPCSTR lpstrDefExt;
LPARAM lCustData;
LPOFNHOOKPROC lpfnHook;
LPCSTR lpTemplateName;
LPEDITMENU lpEditInfo;
LPCSTR lpstrPrompt;
void *pvReserved;
DWORD dwReserved;
DWORD FlagsEx;
} OPENFILENAMEA, *LPOPENFILENAMEA;
Member
lStructSize
Art: DWORD
Die Länge der Struktur in Bytes.
Verwenden Sie sizeof (OPENFILENAME)
für diesen Parameter.
hwndOwner
Typ: HWND
Ein Handle für das Fenster, das das Dialogfeld besitzt. Bei diesem Member kann es sich um ein beliebiges gültiges Fensterhandle handeln, oder es kann NULL sein, wenn das Dialogfeld keinen Besitzer hat.
hInstance
Typ: HINSTANCE
Wenn das flag OFN_ENABLETEMPLATEHANDLE im Flags-Element festgelegt ist, ist hInstance ein Handle für ein Speicherobjekt, das eine Dialogfeldvorlage enthält. Wenn das flag OFN_ENABLETEMPLATE festgelegt ist, ist hInstance ein Handle für ein Modul, das eine Dialogfeldvorlage mit dem Namen des lpTemplateName-Elements enthält. Wenn keines der Flags festgelegt ist, wird dieses Element ignoriert. Wenn das flag OFN_EXPLORER festgelegt ist, verwendet das System die angegebene Vorlage, um ein Dialogfeld zu erstellen, das ein untergeordnetes Element des Standarddialogfelds Explorer ist. Wenn das flag OFN_EXPLORER nicht festgelegt ist, verwendet das System die Vorlage, um ein Dialogfeld im alten Stil zu erstellen, das das Standarddialogfeld ersetzt.
lpstrFilter
Typ: LPCTSTR
Ein Puffer, der Paare von NULL-beendeten Filterzeichenfolgen enthält. Die letzte Zeichenfolge im Puffer muss mit zwei NULL-Zeichen beendet werden.
Die erste Zeichenfolge in jedem Paar ist eine Anzeigezeichenfolge, die den Filter beschreibt (z. B. "Textdateien"), und die zweite Zeichenfolge gibt das Filtermuster an (z. B ".TXT"
. ). Um mehrere Filtermuster für eine einzelne Anzeigezeichenfolge anzugeben, verwenden Sie ein Semikolon, um die Muster zu trennen (z. B. "
.TXT;.DOC;. BAK"
). Eine Musterzeichenfolge kann eine Kombination aus gültigen Dateinamenzeichen und dem Sternchen (*) als Platzhalterzeichen sein. Schließen Sie keine Leerzeichen in die Musterzeichenfolge ein.
Das System ändert die Reihenfolge der Filter nicht. Sie werden im Kombinationsfeld Dateitypen in der in lpstrFilter angegebenen Reihenfolge angezeigt.
Wenn lpstrFilterNULL ist, werden im Dialogfeld keine Filter angezeigt.
Wenn bei einer Verknüpfung kein Filter festgelegt ist, rufen GetOpenFileName und GetSaveFileName den Namen der LNK-Datei und nicht ihr Ziel ab. Dieses Verhalten entspricht dem Festlegen des OFN_NODEREFERENCELINKS-Flags im Flags-Member . Um das Ziel einer Verknüpfung ohne Filterung abzurufen, verwenden Sie die Zeichenfolge "All Files\0*.*\0\0"
.
lpstrCustomFilter
Typ: LPTSTR
Ein statischer Puffer, der ein Paar von NULL-beendeten Filterzeichenfolgen enthält, um das vom Benutzer ausgewählte Filtermuster beizubehalten. Die erste Zeichenfolge ist Ihre Anzeigezeichenfolge, die den benutzerdefinierten Filter beschreibt, und die zweite Zeichenfolge ist das vom Benutzer ausgewählte Filtermuster. Wenn Ihre Anwendung das Dialogfeld zum ersten Mal erstellt, geben Sie die erste Zeichenfolge an, bei der es sich um eine beliebige nicht leere Zeichenfolge handeln kann. Wenn der Benutzer eine Datei auswählt, kopiert das Dialogfeld das aktuelle Filtermuster in die zweite Zeichenfolge. Das beibehaltene Filtermuster kann eines der im lpstrFilter-Puffer angegebenen Muster sein, oder es kann sich um ein vom Benutzer eingegebenes Filtermuster handeln. Das System verwendet die Zeichenfolgen, um den benutzerdefinierten Dateifilter beim nächsten Erstellen des Dialogfelds zu initialisieren. Wenn das nFilterIndex-Element null ist, verwendet das Dialogfeld den benutzerdefinierten Filter.
Wenn dieser Member NULL ist, behält das Dialogfeld keine benutzerdefinierten Filtermuster bei.
Wenn dieser Member nicht NULL ist, muss der Wert des nMaxCustFilter-Elements die Größe des lpstrCustomFilter-Puffers in Zeichen angeben.
nMaxCustFilter
Art: DWORD
Die Größe des durch lpstrCustomFilter identifizierten Puffers in Zeichen. Dieser Puffer sollte mindestens 40 Zeichen lang sein. Dieser Member wird ignoriert, wenn lpstrCustomFilterNULL ist oder auf eine NULL-Zeichenfolge zeigt.
nFilterIndex
Art: DWORD
Der Index des derzeit ausgewählten Filters im Steuerelement Dateitypen . Der Puffer, auf den lpstrFilter verweist, enthält Zeichenfolgenpaare, die die Filter definieren. Das erste Zeichenfolgenpaar hat den Indexwert 1, das zweite Paar 2 usw. Ein Index von null gibt den benutzerdefinierten Filter an, der von lpstrCustomFilter angegeben wird. Sie können einen Index für die Eingabe angeben, um die anfängliche Filterbeschreibung und das Filtermuster für das Dialogfeld anzugeben. Wenn der Benutzer eine Datei auswählt, gibt nFilterIndex den Index des aktuell angezeigten Filters zurück. Wenn nFilterIndex null und lpstrCustomFilternull ist, verwendet das System den ersten Filter im lpstrFilter-Puffer . Wenn alle drei Member null oder NULL sind, verwendet das System keine Filter und zeigt keine Dateien im Dateilistensteuerelement des Dialogfelds an.
lpstrFile
Typ: LPTSTR
Der Dateiname, der zum Initialisieren des Bearbeitungssteuerelements für Den Dateinamen verwendet wird. Das erste Zeichen dieses Puffers muss NULL sein, wenn keine Initialisierung erforderlich ist. Wenn die GetOpenFileName - oder GetSaveFileName-Funktion erfolgreich zurückgegeben wird, enthält dieser Puffer den Laufwerksentwurf, den Pfad, den Dateinamen und die Erweiterung der ausgewählten Datei.
Wenn das flag OFN_ALLOWMULTISELECT festgelegt ist und der Benutzer mehrere Dateien auswählt, enthält der Puffer das aktuelle Verzeichnis, gefolgt von den Dateinamen der ausgewählten Dateien. Bei Dialogfeldern im Explorer-Format sind die Verzeichnis- und Dateinamenzeichenfolgen NULL getrennt, wobei nach dem letzten Dateinamen ein zusätzliches NULL-Zeichen angegeben wird. Bei Dialogfeldern im alten Stil sind die Zeichenfolgen leergetrennt, und die Funktion verwendet kurze Dateinamen für Dateinamen mit Leerzeichen. Sie können die FindFirstFile-Funktion verwenden, um zwischen langen und kurzen Dateinamen zu konvertieren. Wenn der Benutzer nur eine Datei auswählt, verfügt die lpstrFile-Zeichenfolge nicht über ein Trennzeichen zwischen dem Pfad und dem Dateinamen.
Wenn der Puffer zu klein ist, gibt die Funktion FALSE zurück, und die CommDlgExtendedError-Funktion gibt FNERR_BUFFERTOOSMALL zurück. In diesem Fall enthalten die ersten beiden Bytes des lpstrFile-Puffers die erforderliche Größe in Bytes oder Zeichen.
nMaxFile
Art: DWORD
Die Größe des Puffers in Zeichen, auf den lpstrFile verweist. Der Puffer muss groß genug sein, um die Pfad- und Dateinamenzeichenfolgen zu speichern, einschließlich des abschließenden NULL-Zeichens . Die Funktionen GetOpenFileName und GetSaveFileName geben FALSE zurück, wenn der Puffer zu klein ist, um die Dateiinformationen zu enthalten. Der Puffer sollte mindestens 256 Zeichen lang sein.
lpstrFileTitle
Typ: LPTSTR
Der Dateiname und die Erweiterung (ohne Pfadinformationen) der ausgewählten Datei. Dieser Member kann NULL sein.
nMaxFileTitle
Art: DWORD
Die Größe des Puffers in Zeichen, auf den lpstrFileTitle verweist. Dieser Member wird ignoriert, wenn lpstrFileTitleNULL ist.
lpstrInitialDir
Typ: LPCTSTR
Das ursprüngliche Verzeichnis. Der Algorithmus zum Auswählen des Anfangsverzeichnisses variiert je nach Plattform.
Windows 7:
- Wenn lpstrInitialDir denselben Wert aufweist, der bei der erstmaligen Verwendung eines Dialogfelds Öffnen oder Speichern unter von der Anwendung übergeben wurde, wird der zuletzt vom Benutzer ausgewählte Pfad als Anfangsverzeichnis verwendet.
- Wenn lpstrFile andernfalls einen Pfad enthält, ist dieser Pfad das ursprüngliche Verzeichnis.
- Wenn lpstrInitialDir andernfalls nicht NULL ist, wird das anfangsverzeichnis angegeben.
- Wenn lpstrInitialDirNULL ist und das aktuelle Verzeichnis dateien der angegebenen Filtertypen enthält, ist das ausgangsverzeichnis das aktuelle Verzeichnis.
- Andernfalls ist das anfängliche Verzeichnis das Verzeichnis der persönlichen Dateien des aktuellen Benutzers.
- Andernfalls ist das anfängliche Verzeichnis der Desktopordner.
- Wenn lpstrFile einen Pfad enthält, ist dieser Pfad das ursprüngliche Verzeichnis.
- Andernfalls gibt lpstrInitialDir das Anfangsverzeichnis an.
- Wenn die Anwendung in der Vergangenheit ein Dialogfeld Öffnen oder Speichern unter verwendet hat, wird der zuletzt verwendete Pfad als Anfangsverzeichnis ausgewählt. Wenn eine Anwendung jedoch für längere Zeit nicht ausgeführt wird, wird der gespeicherte ausgewählte Pfad verworfen.
- Wenn lpstrInitialDirNULL ist und das aktuelle Verzeichnis dateien der angegebenen Filtertypen enthält, ist das ausgangsverzeichnis das aktuelle Verzeichnis.
- Andernfalls ist das anfängliche Verzeichnis das Verzeichnis der persönlichen Dateien des aktuellen Benutzers.
- Andernfalls ist das anfängliche Verzeichnis der Desktopordner.
lpstrTitle
Typ: LPCTSTR
Eine Zeichenfolge, die in der Titelleiste des Dialogfelds platziert werden soll. Wenn dieser Member NULL ist, verwendet das System den Standardtitel (d. a. Speichern unter oder Öffnen).
Flags
Art: DWORD
Eine Reihe von Bitflags, die Sie zum Initialisieren des Dialogfelds verwenden können. Wenn das Dialogfeld zurückgegeben wird, werden diese Flags festgelegt, um die Eingabe des Benutzers anzugeben. Dieser Member kann eine Kombination der folgenden Flags sein.
Wert | Bedeutung |
---|---|
|
Das Listenfeld Dateiname ermöglicht mehrere Auswahlmöglichkeiten. Wenn Sie auch das flag OFN_EXPLORER festlegen, verwendet das Dialogfeld die Benutzeroberfläche im Explorer-Stil. Andernfalls wird die Benutzeroberfläche im alten Stil verwendet.
Wenn der Benutzer mehrere Dateien auswählt, gibt der puffer lpstrFile den Pfad zum aktuellen Verzeichnis gefolgt von den Dateinamen der ausgewählten Dateien zurück. Das nFileOffset-Element ist der Offset in Bytes oder Zeichen zum ersten Dateinamen, und das nFileExtension-Element wird nicht verwendet. Bei Dialogfeldern im Explorer-Format sind die Verzeichnis- und Dateinamenzeichenfolgen NULL getrennt, wobei nach dem letzten Dateinamen ein zusätzliches NULL-Zeichen angegeben wird. Dieses Format ermöglicht es den Dialogfeldern im Explorer-Format, lange Dateinamen zurückzugeben, die Leerzeichen enthalten. Bei Dialogfeldern im alten Stil werden die Verzeichnis- und Dateinamenzeichenfolgen durch Leerzeichen getrennt, und die Funktion verwendet kurze Dateinamen für Dateinamen mit Leerzeichen. Sie können die FindFirstFile-Funktion verwenden, um zwischen langen und kurzen Dateinamen zu konvertieren. Wenn Sie eine benutzerdefinierte Vorlage für ein Dialogfeld im alten Stil angeben, muss die Definition des Listenfelds Dateiname den wert LBS_EXTENDEDSEL enthalten. |
|
Wenn der Benutzer eine Datei angibt, die nicht vorhanden ist, bewirkt dieses Flag, dass das Dialogfeld den Benutzer zur Berechtigung zum Erstellen der Datei auffordert. Wenn der Benutzer die Datei erstellt, wird das Dialogfeld geschlossen, und die Funktion gibt den angegebenen Namen zurück. Andernfalls bleibt das Dialogfeld geöffnet. Wenn Sie dieses Flag mit dem OFN_ALLOWMULTISELECT-Flag verwenden, kann der Benutzer im Dialogfeld nur eine nicht vorhandene Datei angeben. |
|
Verhindert, dass das System einen Link zur ausgewählten Datei im Dateisystemverzeichnis hinzufügt, das die zuletzt verwendeten Dokumente des Benutzers enthält. Um den Speicherort dieses Verzeichnisses abzurufen, rufen Sie die SHGetSpecialFolderLocation-Funktion mit dem flag CSIDL_RECENT auf. |
|
Aktiviert die hook-Funktion, die im lpfnHook-Element angegeben ist. |
|
Bewirkt, dass das Dialogfeld CDN_INCLUDEITEM Benachrichtigungen an Ihre OFNHookProc-Hookprozedur sendet, wenn der Benutzer einen Ordner öffnet. Das Dialogfeld sendet eine Benachrichtigung für jedes Element im neu geöffneten Ordner. Mit diesen Meldungen können Sie steuern, welche Elemente im Dialogfeld in der Elementliste des Ordners angezeigt werden. |
|
Ermöglicht, dass die Größe des Dialogfelds im Explorer-Format entweder mit der Maus oder der Tastatur geändert wird. Standardmäßig können die Dialogfelder im Explorer-Format öffnen und speichern unter die Größe des Dialogfelds ändern, unabhängig davon, ob dieses Flag festgelegt ist. Dieses Flag ist nur erforderlich, wenn Sie eine Hookprozedur oder eine benutzerdefinierte Vorlage bereitstellen. Das Dialogfeld im alten Stil lässt keine Größenänderung zu. |
|
Das lpTemplateName-Element ist ein Zeiger auf den Namen einer Dialogvorlagenressource in dem Modul, das durch das hInstance-Element identifiziert wird. Wenn das flag OFN_EXPLORER festgelegt ist, verwendet das System die angegebene Vorlage, um ein Dialogfeld zu erstellen, das ein untergeordnetes Element des Standarddialogfelds Explorer ist. Wenn das flag OFN_EXPLORER nicht festgelegt ist, verwendet das System die Vorlage, um ein Dialogfeld im alten Stil zu erstellen, das das Standarddialogfeld ersetzt. |
|
Das hInstance-Element identifiziert einen Datenblock, der eine vorab geladene Dialogfeldvorlage enthält. Das System ignoriert lpTemplateName , wenn dieses Flag angegeben ist. Wenn das flag OFN_EXPLORER festgelegt ist, verwendet das System die angegebene Vorlage, um ein Dialogfeld zu erstellen, das ein untergeordnetes Element des Standarddialogfelds Explorer ist. Wenn das flag OFN_EXPLORER nicht festgelegt ist, verwendet das System die Vorlage, um ein Dialogfeld im alten Stil zu erstellen, das das Standarddialogfeld ersetzt. |
|
Gibt an, dass alle Anpassungen, die am Dialogfeld Öffnen oder Speichern unter vorgenommen werden, die Anpassungsmethoden im Explorer-Stil verwenden. Weitere Informationen finden Sie unter Hookprozeduren im Explorer-Stil und benutzerdefinierte Vorlagen im Explorer-Format.
Standardmäßig verwenden die Dialogfelder Öffnen und Speichern unter die Benutzeroberfläche Explorer, unabhängig davon, ob dieses Flag festgelegt ist. Dieses Flag ist nur erforderlich, wenn Sie eine Hookprozedur oder eine benutzerdefinierte Vorlage bereitstellen oder das flag OFN_ALLOWMULTISELECT festlegen. Wenn Sie die Benutzeroberfläche im alten Stil verwenden möchten, lassen Sie das Flag OFN_EXPLORER aus, und stellen Sie eine Ersatzvorlage oder hook-Prozedur im alten Stil bereit. Wenn Sie den alten Stil möchten, aber keine benutzerdefinierte Vorlage oder Hookprozedur benötigen, geben Sie einfach eine Hookprozedur an, die immer FALSE zurückgibt. |
|
Der Benutzer hat eine Dateinamenerweiterung eingegeben, die sich von der durch lpstrDefExt angegebenen Erweiterung unterscheidet. Die Funktion verwendet dieses Flag nicht, wenn lpstrDefExtNULL ist. |
|
Der Benutzer kann nur Namen vorhandener Dateien in das Eingabefeld Dateiname eingeben. Wenn dieses Flag angegeben ist und der Benutzer einen ungültigen Namen eingibt, zeigt die Dialogfeldprozedur eine Warnung in einem Meldungsfeld an. Wenn dieses Flag angegeben ist, wird auch das flag OFN_PATHMUSTEXIST verwendet. Dieses Flag kann in einem Dialogfeld Öffnen verwendet werden. Sie kann nicht mit einem Dialogfeld Speichern unter verwendet werden. |
|
Erzwingt die Anzeige von System- und ausgeblendeten Dateien, wodurch die Benutzereinstellung überschrieben wird, um ausgeblendete Dateien anzuzeigen oder nicht anzuzeigen. Eine Datei, die sowohl systemseitig als auch ausgeblendet gekennzeichnet ist, wird jedoch nicht angezeigt. |
|
Blendet das Kontrollkästchen Schreibschutz aus. |
|
Bei Dialogfeldern im alten Stil bewirkt dieses Flag, dass das Dialogfeld lange Dateinamen verwendet. Wenn dieses Flag nicht angegeben ist oder wenn auch das OFN_ALLOWMULTISELECT-Flag festgelegt ist, verwenden Dialogfelder im alten Stil kurze Dateinamen (Format 8.3) für Dateinamen mit Leerzeichen. Explorer Dialogfelder ignorieren dieses Flag und zeigen immer lange Dateinamen an. |
|
Stellt den ursprünglichen Wert des aktuellen Verzeichnisses wieder her, wenn der Benutzer das Verzeichnis während der Suche nach Dateien geändert hat.
Dieses Flag ist für GetOpenFileName ineffektiv. |
|
Weist das Dialogfeld an, den Pfad und dateinamen der ausgewählten Verknüpfung (. LNK)-Datei. Wenn dieser Wert nicht angegeben wird, gibt das Dialogfeld den Pfad und dateinamen der Datei zurück, auf die durch die Verknüpfung verwiesen wird. |
|
Bei Dialogfeldern im alten Stil bewirkt dieses Flag, dass das Dialogfeld kurze Dateinamen (Format 8.3) verwendet. Explorer Dialogfelder ignorieren dieses Flag und zeigen immer lange Dateinamen an. |
|
Blendet die Schaltfläche Netzwerk aus und deaktiviert sie. |
|
Die zurückgegebene Datei ist nicht mit dem Kontrollkästchen Schreibgeschützt aktiviert und befindet sich nicht in einem schreibgeschützten Verzeichnis. |
|
Die Datei wird nicht erstellt, bevor das Dialogfeld geschlossen wird. Dieses Flag sollte angegeben werden, wenn die Anwendung die Datei auf einer Netzwerkfreigabe ohne Änderung erstellen speichert. Wenn eine Anwendung dieses Flag angibt, überprüft die Bibliothek nicht auf Schreibschutz, einen vollständigen Datenträger, eine offene Laufwerktür oder einen Netzwerkschutz. Anwendungen, die dieses Flag verwenden, müssen Dateivorgänge sorgfältig ausführen, da eine Datei nach dem Schließen nicht erneut geöffnet werden kann. |
|
Die allgemeinen Dialogfelder lassen ungültige Zeichen im zurückgegebenen Dateinamen zu. In der Regel verwendet die aufrufende Anwendung eine Hookprozedur, die den Dateinamen mithilfe der FILEOKSTRING-Nachricht überprüft. Wenn das Textfeld im Bearbeitungssteuerelement leer ist oder nur Leerzeichen enthält, werden die Listen der Dateien und Verzeichnisse aktualisiert. Wenn das Textfeld im Bearbeitungssteuerelement etwas anderes enthält, werden nFileOffset und nFileExtension auf Werte festgelegt, die durch die Analyse des Texts generiert werden. Dem Text wird keine Standarderweiterung hinzugefügt, noch wird Text in den puffer kopiert, der von lpstrFileTitle angegeben ist. Wenn der von nFileOffset angegebene Wert kleiner als 0 (null) ist, ist der Dateiname ungültig. Andernfalls ist der Dateiname gültig, und nFileExtension und nFileOffset können so verwendet werden, als ob das flag OFN_NOVALIDATE nicht angegeben worden wäre. |
|
Bewirkt, dass das Dialogfeld Speichern unter ein Meldungsfeld generiert, wenn die ausgewählte Datei bereits vorhanden ist. Der Benutzer muss bestätigen, ob die Datei überschrieben werden soll. |
|
Der Benutzer kann nur gültige Pfade und Dateinamen eingeben. Wenn dieses Flag verwendet wird und der Benutzer im Eingabefeld Dateiname einen ungültigen Pfad und Dateinamen eingibt, zeigt die Dialogfeldfunktion eine Warnung in einem Meldungsfeld an. |
|
Bewirkt, dass das Kontrollkästchen Schreibschutz beim Erstellen des Dialogfelds aktiviert wird. Dieses Flag gibt den Status des Kontrollkästchens Schreibschutz an, wenn das Dialogfeld geschlossen ist. |
|
Gibt an, dass der Fehler ignoriert wird und das Dialogfeld den ausgewählten Dateinamen zurückgibt, wenn ein Aufruf der OpenFile-Funktion aufgrund eines Verstoßes gegen die Netzwerkfreigabe fehlschlägt. Wenn dieses Flag nicht festgelegt ist, benachrichtigt das Dialogfeld Ihre Hookprozedur, wenn ein Verstoß gegen die Netzwerkfreigabe für den vom Benutzer angegebenen Dateinamen auftritt. Wenn Sie das OFN_EXPLORER-Flag festlegen, sendet das Dialogfeld die CDN_SHAREVIOLATION Nachricht an die Hookprozedur. Wenn Sie OFN_EXPLORER nicht festlegen, sendet das Dialogfeld die REGISTRIERTE SHAREVISTRING-Nachricht an die Hookprozedur. |
|
Bewirkt, dass im Dialogfeld die Schaltfläche Hilfe angezeigt wird. Das hwndOwner-Element muss das Fenster angeben, in dem die registrierten HELPMSGSTRING-Nachrichten empfangen werden, die das Dialogfeld sendet, wenn der Benutzer auf die Schaltfläche Hilfe klickt. Ein Dialogfeld im Explorer-Format sendet eine CDN_HELP Benachrichtigung an Ihre Hookprozedur, wenn der Benutzer auf die Schaltfläche Hilfe klickt. |
nFileOffset
Typ: WORD
Der nullbasierte Offset in Zeichen vom Anfang des Pfads bis zum Dateinamen in der Zeichenfolge, auf die von lpstrFile verwiesen wird. Bei der ANSI-Version ist dies die Anzahl der Bytes; Für die Unicode-Version ist dies die Anzahl der Zeichen. Wenn lpstrFile beispielsweise auf die folgende Zeichenfolge zeigt, "c:\dir1\dir2\file.ext", enthält dieses Element den Wert 13, um den Offset der Zeichenfolge "file.ext" anzugeben. Wenn der Benutzer mehrere Dateien auswählt, ist nFileOffset der Offset zum ersten Dateinamen.
nFileExtension
Typ: WORD
Der nullbasierte Offset in Zeichen vom Anfang des Pfads bis zur Dateinamenerweiterung in der Zeichenfolge, auf die lpstrFile verweist. Bei der ANSI-Version ist dies die Anzahl der Bytes; Für die Unicode-Version ist dies die Anzahl der Zeichen. In der Regel ist die Dateinamenerweiterung die Teilzeichenfolge, die auf das letzte Vorkommen des Punkts (".") folgt. Txt ist beispielsweise die Erweiterung des Dateinamens readme.txt, html die Erweiterung von readme.txt.html. Wenn lpstrFile daher auf die Zeichenfolge "c:\dir1\dir2\readme.txt" zeigt, enthält dieses Element den Wert 20. Wenn lpstrFile auf die Zeichenfolge "c:\dir1\dir2\readme.txt.html" zeigt, enthält dieses Element den Wert 24. Wenn lpstrFile auf die Zeichenfolge "c:\dir1\dir2\readme.txt.html." zeigt, enthält dieses Element den Wert 29. Wenn lpstrFile auf eine Zeichenfolge zeigt, die kein "."-Zeichen wie "c:\dir1\dir2\readme" enthält, enthält dieses Element null.
lpstrDefExt
Typ: LPCTSTR
Die Standarderweiterung. GetOpenFileName und GetSaveFileName fügen diese Erweiterung an den Dateinamen an, wenn der Benutzer keine Erweiterung eingeben kann. Diese Zeichenfolge kann eine beliebige Länge aufweisen, aber nur die ersten drei Zeichen werden angefügt. Die Zeichenfolge sollte keinen Punkt (.) enthalten. Wenn dieser Member NULL ist und der Benutzer keine Erweiterung eingeben kann, wird keine Erweiterung angefügt.
lCustData
Typ: LPARAM
Anwendungsdefinierte Daten, die das System an die hook-Prozedur übergibt, die vom lpfnHook-Element identifiziert wird. Wenn das System die WM_INITDIALOG Nachricht an die Hookprozedur sendet, ist der lParam-Parameter der Nachricht ein Zeiger auf die OPENFILENAME-Struktur , die beim Erstellen des Dialogfelds angegeben wurde. Die Hookprozedur kann diesen Zeiger verwenden, um den lCustData-Wert abzurufen.
lpfnHook
Typ: LPOFNHOOKPROC
Ein Zeiger auf eine Hookprozedur. Dieser Member wird ignoriert, es sei denn, das Flags-Element enthält das flag OFN_ENABLEHOOK .
Wenn das flag OFN_EXPLORER im Flags-Element nicht festgelegt ist, ist lpfnHook ein Zeiger auf eine OFNHookProcOldStyle-Hookprozedur , die nachrichten empfängt, die für das Dialogfeld vorgesehen sind. Die Hookprozedur gibt FALSE zurück, um eine Nachricht an die Standarddialogfeldprozedur zu übergeben, oder TRUE , um die Nachricht zu verwerfen.
Wenn OFN_EXPLORER festgelegt ist, ist lpfnHook ein Zeiger auf eine OFNHookProc-Hookprozedur . Die Hookprozedur empfängt Benachrichtigungen, die vom Dialogfeld gesendet werden. Die Hookprozedur empfängt auch Meldungen für alle zusätzlichen Steuerelemente, die Sie durch Angeben einer untergeordneten Dialogvorlage definiert haben. Die Hookprozedur empfängt keine Nachrichten, die für die Standardsteuerelemente des Standarddialogfelds vorgesehen sind.
lpTemplateName
Typ: LPCTSTR
Der Name der Dialogvorlagenressource in dem Modul, das vom hInstance-Element identifiziert wird. Bei nummerierten Dialogfeldressourcen kann dies ein Wert sein, der vom MAKEINTRESOURCE-Makro zurückgegeben wird. Dieser Member wird ignoriert, es sei denn, das flag OFN_ENABLETEMPLATE im Flags-Element festgelegt ist. Wenn das flag OFN_EXPLORER festgelegt ist, verwendet das System die angegebene Vorlage, um ein Dialogfeld zu erstellen, das ein untergeordnetes Element des Standarddialogfelds Explorer ist. Wenn das flag OFN_EXPLORER nicht festgelegt ist, verwendet das System die Vorlage, um ein Dialogfeld im alten Stil zu erstellen, das das Standarddialogfeld ersetzt.
lpEditInfo
Dieser Member wird bedingt kompiliert (mit #ifdef _MAC
), sodass es nur für Macintosh-Computer von Motorola 68K und nicht für Windows-Clientbetriebssysteme gilt.
lpstrPrompt
Dieser Member wird bedingt kompiliert (mit #ifdef _MAC
), sodass es nur für Macintosh-Computer von Motorola 68K und nicht für Windows-Clientbetriebssysteme gilt.
pvReserved
Typ: void*
Dieser Member ist reserviert.
dwReserved
Art: DWORD
Dieser Member ist reserviert.
FlagsEx
Art: DWORD
Eine Reihe von Bitflags, die Sie zum Initialisieren des Dialogfelds verwenden können. Derzeit kann dieses Element null oder das folgende Flag sein.
Hinweise
Aus Kompatibilitätsgründen ist die Platzleiste ausgeblendet, wenn Flags auf OFN_ENABLEHOOK und lStructSizeOPENFILENAME_SIZE_VERSION_400 ist.
Hinweis
Der commdlg.h-Header definiert OPENFILENAME als Alias, der die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante automatisch auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht Codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.
Anforderungen
Unterstützte Mindestversion (Client) | Windows 2000 Professional [nur Desktop-Apps] |
Unterstützte Mindestversion (Server) | Windows 2000 Server [nur Desktop-Apps] |
Kopfzeile | commdlg.h (windows.h einschließen) |
Weitere Informationen
Allgemeine Dialogfeldbibliothek
Konzept
Andere Ressourcen
Referenz