Método IDirectoryObject::CreateDSObject (iads.h)

O método IDirectoryObject::CreateDSObject cria um filho do objeto de serviço de diretório atual.

Sintaxe

HRESULT CreateDSObject(
  [in]  LPWSTR         pszRDNName,
  [in]  PADS_ATTR_INFO pAttributeEntries,
  [in]  DWORD          dwNumAttributes,
  [out] IDispatch      **ppObject
);

Parâmetros

[in] pszRDNName

Fornece o nome diferenciado relativo (caminho relativo) do objeto a ser criado.

[in] pAttributeEntries

Uma matriz de estruturas ADS_ATTR_INFO que contêm definições de atributo a serem definidas quando o objeto é criado.

[in] dwNumAttributes

Fornece vários atributos definidos quando o objeto é criado.

[out] ppObject

Fornece um ponteiro para a interface IDispatch no objeto criado.

Retornar valor

Esse método retorna os valores retornados padrão, incluindo S_OK para uma operação bem-sucedida. Para obter mais informações e outros valores retornados, consulte Códigos de erro ADSI.

Comentários

Especifique todos os atributos a serem inicializados na criação na matriz pAttributeEntries . Você também pode especificar atributos opcionais. Ao criar um objeto de diretório com esse método, os atributos com qualquer um dos tipos de dados de cadeia de caracteres não podem ser vazios ou de comprimento zero.

Exemplos

O exemplo de código C/C++ a seguir mostra como criar um objeto de usuário usando o método 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();
}

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Plataforma de Destino Windows
Cabeçalho iads.h
DLL Activeds.dll

Confira também

Códigos de erro ADSI

ADS_ATTR_INFO

IDirectoryObject