Win32 API 日本語リファレンス
ホームDevices.Tapi › ITCallInfo

ITCallInfo

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IID350f85d1-1227-11d3-83d4-00c04fb6809f継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

公式ドキュメント

ITCallInfo インターフェイスは、Call オブジェクトに関するさまざまな情報を取得および設定します。ITCallInfo インターフェイスは、ITAddress::get_Calls メソッドおよび IEnumCall::Next メソッドによって作成されます。

メソッド 13

vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。

vtbl 7 HRESULT get_Address(ITAddress** ppAddress)

get_Address メソッドは、Address オブジェクトの ITAddress インターフェイスへのポインターを取得します。

ppAddressITAddress**outITAddress インターフェイスへのポインター。

戻り値

このメソッドは、次のいずれかの値を返します。

意味
S_OK
メソッドは成功しました。
E_POINTER
ppAddress パラメーターが有効なポインターではありません。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。

解説(Remarks)

TAPI は、ITCallInfo::get_Address が返す ITAddress インターフェイスに対して AddRef メソッドを呼び出します。アプリケーションは、 ITAddress インターフェイスに関連付けられたリソースを解放するために、そのインターフェイスに対して Release を呼び出す必要があります。

vtbl 8 HRESULT get_CallState(CALL_STATE* pCallState)

get_CallState メソッドは、CS_IDLE などの現在のコール状態へのポインターを取得します。

pCallStateCALL_STATE*out現在の CALL_STATE 型を格納する変数へのポインター。

戻り値

このメソッドは、次のいずれかの値を返します。

リターン コード 説明
S_OK
メソッドは成功しました。
E_POINTER
pCallState パラメーターが有効なポインターではありません。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。

解説(Remarks)

TAPI 2.1 相互参照: LINECALLSTATUS, ITCallInfo, LINECALLINFO 構造体の dwMediaMode メンバー, Call オブジェクト

vtbl 9 HRESULT get_Privilege(CALL_PRIVILEGE* pPrivilege)

get_Privilege メソッドは、CP_MONITOR などの、現在のコールに対するアプリケーションのコール特権を取得します。

pPrivilegeCALL_PRIVILEGE*outCALL_PRIVILEGE へのポインター。

戻り値

このメソッドは、次のいずれかの値を返します。

リターン コード 説明
S_OK
メソッドは成功しました。
E_POINTER
pPrivilege パラメーターが有効なポインターではありません。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。

解説(Remarks)

TAPI 2.1 相互参照: LINECALLSTATUS

vtbl 10 HRESULT get_CallHub(ITCallHub** ppCallHub)

get_CallHub メソッドは、CallHub オブジェクトの ITCallHub インターフェイスへのポインターを取得します。

ppCallHubITCallHub**outCallHub オブジェクトの ITCallHub インターフェイスへのポインター。

戻り値

このメソッドは、次のいずれかの値を返します。

意味
S_OK
メソッドは成功しました。
E_PENDING
コール ハブはまだ利用できません。
E_POINTER
ppCallHub パラメーターが有効なポインターではありません。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。

解説(Remarks)

一部のサービス プロバイダーでは、コールが発信されるまでコール ハブを利用できません。

TAPI は、ITCallInfo::get_CallHub が返す ITCallHub インターフェイスに対して AddRef メソッドを呼び出します。アプリケーションは、 ITCallHub インターフェイスに関連付けられたリソースを解放するために、そのインターフェイスに対して Release を呼び出す必要があります。

vtbl 11 HRESULT get_CallInfoLong(CALLINFO_LONG CallInfoLong, INT* plCallInfoLongVal)

get_CallInfoLong メソッドは、ベアラー モードなど、long で表されるコール情報項目を取得します。

CallInfoLongCALLINFO_LONGinCIL_BEARERMODE など、必要な情報の種類を示す CALLINFO_LONG
plCallInfoLongValINT*out返される値へのポインター。

戻り値

このメソッドは、次のいずれかの値を返します。

意味
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
E_POINTER
plCallInfoLongVal パラメーターが有効なポインターではありません。
E_INVALIDARG
CallInfoLong パラメーターが有効な値ではありません。
TAPI_E_INVALCALLSTATE
現在の コール状態 は、この操作に対して有効ではありません。
vtbl 12 HRESULT put_CallInfoLong(CALLINFO_LONG CallInfoLong, INT lCallInfoLongVal)

