Share via


Método IADsNameTranslate::SetEx (iads.h)

El método IADsNameTranslate::SetEx establece una matriz de objetos para la traducción de nombres. Los objetos especificados deben existir en el servidor de directorio conectado. Para establecer el nombre y el formato de un único objeto de directorio, use el método IADsNameTranslate::Set .

Sintaxis

HRESULT SetEx(
  long    lnFormatType,
  VARIANT pvar
);

Parámetros

lnFormatType

Tipo de formato de los nombres de entrada. Para obtener más información, consulte ADS_NAME_TYPE_ENUM.

pvar

Matriz variant de cadenas que contienen nombres de objeto.

Valor devuelto

Este método admite los valores devueltos HRESULT estándar, entre los que se incluyen:

Comentarios

No puede usar el método IADsNameTranslate::SetEx para establecer la traducción de nombres para objetos que residen en otros servidores, incluso cuando la opción de búsqueda de referencias está habilitada. Para obtener más información sobre el seguimiento de referencias, vea IADsNameTranslate (Métodos de propiedad).

Puede usar IADsNameTranslate::SetEx para establecer nombres para varios objetos. Sin embargo, todos los nombres deben tener el mismo formato.

Ejemplos

En el siguiente ejemplo de código de C/C++ se usa el método IADsNameTranslate::SetEx para configurar una matriz de objetos cuyos nombres se van a traducir del formato RFC 1779 al formato de nombre de usuario de 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();

En el siguiente ejemplo de código de Visual Basic se usa el método IADsNameTranslate::SetEx para configurar una matriz de objetos cuyos nombres se van a traducir del formato RFC 1779 al formato de nombre de usuario del .

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)

En el siguiente ejemplo de código VBScript/ASP se usa el método IADsNameTranslate::SetEx para configurar una matriz de objetos cuyos nombres se van a traducir del formato RFC 1779 al formato de nombre de usuario del .

<%@ 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>

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

ADS_NAME_TYPE_ENUM

IADsNameTranslate

Métodos de propiedad IADsNameTranslate

IADsNameTranslate::Set