4. COM/OLE

GetActiveOleObject(ClassName: String): IDispatch

Метод возвращает ссылку на IDispatch интерфейс COM объекта.

Parameters:ClassName (String) – Класс зарегистрированного COM объекта.
Return type:IDispatch
CreateOleObject(ClassName: String): IDispatch

Функция содает Ole объект от зарегистрированного в системе класса ClassName.

Parameters:ClassName (String) – Имя класса OLE объекта.
Return type:IDispatch
Пример подсчёта непрочитанных писем в папке Входящие:
<pascal>
  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;
</pascal>

4.1. IEnumVariant

class IEnumVariant

Класс предоставляет возможность последовательно обойти все элементы коллекции OLE-объекта. Функционал аналогичен оператору For Each в VB, или классу Enumerator в JavaScript.

Подробнее о методах можно узнать в MSDN

Для всех методов: возвращаемое значение равное нулю означает успешное выполнение.

Skip(Cnt: Integer): Integer

Пропускает заданное количество элементов.

Parameters:Cnt (Integer) – Число элементов, которые необходимо пропустить.
Return type:Integer
Reset(): Integer

Сбрасывает перебор элементов на начало коллекции.

Return type:Integer
Next(ScCnt: Integer; Item: IDispatch; ScrCnt: Integer): Integer

Метод извлекает следующий элемент коллекции в параметр Item. Параметры ScCnt и ScrCnt - соответственно: сколько нужно извлечь элементов и сколько было фактически извлечено. Настоятельно рекоммендуется всегда извлекать последовательно по одному элементу.

Parameters:
  • ScCnt (Integer) – Количество элементов, которые необходимо извлечь.
  • Item (IDispatch) – Извлечённый элемент.
  • ScrCnt (Integer) – Количество фактически извлечённых элементов.
Return type:

Integer

4.2. TOleContainer

class TOleContainer

Компонент ялвялется контейнером OLE объектов. В нем можно создать и отобразить экземпляр Microsoft Office Word, Excel.

CreateObjectFromFile(FileName: String; Iconic: Boolean)

Создает новый OLE объект из файла. Определяет тип OLE класса по имени файла. Параметр Iconic опеределяет как будет созда объект, как инонка иил как встраиваемый контрол.

Parameters:
  • FileName (string) – Имя файла
  • Iconic (Boolean) – Создать свёрнутым
CreateObject(OleClassName: String; Iconic: Boolean)

Создает новый OLE объект по имени класса объекта. Параметр Iconic опеределяет как будет созда объект, как инонка иил как встраиваемый контрол.

Parameters:
  • OleClassName (string) – Имя класса
  • Iconic (Boolean) – Создать свёрнутым
DoVerb(Verb: Integer)

Запрашивает OLE контрол выполнить некоторые действия. Метод следует вызвать только когда форма видима, инача будет возбуждено исключение, на попытку уставить фокус на OleContainer. Объявлены следующие константы:

  • ovShow
  • ovOpen
  • ovHide
  • ovUIActivate
  • ovInPlaceActivate
  • ovDiscardUndoState
  • ovPrimary (действие по умолчнию)
Parameters:Verb (Integer) – Код команды