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

ITDirectory

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

メソッド 14

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

vtbl 7 HRESULT get_DirectoryType(DIRECTORY_TYPE* pDirectoryType)
pDirectoryTypeDIRECTORY_TYPE*outディレクトリの種別を示すDIRECTORY_TYPE値(ILS/ADなど)を受け取る出力先。
vtbl 8 HRESULT get_DisplayName(LPWSTR* pName)
pNameLPWSTR*outディレクトリの表示名を表すワイド文字列を受け取る出力先。
vtbl 9 HRESULT get_IsDynamic(VARIANT_BOOL* pfDynamic)
pfDynamicVARIANT_BOOL*outディレクトリが動的かどうかを示すVARIANT_BOOL値を受け取る出力先。
vtbl 10 HRESULT get_DefaultObjectTTL(INT* pTTL)
pTTLINT*outオブジェクトの既定の生存時間(TTL)を秒単位で受け取る出力先。
vtbl 11 HRESULT put_DefaultObjectTTL(INT TTL)
TTLINTin設定するオブジェクトの既定の生存時間(TTL)を秒単位で指定する。
vtbl 12 HRESULT EnableAutoRefresh(VARIANT_BOOL fEnable)
fEnableVARIANT_BOOLin自動再登録を有効にするかを指定するVARIANT_BOOL値(VARIANT_TRUEで有効)。
vtbl 13 HRESULT Connect(VARIANT_BOOL fSecure)
fSecureVARIANT_BOOLinセキュア(認証付き)接続を行うかを指定するVARIANT_BOOL値。
vtbl 14 HRESULT Bind(LPWSTR pDomainName, LPWSTR pUserName, LPWSTR pPassword, INT lFlags)
pDomainNameLPWSTRinバインド先のドメイン名を表すワイド文字列。
pUserNameLPWSTRin認証に使用するユーザー名を表すワイド文字列。
pPasswordLPWSTRin認証に使用するパスワードを表すワイド文字列。
lFlagsINTinバインド動作を制御するフラグを指定するINT値。
vtbl 15 HRESULT AddDirectoryObject(ITDirectoryObject* pDirectoryObject)
pDirectoryObjectITDirectoryObject*inディレクトリへ追加する対象オブジェクトを指すITDirectoryObjectポインタ。
vtbl 16 HRESULT ModifyDirectoryObject(ITDirectoryObject* pDirectoryObject)
pDirectoryObjectITDirectoryObject*inディレクトリ上で更新する対象オブジェクトを指すITDirectoryObjectポインタ。
vtbl 17 HRESULT RefreshDirectoryObject(ITDirectoryObject* pDirectoryObject)
pDirectoryObjectITDirectoryObject*inディレクトリ上で再登録(TTL更新)する対象オブジェクトを指すITDirectoryObjectポインタ。
vtbl 18 HRESULT DeleteDirectoryObject(ITDirectoryObject* pDirectoryObject)
pDirectoryObjectITDirectoryObject*inディレクトリから削除する対象オブジェクトを指すITDirectoryObjectポインタ。
vtbl 19 HRESULT get_DirectoryObjects(DIRECTORY_OBJECT_TYPE DirectoryObjectType, LPWSTR pName, VARIANT* pVariant)
DirectoryObjectTypeDIRECTORY_OBJECT_TYPEin取得対象とするオブジェクト種別を示すDIRECTORY_OBJECT_TYPE値。
pNameLPWSTRin絞り込みに用いるオブジェクト名を表すワイド文字列。全件取得時はNULL可。
pVariantVARIANT*out条件に合致したディレクトリオブジェクトのコレクションを保持するVARIANTを受け取る出力先。
vtbl 20 HRESULT EnumerateDirectoryObjects(DIRECTORY_OBJECT_TYPE DirectoryObjectType, LPWSTR pName, IEnumDirectoryObject** ppEnumObject)
DirectoryObjectTypeDIRECTORY_OBJECT_TYPEin列挙対象とするオブジェクト種別を示すDIRECTORY_OBJECT_TYPE値。
pNameLPWSTRin絞り込みに用いるオブジェクト名を表すワイド文字列。全件列挙時はNULL可。
ppEnumObjectIEnumDirectoryObject**out条件に合致したオブジェクトを列挙するIEnumDirectoryObjectを受け取る出力先。

HSP用 COM定義

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

出力引数:
#define global IID_ITDirectory "{34621D6C-6CFF-11D1-AFF7-00C04FC31FEE}"
#usecom global ITDirectory IID_ITDirectory "{}"
#comfunc global ITDirectory_get_DirectoryType          7 var
#comfunc global ITDirectory_get_DisplayName            8 var
#comfunc global ITDirectory_get_IsDynamic              9 var
#comfunc global ITDirectory_get_DefaultObjectTTL       10 var
#comfunc global ITDirectory_put_DefaultObjectTTL       11 int
#comfunc global ITDirectory_EnableAutoRefresh          12 int
#comfunc global ITDirectory_Connect                    13 int
#comfunc global ITDirectory_Bind                       14 wstr,wstr,wstr,int
#comfunc global ITDirectory_AddDirectoryObject         15 sptr
#comfunc global ITDirectory_ModifyDirectoryObject      16 sptr
#comfunc global ITDirectory_RefreshDirectoryObject     17 sptr
#comfunc global ITDirectory_DeleteDirectoryObject      18 sptr
#comfunc global ITDirectory_get_DirectoryObjects       19 int,wstr,var
#comfunc global ITDirectory_EnumerateDirectoryObjects  20 int,wstr,sptr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※ハンドル/void*等の不透明ポインタは IronHSP では intptr 指定が可能。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。