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

ITPhone

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

メソッド 33

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

vtbl 7 HRESULT Open(PHONE_PRIVILEGE Privilege)
PrivilegePHONE_PRIVILEGEin電話機を開く際に要求する権限(所有/監視)を示すPHONE_PRIVILEGE値。
vtbl 8 HRESULT Close()
vtbl 9 HRESULT get_Addresses(VARIANT* pAddresses)
pAddressesVARIANT*outこの電話機に関連付けられたアドレスのコレクションをVARIANTで受け取る出力先。
vtbl 10 HRESULT EnumerateAddresses(IEnumAddress** ppEnumAddress)
ppEnumAddressIEnumAddress**out関連アドレスを列挙するIEnumAddressを受け取る出力先。
vtbl 11 HRESULT get_PhoneCapsLong(PHONECAPS_LONG pclCap, INT* plCapability)
pclCapPHONECAPS_LONGin問い合わせる数値型の電話機能力項目を示すPHONECAPS_LONG値。
plCapabilityINT*out当該能力の数値を受け取る出力先。
vtbl 12 HRESULT get_PhoneCapsString(PHONECAPS_STRING pcsCap, LPWSTR* ppCapability)
pcsCapPHONECAPS_STRINGin問い合わせる文字列型の電話機能力項目を示すPHONECAPS_STRING値。
ppCapabilityLPWSTR*out当該能力の文字列値を受け取る出力先。SysFreeStringで解放する。
vtbl 13 HRESULT get_Terminals(ITAddress* pAddress, VARIANT* pTerminals)
pAddressITAddress*in対象アドレスを示すITAddress。そのアドレスのターミナルを取得する。
pTerminalsVARIANT*out電話機のターミナルのコレクションをVARIANTで受け取る出力先。
vtbl 14 HRESULT EnumerateTerminals(ITAddress* pAddress, IEnumTerminal** ppEnumTerminal)
pAddressITAddress*in対象アドレスを示すITAddress。
ppEnumTerminalIEnumTerminal**out電話機のターミナルを列挙するIEnumTerminalを受け取る出力先。
vtbl 15 HRESULT get_ButtonMode(INT lButtonID, PHONE_BUTTON_MODE* pButtonMode)
lButtonIDINTin対象ボタンの識別ID(0始まり)。
pButtonModePHONE_BUTTON_MODE*out当該ボタンのモードを示すPHONE_BUTTON_MODEを受け取る出力先。
vtbl 16 HRESULT put_ButtonMode(INT lButtonID, PHONE_BUTTON_MODE ButtonMode)
lButtonIDINTin設定対象ボタンの識別ID。
ButtonModePHONE_BUTTON_MODEinボタンに設定するモードを示すPHONE_BUTTON_MODE値。
vtbl 17 HRESULT get_ButtonFunction(INT lButtonID, PHONE_BUTTON_FUNCTION* pButtonFunction)
lButtonIDINTin対象ボタンの識別ID。
pButtonFunctionPHONE_BUTTON_FUNCTION*out当該ボタンの割り当て機能を示すPHONE_BUTTON_FUNCTIONを受け取る出力先。
vtbl 18 HRESULT put_ButtonFunction(INT lButtonID, PHONE_BUTTON_FUNCTION ButtonFunction)
lButtonIDINTin設定対象ボタンの識別ID。
ButtonFunctionPHONE_BUTTON_FUNCTIONinボタンに割り当てる機能を示すPHONE_BUTTON_FUNCTION値。
vtbl 19 HRESULT get_ButtonText(INT lButtonID, LPWSTR* ppButtonText)
lButtonIDINTin対象ボタンの識別ID。
ppButtonTextLPWSTR*out当該ボタンに表示されるテキストを受け取る出力先。
vtbl 20 HRESULT put_ButtonText(INT lButtonID, LPWSTR bstrButtonText)
lButtonIDINTin設定対象ボタンの識別ID。
bstrButtonTextLPWSTRinボタンに設定する表示テキスト文字列。
vtbl 21 HRESULT get_ButtonState(INT lButtonID, PHONE_BUTTON_STATE* pButtonState)
lButtonIDINTin対象ボタンの識別ID。
pButtonStatePHONE_BUTTON_STATE*out当該ボタンの押下状態を示すPHONE_BUTTON_STATEを受け取る出力先。
vtbl 22 HRESULT get_HookSwitchState(PHONE_HOOK_SWITCH_DEVICE HookSwitchDevice, PHONE_HOOK_SWITCH_STATE* pHookSwitchState)
HookSwitchDevicePHONE_HOOK_SWITCH_DEVICEin対象のフックスイッチデバイス(送受話器等)を示すPHONE_HOOK_SWITCH_DEVICE値。
pHookSwitchStatePHONE_HOOK_SWITCH_STATE*out当該デバイスのオン/オフフック状態を示すPHONE_HOOK_SWITCH_STATEを受け取る出力先。
vtbl 23 HRESULT put_HookSwitchState(PHONE_HOOK_SWITCH_DEVICE HookSwitchDevice, PHONE_HOOK_SWITCH_STATE HookSwitchState)
HookSwitchDevicePHONE_HOOK_SWITCH_DEVICEin設定対象のフックスイッチデバイスを示すPHONE_HOOK_SWITCH_DEVICE値。
HookSwitchStatePHONE_HOOK_SWITCH_STATEin設定するオン/オフフック状態を示すPHONE_HOOK_SWITCH_STATE値。
vtbl 24 HRESULT put_RingMode(INT lRingMode)
lRingModeINTin電話機に設定する着信音(リング)モードの番号。
vtbl 25 HRESULT get_RingMode(INT* plRingMode)
plRingModeINT*out現在の着信音モードの番号を受け取る出力先。
vtbl 26 HRESULT put_RingVolume(INT lRingVolume)
lRingVolumeINTin設定する着信音量(0〜65535の範囲)。
vtbl 27 HRESULT get_RingVolume(INT* plRingVolume)
plRingVolumeINT*out現在の着信音量を受け取る出力先。
vtbl 28 HRESULT get_Privilege(PHONE_PRIVILEGE* pPrivilege)
pPrivilegePHONE_PRIVILEGE*outこの電話機に対して保持している権限を示すPHONE_PRIVILEGEを受け取る出力先。
vtbl 29 HRESULT GetPhoneCapsBuffer(PHONECAPS_BUFFER pcbCaps, DWORD* pdwSize, BYTE** ppPhoneCapsBuffer)
pcbCapsPHONECAPS_BUFFERin取得対象のバッファ型能力項目を示すPHONECAPS_BUFFER値。
pdwSizeDWORD*out返されるバッファのバイトサイズを受け取る出力先。
ppPhoneCapsBufferBYTE**out能力データを格納したバイトバッファを受け取る出力先。CoTaskMemFreeで解放する。
vtbl 30 HRESULT get_PhoneCapsBuffer(PHONECAPS_BUFFER pcbCaps, VARIANT* pVarBuffer)
pcbCapsPHONECAPS_BUFFERin取得対象のバッファ型能力項目を示すPHONECAPS_BUFFER値。
pVarBufferVARIANT*out能力データをバイト配列VARIANTとして受け取る出力先。
vtbl 31 HRESULT get_LampMode(INT lLampID, PHONE_LAMP_MODE* pLampMode)
lLampIDINTin対象ランプの識別ID。
pLampModePHONE_LAMP_MODE*out当該ランプの点灯モードを示すPHONE_LAMP_MODEを受け取る出力先。
vtbl 32 HRESULT put_LampMode(INT lLampID, PHONE_LAMP_MODE LampMode)
lLampIDINTin設定対象ランプの識別ID。
LampModePHONE_LAMP_MODEinランプに設定する点灯モードを示すPHONE_LAMP_MODE値。
vtbl 33 HRESULT get_Display(LPWSTR* pbstrDisplay)
pbstrDisplayLPWSTR*out電話機ディスプレイの現在の表示内容を受け取る出力先。
vtbl 34 HRESULT SetDisplay(INT lRow, INT lColumn, LPWSTR bstrDisplay)
lRowINTin表示を書き込む開始行位置(0始まり)。
lColumnINTin表示を書き込む開始列位置(0始まり)。
bstrDisplayLPWSTRinディスプレイに書き込む文字列。
vtbl 35 HRESULT get_PreferredAddresses(VARIANT* pAddresses)
pAddressesVARIANT*out優先的に使用するアドレスのコレクションをVARIANTで受け取る出力先。
vtbl 36 HRESULT EnumeratePreferredAddresses(IEnumAddress** ppEnumAddress)
ppEnumAddressIEnumAddress**out優先アドレスを列挙するIEnumAddressを受け取る出力先。
vtbl 37 HRESULT DeviceSpecific(BYTE* pParams, DWORD dwSize)
pParamsBYTE*inサービスプロバイダーに渡すデバイス固有データのバイトバッファ。
dwSizeDWORDinpParamsバッファのバイトサイズ。
vtbl 38 HRESULT DeviceSpecificVariant(VARIANT varDevSpecificByteArray)
varDevSpecificByteArrayVARIANTinデバイス固有データをバイト配列として保持するVARIANT。
vtbl 39 HRESULT NegotiateExtVersion(INT lLowVersion, INT lHighVersion, INT* plExtVersion)
lLowVersionINTin受け入れ可能な拡張バージョンの下限を指定する。
lHighVersionINTin受け入れ可能な拡張バージョンの上限を指定する。
plExtVersionINT*outネゴシエートされた拡張バージョン番号を受け取る出力先。

