Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Ilustrasi berikut menunjukkan arsitektur umum penyedia layanan telepon dan pustaka tautan dinamis antarmuka pengguna (UI DLL) terkait.
Penyedia layanan terdiri dari minimal dua komponen. DLL penyedia layanan (ditunjuk dalam ilustrasi sebagai MAIN. TSP) dijalankan dalam konteks proses TAPISRV, dan melakukan semua tugas penyedia layanan yang tidak terkait dengan elemen antarmuka pengguna yang terkait dengan penggunaan perangkat aplikasi tertentu (kemungkinan besar, bersama dengan komponen tingkat bawah yang tidak ditampilkan dalam ilustrasi). Tetapi tidak seperti versi TAPI sebelumnya di mana kode antarmuka pengguna diintegrasikan ke dalam penyedia layanan (dan dijalankan, karena arsitektur sebelumnya, dalam konteks aplikasi), penyedia layanan sekarang harus menyertakan komponen terpisah yang mengimplementasikan elemen antarmuka pengguna.
DLL UI penyedia layanan harus mengekspor fungsi yang dipanggil oleh TAPI ketika aplikasi memanggil fungsi TAPI yang menghasilkan UI: TUISPI_lineConfigDialog, TUISPI_lineConfigDialogEdit, TUISPI_phoneConfigDialog, TUISPI_providerConfig, TUISPI_providerInstall, dan TUISPI_providerRemove. Masing-masing fungsi ini termasuk sebagai parameter penunjuk ke fungsi panggilan balik di TAPI, dari jenis TUISPIDLLCALLBACK, yang dapat digunakan DLL UI untuk berkomunikasi secara dua arah (baik mengirim dan menerima data) dengan penyedia layanan DLL yang dijalankan dalam proses TAPISRV. Jika penyedia layanan pernah menghasilkan UI spontan, seperti kotak dialog Unimodem Talk/Hangup, bersama dengan fungsi TSPI apa pun yang tidak diharapkan UI (misalnya, fungsi apa pun yang tidak memiliki parameter hwnd), maka DLL UI harus mengekspor TUISPI_providerGenericDialog dan TUISPI_providerGenericDialogData.
Nota
Fungsi pembuatan UI TSPI asli (TSPI_lineConfigDialog, TSPI_lineConfigDialogEdit, TSPI_phoneConfigDialog, TSPI_providerConfig, TSPI_providerInstall, dan TSPI_providerRemove) usang dan tidak pernah dipanggil oleh TAPI. Oleh karena itu, ini tidak diperlukan untuk diekspor oleh DLL penyedia layanan. Namun, jika penyedia layanan ingin terdaftar sebagai yang dapat ditambahkan oleh Panel Kontrol Telepon, utilitas yang disediakan dengan Windows Telephony dalam versi 1.4 dan yang lebih lama, ia harus mengekspor TSPI_providerInstall; jika ingin tombol Hapus diaktifkan di Panel Kontrol Telepon saat dipilih, tombol tersebut harus mengekspor TSPI_providerRemove; dan jika ingin tombol Penyetelan diaktifkan di Panel Kontrol Telepon saat dipilih, tombol tersebut harus mengekspor TSPI_providerConfig. Panel Kontrol Telepon memeriksa keberadaan fungsi-fungsi ini dalam file TSP penyedia layanan untuk menyesuaikan antarmuka penggunanya untuk mencerminkan operasi mana yang dapat dilakukan.
DLL penyedia layanan harus mengekspor fungsi TSPI_providerUIIdentify yang digunakan proses TAPISRV untuk mendapatkan nama DLL UI untuk dimuat dalam proses aplikasi. Ini harus mengekspor fungsi TSPI_providerGenericDialogData untuk menerima dan menanggapi permintaan dari DLL UI agar data ditampilkan, dan harus mengekspor TSPI_providerFreeDialogInstance untuk proses TAPISRV untuk memberi tahu penyedia layanan kapan harus merilis asosiasi yang ditetapkan untuk tujuan menghasilkan UI spontan bersama dengan fungsi yang tidak didefinisikan sebagai menyajikan UI kepada pengguna. DLL penyedia layanan dapat secara tidak langsung mengirim data ke DLL UI dengan menggunakan pesan TSPI baru LINE_SENDDIALOGINSTANCEDATA.
Karena nama fungsi TSPI dan TUISPI sengaja didefinisikan berbeda, DLL penyedia layanan dan DLL UI dapat menjadi file DLL yang sama, jika diinginkan. Dengan segmentasi yang tepat, ini tidak selalu mengakibatkan penggunaan memori yang tidak perlu dalam konteks aplikasi, dan dapat menyederhanakan proses penginstalan untuk penyedia layanan yang saat ini dapat diimplementasikan dalam satu DLL. TAPI hanya memanggil fungsi yang sesuai untuk konteks di mana DLL digunakan.
Penyedia layanan telepon dan DLL UI harus dirancang dengan anggapan bahwa fungsi UI dapat dipanggil dari beberapa proses aplikasi secara bersamaan. Mereka juga harus mempertimbangkan bahwa aplikasi dan layanan TAPI tempat penyedia layanan telepon yang dijalankan dapat berada di komputer terpisah pada LAN.