Карманные ПК, Операционная система PalmOS
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: химическая реферат, сочинение
| Добавил(а) на сайт: Чучанов.
Предыдущая страница реферата | 5 6 7 8 9 10 11 12 13 14 15 | Следующая страница реферата
10 Расширения PalmOS
Как уже ранее говорилось все приложения вызывают функции PalmOS для
выполненеия каких либо действий ( в Windows такой набор функций называется
WinAPI ), например открытие файла, вывод на экран, ввод/вывод. Но PalmOS
так устроена что в ней можно переопределять поведение этих функций.
в Windows тоже можно подменить любую API функцию, но в PalmOS этот механизм упрощен и офиально поддерживается на уровне системы.
Рассмотрим на пример что происходит при открытии файла:
при вызове DmOpenDatabase (открытие файла) вызывается функция с номером
sysTrapDmOpenDatabase в специальной таблице указателей. Этот механизм
называется - Palm OS trap dispatch mechanism – т.е. когда вызывается
функция то на самом деле приложение обращается к trap dispatch механизму и
просит его вызвать такой-то номер функции (а параметры передаются в стеке).
Эту таблицу указателей можно спокойно изменять с целью подмены функций.
Подменить системную функцию может любое приложение (например CyrHack, оно
видно в системе как приложение но подменяет ряд функция для русификации
PalmOS). Но есть еще специальный вид приложений для PalmOS – это Хаки (от
слова hach, а фициальное название System Extention), это проложения которые
созданы по спецификации HackMaster API (независимый стандарт). Это стандарт
который облегчает создание Хаков, а так-же делает более безопасным их
присутствие в системе. Согласно этому стандарту за всеми хаками в системе
следит Менеджер Хаков. Это обычное приложение в котором можно посмотреть
сисок всех хаков, настроить их, и активизировать.
Программирование хаков требует более глубокого знания системы.
Пример Разработки Приложения для PalmOS
Рассмотрим пример простого приложения - example1.prc(1,5кб) оно состоит из
одной формы. На Форме расположена кнопка , надпись, и текстовое поле, к
форме прикреплено меню . При нажатии на кнопку появляется сообщение.
Проект приложения состоит из 3х файлов:
Example1.c – исходный код на языке С.
Example1.h – имена и номера елементов формы
Example1.rcp – описание ресурсов приложения (форма, меню, кнопка, диалог
сообщения).
файл example1.c
#include
#include "hw.h"
static FormPtr gpForm;
Boolean Form1_HandleEvent(EventPtr event)
{ switch(event->eType) { case ctlSelectEvent: if ( event->data.ctlEnter.controlID == Button1)
FrmCustomAlert(Alert1, "MessageBox !", "", ""); break; case menuEvent: if ( event->data.menu.itemID == IDM_about)
FrmCustomAlert(Alert1, "This is Example", "", "");
break; case frmOpenEvent: gpForm=FrmGetActiveForm();
FrmDrawForm(gpForm); break; case frmCloseEvent:
FrmEraseForm(gpForm);
FrmDeleteForm(gpForm); break;
default: return false;
} return true;
}
static Boolean ApplicationHandleEvent(EventPtr event)
{
FormPtr frm;
Boolean handled=false;
switch(event->eType) { case frmLoadEvent: frm = FrmInitForm (event->data.frmLoad.formID);
FrmSetActiveForm (frm);
FrmSetEventHandler(frm , Form1_HandleEvent); handled = true; break;
} return handled;
}
UInt32 PilotMain(UInt16 launchCode, void *cmdPBP, UInt16 launchFlags)
{
Рекомендуем скачать другие рефераты по теме: реферат на тему природа, автомобили реферат доход реферат.
Категории:
Предыдущая страница реферата | 5 6 7 8 9 10 11 12 13 14 15 | Следующая страница реферата