свойства соответственно (эти функции описываются внутри контейнера <script>
). Если же атрибут internalName
не указан, то чтение (запись) свойства производится в функции с именем get_
, где PropertyName
<name>
).
Элемент
Элемент <method>
объявляет метод СОМ-объекта, который будет доступен для внешних клиентов автоматизации.
Атрибут name
определяет имя этого метода. В дальнейшем, если не указан атрибут internalName
, внутри контейнера <script>
должна быть описана функция или процедура с таким же именем
Задание атрибута internalName
позволяет внутри контейнера <script>
использовать для реализации метода функцию или процедуру с именем, отличным от значения аргумента name
.
Список параметров метода (если они имеются) задается внутри элемента <method>
с помощью элементов <parameter>
, каждый из которых должен содержать аргумент name
, определяющий имя параметра.
Элемент
Элемент <event>
объявляет событие, которое может возникать в СОМ-объекте и обрабатываться клиентами автоматизации.
Аргумент name
, как обычно, определяет имя этого события. С помощью аргумента dispid
можно указать числовой идентификатор интерфейса события. Этот идентификатор компилируется в библиотеку типов объекта и используется в клиентском приложении для обработки нужного события.
Для того чтобы вызвать наступление события, внутри элемента <script>
используется функция fireEvent()
с именем нужного события в качестве параметра.
Элементы
Элементы <resource>
, <object>
и <reference>
имеют тот же смысл, что и в модели WS XML
Элемент
В элементе <script>
приводится сценарий на языках JScript или VBScript, который определяет поведение создаваемого СОМ-объекта — здесь нужно задать глобальные переменные, соответствующие объявленным в элементах <property>
свойствам объекта, описать функции или процедуры для объявленных с помощью элементов <method>
методов объекта и т.д.
Перейдем теперь к рассмотрению конкретного примера, для которого мы подробно опишем создание компонента-сценария, регистрацию его в системе в качестве СОМ-объекта и использование этого объекта в JScript-сценарии.
Пример: СОМ-объект для архивирования файлов
Представим себе следующую ситуацию. Имеется несколько каталогов на жестком диске, в которых хранятся рабочие файлы разных пользователей. Необходимо каждый день с помощью программы- архиватора arj.exe делать архивы этих файлов в заданный каталог, при этом имя архивного файла должно соответствовать шаблону ппММДД.arj', где пп — уникальный для каждого пользователя префикс, ММ — текущий месяц, ДД — текущий день.
Мы создадим компонент-сценарий DateArc.WSC
, с помощью свойств и методов которого можно будет выполнить поставленную задачу.
Начнем мы с того, что определимся, какие именно свойства и методы будет содержать создаваемый объект (табл. 10.1).
Название | Свойство/метод | Режим доступа | Описание |
---|---|---|---|
SFrom | Свойство | Чтение/запись | Исходный каталог для архивирования |
SArch | Свойство | Чтение/запись | Каталог, в котором хранятся архивные файлы |
SPref | Свойство | Чтение/запись | Префикс файла-архива |