Информационные технологииStfw.Ru 🔍

Разработка элементов оболочки Windows Vista

🕛 19.02.2008, 15:47
Введение

Оболочка Windows - это контейнер, в котором представлен весь интерфейс пользователя (ИП) Windows Vista, включая панель задач, рабочий стол, проводник и многие элементы управления диалоговых окон и интерфейса.

В Microsoft Windows 3.0 оболочка была реализована как внутренняя DLL-библиотека Win16 с соответствующим API-интерфейсом. Она обеспечивала возможность работы с несколькими перекрывающимися окнами и включала диспетчер программ для просмотра и управления файловой системой. В Microsoft Windows 95 был реализован ряд усовершенствований ИП, добавлен новый проводник и новая платформа на основе COM с соответствующими API. Microsoft Internet Explorer 3 добавил ярлыки Интернета и расширения веб-обозревателя. В каждой последующей версии Windows и Internet Explorer добавлялись дополнительные возможности и соответствующие расширения API-интерфейсов Win32 и COM. Среда выполнения для оболочки распространялась в виде множества библиотек динамической компоновки (DLL). Дополнительные сведения см. в документе "Дорожная карта для оболочки Windows" в пакете Windows Software Development Kit (SDK).

К средствам оболочки, реализованным в Windows Vista и предназначенным для работы с данными и метаданными, относятся диспетчер синхронизации, динамические значки, расширенный просмотр и обработчики свойств. Разработка элементов панели управления обсуждается в разделе "Управление Windows Vista" документа "Основы" в Windows SDK. Дополнительные сведения см. в статье "Разработка элементов панели управления" библиотеки MSDN.

Настоящая статья содержит сведения об изменениях в следующих областях:

* Разработка с использованием общих файловых диалоговых окон - описывается программирование общих диалоговых окон: общее файловое окно, открытие файла и сохранение файла. Эти диалоговые окна - новые компоненты Windows Vista. * Разработка элементов диспетчера окон рабочего стола - описывается новое ядро управления визуальной компоновкой и отображением окон на рабочем столе и даются общие сведения о новом наборе API оболочки. * Разработка с использованием проводника - описывается архитектура нового проводника Windows Vista и показано, как эффективнее всего использовать его компоненты при разработке. В разделе разработки с использованием Internet Explorer (IE) представлена платформа IE, показаны способы использования платформы при разработке и перечислены основные изменения в IE 7. * Разработка с использованием Internet Explorer - описываются основные изменения в ИП и функциональных возможностях IE и показано, как разработчики программного обеспечения могут взаимодействовать с IE и расширять его возможности. * Новые интерфейсы оболочки - перечисляются новые интерфейсы оболочки Windows Vista по категориям. * Новые функции оболочки - список новых функций оболочки Windows Vista по группам.

Разработка с использованием общих файловых диалоговых окон

Windows Vista предоставляет обновленную версию общего файлового диалогового окна, которая удовлетворит потребности большинства разработчиков. Этот мощный компонент разработан для поддержки возможностей настройки и расширяемости. Оболочка Windows Vista обеспечивает доступ к этим новым файловым диалоговым окнам через объект IFileDialog и соответствующие интерфейсы. Приложения .NET Framework 3.0 для Windows Vista могут обращаться к этим возможностям с помощью функций поддержки совместимости из Windows SDK. Дополнительные сведения см. в статье "Функциональная совместимость и миграция" библиотеки MSDN
Использование объекта общего файлового диалога

Приложения, которым требуется создать экземпляр общего файлового диалогового окна, должны воспользоваться одним из следующих интерфейсов.
* IFileDialog - самый общий интерфейс, который является родительским для следующих двух. * IFileOpenDialog - расширяет интерфейс IFileDialog, позволяя приложениям управлять аспектами, специфичными для операций открытия, например выбор нескольких элементов. * IFileSaveDialog - управление операциями "сохранить как" и работа с метаданными.