put_CallInfoLong メソッドは、ベアラー モードなど、long で表されるコール情報項目を設定します。

CallInfoLongCALLINFO_LONGinCIL_BEARERMODE など、必要な情報の種類を示す CALLINFO_LONG
lCallInfoLongValINTin新しい値へのポインター。

戻り値

このメソッドは、次のいずれかの値を返します。

意味
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
E_INVALIDARG
CallInfoLong パラメーターが有効な値ではありません。
TAPI_E_INVALCALLSTATE
現在の コール状態 は、この操作に対して有効ではありません。
vtbl 13 HRESULT get_CallInfoString(CALLINFO_STRING CallInfoString, LPWSTR* ppCallInfoString)

get_CallInfoString メソッドは、表示可能なアドレスなど、文字列で表されるコール情報項目を取得します。

CallInfoStringCALLINFO_STRINGinCIS_DISPLAYABLEADDRESS など、必要な情報の種類を示す CALLINFO_STRING
ppCallInfoStringLPWSTR*out必要な文字列の BSTR 表現へのポインター。

戻り値

このメソッドは、次のいずれかの値を返します。

意味
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
E_POINTER
ppCallInfoString パラメーターが有効なポインターではありません。
E_INVALIDARG
CallInfoString パラメーターが有効な値ではありません。
TAPI_E_INVALCALLSTATE
現在の コール状態 は、この操作に対して有効ではありません。

解説(Remarks)

アプリケーションは、ppCallInfoString パラメーターに割り当てられたメモリを解放するために SysFreeString を使用する必要があります。

vtbl 14 HRESULT put_CallInfoString(CALLINFO_STRING CallInfoString, LPWSTR pCallInfoString)

put_CallInfoString メソッドは、表示可能なアドレスなど、文字列で表されるコール情報項目を設定します。

CallInfoStringCALLINFO_STRINGinCIS_DISPLAYABLEADDRESS など、情報の種類を示す CALLINFO_STRING
pCallInfoStringLPWSTRin文字列の BSTR 表現へのポインター。

戻り値

このメソッドは、次のいずれかの値を返します。

意味
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
E_INVALIDARG
CallInfoString パラメーターが有効な値ではありません。
TAPI_E_INVALCALLSTATE
現在の コール状態 は、この操作に対して有効ではありません。

解説(Remarks)

アプリケーションは、pCallInfoString パラメーターが参照する文字列データのメモリを割り当てるために SysAllocString を使用し、その変数が不要になったときにメモリを解放するために SysFreeString を使用する必要があります。

vtbl 15 HRESULT get_CallInfoBuffer(CALLINFO_BUFFER CallInfoBuffer, VARIANT* ppCallInfoBuffer)

get_CallInfoBuffer メソッドは、ユーザー間情報など、バッファーを必要とするコール情報項目を取得します。

CallInfoBufferCALLINFO_BUFFERinCIB_USERUSERINFO など、必要な情報の種類を示す CALLINFO_BUFFER
ppCallInfoBufferVARIANT*outコール情報バッファーの VARIANT 表現へのポインター。アプリケーションは、このパラメーターに割り当てられたメモリを解放するために CoTaskMemFree 関数を呼び出す必要があります。

戻り値

このメソッドは、次のいずれかの値を返します。

意味
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
E_POINTER
ppCallInfoBuffer パラメーターが有効なポインターではありません。
E_INVALIDARG
CallInfoBuffer パラメーターが有効な値ではありません。
TAPI_E_INVALCALLSTATE
現在の コール状態 は、この操作に対して有効ではありません。
vtbl 16 HRESULT put_CallInfoBuffer(CALLINFO_BUFFER CallInfoBuffer, VARIANT pCallInfoBuffer)

put_CallInfoBuffer メソッドは、ユーザー間情報など、バッファーを必要とするコール情報項目を設定します。

CallInfoBufferCALLINFO_BUFFERinCIB_USERUSERINFO など、情報の種類を示す CALLINFO_BUFFER
pCallInfoBufferVARIANTinVARIANT

戻り値

このメソッドは、次のいずれかの値を返します。

