Курс " Web-технологии для создания Интернет–приложений " Автор: Галямова Е.В. Лекция 13_2007 " Элементы управления ActiveX " Обозначения: ЭУ - элемент управления ПО - программное обеспечение СОМ - модель компонентного объекта MS - Microsoft Содержание: 1. Введение 1.1. Основные понятия. 1.2. Автоматизация 1.2.1. Свойства объектов автоматизации 1.2.2. Методы автоматизации 1.2.3. События элементов управления 1.3. Контейнеры элементов управления 1.3.1. Режим проектирования 1.3.2. Режим выполнения 2. Основные элементы управления (ЭУ), поставляемые вместе с IE 3. Добавление элементов управления в web-страницу 3.1. Использование элемента Object для внедрения элементов управления. 3.2. Внедрение ЭУ Timer 3.3. Внедрение ЭУ Image 4. Браузеры, не поддерживающие ActiveX 5. ALX файлы 6. Вопросы безопасности 6.1. Цифровая подпись 6.2. Подпись программного кода 7. Источники информации Цель лекции: 1. Введение 1.1. Основные понятия Компонентное ПО - способ разработки программ, при котором используются технологии создания программных модулей, подобные применяемым для разработки аппаратных средств (микросхемы, чипы). Элемент управления ActiveX - небольшой компонент, обладающий широким спектром функциональных возможностей. Может быть подключен к приложениям, создаваемым с помощью систем разработки VB, V C++, Delphi 3, Visual J++. Также их можно непосредственно внедрять в гипертекстовые Web-страницы, придавая статическим Web-страницам новые функциональные возможности. Контейнеры элементов управления - элементы управления ActiveX должны находиться внутри программыприложения (контейнера). Контейнер взаимодействует с клиентской частью (client site), в которой находится элемент управления, создает среду выполнения. Автоматизация - это технология прикладного уровня, в основе которой лежит модель компонентного объекта (СОМ). Осуществляется она с помощью трех технических приемов: свойств, методов и событий, а именно: Свойств объектов автоматизации, Методов автоматизации и Событий элементов управления 1.2. Автоматизация. Одним из ключевых свойств автоматизации является независимость от языка программирования. 1.2.1. Свойства объектов автоматизации Свойство описывает некоторую характеристику элемента управления. Например, большая часть текстовых элементов имеет свойства, определяющие цвет текста и шрифт. Каждый экземпляр элемента управления имеет свой собственный набор свойств. Обычно свойство реализуется с помощью переменной-члена класса С++. Такая переменная хранит значение определенной характеристики элемента управления. Пример программы, реализующей свойства BackColor и Caption: Class Control { Private: OLE_COLOR M_BackColor; Cstring m_strCaption; D:\681449675.doc 29.04.16 Курс " Web-технологии для создания Интернет–приложений " Автор: Галямова Е.В. … public: OLE_COLOR GetBackColor(); Void SetBackColor(OLE_COLOR clr); Cstring GetCaption(Cstring& str); Void SetCaption(Cstring& str); … }; Значительное достоинство свойств элементов управления ActiveX в том, что они могут быть сохранены. Приложение контейнер может затем сохранить их на диске. Впоследствии, когда элемент управления создаст экземпляр объекта, который отразится на экране, значения свойств останутся такими же, какие были в начале проектирования приложения. Доступ к свойствам осуществляется по-разному, в зависимости от используемого языка программирования. В VB доступ осуществляется посредством методов С++. Например, для выполнения операции со свойством Caption: 'Задать заголовок objControl.Caption = "Delete" 'Получить заголовок str = strControl.Caption В языке С++, однако, для модификации и определения значения свойства вам требуется применить методы автоматизации. 1.2.2. Методы автоматизации (МА) Большинство элементов управления также предоставляют возможность вызывать их функции посредством методов автоматизации. Методы автоматизации влияют на характер функционирования элемента. МА в основном аналогичны методам класса С++. Предположим, мы разработали ЭУ, который предоставляет базовые услуги электронной почты и содержит методы Send и Recieve. Объявление такого элемента на языке С++ будет иметь вид: Class MailControl { … int Send(); int Recieve(); }; 1.2.3. События элементов управления ЭУ поддерживают механизм общения с внешним миром посредством событий. События генерируются внутри ЭУ, затем передаются контейнеру, после чего контейнер, имея специальные средства (такие, как интерпретатор языков сценария), связывает определенную подпрограмму с событием элемента управления. Пример: Событие Click (щелчок), генерируемое ЭУ Button (кнопка). Когда пользователь щелкает по кнопке, она генерирует событие Click. Если при этом программе-контейнеру необходимо произвести некоторое действие, то при возникновении указанного события она должна выполнить определенную подпрограмму. Именно таков способ обработки событий (очень близко к С++, правда?). При желании, к событию Click можно "привязать" подпрограмму, которая будет возвращать управление пользователю. Таким образом реализуется асинхронный механизм передачи сигналов, полезный в системах, управляемых событиями (таких как Windows). В следующих лекциях мы этот механизм рассмотрим. 1.3. Контейнеры элементов управления. Режимы работы. Элементы управления ActiveX должны находиться внутри контейнера. Они не могут реализовать свои функции без помощи приложения - контейнера. Контейнер ActiveX предоставляет элементу управления следующие услуги: взаимодействие с клиентской частью (client site), в которой находится ЭУ создание среды выполнения, в которой пользователь может задавать свойства ЭУ, вызывать методы и реагировать на события, генерируемые данным ЭУ Примеры контейнера: любая форма Visual Basic, оконный объект в Visual С++, форма в Delphi, форма в С++ Builder, Internet Explorer. 1.3.1. Режим проектирования В режиме проектирования контейнер создает экземпляр элемента управления и дает возможность пользователю задавать значения его свойств (тип и размер шрифта, цвет фона и т.п.), при этом функции элемента управления недоступны. 1.3.2. Режим выполнения D:\681449675.doc 29.04.16 Курс " Web-технологии для создания Интернет–приложений " Автор: Галямова Е.В. Internet Explorer, например, представляет собой контейнер элементов управления ActiveX, работающий только в режиме выполнения. 2. Основные элементы управления, поставляемые вместе с IE: Web Browser - Полнофункциональный браузер, реализующий большинство возможностей IE. Timer - ЭУ, периодически генерирующий события. Полезен для выполнения функций в заданные интервалы времени. Marguee - ЭУ, обеспечивающий прокрутку текста в заданной области веб-страницы. Active Movie ЭУ, обеспечивающий воспроизведение аудио- и видеоданных, а также синхронизированные озвученные видеопоследовательности. HTML Layuot - ЭУ, обеспечивающий внедрение в веб-страницы других ЭУ и дополнительные возможности разметки страницы. MS Forms 2.0 - один из 11-и простых ЭУ, которые имеет ActiveX Control Pad ActiveX Image - ЭУ, обеспечивающий вывод на экран изображения в различных форматах: метафайлы Windows, JPEG, GIF, BMP ActiveX HotSpot - ЭУ, который определяет область экрана, при попадании на которую указателем мыши будет генерироваться событие. Label (надпись) - один из 11-и простых ЭУ, которые имеет ActiveX Control Pad, отображает текст, строки которого повернуты на заданный угол, с символами различных цветов и т.д. Popup Menu - ЭУ, реализующий на веб-странице всплавающее меню. Menu - ЭУ, помещает на веб-странице кнопку меню. Text box (текстовое поле) - один из 11-и простых ЭУ, которые имеет ActiveX Control Pad Combo box (комбинированный список) - один из 11-и простых ЭУ, которые имеет ActiveX Control Pad List box (список) - один из 11-и простых ЭУ, которые имеет ActiveX Control Pad 3. Добавление элементов управления в web-страницу с помощью ActiveX Control Pad. В лабораторных работах 9 и 10 мы пользовались ActiveX Control Pad для добавления ЭУ на страницу Tally Sheet калькулятора. Где должен находиться ЭУ? При первоначальном проектировании страниц с помощью ActiveX Control Pad ЭУ находится в файле CONTROL.OCX на локальном компьютере разработчика. Когда страница будет передана на вебсервер, браузер сможет получить копию ЭУ следующим образом. Объектный код компонента копируется с веб-сервера на локальный компьютер пользователя (обычно в виде файла OCX или DLL). Технология MS Authenticode - автоматическая загрузка, идентификация и регистрация ActiveX-компонентов. Естественно, вопросы безопасности становятся еще более важными. Загрузка кодов по Интернет - не лучшая идея. Корпорация MS предлагает технологию Authenticode, гарантирующую корректность загружаемых компонентов. 3.1. Использование элемента Object для внедрения элементов управления. Элемент Object позволяет внедрять изображения, документы, апплеты Java и ЭУ ActiveX в веб-страницы. Пример внедрения ЭУ Timer: <OBJECT ID = "Timer" width = 39 heigth = 39 CLASSID="CLSID:59CCB4A)-727D-11CF-AC36-00AA00A47DD2" CODEBASE=http://activex.microsoft.com/controls/iexplorer/itimer.ocx > <PARAM NAME = "_ExtentX" VALUE="1032"> <PARAM NAME = "_ExtentY" VALUE="1032"> <PARAM NAME = "Interval" VALUE="5000"> </OBJECT> В этом примере использовались атрибуты элемента Object. ID - для задания имени внедряемого объекта, width и heigth - для задания размеров внедряемого объекта. CODEBASE - местоположение объекта на сервере, для загрузки его на локальный компьютер. Если ЭУ не инсталлирован, используется сервис загрузки компонентов. CLASSID - используется для указания местоположения исполняемого кода элемента управления (обычно DLLфайла) на локальном компьютере. СОМ-объекты, в частности, ЭУ ActiveX, однозначно идентифицируются с помощью 128-битового глобального уникального идентификатора (GUID - Globally Unique Identifier). Все СОМобъекты имеют свой собственный GUID. (более подробно - попозже!) Элемент PARAM - доступен только внутри элемента Object. Его задачей является сохранение значений свойств внедренного объекта. Атрибут NAME задает имя свойства, Атрибут VALUE задает значение свойства. Атрибут TYPE задает определенный способ кодировки содержимого для данного свойства (в примере не показан). После загрузки, инсталляции и создания экземпляра с помощью атрибутов CLASSID и CODEBASE контейнер прочтет значения из элемента PARAM и передаст их элементу управления. Именно таким образом осуществим запуск ЭУ Timer с начальным значением свойства Interval, равным 5000. D:\681449675.doc 29.04.16 Курс " Web-технологии для создания Интернет–приложений " Автор: Галямова Е.В. Свойства, имена которых начинаются с символа _ (например, _ExtenX), являются внутренними свойствами ЭУ и используются им для собственных нужд. 3.2. Задание: Для закрепления усвоенного материала выполните лабораторную работу № 9. 4. Источники информации 4.2. http://www.microsoft.com/activex/controls/ сотни примеров использования элементов управления ActiveX 4.3. Рик Дарнелл JavaScript Справочник - Санкт-Петербург, "Питер", 2000 - 191 стр. 4.4. Том Армстронг. ActiveX: создание Web-приложений. Пер. с англ. Н.Б.Шишкиной – BHV, Киев, 1998 – 590 стр. 4.5. http://www.webclub.ru/content/programming_vbs/article-71.html#part_11 Описание объектной модели сценариев D:\681449675.doc 29.04.16