STRUCTURE OPENFILENAMEA (commdlg.h)

[À compter de Windows Vista, les boîtes de dialogue Ouvrir et Enregistrer sous la forme courante ont été remplacées par la boîte de dialogue Élément commun. Nous vous recommandons d’utiliser l’API de boîte de dialogue Élément commun au lieu de ces boîtes de dialogue à partir de la bibliothèque commune de boîtes de dialogue.]

Contient des informations que les fonctions GetOpenFileName et GetSaveFileName utilisent pour initialiser une boîte de dialogue Ouvrir ou Enregistrer sous . Une fois que l’utilisateur ferme la boîte de dialogue, le système retourne des informations sur la sélection de l’utilisateur dans cette structure.

Syntaxe

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;

Membres

lStructSize

Type : DWORD

Longueur, en octets, de la structure. Utilisez-le sizeof (OPENFILENAME) pour ce paramètre.

hwndOwner

Type : HWND

Handle vers la fenêtre qui possède la boîte de dialogue. Ce membre peut être n’importe quel handle de fenêtre valide, ou il peut être NULL si la boîte de dialogue n’a aucun propriétaire.

hInstance

Type : HINSTANCE

Si l’indicateur OFN_ENABLETEMPLATEHANDLE est défini dans le membre Flags , hInstance est un handle pour un objet mémoire contenant un modèle de boîte de dialogue. Si l’indicateur OFN_ENABLETEMPLATE est défini, hInstance est un handle sur un module qui contient un modèle de boîte de dialogue nommé par le membre lpTemplateName . Si aucun indicateur n’est défini, ce membre est ignoré. Si l’indicateur OFN_EXPLORER est défini, le système utilise le modèle spécifié pour créer une boîte de dialogue qui est un enfant de la boîte de dialogue de style Explorateur par défaut. Si l’indicateur OFN_EXPLORER n’est pas défini, le système utilise le modèle pour créer une boîte de dialogue de style ancien qui remplace la boîte de dialogue par défaut.

lpstrFilter

Type : LPCTSTR

Mémoire tampon contenant des paires de chaînes de filtre terminées par null. La dernière chaîne de la mémoire tampon doit être arrêtée par deux caractères NULL .

La première chaîne de chaque paire est une chaîne d’affichage qui décrit le filtre (par exemple, « Fichiers texte »), et la deuxième chaîne spécifie le modèle de filtre (par exemple). ".TXT" Pour spécifier plusieurs modèles de filtre pour une chaîne d’affichage unique, utilisez un point-virgule pour séparer les modèles (par exemple, «.TXT; ;.DOC;. BAK »). Une chaîne de modèle peut être une combinaison de caractères de nom de fichier valides et du caractère générique astérisque (*). N’incluez pas d’espaces dans la chaîne de modèle.

Le système ne modifie pas l’ordre des filtres. Il les affiche dans la zone de liste déroulante Types de fichiers dans l’ordre spécifié dans lpstrFilter.

Si lpstrFilter est NULL, la boîte de dialogue n’affiche aucun filtre.

Dans le cas d’un raccourci, si aucun filtre n’est défini, GetOpenFileName et GetSaveFileName récupèrent le nom du fichier .lnk, et non sa cible. Ce comportement est identique à la définition de l’indicateur OFN_NODEREFERENCELINKS dans le membre Flags . Pour récupérer la cible d’un raccourci sans filtrer, utilisez la chaîne "All Files\0*.*\0\0".

lpstrCustomFilter

Type : LPTSTR

Mémoire tampon statique qui contient une paire de chaînes de filtre terminées par null pour conserver le modèle de filtre choisi par l’utilisateur. La première chaîne est votre chaîne d’affichage qui décrit le filtre personnalisé, et la deuxième chaîne est le modèle de filtre sélectionné par l’utilisateur. La première fois que votre application crée la boîte de dialogue, vous spécifiez la première chaîne, qui peut être n’importe quelle chaîne aucunmpty. Lorsque l’utilisateur sélectionne un fichier, la boîte de dialogue copie le modèle de filtre actuel dans la deuxième chaîne. Le modèle de filtre conservé peut être l’un des modèles spécifiés dans la mémoire tampon lpstrFilter , ou il peut s’agir d’un modèle de filtre typé par l’utilisateur. Le système utilise les chaînes pour initialiser le filtre de fichier défini par l’utilisateur la prochaine fois que la boîte de dialogue est créée. Si le membre nFilterIndex est zéro, la boîte de dialogue utilise le filtre personnalisé.

