.. currentmodule:: TatInternalObject COM/OLE ====================================================================== .. pas:function:: GetActiveOleObject(ClassName: String): IDispatch Метод возвращает ссылку на IDispatch интерфейс COM объекта. :param String ClassName: Класс зарегистрированного COM объекта. :rtype: IDispatch .. warning:: |not_implemented| .. pas:function:: CreateOleObject(ClassName: String): IDispatch Функция содает Ole объект от зарегистрированного в системе класса *ClassName*. :param String ClassName: Имя класса OLE объекта. :rtype: IDispatch .. code-block:: delphi :caption: Пример подсчёта непрочитанных писем в папке Входящие: O := CreateOleObject('Outlook.Application'); NameSpace := O.GetNameSpace('MAPI'); InBox := NameSpace.GetDefaultFolder($00000006); n := 0; s := ''; for i := 1 to InBox.Items.Count do begin Mail := InBox.Items.Item(i); if Mail.UnRead then begin inc(n); s := s + ' <' + Mail.SenderEmailAddress + '>' + ' EntryID = ' + Mail.EntryID + #13#10; end; end; ShowMessage('Непрочитанных писем в папке InBox: ' + VarToStr(n) + #13#10 + s); O.Quit; .. warning:: |not_implemented| IEnumVariant ------------ .. pas:class:: IEnumVariant Класс предоставляет возможность последовательно обойти все элементы коллекции OLE-объекта. Функционал аналогичен оператору ``For Each`` в VB, или классу ``Enumerator`` в JavaScript. Подробнее о методах можно узнать в `MSDN `__ Для всех методов: возвращаемое значение равное нулю означает успешное выполнение. .. warning:: |not_supported| .. pas:method:: Skip(Cnt: Integer): Integer Пропускает заданное количество элементов. :param Integer Cnt: Число элементов, которые необходимо пропустить. :rtype: Integer .. pas:method:: Reset(): Integer Сбрасывает перебор элементов на начало коллекции. :rtype: Integer .. pas:method:: Next(ScCnt: Integer; Item: IDispatch; ScrCnt: Integer): Integer Метод извлекает следующий элемент коллекции в параметр *Item*. Параметры *ScCnt* и *ScrCnt* - соответственно: сколько нужно извлечь элементов и сколько было фактически извлечено. Настоятельно рекомендуется всегда извлекать последовательно по одному элементу. :param Integer ScCnt: Количество элементов, которые необходимо извлечь. :param IDispatch Item: Извлечённый элемент. :param Integer ScrCnt: Количество фактически извлечённых элементов. :rtype: Integer TOleContainer ----------------- .. pas:class:: TOleContainer Компонент является контейнером OLE объектов. В нем можно создать и отобразить экземпляр Microsoft Office Word, Excel. .. warning:: |not_supported| .. pas:method:: CreateObjectFromFile(FileName: String; Iconic: Boolean) Создает новый OLE объект из файла. Определяет тип OLE класса по имени файла. Параметр *Iconic* определяет как будет созда объект, как иконка или как встраиваемый контрол. :param string FileName: Имя файла :param Boolean Iconic: Создать свёрнутым .. pas:method:: CreateObject(OleClassName: String; Iconic: Boolean) Создает новый OLE объект по имени класса объекта. Параметр Iconic определяет как будет создан объект, как иконка или как встраиваемый контрол. :param string OleClassName: Имя класса :param Boolean Iconic: Создать свёрнутым .. pas:method:: DoVerb(Verb: Integer) Запрашивает OLE контрол выполнить некоторые действия. Метод следует вызвать только когда форма видима, инача будет возбуждено Метод следует вызвать только когда форма видима, иначе будет возбуждено исключение, на попытку установить фокус на OleContainer. Объявлены следующие константы: - ovShow - ovOpen - ovHide - ovUIActivate - ovInPlaceActivate - ovDiscardUndoState - ovPrimary (действие по умолчнию) :param Integer Verb: Код команды