HSP用 COM定義

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

出力引数:
#define global IID_ITPhone "{09D48DB4-10CC-4388-9DE7-A8465618975A}"
#usecom global ITPhone IID_ITPhone "{}"
#comfunc global ITPhone_Open                         7 int
#comfunc global ITPhone_Close                        8
#comfunc global ITPhone_get_Addresses                9 var
#comfunc global ITPhone_EnumerateAddresses           10 sptr
#comfunc global ITPhone_get_PhoneCapsLong            11 int,var
#comfunc global ITPhone_get_PhoneCapsString          12 int,var
#comfunc global ITPhone_get_Terminals                13 sptr,var
#comfunc global ITPhone_EnumerateTerminals           14 sptr,sptr
#comfunc global ITPhone_get_ButtonMode               15 int,var
#comfunc global ITPhone_put_ButtonMode               16 int,int
#comfunc global ITPhone_get_ButtonFunction           17 int,var
#comfunc global ITPhone_put_ButtonFunction           18 int,int
#comfunc global ITPhone_get_ButtonText               19 int,var
#comfunc global ITPhone_put_ButtonText               20 int,wstr
#comfunc global ITPhone_get_ButtonState              21 int,var
#comfunc global ITPhone_get_HookSwitchState          22 int,var
#comfunc global ITPhone_put_HookSwitchState          23 int,int
#comfunc global ITPhone_put_RingMode                 24 int
#comfunc global ITPhone_get_RingMode                 25 var
#comfunc global ITPhone_put_RingVolume               26 int
#comfunc global ITPhone_get_RingVolume               27 var
#comfunc global ITPhone_get_Privilege                28 var
#comfunc global ITPhone_GetPhoneCapsBuffer           29 int,var,var
#comfunc global ITPhone_get_PhoneCapsBuffer          30 int,var
#comfunc global ITPhone_get_LampMode                 31 int,var
#comfunc global ITPhone_put_LampMode                 32 int,int
#comfunc global ITPhone_get_Display                  33 var
#comfunc global ITPhone_SetDisplay                   34 int,int,wstr
#comfunc global ITPhone_get_PreferredAddresses       35 var
#comfunc global ITPhone_EnumeratePreferredAddresses  36 sptr
#comfunc global ITPhone_DeviceSpecific               37 var,int
#comfunc global ITPhone_DeviceSpecificVariant        38 int
#comfunc global ITPhone_NegotiateExtVersion          39 int,int,var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。