Все файловые диалоговые окна являются модальными. С помощью методов этих классов (таких как SetTitle, SetDefaultFolder, SetFileTypes и GetCurrentSelection) разработчики могут получить и настроить элементы ИП, типичные при использовании диалоговых окон. Многими из стандартизованных аспектов поведения диалогового окна можно управлять с помощью методов GetOptions и SetOptions путем установки битовых флагов. Эти параметры могут быть установлены только до открытия диалогового окна, в противном случае метод SetOptions возвращает ошибку. Окончательный выбор пользователя можно получить с помощью метода GetResult или объекта IFileOpenDialog при включенном параметре FOS_ALLOWMULTISELECT.
Работа с событиями файлового диалогового окна.

Экземпляр объекта окна файлового диалога обеспечивает основной ИП и функциональные возможности соответствующего общего файлового диалогового окна. В некоторых клиентах, однако, для практического использования этих диалоговых окон требуется обращение к событиям, генерируемым операциями в диалоговом окне или отдельными элементами управления диалогового окна.

Интерфейс IFileDialogEvents предоставляет методы, которые сигнализируют о действиях пользователя, и методы, создающие уведомления о событиях в общем файловом диалоговом окне. Дополнительные сведения о работе с событиями файлового диалогового окна см. в справочном файле, который можно загрузить здесь. Чтобы найти эту статью в загруженном файле справки, разверните раздел Основы, разверните Оболочка Windows (Windows Vista) и затем разверните и щелкните Разработка элементов оболочки Windows.
Настройка общего файлового диалогового окна

В дополнение к настройкам ИП и поведения, которые могут быть сделаны через основной интерфейс диалогового окна и интерфейсы событий, интерфейс IFileDialogCustomize позволяет разработчикам добавлять к диалоговому окну дополнительные общие элементы управления выше или ниже набора стандартных элементов управления данного диалогового окна. Это такие элементы управления, как PushButton, ComboBox, EditBox, CheckBox и RadioButtonList. Дополнительные сведения о настройке общего файлового диалогового окна см. в справочном файле, который можно загрузить здесь. Чтобы найти эту статью в загруженном файле справки, разверните раздел Основы, разверните Оболочка Windows (Windows Vista) и затем разверните и щелкните Разработка элементов оболочки Windows.
Разработка элементов диспетчера окон рабочего стола

Диспетчер окон рабочего стола (DWM) - новый компонент, представленный в Windows Vista, который управляет визуальной компоновкой и отображением рабочего стола Windows Vista и организует вывод окон приложения. В предыдущих версиях Windows вывод приложений направлялся непосредственно на устройство отображения. Для формирования поверхности, например окна приложения, DWM использует композицию рабочего стола, рисуя окно во внеэкранном буфере. После этого окно объединяется со всеми остальными поверхностями для визуализации рабочего стола. Дополнительные сведения о разработке элементов DWM см. в справочном файле, который можно загрузить здесь. Чтобы найти эту статью в загруженном файле справки, разверните раздел Основы, разверните Оболочка Windows (Windows Vista) и затем разверните и щелкните Разработка элементов оболочки Windows.
Разработка с использованием проводника

Проводник в Windows Vista - мощное приложение для просмотра и управления ресурсами. К проводнику как интегрированному компоненту можно обратиться, запустив файл Explorer.exe, или через интерфейс оболочки IExplorerBrowser.

Проводник (Explorer.exe) может быть порожден как отдельный процесс с помощью функции ShellExecuteEx или подобной ей. Параметры командной строки описаны на веб-узле справки и поддержки корпорации Майкрософт в статье "Параметры командной строки проводника".

Открытые окна проводника можно обнаруживать и программировать с помощью строки IShellWindows/CLSID_ShellWindows, а новые экземпляры проводника можно создавать с помощью IWebBrowser2/CLSID_ShellBrowserWindow.

Пример кода C++, который демонстрирует, как для создания окон проводника и доступа к уже открытым окнам может использоваться модель автоматики проводника, приведен в файле справки, который можно загрузить здесь. Чтобы найти эту статью в загруженном файле справки, разверните раздел Основы, разверните Оболочка Windows (Windows Vista) и затем разверните и щелкните Разработка элементов оболочки Windows.

