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