Si ce membre est NULL, la boîte de dialogue ne conserve pas les modèles de filtre définis par l’utilisateur.

Si ce membre n’est pas NULL, la valeur du membre nMaxCustFilter doit spécifier la taille, en caractères, de la mémoire tampon lpstrCustomFilter .

nMaxCustFilter

Type : DWORD

Taille, en caractères, de la mémoire tampon identifiée par lpstrCustomFilter. Cette mémoire tampon doit comporter au moins 40 caractères. Ce membre est ignoré si lpstrCustomFilter est NULL ou pointe vers une chaîne NULL .

nFilterIndex

Type : DWORD

Index du filtre actuellement sélectionné dans le contrôle Types de fichiers . La mémoire tampon pointée par lpstrFilter contient des paires de chaînes qui définissent les filtres. La première paire de chaînes a une valeur d’index de 1, la deuxième paire 2, et ainsi de suite. Un index de zéro indique le filtre personnalisé spécifié par lpstrCustomFilter. Vous pouvez spécifier un index sur l’entrée pour indiquer la description initiale du filtre et le modèle de filtre pour la boîte de dialogue. Lorsque l’utilisateur sélectionne un fichier, nFilterIndex retourne l’index du filtre actuellement affiché. Si nFilterIndex est zéro et lpstrCustomFilter est NULL, le système utilise le premier filtre dans la mémoire tampon lpstrFilter . Si les trois membres sont zéro ou NULL, le système n’utilise aucun filtre et n’affiche aucun fichier dans le contrôle de liste de fichiers de la boîte de dialogue.

lpstrFile

Type : LPTSTR

Nom de fichier utilisé pour initialiser le contrôle de modification du nom de fichier. Le premier caractère de cette mémoire tampon doit être NULL si l’initialisation n’est pas nécessaire. Lorsque la fonction GetOpenFileName ou GetSaveFileName retourne correctement, cette mémoire tampon contient l’indicateur de lecteur, le chemin d’accès, le nom de fichier et l’extension du fichier sélectionné.

Si l’indicateur OFN_ALLOWMULTISELECT est défini et que l’utilisateur sélectionne plusieurs fichiers, la mémoire tampon contient le répertoire actif suivi des noms de fichiers des fichiers sélectionnés. Pour les boîtes de dialogue de style Explorateur, les chaînes de répertoire et de nom de fichier sont séparées PAR NULL , avec un caractère NULL supplémentaire après le nom du dernier fichier. Pour les boîtes de dialogue de style ancien, les chaînes sont séparées par l’espace et la fonction utilise des noms de fichiers courts pour les noms de fichiers avec des espaces. Vous pouvez utiliser la fonction FindFirstFile pour convertir entre les noms de fichiers longs et courts. Si l’utilisateur sélectionne un seul fichier, la chaîne lpstrFile n’a pas de séparateur entre le chemin d’accès et le nom de fichier.

Si la mémoire tampon est trop petite, la fonction retourne FALSE et la fonction CommDlgExtendedError retourne FNERR_BUFFERTOOSMALL. Dans ce cas, les deux premiers octets de la mémoire tampon lpstrFile contiennent la taille requise, en octets ou en caractères.

nMaxFile

Type : DWORD

Taille, en caractères, de la mémoire tampon pointée par lpstrFile. La mémoire tampon doit être suffisamment grande pour stocker le chemin d’accès et la chaîne ou les chaînes de nom de fichier, y compris le caractère NULL de fin. Les fonctions GetOpenFileName et GetSaveFileName retournent FALSE si la mémoire tampon est trop petite pour contenir les informations de fichier. La mémoire tampon doit comporter au moins 256 caractères.

lpstrFileTitle

Type : LPTSTR

Nom et extension de fichier (sans informations de chemin d’accès) du fichier sélectionné. Ce membre peut être NULL.

nMaxFileTitle

Type : DWORD

