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

IADsSecurityUtility

COMIDispatch (デュアル)
IDispatch を実装(デュアルインターフェース)。HSP では comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。
IIDa63251b2-5f21-474b-ab52-4a8efad10895継承元IDispatch呼び出し名前(IDispatch) または vtbl自前メソッド開始 vtbl7

メソッド 5

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

vtbl 7 HRESULT GetSecurityDescriptor(VARIANT varPath, INT lPathFormat, INT lFormat, VARIANT* pVariant)
varPathVARIANTinセキュリティ記述子を取得する対象パスやデータをVARIANTで指定する。
lPathFormatINTinvarPathの形式を示すフラグ。ADS_PATH_ENUM(ADsパス/ファイル等)で指定する。
lFormatINTin取得する記述子の形式を示すフラグ。ADS_SD_FORMAT_ENUMで指定する。
pVariantVARIANT*out取得したセキュリティ記述子をVARIANTで受け取る出力ポインタ。
vtbl 8 HRESULT SetSecurityDescriptor(VARIANT varPath, INT lPathFormat, VARIANT varData, INT lDataFormat)
varPathVARIANTinセキュリティ記述子を設定する対象パスをVARIANTで指定する。
lPathFormatINTinvarPathの形式を示すフラグ。ADS_PATH_ENUMで指定する。
varDataVARIANTin設定するセキュリティ記述子データをVARIANTで指定する。
lDataFormatINTinvarDataの形式を示すフラグ。ADS_SD_FORMAT_ENUMで指定する。
vtbl 9 HRESULT ConvertSecurityDescriptor(VARIANT varSD, INT lDataFormat, INT lOutFormat, VARIANT* pResult)
varSDVARIANTin変換元のセキュリティ記述子をVARIANTで指定する。
lDataFormatINTin入力記述子の形式を示すフラグ。ADS_SD_FORMAT_ENUMで指定する。
lOutFormatINTin出力記述子の形式を示すフラグ。ADS_SD_FORMAT_ENUMで指定する。
pResultVARIANT*out変換後のセキュリティ記述子をVARIANTで受け取る出力ポインタ。
vtbl 10 HRESULT get_SecurityMask(INT* retval)
retvalINT*out現在のセキュリティマスク(取得対象とするSD部分)を整数で受け取る出力ポインタ。
vtbl 11 HRESULT put_SecurityMask(INT lnSecurityMask)
lnSecurityMaskINTin設定するセキュリティマスク。ADS_SECURITY_INFO_ENUM(OWNER/GROUP/DACL/SACL)で指定する。

HSP用 COM定義

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

出力引数:
#define global IID_IADsSecurityUtility "{A63251B2-5F21-474B-AB52-4A8EFAD10895}"
#usecom global IADsSecurityUtility IID_IADsSecurityUtility "{F270C64A-FFB8-4AE4-85FE-3A75E5347966}"
#comfunc global IADsSecurityUtility_GetSecurityDescriptor      7 int,int,int,var
#comfunc global IADsSecurityUtility_SetSecurityDescriptor      8 int,int,int,int
#comfunc global IADsSecurityUtility_ConvertSecurityDescriptor  9 int,int,int,var
#comfunc global IADsSecurityUtility_get_SecurityMask           10 var
#comfunc global IADsSecurityUtility_put_SecurityMask           11 int
; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。
; ※#usecom 末尾は CoCreateInstance 用のクラスID(コクラスCLSID, SDKから自動取得)。
; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。
; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。