IADs::GetInfoEx 方法 (iads.h)

IADs::GetInfoEx 方法将 ADSI 对象的指定属性的值从基础目录存储加载到属性缓存中。

语法

HRESULT GetInfoEx(
  [in] VARIANT vProperties,
  [in] long    lnReserved
);

参数

[in] vProperties

以 null 结尾的 Unicode 字符串条目数组,这些条目列出了要加载到 Active Directory 属性缓存中的属性。 每个属性名称都必须与此对象的架构类定义中的一个属性名称匹配。

[in] lnReserved

保留供将来使用。 必须设置为零。

返回值

此方法支持标准返回值以及以下值。

有关详细信息,请参阅 ADSI 错误代码

注解

IADs::GetInfoEx 方法使用目录存储中的值覆盖指定属性的任何以前缓存的值。 因此,如果在调用 IADs::GetInfoEx 之前未调用 IADs::SetInfo,则对缓存所做的任何更改都将丢失。

使用 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

另请参阅

IAD

IADs::GetInfo

IADs::SetInfo

属性缓存