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 |