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 : FichierEnregistrer
Ouvre la boîte de dialogue standard Windows pour enregistrer un fichier (afin d'éviter l'utilisation du contrôle "CommonDialog").
(Consulté 2781 fois.)

' 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

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