Элементы управления ActiveX MFC
Элемент управления ActiveX — это многоразовый программный компонент, основанный на модели COM, который поддерживает широкий набор функциональных возможностей OLE и может быть настроен под различные потребности программного обеспечения.
ActiveX — это устаревшая технология, которую не следует использовать для новых разработок. Дополнительные сведения см. в разделе «Элементы ActiveX».
Элементы ActiveX предназначены для использования как в обычных контейнерах элементов управления ActiveX, так и в Интернете на страницах World Wide Web. Элементы ActiveX можно создавать с помощью MFC, описанного здесь, или с помощью активной библиотеки шаблонов (ATL).
Элемент управления ActiveX может нарисовать себя в собственном окне, реагировать на события (например, щелчки мыши) и управлять с помощью интерфейса, включающего свойства и методы, аналогичные объектам автоматизации.
Эти элементы управления можно разрабатывать для многих использования, таких как доступ к базам данных, мониторинг данных или графирование. Помимо переносимости элементы ActiveX поддерживают функции, которые ранее недоступны для элементов ActiveX, например совместимость с существующими контейнерами OLE и возможность интегрировать их меню с меню контейнеров OLE. Кроме того, элемент activeX полностью поддерживает автоматизацию, которая позволяет элементу управления предоставлять свойства чтения и записи и набор методов, которые могут вызываться пользователем элемента управления.
Вы можете создать элементы activeX и элементы activeX без окон, которые создают только окно, когда они становятся активными. Элементы управления без окон ускоряют отображение приложения и позволяют использовать прозрачные и несектуционные элементы управления. Кроме того, можно асинхронно загружать свойства элемента управления ActiveX.
Элемент activeX реализуется как внутрипроцессный сервер (обычно небольшой объект), который можно использовать в любом контейнере OLE. Обратите внимание, что все функциональные возможности элемента activeX доступны только в том случае, если они используются в контейнере OLE, предназначенном для того, чтобы учитывать элементы ActiveX. Список контейнеров, поддерживающих элементы ActiveX ActiveX, см. в разделе «Элементы ActiveX» для других приложений . Этот тип контейнера, далее называемый «контейнером управления», может работать с элементом ActiveX с помощью свойств и методов элемента управления, а также получать уведомления из элемента ActiveX в виде событий. На следующем рисунке показано это взаимодействие.
Взаимодействие между контейнером элементов activeX и элементом ActiveX с элементом ActiveX в окне
Некоторые последние сведения о оптимизации элементов ActiveX см. в разделе «Элементы ActiveX MFC: оптимизация».
Сведения о создании элемента управления ActiveX MFC см. в статье «Создание проекта элемента управления ActiveX».
Дополнительные сведения см. в разделе:
- Контейнеры для элементов ActiveX
- Активные документы
- Общие сведения об элементах ActiveX
- Обновление существующего элемента управления ActiveX для использования в Интернете
Основные компоненты элемента управления ActiveX
Элемент управления ActiveX использует несколько программных элементов для эффективного взаимодействия с контейнером элементов управления и пользователем. Это класс COleControl, набор функций для запуска событий и карта отправки.
Каждый объект элемента управления ActiveX, который вы разрабатываете, наследует мощный набор функций из базового класса COleControl MFC. Эти функции включают в себя активацию на месте и логику автоматизации. COleControl может предоставить объект управления с той же функциональностью, что и объект окна MFC, а также возможность запуска событий. COleControl также может предоставлять бессерверные элементы управления, которые полагаются на контейнер для поддержки некоторых функций окна (запись мыши, фокус клавиатуры, прокрутка), но предлагают гораздо быстрее отображение.
Поскольку класс управления является производным от COleControl , он наследует возможность отправки сообщений или «пожара», вызываемых событиями, в контейнер управления при выполнении определенных условий. Эти события используются для уведомления контейнера элементов управления, когда в элементе управления происходит что-то важное. Дополнительные сведения о событии можно отправить в контейнер элементов управления, подключив параметры к событию. Дополнительные сведения о событиях элементов управления ActiveX см. в статье MFC ActiveX Controls: Events.
Последний элемент — это карта диспетчера, которая используется для предоставления набора функций (называемых методов) и атрибутов (называемых свойствами) пользователю элемента управления. Свойства позволяют контейнеру элементов управления или пользователю элемента управления управлять элементом управления различными способами. Пользователь может изменить внешний вид элемента управления, изменить определенные значения элемента управления или запросить элемент управления, например доступ к определенной части данных, которые поддерживает элемент управления. Этот интерфейс определяется разработчиком элемента управления и определяется с помощью представления классов. Дополнительные сведения о методах и свойствах элементов управления ActiveX см. в статьях mFC ActiveX Controls: Methods and Properties.
Взаимодействие между элементами управления с контейнерами элементов управления Windows и ActiveX
Если элемент управления используется в контейнере элементов управления, он использует два механизма взаимодействия: он предоставляет свойства и методы, а также вызывает события. На следующем рисунке показано, как реализуются эти два механизма.
Обмен данными между контейнером элементов activeX и элементом ActiveX
На предыдущем рисунке также показано, как другие интерфейсы OLE (помимо автоматизации и событий) обрабатываются элементами управления.
Весь обмен данными элемента управления с контейнером COleControl выполняется. Для обработки некоторых запросов COleControl контейнера вызовет функции-члены, реализованные в классе управления. Все методы и некоторые свойства обрабатываются таким образом. Класс элемента управления также может инициировать взаимодействие с контейнером, вызвав функции-члены COleControl . События запускаются таким образом.
Активные и неактивные состояния элемента управления ActiveX
Элемент управления имеет два основных состояния: активные и неактивные. Традиционно эти состояния были различаются по признаку того, был ли элемент управления окном. Активный элемент управления имел окно; Неактивный элемент управления не был. При внедрении активации без окон это различие больше не является универсальным, но по-прежнему применяется ко многим элементам управления.
Когда элемент управления без окон активен, он вызывает захват мыши, фокус клавиатуры, прокрутку и другие службы окон из контейнера. Вы также можете предоставить взаимодействие мыши с неактивными элементами управления, а также создавать элементы управления, которые ожидают активации, пока не будет активировано создание окна.
Когда элемент управления с окном становится активным, он может полностью взаимодействовать с контейнером элементов управления, пользователем и Windows. На рисунке ниже показаны пути взаимодействия между элементом ActiveX, контейнером управления и операционной системой.
Обработка сообщений Windows в элементе activeX с окном (при активной активности)
Сериализация
Возможность сериализации данных, иногда называемая сохраняемостью, позволяет элементу управления записывать значение его свойств в постоянное хранилище. Затем элементы управления можно воссоздать, считывая состояние объекта из хранилища.
Обратите внимание, что элемент управления не несет ответственности за получение доступа к носителю хранилища. Вместо этого контейнер элемента управления отвечает за предоставление элемента управления средой хранения для использования в соответствующее время. Дополнительные сведения о сериализации см. в статье «Элементы activeX MFC: сериализация». Дополнительные сведения о оптимизации сериализации см. в разделе «Оптимизация сохраняемости и инициализация » в элементах activeX Controls: оптимизация.
Установка классов и средств управления ActiveX
При установке Visual C++классы элементов управления MFC ActiveX и розничные и отладочные библиотеки DLL ActiveX автоматически устанавливаются, если элементы ActiveX выбраны в программе установки (они выбраны по умолчанию).
По умолчанию классы и средства activeX устанавливаются в следующие подкаталоги в разделе \Program Files\Microsoft Visual Studio .NET:
- \Common7\Tools Содержит файлы тестового контейнера (TstCon32.exe, а также файлы справки).
- \Vc7\atlmfc\include Содержит файлы включения, необходимые для разработки элементов ActiveX с помощью MFC
- \Vc7\atlmfc\src\mfc Содержит исходный код для определенных классов элементов управления ActiveX в MFC
- \Vc7\atlmfc\lib Содержит библиотеки, необходимые для разработки элементов ActiveX с помощью MFC
Существуют также примеры для элементов activeX MFC. Дополнительные сведения об этих примерах см. в разделе «Примеры элементов activeX на основе MFC»
Технологии ActiveX
ActiveX — технология Microsoft, предназначенная для написания сетевых приложений. Она предоставляет программистам наборы стандартных библиотек, значительно облегчающих процесс кодирования. Если раньше при написании программ использовались механизмы OLE (OLE Automation, OLE Documents, OLE Controls. ), основанные на компонентной объектной модели (COM — Component Object Model), то теперь библиотеки OLE переписаны так, чтобы обеспечивать функциональность, достаточную для написания сетевых приложений. Таким образом, теперь при написании программ используется DCOM (Distributed Component Object Model) — распределенная компонентная объектная модель, а реализуют ее библиотеки ActiveX, которые по объему оказались гораздо меньше, чем библиотеки OLE, а по скорости — быстрее. Сохранилась и совместимость — любой программный компонент OLE будет работать с библиотеками ActiveX.
Поскольку самым динамично развивающимся направлением в компьютерной индустрии является Internet, именно здесь наиболее естественно могут найти свое место программы, написанные с использованием технологии ActiveX. Не случайно в последнее время понятия ActiveX и Internet часто встречаются рядом. В то же время технология ActiveX имеет значительно более универсальную область использования.
Стандарт ActiveX позволяет программным компонентам взаимодействовать друг с другом по сети независимо от языка программирования, на котором они написаны. С помощью ActiveX можно «оживить» страницы Web эффектами мультимедиа, интерактивными объектами или сложными приложениями. ActiveX обеспечивает некий «скрепляющий раствор», с помощью которого отдельные программные компоненты на разных компьютерах «склеиваются» в единую распределенную систему.
ActiveX включает в себя клиентскую и серверную части, а также библиотеки для разработчика:
- программные элементы ActiveX — компоненты, работающие на компьютере-клиенте, но загружаемые в первый раз с сервреа Web. С их помощью можно демонстрировать разнородную информацию, включающую видео и звук без запуска дополнительных программ. Более того, эти программные компоненты могут использоваться в приложениях, написанных на любых популярных языках программирования, включая Java (Visual J++), Visual Basic, Visual C++.
- Active Scripting поддерживает любой популярный макроязык, включая Visual Basic Script и JScript (реализация компанией Microsoft языка сценариев JavaScript). Макроязыки могут использоваться для объединения на одной странице нескольких программных элементов ActiveX или Java, обеспечивая их взаимодействие между собой.
- Документы ActiveX позволяют открыть и обрабатывать в окне Microsoft Internet Explorer документ любого формата (например, файл Microsoft Excel или Word).
- Виртуальная машина Java позволяет любой программе просмотра Internet, поддерживающей технологию ActiveX (например, Internet Explorer 3.0) выполнять программные компоненты Java и обеспечивать их взаимодействие с программными компонентами ActiveX.
- ActiveX Server Framework обеспечивает серверные функции ActiveX, включая поддержку безопасных соединений, доступ к базам данных и другие.
- Средства разработки позволят использовать знакомые системы программирования Microsoft и других фирм для создания компонентов ActivX. К их числу относятся Visual Basic, Visual C++, Macromedia Shockwave, Adobe Photoshop, Borland Delphi, средства программирования Sybase и другие.
Основные преимущества использования технологии ActiveX:
- Быстрое написание программного кода. Программирование сетевых взаимодействий становится очень похожим на программирование для отдельного компьютера.
- Открытость и мобильность. Спецификации технологии недавно были переданы в Open Group как основа открытого стандарта. Кроме того, Microsoft совместно с компаниями Metrowerks и Bristol заканчивает реализацию технологий ActiveX для платформ Macintosh и UNIX.
- Возможность написания приложений с использованием знакомых средств разработки. Программные элементы ActiveX могут быть созданы с помощью Visual Basic, Visual C++, Borland Delphi, Borland C++, любых средств разработки на Java.
- Большое количество уже существующих программных элементов ActiveX, которые бесплатно могут применяться на серверах Web и в приложениях независимых разработчиков. Кроме того почти любой программный компонент OLE совместим с технологиями ActiveX и может применяться без модификаций в сетевых приложениях.
- Стандартность. Технология ActiveX основана на широко используемых стандартах Internet (TCP/IP, HTML, Java) с одной стороны и стандартах, введенных в свое время Microsoft и необходимых для сохранения совместимости (COM, OLE).
Клиентская технология ActiveX (Active Desktop)
ActiveX реализуется на машине-клиенте с помощью библиотек, поставляемых вместе с Internet Explorer 3.0. В дальнейшем эти библиотеки будут дополняться и переписываться, в частности, наиболее значимые обновления этих библиотек на клиенте следует ожидать после выхода NetShow, продукта, предназначенного для оптимальной передачи по сети данных мультимедиа.
Программные компоненты ActiveX могут быть установлены автоматически на компьютер пользователя по сети с удаленного сервера, причем будет загружен код, подходящий для конкретной платформы клиента, будь то Macintosh, Windows или Unix. Разработчик Web-страниц может либо сам запрограммировать элементы ActiveX, используя популярные языки программирования Visual C++, Visual Basic или Java, либо использовать существующие. Примеры готовых программных элементов можно найти по адресу http://www.microsoft.com/activeplatform/default.asp.
Используя языки сценариев ActiveX, программисты могут обеспечить взаимодействие различных элементов ActiveX, Java, других программ на клиентском компьютере и различных частей самого Internet Explorer. Например, программный элемент синхронизации может обновлять страницу Web через определенные промежутки времени. Можно также периодически запускать программный элемент, привлекающий внимание пользователя. Имеются реализации Visual Basic Scripting Edition, являющегося подмножеством Visual Basic, и JScript. Кроме того, разработчик может написать интерпретатор собственного языка сценариев и добавить его в систему.
С ActiveX Documents знаком каждый, кто работал с составными документами. С помощью Internet Explorer можно работать, например, с таблицами Microsoft Excel и файлами других офисных приложений. Это делает программу просмотра универсальным средством, способным не только отображать файлы в формате HTML и осуществлять переходы по ссылкам, но и поддерживающим работы с документами любых приложений и даже запуск программ.
Серверная технология ActiveX (Active Server)
Серверная часть технологии ActiveX реализована с помощью Microsoft Internet Information Server 3.0. С помощью ActiveX можно писать программы на языках сценариев (сейчас это VBScript), выполняющиеся на сервере. Если раньше разработчикам приходилось использовать такие средства, как Microsoft Visual C++ для написания динамически загружаемых библиотек, использующих специальные вызовы Internet Server API, то теперь возможно написание приложений на языке сценариев. Это существенно упрощает разработку, сокращает время написания программы и минимизирует затраты. Программы, основанные на технологиях Active Server на порядок производительнее программ, основанных на Common Gateway Interface (CGI). Это достигается оптимизацией процессов ActiveX на сервере, учитывающей архитектуру Windows NT.
С помощью языков сценариев на сервере можно осуществлять доступ к системам управления базами данных, поддерживающим стандарт ODBC, и использовать механизм транзакций.
Поскольку подход к использованию технологий ActiveX на сервере стандартизован, программисты могут не только разрабатывать приложения, способные выполняться на серверах, но и реализовывать свои схемы взаимосвязи серверных приложений и сервисов, создавать собственные интерпретаторы серверных языков сценариев. Для этого требуется предварительное приобретение лицензии у Open Group.
Что такое ActiveX, зачем и как его отключить
ActiveX – технология, на основе которой создаются компоненты для программирования сайтов под Internet Explorer. Эти компоненты по своей сути являются обычными программами, с одной лишь разницей в том, что запускаются они не пользователем, а операционной системой, и исполняются только в браузере. Приложения ActiveX называются управляющими элементами. Они существенно расширяют функционал сайта, чем активно пользуются различные компании. Наиболее вероятно «встретить» элементы управления ActiveX в корпоративном сегменте интернет-банков. С их помощью скачиваются и устанавливаются программы обеспечения безопасности финансовых операций, а в браузере отображаются диалоговые окна ввода пин-кодов, электронно-цифровые подписи и различные функции отправки бухгалтерской отчетности. Помимо этих сугубо деловых функций с помощью таких компонентов на любой сайт можно вывести аудио и видео флеш плеер ActiveX, открывать различные файлы с помощью браузера и проигрывать анимацию.
Нужен ли ActiveX?
С одной стороны, технологию ActiveX поддерживает только Internet Explorer, а большинство опытных пользователей Интернета пользуется другими браузерами и не подозревает об этой технологии. Но если Вы в своей жизни вынуждены использовать какие-либо сайты, в обязательном порядке требующие использование старых версий IE, то вам просто необходимо использовать компоненты ActiveX. Однако пользоваться возможностями данной технологии надо предельно аккуратно. Существует довольно высокая вероятность «подцепить» вирус разрешив всем сайтам по умолчанию устанавливать приложения ActiveX. Злоумышленники применяют эту технологию для распространения шпионских программ, поэтому нам следует разобраться, как правильно настроить работу данного приложения.
Как настроить разрешения или удалить ActiveX?
С настройками по умолчанию Internet Explorer запрашивает разрешение на запуск ActiveX, однако ранее установленные приложения могут самостоятельно менять эти настройки. Помочь избежать серьезных проблем может только грамотная настройка параметров браузера. Если Вы не работаете в IE, то, скорее всего, Вам стоит запретить ActiveX полностью. В Internet Explorer кликните на иконку шестеренки с названием «Сервис», затем нажмите на «Свойства браузера» и перейдите ко вкладке «Безопасность». Нажмите на кнопку с надписью «Другой». В появившемся окне параметров безопасности проверьте, что опции «Загрузка неподписанных элементов ActiveX» и «Использование элементов ActiveX, не помеченных как безопасные» отключены. Все другие пункты в подразделе «Элементы ActiveX и модули подключения» переключите в положение «Предлагать». Такие же действия проделайте, переключив зону с «Интернет» на «Надежные узлы». Также будет не лишним, добавить веб-адреса нужных вам сайтов в список надежных узлов. Делается это по нажатию одноименной кнопки. 
Какие программы нужно установить взамен отключенного ActiveX?
Программа Adobe Flash полностью заменяет ActiveX компоненты. Более того, в современные браузеры Flash Player уже установлен. Без других программ, ровно как и без элементов управления ActiveX можно обойтись.
Что такое элементы ActiveX – как установить, настроить и использовать
Многие пользователи сталкиваются с понятием Active X, но не знают его значения. Постараемся наконец прояснить, что же означает это странное слово.
Что такое ActiveX
Актив Икс — это платформа, которая помогает определять элементы утилит, которые можно использовать. Обычно эти компоненты написаны на разных программных языках. Она создана специально для распространения ПО через глобальную сеть.
Эта платформа была введена в использование в 1996 году компанией Microsoft. Она до сих пор широко используется в системе Windows, хотя не привязана к ней.
С помощью данной платформы создаются приложения, которые могут работать через браузер, посредством клиент-серверного приложения. Этой платформой чаще всего пользуются злоумышленники, заставляя с помощью управляющих элементов, неопытного пользователя скачать нерекомендуемое или зараженное вирусами приложение к себе на компьютер.
Актив Икс состоит из множества компонентов — кнопок, окон, списков и т.д., а также использует такие языки, как Delphi, C++, .NetFramework и другие, которые имеют поддержку Component Object model.
Преимущества и недостатки
Основным недостатком технологии является то, что средствами для ее использования владеет только браузер Explorer. А также нет возможности реализации этой технологии в общедоступных сетях всемирной паутины.
Однако есть и достоинства. ActiveX все больше развивается в интрасетях. В Актив Икс представлено очень много управляющих инструментов для решений многих задач, построения полнофункциональных диаграмм, таблиц данных.
Чем отличается Java от Актив Икс
В принципе, выше мы рассмотрели основные отличия платформы от java апплетов. Дело в том, что решение многих задач средствами Джавы потребовало бы от разработчика приложения огромных сил, в то время как с помощью технологии Active X все решается гораздо быстрее.
Еще одним отличием этой технологии считается то, что роль ActiveX на виртуальной машине Джава, будет выполнять любая Java утилита. Она будет одновременно открыта самостоятельно и в то же время служить одним из компонентов для платформы.
Что делать, если интернет плохо и медленно работает – ускоряем скорость соединения
Опасности использования
Эта платформа не вводит никаких ограничений на действия управляющих элементов. Вместо этого в каждом элементе должна стоять подпись разработчика, который обязуется не включать в распространяемую утилиту вирусы и тому подобные файлы. Поэтому, если пользователь загрузил компонент на свой компьютер без подписи, который уничтожил его систему, вся вина лежит целиком на его плечах.
Как установить ActiveX (для Internet Explorer)
Необходимо открыть браузер Internet Explorer, и там перейти на любой сайт использующий эту технологию. Затем юзера спросят о необходимости установки элементов платформы. Если кликнуть на надпись вверху страницы, то в контекстном меню будет запрос – Install ActiveX Control. Нажатие кнопки установит компонент.