Клиентской областью проводника можно управлять с помощью интерфейса оболочки IExplorerBrowser. Клиент проводника и элементы управления дерева пространства имен - стандартные компоненты Windows Vista, и эти интерфейсы являются открытыми. Поэтому разработчики могут многократно использовать эти интерфейсы в качестве строительных компонентов. Например, эти элементы управления часто применяются для создания экземпляра проводника, настроенного для решения определенной группы задач.

Элементы управления в проводнике Windows подразделяются на следующие функциональные категории: элементы управления для переходов, командные элементы управления, элементы управления для предварительного просмотра и работы со свойствами, элементы управления для фильтрации и видов и элемент управления Listview (список элементов).
Элементы управления для переходов

Элементы управления для переходов помогают пользователям определять контекст и перемещаться в связанном пространстве логического домена, которое называется пространством страниц. Например, пространством страниц для проводника является пространство имен оболочки. Пространства страниц состоят из нуля и более страниц.

В следующей таблице перечисляются и описываются элементы управления для переходов, доступные в проводнике операционной системы Windows Vista.
Элемент управления для переходов Описание
Строка адреса (элемент управления Breadcrumb) Отображает адрес текущей страницы в пространстве страницы. С помощью кнопок Breadcrumb можно перейти к любой странице более высокого уровня в пространстве страниц. Пользователи для переходов могут также вводить URL-адреса и пути
Дерево папок Новая версия элемента управления "дерево", оптимизированная для больших пространств страниц
Путешествие Выполнение относительных переходов с помощью кнопок веб-стиля, таких как Назад и Вперед
Заголовок Отображение названия и контекста текущего экземпляра проводника
Пространство страниц Текущая ветвь пространства страниц. Страницы могут быть упорядочены по разным критериям. Чтобы перейти к странице, пользователь может щелкнуть ее
Командные элементы управления

Командные элементы управления предоставляют в распоряжение пользователей функции и возможности проводника. Они выполняют общие действия или действия, специфичные для выбранного элемента или элементов.
Командный элемент управления Описание
Панель инструментов Вывод кнопок для часто используемых команд (новая версия панели инструментов для вызова команд). К возможностям настройки относятся кнопки с раскрывающимся списком, кнопки-разделители, необязательный текст описания и область переполнения
Герой Необязательный, отдельно настраиваемый элемент управления в центре панели инструментов. Представляет основную команду для текущего контекста
Строка меню Обеспечивает доступ к командам через меню (устаревший элемент управления в проводнике)
Заголовок Отображение названия и контекста текущего экземпляра проводника
Контекстное меню Список контекстного подмножества команд, доступных для данного объекта. Меню открывается в результате щелчка объекта правой кнопкой мыши
Элементы управления для предварительного просмотра и работы со свойствами.

Элементы управления для предварительного просмотра и работы со свойствами используются для просмотра элементов, а также для просмотра и редактирования их свойств.
Элемент управления Описание
Предварительный просмотр Предварительный просмотр выбранного элемента, например эскиза или динамического значка
Свойства Отображение свойств выбранного элемента. Для множественного выбора показывается сводка свойств выбранной группы элементов. Если выбранных элементов нет, показывается сводка свойств текущей страницы (содержание списка элементов)
Элементы управления для фильтрации и видов

Элементы управления для фильтрации и видов используются для управления набором элементов в списке и изменения представления элементов.
Элемент управления Описание
Фильтр Фильтрует или упорядочивает элементы в списке в соответствии со свойствами, заданными в качестве столбцов. Щелчком заголовка столбца выполняется сортировка по данному свойству
Wordwheel Динамическая нарастающая фильтрация отображаемых элементов в списке по мере ввода текстовой строки
Вид Позволяет пользователю изменить режим отображения в элементе управления Listview. Кроме того, с помощью регулятора можно изменять размер значков
Элемент управления Listview

Элемент управления Listview используется для просмотра набора элементов в одном из четырех представлений: "таблица", "плитка", "значки" или "панорама". Элемент управления Listview также позволяет пользователю взаимодействовать с одним или несколькими элементами с помощью выбора и активации.

Внимание! Хотя некоторые из этих элементов управления имеют названия и (или) функциональные возможности, подобные стандартным элементам управления Windows Presentation Foundation (WPF), относящимся к пространству имен System.Windows.Controls, это совершенно другие классы.

