Книга: Windows Script Host для Windows 2000/XP

Создание макета файла DateArc.wsc с помощью Windows Script Component Wizard (JScript)

Создание макета файла DateArc.wsc с помощью Windows Script Component Wizard (JScript)

Из листинга 10.1 можно понять, что создание компонента-сценария связано с написанием большого количества вспомогательного кода (нужно заполнить элементы <registration>, <property>, <method> и <events>, написать функции для чтения и записи каждого из свойств объекта и т.д). Поэтому мы воспользуемся специальным мастером для создания компонентов-сценариев Windows Script Component Wizard (эту программу можно свободно получить с сайта Microsoft http://msdn.microsoft.com/scripting).

Первым шагом после запуска мастера является заполнение полей диалогового окна, представленного на рис. 10.1. Здесь нужно ввести имя создаваемого компонента ("DateArc"), имя файла с его описанием ("DateArc"), программный идентификатор ("DateArc.WSC"), версию компонента ("1.00") и каталог, в котором будет создан WSC-файл ("C:WSC").


Рис. 10.1. Общая информация о создаваемом компоненте-сценарии

На втором шаге работы мастера мы выберем, какой язык будет использоваться при написании сценария ("JScript"), и укажем, что при регистрации и работе объекта нужно выполнять проверку ошибок ("Error checking") (рис. 10.2).


Рис. 10.2. Определение характеристик компонента-сценария

Третий шаг работы мастера позволяет описать свойства создаваемого объекта. Здесь для каждого свойства мы указываем его имя (колонка "Name"), тип ("Read" — только чтение, "Write" — только запись, "Read/Write" — чтение и запись) и значение по умолчанию (колонка "Default") (рис. 10.3).


Рис. 10.3. Задание свойств компонента-сценария

На четвертом шаге описываются методы объекта. В нашем случае объект DateArc.WSC имеет единственный метод FilesToArchiv(), вызываемый без параметров (рис. 10.4).


Рис. 10.4. Задание методов компонента-сценария

На пятом шаге нам предлагается указать, какие события могут возникать в объекте. Для нашего компонента-сценария мы не будем задавать никаких событий (рис. 10.5).


Рис. 10.5. Задание событий компонента-сценария

Шестой шаг является заключительным в работе мастера. Здесь нам выдается вся информация о создаваемом объекте (рис. 10.6). После нажатия кнопки Finish в каталоге C:WSC будет создан файл DateArc.wsc, приведенный в листинге 10.3.


Рис. 10.6. Итоговая информация о создаваемом компоненте-сценарии

Листинг 10.3. Файл DateArc.wsc, сгенерированный программой Windows Script Component Wizard (JScript)

<?xml version="l.0"?>
<component>
 <?component error="true" debug="false"?>
 <registration description="DateArc" progid="DateArc.WSC" version="1.00" classid="{424ac2bc-5732-4dea-bel7-0211af99cd79}">
 </registration>
 <public>
  <property name="SFrom">
   <get/>
   <put/>
  </property>
  <property name="SArch">
   <get/>
   <put/>
  </property>
  <property name="SPref">
   <get/>
   <put/>
  </property>
  <property name="SMask">
   <get/>
   <put/>
  </property>
  <property name="SErrMess">
   <get/>
  </property>
  <method name="FilesToArchiv">
  </method> </public>
  <script language="JScript">
   <![CDATA[
var description = new DateArc;
function DateArc() {
 this.get_SFrom = get_SFrom;
 this.put_SFrom = put_SFrom;
 this.get_SArch = get_SArch;
 this.put_SArch = put_SArch;
 this.get_SPref = get_SPref;
 this.put_SPref = put_SPref;
 this.get_SMask = get_SMask;
 this.put_SMask = put_SMask;
 this.get_SErrMess = get_SErrMess;
 this.FilesToArchiv = FilesToArchiv;
}
var SFrom;
var SArch;
var SPref;
var SMask;
var SErrMess;
function get_SFrom() {
 return SFrom;
}
function put_SFrom(newValue) {
 SFrom = newValue;
}
function get_SArch() {
 return SArch;
}
function put_SArch(newValue) {
 SArch = newValue;
}
function get_SPref() {
 return SPref;
}
function put_SPref(newValue) {
 SPref = newValue;
}
function get_SMask() {
 return SMask;
}
function put_SMask(newValue) {
 SMask = newValue;
}
function get_SErrMess(){
 return SErrMess;
}
function FilesToArchiv() {
 return "Temporary Value";
}
  ]]>
 </script>
</component>

Как мы видим из листинга 10.3, при использовании в компоненте-сценарии языка JScript в результате работы мастера внутрь контейнера <script> помещаются:

? глобальные переменные, которые соответствуют объявленным в элементах <property> свойствам;

? заготовки функций с префиксами get_ и put_, которые осуществляют чтение и запись свойств объекта;

? заготовки функций, которые соответствуют объявленным в элементах <method> методам.

Кроме этого, создается экземпляр внутреннего объекта, содержащего те же свойства и методы, что были описаны внутри элемента <public> (переменная description). Имя этого внутреннего объекта совпадает с именем класса описываемого СОМ-объекта (в нашем случае это "DateArc").

Замечание

Создаваемый мастером внутренний объект нужен только в иллюстративных целях, т.к. здесь наглядно видно, какие именно свойства и методы будет предоставлять клиентам автоматизации компонент-сценарий. Если убрать из контейнера <script> описание внутреннего объекта, это никак не скажется на функционировании объекта-сценария.

Оглавление книги


Генерация: 1.192. Запросов К БД/Cache: 3 / 1
поделиться
Вверх Вниз