ScreenShot
Dim MainForm( 8 )
Dim AddForm( 13 )

ANY_FOLDER = 255
INBOX_FOLDER = 254               ' IDs of stock folders
OUTBOX_FOLDER = 253              ' These should always be present and never change
SENT_FOLDER = 252

bkColor = Output.BackColor

addobject "MGCEMail.Mail", "Mail"
                                 '  Create initial form
addobject "Label", "flbl", 2, 0, 170, 18
addobject "MGCETreeview.Treeview", "folders", 2, 18, 170,  ( output.height / 2 ) - 18
addobject "CommandButton", "NewFolder", 178, 2, 70, 18
addobject "CommandButton", "DelFolder", 178, 20, 70, 18
addobject "CommandButton", "NewMsg", 178, 38, 70, 18
addobject "CommandButton", "DelMsg", 178, 56, 70, 18
addobject "CommandButton", "MoveMsg", 178, 74, 70, 18
addobject "MGCEListView.ListView", "msgs", 2, ( output.height / 2 ) + 1, 250, output.height / 2
set MainForm( 1 ) = flbl
set MainForm( 2 ) = folders
set MainForm( 3 ) = NewFolder
set MainForm( 4 ) = DelFolder
set MainForm( 5 ) = NewMsg
set MainForm( 6 ) = DelMsg
set MainForm( 7 ) = msgs
set MainForm( 8 ) = MoveMsg
for i = 1 to 8
   MainForm( i ).Hide
next
                                 ' Create New Message form
addobject "Label", "addlbl1", 2, 0, 70, 18
addobject "Textbox", "addsendto", 74, 0, 170, 18
addobject "Label", "addlbl2", 2, 20, 70, 18
addobject "Textbox", "addfrom", 74, 20, 170, 18
addobject "Label", "addlbl3", 2, 40, 70, 18
addobject "Textbox", "addCC", 74, 40, 170, 18
addobject "Label", "addlbl4", 2, 60, 70, 18
addobject "Textbox", "addsubject", 74, 60, 170, 18
addobject "Label", "addlbl5", 2, 81, 70, 18
addobject "Combobox", "addservice", 74, 80, 170, 80
addobject "Textbox", "addmessage", 2, 106, 242, output.height - 132
addobject "CommandButton", "addOK", 30, output.height - 20, 80, 18
addobject "CommandButton", "addCancel", 132, output.height - 20, 80, 18
set AddForm( 1 ) = addlbl1
set AddForm( 2 ) = addsendto
set AddForm( 3 ) = addlbl2
set AddForm( 4 ) = addfrom
set AddForm( 5 ) = addlbl3
set AddForm( 6 ) = addCC
set AddForm( 7 ) = addlbl4
set AddForm( 8 ) = addsubject
set AddForm( 9 ) = addlbl5
set AddForm( 10 ) = addservice
set AddForm( 11 ) = addmessage
set AddForm( 12 ) = addOK
set AddForm( 13 ) = addCancel
addlbl1.Caption = "Send To:"
addlbl1.Alignment = 1
addlbl2.Caption = "From:"
addlbl2.Alignment = 1
addlbl3.Caption = "CC:"
addlbl3.Alignment = 1
addlbl4.Caption = "Subject:"
addlbl4.Alignment = 1
addlbl5.Caption = "Service:"
addlbl5.Alignment = 1
for i = 1 to 13
   AddForm( i ).Hide
next
addlbl1.BackColor = bkColor
addlbl2.BackColor = bkColor
addlbl3.BackColor = bkColor
addlbl4.BackColor = bkColor
addlbl5.BackColor = bkColor
addOK.BackColor = bkColor
addCancel.BackColor = bkColor
addOK.Caption = "OK"
addCancel.Caption = "Cancel"
addsendto.Borderstyle = 1
addfrom.Borderstyle = 1
addCC.Borderstyle = 1
addsubject.Borderstyle = 1
addmessage.MultiLine = TRUE
addmessage.Borderstyle = 1

flbl.BackColor = bkColor
flbl.Caption = "Folders"
NewFolder.BackColor = bkColor
DelFolder.BackColor = bkColor
NewMsg.BackColor = bkColor
DelMsg.BackColor = bkColor
MoveMsg.BackColor = bkColor
NewFolder.Caption = "New Folder"
DelFolder.Caption = "Del Folder"
NewMsg.Caption = "New Msg"
DelMsg.Caption = "Del Msg"
MoveMsg.Caption = "Move Msg"
msgs.View = 1
msgs.FullRowSelect = TRUE
msgs.SelectionDisplay = TRUE
msgs.InsertColumn 1, "From"
msgs.InsertColumn 2, "Date"
msgs.InsertColumn 3, "Subject"

SetCtrls( 0 )
SetCtrls( 1 )

iFolderSelection = 0                     ' Nothing selected yet

On Error Resume Next
svcArray = Mail.AllServices              ' Get mail service names
if Err = 0 then
   for i = 1 to UBound( svcArray )       ' Loop through all services in array
      addservice.AddItem svcArray( i )
   next
   set svcArray = Nothing                ' Kill off array
end if
on error goto 0
AddAllFolders                            ' Add all folders to treeview


sub SetCtrls( i )
   if i = 0 then
      for j = 1 to UBound( MainForm )
         MainForm( j ).Hide
      next
      for j = 1 to UBound( AddForm )
         AddForm( j ).Hide
      next
      exit sub
   end if
   if i = 1 then
      for j = 1 to UBound( MainForm )
         MainForm( j ).Show
      next
      exit sub
   end if
   if i = 2 then
      for j = 1 to UBound( AddForm )
         AddForm( j ).Show
      next
   end if
