Partager via


IDirectoryObject ::CreateDSObject, méthode (iads.h)

La méthode IDirectoryObject ::CreateDSObject crée un enfant de l’objet de service d’annuaire actif.

Syntaxe

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

Paramètres

[in] pszRDNName

Fournit le nom unique relatif (chemin relatif) de l’objet à créer.

[in] pAttributeEntries

Tableau de structures ADS_ATTR_INFO qui contiennent des définitions d’attributs à définir lors de la création de l’objet.

[in] dwNumAttributes

Fournit un certain nombre d’attributs définis lors de la création de l’objet.

[out] ppObject

Fournit un pointeur vers l’interface IDispatch sur l’objet créé.

Valeur retournée

Cette méthode retourne les valeurs de retour standard, y compris les S_OK pour une opération réussie. Pour plus d’informations et d’autres valeurs de retour, consultez Codes d’erreur ADSI.

Remarques

Spécifiez tous les attributs à initialiser lors de la création dans le tableau pAttributeEntries . Vous pouvez également spécifier des attributs facultatifs. Lors de la création d’un objet répertoire avec cette méthode, les attributs avec l’un des types de données de chaîne ne peuvent pas être vides ou de longueur nulle.

Exemples

L’exemple de code C/C++ suivant montre comment créer un objet utilisateur à l’aide de la méthode 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();
}

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
Plateforme cible Windows
En-tête iads.h
DLL Activeds.dll

Voir aussi

Codes d’erreur ADSI

ADS_ATTR_INFO

IDirectoryObject