Windows’95 и Windows NT, Сходства и различия, страница 6

Существуют и другие функциональные возможности модуля Kernel, от самых простых (операции над длинными целыми) до сложных (использование именованных каналов).

Службы пользователя

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

В действительности именно благодаря функциям модуля User становятся доступными высокоуровневые компоненты пользовательского интерфейса. Модуль Kernel поддерживает выделение памяти, управление потоками и другие службы, необходимые окнам и функциям; модуль GDI поддерживает графические примитивы. Но именно модуль User соединяет эти две области и предлагает такое понятие, например, как окно.

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

Связанные с меню вызовы модуля User поддерживают функциональные возможности создания, отображения и работы с меню, строками меню и контекстными меню.

Посредством семейства функций модуля User приложения могут управлять формой и внешним видом графического курсора (указателя мыши) и текстового курсора.

Управление буфером обмена Windows также выполняется с помощью функций модуля User. Буфер обмена (clipboard) Windows — простой механизм, посредством которого приложения могут обмениваться данными. Приложение может поместить данные в буфер в общедоступных и частных форматах; другое приложение может извлечь эти данные в любом интерпретируемом им формате. Большинство приложений поддерживают множество команд меню Edit (Cut, Copy, Paste) для непосредственной работы с содержимым буфера обмена.

Модуль User также поддерживает функции управления сообщениями и очередями сообщений потоков. Приложения могут использовать эти вызовы для проверки содержимого своих очередей сообщений, извлечения и обработки сообщений и создания новых. Новые сообщения могут быть посланы или отправлены любому окну. Отправленное сообщение входит в очередь сообщений потока, владеющего окном назначения. В противоположность этому, посланное сообщение непосредственно вызывает оконную процедуру окна назначения. ФункцияSendMessage не завершается, пока окно назначения не обработает сообщение. Этот механизм не только обходит очередь, но и позволяет посылающему приложению перед продолжением выполнения получить возвращаемое значение.

Службы GDI

Функции GDI (Graphics Device Interface — интерфейс графических устройств) используются для выполнения основных независимых от устройства графических операций над контекстом устройства. Контекст устройства — это, по существу, интерфейс для определенного графического устройства. Его можно использовать для получения информации об устройстве и выполнения графического вывода на это устройство. Информация, которая может быть получена через контекст устройства, содержит его подробное описание. Технология устройства (векторная или растровая), его тип, имя, разрешающая способность, цветовые возможности, возможности шрифтов — все это можно получить, вызвав контекст соответствующего устройства.

Графический вывод осуществляется через контекст устройства, путем передачи дескриптора контекста устройства в соответствующую функцию вывода GDI. Через контекст устройства общие, независимые от устройства графические вызовы транслируются в инструкции, представляющие вывод на конкретное устройство. Например, когда приложение вызывает функцию GDIEllipse, контекст устройства определяет, какой драйвер устройства выполнит этот вызов. Драйвер устройства в свою очередь может далее передать этот вызов аппаратному ускорителю, если видеоподсистема имеет такие возможности.