Метод IADs::GetInfoEx (iads.h)
Метод IADs::GetInfoEx загружает значения указанных свойств объекта ADSI из базового хранилища каталогов в кэш свойств.
Синтаксис
HRESULT GetInfoEx(
[in] VARIANT vProperties,
[in] long lnReserved
);
Параметры
[in] vProperties
Массив строковых записей Юникода со списком свойств для загрузки в кэш свойств Active Directory, завершаемых null. Каждое имя свойства должно совпадать с именем в определении класса схемы этого объекта.
[in] lnReserved
Зарезервировано для последующего использования. Необходимо задать нулевое значение.
Возвращаемое значение
Этот метод поддерживает стандартные возвращаемые значения, а также следующие.
Дополнительные сведения см. в разделе Коды ошибок 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 |
Header | iads.h |
DLL | Activeds.dll |