IADs::GetInfoEx メソッド (iads.h)
IADs::GetInfoEx メソッドは、ADSI オブジェクトの指定されたプロパティの値を基になるディレクトリ ストアからプロパティ キャッシュに読み込みます。
構文
HRESULT GetInfoEx(
[in] VARIANT vProperties,
[in] long lnReserved
);
パラメーター
[in] vProperties
Active Directory プロパティ キャッシュに読み込むプロパティを一覧表示する null で終わる Unicode 文字列エントリの配列。 各プロパティ名は、このオブジェクトのスキーマ クラス定義の 1 つと一致する必要があります。
[in] lnReserved
将来利用するために予約されています。 0 に設定する必要があります。
戻り値
このメソッドは、標準の戻り値と、次の値をサポートしています。
詳細については、「 ADSI エラー コード」を参照してください。
注釈
IADs::GetInfoEx メソッドは、指定されたプロパティの以前にキャッシュされた値をディレクトリ ストア内の値で上書きします。 そのため、IADs::SetInfo が IADs::GetInfoEx の呼び出しの前に呼び出されなかった場合、キャッシュに加えられた変更はすべて失われます。
IADs::GetInfoEx を使用して、ADSI オブジェクトのプロパティ キャッシュ内の選択したプロパティの値を更新します。 IADs::GetInfo を使用して、すべてのプロパティ値を更新します。
ADSI コンテナー オブジェクトの場合、 IADs::GetInfoEx はコンテナーのプロパティ値のみをキャッシュしますが、子オブジェクトのプロパティ値はキャッシュしません。
例
次のコード例は、 IADs::GetInfoEx を使用して選択したプロパティの値を取得する方法を示しています。これは、ディレクトリに目的のプロパティ値がある場合です。
Dim x As IADs
On Error GoTo Cleanup
Set x = GetObject("LDAP://CN=JeffSmith,CN=Users,DC=Fabrikam,DC=com")
' Retrieve givenName and sn from the underlying directory storage.
' Cache should have givenName and sn values.
x.GetInfoEx Array("givenName", "sn"), 0
Debug.Print x.Get("givenName") ' Property is in the cache.
Debug.Print x.Get("sn") ' Property is in the cache.
' If the "homePhone" property is not in the cache (in the next line),
' GetInfo is called implicitly.
Debug.Print x.Get("homePhone")
Cleanup:
If(Err.Number<>0) Then
MsgBox("An error has occurred. " & Err.Number);
End If
Set x = Nothing
次のコード例は、 IADs::GetInfoEx を使用して選択したプロパティの値を取得する方法を示しています。これは、ディレクトリに目的のプロパティ値がある場合です。 簡潔にするために、エラー チェックは省略されています。
IADs *pADs = NULL;
VARIANT var;
HRESULT hr = S_OK;
hr = ADsGetObject(L"WinNT://somecomputer,computer",
IID_IADs,
(void**)&pADs);
if(!(hr==S_OK)){return hr;}
VariantInit(&var);
// Get "Owner" and "Division" attribute values.
LPWSTR pszAttrs[] = { L"Owner", L"Division" };
DWORD dwNumber = sizeof( pszAttrs ) /sizeof(LPWSTR);
hr = ADsBuildVarArrayStr( pszAttrs, dwNumber, &var );
hr = pADs->GetInfoEx(var, 0);
VariantClear(&var);
hr = pADs->Get(CComBSTR("Division"), &var);
printf(" division = %S\n", V_BSTR(&var));
VariantClear(&var);
hr = pADs->Get(CComBSTR("Owner"), &var);
printf(" owner = %S\n", V_BSTR(&var));
VariantClear(&var);
if(pADs)
pADs->Release();
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista |
サポートされている最小のサーバー | Windows Server 2008 |
対象プラットフォーム | Windows |
ヘッダー | iads.h |
[DLL] | Activeds.dll |