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

ITAgentHandler

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

公式ドキュメント

ITAgentHandler インターフェイス (tapi3cc.h) は、Agent オブジェクトを作成し、Automatic Call Distribution (ACD) グループを列挙するためのメソッドを提供します。

メソッド 7

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

vtbl 7 HRESULT get_Name(LPWSTR* ppName)

ITAgentHandler::get_Name メソッド (tapi3cc.h) は、エージェントハンドラー名を取得します。

ppNameLPWSTR*outエージェントハンドラー名の BSTR 表現へのポインター。

戻り値

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

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

解説(Remarks)

アプリケーションは、変数が不要になったときに ppName パラメーターに割り当てられたメモリを SysFreeString によって解放する必要があります。

vtbl 8 HRESULT CreateAgent(ITAgent** ppAgent)

ITAgentHandler::CreateAgent メソッド (tapi3cc.h) は、Agent オブジェクトを作成します。

ppAgentITAgent**outITAgent インターフェイスへのポインター。

戻り値

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

意味
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
E_POINTER
ppAgent パラメーターが有効なポインターではありません。
TAPI_E_TIMEOUT
TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。

解説(Remarks)

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

vtbl 9 HRESULT CreateAgentWithID(LPWSTR pID, LPWSTR pPIN, ITAgent** ppAgent)

ITAgentHandler::CreateAgentWithID メソッド (tapi3cc.h) は、エージェント識別子に基づいて Agent オブジェクトを作成します。

pIDLPWSTRinエージェント識別子を格納する BSTR へのポインター。
pPINLPWSTRinエージェント PIN を格納する BSTR へのポインター。
ppAgentITAgent**outITAgent インターフェイスへのポインター。

戻り値

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

意味
S_OK
メソッドは成功しました。
E_INVALIDARG
pPIN パラメーターが NULL です。
E_POINTER
ppAgent パラメーターが有効なポインターではありません。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
TAPI_E_TIMEOUT
TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。

解説(Remarks)

アプリケーションは、pID および pPIN パラメーターにメモリを割り当てるために SysAllocString を使用し、変数が不要になったときにメモリを解放するために SysFreeString を使用する必要があります。

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

vtbl 10 HRESULT EnumerateACDGroups(IEnumACDGroup** ppEnumACDGroup)

ITAgentHandler::EnumerateACDGroups メソッド (tapi3cc.h) は、現在エージェントハンドラーに関連付けられている ACD グループを列挙します。

ppEnumACDGroupIEnumACDGroup**outIEnumACDGroup インターフェイスへのポインター。

戻り値

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

意味
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
E_POINTER
ppEnumACDGroup パラメーターが有効なポインターではありません。
TAPI_E_TIMEOUT
TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。

解説(Remarks)

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

vtbl 11 HRESULT EnumerateUsableAddresses(IEnumAddress** ppEnumAddress)

ITAgentHandler::EnumerateUsableAddresses メソッド (tapi3cc.h) は、このエージェントハンドラーで ACD コールを受信するために使用できるアドレスを列挙します。

ppEnumAddressIEnumAddress**outIEnumAddress インターフェイスへのポインター。

戻り値

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

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

解説(Remarks)

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

vtbl 12 HRESULT get_ACDGroups(VARIANT* pVariant)

ITAgentHandler::get_ACDGroups メソッド (tapi3cc.h) は、現在エージェントハンドラーに関連付けられている ACD グループのコレクションを作成します。

pVariantVARIANT*outITACDGroup インターフェイスポインター (ACD グループオブジェクト) の ITCollection を格納する VARIANT へのポインター。

戻り値

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

意味
S_OK
メソッドは成功しました。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
E_POINTER
pVariant パラメーターが有効なポインターではありません。
TAPI_E_TIMEOUT
TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。

解説(Remarks)

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

vtbl 13 HRESULT get_UsableAddresses(VARIANT* pVariant)

ITAgentHandler::get_UsableAddresses メソッド (tapi3cc.h) は、このエージェントハンドラーで ACD コールを受信するために使用できるアドレスのコレクションを作成します。

pVariantVARIANT*outITAddress インターフェイスポインター (アドレスオブジェクト) の ITCollection を格納する VARIANT へのポインター。

戻り値

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

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

解説(Remarks)

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

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ITAgentHandler "{587E8C22-9802-11D1-A0A4-00805FC147D3}"
#usecom global ITAgentHandler IID_ITAgentHandler "{}"
#comfunc global ITAgentHandler_get_Name                  7 var
#comfunc global ITAgentHandler_CreateAgent               8 sptr
#comfunc global ITAgentHandler_CreateAgentWithID         9 wstr,wstr,sptr
#comfunc global ITAgentHandler_EnumerateACDGroups        10 sptr
#comfunc global ITAgentHandler_EnumerateUsableAddresses  11 sptr
#comfunc global ITAgentHandler_get_ACDGroups             12 var
#comfunc global ITAgentHandler_get_UsableAddresses       13 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。