Объектная модель 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.