VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
  Persistable = 0  'NotPersistable
  DataBindingBehavior = 0  'vbNone
  DataSourceBehavior  = 0  'vbNone
  MTSTransactionMode  = 0  'NotAnMTSObject
END
Attribute VB_Name = "MailSubBodies"
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" ,"CMailSubBody"
Attribute VB_Ext_KEY = "Member0" ,"CMailSubBody"
Option Explicit

'variable locale pour la collection
Private mCol As Collection

Public Function Add(Content As String, MIMEHeader As CMIMEHeader, Optional sKey As String) As CMailSubBody
    'créer un nouvel objet
    Dim objNewMember As CMailSubBody
    Set objNewMember = New CMailSubBody


    'définir les propriétés passées à la méthode
    objNewMember.Content = Content
    If IsObject(MIMEHeader) Then
        Set objNewMember.MIMEHeader = MIMEHeader
    Else
        objNewMember.MIMEHeader = MIMEHeader
    End If
    If Len(sKey) = 0 Then
        mCol.Add objNewMember
    Else
        mCol.Add objNewMember, sKey
    End If


    'renvoyer l'objet créé
    Set Add = objNewMember
    Set objNewMember = Nothing


End Function

Public Property Get Item(vntIndexKey As Variant) As CMailSubBody
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



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


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


Public Sub Parse(szBody As String, szBoundary As String)
Dim parts() As String, ub As Long, X As Long, body As CMailSubBody

szBoundary = vbCrLf & "--" & szBoundary
parts = Split(szBody, szBoundary)

ub = UBound(parts)
For X = 0 To ub - 1
    Set body = New CMailSubBody
    body.Parse parts(X)
    mCol.Add body
Next
End Sub

Public Function Make() As String
'
End Function
