Где хранятся файлы activex
Для определения тех значков ActiveX-объектов, которые будут отображаться на Рабочем столе, в папках Панель управления и Мой компьютер, применяются следующие ветви реестра.
? HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerDesktopNameSpace — определяет те из ActiveX-объектов, которые будут отображаться на Рабочем столе. Раздел NameSpace содержит набор дочерних подразделов, названных в честь CLSID-номера ActiveX-объекта, который должен отображаться на Рабочем столе. Например, чтобы отобразить на Рабочем столе значок, вызывающий диалог Запуск программы, необходимо создать в данном разделе подраздел . Результат можно видеть на рис. 5.3.
Рис. 5.3. Отображение на Рабочем столе значка Запуск программы
Раздел Name Space можно создать в аналогичной ветви корневого раздела HKEY_LOCAL_MACHINE. В этом случае ActiveX-объект будет отображаться на Рабочем столе всех пользователей компьютера, а не только данного пользователя.
ВНИМАНИЕ
Данная ветвь реестра, кроме значков ActiveX-объектов, которые будут отображаться на Рабочем столе, включает в себя еще и определение CLSID-номера . He удаляйте определение этого номера, так как оно необходимо для корректной работы с функцией поиска и его удаление сделает невозможным использование диалога, вызываемого комбинацией клавиш Windows+F.
? HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion ExplorerHideDesktopIcons — если предыдущая ветвь реестра определяла те из значков ActiveX-объектов, которые будут отображаться на Рабочем столе, то эта ветвь устанавливает совершенно противоположную возможность — она указывает на те ActiveX-объекты, которые не будут отображаться на Рабочем столе. При этом можно указать отдельные наборы скрываемых значков в зависимости от типа меню Пуск, используемого в данный момент, ведь данная ветвь хранит два дочерних раздела — ClassicStartMenu и NewStartPanel. Если вы определите CLSID-номера в разделе ClassicStartMenu, то данные значки ActiveX-объектов не будут отображаться на Рабочем столе при использовании классического меню Пуск. Если же вы определите CLSID-номера в разделе NewStartPanel, то данные значки ActiveX-объектов не будут отображаться на Рабочем столе при использовании нового меню Пуск.
Чтобы определить CLSID-номер скрываемого ActiveX-объекта, достаточно в необходимом разделе создать параметр DWORD-типа, названный в честь этого CLSID-номера. Значение параметра должно быть равно 1 (если значение равно 0, то значок ActiveX-объекта будет отображаться). Например, чтобы скрыть значок диалога Запуск программы, который был недавно добавлен, необходимо создать в ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerHideDesktopIconsClassicStartMenu (если используется классическое меню Пуск) параметр DWORD-типа , значение которого должно быть равно 1.
Данную ветвь можно использовать и в корневом разделе HKEY_LOCAL_MACHINE.
ПРИМЕЧАНИЕ
Существует один интересный CLSID-номер ActiveX-объекта, описания которого вы не встретите в ветви реестра HKEY_CLASSES_ROOTCLSID. Это CLSID-номер . Если запретить отображение данного CLSID-номера на Рабочем столе с помощью вышеописанной ветви реестра, то после перезагрузки оболочки на Рабочем столе останутся только значки Корзина и Мой компьютер — остальные ActiveX-объекты, папки и файлы Рабочего стола будут скрыты.
? HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerMyComputerNameSpace — определяет список CLSID-номеров ActiveX-объектов, которые будут отображаться в папке Мой компьютер. Формат данной ветви полностью аналогичен формату описанной выше ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerDesktopNameSpace. Если использовать такую ветвь реестра, расположенную в корневом разделе HKEY_LOCAL_MACHINE, то определяемый ею значок будет отображен для всех пользователей системы.
ПРИМЕЧАНИЕ
Но между приведенными ветвями реестра для различных корневых разделов существует небольшое отличие — ветвь реестра из корневого раздела HKEY_LOCAL_MACHINE также может хранить раздел DelegateFolders, содержимым которого является подраздел . Этот подраздел определяет общие папки, отображаемые в папке Мой компьютер, и если удалить или просто переименовать раздел DelegateFolders, то общие папки в папке Мой компьютер отображаться не будут.
Например, можно попробовать самостоятельно добавить в папку Мой компьютер значок ActiveX-объекта. На этот раз нужно создать свой собственный ActiveX-объект.
Все, уникальный CLSID-номер у вас уже есть. Например, таким номером является , созданный с помощью программы guidgen.exe. После создания CLSID-номера нужно зарегистрировать его в системе. Для этого используется ветвь системного реестра HKEY_CLASSES_ROOTCLSID, формат содержимого которой был описан в предыдущей главе. Создайте в этой ветви дочерний раздел, названный в честь CLSID-номера, созданного программой guidgen. Теперь необходимо назвать значок ActiveX-объекта — для этого используется параметр (По умолчанию) созданного раздела. После этого нужно зарегистрировать для созданного ActiveX-объекта значок, с этой целью применяется параметр DefaultIcon дочернего раздела ветви созданного CLSID-номера. После создания значка нужно скрыть все стандартные команды его контекстного меню — для этого присвойте DWORD-параметру Attributes значение 0. Он должен находиться в разделе ShellFolder ветви созданного CLSID-номера. И наконец, можно создавать содержимое пользовательского контекстного меню — для этого используется раздел shell ветви CLSID-номера. Создайте в нем необходимые глаголы, а в них — подраздел command, параметр (По умолчанию) которого и будет определять команду, вызываемую при выборе из контекстного меню вашего значка соответствующего действия.
Теперь у вас есть не только уникальный CLSID-номер, но и свой собственный ActiveX-объект. Осталось только создать подраздел в ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerMyComputerNameSpace и смотреть на то, что получилось (рис. 5.4).
Рис. 5.4. Создание своего ActiveX-объекта и расположение его в папке Мой компьютер
? HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion ExplorerHideMyComputerIcons — скрывает значки из папки Мой компьютер. Ее формат аналогичен формату уже описанной ветви системного реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersion ExplorerHideDesktopIcons, поэтому рассматривать ее мы не будем. Эту ветвь можно использовать и в корневом разделе HKEY_LOCAL_MACHINE.
Например, чтобы скрыть только что созданный значок ActiveX-объекта из паки Мой компьютер, необходимо создать DWORD-параметр и присвоить ему значение, равное 1. Создавать его нужно в ветви реестра HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerHideMyComputerIcons.
? HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerControlPanelNameSpace — содержит ссылки на те ActiveX-объекты, значки которых будут отображаться в папке Панель управления. Его формат аналогичен формату описанных выше разделов реестра, предназначенных для добавления значков ActiveX-объектов.
? HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerNetworkNeighborhoodNameSpace — определяет те ActiveX-объекты, значки которых будут отображаться в папке Сетевое окружение. Его формат аналогичен формату описанных выше разделов реестра, предназначенных для добавления значков ActiveX-объектов.
? HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionExplorerRemoteComputerNameSpace — определяет те ActiveX-объекты, значки которых будут отображаться в папке Удаленные компьютеры. Его формат аналогичен формату описанных выше разделов реестра, предназначенных для добавления значков ActiveX-объектов.
По умолчанию в этой ветви реестра присутствуют только ссылки на ActiveX-объекты Принтеры и Назначенные задания. Если вы как администратор не хотите, чтобы эти ActiveX-объекты отображались в папке удаленного компьютера, то можно их удалить.
? HKEY_LOCAL_MACHINESOFTWAREMicrosoftWindowsCurrentVersionpoliciesNonEnum — раздел более категоричен, чем все рассмотренные ранее, — он определяет те из ActiveX-объектов, которые вообще не будут отображаться в оболочке пользователей (или конкретного пользователя, если применяется ветвь из корневого раздела HKEY_CURRENT_USER). Все ActiveX-объекты, описанные в этой ветви, не будут применяться при построении пользовательского интерфейса.
Чтобы запретить использование какого-либо ActiveX-объекта, достаточно создать в данной ветви реестра параметр DWORD-типа, названный в честь CLSID-номера скрываемого ActiveX-объекта, и присвоить ему значение, равное 1.
Хотелось бы сказать еще об одной недокументированной возможности скрытия ActiveX-объекта из всех мест оболочки, где он используется, — о параметре Attributes, находящемся в подразделе ShellFolder раздела скрываемого нами ActiveX-объекта. Содержимое данного параметра уже было описано в предыдущей главе, но не упоминалось об этой возможности.
Итак, чтобы скрыть значок ActiveX-объекта, достаточно его параметру Attributes присвоить битовую маску 0x00100000.
Описание параметров элементов ActiveX
Приведенные ниже объяснения относятся к элементам ActiveX, которые не находятся в надежном расположении или надежных документах.
Важно: Если документ является надежным и предупреждения безопасности о наличии элементов ActiveX или другого активного содержимого получать нежелательно, поместите этот документ в надежное расположение.
Отключить все элементы управления без уведомления. В документах будут отключены все элементы ActiveX.
Запрос перед включением элементов управления, инициализация которых считается небезопасной (UFI), с дополнительными ограничениями и элементов управления, инициализация которых считается безопасной (SFI), с минимальными ограничениями. Здесь возможны два варианта в зависимости от наличия проектов VBA projects.
Запрос перед включением всех элементов управления с минимальными ограничениями. Этот параметр установлен по умолчанию. Здесь возможны два варианта в зависимости от наличия проектов VBA.
Включить все элементы управления без ограничений и запросов (не рекомендуется). Все элементы ActiveX в документах включаются с минимальными ограничениями.
Сейф режиме В ActiveX SFI можно включить элементы управления в безопасном режиме, то есть разработчик пометил их как безопасные.
Фильтрация ActiveX
Фильтрация ActiveX в Internet Explorer запрещает сайтам устанавливать и использовать такие приложения. Это повышает безопасность работы в Интернете, но может отразиться на работе некоторых сайтов. Например, если включена фильтрация ActiveX, могут не работать некоторые видео, игры и другой интерактивный контент.
Откройте Internet Explorer и нажмите кнопку Сервис .
В раскрывающемся меню наведите указатель мыши на пункт Безопасность и выберите пункт Фильтрация ActiveX. Рядом с пунктом Фильтрация ActiveX появится флажок.
Откройте Internet Explorer и перейдите на сайт, на котором вы планируете разрешить запуск элементов ActiveX.
Нажмите в адресной строке кнопку Заблокированные и выберите пункт Отключить фильтрацию ActiveX. Если в адресной строке нет кнопки Заблокированные , это значит, что на этой странице содержимого ActiveX нет.
Откройте Internet Explorer и нажмите кнопку Сервис .
В раскрывающемся меню наведите указатель мыши на пункт Безопасность и выберите пункт Фильтрация ActiveX. Флажок Фильтрация ActiveX будет снят.
Настройка параметров ActiveX в Internet Explorer
В Internet Explorer может быть запрещено скачивание и запуск элементов ActiveX по соображениям безопасности. Изменение некоторых дополнительных параметров безопасности позволит скачивать, устанавливать и запускать такие элементы, но компьютер окажется менее защищен от угроз. Изменяя дополнительные параметры ActiveX, учитывайте повышение уровня риска для компьютера.
Изменение параметров ActiveX
В Internet Explorer выберите кнопку Инструменты , а затем выберите Параметры Интернета.
На вкладке Безопасность выберите Настраиваемыйуровень , а затем ActiveX элементы управления и подключаемыемодульи , сделайте следующее:
Разрешить автоматические запросы ActiveX элементов управления, выбрав Включить.
Разрешим Internet Explorer отображать видео и анимацию на веб-странице, которая не использует внешний медиаплеер, выбрав Включить.
Разрешите Internet Explorer скачивать подписанные ActiveX элементы управления, выбрав Включить илиЗапрос, если вы хотите, чтобы каждый раз при этом вывести уведомление.
Разрешите Internet Explorer запускать ActiveX и подключаемых модульов, нажимая Включить илиВывести запрос, если вы хотите, чтобы каждый раз при этом вывести уведомление.
Чтобы разрешить Internet Explorer ActiveX элементы управления, помеченные как безопасные для сценариев, выберите Включить илиЗапрос, если вы хотите, чтобы каждый раз в этом случае вывести уведомление.
Выберите ОК,а затем еще раз ОК.
Примечание: Если не удается изменить параметры ActiveX, возможно, у вас нет нужных разрешений. В этом случае обратитесь к системному администратору.
Excel для Microsoft 365 Word для Microsoft 365 PowerPoint для Microsoft 365 Excel 2021 Word 2021 PowerPoint 2021 Excel 2019 Word 2019 PowerPoint 2019 Excel 2016 Word 2016 PowerPoint 2016 Excel 2013 Word 2013 PowerPoint 2013 Access 2013 Visio профессиональный 2013 Visio 2013 Excel 2010 Word 2010 PowerPoint 2010 Access 2010 Visio 2010 Visio стандартный 2010 Office 2010 Еще. Меньше
ИТ-специалисты могут найти дополнительные сведения о планировании элементов ActiveX в статье TechNet Планирование параметров безопасности для элементов управления ActiveX в приложениях Office 2010.
Объекты DataSet с множеством таблиц и объекты DataRelation
Включение элементов ActiveX в представлении Backstage
Откройте вкладку Файл.
В области Предупреждение системы безопасности нажмите кнопку Включить содержимое.
В разделе Включить все содержимое выберите команду Всегда включать активное содержимое данного документа.
Файл станет надежным документом.
На приведенном ниже рисунке показаны команды Всегда включать активное содержимое этого документа и Дополнительные параметры.
На приведенном ниже рисунке показаны команды группы Включить содержимое.
Примечание: Исключение составляют элементы ActiveX с флагом блокировки. Такие элементы ActiveX не запускаются. Флаг блокировки — это функция безопасности, которая запрещает элементу ActiveX использовать код ActiveX, например устраняя уязвимость в системе безопасности или предотвращая запуск кода.
Прочие ActiveX-объекты
Прочие ActiveX-объекты Выше мы рассмотрели несколько возможностей настройки ActiveX-объектов на примере значка Корзины. Далее в этой книге также будут приведены некоторые примеры настройки ActiveX-объектов.Кроме Корзины в операционной системе Windows Vista присутствуют и многие
В интернете существует множество учебников по использованию ATL, и в частности, по созданию COM-компонентов с его помощью, в том числе и ActiveX/OLE контролов, но большинство из них почему-то описывают процесс тыкания мышкой в разные интересные места Visual Studio, использование графических инструментов последней, и мало какой из них затрагивает нутро сгенерированного средой разработки кода в достаточно глубоком объеме. В русскоязычном сегменте интернета ситуация и того хуже — материалов по ATL крайне мало, практически нет(да и не только по ATL, а и по созданию COM-компонентов вообще), поэтому я решил этот недостаток компенсировать.
Ну, начать следует, наверное, с краткого описания того, что из себя представляют ActiveX-компоненты и что такое ATL.
ActiveX это ребрендинг аббревиатуры OLE, «Object Linking and Embedding», технологии от Microsoft, основанной на COM, Component Object Model — языконезависимой компонентной модели, придуманной MS. OLE позволяет встраивать отдельные контролы, документы, да или просто компоненты в разные программы, написанные на разных языках программирования, работающие под Windows. ActiveX-контролы, в частности, известны тем, что их можно «вклеивать» в веб-браузер Internet Explorer, и одним из самых известных таких компонентов для IE является, к примеру, модуль Adobe Flash.
Интерфейс ActiveX-компонента поставляют с собой многие известные и популярные программы для Windows, как от самой Microsoft(Windows Media Player, или, например, программы из Microsoft Office, в частности Word, Excel и т.п.), так и от сторонних компаний(уже вышеупомянутый флеш, Adobe Reader, плюс многие другие программы того же Adobe — например Photoshop, если я правильно помню).
Есть мнение, что технология устаревает, или уже устарела, но тем не менее, я лично считаю, что она просто вытесняется в область низкоуровневого программирования и системных сервисов, и пока ядро Windows пишется на Си, а многие компоненты системы используют COM, и основаны на COM-интерфейсах, она уж точно никуда не денется.
Теперь про то, что такое ATL. ATL, Active Template Library — известная библиотека от Microsoft, которая упрощает работу с Winapi на C++. В ATL входят классы/шаблоны не только для работы с COM/OLE/ActiveX, но и классы для, к примеру, построения и управления GUI и т.п.
ATL обычно поставляется с полноценными версиями Microsoft Visual Studio, но если у вас ее нет, то можете взять эту библиотеку из Windows DDK.
Так вот, в данной статье я опишу процесс создания простенького компонента, который будет у нас средствами DirectX 11 рисовать крутящуюся растеризованную в wireframe сферу, и у которого будет два метода — Run — запустить вращение сферы, и Stop — остановить вращение.
Для начала нам нужно придумать интерфейс нашего модуля, придумать GUID для библиотеки, интерфейсов и класса компонента, и записать все это, как водится, в MIDL, Microsoft Interface Definition Language.
Сохраним это дело в файл, и назовем MyActiveX.idl
Как видно, мы записали определение двух интерфейсов, а также описание COM-класса, который реализует наши интерфейсы. Первый, IMyControl, у нас представляет собой собственно интерфейс компонента, а второй нужен для оповещения внешнего мира о событиях, которые случаются с нашим контролом. Событий у нас не записано, и мы их делать в нашем примере не будем, поэтому этот интерфейс у нас пустой.
Интерфейс, реализуемый нашим классом, относится к так называемым dual-интерфейсам. Это значит, что его можно использовать не только из языков, способных на общение с native-кодом, а соответственно, и способных общаться с COM-компонентами через таблицы виртуальных методов, но и из скриптовых языков, посредством интерфейса IDispatch.
Далее нам нужно записать определения IMyControl и _IMyControlEvents в заголовочном файле для C++ — MyControl.hpp
Макрос MIDL_INTERFACE раскрывается во что-то вроде «struct __declspec(novtable) __declspec(uuid(строка GUID для интерфейса))». Microsoft довольно удобно интегрировали COM в свой компилятор C++, и это позволяет(и дальше это будет видно особенно хорошо) нам работать с интерфейсами и компонентами COM из MSVC++, как с более-менее обычными классами и структурами C++.
Макрос DEFINE_GUID же, в свою очередь, раскрывается в зависимости от определения макроса INITGUID — в случае отсутствия оного, он декларирует extern-переменную типа GUID с определенным названием. В случае INITGUID, он ее еще и инициализирует.
Теперь следует определить переменную _Module, которая принадлежит классу CComModule из ATL.
Запишем декларацию переменной в отдельный заголовочный файл, скажем MyActiveX.hpp
CComModule это класс, реализующий функциональность COM-модуля, в частности регистрацию классов компонентов, инициализацию COM-сервера и прочие подобные вещи.
Для регистрации COM-серверов в реестре(а COM работает именно через реестр) мы могли бы написать reg-файл, или вручную создать в реестре соответствующие записи, но также мы можем использовать программу regsvr32.exe, входящую в состав Windows, и позволяющую проводить автоматическую регистрацию, средствами самого компонента. Для этого необходимо, чтобы наша библиотека экспортировала некоторые функции, и в частности DllRegisterServer и DllUnregisterServer.
CComModule упрощает весь процесс автоматической регистрации, и позволяет сводить ее к вызову соответствующих методов в вышеупомянутых экспортируемых функциях библиотеки, но ему требуется, чтобы в секции ресурсов dll, реализующего компонент, находился скрипт регистрации. Назовем файл, который мы позже добавим в ресурсы, MyControl.rgs, и добавим туда такой текст:
Наиболее значимые части скрипта регистрации — CLSID, то есть GUID класса нашего компонента, ProgID, т.е. человекочитаемое представление CLSID, и ThreadingModel — модель многопоточности нашего компонента, которая в данном случае устанавливается в Apartment, что значит что напрямую к нашему контролу можно обращаться только из того потока, в котором он был создан, а все внешние вызовы, в том числе извне процесса(или даже с другого компьютера — через DCOM) будут сериализоваться и синхронизироваться средствами рантайма COM.
Кстати, о сериализации, то есть, вернее сказать, о маршалинге. В теории, для того чтобы сериализовать вызовы методов нашего компонента и указатели на его интерфейсы, мы должны поставить параллельно с ним отдельную библиотеку, так называемую прокси-dll, которая будет подгружаться как в клиентское приложение(если оно на другом компьютере), так и к процессу, куда загружен наш COM-компонент.
Компилятор MIDL от Microsoft мог бы генерировать код для прокси-библиотеки, или как она в данном случае называлась бы, proxy/stub, но в нашем случае можно поступить проще — так как типы данных у нас более-менее стандартные, мы может использовать встроенный маршалинг рантайма OLE. Для данного дела нам нужно из нашего IDL-файла, опять же средствами компилятора MIDL, midl.exe(входит в состав как Windows SDK, так и VS), скомпилировать так называемую библиотеку типов(type library, tlb), и поставить с нашим компонентом ее. Более того, мы можем еще дальше упростить все это дело, и включить скомпилированную библиотеку типов в секцию ресурсов DLL, что мы и сделаем.
Заголовочный файл для ресурсов нашего модуля:
IDR_MYCONTROL — id ресурса скрипта регистрации.
IDB_MAIN_ICON — иконка 16x16 для нашего компонента, в формате BMP. Я лично для этого файла взял иконку DirectX из MS DirectX SDK.
IDS_SHADER и SHADER_RESOURCE — id ресурса и типа ресурса, содержащего код шейдеров для отрисовки сферы.
Сам файл ресурсов, MyActiveX.rc, такой:
Теперь перейдем непосредственно к реализации нашего контрола.
Назовем класс CMyControl, и создадим заголовочный файл CMyControl.hpp
Как видно, определение класса получилось довольно большим.
Для реализации ActiveX-контрола наш класс, на самом деле, должен реализовать крайне немаленькое количество разнообразных COM-интерфейсов, начиная от IDispatch, но так как мы используем ATL, процесс очень сильно упрощается, благодаря наследованию от специальных классов, названия которых оканчиваются на «Impl», которые собственно говоря, и реализуют необходимую для интерфейсов функциональность в стандартном виде.
Три наиболее важных базовых класса нашего CMyControl — CComObjectRootEx, управляющий, в частности, подсчетом ссылок объектов нашего класса, CComCoClass, реализующий фабрику класса(IClassFactory), и CComControl, в свою очередь наследующийся от CWindowImpl(класс, обертывающий HWND, то есть дескриптор окна), и реализующий большую часть необходимой для встроенных ActiveX-контролов фунциональности.
Наиболее значимые макросы в теле класса:
DECLARE_REGISTRY_RESOURCEID — указывает id ресурса, в котором находится скрипт регистрации компонента.
BEGIN_COM_MAP + END_COM_MAP — реализуют метод QueryInterface интерфейса IUnknown(который является вершиной иерархии интерфейсов COM), который позволяет получать ссылки на разные интерфейсы объекта(и каждая из COM_INTERFACE_ENTRY указывает один из вариантов).
BEGIN_CONNECTION_POINT_MAP и соответствующий END — необходимы для реализации интерфейсов, связанных с оповещениями о событиях контрола.
Вся функциональность нашего компонента, и, в частности, работа с Direct3D, реализуется приватным классом CMyControlImpl, согласно паттерну pimpl, в файле CMyControl.cpp. Я не буду в деталях его описывать, отмечу только то, что в конструкторе самого CMyControl необходимо выставить внутреннее свойство m_bWindowOnly в TRUE — это будет означать, что наш компонент поддерживает встраивание исключительно в графические приложение.
Также, стоит отметить что в реализации компонента для управления подсчетом ссылок на COM-интерфейсы активно используется шаблонный класс умного указателя CComPtr из ATL, очень похожий на intrusive_ptr из boost.
Теперь создадим файл MyActiveX.cpp, в котором у нас будет определены GUID класса и интерфейсов, переменная _Module, а также реализована точка входа DLL и необходимые для ActiveX-модуля экспортируемые функции:
Прежде чем скомпилировать dll, определим, какие функции наш модуль экспортирует, в def-файле:
Весь исходный код проекта, включая Makefile для сборки с помощью Windows SDK, приведен на github, по ссылке в конце статьи. Но сначала несколько примеров встраивания компонента:
Получите скорость, безопасность и конфиденциальность с помощью Microsoft Edge .
Что представляет собой элемент ActiveX и какие риски с ним связаны
Элементы ActiveX — это небольшие стандартные блоки, используемые для создания приложений, работающих через Интернет в веб-браузере. Примерами могут служить пользовательские приложения для сбора данных, просмотра файлов определенных типов и показа анимации. Обычно элементы ActiveX используются в кнопках, списках и диалоговых окнах. В программах Office также можно использовать элементы ActiveX для расширения функциональности документов.
ActiveX-объекты
ActiveX-объекты ActiveX-объекты — это специальные программы, которые не могут быть выполнены непосредственно двойным щелчком кнопкой мыши на файле ActiveX-объекта, но могут быть выполнены под руководством операционной системы Windows. Для этого применяются либо операции вставки и
Изменение параметров элементов ActiveX в Word, Access, Excel, PowerPoint, Publisher и Visio
Выполнив приведенные ниже инструкции, можно включить или отключить элементы ActiveX в центре управления безопасностью.
Выберите Файл > Параметры.
Выберите по очереди пункты Центр управления безопасностью, Параметры центра управления безопасностью и Параметры ActiveX.
Выберите нужные параметры и нажмите кнопку ОК.
Далее показан пример области Параметры ActiveX центра управления безопасностью.
Важно: При изменении параметра ActiveX в Word, Access, Excel, PowerPoint, Publisher или Visio аналогичные параметры изменяются и во всех остальных программах из этого списка.
Объекты OS/400 и системные объекты MI
Объекты OS/400 и системные объекты MI Несколько типов объектов имеются и в OS/400, и в MI. Типы объектов OS/400 перечислены в таблице 5.1. Для сравнения, в таблице 5.2 приведены системные объекты MI. Помните, что в каждой новой версии AS/400 добавляются новые функции и даже новые объекты.
Настройка
Если выполнение элементов осуществляется некорректно (например, браузер заблокировал доверенные ресурсы, запрещены интерактивные блоки, IE отображает уведомление «Пожалуйста, настройте… ActiveX»), необходимо предварительно настроить модуль:
1. В верхней части IE кликните раздел «Сервис».
2. Кликните пункт «Свойства браузера».
4. Прокрутите список параметров вниз, до раздела «Элементы ActiveX… ».
5. Для безопасного и корректного запуска элементов выполните такие настройки:
«Автоматические запросы… » — Отключить (для снижения риска вирусной атаки через задействование этой веб-технологии);
«Включить фильтрацию… » — Включить (для выборочного запуска, также в целях безопасности);
«Разрешать… только увтерждённые» — Включить (для активации только на доверенных сайтах);
«Разрешить… которые не использовались» — Отключить (не запускать блоки, которые раньше не использовались);
«Скачивание неподписанных элементов» — Отключить (также, чтобы не активировать сомнительные, потенциально опасные объекты);
«Скачивание подписанных элементов» — Предлагать (отображается запрос на загрузку).
Примечание. В статье рассмотрены только базовые опции. В списке есть и другие параметры для тонкой отстройки функционирования ActiveX.
Внимание! Если вы не уверены в том, что правильно задали параметры, можно сделать сброс настроек. Для этого в строке «На уровень» задайте уровень особых параметров (например, «Высокий») и кликните «Сбросить».
Галактика элементов управления ActiveX
Галактика элементов управления ActiveX По последним подсчетам, число элементов управления ActiveX уже превысило число звезд во Вселенной. Относительно всего, что вы только можете пожелать вставить в свою VBA-программу, почти наверняка можно сказать, что кто-то уже разработал
Возможности технологии ActiveX
Возможности технологии ActiveX Напомним, что в Windows с самого начала для обеспечения обмена данными между приложениями была разработана технология связывания и внедрения объектов (OLE, Object Linking and Embedding). Вначале технология OLE использовалась для создания составных документов, а
Отключение/включение фильтрации
Фильтр элементов ActiveX — блокирует запуск элементов на веб-страницах по заданным в настройках правилам.
Если вы не знаете, как отключить/включить фильтр ActiveX, выполните эту инструкцию:
1. В меню перейдите в раздел «Сервис».
2. Кликом мышки установите или уберите «галочку» в строке «Фильтрация… », соответственно для включения или отключения опции.
Если нужно разрешить запуск элементов на текущей вкладке:
1. В адресной строке щелчком мышки запустите блок настройки — иконку «знак запрета».
2. В открывшемся окне нажмите «Отключить фильтрацию… ». После обновления страницы, та её часть, которая была заблокирована, отобразится.
Подразделы ветви ActiveX-объекта
Подразделы ветви ActiveX-объекта Подразделы, описывающие ActiveX-объекты, кроме параметров, могут содержать множество дочерних подразделов. Среди них могут присутствовать и уже рассмотренные shell и shellex, а также некоторые из следующих подразделов.? DefaultIcon — параметр (По
Риск и возможные последствия
Элементы ActiveX могут иметь неограниченный доступ к компьютеру и, следовательно, могут получить доступ к локальной файловой системе и изменить параметры реестра операционной системы. Если злоумышленник воспользуется элементом ActiveX, чтобы управлять компьютером, нежелательные последствия могут быть весьма серьезными.
ActiveX для Internet Explorer — это специальный фреймворк, или плагин, предназначенный для детектирования на веб-страницах (серверах) всевозможных программных компонентов, приложений, созданных на различных языках программирования, и организации их функционирования в Интернет Эксплорере.
Управляющие элементы ActiveX имеют определённую схожесть с апплетами платформы Java. Это составные блоки клиент-серверных программ, работающих в браузере Internet Explorer, интерактивных сценариев для воспроизведения анимации и видео.
Актив X — это уникальная технология, оптимизированная только для IE. Установка элемента ActiveX в браузере как таковая не нужна, поскольку он является частью операционной системы Windows. По умолчанию устанавливается вместе с дистрибутивом ОС.
Из этой статьи вы узнаете, как включить ActiveX в Internet Explorer (активировать) и отключить , а также как настроить фильтрацию его элементов (запретить их включение на веб-страницах), как скачать и установить версию плагина Flash, поддерживающего веб-технологию Active-X.
Использование элементов управления ActiveX в программах
Использование элементов управления ActiveX в программах Добавив элемент управления ActiveX в панель Toolbox, вы можете добавлять его в свои формы точно так же, как стандартные элементы управления VBA. Правда, чтобы заставить элемент управления делать что-нибудь полезное, нужно
Разрешение выполнения ActiveX-объектов на локальном компьютере
Разрешение выполнения ActiveX-объектов на локальном компьютере Еще одной интересной возможностью, которую можно отредактировать с помощью реестра, является слежение системы за ActiveX-объектами при работе с HTML-страницами на локальном компьютере. Если вы часто просматриваете
Элементы управления ActiveX и другие
Элементы управления ActiveX и другие В любой программе для Windows элементы управления - это все те бедолаги на экране, на которых можно щелкнуть или что-нибудь напечатать, чтобы вызвать определенное ответное действие программы. Среди самых распространенных элементов
Включение элементов ActiveX на один раз при появлении предупреждения системы безопасности
Выполнив приведенные ниже инструкции, можно включить элементы управления на то время, пока открыт файл. Если закрыть файл и открыть его снова, предупреждение появится опять.
Откройте вкладку Файл.
В области Предупреждение системы безопасности нажмите кнопку Включить содержимое.
Выберите элемент Дополнительные параметры .
В диалоговом окне Параметры безопасности Microsoft Office выберите команду Включить содержимое для этого сеанса для каждого элемента ActiveX.
На приведенном ниже рисунке показана область Предупреждения системы безопасности, если элементы ActiveX можно включить на то время, пока открыт файл.
Если файл содержит проект Visual Basic для приложений (VBA), например файл Microsoft Excel с поддержкой макросов, центр управления безопасностью налагает более жесткие ограничения, поскольку такой файл может содержать макросы.
Элементы ActiveX и другой активный контент следует включать только в том случае, если точно известно, что они получены из надежного источника.
Приложение 4. ActiveX-объекты
Приложение 4. ActiveX-объекты Приложение содержит краткий список ActiveX-объектов, идентифицирующих различные команды или значки оболочки Windows. Кроме описания ActiveX-объекта, данное приложение определяет действия, которые можно выполнить с объектом в Windows: можно ли создавать
В этой статье
Использование элементов управления ActiveX
Использование элементов управления ActiveX Вопреки сложившейся репутации программного империалиста, Microsoft стремится сделать свои средства разработки полностью "открытыми". Основываясь на спецификациях ActiveX, любой программист может создавать новые элементы управления,
Возможности технологии ActiveX
Возможности технологии ActiveX Напомним, что в Windows с самого начала для обеспечения обмена данными между приложениями была разработана технология связывания и внедрения объектов (OLE, Object Linking and Embedding). Вначале технология OLE использовалась для создания составных документов, а
Установка апплета Flash для IE
В виду специфики технологии ActiveX для IE в Windows 7 и XP нужно устанавливать версию Flash, адаптированную именного для него.
2. Если в первом блоке не отобразилась настроечная панель, клацните ссылку «Нужен проигрыватель… для другого компьютера?».
3. В первой строке установите версию используемой ОС (Windows 7….).
4. Во второй строке в ниспадающем перечне выберите версию — FP Internet Explorer — ActiveX.
5. Кликом мышки снимите галочки в средней колонке «Дополнительные приложения».
6. Клацните «Загрузить».
7. В нижней панели IE щёлкните «Выполнить».
8. Подтвердите запуск: нажмите «Да» в окне «Контроль… ».
Помните, что правильная настройка модуля Актив X снижает риск заражения браузера и всей системы компьютера вирусами, устраняет навязчивые уведомления о невозможности запуска элементов на доверенных веб-ресурсах.
Элементы ActiveX
Элементы ActiveX — это небольшие приложения, с помощью которых веб-сайты предоставляют контент (например, видео и игры). Они также позволяют взаимодействовать с таким контентом, как панели инструментов и биржевые бегущие строки, при просмотре веб-страниц. Однако эти приложения иногда могут работать неправильно или выводить нежелательный контент. В некоторых случаях эти приложения могут выполнять сбор информации, повреждать данные на компьютере, устанавливать программное обеспечение без согласия пользователя и использоваться для удаленного управления компьютером.
Использование компонентов ActiveX
Использование компонентов ActiveX Расположение компонентов ActiveXЕсли вы хотите использовать компоненты ActiveX в своем проекте, их надо соответствующим образом к этому проекту добавить. Для этого нужно выполнить команду меню Project ? Components или нажать сочетание клавиш Ctrl+T. На
Параметры раздела ActiveX-объекта
Параметры раздела ActiveX-объекта Раздел CLSID включает в себя список вложенных подразделов, каждый из которых назван на основе CLSID-номера ActiveX-объекта, который он описывает, и хранит сведения только об этом ActiveX-объекте. Подраздел ActiveX-объекта может содержать следующие
Читайте также: