OPENFILENAMEW-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 tagOFNW {
  DWORD         lStructSize;
  HWND          hwndOwner;
  HINSTANCE     hInstance;
  LPCWSTR       lpstrFilter;
  LPWSTR        lpstrCustomFilter;
  DWORD         nMaxCustFilter;
  DWORD         nFilterIndex;
  LPWSTR        lpstrFile;
  DWORD         nMaxFile;
  LPWSTR        lpstrFileTitle;
  DWORD         nMaxFileTitle;
  LPCWSTR       lpstrInitialDir;
  LPCWSTR       lpstrTitle;
  DWORD         Flags;
  WORD          nFileOffset;
  WORD          nFileExtension;
  LPCWSTR       lpstrDefExt;
  LPARAM        lCustData;
  LPOFNHOOKPROC lpfnHook;
  LPCWSTR       lpTemplateName;
  LPEDITMENU    lpEditInfo;
  LPCSTR        lpstrPrompt;
  void          *pvReserved;
  DWORD         dwReserved;
  DWORD         FlagsEx;
} OPENFILENAMEW, *LPOPENFILENAMEW;

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:

  1. 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.
  2. Wenn lpstrFile andernfalls einen Pfad enthält, ist dieser Pfad das ursprüngliche Verzeichnis.
  3. Wenn lpstrInitialDir andernfalls nicht NULL ist, wird das anfangsverzeichnis angegeben.
  4. Wenn lpstrInitialDirNULL ist und das aktuelle Verzeichnis dateien der angegebenen Filtertypen enthält, ist das ausgangsverzeichnis das aktuelle Verzeichnis.
  5. Andernfalls ist das anfängliche Verzeichnis das Verzeichnis der persönlichen Dateien des aktuellen Benutzers.
  6. Andernfalls ist das anfängliche Verzeichnis der Desktopordner.
Windows 2000/XP/Vista:
  1. Wenn lpstrFile einen Pfad enthält, ist dieser Pfad das ursprüngliche Verzeichnis.
  2. Andernfalls gibt lpstrInitialDir das Anfangsverzeichnis an.
  3. 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.
  4. Wenn lpstrInitialDirNULL ist und das aktuelle Verzeichnis dateien der angegebenen Filtertypen enthält, ist das ausgangsverzeichnis das aktuelle Verzeichnis.
  5. Andernfalls ist das anfängliche Verzeichnis das Verzeichnis der persönlichen Dateien des aktuellen Benutzers.
  6. Andernfalls ist das anfängliche Verzeichnis der Desktopordner.

lpstrTitle

Typ: LPCTSTR

Eine Zeichenfolge, die in der Titelleiste des Dialogfelds platziert werden soll. Wenn dieses Element NULL ist, verwendet das System den Standardtitel (also Speichern unter oder Öffnen).

Flags

Art: DWORD

Eine Reihe von Bitflags, die Sie zum Initialisieren des Dialogfelds verwenden können. Wenn das Dialogfeld zurückgibt, legt es diese Flags fest, um die Eingabe des Benutzers anzugeben. Dieser Member kann eine Kombination der folgenden Flags sein.

Wert Bedeutung
OFN_ALLOWMULTISELECT
0x00000200
Das Listenfeld Dateiname lässt mehrere Auswahlmöglichkeiten zu. 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 auf den ersten Dateinamen, und das nFileExtension-Element wird nicht verwendet. Für Explorer Dialogfelder sind die Verzeichnis- und Dateinamenzeichenfolgen NULL getrennt, mit einem zusätzlichen NULL-Zeichen nach dem letzten Dateinamen. 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.

OFN_CREATEPROMPT
0x00002000
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.
OFN_DONTADDTORECENT
0x02000000
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.
OFN_ENABLEHOOK
0x00000020
Aktiviert die Hookfunktion, die im lpfnHook-Element angegeben ist.
OFN_ENABLEINCLUDENOTIFY
0x00400000
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.
OFN_ENABLESIZING
0x00800000
Ermöglicht es, die Größe des Dialogfelds Explorer mit der Maus oder der Tastatur zu ändern. In den Dialogfeldern öffnen und speichern unter Explorer-Format kann die Größe des Dialogfelds standardmäßig geändert werden, 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.
OFN_ENABLETEMPLATE
0x00000040
Das element lpTemplateName ist ein Zeiger auf den Namen einer Dialogvorlagenressource in dem Modul, das vom hInstance-Member identifiziert wird. Wenn das OFN_EXPLORER-Flag 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.
OFN_ENABLETEMPLATEHANDLE
0x00000080
Das hInstance-Element identifiziert einen Datenblock, der eine vorab geladene Dialogfeldvorlage enthält. Das System ignoriert lpTemplateName , wenn dieses Flag angegeben ist. Wenn das OFN_EXPLORER-Flag 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.
OFN_EXPLORER
0x00080000
Gibt an, dass alle Anpassungen, die für das 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-Stil.

