Добавление вспомогательного класса в экземпляр объекта
В следующих примерах кода показано, как использовать ADSI и LDAP для динамического добавления вспомогательного класса в существующий экземпляр объекта. В примерах предполагается, что вспомогательный класс с именем транспортного средства определен в схеме Active Directory и что класс транспортного средства имеет атрибут vin.
При динамическом добавлении вспомогательного класса в экземпляр объекта необходимо одновременно указать значения для любых обязательных атрибутов mustHave в классе. В следующих примерах показано, как это сделать с атрибутом "vin", который, как предполагается, является обязательным.
Следующий пример C++ привязывается к объекту и использует IADs.PutEx для добавления вспомогательного класса в список классов в свойстве objectClass объекта. Затем в примере используется IADs.Put , чтобы задать значение атрибута vin . Наконец, он вызывает IADs.SetInfo для фиксации изменений в каталоге.
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);