ホーム › System.Search › IObjectAccessControl
IObjectAccessControl
COMメソッド 5
vtbl = vtable インデックス(0始まり)。HSP等からCOMメソッドをインデックス指定で呼ぶ際に使用します。0〜2 は IUnknown。
vtbl 3 HRESULT GetObjectAccessRights(SEC_OBJECT* pObject, DWORD* pcAccessEntries, EXPLICIT_ACCESS_W** prgAccessEntries)
| pObject | SEC_OBJECT* | in | アクセス権を取得する対象オブジェクトを記述した SEC_OBJECT 構造体へのポインタである。 |
| pcAccessEntries | DWORD* | inout | 返されるアクセスエントリの数を受け取る変数へのポインタである。 |
| prgAccessEntries | EXPLICIT_ACCESS_W** | inout | オブジェクトに設定されたアクセス権を記述した EXPLICIT_ACCESS_W 構造体の配列を受け取るポインタである。呼び出し側が解放する。 |
vtbl 4 HRESULT GetObjectOwner(SEC_OBJECT* pObject, TRUSTEE_W** ppOwner)
| pObject | SEC_OBJECT* | in | 所有者を取得する対象オブジェクトを記述した SEC_OBJECT 構造体へのポインタである。 |
| ppOwner | TRUSTEE_W** | out | オブジェクトの所有者を記述した TRUSTEE_W 構造体を受け取るポインタである。呼び出し側が解放する。 |
vtbl 5 HRESULT IsObjectAccessAllowed(SEC_OBJECT* pObject, EXPLICIT_ACCESS_W* pAccessEntry, BOOL* pfResult)
| pObject | SEC_OBJECT* | in | アクセス可否を判定する対象オブジェクトを記述した SEC_OBJECT 構造体へのポインタである。 |
| pAccessEntry | EXPLICIT_ACCESS_W* | in | 許可されているか判定するアクセス権を記述した EXPLICIT_ACCESS_W 構造体へのポインタである。 |
| pfResult | BOOL* | out | アクセスが許可されていれば TRUE を受け取る変数へのポインタである。 |
vtbl 6 HRESULT SetObjectAccessRights(SEC_OBJECT* pObject, DWORD cAccessEntries, EXPLICIT_ACCESS_W* prgAccessEntries)
| pObject | SEC_OBJECT* | in | アクセス権を設定する対象オブジェクトを記述した SEC_OBJECT 構造体へのポインタである。 |
| cAccessEntries | DWORD | in | prgAccessEntries 配列に含まれるアクセスエントリの数を指定する。 |
| prgAccessEntries | EXPLICIT_ACCESS_W* | inout | オブジェクトに設定するアクセス権を記述した EXPLICIT_ACCESS_W 構造体の配列へのポインタである。 |
vtbl 7 HRESULT SetObjectOwner(SEC_OBJECT* pObject, TRUSTEE_W* pOwner)
| pObject | SEC_OBJECT* | in | 所有者を設定する対象オブジェクトを記述した SEC_OBJECT 構造体へのポインタである。 |
| pOwner | TRUSTEE_W* | in | 新しい所有者として設定するトラスティを記述した TRUSTEE_W 構造体へのポインタである。 |
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
出力引数:
#define global IID_IObjectAccessControl "{0C733AA3-2A1C-11CE-ADE5-00AA0044773D}" #usecom global IObjectAccessControl IID_IObjectAccessControl "{}" #comfunc global IObjectAccessControl_GetObjectAccessRights 3 var,var,var #comfunc global IObjectAccessControl_GetObjectOwner 4 var,var #comfunc global IObjectAccessControl_IsObjectAccessAllowed 5 var,var,var #comfunc global IObjectAccessControl_SetObjectAccessRights 6 var,int,var #comfunc global IObjectAccessControl_SetObjectOwner 7 var,var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。#define global IID_IObjectAccessControl "{0C733AA3-2A1C-11CE-ADE5-00AA0044773D}" #usecom global IObjectAccessControl IID_IObjectAccessControl "{}" #comfunc global IObjectAccessControl_GetObjectAccessRights 3 sptr,sptr,sptr #comfunc global IObjectAccessControl_GetObjectOwner 4 sptr,sptr #comfunc global IObjectAccessControl_IsObjectAccessAllowed 5 sptr,sptr,sptr #comfunc global IObjectAccessControl_SetObjectAccessRights 6 sptr,int,sptr #comfunc global IObjectAccessControl_SetObjectOwner 7 sptr,sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。