Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En la ilustración siguiente se muestra la arquitectura general de los proveedores de servicios de telefonía y sus bibliotecas de vínculos dinámicos de interfaz de usuario asociadas (DLL de interfaz de usuario).
El proveedor de servicios consta de un mínimo de dos componentes. La DLL del proveedor de servicios (designada en la ilustración como MAIN). TSP) se ejecuta en el contexto del proceso TAPISRV y realiza todas las tareas del proveedor de servicios que no están relacionadas con los elementos de la interfaz de usuario asociados con el uso de una aplicación determinada del dispositivo (lo más probable, junto con componentes de nivel inferior que no se muestran en la ilustración). Pero a diferencia de las versiones anteriores de TAPI en las que el código de la interfaz de usuario se integraba en el proveedor de servicios (y se ejecutó, debido a la arquitectura anterior, en el contexto de la aplicación), el proveedor de servicios debe incluir ahora un componente independiente que implemente los elementos de la interfaz de usuario.
La DLL de interfaz de usuario del proveedor de servicios debe exportar funciones a las que llama TAPI cuando la aplicación llama a funciones TAPI que generan la interfaz de usuario: TUISPI_lineConfigDialog, TUISPI_lineConfigDialogEdit, TUISPI_phoneConfigDialog, TUISPI_providerConfig, TUISPI_providerInstally TUISPI_providerRemove. Cada una de estas funciones incluye como parámetro un puntero a una función de devolución de llamada en TAPI, de tipo TUISPIDLLCALLBACK, que la DLL de interfaz de usuario puede usar para comunicarse bidireccionalmente (tanto enviar como recibir datos) con el archivo DLL del proveedor de servicios que se ejecuta en el proceso TAPISRV. Si el proveedor de servicios alguna vez genera una interfaz de usuario espontánea, como el cuadro de diálogo Unimodem Talk/Hangup, junto con cualquier función de TSPI para la que no se espera la interfaz de usuario (por ejemplo, cualquier función que no tenga un parámetro hwnd), el archivo DLL de la interfaz de usuario debe exportar TUISPI_providerGenericDialog y TUISPI_providerGenericDialogData.
Nota
Las funciones originales de generación de interfaz de usuario de TSPI ( TSPI_lineConfigDialog, TSPI_lineConfigDialogEdit, TSPI_phoneConfigDialog, TSPI_providerConfig, TSPI_providerInstally TSPI_providerRemove) están obsoletas y nunca las llama TAPI. Por lo tanto, el archivo DLL del proveedor de servicios no necesita exportarlos. Sin embargo, si el proveedor de servicios desea que aparezca como uno que pueda agregar el Panel de control de telefonía, una utilidad suministrada con telefonía de Windows en las versiones 1.4 y anteriores, debe exportar TSPI_providerInstall; si quiere tener habilitado el botón quitaren el Panel de control de telefonía cuando está seleccionado, debe exportar TSPI_providerRemove; y si quiere que el botón Configurar esté habilitado en el Panel de control de telefonía cuando esté seleccionado, debe exportar TSPI_providerConfig. El Panel de control de telefonía comprueba la presencia de estas funciones en el archivo TSP del proveedor de servicios para ajustar su interfaz de usuario para reflejar qué operaciones se pueden realizar.
El archivo DLL del proveedor de servicios debe exportar la función TSPI_providerUIIdentify que usa el proceso TAPISRV para obtener el nombre del archivo DLL de la interfaz de usuario para cargarlo en el proceso de aplicación. Debe exportar la función TSPI_providerGenericDialogData para recibir y responder a las solicitudes del archivo DLL de la interfaz de usuario para que se muestren los datos, y debe exportar TSPI_providerFreeDialogInstance para el proceso TAPISRV para indicar al proveedor de servicios cuándo liberar una asociación establecida con el fin de generar una interfaz de usuario espontánea junto con una función que no está definida como presentación de la interfaz de usuario al usuario. El archivo DLL del proveedor de servicios puede enviar datos de forma unidireccional a la DLL de la interfaz de usuario mediante el nuevo mensaje de TSPI LINE_SENDDIALOGINSTANCEDATA.
Dado que los nombres de las funciones TSPI y TUISPI se definen intencionadamente para ser diferentes, el archivo DLL del proveedor de servicios y la DLL de la interfaz de usuario pueden ser el mismo archivo DLL, si lo desea. Con la segmentación adecuada, esto no produce necesariamente ningún uso innecesario de memoria en el contexto de la aplicación y puede simplificar el proceso de instalación de los proveedores de servicios que se pueden implementar actualmente en un único archivo DLL. TAPI llama solo a las funciones adecuadas para el contexto en el que se usa el archivo DLL.
Tanto el proveedor de servicios de telefonía como la DLL de la interfaz de usuario deben diseñarse teniendo en cuenta el requisito de que las funciones de la interfaz de usuario se puedan invocar desde varios procesos de aplicación simultáneamente. También deben tener en cuenta que la aplicación y el servicio TAPI en el que se ejecuta el proveedor de servicios de telefonía pueden estar en equipos independientes de una LAN.