Structure OPENFILENAMEW (commdlg.h)

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

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 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;

Membres

lStructSize

Type : DWORD

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

hwndOwner

Type : HWND

Handle de 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 avoir la valeur NULL si la boîte de dialogue n’a pas de propriétaire.

hInstance

Type : HINSTANCE

Si l’indicateur OFN_ENABLETEMPLATEHANDLE est défini dans le membre Flags , hInstance est un handle d’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 d’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 enfant de la boîte de dialogue de style Explorer 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 terminé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 a la valeur 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 filtrage, 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 préserver 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 vide. 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 tapé par l’utilisateur. Le système utilise les chaînes pour initialiser le filtre de fichier défini par l’utilisateur lors de la prochaine création de la boîte de dialogue. Si le membre nFilterIndex est égal à zéro, la boîte de dialogue utilise le filtre personnalisé.

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

Si ce membre n’a pas la valeur 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 a la valeur 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 vers 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 égal à zéro et que lpstrCustomFilter a la valeur 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 d’édition 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 sélectionnés. Pour les boîtes de dialogue de style Explorer, 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 de 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 des 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 du 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 vers lpstrFile. La mémoire tampon doit être suffisamment grande pour stocker la ou les chaînes de chemin d’accès et 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 du fichier (sans informations de chemin d’accès) du fichier sélectionné. Ce membre peut avoir la valeur NULL.

nMaxFileTitle

Type : DWORD

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

lpstrInitialDir

Type : LPCTSTR

Répertoire initial. L’algorithme de sélection du répertoire initial varie selon les 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’a pas la valeur NULL, il spécifie le répertoire initial.
  4. Si lpstrInitialDir a la valeur NULL et que le répertoire actif contient des 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 une longue période, son chemin d’accès sélectionné enregistré est ignoré.
  4. Si lpstrInitialDir a la valeur NULL et que le répertoire actif contient des 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 a la valeur NULL, le système utilise le titre par défaut (c’est-à-dire Enregistrer sous ou Ouvrir).

Flags

Type : DWORD

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 Explorer ; sinon, elle utilise l’ancienne interface utilisateur.

Si l’utilisateur sélectionne plusieurs fichiers, la mémoire tampon lpstrFile retourne le chemin d’accès au répertoire actif suivi des noms de fichiers sélectionnés. Le membre nFileOffset est le décalage, en octets ou en caractères, du nom du premier fichier, et le membre nFileExtension n’est pas utilisé. Pour les boîtes de dialogue de style Explorer, 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 Explorer de retourner des noms de fichiers longs qui incluent des espaces. Pour les anciennes boîtes de dialogue, 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 des 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 entraîne la boîte de dialogue à demander à l’utilisateur l’autorisation de 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 vers le fichier sélectionné dans le répertoire du système de fichiers qui contient les derniers documents utilisés de 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 hook spécifiée dans le membre lpfnHook .
OFN_ENABLEINCLUDENOTIFY
0x00400000
Provoque l’envoi de CDN_INCLUDEITEM messages de notification à votre procédure de crochet OFNHookProc lorsque l’utilisateur ouvre un dossier. La boîte de dialogue envoie une notification pour chaque élément dans le dossier nouvellement ouvert. Ces messages vous permettent de contrôler les éléments que la boîte de dialogue affiche dans la liste des éléments du dossier.
OFN_ENABLESIZING
0x00800000
Permet de redimensionner la boîte de dialogue de style Explorer à l’aide de la souris ou du clavier. Par défaut, les boîtes de dialogue Ouvrir et Enregistrer sous de style Explorer permettent de redimensionner la boîte de dialogue, que cet indicateur soit défini ou non. Cet indicateur n’est nécessaire que 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 boîte 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 enfant de la boîte de dialogue de style Explorer 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 enfant de la boîte de dialogue de style Explorer 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 de style Explorer. Pour plus d’informations, consultez Procédures de crochet de style Explorer et modèles personnalisés de style Explorer.

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