Taille, en caractères, de la mémoire tampon pointée par lpstrFileTitle. Ce membre est ignoré si lpstrFileTitle est NULL.

lpstrInitialDir

Type : LPCTSTR

Répertoire initial. L’algorithme de sélection du répertoire initial varie sur différentes plateformes.

Windows 7 :

  1. Si lpstrInitialDir a la même valeur que la première fois que l’application a utilisé une boîte de dialogue Ouvrir ou Enregistrer sous, le chemin d’accès le plus récemment sélectionné par l’utilisateur est utilisé comme répertoire initial.
  2. Sinon, si lpstrFile contient un chemin d’accès, ce chemin est le répertoire initial.
  3. Sinon, si lpstrInitialDir n’est pas NULL, il spécifie le répertoire initial.
  4. Si lpstrInitialDir est NULL et que le répertoire actuel contient tous les fichiers des types de filtre spécifiés, le répertoire initial est le répertoire actif.
  5. Sinon, le répertoire initial est le répertoire de fichiers personnels de l’utilisateur actuel.
  6. Sinon, le répertoire initial est le dossier Desktop.
Windows 2000/XP/Vista :
  1. Si lpstrFile contient un chemin d’accès, ce chemin est le répertoire initial.
  2. Sinon, lpstrInitialDir spécifie le répertoire initial.
  3. Sinon, si l’application a utilisé une boîte de dialogue Ouvrir ou Enregistrer sous dans le passé, le chemin d’accès le plus récemment utilisé est sélectionné comme répertoire initial. Toutefois, si une application n’est pas exécutée pendant longtemps, son chemin sélectionné enregistré est ignoré.
  4. Si lpstrInitialDir est NULL et que le répertoire actuel contient tous les fichiers des types de filtre spécifiés, le répertoire initial est le répertoire actif.
  5. Sinon, le répertoire initial est le répertoire de fichiers personnels de l’utilisateur actuel.
  6. Sinon, le répertoire initial est le dossier Desktop.

lpstrTitle

Type : LPCTSTR

Chaîne à placer dans la barre de titre de la boîte de dialogue. Si ce membre est NULL, le système utilise le titre par défaut (autrement dit, Enregistrer sous ou Ouvrir).

Flags

Type : DWORD

Un ensemble d’indicateurs de bits que vous pouvez utiliser pour initialiser la boîte de dialogue. Lorsque la boîte de dialogue retourne, elle définit ces indicateurs pour indiquer l’entrée de l’utilisateur. Ce membre peut être une combinaison des indicateurs suivants.

Valeur Signification
OFN_ALLOWMULTISELECT
0x00000200
La zone de liste Nom de fichier autorise plusieurs sélections. Si vous définissez également l’indicateur OFN_EXPLORER , la boîte de dialogue utilise l’interface utilisateur de style Explorateur ; sinon, il utilise l’ancienne interface utilisateur de style.

Si l’utilisateur sélectionne plusieurs fichiers, la mémoire tampon lpstrFile retourne le chemin d’accès au répertoire actuel suivi des noms de fichiers des fichiers sélectionnés. Le membre nFileOffset est le décalage, en octets ou en caractères, au nom du premier fichier, et le membre nFileExtension n’est pas utilisé. Pour les boîtes de dialogue de style Explorateur, les chaînes de répertoire et de nom de fichier sont séparées PAR NULL , avec un caractère NULL supplémentaire après le nom du dernier fichier. Ce format permet aux boîtes de dialogue de style Explorateur de retourner des noms de fichiers longs qui incluent des espaces. Pour les boîtes de dialogue de style ancien, les chaînes de répertoire et de nom de fichier sont séparées par des espaces et la fonction utilise des noms de fichiers courts pour les noms de fichiers avec des espaces. Vous pouvez utiliser la fonction FindFirstFile pour convertir entre les noms de fichiers longs et courts.

Si vous spécifiez un modèle personnalisé pour une boîte de dialogue de style ancien, la définition de la zone de liste Nom de fichier doit contenir la valeur LBS_EXTENDEDSEL .

