.. 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:
Код команды