end sub


sub AddAllFolders                         ' Add folders to treeview control
   folders.Clear                              ' First, remove anything already there
                                                   ' Add stock folders as top level items
   iInbox = folders.AddItem( ,, "Inbox", INBOX_FOLDER )
   i = folders.AddItem( , iInbox, "Outbox", OUTBOX_FOLDER )
   folders.AddItem , i, "Sent", SENT_FOLDER
   Mail.Open   
   folderArray = Mail.AllFolders       ' Get array of all folder IDs
   if Err = 0 then
      For i = 1 to UBound( folderArray )   '  Loop through all array items
         if folderArray( i ) <> INBOX_FOLDER and _
            folderArray( i ) <> OUTBOX_FOLDER and _
            folderArray( i ) <> SENT_FOLDER then
                                                    ' If not a stock folder, add folder name and ID as subitem to Inbox
            folders.AddItem iInbox, ,Mail.FolderName( folderArray( i ) ), folderArray( i )
         end if
      Next
      set folderArray = Nothing          ' Get rid of array
   end if
   Mail.Close
end sub


sub FolderMessages( iFolder )         ' Add all messages in a specific folder
   Mail.Open
   Mail.Folder = iFolder
   a = Mail.FolderMessages
   if TypeName( a ) <> "Empty" then           ' If it's not a empty array, do something
      for i = 1 to UBound( a )
         Mail.ReadMessage a( i )                   ' Get each message by it's ID
         msgs.InsertItem i, Mail.Sender,, a( i ) ' Add sender, saving ID with the item
         msgs.SetItem i, 2, Mail.Date             ' Add some other stuff to the listview
         msgs.SetItem i, 3, Mail.Subject
      next
      set a = Nothing                                   ' Get rid of array
   end if
   Mail.Close
end sub


sub NewFolder_Click           ' New Folder button clicked
   s = InputBox( "Enter a name for the new folder", "New Folder" )   ' Ask user for new folder name
   if Len( s ) = 0 then exit sub    '  Exit if  no name specified
   Mail.Open
   Mail.CreateFolder  s          ' Create new folder
   Mail.Close
   AddAllFolders                   ' Redo folders control to reflect change
   iFolderSelection = 0
end sub


sub DelFolder_Click                                       ' Del Folder button clicked
   if iFolderSelection = 0 then                           ' If no folder is selected, quit
      MsgBox "No folder is selected!"
      exit sub
   end if
   iItem = folders.ItemValue( iFolderSelection )    ' Get ID of selected folder
   if iItem = INBOX_FOLDER or iItem = OUTBOX_FOLDER or iItem = SENT_FOLDER then
      MsgBox "You cannot delete a system folder!"
      exit sub                                                     ' Exit if it's a system folder
   end if
   c = MsgBox( "Remove " & folders.ItemText( iFolderSelection ) & " folder?", vbOKCancel, _
                       "Remove Folder" )                     ' Ask user if he's sure about this
   if c = vbCancel then exit sub                          ' and exit if he's not
   Mail.Open
   Mail.RemoveFolder iItem                               ' Remove folder
   Mail.Close
   AddAllFolders                                              ' Redo folder list to reflect change
   iFolderSelection = 0
end sub


sub folders_Changed( olditem, newitem )           ' Selected folder changed
   iFolderSelection = newitem                           ' Save new selection
   iFolder = folders.ItemValue( newitem )            ' Get ID of selected folder
   msgs.Clear
   FolderMessages( iFolder )                             ' Get messages in selecetd folder
end sub


sub DelMsg_Click
   i = msgs.SelectedCount
   if i < 1 then
      MsgBox "No messages are selected"
      exit sub
   end if
   iCount = msgs.Count
   Mail.Open
   for i = iCount to 1 step -1
      if msgs.Select( i ) then Mail.DeleteMessage msgs.ItemValue( i, 1 )
   next    
   Mail.Close
   msgs.Clear
   FolderMessages( folders.ItemValue( iFolderSelection ) )
end sub

sub NewMsg_Click
   SetCtrls( 0 )
   SetCtrls( 2 )
end sub

sub addCancel_Click
   SetCtrls( 0 )
   SetCtrls( 1 )
end sub

sub addOK_Click
   if Len( addsendto.caption ) < 1 then
      MsgBox "You kind of forgot where it's supposed to go"
      addsendto.SetFocus
      exit sub
   end if
   if Len( addfrom.caption ) < 1 then
      MsgBox "You need to specify where it's coming from"
      addfrom.SetFocus
      exit sub
   end if
   if Len( addservice.text ) < 1 then
      MsgBox "You need to specify a service"
      addservice.SetFocus
      exit sub
   end if
   Mail.Open
   Mail.Clear
   Mail.Recipient = addsendto.caption
   Mail.Sender = addfrom.caption
   Mail.CC = addCC.caption
   Mail.Subject = addsubject.caption
   Mail.Message = addmessage.caption
   Mail.Folder = OUTBOX_FOLDER
   Mail.Date = Now
   Mail.Service = addservice.text
   Mail.WriteMessage
   Mail.Close
   SetCtrls( 0 )
   SetCtrls( 1 )
end sub

sub MoveMsg_Click
end sub