OFN_CREATEPROMPT
0x00002000
Si l’utilisateur spécifie un fichier qui n’existe pas, cet indicateur provoque l’invite de dialogue à inviter l’utilisateur à créer le fichier. Si l’utilisateur choisit de créer le fichier, la boîte de dialogue se ferme et la fonction retourne le nom spécifié; sinon, la boîte de dialogue reste ouverte. Si vous utilisez cet indicateur avec l’indicateur OFN_ALLOWMULTISELECT , la boîte de dialogue permet à l’utilisateur de spécifier un seul fichier inexistant.
OFN_DONTADDTORECENT
0x02000000
Empêche le système d’ajouter un lien au fichier sélectionné dans le répertoire du système de fichiers qui contient les documents les plus récemment utilisés par l’utilisateur. Pour récupérer l’emplacement de ce répertoire, appelez la fonction SHGetSpecialFolderLocation avec l’indicateur CSIDL_RECENT .
OFN_ENABLEHOOK
0x00000020
Active la fonction de crochet spécifiée dans le membre lpfnHook .
OFN_ENABLEINCLUDENOTIFY
0x00400000
Provoque l’envoi de messages de notification CDN_INCLUDEITEM à votre procédure de hook OFNHookProc lorsque l’utilisateur ouvre un dossier. La boîte de dialogue envoie une notification pour chaque élément du dossier nouvellement ouvert. Ces messages vous permettent de contrôler les éléments affichés dans la liste des éléments du dossier.
OFN_ENABLESIZING
0x00800000
Active la boîte de dialogue de style Explorateur à redimensionner à l’aide de la souris ou du clavier. Par défaut, les boîtes de dialogue Ouvrir et Enregistrer sous du style Explorateur permettent de redimensionner la boîte de dialogue, quelle que soit la définition de cet indicateur. Cet indicateur est nécessaire uniquement si vous fournissez une procédure de hook ou un modèle personnalisé. La boîte de dialogue de style ancien n’autorise pas le redimensionnement.
OFN_ENABLETEMPLATE
0x00000040
Le membre lpTemplateName est un pointeur vers le nom d’une ressource de modèle de dialogue dans le module identifié par le membre hInstance . Si l’indicateur OFN_EXPLORER est défini, le système utilise le modèle spécifié pour créer une boîte de dialogue qui est un enfant de la boîte de dialogue de style Explorateur par défaut. Si l’indicateur OFN_EXPLORER n’est pas défini, le système utilise le modèle pour créer une boîte de dialogue de style ancien qui remplace la boîte de dialogue par défaut.
OFN_ENABLETEMPLATEHANDLE
0x00000080
Le membre hInstance identifie un bloc de données qui contient un modèle de boîte de dialogue préchargé. Le système ignore lpTemplateName si cet indicateur est spécifié. Si l’indicateur OFN_EXPLORER est défini, le système utilise le modèle spécifié pour créer une boîte de dialogue qui est un enfant de la boîte de dialogue de style Explorateur par défaut. Si l’indicateur OFN_EXPLORER n’est pas défini, le système utilise le modèle pour créer une boîte de dialogue de style ancien qui remplace la boîte de dialogue par défaut.
OFN_EXPLORER
0x00080000
Indique que toutes les personnalisations apportées à la boîte de dialogue Ouvrir ou Enregistrer sous utilisent les méthodes de personnalisation du style Explorateur. Pour plus d’informations, consultez Procédures de crochet de style Explorateur et modèles personnalisés de style Explorateur.

Par défaut, les boîtes de dialogue Ouvrir et Enregistrer sous utilisent l’interface utilisateur de style Explorateur, que cet indicateur soit défini. Cet indicateur est nécessaire uniquement si vous fournissez une procédure de hook ou un modèle personnalisé, ou définissez l’indicateur OFN_ALLOWMULTISELECT .

Si vous souhaitez utiliser l’ancienne interface utilisateur de style, omettez l’indicateur OFN_EXPLORER et fournissez un modèle ou une procédure de crochet de remplacement de type ancien. Si vous voulez l’ancien style, mais n’avez pas besoin d’une procédure personnalisée de modèle ou de crochet, fournissez simplement une procédure de crochet qui retourne toujours FALSE.

