Владимир Волков - Программирование для карманных компьютеров
Название Windows CE.NET является общим для всех версий Windows CE 4.x. Дело в том, что начиная с версии Windows CE 4.0, Microsoft объявила о включении в состав Windows CE своей новой технологии. NET в виде специального исполнения для встраиваемых устройств Compact Framework (CF). В версию Windows CE 4.0 CF была включена со статусом Beta, в версию 4.1 включалась окончательная реализация, а в версию 4.2 вошла уже. NET Framework service pack 2.
Несмотря на то, что Pocket PC – маленький компьютер и выглядит почти как детская игрушка, программирование для него является вполне серьезным делом. Операционная система Windows Mobile (Windows CE) предоставляет программисту подмножество функций Win32 API и других программных интерфейсов, с которыми программисту приходится взаимодействовать на настольном компьютере.
Достаточно простая схема, отображающая архитектуру операционной системы, приведена на рис. 1.1.
Рис. 1.1. Схема архитектуры Windows Mobile для Pocket PC.
Расшифровка терминов, использованных в этой схеме, приведена в следующем списке.
OAL (OEM Adaptation Layer) – минимальное программное обеспечение, необходимое для того, чтобы стандартное ядро операционной системы начало взаимодействовать с устройством. Обычно OAL включает в себя код загрузки ядра и набор нестандартных драйверов.
GWES (Graphics, Windowing, and Events Subsystem) включает в себя графический интерфейс устройства (GDI, Graphics Device Interface) и компоненты пользовательского интерфейса.
Windows CE предоставляет программисту богатейший набор разнообразных API, позволяющий взаимодействовать со всеми устройствами и подсистемами OS.
Core OS Interface отвечает за базовые операции операционной системы по управлению объектами ядра, памятью системы, сообщениями, системным временем, вызовами отладки, динамическими загружаемыми библиотеками.
Блок DLL содержит процедуры управления загрузкой Рё выгрузкой динамических библиотек, Р° также вызовом функций РёР· РЅРёС…. Рнтерфейс Fiber предназначен для создания потоков, управляемых «вручную». Р’ блок Memory Management РІС…РѕРґСЏС‚ процедуры Рё функции для управления распределением памяти. Рнтерфейс Power Management предназначен для управления потреблением электропитания. Рнтерфейс Message Queue Point-to-Point позволяет СЃ минимальным использованием ресурсов осуществлять обмен сообщениями между окнами, устройствами Рё СЏРґСЂРѕРј. Блок Process and Thread отвечает Р·Р° создание процессов Рё потоков, реализацию Рё управление многопоточной моделью.
Рнтерфейс Time обслуживет РІСЃРµ системные потребности РІ определении времени, РѕС‚ получения Рё установки текущего системного времени РґРѕ миллисекундного измерения временных интервалов. API ToolHelp используется для отладки, Р° API Pointer обеспечивает управление графическим РєСѓСЂСЃРѕСЂРѕРј. Блок Stylus занимается организацией взаимодействия программы СЃ командами, подаваемыми пользователем РїСЂРё помощи стилуса. Блок Authentication отвечает Р·Р° управление безопасностью системы Рё занимается защитой РѕС‚ неавторизованного доступа. РћРЅ поддерживает механизмы авторизации Рё аутентификации, отвечающие протоколам NTLM Рё Kerberos. Блок Cryptography содержит механизм шифрования информации. Механизм опознавания систем, пользователей, приложений Рё сервисов, СЃ которыми устанавливается контакт через сеть, управляется блоком РЎertificates. Блок RAS API Рё Dial-Up Networking занимается установкой подключения Рє удаленному компьютеру, Р° через него Рє локальной или глобальной сети РїСЂРё помощи протокола PPP. Р’ блоке Fonts содержится интерфейс управления системными шрифтами, Р° блок MLang отвечает Р·Р° определение Рё преобразование текстовых ресурсов РѕРґРЅРѕР№ РєРѕРґРёСЂРѕРІРєРё РІ РґСЂСѓРіСѓСЋ. Рнтерфейс Рє функциям программно-организованной клавиатуры Pocket PC организован РїСЂРё помощи API Software-Based Input Panel (SIP API).
Блок JScript 5.5 отвечает за поддержку одноименного скриптового языка общего назначения. Организация доступа к Active Directory Service реализована при помощи технологии Lightweight Directory Access Protocol (LDAP). Блок Multilingual User Interface (MUI) отвечает за многоязычный интерфейс пользователя. Он позволяет создавать приложения, которые могут переключать свой интерфейс с одного языка на другой. Очередь сообщений Message Queuing (MSMQ) позволяет приложениям обмениваться сообщениями в распределенных сетях. При помощи блока Network User Interface (NetUI) производится определение конфигурации сетевых и модемных подключений. В API Object Exchange Protocol (OBEX) входит набор функций, позволяющий устройствам обмениваться данными в упрощенном порядке через IrDA или Bluetooth.
Набор интерфейсов для работы с хранилищем данных и реестром содержит в себе дополнительные функциональные блоки. В блоке Database реализована работа со встроенной базой данных Windows CE, представляющей собой легкую файловую базу данных. Она позволяет использовать элементарную функциональность по созданию, хранению, сортировке и доступу к полям записей. Блок File I/0 содержит набор функций и процедур доступа к файлам и каталогам, а также методы для их создания, удаления и переименования. API File Mapping позволяет связывать виртуальное адресное пространство процесса с определенной частью файла или целым файлом, давая возможность процессу получить доступ к содержимому файла через указатели, а также позволяя разделять доступ к файлу между несколькими процессами.