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

ITDirectoryObject

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

公式ドキュメント

ITDirectoryObject インターフェイスは、ITDirectory インターフェイスを使用して追加および削除できるすべてのオブジェクトがサポートする共通インターフェイスです。

メソッド 7

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

vtbl 7 HRESULT get_ObjectType(DIRECTORY_OBJECT_TYPE* pObjectType)

get_ObjectType メソッドは、オブジェクトの DIRECTORY_OBJECT_TYPE 記述子を取得します。

pObjectTypeDIRECTORY_OBJECT_TYPE*outディレクトリオブジェクト型の記述子へのポインター。

戻り値

このメソッドは、これらの値のいずれかを返すことがあります。

戻り値コード 説明
S_OK
メソッドは成功しました。
E_POINTER
無効なポインターです。
vtbl 8 HRESULT get_Name(LPWSTR* ppName)

get_Name メソッドは、ディレクトリオブジェクトの名前を取得します。

ppNameLPWSTR*outディレクトリ名の BSTR 表現へのポインター。

戻り値

このメソッドは、これらの値のいずれかを返すことがあります。

戻り値コード 説明
S_OK
メソッドは成功しました。
E_POINTER
無効なポインターです。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。

解説(Remarks)

アプリケーションは、ppName パラメーターに割り当てられたメモリを解放するために SysFreeString を使用する必要があります。

vtbl 9 HRESULT put_Name(LPWSTR pName)

put_Name メソッドは、ディレクトリオブジェクトの名前を設定します。

pNameLPWSTRinディレクトリ名の BSTR 表現へのポインター。

戻り値

このメソッドは、これらの値のいずれかを返すことがあります。

戻り値コード 説明
S_OK
メソッドは成功しました。
E_POINTER
pName パラメーターは有効なポインターではありません。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
E_FAIL
不明なエラーです。
E_NOTIMPL
このメソッドはまだ実装されていません。

解説(Remarks)

変更内容は、 ITDirectory::ModifyDirectoryObject メソッドが呼び出されるまでサーバーには反映されません。

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

この関数はデータを暗号化されていない形式でネットワーク上に送信することがあります。そのため、ネットワークを盗聴している者がデータを読み取れる可能性があります。このメソッドを使用する前に、データを平文で送信することのセキュリティリスクを考慮する必要があります。

vtbl 10 HRESULT get_DialableAddrs(INT dwAddressType, VARIANT* pVariant)

get_DialableAddrs メソッドは、指定された型のダイヤル可能なアドレスをすべてディレクトリから取得します。このメソッドは EnumerateDialableAddrs と同じ機能を実行しますが、Visual Basic などのスクリプト言語で使用されます。

dwAddressTypeINTinアドレス型を示す値。
pVariantVARIANT*outそれぞれがダイヤル可能なアドレスを含む BSTR 文字列の ITCollection を格納した VARIANT へのポインター。

戻り値

このメソッドは、これらの値のいずれかを返すことがあります。

意味
S_OK
メソッドは成功しました。
E_POINTER
無効なポインターです。
ERROR
メソッドが失敗しました。

解説(Remarks)

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

vtbl 11 HRESULT EnumerateDialableAddrs(DWORD dwAddressType, IEnumDialableAddrs** ppEnumDialableAddrs)

EnumerateDialableAddrs メソッドは、指定された型のダイヤル可能なアドレスすべてを列挙する列挙子をディレクトリから作成します。

dwAddressTypeDWORDinアドレス型を示す値。
ppEnumDialableAddrsIEnumDialableAddrs**outIEnumDialableAddrs インターフェイスへのポインター。

戻り値

このメソッドは、これらの値のいずれかを返すことがあります。

意味
S_OK
メソッドは成功しました。
E_POINTER
無効なポインターです。
ERROR
メソッドが失敗しました。

解説(Remarks)

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

vtbl 12 HRESULT get_SecurityDescriptor(IDispatch** ppSecDes)

get_SecurityDescriptor メソッドは、現在のセキュリティ権限を記述するディレクトリサービスのセキュリティ記述子オブジェクトに対する IDispatch ポインターを取得します。

ppSecDesIDispatch**outディレクトリサービスのセキュリティ記述子オブジェクトに対する IDispatch ポインター。

戻り値

このメソッドは、これらの値のいずれかを返すことがあります。

戻り値コード 説明
S_OK
メソッドは成功しました。
E_POINTER
ppSecDes パラメーターは有効なポインターではありません。
E_FAIL
セキュリティ記述子の初期化に失敗しました。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。

解説(Remarks)

セキュリティ記述子が設定されていない場合、このメソッドは ppSecDesNULL に設定します。

vtbl 13 HRESULT put_SecurityDescriptor(IDispatch* pSecDes)

put_SecurityDescriptor メソッドは、現在のセキュリティ権限を記述するディレクトリサービスのセキュリティ記述子オブジェクトに対する IDispatch ポインターを設定します。

pSecDesIDispatch*inディレクトリサービスのセキュリティ記述子オブジェクトに対する IDispatch ポインター。

戻り値

このメソッドは、これらの値のいずれかを返すことがあります。

戻り値コード 説明
S_OK
メソッドは成功しました。
E_POINTER
pSecDes パラメーターは有効なポインターではありません。
E_OUTOFMEMORY
操作を実行するのに十分なメモリがありません。
E_FAIL
不明なエラーです。
E_NOTIMPL
このメソッドはまだ実装されていません。

解説(Remarks)

変更内容は、 ITDirectory::ModifyDirectoryObject メソッドが呼び出されるまでサーバーには反映されません。

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