Поделиться через


Метод 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"[email protected]";
 
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

См. также раздел

Коды ошибок ADSI

ADS_ATTR_INFO

IDirectoryObject