Win32 API 日本語リファレンス
ホームNetworking.ActiveDirectory › IDirectorySchemaMgmt

IDirectorySchemaMgmt

COM
IID75db3b9c-a4d8-11d0-a79c-00c04fd8d5a8継承元IUnknown自前メソッド開始 vtbl3

メソッド 8

vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。

vtbl 3 HRESULT EnumAttributes(LPWSTR* ppszAttrNames, DWORD dwNumAttributes, ADS_ATTR_DEF** ppAttrDefinition, DWORD* pdwNumAttributes)
ppszAttrNamesLPWSTR*in列挙対象の属性名配列を指定する。NULLで全属性を列挙する。
dwNumAttributesDWORDinppszAttrNamesの要素数を指定する。
ppAttrDefinitionADS_ATTR_DEF**in取得した属性定義の配列を受け取る出力先。ADS_ATTR_DEF**で返る。
pdwNumAttributesDWORD*in返された属性定義の数を受け取る出力先。DWORD*で返る。
vtbl 4 HRESULT CreateAttributeDefinition(LPWSTR pszAttributeName, ADS_ATTR_DEF* pAttributeDefinition)
pszAttributeNameLPWSTRin新規作成する属性の名前をBSTRで指定する。
pAttributeDefinitionADS_ATTR_DEF*in作成する属性の定義(構文・範囲等)を指定する。ADS_ATTR_DEF*。
vtbl 5 HRESULT WriteAttributeDefinition(LPWSTR pszAttributeName, ADS_ATTR_DEF* pAttributeDefinition)
pszAttributeNameLPWSTRin更新対象の既存属性の名前をBSTRで指定する。
pAttributeDefinitionADS_ATTR_DEF*in上書きする属性定義を指定する。ADS_ATTR_DEF*。
vtbl 6 HRESULT DeleteAttributeDefinition(LPWSTR pszAttributeName)
pszAttributeNameLPWSTRinスキーマから削除する属性の名前をBSTRで指定する。
vtbl 7 HRESULT EnumClasses(LPWSTR* ppszClassNames, DWORD dwNumClasses, ADS_CLASS_DEF** ppClassDefinition, DWORD* pdwNumClasses)
ppszClassNamesLPWSTR*in列挙対象のクラス名配列を指定する。NULLで全クラスを列挙する。
dwNumClassesDWORDinppszClassNamesの要素数を指定する。
ppClassDefinitionADS_CLASS_DEF**in取得したクラス定義の配列を受け取る出力先。ADS_CLASS_DEF**で返る。
pdwNumClassesDWORD*in返されたクラス定義の数を受け取る出力先。DWORD*で返る。
vtbl 8 HRESULT WriteClassDefinition(LPWSTR pszClassName, ADS_CLASS_DEF* pClassDefinition)
pszClassNameLPWSTRin更新対象の既存クラスの名前をBSTRで指定する。
pClassDefinitionADS_CLASS_DEF*in上書きするクラス定義(必須属性等)を指定する。ADS_CLASS_DEF*。
vtbl 9 HRESULT CreateClassDefinition(LPWSTR pszClassName, ADS_CLASS_DEF* pClassDefinition)
pszClassNameLPWSTRin新規作成するクラスの名前をBSTRで指定する。
pClassDefinitionADS_CLASS_DEF*in作成するクラスの定義(必須属性等)を指定する。ADS_CLASS_DEF*。
vtbl 10 HRESULT DeleteClassDefinition(LPWSTR pszClassName)
pszClassNameLPWSTRinスキーマから削除するクラスの名前をBSTRで指定する。

HSP用 COM定義

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

出力引数:
#define global IID_IDirectorySchemaMgmt "{75DB3B9C-A4D8-11D0-A79C-00C04FD8D5A8}"
#usecom global IDirectorySchemaMgmt IID_IDirectorySchemaMgmt "{}"
#comfunc global IDirectorySchemaMgmt_EnumAttributes             3 var,int,var,var
#comfunc global IDirectorySchemaMgmt_CreateAttributeDefinition  4 wstr,var
#comfunc global IDirectorySchemaMgmt_WriteAttributeDefinition   5 wstr,var
#comfunc global IDirectorySchemaMgmt_DeleteAttributeDefinition  6 wstr
#comfunc global IDirectorySchemaMgmt_EnumClasses                7 var,int,var,var
#comfunc global IDirectorySchemaMgmt_WriteClassDefinition       8 wstr,var
#comfunc global IDirectorySchemaMgmt_CreateClassDefinition      9 wstr,var
#comfunc global IDirectorySchemaMgmt_DeleteClassDefinition      10 wstr
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。