~ 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 ~
~ Partenaires ~
|
Fonction : FichierOuvrir Public Declare Function GetOpenFileName Lib "comdlg32.dll" Alias "GetOpenFileNameA" ( _ 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 FichierOuvrir(lgHwnd As Long, stFiltre As String, lgIdxFiltre As Long, _ Optional lgFlags As esFlags = OFN_EXPLORER + OFN_LONGNAMES + OFN_PATHMUSTEXIST, _ 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 = GetOpenFileName(tyDialog) ' Retourne le nom long du fichier. lgLastIdxFilter = tyDialog.nFilterIndex FichierOuvrir = Left$(tyDialog.lpstrFile, InStr(1, tyDialog.lpstrFile, vbNullChar) - 1) End Function |