Hit-Parade .VB Research Center . Compteur
Accueil ~  Code ~  Programmes ~  Api ~  Forum ~  Cours ~  Livres ~  Quiz ~  Annuaire
~ Edito ~
12/03/2006 @ 13:39
Depuis la dernière mise à jour (qui remonte à... oulala plusieurs mois), un petit ménage de printemps s'impose. Ca tombe bien, c'est presque la période.
Au menu, et progressivement sur les jours à venir, rafraîchissement de plusieurs fonctions et procédures, nouvelles APIs et nouveaux programmes.

~ Rechercher ~

  

~ Annuaire VB ~
 Rechercher un site :
  

~ Partenaires ~

Fonction GetSaveFileName

Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" ( _
                 pOpenfilename
As OPENFILENAME) As Long
Versions :
. Windows 95/98 : Oui
. Windows NT : A partir de 3.1
. Windows 2000/XP : Oui

Description :
Cette fonction affiche une boîte de dialogue 'Enregistrer' ('Enregistrer sous...').
pOpenfilename est une structure (détaillée ci-dessous) qui contient les caractéristiques d'affichage de la fenêtre.
lStructSize doit contenir la taille de la structure.
hwndOwner est le handle de la fenêtre mère de la boîte de dialogue.
hInstance est l'instance de l'application courante.
lpstrFilter définit les extensions affichées dans la boîte de dialogue. Chaque extension est délimitée par un caractère null (vbNullChar) et la fin de la chaîne est désignée par deux caractère null. Chaque extension comprend, une définition suivie de l'extension réelle, séparées par un "tube" ("Tous les fichiers (*.*)|*.*" & vbNullChar & "Fichiers textes (*.txt)|*.txt" & vbNullChar & vbNullChar).
nFilterIndex est l'index du filtre à utiliser par défaut.
lpstrFile est le nom du fichier affiché à l'ouverture de la fenêtre.
nMaxFile est la longueur du buffer précédent.
lpstrFileTitle contient le nom et extension du fichier sans le chemin.
nMaxFileTitle est la longueur du buffer précédent.
lpstrInitialDir est le répertoire initial de la boîte de dialogue.
lpstrTitle est le titre de la fenêtre.
flags est un ensemble de constantes désignant les caractéristiques de la fenêtre (voir le tableau de constantes plus bas).
lpstrDefExt est l'extension ajoutée par défaut automatiquement si l'utilisateur l'oublie.

Type OPENFILENAME
    lStructSize As Long
    hwndOwner As Long
    hInstance As Long
    lpstrFilter As String
    lpstrCustomFilter As String
    nMaxCustFilter As Long
    nFilterIndex As Long
    lpstrFile As String
    nMaxFile As Long
    lpstrFileTitle As String
    nMaxFileTitle As Long
    lpstrInitialDir As String
    lpstrTitle As String
    flags As Long
    nFileOffset As Integer
    nFileExtension As Integer
    lpstrDefExt As String
    lCustData As Long
    lpfnHook As Long
    lpTemplateName As String
End Type


ConstanteValeur Définition
OFN_ALLOWMULTISELECT&H200 Autoriser la sélection multiple de fichiers.
OFN_CREATEPROMPT&H2000 Afficher une fenêtre de confirmation de création de fichier.
OFN_EXPLORER&H80000 Donne un style 'Explorer' à la boîte de dialogue (par défaut).
OFN_EXTENSIONDIFFERENT&H400 Indique que l'utilisateur a choisi une extension différente de celle par défaut.
OFN_FILEMUSTEXIST&H1000 Seuls des fichiers existants peuvent être saisis.
OFN_HIDEREADONLY&H4 Case à cocher 'Lecture seule' invisible.
OFN_LONGNAMES&H200000 Gestion des noms longs pour les boîtes de dialogue n'ayant pas le style 'Explorer'.
OFN_NOCHANGEDIR&H8 Conserve le répertoire d'origine à la fermeture de la fenêtre.
OFN_NODEREFERENCELINKS&H100000 La boîte de dialogue prendra le nom et le chemin du raccourci sélectionné.
OFN_NOLONGNAMES&H40000 Utilise les noms courts de fichier (sans effet dans le cas des fenêtres du type 'Explorer').
OFN_NONETWORKBUTTON&H20000 Cache (désactive) le bouton 'Réseau'.
OFN_NOREADONLYRETURN&H8000 Ne sélectionne pas la case à cocher 'Lecture seule'.
OFN_NOTESTFILECREATE&H10000 Le fichier ne sera pas créé avant la fermeture de la fenêtre.
OFN_NOVALIDATE&H100 Ne vérifie pas la validité de la saisie (validité du nom de fichier).
OFN_OVERWRITEPROMPT&H2 Afficher un message de confirmation d'écrasement de fichier si celui-ci existe déjà.
OFN_PATHMUSTEXIST&H800 Les chemins et fichiers saisis doivent exister.
OFN_READONLY&H1 La case 'Lecture seule' est cochée à la création de la fenêtre.
OFN_SHAREAWARE&H4000 Ignorer les erreurs de partage réseau.
OFN_SHOWHELP&H10 Afficher le bouton 'Aide' dans la boîte de dialogue.