OFN_EXTENSIONDIFFERENT
0x00000400
L’utilisateur a tapé une extension de nom de fichier qui diffère de l’extension spécifiée par lpstrDefExt. La fonction n’utilise pas cet indicateur si lpstrDefExt est NULL.
OFN_FILEMUSTEXIST
0x00001000
L’utilisateur ne peut taper que des noms de fichiers existants dans le champ d’entrée Nom de fichier . Si cet indicateur est spécifié et que l’utilisateur entre un nom non valide, la procédure de boîte de dialogue affiche un avertissement dans une zone de message. Si cet indicateur est spécifié, l’indicateur OFN_PATHMUSTEXIST est également utilisé. Cet indicateur peut être utilisé dans une boîte de dialogue Ouvrir . Elle ne peut pas être utilisée avec une boîte de dialogue Enregistrer sous .
OFN_FORCESHOWHIDDEN
0x10000000
Force l’affichage des fichiers système et masqués, en remplaçant ainsi le paramètre utilisateur pour afficher ou non les fichiers masqués. Toutefois, un fichier marqué à la fois système et masqué n’est pas affiché.
OFN_HIDEREADONLY
0x00000004
Masque la case à cocher Lecture seule .
OFN_LONGNAMES
0x00200000
Pour les boîtes de dialogue de style ancien, cet indicateur entraîne l’utilisation de noms de fichiers longs. Si cet indicateur n’est pas spécifié ou si l’indicateur OFN_ALLOWMULTISELECT est également défini, les boîtes de dialogue de style ancien utilisent des noms de fichiers courts (format 8.3) pour les noms de fichiers avec des espaces. Les boîtes de dialogue style Explorateur ignorent cet indicateur et affichent toujours des noms de fichiers longs.
OFN_NOCHANGEDIR
0x00000008
Restaure le répertoire actuel sur sa valeur d’origine si l’utilisateur a modifié le répertoire lors de la recherche de fichiers.

Cet indicateur est inefficace pour GetOpenFileName.

OFN_NODEREFERENCELINKS
0x00100000
Dirige la boîte de dialogue pour renvoyer le chemin d’accès et le nom du fichier du raccourci sélectionné (. Fichier LNK). Si cette valeur n’est pas spécifiée, la boîte de dialogue retourne le chemin d’accès et le nom de fichier du fichier référencé par le raccourci.
OFN_NOLONGNAMES
0x00040000
Pour les boîtes de dialogue de style ancien, cet indicateur entraîne l’utilisation de noms de fichiers courts (format 8.3). Les boîtes de dialogue style Explorateur ignorent cet indicateur et affichent toujours des noms de fichiers longs.
OFN_NONETWORKBUTTON
0x00020000
Masque et désactive le bouton Réseau .
OFN_NOREADONLYRETURN
0x00008000
Le fichier retourné n’a pas la case à cocher Lecture seule activée et n’est pas dans un répertoire protégé en écriture.
OFN_NOTESTFILECREATE
0x00010000
Le fichier n’est pas créé avant la fermeture de la boîte de dialogue. Cet indicateur doit être spécifié si l’application enregistre le fichier sur un partage réseau create-nonmodify. Lorsqu’une application spécifie cet indicateur, la bibliothèque ne vérifie pas la protection en écriture, un disque complet, une porte de lecteur ouverte ou une protection réseau. Les applications utilisant cet indicateur doivent effectuer des opérations de fichier soigneusement, car un fichier ne peut pas être rouvert une fois qu’il est fermé.
OFN_NOVALIDATE
0x00000100
Les boîtes de dialogue courantes autorisent des caractères non valides dans le nom de fichier retourné. En règle générale, l’application appelante utilise une procédure de hook qui vérifie le nom de fichier à l’aide du message FILEOKSTRING . Si la zone de texte du contrôle d’édition est vide ou ne contient rien d’autre que des espaces, les listes de fichiers et de répertoires sont mises à jour. Si la zone de texte du contrôle d’édition contient n’importe quoi d’autre, nFileOffset et nFileExtension sont définies sur les valeurs générées en analysant le texte. Aucune extension par défaut n’est ajoutée au texte, ni le texte copié dans la mémoire tampon spécifiée par lpstrFileTitle. Si la valeur spécifiée par nFileOffset est inférieure à zéro, le nom de fichier n’est pas valide. Sinon, le nom de fichier est valide et nFileExtension et nFileOffset peuvent être utilisés comme si l’indicateur OFN_NOVALIDATE n’avait pas été spécifié.
OFN_OVERWRITEPROMPT
0x00000002
Provoque la boîte de dialogue Enregistrer sous pour générer un message si le fichier sélectionné existe déjà. L’utilisateur doit confirmer s’il faut remplacer le fichier.
OFN_PATHMUSTEXIST
0x00000800
L’utilisateur ne peut taper que des chemins d’accès valides et des noms de fichiers. Si cet indicateur est utilisé et que l’utilisateur entre un chemin d’accès et un nom de fichier non valides dans le champ d’entrée Nom de fichier, la fonction de boîte de dialogue affiche un avertissement dans une zone de message.
OFN_READONLY
0x00000001
La case à cocher Lecture seule est activée initialement lorsque la boîte de dialogue est créée. Cet indicateur indique l’état de la case à cocher Lecture seule lorsque la boîte de dialogue est fermée.
OFN_SHAREAWARE
0x00004000
Spécifie que si un appel à la fonction OpenFile échoue en raison d’une violation de partage réseau, l’erreur est ignorée et la boîte de dialogue retourne le nom de fichier sélectionné. Si cet indicateur n’est pas défini, la boîte de dialogue avertit votre procédure de hook lorsqu’une violation de partage réseau se produit pour le nom de fichier spécifié par l’utilisateur. Si vous définissez l’indicateur OFN_EXPLORER , la boîte de dialogue envoie le message CDN_SHAREVIOLATION à la procédure de crochet. Si vous ne définissez pas OFN_EXPLORER, la boîte de dialogue envoie le message inscrit SHAREVISTRING à la procédure de crochet.
OFN_SHOWHELP
0x00000010
Provoque l’affichage du bouton Aide . Le membre hwndOwner doit spécifier la fenêtre pour recevoir les messages inscrits HELPMSGSTRING que la boîte de dialogue envoie lorsque l’utilisateur clique sur le bouton Aide . Une boîte de dialogue de style Explorateur envoie un message de notification CDN_HELP à votre procédure de crochet lorsque l’utilisateur clique sur le bouton Aide .

