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

Confira também

Códigos de erro ADSI

ADS_ATTR_INFO

IDirectoryObject