Exemple d'utilisation :

' Déclaration de fonctions API
Public Declare Function GetSaveFileName Lib "comdlg32.dll" Alias "GetSaveFileNameA" ( _
                                        pOpenfilename
As OPENFILENAME) As Long

' Déclaration de type
Public Type OPENFILENAME
    lStructSize
As Long
   
hWndOwner As Long
   
hInstance As Long
   
lpstrFilter As String
   
lpstrCustomFilter As String
   
nMaxCustFilter As Long
   
nFilterIndex As Long
   
lpstrFile As String
   
nMaxFile As Long
   
lpstrFileTitle As String
   
nMaxFileTitle As Long
   
lpstrInitialDir As String
   
lpstrTitle As String
   
flags As Long
   
nFileOffset As Integer
   
nFileExtension As Integer
   
lpstrDefExt As String
   
lCustData As Long
   
lpfnHook As Long
   
lpTemplateName As String
End Type

' Déclaration de constantes
Public Enum esFlags
    OFN_ALLOWMULTISELECT = &H200
    OFN_CREATEPROMPT = &H2000
    OFN_ENABLEHOOK = &H20
    OFN_ENABLETEMPLATE = &H40
    OFN_ENABLETEMPLATEHANDLE = &H80
    OFN_EXPLORER = &H80000
    OFN_EXTENSIONDIFFERENT = &H400
    OFN_FILEMUSTEXIST = &H1000
    OFN_HIDEREADONLY = &H4
    OFN_LONGNAMES = &H200000
    OFN_NOCHANGEDIR = &H8
    OFN_NODEREFERENCELINKS = &H100000
    OFN_NOLONGNAMES = &H40000
    OFN_NONETWORKBUTTON = &H20000
    OFN_NOREADONLYRETURN = &H8000
    OFN_NOTESTFILECREATE = &H10000
    OFN_NOVALIDATE = &H100
    OFN_OVERWRITEPROMPT = &H2
    OFN_PATHMUSTEXIST = &H800
    OFN_READONLY = &H1
    OFN_SHAREAWARE = &H4000
    OFN_SHOWHELP = &H10
End Enum

Public Function
FichierEnregistrer(lgHwnd As Long, stFiltre As String, lgIdxFiltre As Long, _
            
Optional lgFlags As esFlags = OFN_EXPLORER + OFN_LONGNAMES + _
                                           OFN_PATHMUSTEXIST + OFN_NOREADONLYRETURN, _
            
Optional stTitre As String = vbNullString, _
            
Optional stInitFile As String = vbNullString, _
            
Optional stInitDir As String = vbNullString, _
            
Optional stDefautExt As String = vbNullString) As String
' Fenêtre "Enregistrer un fichier".
Dim tyDialog As OPENFILENAME
Dim lgRep As Long
tyDialog.lStructSize = Len(tyDialog)
tyDialog.hWndOwner = lgHwnd
' Handle du propriétraire de la fenêtre
tyDialog.hInstance = App.hInstance
tyDialog.lpstrFilter = Replace(stFiltre, "|", vbNullChar) & vbNullChar & vbNullChar
tyDialog.lpstrCustomFilter = vbNullString
' Filtre personnalisé (non géré).
tyDialog.nMaxCustFilter = 0 ' Index de filtre personnalisé (non géré).
tyDialog.nFilterIndex = lgIdxFiltre ' Index du filtre à utiliser par défaut
' Nom de fichier affiché à l'initialisation de la fenêtre.
tyDialog.lpstrFile = Left$(stInitFile & String$(1024, vbNullChar), 1024)
tyDialog.nMaxFile = Len(tyDialog.lpstrFile) - 1
' Longueur du nom de fichier.
tyDialog.lpstrFileTitle = tyDialog.lpstrFile ' Nom et extension du fichier (sans chemin).
tyDialog.nMaxFileTitle = tyDialog.nMaxFile ' Taille de la chaîne précédente.
tyDialog.lpstrInitialDir = stInitDir ' Répertoire initial.
tyDialog.lpstrTitle = stTitre ' Titre de la fenêtre.
tyDialog.flags = lgFlags ' Flags pour affichage de la fenêtre.
'tyDialog.nFileOffset ' Position du nom du fichier dans la chaîne.
'tyDialog.nFileExtension ' Position de l'extension du fichier dans la chaîne.
' Extension par défaut ajoutée automatiquement si l'utilisateur l'oublie.
tyDialog.lpstrDefExt = stDefautExt
tyDialog.lCustData = 0
tyDialog.lpfnHook = 0
tyDialog.lpTemplateName = 0
' Affichage de la boîte de dialogue.
lgRep = GetSaveFileName(tyDialog)
' Retourne le nom long du fichier.
FichierEnregistrer = Left$(tyDialog.lpstrFile, InStr(1, tyDialog.lpstrFile, vbNullChar) - 1)
End Function

Retour à la liste des API

Visual Basic Research Center - (c) 2000/2002 -  Webmaster : docvb (chez) free (point) fr