Games API (GAPI) это технология, которая позволяла приложениям для Windows Mobile 2003 быстро отрисовывать графику на экране. В ней также были функции, которые позволяли получать сообщения о нажатии клавиш, даже для тех, которые обрабатываются операционной системой Windows Mobile самостоятельно.

Графическая составляющая GAPI была заменена на DirectShow (которая позволяла использовать аппаратное ускорение) в Windows Mobile 5.0. В тоже время поддерживалась совместимость с GAPI для того чтобы старые приложения продолжали работать.

Большая часть материалов по GAPI была упразднена в документации к Windows Mobile 6.1, в то же время функции для обработки ввода были оставлены и приложения могли запрашивать обработку нажатия всех клавиш. Совместимость приложений поддерживалась и для этой версии

Все это меняется в новой версии Windows Mobile, в Windows Mobile 6.5. В то же время некоторые устройства все еще могут поддерживать GAPI, но поддержка и тестирование GAPI более не является необходимостью для производителей устройств и для мобильных операторов. Это значит что если приложение требует GAPI, оно может вызвать непредсказуемое поведение на устройствах с Windows Mobile 6.5.

Другим важным изменением является тот факт что для приема в Windows Marketplace for Mobile и для сертификации Designed for Windows Mobile необходимо чтобы приложение не зависело от GAPI.

Для замены функционала, предоставляемого GAPI, новая функция для работы с клавиатурой была введена в публичное API. Это функция AllKeys(). В этой ситуации с введением новой функции есть одна классная штука – она была доступна и ранее наряду с GAPI b на самом деле это API функция, оберткой над которой GAPI и являлась. Это значит что миграция на AllKeys() lолжна быть довольно простой и обратную совместимость можно будет поддерживать без проблем.

Миграцию на AllKeys() можно осуществить очень просто – заменой

  • GXOpenInput() на AllKeys(TRUE).
  • GXCloseInput() на AllKeys(FALSE).

Функция AllKeys() поддерживается для Windows Mobile 2003 и выше. Определена в Winuser.h

Пример использования:

// process checkbox

case IDC_ALL_KEYS_CHECK_BOX:

if (g_AllKeys == true)
{
    // Allow the OS to intercept some button presses
     AllKeys(FALSE);
    g_AllKeys = false;
    // set button state
    SendMessage(hwndCtl,BM_SETCHECK, BST_UNCHECKED,0);
}
else
{
    // Do not allow os to intercept button presses
    AllKeys(TRUE);
    g_AllKeys = true;
    //set button state
    SendMessage(hwndCtl,BM_SETCHECK, BST_CHECKED,0);
} 

Всю эту интересность я узнал из поста в Windows Mobile Team Blog. Эта статья является вольным переводом исходной.

Previous ArticleNext Article
Технический директор IT-Dimension, компании-разработчика кросс-платформенного программного обеспечения

Leave a Reply

Your email address will not be published. Required fields are marked *

О.

О сверхдешевых ноутбуках и о том как не надо делать бизнес – Часть II

Ага, а вот и продолжение истории о ноутбуках “для всех”. Первую часть можно почитать здесь.

Итак, покупка. Как это было? Было это мм.. довольно странно. Договаривался я с братьсями-китайцами две недели, письма писать они умеют, пишут вежливо: “Dear Sir, …” и все такое. В общем-то две недели общения посредством e-mail даром не прошли, информации я узнал об устройствах достаточно и это только укрепило мое желание сделать покупку. Сказали стоимость доставки: $224 если отправлять с помощью EMS (Express Mail Service). Почему именно EMS? Потому что они доставляют посылки каким-то чудесным образом и за них не надо платить таможенный сбор, который у нас может составоять до 30% от стоимости посылки. Именно из-за таможенных сборов мне пришлось отказаться от отправки с помощью DHL, хотя, конечно, я им как-то больше верю, сколько раз с ними работал, всегда все получалось, а FedEx не рассматривался по той причине что качество предоставляемых услуг у них ээ.. как бы это сказать, ниже плинтуса.

Да, в общем сошлись на EMS. Посчитаю-ка я общую стоимость, что у нас получается $162 * 5 + 224 итого $1034. Это получается почти по $207 за устройство. Фигасе!, – подумал я, а как же ж “для всех”? А как же ж “сверхдешевый да еще и на Linux’е”? Это ж 2/3 стоимости EEE PC! Но делать нечего, “Двадцать тыщ уже уплочено” (с) Масяня.

Прислали инвойс. Перевод сделал ПриватБанком. На удивление довольно шустро все произошло, за 40 минут мне открыли лицевой счет (по-моему 30 гривен это стоило, около $6) и $12 взяли за перевод международный. Я даже удивился, в ПриватБанке обычно все ооочень медленно, а тут вот так получилось шустро. Хоть что-то приятное. Итого $1034 + 6 + 12 получается $1052. Это по $210 за штучку. М-да.. почти в два раза стоимость увеличилась от заявленной.

Итак, денежка ушла в Китай. В тот же день отправил братьям-китайцам скан квитанции об оплате и получил от них “большое спасибо, технологические образцы будут готовы в течении 2х недель”.

Ну OK, две так две, можно и подождать, до нового года еще далеко 🙂

Прошло две недели, отписываю им, мол “как там дела с железками”, на что получаю, что-то типа “мы тут как бы пытаемся выпустить новую версию устройства со встроенным Wi-FI модулем, давайте мы вам новые пришлем образцы, но чуть позже”. Слово “Фигасе!” почему-то оять посетило мою голову, при чем тут встроенный вайфай? Я ж проплатил внешний. Ну, говорю, смотрите, я вам за внешний заплатил, дайте мне чего я хочу, просто вышлите и все. В ответ тишина…

Прошла неделя, опять им пишу, мол чего там с железом-то? Я тут заждался уже! На что получаю ответ “ну вот мы тут еще и экранчик улучшили, стало больше цветов и разрешение улучшилось и там еще помните, встроенный вайфай… но этот время, мы это все готовим… но если чего, можем вернуть вам деньги”. Ооо, отлично, экранчик.. но как же $60 за внешние вайфай модули? В общем, решил подождать, обещали разрешение 800х480 (оказывается раньше было меньше!).

Подождал до начал аоктября, опять тишина. Отписываю, мол, ну как там? Уже сделали? Опять тишина. Но я настойчивый, каждые три дня писал им письма 🙂 Наконец-то вот три дня назад получил ответ что мы отправили DHL’ом. Трекинг намбер бла-бла-бла.

Оооо! Отправили! Но DHL! Это получается что за все это добро мне прийдется платить таможенный сбор! Ну ёкарныбабай, мы же договаривались! С таким раскладом мне эти устройства выйдут по стоимости как EEE PC! Решил было успокоиться, но не ту-то было. На сайте DHL указанный tracking number оказался невалидным. Для пущей уверенности пошел проверить на сайте EMS, может в письме ошиблись с названием компании-курьера… Попробовал, то же самое, невалидный номер.

Сегодня отписал им по этому поводу, жду ответа, нервничаю…

Продолжение этой истории напишу как появятся новые сведения.

ЗЫ: У кого-нибудь еще есть опыт покупки оборудования в Китае? Как это было?