int ModifyUIPageHook( int event,
PAGEHOOKPROC proc,
LPARAM ClientData,
int mode );
Функция устанавливает/удаляет ловушку событий книг.
event - номер события, к которому привязана ловушка. Если функции передано нулевое значение (NIL_EVENT), будут ловиться все события.
proc - колбэк-функция
ClientData - данные, ассоциируемые с ловушкой. Эти данные будут всегда приходить в колбэк-функцию.
mode - действие, выполняемое над ловушкой:
PAGE_HOOK_REMOVE - удаление ловушки. Параметры event и PROC должны соответствовать соответствующим параметрам, использованным при установке ловушки.
PAGE_HOOK_ADD_BEFORE - установка ловушки «before». Колбэк-функция выполняется до обработчика события книги. При этом колбэк-функция может запретить передачу события другим ловушкам, заблокировать выполнение обработчика события, а так же воспрепятствовать получению события другими книгами (возвращаемые колбэком значения BLOCK_EVENT_GLOBALLY и BLOCK_EVENT_IN_THIS_SESSION).
PAGE_HOOK_ADD_AFTER - установка ловушки «after». Колбэк-функция выполняется после обработчика события книги. Колбэк не может влиять на передачу события другим ловушкам и книгам, результат колбэк-функции игнорируется.
В случае успешного выполнения, функция возвращает 0. При ошибке функция возвращает отрицательное число.
Колбэк может получить нулевой указатель book, если сообщение передано обработчику страницы по умолчанию (см. параметр default_page структуры APP_DESC, передаваемой функции CreateBook).
Колбэк «after» может получить недействительный указатель book, если книга уничтожается в оригинальном обработчике события. Поэтому при использовании book в ловушке этого типа нужно обязательно проверять, существует ли книга. Для этого можно использовать функцию FindBookEx.
Использовать одну колбэк-функцию для установки сразу обоих типов ловушек одного и того же события, не рекомендуется, хотя и допускается. При удалении в этом случае будет удален хук «before», а при повторном удалении уничтожится уже «after».