ホーム › Devices.Tapi › ITMSPAddress
ITMSPAddress
COMメソッド 6
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
| hEvent | INT* | in | TAPIへイベント通知に使用するイベントハンドルを渡すポインタ(INT*としてHANDLEを表す)。 |
vtbl 4 HRESULT Shutdown()
vtbl 5 HRESULT CreateMSPCall(INT* hCall, DWORD dwReserved, DWORD dwMediaType, IUnknown* pOuterUnknown, IUnknown** ppStreamControl)
| hCall | INT* | in | 対象通話を識別するコールハンドルへのポインタ(INT*としてMSP_HANDLEを表す)。 |
| dwReserved | DWORD | in | 予約済みパラメータ。通常は0を指定する。 |
| dwMediaType | DWORD | in | 通話で扱うメディア種別(TAPIMEDIATYPE_*)を指定するDWORD値。 |
| pOuterUnknown | IUnknown* | inoptional | アグリゲーション用の外部IUnknownポインタ。集約しない場合はNULL可。 |
| ppStreamControl | IUnknown** | out | 生成されたMSP通話のストリーム制御IUnknownを受け取る出力先。 |
| pStreamControl | IUnknown* | inoptional | 終了する対象MSP通話のストリーム制御IUnknownポインタ。 |
| pMSPCall | IUnknown* | inoptional | データの宛先となるMSP通話オブジェクトを指すIUnknownポインタ。 |
| pBuffer | BYTE* | in | TSPから受信したデータを格納したバイトバッファへのポインタ。 |
| dwSize | DWORD | in | pBufferに格納されたデータのサイズをバイト単位で指定するDWORD値。 |
| pdwSize | DWORD* | inout | 入力時はpEventBufferのサイズ、出力時は実際のイベントデータサイズ(バイト)を受け渡すポインタ。 |
| pEventBuffer | BYTE* | inout | イベントデータを書き込む出力バッファへのポインタ。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_ITMSPAddress "{EE3BD600-3868-11D2-A045-00C04FB6809F}" #usecom global ITMSPAddress IID_ITMSPAddress "{}" #comfunc global ITMSPAddress_Initialize 3 var #comfunc global ITMSPAddress_Shutdown 4 #comfunc global ITMSPAddress_CreateMSPCall 5 var,int,int,sptr,sptr #comfunc global ITMSPAddress_ShutdownMSPCall 6 sptr #comfunc global ITMSPAddress_ReceiveTSPData 7 sptr,var,int #comfunc global ITMSPAddress_GetEvent 8 var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。#define global IID_ITMSPAddress "{EE3BD600-3868-11D2-A045-00C04FB6809F}" #usecom global ITMSPAddress IID_ITMSPAddress "{}" #comfunc global ITMSPAddress_Initialize 3 sptr #comfunc global ITMSPAddress_Shutdown 4 #comfunc global ITMSPAddress_CreateMSPCall 5 sptr,int,int,sptr,sptr #comfunc global ITMSPAddress_ShutdownMSPCall 6 sptr #comfunc global ITMSPAddress_ReceiveTSPData 7 sptr,sptr,int #comfunc global ITMSPAddress_GetEvent 8 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。