Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
L’illustration suivante montre l’architecture générale des fournisseurs de services de téléphonie et leurs bibliothèques de liens dynamiques d’interface utilisateur associées (DLL d’interface utilisateur).
Le fournisseur de services se compose d’un minimum de deux composants. DLL du fournisseur de services (désignée dans l’illustration en tant que MAIN). TSP) s’exécute dans le contexte du processus TAPISRV et effectue toutes les tâches du fournisseur de services qui ne sont pas liées aux éléments d’interface utilisateur associés à l’utilisation de l’appareil par une application particulière (probablement, conjointement avec les composants de niveau inférieur non affichés dans l’illustration). Mais contrairement aux versions précédentes de TAPI dans lesquelles le code d’interface utilisateur a été intégré au fournisseur de services (et exécuté, en raison de l’architecture précédente, dans le contexte de l’application), le fournisseur de services doit désormais inclure un composant distinct qui implémente les éléments de l’interface utilisateur.
La DLL d’interface utilisateur du fournisseur de services doit exporter des fonctions appelées par TAPI lorsque l’application appelle des fonctions TAPI qui génèrent l’interface utilisateur : TUISPI_lineConfigDialog, TUISPI_lineConfigDialogEdit, TUISPI_phoneConfigDialog, TUISPI_providerConfig, TUISPI_providerInstallet TUISPI_providerRemove. Chacune de ces fonctions inclut en tant que paramètre un pointeur vers une fonction de rappel dans TAPI, de type TUISPIDLLCALLBACK, que la DLL d’interface utilisateur peut utiliser pour communiquer bidirectionnellement (à la fois envoyer et recevoir des données) avec la DLL du fournisseur de services s’exécutant dans le processus TAPISRV. Si le fournisseur de services génère jamais une interface utilisateur spontanée, telle que la boîte de dialogue Unimodem Talk/Hangup, conjointement avec une fonction TSPI pour laquelle l’interface utilisateur n’est pas attendue (par exemple, toute fonction qui n’a pas de paramètre hwnd), la DLL d’interface utilisateur doit exporter TUISPI_providerGenericDialog et TUISPI_providerGenericDialogData.
Note
Les fonctions de génération d’interface utilisateur TSPI d’origine (TSPI_lineConfigDialog, TSPI_lineConfigDialogEdit, TSPI_phoneConfigDialog, TSPI_providerConfig, TSPI_providerInstallet TSPI_providerRemove) sont obsolètes et n’ont jamais été appelées par TAPI. Par conséquent, ils ne doivent pas être exportés par la DLL du fournisseur de services. Toutefois, si le fournisseur de services souhaite être répertorié comme un fournisseur de services pouvant être ajouté par le Panneau de configuration de téléphonie, un utilitaire fourni avec la téléphonie Windows dans les versions 1.4 et antérieures, il doit exporter TSPI_providerInstall; s’il souhaite que le bouton Supprimer activé dans le Panneau de configuration de téléphonie lorsqu’il est sélectionné, il doit exporter TSPI_providerRemove; et si le bouton configuration doit être activé dans le Panneau de configuration de téléphonie lorsqu’il est sélectionné, il doit exporter TSPI_providerConfig. Le Panneau de configuration de téléphonie vérifie la présence de ces fonctions dans le fichier TSP du fournisseur de services pour ajuster son interface utilisateur afin de refléter les opérations qui peuvent être effectuées.
La DLL du fournisseur de services doit exporter la fonction TSPI_providerUIIdentify utilisée par le processus TAPISRV pour obtenir le nom de la DLL d’interface utilisateur à charger dans le processus d’application. Il doit exporter la fonction TSPI_providerGenericDialogData pour recevoir et répondre aux demandes de la DLL d’interface utilisateur pour que les données s’affichent, et il doit exporter TSPI_providerFreeDialogInstance pour le processus TAPISRV pour indiquer au fournisseur de services quand libérer une association établie pour générer une interface utilisateur spontanée conjointement avec une fonction qui n’est pas définie comme présentant l’interface utilisateur à l’utilisateur. La DLL du fournisseur de services peut envoyer unidirectionnellement des données à la DLL d’interface utilisateur à l’aide du nouveau message TSPI LINE_SENDDIALOGINSTANCEDATA.
Étant donné que les noms des fonctions TSPI et TUISPI sont intentionnellement définis pour être différents, la DLL du fournisseur de services et la DLL d’interface utilisateur peuvent être le même fichier DLL, si vous le souhaitez. Avec une segmentation appropriée, cela n’entraîne pas nécessairement l’utilisation inutile de la mémoire dans le contexte de l’application et peut simplifier le processus d’installation pour les fournisseurs de services qui peuvent actuellement être implémentés dans une seule DLL. TAPI appelle uniquement les fonctions appropriées pour le contexte dans lequel la DLL est utilisée.
Le fournisseur de services de téléphonie et la DLL d’interface utilisateur doivent tous deux être conçus avec l’exigence que les fonctions d’interface utilisateur puissent être appelées simultanément à partir de plusieurs processus d’application. Ils doivent également considérer que l’application et le service TAPI sous lesquels le fournisseur de services de téléphonie est en cours d’exécution peuvent se trouver sur des ordinateurs distincts sur un réseau local.