Объектная модель Outlook 2002
Объектная модель Microsoft Outlook реализована в виде набора объектов, собранных в библиотеке Outlook.
Объекты приложения Outlook
В табл. 21.3 приведено описание основных объектов из объектной модели Outlook.
| Объект | Тип | Описание |
| Application | Обьект | Ссылается на активное приложение Microsoft Outlook. Используется для управления приложением |
| NameSpace | Объект | Объект представляет собой абстрактный корневой объект для любого источника данных |
| AddressLists (AddressLists) | Семейство и объект | Семейство объектов, представляющих адресные книги |
| Folders (MAPIFolders) | Семейство и объект | Семейство MAPIFolders объектов, которое представляет любую из доступных папок в их подмножестве на одном уровне дерева папок |
| Items (Item) | Объект MAPIFolder | Представляет стандартный элемент Outlook, расположенный в данной папке |
| Links (Link) | Объект Item | Представляет объект item, который связан с другим объектом item |
| User Proper ties (UserProperty) | Объект Item | Данное семейство хранит информацию о нестандартных свойствах элемента Outlook, созданных пользователем |
| FormDescription | Объект Item | Этот объект хранит все стандартные свойства элемента Outlook |
| Actions (Action) | Объект Item | В этом семействе хранится информация об ассоциированных с данным элементом Outlook командах. Обратите внимание на то, что команды можно вывести, раскрыв в режиме конструктора вкладку Команды |
| Attachments (Attachment) | Объект Item | Семейство представляет все вложения в элементе |
| Recepients (Recepint) | Объект Item | Это семейство представляет информацию о получателях элемента Outlook |
| ReccurencePattern | Объект Item | Данный объект задает шаблон повторения для встреч и задач |
| Proper ty Pages ( Proper tyPage ) | Семейство и объект | Семейство объектов PropertyPage, которые содержат специальные вкладки со свойствами, добавленные к диалоговому окну Параметры в Outlook |
| LanguageSet tings | Объект | Предоставляет информацию о языковых настройках приложения |
| AnswerWizard | Объект | Соответствует мастеру ответов Microsoft Office. Все приложения Microsoft Office имеют ровно один мастер ответов, поэтому все изменения этого объекта отразятся на активном приложении |
| Assistant | Объект | Ссылается на объект, представляющий активного в данный момент Помощника Office |
| Search | Объект | Данный объект представляет как простой поиск, так и расширенный поиск |
| Reminders (Reminder) | Семейство и объект | Представляет окно Оповещения для всех напоминаний о встречах, задачах и т. д. |
| Explorers (Explorer) | Семейство и объект | Семейство объектов Explorer — набор всех окон, в которых отображается содержимое папки |
| Selection (Items) | Объект Explorer | Семейство всех отображаемых элементов в окне просмотра информации |
| CommandBars (CommandBar) | Объект Explorer | Представляет обычные и контекстные меню, а также панели инструментов объекта |
| Panes (Pane) | Объект Explorer | Семейство панелей (окон) Outlook для данного объекта Explorer |
| Inspectors (Inspector) | Семейство и объект | Семейство объектов Inspector — набор всех окон, в которых 'отображаются элемен- ты Outlook. Элемент (item) — это основной модуль хранения данных в Outlook (подобно файлу в других программах). В число эле- ментов входят почтовые сообщения, встречи, контакты, задачи и т. д. (рис. 21.4) |
| WordEditor и HTMLEditor | Объекты | Представляют объекты, посредством которых выбираются редакторы для объекта Inspector |
| Pages (Page) | Объект Inspector | Каждый объект inspector связан со своим семейством Pages, в которое входят все обновленные пользователем страницы формы. Если в форму для элемента не вносились изменения, то семейство Pages является пустым |
| Item | Объект Inspector | Представляет стандартный элемент Outlook, расположенный в данной папке |
| MAPIFolder | Объект | Представляет папку Outlook |
Таблица 21.3. Основные объекты Outlook
В табл. 21.4—21.6 представлено описание основных свойств, методов и событий объекта Application.

