Retour

OPENFILENAME (Win32)

typedef struct tagOFN { /* ofn */ DWORD lStructSize; HWND hwndOwner; HANDLE hInstance; LPSTR lpstrFilter; LPSTR lpstrCustomFilter; DWORD nMaxCustFilter; DWORD nFilterIndex; LPSTR lpstrFile; DWORD nMaxFile; LPSTR lpstrFileTitle; DWORD nMaxFileTitle; LPSTR lpstrInitialDir; LPSTR lpstrTitle; DWORD Flags; WORD nFileOffset; WORD nFileExtension; LPSTR lpstrDefExt; DWORD lCustData; LPOFNHOOKPROC lpfnHook; LPSTR lpTemplateName; } OPENFILENAME; La structure OPENFILENAME contient les informations dont le système se sert pour initialiser la boîte de dialogue d'ouverture ou de sauvegarde de fichiers. Après que l'utilisateur aie refermé la boîte de dialogue, le système renvoie dans cette structure les informations à propos du fichier qui a été choisit. Membre Description lStructSize Spécifie la longueur de la structure (en octets). hwndOwner Identifie la fenêtre parente de cette boîte de dialogue. Ce paramètre peut être n'importe quel Handle valide de fenêtre, ou un NULL si la boîte de dialogue n'a aucun parent. hInstance Identifie un bloc de données qui contient un calibre de dialogBox indiqué par le membre lpstrTemplateName. Ce membre est utilisé uniquement si le paramètre FLAGS (voir plus bas) spécifie le Flag OFN_ENABLETEMPLATE; sinon, ce membre est ignoré. lpstrFilter Pointe vers un Buffer qui contient des chaînes de caractères terminées par un double NULL. La première chaîne de caractères décrit un nom de filtre (par exemple, "Fichiers texte"), la seconde chaîne spécifie le filtre (par exemple, "*.txt"). Plusieurs filtres peuvent être associées pour un même nom de filtres en séparant les types de filtres avec un point-virgule (par exemple, "*.txt; *.doc; *.bak"). La toute dernière chaîne de caractères de ce Buffer doit être terminée par deux caractères NULL. - Si ce paramètre est NULL, la boîte de dialogue n'affichera pas de filtres. Les chaînes de caractères du filtre sont assumées pour être dans l'ordre approprié - le système ne change pas l'ordre dans lesquelles vous les avez déclarées. lpstrCustomFilter Pointe sur un Buffer contenant deux chaînes de caractères de filtre définies par l'utilisateur. La première chaîne décrit le nom du filtre et la seconde spécifie le modèle de filtre (par exemple "WinWord, *.docnn"). Le Buffer est terminé par deux caractères NULL. Le système copie les chaîne du Buffer lorsque l'utilisateur ressort de la boîte de dialogue. Si ce paramètre est NULL, la boîte de dialogue fera apparaître les fichiers, mais ne pourra pas les sauvegarder. nMaxCustFilter Représente la taille (en octets) du Buffer identifié par le membre lpstrCustomFilter. Ce Buffer doit être au moins de 40 octets de long. Ce paramètre est ignoré si le membre lpstrCustomFilter Est NULL ou pointe sur une chaîne de caractères vide. nFilterIndex Est un index, du Buffer indiqué par le membre lpstrFilter. Le système emploie la valeur de l'index pour obtenir une paire de chaîne de caractères pour les employer en tant que description du filtre initial et modèle du filtre pour la boîte de dialogue. La première paire de chaînes a une valeur d'index de 1. Quand l'utilisateur referme la boîte de dialogue, le système copie l'index choisi dans cet emplacement. Si le membre nFilterIndex est mis à 0, le filtre par défaut sera employé. Si le membre nFilterIndex est mis à 0 et le membre lpstrCustomFilter est NULL, le système emploie le premier filtre du Buffer identifié par le membre lpstrFilter. Si les trois membres sont mis à 0 ou NULL, le système n'emploie pas de filtres et n'affiche aucun fichiers dans le Control:liste de la boîte de dialogue. lpstrFile Pointe sur un Buffer qui contient un nom de fichier qu'on a l'habitude d'initialiser en tant que Nom du fichier dans le contrôle d'édition. Le premier caractère de ce Buffer doit être NULL si l'initialisation n'est pas nécessaire. Pour la fonction GetOpenFileName ou des retours de la fonction GetSaveFileName, ce Buffer contient la commande designator, le chemin, le nom du fichier et l'extension du fichier choisi. - Si le Buffer est trop petit, la procédure de dialogue copie la taille exigée dans ce paramètre. nMaxFile Spécifie la taille (en octets) du Buffer indiqué par le membre lpstrFile. Les fonctions GetOpenFileName et GetSaveFileName renvoient FALSE si le Buffer est trop petit pour contenir toutes les informations à propos du fichier. Le Buffer doit être d'au moins 256 octets de long. Ce paramètre est ignoré si le membre lpstrFile est NULL. lpstrFileTitle Pointe sur le Buffer qui reçoit le titre du fichier choisi. Pour les versions 3.0 et 3.1 de Windows ce Buffer reçoit le nom et l'extension du fichier, mais aucune information à propos du chemin complet. Cette application doit employer cette chaîne de caractères pour afficher le titre du fichier. Si ce membre est NULL, la fonction ne copiera pas le titre du fichier. nMaxFileTitle Spécifie la longueur maximale de la chaîne de caractères qui peut être copiée dans le Buffer lpstrFileTitle. Ce membre est ignoré si lpstrFileTitle est NULL. lpstrInitialDir Pointe sur une chaîne de caractères, laquelle spécifie la liste initiale des fichiers. Si ce membre est NULL, le système emploiera la liste actuelle à la place. lpstrTitle Pointe sur une chaîne de caractères qui servira de titre pour la boîte de dialogue. Si ce membre est NULL, le système emploie le titre par défaut (c'est-à-dire "Save as…" ou "Open"). ------------------------------------------------------------------------------ Flags Représente les Flags de création de la boîte de dialogue. Ce membre peut être une combinaison des valeurs suivantes : Valeur Signification OFN_ALLOWMULTISELECT Indique que la liste des fichiers permet des choix multiples. (Si la DialogBox est créée en employant un calibre privé, la constante LBS_EXTENDEDSEL doit apparaître dans la définition de cette liste de noms de fichiers.) OFN_CREATEPROMPT Indique que la DialogBox doit poser une question à l'utilisateur pour savoir si il veut réellement créer un fichier qui n'existe pas actuellement . (Ce Flag met automatiquement Flags OFN_PATHMUSTEXIST et OFN_FILEMUSTEXIST.) OFN_ENABLEHOOK Active la fonction de 'hook' indiquée dans le membre lpfnHook. OFN_ENABLETEMPLATE Fait en sorte que le système crée la boîte de dialogue d'après un calibre de DialogBox identifié par les membres hInstance et lpTemplateName. OFN_ENABLETEMPLATEHANDLE Indique que le membre hInstance identifie un bloc de données qui contient un calibre de DialogBox pré chargé. Le système ignore le membre lpTemplateName si ce Flag est spécifié. OFN_EXTENSIONDIFFERENT Indique que l'utilisateur a entré une extension de fichier différente de l'extension indiquée par lpstrDefExt. La fonction ne tiendra pas compte de ce Flag si lpstrDefExt est NULL. OFN_FILEMUSTEXIST Indique que l'utilisateur peut uniquement entrer des noms de fichiers existants dans la zone de saisie des Noms de fichiers. Si ce Flag est déclaré et que l'utilisateur entre un nom de fichier invalide dans la zone de saisie, la fonction de dialogue affichera un avertissement dans une MessageBox. (Ce Flag fait en sorte que le Flag OFN_PATHMUSTEXIST est lui aussi déclaré.) OFN_HIDEREADONLY La DialogBox n'affichera pas les fichiers qui possèdent la propriété 'Read Only'. OFN_NOCHANGEDIR Force la boîte de dialogue à refuser qu'on change de répertoire. OFN_OVERWRITEPROMPT Fait en sorte que lorsqu'on Sauvegarde un nom de fichier déjà existant, une MessageBox apparaisse pour que l'utilisateur puisse confirmer qu'il souhaite bien écraser l'ancien fichier. OFN_PATHMUSTEXIST Indique que l'utilisateur peut uniquement entrer des noms de chemin valides. Si ce Flag est mis et que l'utilisateur entre un nom de chemin invalide, la fonction de dialogue affichera un avertissement dans une MessageBox. OFN_READONLY Ne fait apparaître que les fichiers ayant la propriété 'Read Only'. OFN_SHOWHELP La boîte de dialogue affichera un bouton d'Aide. hwndOwner ne doit pas être NULL si cette option est spécifiée. ------------------------------------------------------------------------------ nFileOffset Représente un changement d'origine à partir du début du chemin jusqu'au nom du fichier dans la chaîne de caractères indiquée par lpstrFile. Par exemple, si lpstrFile pointe sur la chaîne de caractères suivante, "c:\dir1\dir2\file.ext", ce membre contiendra la valeur 13. nFileExtension Représente un changement d'origine à partir du début du chemin jusqu'à l'extension du fichier dans la chaîne de caractères indiquée par lpstrFile. Par exemple, si lpstrFile pointe sur la chaîne de caractères suivante, "c:\dir1\dir2\file.ext", ce membre contiendra la valeur 18. - Si l'utilisateur n'a pas entré d'extension et que lpstrDefExt est NULL, ce membre représente un changement d'origine NULL. Si l'utilisateur a entré "." en tant que dernier caractère pour le nom du fichier, ce membre spécifiera un 0. lpstrDefExt Pointe sur un Buffer qui contient l'extension par défaut. Les fonctions GetOpenFileName et GetSaveFileName ajoutent cette extension au nom du fichier si l'utilisateur ne réussit pas à entrer d'extension. Cette chaîne de caractères peut être de n'importe quelle longueur, mais seulement les trois premiers caractères seront ajoutés. La chaîne de caractères ne doit pas contenir une période ".". Si ce membre est NULL et que l'utilisateur ne réussit pas à entrer d'extension, aucune extension n'est ajoutée. lCustData Représente des données qui sont des application-définies que le système passe à la fonction de Hook, identifiée par le membre lpfnHook. Le système passe les données dans le paramètre lParam du message WM_INITDIALOG. lpfnHook Pointe sur la fonction de Hook qui traite des messages destinés à la boîte de dialogue. Votre application doit spécifier la fonction OFN_ENABLEHOOK dans le membre FLAGS pour activer la fonction; Sinon, le système ignore ce membre. La fonction de Hook doit retourner FALSE pour transmettre un message à la procédure de dialogue standard, ou TRUE pour renoncer au message. lpstrTemplateName Pointe sur une chaîne de caractères terminée par un NULL, laquelle est le nom de la ressource pour calibrer la boîte de dialogue qui doit être substituée au calibre des DialogBox standard. Une application peut employer la macro MAKEINTRESOURCE pour des ressources de dialogue numérotées. Ce membre est employé uniquement si le membre FLAGS spécifie le Flag OFN_ENABLETEMPLATE; Sinon, ce membre est ignoré. Voir Aussi GetOpenFileName, GetSaveFileName, MAKEINTRESOURCE
Retour