nFileOffset

Type : WORD

Décalage de base zéro, en caractères, du début du chemin d’accès au nom de fichier dans la chaîne pointée par lpstrFile. Pour la version ANSI, il s’agit du nombre d’octets ; pour la version Unicode, il s’agit du nombre de caractères. Par exemple, si lpstrFile pointe vers la chaîne suivante, « c:\dir1\dir2\file.ext », ce membre contient la valeur 13 pour indiquer le décalage de la chaîne « file.ext ». Si l’utilisateur sélectionne plusieurs fichiers, nFileOffset est le décalage vers le premier nom de fichier.

nFileExtension

Type : WORD

Décalage de base zéro, en caractères, du début du chemin d’accès à l’extension de nom de fichier dans la chaîne pointée par lpstrFile. Pour la version ANSI, il s’agit du nombre d’octets ; pour la version Unicode, il s’agit du nombre de caractères. Généralement, l’extension de nom de fichier est la sous-chaîne qui suit la dernière occurrence du caractère dot (« . ») . Par exemple, txt est l’extension du nom de fichier readme.txt, html l’extension de readme.txt.html. Par conséquent, si lpstrFile pointe vers la chaîne « c:\dir1\dir2\readme.txt », ce membre contient la valeur 20. Si lpstrFile pointe vers la chaîne « c:\dir1\dir2\readme.txt.html », ce membre contient la valeur 24. Si lpstrFile pointe vers la chaîne « c:\dir1\dir2\readme.txt.html ». Ce membre contient la valeur 29. Si lpstrFile pointe vers une chaîne qui ne contient aucun caractère « ». tel que « c:\dir1\dir2\readme », ce membre contient zéro.

lpstrDefExt

Type : LPCTSTR

Extension par défaut. GetOpenFileName et GetSaveFileName ajoutent cette extension au nom de fichier si l’utilisateur ne parvient pas à taper une extension. Cette chaîne peut être n’importe quelle longueur, mais seuls les trois premiers caractères sont ajoutés. La chaîne ne doit pas contenir de point (.). Si ce membre est NULL et que l’utilisateur ne parvient pas à taper une extension, aucune extension n’est ajoutée.

