Visual Basic 6. Руководство разработчика


Рекурсивный просмотр папки - часть 2


Public OutlookApp As outlook.Application

Public OlObjects As outlook.NameSpace

Public OlContacts.As outlook.MAPIFolder

Затем в событии Load формы введите следующие операторы для создания нового экземпляра Outlook и объектных переменных, необходимых для обращения к его папкам.

Программа 14.24. Создание объектной переменной Outlook

Private Sub Form Load()

Set OutlookApp = CreateObject ("Outlook.Application.8")

If Err Then

MsgBox "Could not create Outlook Application object!"

'(He удалось создать объект Outlook Application!)

End

End If

Set OlObjects = OutlookApp.GetNamespace("MAPI")

Set OlContacts = OlObjects.GetDefaultFolder(olFolderContacts)

If Err Then

MsgBox "Could not get MAPI NameSpace" , YbCritical

' (He удалось получить место расположения MAPI...)

End If

End Sub

Переменная

OutlookApp

представляет приложение. Переменная OlObjects - все папки, предоставленные Outlook, и переменная OlContacts -

папку Contacts. Эти переменные объявлены следующим образом:

Public OlObjects As outlook.NameSpace

Public OlContacts As outlook.MAPIFolder

Ядром приложения является обработчик события Click команды Populate Tree, который заполняет окно элемента управления TreeView с помощью рекурсивной процедуры.

Программа 14.25. Заполнение окна элемента управления TreeView

Private Sub Command1_Click ()

Dim allFolders As outlook.Folders

Dim Folder As outlook.MAPIFolder

Dim Folders As outlook.Folders

Dim thisPolder As outlook.MAPIFolder

Dim newNode As Node

' Добавление корневого узла

Set newNode = TreeViewl.Nodes.Add(, , OlContacts.EntryID, "Contacts")

newNode.Expanded =

True

' Получение списка подпапок в папке Contacts

Set allFolders = OlContacts.Folders

' Обработка отдельных подпапок в папке Contacts

For Each Folder In allFolders

Set newNode = TreeViewl.Nodes.Add(OlContacts.EntryID, _

tvwChild, Folder.Name, Folder.Name)

Set Folders = Folder.Folders

For Each thisFolder In Folders

Set newNode = TreeViewl.Nodes.Add(Folder.Name, _




Начало  Назад  Вперед