IAzClientContext2
COMIDispatch (デュアル)comobj 経由でメソッド名による遅延バインド呼び出しができます(vtableインデックス不要)。公式ドキュメント
IAzClientContext インターフェイスを継承し、クライアントコンテキストを操作する新しいメソッドを実装します。
メソッド 6
vtbl = vtable インデックス(0始まり)。IDispatch 実装のため HSP ではメソッド名でも呼べます(上記)。低レベルの index 呼び出し用に vtbl も掲載。0〜2 は IUnknown。
現在の IAzClientContext2 オブジェクトが表すクライアントが、少なくとも 1 つのロールに割り当てられているスコープの一覧を取得します。
| lOptions | INT | in | このメソッドがスコープ割り当てのために LDAP クエリグループを確認するかどうかを指定するフラグです。以前にキャッシュされた LDAP クエリグループは、このフラグの値に関係なく確認されます。
| ||||
| PageSize | INT | in | 各ページの結果に含まれる要素の数です。 | ||||
| pvarCursor | VARIANT* | inout | 現在の結果ページを表す VARIANT へのポインターです。GetAssignedScopesPage メソッドを最初に呼び出すときは、このパラメーターの値として VT_EMPTY を渡すと、最初の結果ページを取得できます。1 ページあたりの要素数は PageSize パラメーターの値によって決まります。出力時には、次の結果ページを取得するために GetAssignedScopesPage の次の呼び出しに渡す値がこのパラメーターに格納されます。出力時のこのパラメーターの値が EMPTY の場合、これ以上の結果ページはありません。 | ||||
| pvarScopeNames | VARIANT* | out | 戻り時に、VARIANT 型の変数の配列が格納されます。配列の各要素は VT_BSTR 型で、現在のクライアントが割り当てられているスコープの名前が格納されます。配列の要素数は PageSize パラメーターで指定されます。 |
戻り値
メソッドが成功した場合、S_OK を返します。
メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
解説(Remarks)
複数のスレッドが同じ承認ストアにアクセスする場合、あるスレッドがストアを変更すると、別のスレッドでの GetAssignedScopesPage メソッドの呼び出しが正確な結果を返さないことがあります。
JScript では、返された SAFEARRAY の値を JScript の Array オブジェクトに変換する必要があります。
既存の IAzRole オブジェクトの指定された配列をクライアントコンテキストに追加します。
| varRoles | VARIANT | in | クライアントコンテキストに追加する IAzRole オブジェクトを指定するロール名の配列です。 |
| bstrScopeName | LPWSTR | in | ロールの配列が適用されるスコープです。 |
戻り値
メソッドが成功した場合、S_OK を返します。
メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
解説(Remarks)
varRoles 配列内の名前に対応する IAzRole オブジェクトは、指定されたスコープ内にあらかじめ存在している必要があります。
追加されたロールは、以降の AccessCheck メソッドおよび GetRoles メソッドの呼び出しで使用されます。
既存の IAzApplicationGroup オブジェクトの指定された配列をクライアントコンテキストオブジェクトに追加します。
| varApplicationGroups | VARIANT | in | 追加する IAzApplicationGroup オブジェクトの配列です。 |
戻り値
メソッドが成功した場合、S_OK を返します。
メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
解説(Remarks)
varApplicationGroups 配列内の IAzApplicationGroup オブジェクトは、承認ストア内にあらかじめ存在している必要があります。
追加されたロールは、以降の AccessCheck メソッドおよび GetRoles メソッドの呼び出しで使用されます。
セキュリティ識別子 (SID) の文字列表現の配列をクライアントコンテキストに追加します。
| varStringSids | VARIANT | in | クライアントコンテキストに追加する SID の文字列表現の配列です。 |
戻り値
メソッドが成功した場合、S_OK を返します。
メソッドが失敗した場合は、エラーを示す HRESULT 値を返します。一般的なエラーコードの一覧については、Common HRESULT Values を参照してください。
LDAP クエリグループの評価時に使用するディレクトリオブジェクトのドメイン名を取得または設定します。(Put)
| bstrLDAPQueryDN | LPWSTR | in | LDAPクエリの評価に使用する識別名(DN)をBSTRで指定する。 |
LDAP クエリグループの評価時に使用するディレクトリオブジェクトのドメイン名を取得または設定します。(Get)
| pbstrLDAPQueryDN | LPWSTR* | out | LDAPクエリの評価に使用される識別名(DN)を格納したBSTRを受け取るポインタである。 |
Microsoft 公式リファレンス: 英語 (en-us) · 日本語 (ja-jp) · 原文ソース (GitHub)
HSP用 COM定義
#usecom / #comfunc によるHSPのCOM呼び出し定義。数字は vtbl インデックス(0始まり)。クラスIDが無い場合 #usecom の末尾は "{}"、ある場合は "{CLSID}"。
#define global IID_IAzClientContext2 "{2B0C92B8-208A-488A-8F81-E4EDB22111CD}" #usecom global IAzClientContext2 IID_IAzClientContext2 "{}" #comfunc global IAzClientContext2_GetAssignedScopesPage 20 int,int,var,var #comfunc global IAzClientContext2_AddRoles 21 int,wstr #comfunc global IAzClientContext2_AddApplicationGroups 22 int #comfunc global IAzClientContext2_AddStringSids 23 int #comfunc global IAzClientContext2_put_LDAPQueryDN 24 wstr #comfunc global IAzClientContext2_get_LDAPQueryDN 25 var ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数は var(変数直渡し)。varptr 方式にも切替可。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。#define global IID_IAzClientContext2 "{2B0C92B8-208A-488A-8F81-E4EDB22111CD}" #usecom global IAzClientContext2 IID_IAzClientContext2 "{}" #comfunc global IAzClientContext2_GetAssignedScopesPage 20 int,int,sptr,sptr #comfunc global IAzClientContext2_AddRoles 21 int,wstr #comfunc global IAzClientContext2_AddApplicationGroups 22 int #comfunc global IAzClientContext2_AddStringSids 23 int #comfunc global IAzClientContext2_put_LDAPQueryDN 24 wstr #comfunc global IAzClientContext2_get_LDAPQueryDN 25 sptr ; ※数字は vtbl インデックス(0始まり)。0/1/2 は IUnknown(QueryInterface/AddRef/Release)。 ; ※このインターフェースは直接 CoCreateInstance するクラスIDが無いため "{}"(他メソッド/アクティベーションで取得)。 ; ※出力/バッファ引数はポインタ方式(token=sptr / 呼び出しは varptr(変数))。 ; ※IDispatch 実装。HSP では comobj 経由でメソッド名による呼び出しも可能(vtbl 不要)。