Partilhar via


Adicionando uma classe auxiliar a uma instância de objeto

Os exemplos de código a seguir mostram como usar ADSI e LDAP para adicionar dinamicamente uma classe auxiliar a uma instância de objeto existente. Os exemplos pressupõem que uma classe auxiliar chamada vehicle é definida no esquema do Active Directory e que a classe vehicle tem um atributo vin.

Ao adicionar dinamicamente uma classe auxiliar a uma instância de objeto, você deve especificar simultaneamente valores para quaisquer atributos mustHave obrigatórios na classe. Os exemplos a seguir mostram como fazer isso com o atributo "vin", que é assumido como obrigatório.

O exemplo C++ a seguir se vincula a um objeto e usa IADs.PutEx para acrescentar a classe auxiliar à lista de classes na propriedade objectClass do objeto. Em seguida, o exemplo usa IADs.Put para definir o valor do atributo vin. Finalmente, ele chama IADs.SetInfo para confirmar as alterações no diretório.

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