4. COM/OLE

GetActiveOleObject(AClassName: String): IDispatch

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

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

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

Parameters:AClassName (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(ACnt: Integer): Integer

Описание отсутствует

Parameters:ACnt (Integer) -- Описание отсутствует
Return type:Integer
Reset(): Integer

Описание отсутствует

Return type:Integer
Next(AScCnt: Integer; AItem: IDispatch; AScrCnt: Integer): Integer

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

Parameters:
  • AScCnt (Integer) -- Описание отсутствует
  • AItem (IDispatch) -- Описание отсутствует
  • AScrCnt (Integer) -- Описание отсутствует
Return type:

Integer

4.2. TOleContainer

class TOleContainer

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

CreateObjectFromFile(AFileName: String; AIconic: Boolean)

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

Parameters:
  • AFileName (string) -- Имя файла
  • AIconic (Boolean) -- Создать свёрнутым
CreateObject(AOleClassName: String; AIconic: Boolean)

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

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

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

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