Метод IDirectoryObject::CreateDSObject (iads.h)
Метод IDirectoryObject::CreateDSObject создает дочерний элемент текущего объекта службы каталогов.
Синтаксис
HRESULT CreateDSObject(
[in] LPWSTR pszRDNName,
[in] PADS_ATTR_INFO pAttributeEntries,
[in] DWORD dwNumAttributes,
[out] IDispatch **ppObject
);
Параметры
[in] pszRDNName
Предоставляет относительное различающееся имя (относительный путь) создаваемого объекта.
[in] pAttributeEntries
Массив ADS_ATTR_INFO структур, содержащих определения атрибутов, которые необходимо задать при создании объекта.
[in] dwNumAttributes
Предоставляет ряд атрибутов, заданных при создании объекта.
[out] ppObject
Предоставляет указатель на интерфейс IDispatch для созданного объекта.
Возвращаемое значение
Этот метод возвращает стандартные возвращаемые значения, включая S_OK для успешной операции. Дополнительные сведения и другие возвращаемые значения см. в разделе Коды ошибок ADSI.
Комментарии
Укажите все атрибуты для инициализации при создании в массиве pAttributeEntries . Можно также указать необязательные атрибуты. При создании объекта каталога с помощью этого метода атрибуты любого из строковых типов данных не могут быть пустыми или иметь нулевую длину.
Примеры
В следующем примере кода C/C++ показано, как создать пользовательский объект с помощью метода IDirectoryObject::CreateDSObject .
HRESULT hr;
IDirectoryObject *pDirObject=NULL;
ADSVALUE sAMValue;
ADSVALUE uPNValue;
ADSVALUE classValue;
LPDISPATCH pDisp;
ADS_ATTR_INFO attrInfo[] =
{
{ L"objectClass", ADS_ATTR_UPDATE,
ADSTYPE_CASE_IGNORE_STRING, &classValue, 1 },
{L"sAMAccountName", ADS_ATTR_UPDATE,
ADSTYPE_CASE_IGNORE_STRING, &sAMValue, 1},
{L"userPrincipalName", ADS_ATTR_UPDATE,
ADSTYPE_CASE_IGNORE_STRING, &uPNValue, 1},
};
DWORD dwAttrs = sizeof(attrInfo)/sizeof(ADS_ATTR_INFO);
classValue.dwType = ADSTYPE_CASE_IGNORE_STRING;
classValue.CaseIgnoreString = L"user";
sAMValue.dwType=ADSTYPE_CASE_IGNORE_STRING;
sAMValue.CaseIgnoreString = L"jeffsmith";
uPNValue.dwType=ADSTYPE_CASE_IGNORE_STRING;
uPNValue.CaseIgnoreString = L"jeffsmith@Fabrikam.com";
hr = ADsGetObject(L"LDAP://OU=Sales,DC=Fabrikam,DC=com",
IID_IDirectoryObject, (void**) &pDirObject );
if ( SUCCEEDED(hr) )
{
hr = pDirObject->CreateDSObject( L"CN=Jeff Smith", attrInfo,
dwAttrs, &pDisp );
if ( SUCCEEDED(hr) )
{
// Use the DS object.
pDisp->Release();
}
pDirObject->Release();
}
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista |
Минимальная версия сервера | Windows Server 2008 |
Целевая платформа | Windows |
Header | iads.h |
DLL | Activeds.dll |