Método IDirectoryObject::SetObjectAttributes (iads.h)

El método IDirectoryObject::SetObjectAttributes modifica los datos de uno o varios atributos de objeto especificados definidos en la estructura ADS_ATTR_INFO .

Sintaxis

HRESULT SetObjectAttributes(
  [in]  PADS_ATTR_INFO pAttributeEntries,
  [in]  DWORD          dwNumAttributes,
  [out] DWORD          *pdwNumAttributesModified
);

Parámetros

[in] pAttributeEntries

Proporciona una matriz de atributos que se van a modificar. Cada atributo contiene el nombre del atributo, la operación que se va a realizar y el valor del atributo, si procede. Para obtener más información, consulte la estructura ADS_ATTR_INFO .

[in] dwNumAttributes

Proporciona el número de atributos que se van a modificar. Este valor debe corresponder al tamaño de la matriz pAttributeEntries .

[out] pdwNumAttributesModified

Proporciona un puntero a una variable DWORD que contiene el número de atributos modificados por el método SetObjectAttributes .

Valor devuelto

Este método devuelve los valores devueltos estándar, incluidos S_OK cuando los atributos se establecen correctamente.

Para obtener más información y otros valores devueltos, vea Códigos de error adsi.

Comentarios

En Active Directory (proveedor LDAP), el método IDirectoryObject::SetObjectAttributes es una llamada de transacción. Todos los atributos se confirman o se descartan. Es posible que otros proveedores de directorios no realicen transacciones con la llamada.

Active Directory no permite valores duplicados en un atributo multivalor. Sin embargo, si llama a SetObjectAttributes para anexar un valor duplicado a un atributo multivalor de un objeto de Active Directory, la llamada a SetObjectAttributes se realiza correctamente, pero se omite el valor duplicado.

Del mismo modo, si usa SetObjectAttributes para eliminar uno o varios valores de una propiedad multivalor de un objeto de Active Directory, la operación se realiza correctamente incluso si alguno o todos los valores especificados no están establecidos para la propiedad.

Ejemplos

En el ejemplo de código de C++ siguiente se establece el atributo sn de un objeto de usuario en el valor de Price como una cadena que no distingue mayú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 compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado iads.h
Archivo DLL Activeds.dll

Consulte también

Códigos de error adsi

ADS_ATTR_INFO

IDirectoryObject