Partager via


IADsNameTranslate ::SetEx, méthode (iads.h)

La méthode IADsNameTranslate ::SetEx établit un tableau d’objets pour la traduction de noms. Les objets spécifiés doivent exister dans le serveur d’annuaire connecté. Pour définir le nom et le format d’un objet de répertoire unique, utilisez la méthode IADsNameTranslate ::Set .

Syntaxe

HRESULT SetEx(
  long    lnFormatType,
  VARIANT pvar
);

Paramètres

lnFormatType

Type de format des noms d’entrée. Pour plus d’informations, consultez ADS_NAME_TYPE_ENUM.

pvar

Tableau de variantes de chaînes qui contiennent des noms d’objets.

Valeur retournée

Cette méthode prend en charge les valeurs de retour HRESULT standard, notamment :

Remarques

Vous ne pouvez pas utiliser la méthode IADsNameTranslate ::SetEx pour définir la traduction de noms pour les objets résidant sur d’autres serveurs, même lorsque l’option de recherche de référence est activée. Pour plus d’informations sur la poursuite des références, consultez IADsNameTranslate, méthodes de propriété.

Vous pouvez utiliser IADsNameTranslate ::SetEx pour définir des noms pour plusieurs objets. Toutefois, tous les noms doivent être du même format.

Exemples

L’exemple de code C/C++ suivant utilise la méthode IADsNameTranslate ::SetEx pour configurer un tableau d’objets dont les noms doivent être traduits du format RFC 1779 au format de nom d’utilisateur Windows.

IADsNameTranslate *pNto;
HRESULT hr;
hr = CoCreateInstance(CLSID_NameTranslate,
                      NULL,
                      CLSCTX_INPROC_SERVER,
                      IID_IADsNameTranslate,
                      (void**)&pNto);
if(FAILED(hr)) { exit 1;}
 
hr = pNto->Init(ADS_NAME_INITTYPE_SERVER,
                  CComBSTR("myServer"));
if (FAILED(hr)) { exit 1;}
 
LPWSTR str[1] = { L"CN=jim,CN=Users,DC=myDomain,DC=Fabrikam,DC=COM",
                  L"CN=rob,CN=Users,DC=myDomain,DC=Fabrikam,DC=COM"};
DWORD dwNum = sizeof(str)/sizeof(LPWSTR);
 
VARIANT varStr;
VariantInit(&varStr);
 
hr = ADsBuildVarArrayStr(str,dwNum,&varStr);
 
hr =pNto->SetEx(ADS_NAME_TYPE_1779, varStr);
if(FAILED(hr)) {exit 1;}
VariantClear(&varStr);
 
hr = pNto->GetEx(ADS_NAME_TYPE_GUID, &varStr);
if(FAILED(hr)) {exit 1;}
 
LONG lstart, lend;
SAFEARRAY *sa = V_ARRAY(&varStr);
VARIANT varItem;
VariantInit(&varItem);
printf("Names in the translated format:\n");
for (long idx = lstart; idx <= lend; idx++) 
{
    hr = SafeArrayGetElement(sa, &idx, &varItem);
    printf("   %S\n", V_BSTR(&varItem));
    VariantClear(&varItem);
}
VariantClear(&varStr);
pNto->Release();

L’exemple de code Visual Basic suivant utilise la méthode IADsNameTranslate ::SetEx pour configurer un tableau d’objets dont les noms doivent être traduits du format RFC 1779 au format de nom d’utilisateur s.

Dim nto As New NameTranslate
dso(0)="CN=jeffSmith, CN=users, DC=Fabrikam dc=COM"
dso(1)="CN=brendaDiaz, CN=users, DC=Fabrikam dc=COM"
nto.Init  ADS_NAME_INITTYPE_SERVER, "myServer"
nto.SetEx ADS_NAME_TYPE_1779, dso
trans = nto.GetEx(ADS_NAME_TYPE_NT4)   
Msgbox "Translations: " & trans(0) & "," & trans(1)

L’exemple de code VBScript/ASP suivant utilise la méthode IADsNameTranslate ::SetEx pour configurer un tableau d’objets dont les noms doivent être traduits du format RFC 1779 au format de nom d’utilisateur s.

<%@ Language=VBScript %>
<html>
<body>
<%
  Dim nto
  const ADS_NAME_INITTYPE_SERVER = 2  ' VBScript cannot read 
  const ADS_NAME_TYPE_1779 = 1        ' enumeration definition
  const ADS_NAME_TYPE_NT4 = 3
 
  dn(0) = "CN=jeffSmith,CN=Users,DC=Fabrikam,DC=COM" 
  dn(1) = "CN=brendaDiaz,CN=Users,DC=Fabrikam,DC=COM" 
 
  Set nto = Server.CreateObject("NameTranslate")
  nto.Init ADS_NAME_INITTYPE_SERVER, "myServer"
  nto.SetEx ADS_NAME_TYPE_1779, dn
  result = nto.GetEx(ADS_NAME_TYPE_NT4)
 
  Response.Write "<p>Name in the translated format: " & result(0) & _
       ", & result(1)
 
%>
</body>
</html>

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

ADS_NAME_TYPE_ENUM

IADsNameTranslate

IADsNameTranslate, méthodes de propriété

IADsNameTranslate ::Set