Уведомление о событиях
Уведомление о событии является основным средством, с помощью которого приложение получает информацию от TAPI и поставщиков услуг. Эта информация может быть состоянием асинхронной операции, инициированной приложением, или может вызывать процесс, запущенный за пределами приложения, например уведомления о новых входящих вызовах.
TAPI 2.x: приложения обрабатывают уведомление одним из трех способов: скрытое окно, дескриптор событий или порт завершения. Дополнительные сведения об этих механизмах уведомлений см. в разделе "Примечания" для lineInitializeEx. Приложение задает механизм, задав dwOptions член структуры LINEINITIALIZEEXPARAMS перед вызовом lineInitializeEx.
Функция lineSetStatusMessages позволяет приложению указать, какие сообщения уведомлений будут получать для событий, связанных с изменениями состояния для указанной строки или любого из его адресов.
TAPI 3.x: Приложения обрабатывают общее уведомление с помощью com-стандартных подключенных объектов. ITTAPIEventNotification — это исходящий интерфейс, который должен быть зарегистрирован в объекте контейнера TAPI, а ITTAPIEventNotification::Event — это метод, вызывающий TAPI для определения ответа приложения. Метод ITTAPI::p ut_EventFilter сообщает TAPI, какие события относятся к приложению. Если фильтр событий не введен, приложение не получит уведомления о каких-либо событиях. Метод ITTAPI::RegisterCallNotifications сообщает TAPI типам носителей и адресам, для которых приложение будет обрабатывать входящие сеансы. Дополнительные сведения об обработке событий TAPI 3 см. в обзоре событий или в примере кода регистрации событий.
Поставщики услуг телефонии реализуют TSPI_lineSetDefaultMediaDetection и TSPI_lineSetStatusMessages. TAPI вызывает эти функции, чтобы указать набор всех событий строк, адресов и типов мультимедиа, запрошенных приложениями.