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

ITAddressTranslation

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

公式ドキュメント

ITAddressTranslation インターフェイスは、発信先アドレスを別の形式に変換するためのメソッドを提供します。たとえば、アプリケーションはコール(通話)を発信する前に、アドレスを正規形式からダイヤル可能な形式に変換する必要がある場合があります。

メソッド 6

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

vtbl 7 HRESULT TranslateAddress(LPWSTR pAddressToTranslate, INT lCard, INT lTranslateOptions, ITAddressTranslationInfo** ppTranslated)

TranslateAddress メソッドは、アドレス変換情報インターフェイスを作成します。

pAddressToTranslateLPWSTRin変換が必要なアドレスを格納した BSTR へのポインター。
lCardINTin変換に使用するコーリングカード。
lTranslateOptionsINTin変換オプションを示す値。 LINETRANSLATEOPTION__Constants を参照してください。
ppTranslatedITAddressTranslationInfo**out新しく作成された ITAddressTranslationInfo インターフェイスへのポインター。

戻り値

このメソッドは次のいずれかの値を返します。

意味
S_OK
メソッドは成功しました。
E_POINTER
ppTranslated パラメーターが有効なポインターではありません。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
E_UNEXPECTED
不明な理由でメソッドが失敗しました。
E_INVALIDARG
lTranslateOptions の値が有効ではありません。
TAPI_E_NODRIVER
このアドレスには関連付けられた TSP がありません。
TAPI_E_REGISTRY_SETTING_CORRUPT
レジストリが破損しています。
TAPI_E_OPERATIONFAILED
TAPI でメソッドが失敗しました。
TAPI_E_RESOURCEUNAVAIL
TSP が利用できません。
TAPI_E_INVALCARD
カード番号が有効ではありません。

解説(Remarks)

アプリケーションは、pAddressToTranslate のメモリを確保するために SysAllocString を使用し、変数が不要になったときにメモリを解放するために SysFreeString を使用する必要があります。

TranslateAddress メソッドは、TAPI 2.1 の LineTranslateAddress 関数の COM ラッパーです。

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

vtbl 8 HRESULT TranslateDialog(INT_PTR hwndOwner, LPWSTR pAddressIn)

TranslateDialog メソッドは、アプリケーションモーダルのダイアログボックスを表示します。このダイアログボックスでは、これからダイヤルしようとする電話番号の現在のロケーションを変更したり、ロケーションやコーリングカードのパラメーターを調整したり、その結果を確認したりできます。

hwndOwnerINT_PTRinダイアログボックスを関連付けるウィンドウへのハンドル。NULL 値を指定すると、関数の実行中に作成されるウィンドウにオーナーウィンドウを持たせないことを示します。
pAddressInLPWSTRinロケーションパラメーターに対するユーザーの変更の結果を示すために使用される電話番号を格納した BSTR へのポインター。番号は正規形式である必要があります。このポインターは NULL のままにすることができ、その場合はダイアログボックスの電話番号部分は表示されません。pAddressIn パラメーターにサブアドレスや名前フィールド、または最初のアドレスと ASCII の CR および LF 文字で区切られた追加のアドレスが含まれている場合、ダイアログボックスでは最初のアドレスのみが使用されます。

戻り値

このメソッドは次のいずれかの値を返します。

リターンコード 説明
S_OK
メソッドは成功しました。
E_INVALIDARG
hwndOwner パラメーターが有効なハンドルではないか、pAddressIn パラメーターが有効な電話番号ではありません。
E_POINTER
pAddressIn パラメーターが有効なポインターではありません。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
E_UNEXPECTED
予期しないエラーが発生しました。
TAPI_E_REGISTRY_SETTING_CORRUPT
アドレス変換のレジストリ設定が有効ではありません。
TAPI_E_NODRIVER
このアドレスの変換を実行できる TSP がありません。
TAPI_E_INUSE
ダイアログは既に開かれており、使用中です。
TAPI_E_INVALADDRESS
現在のアドレスが有効ではありません。
TAPI_E_OPERATIONFAILED
TAPI は操作を完了できませんでした。

解説(Remarks)

アプリケーションは、pAddressIn のメモリを確保するために SysAllocString を使用し、変数が不要になったときにメモリを解放するために SysFreeString を使用する必要があります。

TranslateDialog メソッドは、TAPI 2.1 の LineTranslateDialog 関数の COM ラッパーです。

