Распределенные приложения: контроллеры автоматизации. Часть 2. Фертиков В.В. - 10 стр.

UptoLike

Составители: 

10
#include <utilcls.h>
Не вдаваясь в тонкости реализации данной библиотеки, укажем лишь на
существование двух способов обращения к диспинтерфейсу .
Метод Variant::Exec предназначен для запуска методов диспинтерфей -
сов, а также для считывания и установки их свойств.
Шаблоны методов класса Variant, названные OleFunction,
OleProcedure, OlePropertyGet и OlePropertySet, реализуют более
удобный способ доступа к методам и свойствам диспинтерфейса в смысле
удобочитаемости текста программы .
Например , команда установки свойства диспинтерфейса через объект W
класса Variant, взятая из предыдущего примера на Delphi:
W.Visible := True;
на языке C++ может быть реализована двумя способами:
W.Exec(PropertySet("Visible")<<true);
или
W.OlePropertySet("Visible",true);
В данном случае второй способ более нагляден, поскольку требует указа-
ния лишь двух параметров, в том числе имени свойства. Первый способ реа-
лизован более замысловато: методу Exec передается только один параметр
объект класса PropertySet, специально разработанного для совместной рабо -
ты с Exec. Его описание вы можете найти в заголовке sysvari.h. Там можно
в частности обнаружить, что базовым классом для PropertySet является
класс AutoCmd:
class AutoCmd
{
public:
...
// By value args
AutoCmd& operator <<(const Variant& arg);
AutoCmd& operator <<(const short arg);
AutoCmd& operator <<(const int arg);
AutoCmd& operator <<(const float arg);
...
};
class PropertySet : public AutoCmd
{ ...
};
Для базового класса AutoCmd перегружена операция <<, чтобы реализо-
вать удобный способ передачи параметров методам диспинтерфейса. Эта опе-
рация описана для всех типов, используемых встроенным механизмом марша-
линга, который , как и в случае Delphi, скрыт от программиста (выше приведен
                                     10
#include 

      Не вдаваясь в тонкости реализации данной библиотеки, укажем лишь на
существование двух способов обращения к диспинтерфейсу.
• Метод Variant::Exec предназначен для запуска методов диспинтерфей-
   сов, а также – для считывания и установки их свойств.
• Шаблоны        методов    класса   Variant ,    названные OleFunction ,
   OleProcedure , OlePropertyGet и OlePropertySet , реализуют более
   удобный способ доступа к методам и свойствам диспинтерфейса в смысле
   удобочитаемости текста программы.
      Например, команда установки свойства диспинтерфейса через объект W
класса Variant, взятая из предыдущего примера на Delphi:
W.Visible := True;

на языке C++ может быть реализована двумя способами:
W.Exec(PropertySet("Visible")<