Udostępnij przez


Dodawanie klasy pomocniczej do instancji obiektu

W poniższych przykładach kodu pokazano, jak używać interfejsów ADSI i LDAP do dynamicznego dodawania klasy pomocniczej do istniejącego wystąpienia obiektu. W przykładach przyjęto założenie, że pomocnicza klasa pojazd jest zdefiniowana w schemacie usługi Active Directory i że klasa pojazd ma atrybut vin.

Podczas dynamicznego dodawania klasy dodatkowej do instancji obiektu należy jednocześnie określić wartości dla wszystkich obowiązkowych mustHave atrybutów w klasie. W poniższych przykładach pokazano, jak to zrobić za pomocą atrybutu "vin", który jest zakładany jako obowiązkowy.

Poniższy przykład języka C++ wiąże się z obiektem i używa IADs.PutEx, aby dołączyć klasę pomocniczą do listy klas we właściwości objectClass obiektu. Następnie w przykładzie użyto IADs.Put, aby ustawić wartość atrybutu vin. Na koniec wywołuje IADs.SetInfo, aby zatwierdzić zmiany w katalogu.

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