IADsNameTranslate::SetEx-Methode (iads.h)

Die IADsNameTranslate::SetEx-Methode erstellt ein Array von Objekten für die Namensübersetzung. Die angegebenen Objekte müssen auf dem verbundenen Verzeichnisserver vorhanden sein. Um den Namen und das Format eines einzelnen Verzeichnisobjekts festzulegen, verwenden Sie die IADsNameTranslate::Set-Methode .

Syntax

HRESULT SetEx(
  long    lnFormatType,
  VARIANT pvar
);

Parameter

lnFormatType

Der Formattyp der Eingabenamen. Weitere Informationen finden Sie unter ADS_NAME_TYPE_ENUM.

pvar

Ein Variantenarray von Zeichenfolgen, die Objektnamen enthalten.

Rückgabewert

Diese Methode unterstützt die HRESULT-Standardrückgabewerte, einschließlich:

Hinweise

Sie können die IADsNameTranslate::SetEx-Methode nicht verwenden, um die Namensübersetzung für Objekte festzulegen, die sich auf anderen Servern befinden, auch wenn die Option zur Verweisnachfolge aktiviert ist. Weitere Informationen zur Empfehlungssuche finden Sie unter Methoden der IADsNameTranslate-Eigenschaft.

Sie können IADsNameTranslate::SetEx verwenden, um Namen für mehrere Objekte festzulegen. Alle Namen müssen jedoch das gleiche Format aufweisen.

Beispiele

Im folgenden C/C++-Codebeispiel wird die IADsNameTranslate::SetEx-Methode verwendet, um ein Array von Objekten einzurichten, deren Namen aus dem RFC 1779-Format in das Windows-Benutzernamenformat übersetzt werden sollen.

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();

Im folgenden Visual Basic-Codebeispiel wird die IADsNameTranslate::SetEx-Methode verwendet, um ein Array von Objekten einzurichten, deren Namen aus dem RFC 1779-Format in das Benutzernamenformat s übersetzt werden sollen.

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)

Im folgenden VBScript/ASP-Codebeispiel wird die IADsNameTranslate::SetEx-Methode verwendet, um ein Array von Objekten einzurichten, deren Namen aus dem RFC 1779-Format in das s-Benutzernamenformat übersetzt werden sollen.

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

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista
Unterstützte Mindestversion (Server) Windows Server 2008
Zielplattform Windows
Kopfzeile iads.h
DLL Activeds.dll

Weitere Informationen

ADS_NAME_TYPE_ENUM

IADsNameTranslate

Methoden der IADsNameTranslate-Eigenschaft

IADsNameTranslate::Set