Partager via


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

La méthode IADsNameTranslate::GetEx obtient les noms d’objets au format spécifié. Les noms d’objets doivent être définis par IADsNameTranslate::SetEx.

Syntaxe

HRESULT GetEx(
  long    lnFormatType,
  VARIANT *pvar
);

Paramètres

lnFormatType

Type de format utilisé pour les noms de sortie. Pour plus d’informations sur les différents types de formats que vous pouvez utiliser, consultez ADS_NAME_TYPE_ENUM. Cette méthode ne prend pas en charge l’élément ADS_NAME_TYPE_SID_OR_SID_HISTORY_NAME dans ADS_NAME_TYPE_ENUM.

pvar

Tableau variant de chaînes contenant les noms des objets retournés.

Valeur retournée

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

Notes

Cette méthode obtient les noms de plusieurs objets. Toutefois, tous les noms retournés utilisent un format unique.

Lorsque la recherche de référence est activée, cette méthode ne tente pas de rechercher et de résoudre le chemin d’accès d’un objet spécifié qui ne réside pas sur le serveur connecté.

Exemples

L’exemple de code C/C++ suivant montre comment traduire un nom unique conforme à la RFC 1779 au format GUID. Le nom de l’ordinateur du serveur d’annuaire est « myServer ».

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 suivant montre comment convertir plusieurs noms du type RFC 1779 en type GUID. Le nom de l’ordinateur du serveur d’annuaire est « myServer ».

Dim nto As new NameTranslate
Dim result As Variant
Dim ns(1) As String
 
nto.Init ADS_NAME_INITTTYPE_SERVER, "myServer"
 
ns(0)="CN=rob,CN=users,DC=example,DC=Fabrikam,DC=COM,O=Internet"
ns(1)="CN=jim,CN=users,DC=example,DC=Fabrikam,DC=COM,O=Internet"
 
nto.SetEx ADS_NAME_TYPE_1779, ns
nto.GetEx ADS_NAME_TYPE_GUID, result
MsgBox "name(0): " & result(0) & " name(1): " & result(1)

L’exemple de code VBScript/ASP suivant traduit deux noms uniques conformes à RFC 1779 au format GUID. Le nom de l’ordinateur du serveur d’annuaire est « myServer ».

<%@ Language=VBScript %>
<html>
<body>
<%
  Dim nto
  const ADS_NAME_INITTYPE_SERVER = 2
  const ADS_NAME_TYPE_1779 = 1
  const ADS_NAME_TYPE_NT4 = 3
 
  server = "myServer"
  user   = "jeffsmith"
  dom    = "Fabrikam"
  passwd = "top secret" 
 
  Set nto = Server.CreateObject("NameTranslate")
  nto.InitEx ADS_NAME_INITTYPE_SERVER, server, user, dom, passwd
 
  ns(0)="CN=rob,CN=users,DC=example,DC=Fabrikam,DC=COM,O=Internet"
  ns(1)="CN=jim,CN=users,DC=example,DC=Fabrikam,DC=COM,O=Internet"
 
  nto.SetEx ADS_NAME_TYPE_1779, ns
  result = nto.GetEx(ADS_NAME_TYPE_GUID)
 
  Response.Write "<p>Names in the translated format: " & result(0) & _
    ", " & result(1)
 
%>
</body>
</html>

Configuration requise

   
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::SetEx