Эти отдельные элементы управления можно соотнести друг с другом главным образом через события, генерируемые при взаимодействии с пользователем или самими элементами управления. Существует три основные категории событий.
Категория событий Пример
Переход Переход от одной страницы к другой
Выбор Изменение текущего выбора в списке элементов
Изменение вида Изменение порядка или режима представления элементов в списке

Такой богатый и функциональный набор элементов управления для прорисовки позволяет разработчикам сосредоточиться на описании пространства страниц и реализации поведения, связанного с содержимым.

На момент написания этой статьи пакет Windows SDK еще не содержал документации по этим элементам управления проводника, однако пример ExplorerBrowserAPI приведен в каталоге Samples.
Разработка с использованием Internet Explorer

Кроме того, что Microsoft Internet Explorer (IE) является ведущим веб-обозревателем, это сложная и мощная платформа для разработки независимого программного обеспечения. Разработчики могут взаимодействовать с IE и расширять его с помощью множества методов и технологий, включая следующие:
* порождение экземпляров; * автоматические экземпляры * асинхронные подключаемые протоколы; * расширения обозревателя; * вспомогательные объекты обозревателя (BHO); * загрузка компонентов; * удаленное выполнение приложений; * многократное использование компонентов.

Порождение экземпляров

Многие приложения порождают экземпляр IE, чтобы дать пользователю возможность обратиться к известному ресурсу, например просмотреть веб-страницу или локальный HTML-файл. Это может быть реализовано с помощью прямого запуска IExplore.exe функцией ShellExecute или опосредованно - открытием файла данных, связанного на текущей машине с IE, например файла HTML. В последнем варианте предполагается, что IE является веб-обозревателем, используемым по умолчанию. Того же результата можно достичь в управляемом приложении с помощью вызова System.Diagnostics.Process.Start.
Автоматические экземпляры

Более эффективное управление экземпляром IE обеспечивает объект автоматизации COM InternetExplorer.
Асинхронные подключаемые протоколы

API-интерфейс на основе COM позволяет создавать настроенные, подключаемые обработчики протоколов, MIME-фильтры и обработчики пространства имен. Таким образом IE можно расширить для поддержки новых коммуникационных протоколов и форматов документов.
Расширения обозревателя

С помощью расширений обозревателя разработчики могут изменять интерфейс пользователя IE, добавляя пользовательские строки обозревателя, новые команды контекстного меню, команды меню Сервис и соответствующие кнопки панели инструментов.
Вспомогательные объекты обозревателя

Объекты BHO позволяют расширять IE с помощью пользовательских, внутрипроцессных COM-компонентов. Эти объекты загружаются при каждом запуске IE и могут выполнить любое действие в доступных окнах и модулях IE, включая настройку ИП обозревателя, обработку событий, захват сообщений и интерпретацию пользовательских форматов данных.
Загрузка компонентов

IE можно использовать для распространения таких компонентов, как элементы управления Microsoft ActiveX (ocx), файлы библиотек динамической компоновки (dll), исполняемые модули и файлы классов или апплеты Java, на клиентские компьютеры для использования по запросу или в сценариях полной установки. IE поддерживает подписанные файлы архивов (cab) для упаковки распространяемых наборов, информационные файлы (inf), содержащие инструкции по установке, и файл открытого описания программного обеспечения (Open Software Description, OSD), описывающий программные компоненты и их отношения.
Удаленное выполнение приложений

Клиент-серверные технологии, такие как Microsoft ASP.NET или элемент управления ActiveX для веб-подключения удаленного рабочего стола с помощью службы терминалов, позволяют IE управлять приложениями, которые работают (по крайней мере, частично) на сервере.
Многократное использование компонентов

Модульная архитектура IE предоставляет разработчикам множество мощных элементов управления ActiveX многократного использования, которые можно использовать в независимых приложениях. Самые известные из них - элемент управления WebBrowser (Shdocvw.dll), который создает мини-обозреватель с функциями переходов и истории, и Mshtml.dll, который является основным обработчиком, управляющим выводом и синтаксическим разбором HTML.

