TSPI_providerRemove関数 (tspi.h)
TSPI_providerRemove関数は廃止されました。 TAPI バージョン 1.4 以前のサービス プロバイダーは、この TSPI 関数を実装できます。 TAPI バージョン 2.0 以降の TSP は 、TUISPI_providerRemoveを実装します。
TSPI_providerRemove関数は、サービス プロバイダーの削除を確認するようにユーザーに求めます。 サービス プロバイダーは、 addProvider 時にサービス プロバイダーが追加したレジストリ エントリと、不要になったその他のモジュールとファイルを削除する必要があります。
構文
LONG TSPIAPI TSPI_providerRemove(
HWND hwndOwner,
DWORD dwPermanentProviderID
);
パラメーター
hwndOwner
関数が削除中に必要なダイアログ ボックス ウィンドウを作成できる親ウィンドウのハンドル。
dwPermanentProviderID
サービス プロバイダーの永続的なプロバイダー識別子。
戻り値
関数が成功した場合は 0 を返し、エラーが発生した場合はエラー番号を返します。 可能な戻り値は次のとおりです。
LINEERR_OPERATIONFAILED、LINEERR_INIFILECORRUPT、LINEERR_NOMEM、LINEERR_INVALPARAM。
注釈
この関数は、サービス プロバイダーのセクションとサービス プロバイダーのプライベート定義情報が、成功を返した場合にレジストリから削除されることを保証する必要があります。 特に、PPID が dwPermanentProviderID> と一致する <[Provider<PPID>] セクションは、NumLines エントリと NumPhones エントリを含めて削除する必要があります。 関数が成功を返す場合は、一致する ProviderIDx エントリと ProviderFilenamex エントリを [Providers] セクションから削除し、それに応じて [Providers] セクションの残りのエントリの番号を付け直す必要があります。
この手順では、システムを一貫した状態のままにしておく必要があります。 完了まで実行する必要があります。一部が完了したときにユーザーが削除を中止することはできません。 削除に失敗した場合は、実行された内容を "バックアウト" し、エラーを返すのがプロバイダーの責任です。 これは、削除が開始される前に、完全な削除が可能であることを確認するための事前スキャンを意味する可能性があります。
この関数は、サービス プロバイダーの使用中 ( つまり、TSPI_providerInit と TSPI_providerShutdownの間) に呼び出すことができます。 この場合、サービス プロバイダーは、競合を通知して削除を確認するユーザー ダイアログ ボックスを表示したり、削除オプションを透過的に実行できるオプションに制限したり、影響を受けるデバイスが強制的に削除のために閉じられたことを TAPI およびアプリケーションに通知する LINE_CLOSE と PHONE_CLOSE メッセージを発行したりする適切な組み合わせを行う必要があります。 いずれの場合も、TSPI によって表示される動作に影響を与える変更は、サービス プロバイダーが次の TSPI_providerShutdownでシャットダウンされた場合にのみ有効になります。
この関数は、プロバイダーがアプリケーションによって使用されているために発生する可能性のあるLINEERR_INUSEまたはその他のエラーを返さないでください。代わりに、プロバイダーはユーザーにこの問題について直接相談し、ユーザーが操作を中止することを決定した場合はLINEERR_OPERATIONFAILEDを返す必要があります。
このプロシージャは、サービス プロバイダーの削除時に、TSPI_providerInstallの呼び出しが行われるまで 1 回だけ呼び出されます。 これを確認するのは呼び出し元の責任です。
バージョン 1.4 以前の Windows テレフォニーで提供されているテレフォニー コントロール パネル ユーティリティは、"remove" コマンドが呼び出されたときに、この関数を呼び出します (ここで説明するように外部シーケンス要件が満たされています)。
TAPI レベルに対応する関数はありません。 このレベルでは、アプリケーションにはサービス プロバイダーが既にインストールされている必要があります。それ以外の場合、それらの回線と電話は、使用可能なデバイス識別子のシーケンス内に表示されません。 実行中のアプリケーションには、LINE_LINEDEVSTATEまたはPHONE_STATE メッセージのLINEDEVSTATE_REINITまたはPHONESTATE_REINIT値を介したサービス プロバイダーの削除など、動的再構成が通知されます。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | tspi.h |