Standardmäßig verwenden die Dialogfelder Öffnen und Speichern unter die Benutzeroberfläche im Explorer-Stil, unabhängig davon, ob dieses Flag festgelegt ist. Dieses Flag ist nur erforderlich, wenn Sie eine Hookprozedur oder benutzerdefinierte Vorlage bereitstellen oder das OFN_ALLOWMULTISELECT-Flag festlegen.

Wenn Sie die Benutzeroberfläche im alten Stil möchten, lassen Sie das OFN_EXPLORER-Flag aus, und stellen Sie eine Ersatzvorlage im alten Stil oder eine Hookprozedur 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.

OFN_EXTENSIONDIFFERENT
0x00000400
Der Benutzer hat eine Dateinamenerweiterung eingegeben, die sich von der durch lpstrDefExt angegebenen Erweiterung unterscheidet. Die Funktion verwendet dieses Flag nicht, wenn lpstrDefExtNULL ist.
OFN_FILEMUSTEXIST
0x00001000
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 wird, wird auch das OFN_PATHMUSTEXIST-Flag verwendet. Dieses Flag kann in einem Dialogfeld Öffnen verwendet werden. Es kann nicht mit einem Dialogfeld Speichern unter verwendet werden.
OFN_FORCESHOWHIDDEN
0x10000000
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.
OFN_HIDEREADONLY
0x00000004
Blendet das Kontrollkästchen Schreibgeschützt aus.
OFN_LONGNAMES
0x00200000
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 (8.3-Format) für Dateinamen mit Leerzeichen. Explorer Dialogfelder ignorieren dieses Flag und zeigen immer lange Dateinamen an.
OFN_NOCHANGEDIR
0x00000008
Stellt das aktuelle Verzeichnis auf seinen ursprünglichen Wert zurück, wenn der Benutzer das Verzeichnis bei der Suche nach Dateien geändert hat.

Dieses Flag ist für GetOpenFileName unwirksam.

OFN_NODEREFERENCELINKS
0x00100000
Weist das Dialogfeld an, den Pfad und Dateinamen der ausgewählten Verknüpfung () zurückzugeben. LNK)-Datei. Wenn dieser Wert nicht angegeben wird, gibt das Dialogfeld den Pfad und den Dateinamen der Datei zurück, auf die von der Verknüpfung verwiesen wird.
OFN_NOLONGNAMES
0x00040000
Für Dialogfelder im alten Stil bewirkt dieses Flag, dass das Dialogfeld kurze Dateinamen (8.3-Format) verwendet. Explorer Dialogfelder ignorieren dieses Flag und zeigen immer lange Dateinamen an.
OFN_NONETWORKBUTTON
0x00020000
Blendet die Schaltfläche Netzwerk aus und deaktiviert sie.
OFN_NOREADONLYRETURN
0x00008000
Die zurückgegebene Datei ist nicht mit dem Kontrollkästchen Schreibgeschützt aktiviert und befindet sich nicht in einem schreibgeschützten Verzeichnis.
OFN_NOTESTFILECREATE
0x00010000
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.
OFN_NOVALIDATE
0x00000100
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.
OFN_OVERWRITEPROMPT
0x00000002
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.
OFN_PATHMUSTEXIST
0x00000800
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.
OFN_READONLY
0x00000001
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.
OFN_SHAREAWARE
0x00004000
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.
OFN_SHOWHELP
0x00000010
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.

Wert Bedeutung
OFN_EX_NOPLACESBAR
0x00000001
Wenn dieses Flag festgelegt ist, wird die Platzleiste nicht angezeigt. Wenn dieses Flag nicht festgelegt ist, enthalten Explorer Dialogfelder eine Platzleiste mit Symbolen für häufig verwendete Ordner, z. B. Favoriten und Desktop.

Hinweise

Aus Kompatibilitätsgründen ist die Places leiste 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

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Kopfzeile commdlg.h (einschließlich Windows.h)

Weitere Informationen

Allgemeine Dialogfeldbibliothek

Konzept

GetOpenFileName

GetSaveFileName

Andere Ressourcen

Referenz

SHGetSpecialFolderLocation