ITBasicCallControl
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
ITBasicCallControl インターフェイスは、アプリケーションがコールオブジェクトに対して接続、応答、および基本的なテレフォニー操作を実行するために使用します。
メソッド 18
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
Connect メソッドは、発信コールの接続を完了しようとします。
| fSync | VARIANT_BOOL | in | 接続を同期的に実行する (VARIANT_TRUE) か、非同期的に実行する (VARIANT_FALSE) かを示すブール値。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。 | |
| 操作を実行するのに十分なメモリがありません。 |
解説(Remarks)
コールが非同期の場合、アプリケーションは ITCallNotificationEvent アウトゴーイングインターフェイスを通じて、コールの進行状況に関する情報を受け取ります。アプリケーションは Connect を呼び出す前に、このアウトゴーイングインターフェイスを登録しておく必要があります。 Connect は S_OK を返す場合がありますが、実際の接続は失敗することがあります (その場合、アプリケーションはアウトゴーイングインターフェイスを通じて通知されます)。
コールが同期の場合、このメソッドはコールが接続状態になるか失敗するまで制御を返しません。
Answer メソッドは、着信コールに応答します。このメソッドは、コール状態が CS_OFFERING である場合にのみ成功します。
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 操作を実行するのに十分なメモリがありません。 | |
| コール状態が CS_OFFERING ではありませんでした。 | |
| TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。 |
Disconnect メソッドは、コールを切断します。メソッドが正常に完了すると、コール状態は CS_DISCONNECTED に遷移します。
| code | DISCONNECT_CODE | in | コール切断の理由を示す DISCONNECT_CODE。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| コール状態が CS_IDLE であるか、TAPI 3 DLL がコールの有効なハンドルを取得できませんでした。 | |
| 操作を実行するのに十分なメモリがありません。 | |
| TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。 |
Hold メソッドは、コールを保留にする、または保留を解除します。
| fHold | VARIANT_BOOL | in | fHold が VARIANT_TRUE でメソッドが成功すると、 コール状態 は CS_HOLD 状態に遷移します。fHold が VARIANT_FALSE の場合、コール状態は CS_CONNECTED に遷移します。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 操作を実行するのに十分なメモリがありません。 | |
| このインターフェイスに関連付けられたコールは既に存在しません。 | |
| TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。 |
解説(Remarks)
一部のサービスプロバイダーは、ストリーミングがアクティブな間はこの操作をサポートしません。アプリケーションは、操作の前に ITStream::StopStream または ITSubStream::StopSubStream を呼び出し、操作の完了後に ITStream::StartStream または ITSubStream::StartSubStream を呼び出す必要がある場合があります。
HandoffDirect メソッドは、コールを別のアプリケーションにハンドオフします。これは、アプリケーションがそのコールの所有権を必要としなくなったことを示します。
| pApplicationName | LPWSTR | in | コールのハンドオフ先となる特定のアプリケーション名を格納した BSTR へのポインター。フルパス名または実行ファイル名を指定できます。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 操作を実行するのに十分なメモリがありません。 | |
| pApplicationName パラメーターが有効なポインターではありません。 |
解説(Remarks)
一部のサービスプロバイダーは、ストリーミングがアクティブな間はこの操作をサポートしません。アプリケーションは、操作の前に ITStream::StopStream または ITSubStream::StopSubStream を呼び出し、操作の完了後に ITStream::StartStream または ITSubStream::StartSubStream を呼び出す必要がある場合があります。
受信側のアプリケーションが、コールに関係するメディアタイプに対して回線を開いていない場合、ハンドオフは失敗します。TAPI がコールのハンドオフに失敗した場合、TAPI は Disconnect を呼び出します。
アプリケーションは、pApplicationName パラメーターのメモリを割り当てるために SysAllocString を使用し、変数が不要になったときにメモリを解放するために SysFreeString を使用する必要があります。
HandoffIndirect メソッドは、コールのメディアタイプに基づいて、コールを別のアプリケーションにハンドオフします。
| lMediaType | INT | in | 転送先の メディアタイプ。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| lMediaType パラメーターが有効ではありません。 | |
| 操作を実行するのに十分なメモリがありません。 |
解説(Remarks)
一部のサービスプロバイダーは、ストリーミングがアクティブな間はこの操作をサポートしません。アプリケーションは、操作の前に ITStream::StopStream または ITSubStream::StopSubStream を呼び出し、操作の完了後に ITStream::StartStream または ITSubStream::StartSubStream を呼び出す必要がある場合があります。
TAPI がコールのハンドオフに失敗した場合、TAPI は Disconnect を呼び出します。
Conference メソッドは、現在のコールが参加している会議に、相談コール (consultation call) を追加します。関連する ITCallHub オブジェクトが存在しない場合は、新たに作成されます。
| pCall | ITBasicCallControl* | in | 相談コールの ITBasicCallControl インターフェイスへのポインター。 |
| fSync | VARIANT_BOOL | in | コールを同期的に (VARIANT_TRUE) 会議に追加するか、非同期的に (VARIANT_FALSE) 追加するかを示します。詳細については Connect を参照してください。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 操作を実行するのに十分なメモリがありません。 | |
| pCall パラメーターが有効なポインターではありません。 | |
| pCall パラメーターが有効なインターフェイスを指していません。 | |
| TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。 |
解説(Remarks)
一部のサービスプロバイダーは、ストリーミングがアクティブな間はこの操作をサポートしません。アプリケーションは、操作の前に ITStream::StopStream または ITSubStream::StopSubStream を呼び出し、操作の完了後に ITStream::StartStream または ITSubStream::StartSubStream を呼び出す必要がある場合があります。
相談コール (pCall) は ITAddress::CreateCall によって作成されます。接続は Finish メソッドを呼び出すことで完了します。このメソッドの使用例については、 Create a Simple Conference を参照してください。
Conference が呼び出されたときに相談コールが CONNECTED 状態でない場合、TAPI は (相談コールが最初に ITAddress::CreateCall で作成されたときに指定された) 宛先アドレスを使用して、その時点で接続を試みます。元のコールの宛先アドレスが NULL であった場合、Conference は E_INVALIDARG で失敗します。
Transfer メソッドは、現在のコールを宛先アドレスに転送します。
| pCall | ITBasicCallControl* | in | 転送のために作成された相談コールの ITBasicCallControl インターフェイスへのポインター。 |
| fSync | VARIANT_BOOL | in | メソッドを同期的に (VARIANT_TRUE) 完了するか、非同期的に (VARIANT_FALSE) 完了するかを示します。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 値 | 意味 |
|---|---|
| メソッドは成功しました。 | |
| pCall パラメーターが有効なコールを指していません。 | |
| 転送はサポートされていません。 | |
| 操作を実行するのに十分なメモリがありません。 | |
| TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。 |
解説(Remarks)
一部のサービスプロバイダーは、ストリーミングがアクティブな間はこの操作をサポートしません。アプリケーションは、操作の前に ITStream::StopStream または ITSubStream::StopSubStream を呼び出し、操作の完了後に ITStream::StartStream または ITSubStream::StartSubStream を呼び出す必要がある場合があります。
コール転送では、転送の準備として相談コールを設定します。pCall は、相談コールの作成後に ITAddress::CreateCall によって返される ITBasicCallControl ポインターです。 ITBasicCallControl::Finish (FM_ASTRANSFER) が転送を完了します。
Transfer が呼び出されたときに相談コールが CONNECTED 状態でない場合、TAPI は (相談コールが最初に ITAddress::CreateCall で作成されたときに指定された) 宛先アドレスを使用して、その時点で接続を試みます。元のコールの宛先アドレスが NULL であった場合、 Transfer は E_INVALIDARG で失敗します。
BlindTransfer メソッドは、指定したコールを指定した宛先アドレスへ、ブラインド転送 (単一ステップ転送) します。アプリケーションはそのコールの所有者でなければなりません。転送が成功すると、コール状態は CS_DISCONNECTED に遷移します。
| pDestAddress | LPWSTR | in | 転送先の宛先アドレスを格納した BSTR へのポインター。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| pDestAddress が有効なポインターではありません。 | |
| ブラインド転送はサポートされていません。 | |
| 操作を実行するのに十分なメモリがありません。 | |
| TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。 |
解説(Remarks)
一部のサービスプロバイダーは、ストリーミングがアクティブな間はこの操作をサポートしません。アプリケーションは、操作の前に ITStream::StopStream または ITSubStream::StopSubStream を呼び出し、操作の完了後に ITStream::StartStream または ITSubStream::StartSubStream を呼び出す必要がある場合があります。
アプリケーションは、pDestAddress パラメーターのメモリを割り当てるために SysAllocString を使用し、変数が不要になったときにメモリを解放するために SysFreeString を使用する必要があります。
場合によっては、適切な形式の pDestAddress 文字列を取得するために、アプリケーションはアドレス変換インターフェイス ( ITAddressTranslation および ITAddressTranslationInfo) を使用する必要がある場合があります。
SwapHold メソッドは、(アクティブな) コールを、保留中の指定したコールと切り替えます。
| pCall | ITBasicCallControl* | in | アクティブにする、現在保留中のコール。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| この操作はサポートされていません。 | |
| pCall パラメーターが有効なポインターではありません。 | |
| pCall パラメーターが現在存在するコールを表していません。 | |
| 操作を実行するのに十分なメモリがありません。 | |
|
操作は失敗しました。 |
| TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。 |
解説(Remarks)
一部のサービスプロバイダーは、ストリーミングがアクティブな間はこの操作をサポートしません。アプリケーションは、操作の前に ITStream::StopStream または ITSubStream::StopSubStream を呼び出し、操作の完了後に ITStream::StartStream または ITSubStream::StartSubStream を呼び出す必要がある場合があります。
ParkDirect メソッドは、指定したアドレスにコールをパークします。
| pParkAddress | LPWSTR | in | コールのパーク先となるアドレスを格納した BSTR へのポインター。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| pParkAddress パラメーターが有効なポインターではありません。 | |
| パークはサポートされていません。 | |
| pParkAddress パラメーターが有効ではありません。 | |
| 操作を実行するのに十分なメモリがありません。 | |
| TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。 |
解説(Remarks)
一部のサービスプロバイダーは、ストリーミングがアクティブな間はこの操作をサポートしません。アプリケーションは、操作の前に ITStream::StopStream または ITSubStream::StopSubStream を呼び出し、操作の完了後に ITStream::StartStream または ITSubStream::StartSubStream を呼び出す必要がある場合があります。
ダイレクトパークでは、アプリケーションがコールをパークするアドレスを決定します。 ParkInDirect では、交換機 (スイッチ) がアドレスを決定し、それをアプリケーションに提供します。いずれの場合も、パークされたコールはこのアドレスを指定することでパーク解除できます。
パークされたコールは、正常にパークされた後、切断状態になります。
一部の交換機は、コールが長時間パークされたままになっていると、ユーザーにリマインダーを通知できます。アプリケーションには、コール理由がリマインダーに設定された着信コールが見えます。
アプリケーションは、pParkAddress パラメーターのメモリを割り当てるために SysAllocString を使用し、変数が不要になったときにメモリを解放するために SysFreeString を使用する必要があります。
ParkIndirect メソッドは、コールをパークし、パークされたアドレスを返します。
| ppNonDirAddress | LPWSTR* | out | コールがパークされたアドレスの BSTR 表現へのポインター。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ppNonDirAddress パラメーターが有効なポインターではありません。 | |
| パークはサポートされていません。 | |
| ppNonDirAddress パラメーターが有効ではありません。 | |
| 操作を実行するのに十分なメモリがありません。 | |
| TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。 |
解説(Remarks)
一部のサービスプロバイダーは、ストリーミングがアクティブな間はこの操作をサポートしません。アプリケーションは、操作の前に ITStream::StopStream または ITSubStream::StopSubStream を呼び出し、操作の完了後に ITStream::StartStream または ITSubStream::StartSubStream を呼び出す必要がある場合があります。
ParkDirect では、アプリケーションがコールをパークするアドレスを決定します。ノンダイレクトパークでは、交換機 (スイッチ) がアドレスを決定し、それをアプリケーションに提供します。いずれの場合も、パークされたコールはこのアドレスを指定することでパーク解除できます。
パークされたコールは、正常にパークされた後、切断状態になります。
一部の交換機は、コールが長時間パークされたままになっていると、ユーザーにリマインダーを通知できます。アプリケーションには、コール理由がリマインダーに設定された着信コールが見えます。
アプリケーションは、ppNonDirAddress パラメーターに割り当てられたメモリを解放するために SysFreeString を使用する必要があります。
Unpark メソッドは、パークからコールを取り出します。
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 値 | 意味 |
|---|---|
| メソッドは成功しました。 | |
| パーク操作はサポートされていません。 | |
| コール状態は CS_IDLE でなければなりません。 | |
| TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。 | |
| 操作を実行するのに十分なメモリがありません。 |
解説(Remarks)
パークされたコールをパーク解除するには、コールの現在のパーク先を宛先アドレスとして指定して CreateCall を呼び出す必要があります。以下の例を参照してください。
例
// 注: この呼び出しで使用されるパラメーターは、コードの別の場所から取得されます。
HRESULT hr = pAddress->CreateCall( bstrAddressToCall,
dwAddressType,
dwMediaTypes,
&pBasicCall
);
// ( hr != S_OK ) の場合は、ここでエラーを処理します。
// コールに適切なターミナルを選択してから、次を呼び出します:
pBasicCall->Unpark();
SetQOS メソッドは、コールのサービス品質 (QOS) レベルを設定します。
| lMediaType | INT | in | コールの メディアタイプ。 |
| ServiceLevel | QOS_SERVICE_LEVEL | in | コールに希望する QOS レベルを示す QOS_SERVICE_LEVEL 指標。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| lMediaType パラメーターが有効なメディアタイプではありません。 | |
| 操作を実行するのに十分なメモリがありません。 |
Pickup メソッドは、指定したグループ識別子で鳴動している (アラート中の) コールをピックアップします。
| pGroupID | LPWSTR | in | アラート中のステーションが属するグループ識別子を格納した BSTR へのポインター。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| ピックアップは成功しませんでした。 | |
| pGroupID パラメーターが有効なポインターではありません。 | |
| 操作を実行するのに十分なメモリがありません。 | |
| TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。 |
解説(Remarks)
アプリケーションは、pGroupID パラメーターのメモリを割り当てるために SysAllocString を使用し、変数が不要になったときにメモリを解放するために SysFreeString を使用する必要があります。
Dial メソッドは、指定したアドレスをダイヤルします。
| pDestAddress | LPWSTR | in | ダイヤルするアドレスの BSTR 表現へのポインター。形式は標準の ダイヤル可能なアドレス に準拠している必要があります。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| 値 | 意味 |
|---|---|
| メソッドは成功しました。 | |
| 操作を実行するのに十分なメモリがありません。 | |
| pDestAddress パラメーターが有効なポインターではありません。 | |
| TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。 |
解説(Remarks)
アプリケーションは、pDestAddress パラメーターのメモリを割り当てるために SysAllocString を使用し、変数が不要になったときにメモリを解放するために SysFreeString を使用する必要があります。
場合によっては、適切な形式の pDestAddress 文字列を取得するために、アプリケーションはアドレス変換インターフェイス ( ITAddressTranslation および ITAddressTranslationInfo) を使用する必要がある場合があります。
Dial メソッドは、コールがすでに存在するという点で ITAddress::CreateCall とは異なります。使用例としては、内線番号をダイヤルする場合が挙げられます。
Finish メソッドは、会議または転送を完了するために相談コールに対して呼び出されます。
| finishMode | FINISH_MODE | in | 完了するコールの種類を示す FINISH_MODE 指標 (FM_ASCONFERENCE など)。 |
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| コールが転送または会議としてフラグ付けされていません。 | |
| TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。 | |
| 操作を実行するのに十分なメモリがありません。 |
解説(Remarks)
一部のサービスプロバイダーは、ストリーミングがアクティブな間はこの操作をサポートしません。アプリケーションは、操作の前に ITStream::StopStream または ITSubStream::StopSubStream を呼び出し、操作の完了後に ITStream::StartStream または ITSubStream::StartSubStream を呼び出す必要がある場合があります。
RemoveFromConference メソッドは、コールが会議に参加している場合、その会議からコールを削除します。
戻り値
このメソッドは、次のいずれかの値を返すことがあります。
| リターンコード | 説明 |
|---|---|
| メソッドは成功しました。 | |
| 操作を実行するのに十分なメモリがありません。 | |
| TAPI 3 DLL がタイムアウトしたため、操作は失敗しました。タイムアウト間隔は 2 分です。 |
解説(Remarks)
一部のサービスプロバイダーは、ストリーミングがアクティブな間はこの操作をサポートしません。アプリケーションは、操作の前に ITStream::StopStream または ITSubStream::StopSubStream を呼び出し、操作の完了後に ITStream::StartStream または ITSubStream::StartSubStream を呼び出す必要がある場合があります。
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_ITBasicCallControl "{B1EFC389-9355-11D0-835C-00AA003CCABD}" #usecom global ITBasicCallControl IID_ITBasicCallControl "{}" #comfunc global ITBasicCallControl_Connect 7 int #comfunc global ITBasicCallControl_Answer 8 #comfunc global ITBasicCallControl_Disconnect 9 int #comfunc global ITBasicCallControl_Hold 10 int #comfunc global ITBasicCallControl_HandoffDirect 11 wstr #comfunc global ITBasicCallControl_HandoffIndirect 12 int #comfunc global ITBasicCallControl_Conference 13 sptr,int #comfunc global ITBasicCallControl_Transfer 14 sptr,int #comfunc global ITBasicCallControl_BlindTransfer 15 wstr #comfunc global ITBasicCallControl_SwapHold 16 sptr #comfunc global ITBasicCallControl_ParkDirect 17 wstr #comfunc global ITBasicCallControl_ParkIndirect 18 var #comfunc global ITBasicCallControl_Unpark 19 #comfunc global ITBasicCallControl_SetQOS 20 int,int #comfunc global ITBasicCallControl_Pickup 21 wstr #comfunc global ITBasicCallControl_Dial 22 wstr #comfunc global ITBasicCallControl_Finish 23 int #comfunc global ITBasicCallControl_RemoveFromConference 24 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_ITBasicCallControl "{B1EFC389-9355-11D0-835C-00AA003CCABD}" #usecom global ITBasicCallControl IID_ITBasicCallControl "{}" #comfunc global ITBasicCallControl_Connect 7 int #comfunc global ITBasicCallControl_Answer 8 #comfunc global ITBasicCallControl_Disconnect 9 int #comfunc global ITBasicCallControl_Hold 10 int #comfunc global ITBasicCallControl_HandoffDirect 11 wstr #comfunc global ITBasicCallControl_HandoffIndirect 12 int #comfunc global ITBasicCallControl_Conference 13 sptr,int #comfunc global ITBasicCallControl_Transfer 14 sptr,int #comfunc global ITBasicCallControl_BlindTransfer 15 wstr #comfunc global ITBasicCallControl_SwapHold 16 sptr #comfunc global ITBasicCallControl_ParkDirect 17 wstr #comfunc global ITBasicCallControl_ParkIndirect 18 sptr #comfunc global ITBasicCallControl_Unpark 19 #comfunc global ITBasicCallControl_SetQOS 20 int,int #comfunc global ITBasicCallControl_Pickup 21 wstr #comfunc global ITBasicCallControl_Dial 22 wstr #comfunc global ITBasicCallControl_Finish 23 int #comfunc global ITBasicCallControl_RemoveFromConference 24 ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。