vtbl 9 HRESULT EnumerateLocations(IEnumLocation** ppEnumLocation)

EnumerateLocations メソッドは、現在利用可能なアドレスのロケーションを列挙します。このメソッドは C および C++ アプリケーション向けに提供されています。Visual Basic で記述されたものなどのオートメーションクライアントアプリケーションは、get_Locations メソッドを使用する必要があります。

ppEnumLocationIEnumLocation**out作成された IEnumLocation オブジェクトへのポインター。

戻り値

このメソッドは次のいずれかの値を返します。

意味
S_OK
メソッドは成功しました。
E_POINTER
ppEnumLocations パラメーターが有効なポインターではありません。
E_OUTOFMEMORY
オブジェクトを作成するのに十分なメモリがありません。

解説(Remarks)

EnumerateLocations メソッドは、TAPI 2.1 の LineGetTranslateCaps 関数の COM ラッパーであり、その関数が返す LINETRANSLATECAPS 構造体からロケーション情報を取得します。

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

vtbl 10 HRESULT get_Locations(VARIANT* pVariant)

get_Locations メソッドは、現在利用可能なアドレスのロケーションのコレクションを作成します。このメソッドは、Visual Basic で記述されたものなどのオートメーションクライアントアプリケーション向けに提供されています。C および C++ アプリケーションは、EnumerateLocations メソッドを使用する必要があります。

pVariantVARIANT*outITLocationInfo インターフェイスポインター(ロケーションオブジェクト)の ITCollection を格納した VARIANT へのポインター。

戻り値

このメソッドは次のいずれかの値を返します。

意味
S_OK
メソッドは成功しました。
E_POINTER
pVariant パラメーターが有効なポインターではありません。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。

解説(Remarks)

get_Locations メソッドは、TAPI 2.1 の LineGetTranslateCaps 関数の COM ラッパーであり、その関数が返す LINETRANSLATECAPS 構造体からロケーション情報を取得します。

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

vtbl 11 HRESULT EnumerateCallingCards(IEnumCallingCard** ppEnumCallingCard)

EnumerateCallingCards メソッドは、アドレスに関連付けられたコーリングカードを列挙します。このメソッドは C および C++ アプリケーション向けに提供されています。Visual Basic で記述されたものなどのオートメーションクライアントアプリケーションは、get_CallingCards メソッドを使用する必要があります。

ppEnumCallingCardIEnumCallingCard**outIEnumCallingCard インターフェイスへのポインター。

戻り値

このメソッドは次のいずれかの値を返します。

意味
S_OK
メソッドは成功しました。
E_POINTER
ppEnumCallingCard パラメーターが有効なポインターではありません。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。

解説(Remarks)

このメソッドは、TAPI 2.1 の LineGetTranslateCaps 関数の COM ラッパーであり、その関数が返す LINETRANSLATECAPS 構造体からコーリングカード情報を取得します。

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

vtbl 12 HRESULT get_CallingCards(VARIANT* pVariant)

get_CallingCards メソッドは、アドレスに関連付けられたコーリングカードのコレクションを作成します。

pVariantVARIANT*outITCallingCard インターフェイスポインターの ITCollection を格納した VARIANT へのポインター。

戻り値

このメソッドは次のいずれかの値を返します。

意味
S_OK
メソッドは成功しました。
E_POINTER
pVariant パラメーターが有効なポインターではありません。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。

解説(Remarks)

get_CallingCards メソッドは、TAPI 2.2 の LineGetTranslateCaps 関数の COM ラッパーであり、その関数が返す LINETRANSLATECAPS 構造体からコーリングカード情報を取得します。

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

出典・ライセンス: 上記「公式ドキュメント」の内容は 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_ITAddressTranslation "{0C4D8F03-8DDB-11D1-A09E-00805FC147D3}"
#usecom global ITAddressTranslation IID_ITAddressTranslation "{}"
#comfunc global ITAddressTranslation_TranslateAddress       7 wstr,int,int,sptr
#comfunc global ITAddressTranslation_TranslateDialog        8 sptr,wstr
#comfunc global ITAddressTranslation_EnumerateLocations     9 sptr
#comfunc global ITAddressTranslation_get_Locations          10 var
#comfunc global ITAddressTranslation_EnumerateCallingCards  11 sptr
#comfunc global ITAddressTranslation_get_CallingCards       12 var
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。