私は、コンピューターから電話にルーティングする東芝CIXタピコマンドに送信するために開発しているC#タピアプリケーションを持っています。その部分が機能しているため、行自体は重要ではありません。アプリケーションから電話をかけることができます。ただし、応答と電話を切ることは正しく機能していません。切断しようとすると、次のエラーが表示されます。
この実装はアドバイスを受け取りません (HRESULT からの例外: 0x80040003 (OLE_E_ADVISENOTSUPPORTED))
そして、私が答えようとすると、次のようになります。
タイプ 'System.__ComObject' の COM オブジェクトをインターフェイス タイプ 'TAPI3Lib.ITBasicCallControl' にキャストできません。IID '{B1EFC389-9355-11D0-835C-00AA003CCABD}' を持つインターフェイスの COM コンポーネントでの QueryInterface 呼び出しが次のエラーのために失敗したため、この操作は失敗しました: No such interface supported (HRESULT からの例外: 0x80004002 (E_NOINTERFACE)) .
私のアプリは以下に基づいています: http://www.codeproject.com/KB/IP/devangpro.aspx コードプロジェクトでアプリを取得するために、クロススレッドの問題のため、リストボックスにアイテムを追加するためのデリゲートを作成する必要がありました少なくとも正しく実行します。
切断は次のとおりです。
IEnumCall ec = ia[line].EnumerateCalls();
uint arg = 0;
ITCallInfo ici;
try
{
ec.Next(1,out ici,ref arg);
ITBasicCallControl bc=(ITBasicCallControl)ici;
bc.Disconnect(DISCONNECT_CODE.DC_NORMAL);
ici.ReleaseUserUserInfo();
}
catch(Exception exp)
{
MessageBox.Show("No call to disconnect!","TAPI3");
}
そして、ここに答えがあります:
IEnumCall ec = ia[line].EnumerateCalls();
uint arg=0;
ITCallInfo ici;
try
{
ec.Next(1,out ici,ref arg);
ITBasicCallControl bc=(TAPI3Lib.ITBasicCallControl)ici;
if(!reject)
{
bc.Answer();
}
else
{
bc.Disconnect(DISCONNECT_CODE.DC_REJECTED);
ici.ReleaseUserUserInfo();
}
}
catch(Exception exp)
{
MessageBox.Show("There may not be any calls to answer! \n\n"+exp.ToString(),"TAPI3");
}