Arsitektur (Telephony API)

Ilustrasi berikut menunjukkan arsitektur umum penyedia layanan telepon dan pustaka tautan dinamis antarmuka pengguna terkait (DLL UI).

tsps dan dll ui terkait

Penyedia layanan terdiri dari minimal dua komponen. DLL penyedia layanan (ditetapkan 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 yang tidak diharapkan UI (misalnya, fungsi apa pun yang tidak memiliki parameter hwnd ), maka DLL UI harus mengekspor TUISPI_providerGenericDialog dan TUISPI_providerGenericDialogData.

Catatan

Fungsi pembangkit 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 dicantumkan 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 ketika dipilih, ia harus mengekspor TSPI_providerRemove; dan jika menginginkan Pengaturan tombol yang akan diaktifkan di Panel Kontrol Telepon saat dipilih, tombol tersebut harus mengekspor TSPI_providerConfig. Telephony Panel Kontrol 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 sedang digunakan.

Penyedia layanan telepon dan DLL UI harus dirancang dengan mengingat persyaratan bahwa fungsi UI dapat dipanggil dari beberapa proses aplikasi secara bersamaan. Mereka juga harus mempertimbangkan bahwa aplikasi dan layanan TAPI di mana penyedia layanan telepon yang dijalankan dapat berada di komputer terpisah di LAN.