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

ITPhoneEvent

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

公式ドキュメント

ITPhoneEvent インターフェイスは、発生した電話イベントの説明を取得するメソッドを提供します。

メソッド 9

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

vtbl 7 HRESULT get_Phone(ITPhone** ppPhone)

get_Phone メソッドは、このイベントを発生させた電話オブジェクトの ITPhone インターフェイスへのポインターを返します。

ppPhoneITPhone**outITPhone インターフェイスへのポインター。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

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

vtbl 8 HRESULT get_Event(PHONE_EVENT* pEvent)

get_Event メソッドは、発生した電話イベントの種類を指定する PHONE_EVENT 値を返します。

pEventPHONE_EVENT*outイベントの PHONE_EVENT 記述子。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 9 HRESULT get_ButtonState(PHONE_BUTTON_STATE* pState)

get_ButtonState メソッドは、ボタンが遷移した状態を指定する PHONE_BUTTON_STATE 値を返します。この情報は、ITPhoneEvent::get_Event メソッドが PE_BUTTON を返す場合にのみ利用できます。

pStatePHONE_BUTTON_STATE*outボタンの現在の状態を示す PHONE_BUTTON_STATE 記述子へのポインター。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

解説(Remarks)

このメソッドが用意されているのは、一部のボタンが PBS_DOWN ボタン状態をサポートせず、代わりに一時的に PBS_PRESSED を報告するためです。さらに、PBS_DOWN をサポートする電話であっても、ボタンが短時間しか押されず、 ITPhone::get_ButtonState メソッドの呼び出しが十分に速く実行されない場合、アプリケーションはボタンの押下を取りこぼす可能性があります。

vtbl 10 HRESULT get_HookSwitchState(PHONE_HOOK_SWITCH_STATE* pState)

get_HookSwitchState メソッドは、フックスイッチが遷移した状態を指定する PHONE_HOOK_SWITCH_STATE 値を返します。この情報は、ITPhoneEvent::get_Event メソッドが PE_HOOKSWITCH を返す場合にのみ利用できます。

pStatePHONE_HOOK_SWITCH_STATE*out現在のフックスイッチ状態を示す PHONE_HOOK_SWITCH_STATE 記述子へのポインター。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 11 HRESULT get_HookSwitchDevice(PHONE_HOOK_SWITCH_DEVICE* pDevice)

get_HookSwitchDevice メソッドは、状態が変化したフックスイッチデバイスを指定する PHONE_HOOK_SWITCH_DEVICE 値を返します。この情報は、ITPhoneEvent::get_Event メソッドが PE_HOOKSWITCH を返す場合にのみ利用できます。

pDevicePHONE_HOOK_SWITCH_DEVICE*outフックスイッチ状態が変化したデバイスの種類を示す PHONE_HOOK_SWITCH_DEVICE 記述子へのポインター。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 12 HRESULT get_RingMode(INT* plRingMode)

get_RingMode メソッドは、電話が遷移した呼び出し音モードを指定する long 値を返します。この情報は、ITPhoneEvent::get_Event メソッドが PE_RINGMODE を返す場合にのみ利用できます。

plRingModeINT*out呼び出し音モード。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 13 HRESULT get_ButtonLampId(INT* plButtonLampId)

get_ButtonLampId メソッドは、どのボタンまたはランプがイベントを発生させたかを示す long 値を返します。この情報は、ITPhoneEvent::get_Event が PE_LAMPMODE または PE_BUTTON を返す場合にのみ利用できます。

plButtonLampIdINT*outボタンまたはランプの ID。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 14 HRESULT get_NumberGathered(LPWSTR* ppNumber)

get_NumberGathered メソッドは、収集された電話番号を指定する BSTR 値を返します。この情報は、ITPhoneEvent::get_Event メソッドが PE_NUMBERGATHERED を返す場合にのみ利用できます。

ppNumberLPWSTR*out収集された電話番号。BSTRSysAllocString を使用して割り当てられ、クライアントが解放する必要があります。

戻り値

このメソッドが成功した場合は S_OK を返します。それ以外の場合は HRESULT エラーコードを返します。

vtbl 15 HRESULT get_Call(ITCallInfo** ppCallInfo)

get_Call メソッドは、イベントに関与する通話オブジェクトの ITCallInfo インターフェイスへのポインターを返します。

ppCallInfoITCallInfo**outITCallInfo インターフェイスへのポインター。

戻り値

このメソッドは、次のいずれかの値を返すことができます。

意味
S_OK
メソッドが成功しました。
E_OUTOFMEMORY
操作を実行するためのメモリが不足しています。
E_POINTER
ppCallInfo パラメーターが有効なポインターではありません。
出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ITPhoneEvent "{8F942DD8-64ED-4AAF-A77D-B23DB0837EAD}"
#usecom global ITPhoneEvent IID_ITPhoneEvent "{}"
#comfunc global ITPhoneEvent_get_Phone             7 sptr
#comfunc global ITPhoneEvent_get_Event             8 var
#comfunc global ITPhoneEvent_get_ButtonState       9 var
#comfunc global ITPhoneEvent_get_HookSwitchState   10 var
#comfunc global ITPhoneEvent_get_HookSwitchDevice  11 var
#comfunc global ITPhoneEvent_get_RingMode          12 var
#comfunc global ITPhoneEvent_get_ButtonLampId      13 var
#comfunc global ITPhoneEvent_get_NumberGathered    14 var
#comfunc global ITPhoneEvent_get_Call              15 sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。