Functions Designed to Generate UI

Assume for the purposes of an example that the application calls the TAPI lineConfigDialog function, which is designed to open a dialog box to allow configuration of service provider options related to the specified line device. In response to this call, TAPI requests TAPISRV to call TSPI_providerUIIdentify in the telephony service provider, obtaining the name of the TSP UI DLL.

In the application's context, TAPI loads the TSP UI DLL and calls the TUISPI_lineConfigDialog function with the parameters supplied by the application, and including a pointer to the TAPI TUISPIDLLCALLBACK function. The TSP UI DLL displays the configuration dialog box, calling the TUISPIDLLCALLBACK function as necessary to obtain from the telephony service provider the information to display. Each time the TUISPIDLLCALLBACK function is called, TAPI requests TAPISRV to call the telephony service provider's TSPI_providerGenericDialogData function, passing in the parameter block from the UI DLL, and returning the parameter block to the UI DLL. The UI DLL conveys any configuration changes to the telephony service provider by calling TUISPIDLLCALLBACK.

When the function is complete, the UI DLL returns from (in this case) TUISPI_lineConfigDialog. TAPI calls the Win32 FreeLibrary function to release the UI DLL, and returns to the application.