VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "MailBodies"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"No"
Attribute VB_Ext_KEY = "Collection" ,"CMailBody"
Attribute VB_Ext_KEY = "Member0" ,"CMailBody"
'programmed by ShareVB
'gestion de la liste des parties

Option Explicit

'variable locale pour la collection
Private mCol As Collection

'ajoute une partie de mail à la collection
'========================================
'DisplayName   : objet contenant la partie de mail
'Optional sKey : clé identifiant cette partie
Public Function Add(ByVal objMail As CMailBody, Optional sKey As String) As CMailBody
    If Len(sKey) = 0 Then
        mCol.Add objMail
    Else
        mCol.Add objMail, sKey
    End If

    Set Add = objMail
End Function

'renvoie une partie de mail de la collection
'========================================
'vntIndexKey : index ou clé de la partie de mail à renvoyer
Public Property Get Item(vntIndexKey As Variant) As CMailBody
Attribute Item.VB_UserMemId = 0
    'Utilisé pour référencer un élément dans la collection
    'vntIndexKey contient l'index ou la clé dans la collection
    'Il est donc déclaré en tant que Variant
    'Syntaxe: Set toto = x.Item(xyz) ou Set toto = x.Item(5)
  Set Item = mCol(vntIndexKey)
End Property

'renvoie le nombre de parties de mail de la collection
Public Property Get Count() As Long
    'utilisée pour lire le nombre d'éléments dans la
    'collection. Syntaxe: Debug.Print x.Count
    Count = mCol.Count
End Property

'supprime une partie de mail de la collection
'==================================================
'vntIndexKey : index ou clé de la partie de mail à supprimer
Public Sub Remove(vntIndexKey As Variant)
    'utilisée lors de la suppression d'un élément de la collection
    'vntIndexKey contient l'index ou la clé, il est donc
    'déclaré en tant que Variant
    'Syntaxe: x.Remove(xyz)


    mCol.Remove vntIndexKey
End Sub

Public Property Get NewEnum() As IUnknown
Attribute NewEnum.VB_UserMemId = -4
Attribute NewEnum.VB_MemberFlags = "40"
    'Cette propriété vous permet d'énumérer
    'cette collection avec la syntaxe For...Each
    Set NewEnum = mCol.[_NewEnum]
End Property

Private Sub Class_Initialize()
    'Crée la collection lorsque cette classe est créée
    Set mCol = New Collection
End Sub

Private Sub Class_Terminate()
    'Détruit la collection lorsque cette classe est détruite
    Set mCol = Nothing
End Sub
