Método IDirectoryObject::SetObjectAttributes (iads.h)
O método IDirectoryObject::SetObjectAttributes modifica dados em um ou mais atributos de objeto especificados definidos na estrutura ADS_ATTR_INFO .
Sintaxe
HRESULT SetObjectAttributes(
[in] PADS_ATTR_INFO pAttributeEntries,
[in] DWORD dwNumAttributes,
[out] DWORD *pdwNumAttributesModified
);
Parâmetros
[in] pAttributeEntries
Fornece uma matriz de atributos a serem modificados. Cada atributo contém o nome do atributo, a operação a ser executada e o valor do atributo, se aplicável. Para obter mais informações, consulte a estrutura de ADS_ATTR_INFO .
[in] dwNumAttributes
Fornece o número de atributos a serem modificados. Esse valor deve corresponder ao tamanho da matriz pAttributeEntries .
[out] pdwNumAttributesModified
Fornece um ponteiro para uma variável DWORD que contém o número de atributos modificados pelo método SetObjectAttributes .
Valor retornado
Esse método retorna os valores de retorno padrão, incluindo S_OK quando os atributos são definidos com êxito.
Para obter mais informações e outros valores retornados, consulte Códigos de erro ADSI.
Comentários
No Active Directory (provedor LDAP), o método IDirectoryObject::SetObjectAttributes é uma chamada transacionada. Os atributos são todos confirmados ou descartados. Outros provedores de diretório podem não transacionar a chamada.
O Active Directory não permite valores duplicados em um atributo de vários valores. No entanto, se você chamar SetObjectAttributes para acrescentar um valor duplicado a um atributo de vários valores de um objeto do Active Directory, a chamada SetObjectAttributes terá êxito, mas o valor duplicado será ignorado.
Da mesma forma, se você usar SetObjectAttributes para excluir um ou mais valores de uma propriedade de vários valores de um objeto do Active Directory, a operação terá êxito mesmo se qualquer ou todos os valores especificados não estiverem definidos para a propriedade
Exemplos
O exemplo de código C++ a seguir define o atributo sn de um objeto de usuário como o valor de Price como uma cadeia de caracteres que não diferencia maiúsculas de minúsculas.
HRESULT hr;
IDirectoryObject *pDirObject=NULL;
DWORD dwReturn;
ADSVALUE snValue;
ADS_ATTR_INFO attrInfo[] = { {L"sn",ADS_ATTR_UPDATE, ADSTYPE_CASE_IGNORE_STRING, &snValue, 1} };
DWORD dwAttrs = sizeof(attrInfo)/sizeof(ADS_ATTR_INFO);
snValue.dwType=ADSTYPE_CASE_IGNORE_STRING;
snValue.CaseIgnoreString = L"Price";
hr = ADsGetObject(L"LDAP://CN=Jeff Smith,OU=Sales,DC=Fabrikam,DC=com",
IID_IDirectoryObject,
(void**) &pDirObject );
if ( SUCCEEDED(hr) )
{
hr = pDirObject->SetObjectAttributes(attrInfo, dwAttrs, &dwReturn);
pDirObject->Release();
}
Requisitos
Cliente mínimo com suporte | Windows Vista |
Servidor mínimo com suporte | Windows Server 2008 |
Plataforma de Destino | Windows |
Cabeçalho | iads.h |
DLL | Activeds.dll |