Код:
// Цвета
#define CLR_TRANSP 0x00  // Прозрачный
#define CLR_LGRAY  0x01   // Светло серый
#define CLR_DGRAY  0x02  // Тёмно серый
#define CLR_BLACK  0x03  // Чёрный

// Сигналы
#define SIGNAL_REPAINT 0x01  // Послать сигнал перерисовать экран
#define SIGNAL_DELETE  0x02  // Удалить компоненты
#define SIGNAL_MOVE    0x03  // Переместить компонент

// Компоненты
#define CTL_SMALLF_TEXT 0x01  // Маленький текст
#define CTL_LARGEF_TEXT 0x02  // Большой текст
#define CTL_ICON        0x03        // Иконка или пиктограмма
#define CTL_FIELD       0x04        // Поле для ввода
#define CTL_COMBOBOX    0x05  // Список комбобокс
#define CTL_LISTBOX     0x06     // Список листбокс
#define CTL_CALENDAR    0x07   // Календарь

// Кнопки
#define KEY_TL          0x01  // Сверху-слева
#define KEY_BL          0x02  // Снизу-слева
#define KEY_TR          0x03  // Сверху-справа
#define KEY_BR          0x04  // Снизу-справа


// Структура даты
typedef struct {
  unsigned int day;     // День
  unsigned int month; // Месяц
  unsigned int year;    // Год
} DATE;

// Структура часы
typedef struct {
  unsigned int hour;      // Часы
  unsigned int minutes; // Минуты
  unsigned int second;  // Секунды
  unsigned int msec;    // Миллисекунды
} TIME;

// Структура компонента
typedef struct {
  int control; // ID компонента
  int x;         // Положение компонента по X-коордиенаты
  int y;         // Положение компонента по X-коордиенаты
  int width;   // Ширина компонента 
  int height;  // Высота компонента
  int color;    // Цвет компонента
  char text[4096]; // Текст компонента
} CONTROL;

// Структура записной книжки
typedef struct {
  char name[50];  // ФИО
  char tel[18];      // Телефон
  char mobile[18];// Мобильный телефон
} PHONEBOOK;

// Структура настройки 
typedef struct {
  int app_id; // ID приложения
  char config[20]; // Ключ
  char value[50]; // Значение
} CONFIG;


// Функции
// Дата и время
TIME *get_time();  // Получить текущее время
DATE *get_date(); // Получить текующую дату

// Компоненты
CONTROL *draw_smallf_text(int x, int y, char *text, int size); // Нарисовать маленький текст
CONTROL *draw_largef_text(int x, int y, char *text, int size); // Нарисовать большой текст
CONTROL *draw_icon(char *data, int width, int height); // Нарисовать иконку или пиктограмму
clear_screen();  // Очистить экран
set_pixel(int x, int y, color); // Нарисовать точку
set_title(char *title); // Установить заголовок
CONTROL *get_desktop(); // Получить ID рабочего стола
CONTROL *show_field(int x, int y, int width, int height, default); // Показать поле
CONTROL *show_combobox(int x, int y, char **values); // Показать список комбо бокс
CONTROL *show_listbox(int x, int y, char **values); // Показать список лист бокс
CONTROL *show_calendar(int x, int y, int width, int height); // Показать календарь
set_date_calendar(CONTROL id, DATE date); // Установить дату в элементе календаря
repaint(CONTROL id); // Перерисовать
send_signal(CONTROL id, int signal);  // Послать сигнал
move(CONTROL id, int x, int y, int width, int height); // Переместить компонент

// Звук и ожидание
beep(); // Сигнал
sleep(int msec); // Ждать

// Кнопки
int on_key(int key); // если нажали кнопку
void send_key(int key); // послать имитацию нажатия кнопкки

// Записная книжка
add_new_record(char *name, char *tel, char *mobile); // Добавить запись телефона, ФИО, мобильного телефона
PHONEBOOK *get_next_record(); // Дать следующую запить
BOOL is_eof(); // конец?

// Работа с настройками
add_new_config(int app_id, char *config, char *value); // Добавить настройку
edit_config(int app_id, char *config, char *value); // Изменить настройку
char *get_config(int app_id, char *config); // Получить настройку