Attribute VB_Name = "Moduletext"
Option Explicit

Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

Public TitreVar As String
Public MsgVar As String
Public RepVar As Integer
Public LfVar As String

Public fMainForm As frmMain

Public flagPropriete As Integer  ' indique si replace feuille fille 0 cascade 1 horizontale ou 2 verticale


Sub WriteRecentFiles(OpenFileName As String)
    Dim i As Integer
    Dim strFile As String
    Dim strKey As String

    ' Copie RecentFile1 dans RecentFile2, et ainsi de suite.
    For i = 5 To 0 Step -1
        strKey = "RecentFile" & i
        strFile = GetSetting(App.Title, "Settings", strKey, "")
        ' Si existe déjà
        If strFile = OpenFileName Then
           Exit Sub
        End If
        If strFile <> "" Then
            strKey = "RecentFile" & (i + 1)
            SaveSetting App.Title, "Settings", strKey, strFile
        End If
    Next i
  
    ' Écrit le fichier ouvert dans le fichier le plus récent.
    SaveSetting App.Title, "Settings", "RecentFile1", OpenFileName
End Sub

Sub GetRecentFiles()
    Dim i As Integer
    Dim j As Integer
    Dim varFiles As Variant ' Variable pour stocker le tableau renvoyé.
 
    ' Obtient les fichiers les plus récents de la base de registres à l'aide de l'instruction GetAllSettings.
    ' ThisApp et ThisKey sont des constantes définies dans ce module.
    If GetSetting(App.Title, "Settings", "RecentFile1") = Empty Then Exit Sub
    
    varFiles = GetAllSettings(App.Title, "Settings")
    For i = 0 To UBound(varFiles, 1)
      If InStr(varFiles(i, 0), "RecentFile") > 0 Then
         fMainForm.mnuFileMRU(j).Visible = True
         fMainForm.mnuFileMRU(j).Caption = varFiles(i, 1)
         fMainForm.mnuFileMRU(j).Visible = True
         j = j + 1
         fMainForm.mnuFileBar6.Visible = True
      End If
    Next i
End Sub

Sub Main()
    Dim t As String
    LfVar = Chr(13) + Chr(10)
    ' si existe déjà en mémoire
    If App.PrevInstance Then
       MsgBox "Le logiciel ne peut pas être chargé." + LfVar + "car il existe déjà en mémoire." + LfVar + LfVar + "Vérifiez dans la barre des tâches.", vbExclamation, "Logiciel est déjà en mémoire."
       End
    End If
    ' Si la première utilisation
    t = GetSetting("Opticiel", "Settings", "Licence", "NonInscrit")
    If t = "NonInscrit" Then
      Licence.Show vbModal
    End If
    
    ' vérifi si on doit demander un mot de passe
    If GetSetting(App.Title, "Settings", "Mot de passe", "NON") = "OUI" Then
      frmLogin.Show vbModal
      If Not frmLogin.OK Then
          'L'ouverture de session a echoué. Application terminée
          End
      End If
      Unload frmLogin
      Set frmLogin = Nothing
    End If

    frmSplash.Show vbModeless
    frmSplash.Refresh
    Sleep (1000)

    Set fMainForm = New frmMain
    Load fMainForm
    Unload frmSplash

    fMainForm.Show
End Sub

