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

ITTAPI

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

メソッド 16

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

vtbl 7 HRESULT Initialize()
vtbl 8 HRESULT Shutdown()
vtbl 9 HRESULT get_Addresses(VARIANT* pVariant)
pVariantVARIANT*out利用可能なアドレス(回線)のコレクションをVARIANT(IDispatch)として受け取る出力先。
vtbl 10 HRESULT EnumerateAddresses(IEnumAddress** ppEnumAddress)
ppEnumAddressIEnumAddress**outアドレスを列挙するIEnumAddress列挙子を受け取る出力先。
vtbl 11 HRESULT RegisterCallNotifications(ITAddress* pAddress, VARIANT_BOOL fMonitor, VARIANT_BOOL fOwner, INT lMediaTypes, INT lCallbackInstance, INT* plRegister)
pAddressITAddress*in通知を登録する対象のアドレス(回線)を表すITAddress。
fMonitorVARIANT_BOOLinVARIANT_TRUEで監視権限を要求する真偽値。
fOwnerVARIANT_BOOLinVARIANT_TRUEで所有権限を要求する真偽値。
lMediaTypesINTin通知を受ける対象のメディア種別を示すビットマスク。
lCallbackInstanceINTinコールバック時にそのまま返されるアプリ定義のインスタンス値。
plRegisterINT*out登録を識別するトークン(登録解除に使用)を受け取る出力先。
vtbl 12 HRESULT UnregisterNotifications(INT lRegister)
lRegisterINTinRegisterCallNotificationsで取得した登録トークンを指定し通知を解除する。
vtbl 13 HRESULT get_CallHubs(VARIANT* pVariant)
pVariantVARIANT*outコールハブのコレクションをVARIANT(IDispatch)として受け取る出力先。
vtbl 14 HRESULT EnumerateCallHubs(IEnumCallHub** ppEnumCallHub)
ppEnumCallHubIEnumCallHub**outコールハブを列挙するIEnumCallHub列挙子を受け取る出力先。
vtbl 15 HRESULT SetCallHubTracking(VARIANT pAddresses, VARIANT_BOOL bTracking)
pAddressesVARIANTin追跡対象のアドレス群を保持するVARIANT(コレクション)。
bTrackingVARIANT_BOOLinVARIANT_TRUEでコールハブ追跡を有効化する真偽値。
vtbl 16 HRESULT EnumeratePrivateTAPIObjects(IEnumUnknown** ppEnumUnknown)
ppEnumUnknownIEnumUnknown**outプライベートTAPIオブジェクトを列挙するIEnumUnknownを受け取る出力先。
vtbl 17 HRESULT get_PrivateTAPIObjects(VARIANT* pVariant)
pVariantVARIANT*outプライベートTAPIオブジェクトのコレクションをVARIANTとして受け取る出力先。
vtbl 18 HRESULT RegisterRequestRecipient(INT lRegistrationInstance, INT lRequestMode, VARIANT_BOOL fEnable)
lRegistrationInstanceINTin登録を識別するアプリ定義のインスタンス値。
lRequestModeINTin受信する要求モード(発信支援要求の種別)を示す値。
fEnableVARIANT_BOOLinVARIANT_TRUEで要求受信者として登録、FALSEで解除する真偽値。
vtbl 19 HRESULT SetAssistedTelephonyPriority(LPWSTR pAppFilename, VARIANT_BOOL fPriority)
pAppFilenameLPWSTRin支援テレフォニー要求を処理するアプリの実行ファイル名。
fPriorityVARIANT_BOOLinVARIANT_TRUEで当該アプリを優先処理対象にする真偽値。
vtbl 20 HRESULT SetApplicationPriority(LPWSTR pAppFilename, INT lMediaType, VARIANT_BOOL fPriority)
pAppFilenameLPWSTRin優先度を設定する対象アプリの実行ファイル名。
lMediaTypeINTin対象とするメディア種別を示す値。
fPriorityVARIANT_BOOLinVARIANT_TRUEで当該アプリの優先度を上げる真偽値。
vtbl 21 HRESULT put_EventFilter(INT lFilterMask)
lFilterMaskINTin受信したいTAPIイベント種別を示すビットマスクを設定する。
vtbl 22 HRESULT get_EventFilter(INT* plFilterMask)
plFilterMaskINT*out現在のイベントフィルター(受信対象イベントのビットマスク)を受け取る出力先。

HSP用 COM定義

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

出力引数:
#define global IID_ITTAPI "{B1EFC382-9355-11D0-835C-00AA003CCABD}"
#usecom global ITTAPI IID_ITTAPI "{}"
#comfunc global ITTAPI_Initialize                    7
#comfunc global ITTAPI_Shutdown                      8
#comfunc global ITTAPI_get_Addresses                 9 var
#comfunc global ITTAPI_EnumerateAddresses            10 sptr
#comfunc global ITTAPI_RegisterCallNotifications     11 sptr,int,int,int,int,var
#comfunc global ITTAPI_UnregisterNotifications       12 int
#comfunc global ITTAPI_get_CallHubs                  13 var
#comfunc global ITTAPI_EnumerateCallHubs             14 sptr
#comfunc global ITTAPI_SetCallHubTracking            15 int,int
#comfunc global ITTAPI_EnumeratePrivateTAPIObjects   16 sptr
#comfunc global ITTAPI_get_PrivateTAPIObjects        17 var
#comfunc global ITTAPI_RegisterRequestRecipient      18 int,int,int
#comfunc global ITTAPI_SetAssistedTelephonyPriority  19 wstr,int
#comfunc global ITTAPI_SetApplicationPriority        20 wstr,int,int
#comfunc global ITTAPI_put_EventFilter               21 int
#comfunc global ITTAPI_get_EventFilter               22 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。