Si vous souhaitez utiliser l’ancienne interface utilisateur, omettez l’indicateur OFN_EXPLORER et fournissez un modèle ou une procédure de hook de remplacement de style ancien. Si vous souhaitez utiliser l’ancien style, mais n’avez pas besoin d’un modèle ou d’une procédure de hook personnalisé, il vous suffit de fournir une procédure de hook 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 a la valeur NULL.
OFN_FILEMUSTEXIST
0x00001000
L’utilisateur peut taper uniquement les noms des 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 boîte 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 . Il ne peut pas être utilisé avec une boîte de dialogue Enregistrer sous .
OFN_FORCESHOWHIDDEN
0x10000000
Force l’affichage des fichiers système et masqués, 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 zone Lecture seule case activée.
OFN_LONGNAMES
0x00200000
Pour les boîtes de dialogue de style ancien, cet indicateur oblige la boîte de dialogue à utiliser des 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 de style Explorer ignorent cet indicateur et affichent toujours les noms de fichiers longs.
OFN_NOCHANGEDIR
0x00000008
Restaure le répertoire actif à 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
Indique à la boîte de dialogue de renvoyer le chemin d’accès et le nom de 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 oblige la boîte de dialogue à utiliser des noms de fichiers courts (format 8.3). les boîtes de dialogue de style Explorer ignorent cet indicateur et affichent toujours les noms de fichiers longs.
OFN_NONETWORKBUTTON
0x00020000
Masque et désactive le bouton Réseau .
OFN_NOREADONLYRETURN
0x00008000
La zone Lecture seule case activée du fichier retourné n’est pas sélectionnée et ne se trouve 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 case activée pas pour 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 avec soin, car un fichier ne peut pas être rouvert une fois fermé.
OFN_NOVALIDATE
0x00000100
Les boîtes de dialogue courantes autorisent les 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 du fichier à l’aide du message FILEOKSTRING . Si la zone de texte du contrôle d’édition est vide ou ne contient 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 autre chose, nFileOffset et nFileExtension sont définis sur les valeurs générées par l’analyse du texte. Aucune extension par défaut n’est ajoutée au texte, ni le texte n’est 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
La boîte de dialogue Enregistrer sous génère une boîte de message si le fichier sélectionné existe déjà. L’utilisateur doit confirmer s’il faut remplacer le fichier.
OFN_PATHMUSTEXIST
0x00000800
L’utilisateur peut taper uniquement des chemins d’accès et des noms de fichiers valides. Si cet indicateur est utilisé et que l’utilisateur tape 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 boîte de message.
OFN_READONLY
0x00000001
Entraîne la sélection initiale de la zone Lecture seule case activée lors de la création de la boîte de dialogue. Cet indicateur indique l’état de la zone Lecture seule case activée 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 hook. Si vous ne définissez pas OFN_EXPLORER, la boîte de dialogue envoie le message inscrit SHAREVISTRING à la procédure de hook.
OFN_SHOWHELP
0x00000010
Entraîne l’affichage du bouton Aide dans la boîte de dialogue. 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 Explorer envoie un message de notification CDN_HELP à votre procédure de hook 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 nom du premier 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. En règle générale, l’extension de nom de fichier est la sous-chaîne qui suit la dernière occurrence du caractère point (« . »). 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\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 a la valeur 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 hook identifiée par le membre lpfnHook . Lorsque le système envoie le message WM_INITDIALOG à la procédure de hook, 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 hook peut utiliser ce pointeur pour obtenir la valeur lCustData .

lpfnHook

Type : LPOFNHOOKPROC

Pointeur vers une procédure de hook. 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 passer 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 crochet OFNHookProc . La procédure de hook reçoit les messages de notification envoyés à partir de la boîte de dialogue. La procédure de hook reçoit également des messages pour tous les contrôles supplémentaires que vous avez définis en spécifiant un modèle de boîte de dialogue enfant. La procédure de hook 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 Indicateurs . 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 enfant de la boîte de dialogue de style Explorer 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 de #ifdef _MAC) afin qu’il ne s’applique qu’aux ordinateurs Macintosh Motorola 68K, et non aux systèmes d’exploitation clients Windows.

lpstrPrompt

Ce membre est compilé de manière conditionnelle (à l’aide de #ifdef _MAC) afin qu’il ne s’applique qu’aux ordinateurs Macintosh 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

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

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

Remarques

Pour des raisons de compatibilité, la barre de Places est masquée si Indicateurs est défini sur OFN_ENABLEHOOK et si lStructSize est OPENFILENAME_SIZE_VERSION_400.

Notes

L’en-tête commdlg.h définit OPENFILENAME comme un 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. Le mélange de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage 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

Condition requise Valeur
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 (inclure Windows.h)

Voir aussi

Bibliothèque de boîtes de dialogue commune

Conceptuel

GetOpenFileName

GetSaveFileName

Autres ressources

Référence

SHGetSpecialFolderLocation