С IE связано много других возможностей, служб и средств, например, редактор MSHTML, анализатор службы Microsoft XML Core Services (MSXML) и архитектура гиперссылок. Дополнительные сведения см. в статье "Разработка Internet Explorer" библиотеки MSDN, а также в Центре разработчиков Internet Explorer.
Что нового в Internet Explorer 7

В ИП и функциональные возможности IE 7 было внесено много существенных изменений. Изменения особенно касаются безопасности, обновленного протокола и поддержки стандартов.

Следующие изменения были сделаны специально для разработчиков программного обеспечения:
* обновленная поддержка веб-каналов - в IE 7 усилена поддержка каналов RSS и ATOM в интерфейсе IE и через интеграцию с Microsoft Web Feeds API. Дополнительные сведения см. в статье "RSS в Windows Vista" библиотеки MSDN; * фишинг-фильтр (Microsoft) - IE 7 содержит средства защиты пользователей от фишинга и вредоносных веб-узлов. Полный фишинг-фильтр, включая возможности для системных администраторов настраивать групповую политику для всей сети, доступен в IE 7 для всех платформ. Разработчики полезных веб-узлов обретают большие преимущества от применения фишинг-фильтра, поскольку пользователи получают дополнительный доверенный контроль над своей средой; * обозреватель с вкладками - это усовершенствование ИП для пользователей добавлено также в модель DOM обозревателя IE и соответствующие API. Дополнительные сведения см. в статье "Обозреватель с вкладками для разработчиков" библиотеки MSDN; * улучшена поддержка существующих стандартов - улучшена поддержка IDN-имен (Internationalized Domain Name), HTML 4.0.1, таблиц стилей и рисунков в формате PNG; * защищенный режим - в Windows Vista защищенный режим уменьшает опасность угроз для IE и расширений, работающих в IE, исключая возможность незаметной установки вредоносного кода через уязвимости программного обеспечения. Для блокировки обращений из IE к системным ресурсам и приложениям с более высоким уровнем доверительности IE 7 использует механизм поддержания доверительности Windows Vista и технологию UIPI (User Interface Privilege Isolation). Хотя Windows Vista и IE содержат возможности поддержки более ранних версий приложений, все новые и существующие приложения должны тщательно тестироваться на совместимость с Windows Vista и IE 7; * внутренняя поддержка XMLHTTP - в IE 7 реализована версия XMLHTTP, которая представляет собой не объект, а внутренний объект с возможностью управления из сценария. Пользователи теперь могут отключать элементы управления ActiveX, не прерывая связи клиента с сервером, чтобы динамические транзакции, использующие XML-данные, могли продолжать работать в фоновом режиме. Это позволяет вставлять новые, динамически отбираемые данные, в текущую HTML-страницу, которая иначе была бы статической страницей; * безоконный элемент управления Select - хотя это изменение обеспечивает правильную работу последовательности элементов управления и масштабирования, существующие приложения, в которых используется дескриптор окна (HWND) этого элемента управления, следует переписать под использование DOM.

Дополнительные сведения см. в статье "Что нового в Internet Explorer 7" библиотеки MSDN.
Новые интерфейсы оболочки Windows Vista

К оболочке Windows Vista был добавлен обширный набор COM-интерфейсов, который значительно расширяет ее встроенные возможности. Дополнительные сведения о новых интерфейсах оболочки Windows Vista см. в справочном файле, который можно загрузить здесь. Чтобы найти эту статью в загруженном файле справки, разверните раздел Основы, разверните Оболочка Windows (Windows Vista) и затем разверните и щелкните Разработка элементов оболочки Windows.
Новые функции оболочки Windows Vista

К API-интерфейсу оболочки Windows Vista был добавлен обширный набор функций для Win32, неуправляемой модели программирования для операционной системы Microsoft Windows. Дополнительные сведения о новых функциях оболочки Windows Vista см. в справочном файле, который можно загрузить здесь. Чтобы найти эту статью в загруженном файле справки, разверните раздел Основы, разверните Оболочка Windows (Windows Vista) и затем разверните и щелкните Разработка элементов оболочки Windows.

Windows Vista   Теги:

Читать IT-новости в Telegram
Информационные технологии
Мы в соцсетях ✉