Информационные сообщения с назначенными на него «событиями» используются телефоном для передачи информации из одной книги в другую.
Сообщения могут как содержать дополнительную информацию (приложение), так и могут быть отправлены без неё.
Рассмотрим данный метод.
#pragma swi_number=0x12B __swi __arm int CreateBook(void * mem, void (* onClose)(BOOK*), const PAGE_DESC * bp, const char * name, int __0xFFFFFFFF,int __0);
Как мы видим, третьим параметром при создании книги является PAGE_DESC. Это описание главной страницы книги. Данная страница будет добавлена в список активных страниц прямо при создании книги.
Пример описания страницы
const PAGE_MSG bk_msglst_base[] @ "DYN_PAGE" = { ELF_TERMINATE_EVENT, TerminateElf, ELF_SHOW_INFO_EVENT, ShowAuthorInfo, NIL_EVENT_TAG, NULL }; const PAGE_DESC bk_base = {"MyElf_Base_Page",0,bk_msglst_base};
Как мы видим, в массиве bk_msglst_base записаны номера событий и соответствующие им процедуры.
Обратите внимание, что фиксированные события из эльфпака (ELF_TERMINATE_EVENT, ELF_SHOW_INFO_EVENT, SBY_REDRAW_EVENT, 993 и т.д.) не требуют суффикса _TAG, а события, входящие в DYN_CONST, должны быть обязательно записаны с ним.
Также следует отметить, что данным способом не все события могут быть получены в некоторых случаях.
int onTimeReceived(UI_MESSAGE *message) { void *msg=message->data; //Дополнительная информация //... }; ModifyUIHook(UI_MEDIAPLAYER_AUDIO_PLAYING_TIME_EVENT, onTimeReceived, 1);
ui_event, ui_event_tobookid, ui_event_tobookidwdata, ui_event_tosid, ui_event_wdata, где: