Adición de una clase auxiliar a una instancia de objeto
En los ejemplos de código siguientes se muestra cómo usar ADSI y LDAP para agregar dinámicamente una clase auxiliar a una instancia de objeto existente. En los ejemplos se supone que una clase auxiliar denominada vehicle se define en el esquema de Active Directory y que la clase de vehículo tiene un atributo vin .
Al agregar dinámicamente una clase auxiliar a una instancia de objeto, debe especificar simultáneamente los valores de los atributos mustHave obligatorios de la clase . En los ejemplos siguientes se muestra cómo hacerlo con el atributo "vin", que se supone que es obligatorio.
En el siguiente ejemplo de C++ se enlaza a un objeto y se usa IADs.PutEx para anexar la clase auxiliar a la lista de clases de la propiedad objectClass del objeto. A continuación, en el ejemplo se usa IADs.Put para establecer el valor del atributo vin . Por último, llama a IADs.SetInfo para confirmar los cambios en el directorio.
LPWSTR pszAuxClass[]={L"vehicle"};
LPWSTR pszVIN[]={L"df897dsfsa-0"};
VARIANT var;
VariantInit(&var);
ADsOpenObject(L"cn=johnd,cn=users,dc=fabrikam,dc=com",
NULL,
NULL,
ADS_SECURE_AUTHENTICATION,
IID_IADs,
(VOID**)&pIADs);
ADsBuildVarArrayStr(pszAuxClass, 1, &var);
pIADs->PutEx(ADS_PROPERTY_APPEND, CComBSTR("objectClass"), var);
ADsBuildVarArrayStr( pszVIN, 1, &var);
pIADs->Put(CComBSTR("vin"), var);
pIADs->SetInfo();
if(pIADs)
pIADs->Release();
VariantClear(&var);