意味
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
E_INVALIDARG
CallInfoBuffer パラメーターが有効な値ではありません。
TAPI_E_INVALCALLSTATE
現在の コール状態 は、この操作に対して有効ではありません。
vtbl 17 HRESULT GetCallInfoBuffer(CALLINFO_BUFFER CallInfoBuffer, DWORD* pdwSize, BYTE** ppCallInfoBuffer)

GetCallInfoBuffer メソッドは、ユーザー間情報など、バッファーを必要とするコール情報項目を取得します。Visual Basic で記述されたものなどのオートメーション クライアント アプリケーションは、ITCallInfo::get_CallInfoBuffer メソッドを使用する必要があります。

CallInfoBufferCALLINFO_BUFFERinCIB_USERUSERINFO など、必要な情報の種類を示す CALLINFO_BUFFER
pdwSizeDWORD*out返されるバッファーのサイズ (バイト単位)。
ppCallInfoBufferBYTE**out必要なコール情報を格納するバッファーへのポインター。

戻り値

このメソッドは、次のいずれかの値を返します。

リターン コード 説明
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
E_POINTER
pdwSize または ppCallInfoBuffer パラメーターが有効なポインターではありません。
E_INVALIDARG
CallInfoBuffer パラメーターが有効な値ではありません。
TAPI_E_INVALCALLSTATE
現在の コール状態 は、この操作に対して有効ではありません。
vtbl 18 HRESULT SetCallInfoBuffer(CALLINFO_BUFFER CallInfoBuffer, DWORD dwSize, BYTE* pCallInfoBuffer)

SetCallInfoBuffer メソッドは、ユーザー間情報など、バッファーを必要とするコール情報項目を設定します。Visual Basic で記述されたものなどのオートメーション クライアント アプリケーションは、ITCallInfo::put_CallInfoBuffer メソッドを使用する必要があります。

CallInfoBufferCALLINFO_BUFFERinCIB_USERUSERINFO など、必要な情報の種類を示す CALLINFO_BUFFER
dwSizeDWORDinpCallInfoBuffer のサイズ。
pCallInfoBufferBYTE*inコール情報バッファーへのポインター。

戻り値

このメソッドは、次のいずれかの値を返します。

リターン コード 説明
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
E_POINTER
pCallInfoBuffer パラメーターが有効なポインターではありません。
E_INVALIDARG
CallInfoBuffer パラメーターが有効な値ではありません。
TAPI_E_INVALCALLSTATE
現在の コール状態 は、この操作に対して有効ではありません。
vtbl 19 HRESULT ReleaseUserUserInfo()

ReleaseUserUserInfo メソッドは、ITCallInfo::GetCallInfoBuffer メソッドから取得したユーザー間情報をアプリケーションが処理し終えたことをサービス プロバイダーに通知します。

戻り値

このメソッドは、次のいずれかの値を返します。

リターン コード 説明
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
TAPI_E_TIMEOUT
TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。
出典・ライセンス: 上記「公式ドキュメント」の内容は Microsoft の Win32 API ドキュメント(MicrosoftDocs/sdk-api)を日本語に翻訳・改変したものです。© Microsoft Corporation. CC BY 4.0 で提供。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)

HSP用 COM定義

#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"

出力引数:
#define global IID_ITCallInfo "{350F85D1-1227-11D3-83D4-00C04FB6809F}"
#usecom global ITCallInfo IID_ITCallInfo "{}"
#comfunc global ITCallInfo_get_Address          7 sptr
#comfunc global ITCallInfo_get_CallState        8 var
#comfunc global ITCallInfo_get_Privilege        9 var
#comfunc global ITCallInfo_get_CallHub          10 sptr
#comfunc global ITCallInfo_get_CallInfoLong     11 int,var
#comfunc global ITCallInfo_put_CallInfoLong     12 int,int
#comfunc global ITCallInfo_get_CallInfoString   13 int,var
#comfunc global ITCallInfo_put_CallInfoString   14 int,wstr
#comfunc global ITCallInfo_get_CallInfoBuffer   15 int,var
#comfunc global ITCallInfo_put_CallInfoBuffer   16 int,int
#comfunc global ITCallInfo_GetCallInfoBuffer    17 int,var,var
#comfunc global ITCallInfo_SetCallInfoBuffer    18 int,int,var
#comfunc global ITCallInfo_ReleaseUserUserInfo  19
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。