lCustData

Type : LPARAM

Données définies par l’application que le système transmet à la procédure de crochet identifiée par le membre lpfnHook . Lorsque le système envoie le message WM_INITDIALOG à la procédure de crochet, le paramètre lParam du message est un pointeur vers la structure OPENFILENAME spécifiée lors de la création de la boîte de dialogue. La procédure de crochet peut utiliser ce pointeur pour obtenir la valeur lCustData .

lpfnHook

Type : LPOFNHOOKPROC

Pointeur vers une procédure de crochet. Ce membre est ignoré, sauf si le membre Indicateurs inclut l’indicateur OFN_ENABLEHOOK .

Si l’indicateur OFN_EXPLORER n’est pas défini dans le membre Flags , lpfnHook est un pointeur vers une procédure de hook OFNHookProcOldStyle qui reçoit les messages destinés à la boîte de dialogue. La procédure de crochet retourne FALSE pour transmettre un message à la procédure de boîte de dialogue par défaut ou TRUE pour ignorer le message.

Si OFN_EXPLORER est défini, lpfnHook est un pointeur vers une procédure de hook OFNHookProc . La procédure de crochet reçoit les messages de notification envoyés à partir de la boîte de dialogue. La procédure de crochet reçoit également des messages pour tous les contrôles supplémentaires que vous avez définis en spécifiant un modèle de dialogue enfant. La procédure de crochet ne reçoit pas de messages destinés aux contrôles standard de la boîte de dialogue par défaut.

lpTemplateName

Type : LPCTSTR

Nom de la ressource de modèle de dialogue dans le module identifié par le membre hInstance . Pour les ressources de boîte de dialogue numérotées, il peut s’agir d’une valeur retournée par la macro MAKEINTRESOURCE . Ce membre est ignoré, sauf si l’indicateur OFN_ENABLETEMPLATE est défini dans le membre Flags . Si l’indicateur OFN_EXPLORER est défini, le système utilise le modèle spécifié pour créer une boîte de dialogue qui est un enfant de la boîte de dialogue de style Explorateur par défaut. Si l’indicateur OFN_EXPLORER n’est pas défini, le système utilise le modèle pour créer une boîte de dialogue de style ancien qui remplace la boîte de dialogue par défaut.

lpEditInfo

Ce membre est compilé de manière conditionnelle (à l’aide #ifdef _MAC) afin qu’il soit applicable uniquement aux ordinateurs Macintosh de Motorola 68K, et non aux systèmes d’exploitation clients Windows.

lpstrPrompt

Ce membre est compilé de manière conditionnelle (à l’aide #ifdef _MAC) afin qu’il soit applicable uniquement aux ordinateurs Macintosh de Motorola 68K, et non aux systèmes d’exploitation clients Windows.

pvReserved

Type : void*

Ce membre est réservé.

dwReserved

Type : DWORD

Ce membre est réservé.

FlagsEx

Type : DWORD

Un ensemble d’indicateurs de bits que vous pouvez utiliser pour initialiser la boîte de dialogue. Actuellement, ce membre peut être zéro ou l’indicateur suivant.

Valeur Signification
OFN_EX_NOPLACESBAR
0x00000001
Si cet indicateur est défini, la barre d’emplacements n’est pas affichée. Si cet indicateur n’est pas défini, les boîtes de dialogue de style Explorateur incluent une barre d’emplacements contenant des icônes pour les dossiers couramment utilisés, tels que Favoris et Bureau.

Remarques

Pour des raisons de compatibilité, la barre Places est masquée si les indicateurs sont définis sur OFN_ENABLEHOOK et lStructSize est OPENFILENAME_SIZE_VERSION_400.

Notes

L’en-tête commdlg.h définit OPENFILENAME comme alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

   
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
En-tête commdlg.h (include Windows.h)

Voir aussi

Bibliothèque de boîtes de dialogue courante

Conceptuel

GetOpenFileName

GetSaveFileName

Autres ressources

Référence

SHGetSpecialFolderLocation