Partager via


Ajout d’une classe auxiliaire à une instance d’objet

Les exemples de code suivants montrent comment utiliser ADSI et LDAP pour ajouter dynamiquement une classe auxiliaire à une instance d’objet existante. Les exemples supposent qu’une classe auxiliaire nommée véhicule est définie dans le schéma Active Directory et que la classe véhicule a un attribut vin.

Lorsque vous ajoutez dynamiquement une classe auxiliaire à une instance d’objet, vous devez simultanément spécifier des valeurs pour les attributs mustHave obligatoires de la classe. Les exemples suivants montrent comment procéder avec l’attribut « vin », qui est supposé être obligatoire.

L’exemple C++ suivant lie à un objet et utilise IADs.PutEx pour ajouter la classe auxiliaire à la liste des classes de la propriété objectClass de l’objet. Ensuite, l’exemple utilise IADs.Put pour définir la valeur de l’attribut vin. Enfin, il appelle IADs.SetInfo pour valider les modifications apportées au répertoire.

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