Рис. 21.1. Объект Inspector (форма элемента)
| Свойство | Описание |
| Session Class | Возвращает объект Namespace для текущего сеанса. Сеанс (session) — это период времени, в течение которого пользователь работает с Outlook |
| Parent | Возвращает константу из перечисления QlObjectClass для указанного объекта. Это целочисленное значение, идентифицирующее класс объекта |
| Version | Возвращает родительский объект для указанного объекта Возвращает или задает номер версии |
Таблица 21.4. Основные свойства объекта Application
| Метод | Назначение |
| ActiveExplorer | Возвращает головной объект Explorer |
| Active Inspect or | Возвращает головной объект Inspector |
| ActiveWindow | Возвращает объект, представляющий главное окно |
| Createltem | Создает новый элемент Outlook и возвращает его приложения |
| GetName Space | Возвращает объект NameSpace указанного типа |
| Quit | Закрывает приложение |
Таблица 21.5. Основные методы объекта Application
| Событие | Описание |
| AdvancedSearchComplete | Происходит, когда Расширенный поиск заканчивает свою работу |
| ItemSend | Происходит, когда элемент посылается либо посредством Inspector, либо посредством метода Send |
| MapiLogonComplete | Происходит, когда пользователь входит в систему |
| NewMail | Происходит, когда одно или несколько почтовых сообщений приходит в папку Входящие |
| OptionPagesAdd | Происходит, когда открывается диалоговое окно Параметры |
| Reminder | Происходит непосредственно перед оповещением о встрече, задаче или собрании |
| Startup | Происходит сразу после загрузки приложения Outlook |
| Quit | Происходит, когда Outlook закрывается |
Таблица 21.6. События объекта Application
Объекты MAPIFolderv и Mailltem
Поскольку в примерах этой главы и следующей используются свойства и методы объектов MAPIFolder и Mailltem, мы сочли необходимым привести их краткое описание.
Объект MAPiFoider, как было сказано выше, представляет папку Outlook. Объект MAPiFoider может содержать другие MApiFoider-объекты. В этом случае вы можете управлять доступом к вложенным папкам посредством комбинации Folder (индекс), где индекс возвращает объект MAPiFoider.
Outlook имеет специальный набор папок, которые поддерживают заданную по умолчанию функциональность Outlook. Для доступа к этим папкам следует Использовать метод GetDefaultFolder(индекс), где индекс — одна ИЗ констант olDefauitFoiders, например olFoiderinbox возвращает папку Входящие.
В табл. 21.7 приведены основные свойства объекта MAPiFoider, а в табл. 21.8 — его методы.
| Свойство | Описание |
| Items | Возвращает семейство элементов Outlook в папке |
| Description | Возвращает или устанавливает описание папки |
| DefaultMessageClass | Возвращает заданный по умолчанию класс сообщения для элементов в папке |
Таблица 21.7. Свойства объекта MAPiFolder
| Метод | Назначение |
| СоруТо | Копирует текущую папку (полностью) в указанную папку. Возвращает MAPiFolder объект, представляющий новую копию |
| Delete | Удаляет объект из семейства папок |
| Display | Отображает новый объект Explorer для папки |
| MoveTo | Перемещает папку в указанную папку |
Таблица 21.8. Методы объекта MAPiFolder
Несколько слов об объекте Mailitem. Он представляет почтовое сообщение в папке Входящие (Inbox). Мы рассмотрим только необходимые для примера свойства и методы этого-объекта.
Свойство Messageciass возвращает или устанавливает класс сообщения для элемента Outlook. Свойство Messageciass связывает элемент с формой, на которой он основан. Когда элемент выбран, Outlook использует класс сообщения, чтобы поместить соответствующую форму и установить свойства элемента.
Свойство RecievedTime возвращает дату и время получения сообщения. Метод Display отображает новый объект inspector для выбранного элемента.
В программе 21.3 открываются все почтовые сообщения, поступившие за последние сутки.
Программа 21.3. Открытие почтовых сообщений
Sub openLastMail () Dim oa As Outlook.Application
Dim ns As NameSpace ; Dim fl As MAPiFolder Dim ob As Object Dim it As Mailitem
Dim i As integer
Set oa = CreateObject("OutLook.Application") Set ns = oa.GetNamespace("MAPI") Set fl = ns.GetDefaultFolder(olFolderlnbox) For i = 1 To f1.Items.Count Set ob = fl.Items(i) On Error GoTo nextitem If ob.MessageClass = "IPM.Note" Then Set it = ob If it.ReceivedTime > Date - 1 Then
it.Display (False) End If End If nextitem:
Next i End Sub
Замечание
Для семейств Outlook нельзя воспользоваться оператором For Each Next, поэтому применяется цикл For . . . Count.
