Compartir a través de


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

El método IDirectoryObject::CreateDSObject crea un elemento secundario del objeto de servicio de directorio actual.

Sintaxis

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

Parámetros

[in] pszRDNName

Proporciona el nombre distintivo relativo (ruta de acceso relativa) del objeto que se va a crear.

[in] pAttributeEntries

Matriz de estructuras de ADS_ATTR_INFO que contienen definiciones de atributo que se van a establecer cuando se crea el objeto.

[in] dwNumAttributes

Proporciona una serie de atributos establecidos cuando se crea el objeto.

[out] ppObject

Proporciona un puntero a la interfaz IDispatch en el objeto creado.

Valor devuelto

Este método devuelve los valores devueltos estándar, incluidos S_OK para una operación correcta. Para obtener más información y otros valores devueltos, vea Códigos de error adsi.

Comentarios

Especifique todos los atributos que se van a inicializar al crearlos en la matriz pAttributeEntries . También puede especificar atributos opcionales. Al crear un objeto de directorio con este método, los atributos con cualquiera de los tipos de datos de cadena no pueden estar vacíos ni de longitud cero.

Ejemplos

En el siguiente ejemplo de código de C/C++ se muestra cómo crear un objeto de usuario mediante el 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 Value
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Plataforma de destino Windows
Encabezado iads.h
Archivo DLL Activeds.dll

Consulte también

Códigos de error adsi

ADS_ATTR_INFO

IDirectoryObject