Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
На следующем рисунке показана общая архитектура поставщиков услуг телефонии и связанных библиотек динамических ссылок пользовательского интерфейса (DLL пользовательского интерфейса).
Поставщик услуг состоит не менее двух компонентов. БИБЛИОТЕКА DLL поставщика услуг (обозначенная на рисунке как MAIN. TSP) выполняется в контексте процесса TAPISRV и выполняет все задачи поставщика услуг, которые не связаны с элементами пользовательского интерфейса, связанными с использованием устройства определенного приложения (скорее всего, в сочетании с компонентами нижнего уровня, не показанными на рисунке). Но в отличие от предыдущих версий TAPI, в которых код пользовательского интерфейса был интегрирован в поставщик услуг (и выполнен из-за предыдущей архитектуры в контексте приложения), поставщик услуг должен теперь включать отдельный компонент, реализующий элементы пользовательского интерфейса.
Библиотека DLL поставщика услуг должна экспортировать функции, вызываемые TAPI, когда приложение вызывает функции TAPI, которые создают пользовательский интерфейс: TUISPI_lineConfigDialog, TUISPI_lineConfigDialogEdit, TUISPI_phoneConfigDialog, TUISPI_providerConfig, TUISPI_providerInstallи TUISPI_providerRemove. Каждая из этих функций включает в себя в качестве параметра указатель на функцию обратного вызова в TAPI, типа TUISPIDLLCALLBACK, которую библиотека DLL пользовательского интерфейса может использовать для обмена данными (как отправкой, так и получением данных) с библиотекой DLL поставщика услуг, выполняемой в процессе TAPISRV. Если поставщик услуг когда-либо создает спонтанный пользовательский интерфейс, например диалоговое окно Unimodem Talk/Hangup, в сочетании с любой функцией TSPI, для которой не ожидается пользовательский интерфейс (например, любая функция, которая не имеет параметра), библиотека DLL пользовательского интерфейса должна экспортировать TUISPI_providerGenericDialog и TUISPI_providerGenericDialogData.
Заметка
Исходные функции создания пользовательского интерфейса TSPI (TSPI_lineConfigDialog, TSPI_lineConfigDialogEdit, TSPI_phoneConfigDialog, TSPI_providerConfig, TSPI_providerInstallи TSPI_providerRemove) устарели и никогда не вызываются TAPI. Поэтому их не требуется экспортировать библиотекой DLL поставщика услуг. Тем не менее, если поставщик услуг должен быть указан как тот, который может быть добавлен панелью управления телефонии, служебная программа, предоставляемая в Windows Телефонии в версиях 1.4 и более ранних версиях, она должна экспортировать TSPI_providerInstall; Если он хочет включить кнопку "Удалить " на панели управления телефонии при выборе, она должна экспортировать TSPI_providerRemove; и если он хочет, чтобы кнопка установки была включена в панели управления телефонии при его выборе, она должна экспортировать TSPI_providerConfig. Панель управления телефонии проверяет наличие этих функций в файле TSP поставщика услуг, чтобы настроить пользовательский интерфейс, чтобы отразить, какие операции можно выполнить.
БИБЛИОТЕКА DLL поставщика услуг должна экспортировать функцию TSPI_providerUIIdentify, которую использует процесс TAPISRV для получения имени библиотеки DLL пользовательского интерфейса для загрузки в процессе приложения. Он должен экспортировать функцию TSPI_providerGenericDialogData для получения и реагирования на запросы из библиотеки DLL пользовательского интерфейса для отображения данных, и он должен экспортировать TSPI_providerFreeDialogInstance для процесса TAPISRV, чтобы сообщить поставщику услуг, когда следует освободить связь, созданную для создания спонтанного пользовательского интерфейса в сочетании с функцией, которая не определена как представление пользовательского интерфейса пользователю. БИБЛИОТЕКА DLL поставщика услуг может однонаправленно отправлять данные в библиотеку DLL пользовательского интерфейса с помощью нового сообщения TSPI LINE_SENDDIALOGINSTANCEDATA.
Так как имена функций TSPI и TUISPI намеренно определяются по-разному, библиотека DLL поставщика служб и библиотека DLL пользовательского интерфейса могут быть одинаковыми, если требуется. При надлежащей сегментации это не обязательно приводит к ненужным использованию памяти в контексте приложения и может упростить процесс установки для поставщиков услуг, которые в настоящее время могут быть реализованы в одной библиотеке DLL. TAPI вызывает только функции, подходящие для контекста, в котором используется библиотека DLL.
Поставщик услуг телефонии и библиотека DLL пользовательского интерфейса должны быть разработаны с учетом необходимости одновременного вызова функций пользовательского интерфейса из нескольких процессов приложений. Они также должны учитывать, что приложение и служба TAPI, под которым выполняется поставщик услуг телефонии, может находиться на отдельных компьютерах в локальной сети.