Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
A ilustração a seguir mostra a arquitetura geral dos provedores de serviços de telefonia e suas bibliotecas de vínculo dinâmico de interface do usuário associadas (DLLs de interface do usuário).
O provedor de serviços consiste em no mínimo dois componentes. A DLL do provedor de serviços (designada na ilustração como MAIN. TSP) executa no contexto do processo TAPISRV e executa todas as tarefas do provedor de serviços que não estão relacionadas aos elementos de interface do usuário associados ao uso do dispositivo por um aplicativo específico (provavelmente, em conjunto com componentes de nível inferior não mostrados na ilustração). Mas ao contrário das versões anteriores do TAPI em que o código da interface do usuário foi integrado ao provedor de serviços (e executado, devido à arquitetura anterior, dentro do contexto do aplicativo), o provedor de serviços agora deve incluir um componente separado que implementa os elementos da interface do usuário.
A DLL da interface do usuário do provedor de serviços deve exportar funções que são chamadas pela TAPI quando o aplicativo chama funções TAPI que geram interface do usuário: TUISPI_lineConfigDialog, TUISPI_lineConfigDialogEdit, TUISPI_phoneConfigDialog, TUISPI_providerConfig, TUISPI_providerInstalle TUISPI_providerRemove. Cada uma dessas funções inclui como parâmetro um ponteiro para uma função de retorno de chamada no TAPI, do tipo TUISPIDLLCALLBACK, que a DLL da interface do usuário pode usar para se comunicar bidirecionalmente (enviar e receber dados) com a DLL do provedor de serviços em execução no processo TAPISRV. Se o provedor de serviços gerar uma interface do usuário espontânea, como a caixa de diálogo Talk/Hangup Unimodem, em conjunto com qualquer função TSPI para a qual a interface do usuário não é esperada (por exemplo, qualquer função que não tenha um parâmetro hwnd), a DLL da interface do usuário deverá exportar TUISPI_providerGenericDialog e TUISPI_providerGenericDialogData.
Nota
As funções originais de geração de interface do usuário de TSPI ( TSPI_lineConfigDialog, TSPI_lineConfigDialogEdit, TSPI_phoneConfigDialog, TSPI_providerConfig, TSPI_providerInstalle TSPI_providerRemove) são obsoletas e nunca chamadas pela TAPI. Portanto, elas não são necessárias para serem exportadas pela DLL do provedor de serviços. No entanto, se o provedor de serviços quiser ser listado como um que possa ser adicionado pelo Painel de Controle de Telefonia, um utilitário fornecido com o Windows Telephony nas versões 1.4 e anteriores, ele deverá exportar TSPI_providerInstall; se ele quiser ter o botão removerhabilitado no Painel de Controle de Telefonia quando estiver selecionado, ele deverá exportar TSPI_providerRemove; e se ele quiser que o botão Instalação seja habilitado no Painel de Controle de Telefonia quando estiver selecionado, ele deverá exportar TSPI_providerConfig. O Painel de Controle de Telefonia verifica a presença dessas funções no arquivo TSP do provedor de serviços para ajustar sua interface do usuário para refletir quais operações podem ser executadas.
A DLL do provedor de serviços deve exportar a função TSPI_providerUIIdentify que o processo TAPISRV usa para obter o nome da DLL da interface do usuário a ser carregada no processo do aplicativo. Ele deve exportar a função TSPI_providerGenericDialogData para receber e responder a solicitações da DLL da interface do usuário para que os dados sejam exibidos e deve exportar TSPI_providerFreeDialogInstance para o processo TAPISRV para informar ao provedor de serviços quando liberar uma associação estabelecida com a finalidade de gerar a interface do usuário espontânea em conjunto com uma função que não está definida como apresentando a interface do usuário ao usuário. A DLL do provedor de serviços pode enviar dados de forma unidirecional para a DLL da interface do usuário usando a nova mensagem TSPI LINE_SENDDIALOGINSTANCEDATA.
Como os nomes das funções TSPI e TUISPI são definidos intencionalmente como diferentes, a DLL do provedor de serviços e a DLL da interface do usuário podem ser o mesmo arquivo DLL, se desejado. Com a segmentação adequada, isso não necessariamente resulta em qualquer uso desnecessário de memória no contexto do aplicativo e pode simplificar o processo de instalação para provedores de serviços que atualmente podem ser implementados em uma única DLL. O TAPI chama apenas as funções apropriadas para o contexto no qual a DLL está sendo usada.
O provedor de serviços de telefonia e a DLL da interface do usuário devem ser criados com o requisito em mente de que as funções de interface do usuário podem ser invocadas de vários processos de aplicativo simultaneamente. Eles também devem considerar que o aplicativo e o serviço TAPI no qual o provedor de serviços de telefonia está executando podem estar em computadores separados em uma LAN.