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