Скачать ActiveX для Windows 7, 8, 10, официально нельзя, поскольку они встроены в Internet Explorer.
Как включить или отключить Active X в Internet Explorer

Теперь заходите во вкладку «Сервис» и открываете «Свойства обозревателя».

Потом переходите во вкладку «Безопасность» и кликаете на кнопку «Другой».

Пролистываете в появившемся окне страницу до тех пор, пока не увидите меню «Элементы Active X». Затем щелкаете по кружкам, как показано на рисунке снизу.
После данных изменений рекомендуется перезагрузить компьютер.
Фильтрация ActiveX

Фильтрация платформы помогает вовремя определить установку подозрительных приложений и запретить обозревателю их использование. Чтобы ее включить необходимо зайти во вкладку «Сервис», выберите пункт «Безопасность», и кликните кнопку «Фильтрация Active X».
Если напротив пункта появился флажок, значит вы сделали все правильно. Если вы захотите отключить ее, то также нажмите по этому пункту и флажок исчезнет.

Кроме этого можно убирать фильтр для определенных сайтов. Для этого открываете нужный сайт, кликаете по иконке фильтра. И отключаете фильтр.
Как обновить adobe flash player в браузерах
Настройки безопасности

Кроме фильтра можно регулировать параметры безопасности и определять самому какую программу компьютер скачает, а какую вы запретите. Для этого перейдите в свойства браузера и вкладку безопасность.
С помощью ползунка в меню «Уровень безопасности для этой зоны» вы можете задать соответствующий уровень.
Технология в других браузерах
В Опере не поддерживается данная технология. Но есть специальный плагин OperaActiveXplugin, с помощью которого можно установить эту платформу в браузер опера.
Также в магазине Гугл специально для браузера Google Chrome есть приложение IETab, которое необходимо скачать и запустить. Тогда технология ActiveX будет работать и в этом обозревателе.
Для установки платформы на Mozilla Firefox, также рекомендуется скачать приложение IETab. Так как встроенных платформ Актив Икс все эти браузеры не имеют, кроме IE.
Проверить действительно ли заработала поддержка можно на специальной странице – если календарь отображается, значит все работает.
Как исправить ошибки ActiveX

Если сайт все время выдает ошибку, что загрузка Active X компонента не была выполнена, то необходимо в первую очередь попробовать его перезагрузить с помощью кнопок Ctrl+F5. Если не помогло, то добавить его в безопасные. Как это делается было показано выше. Или же зайти в сервис – свойства обозревателя – нажать на кнопку «другой» и найти «Элементы Active X» затем пролистать их и пометить, которые указаны на рисунке ниже:

Если же выскакивает ошибка «Internet Explorer заблокировал попытку установки ActiveX», то попробуйте понизить безопасность обозревателя или сделать следующие действия, которые указаны на рисунке снизу.
Открыть свойства браузера IE, зайти в безопасность и кликнуть «Другой», найти пункт «элементы Active X» и пометить флажком пункт «Запуск элементов ActiveX и модулей подключения».
