Bagikan melalui


Metode IADsNameTranslate::SetEx (iads.h)

Metode IADsNameTranslate::SetEx menetapkan array objek untuk terjemahan nama. Objek yang ditentukan harus ada di server direktori yang tersambung. Untuk mengatur nama dan format objek direktori tunggal, gunakan metode IADsNameTranslate::Set .

Sintaks

HRESULT SetEx(
  long    lnFormatType,
  VARIANT pvar
);

Parameter

lnFormatType

Jenis format nama input. Untuk informasi selengkapnya, lihat ADS_NAME_TYPE_ENUM.

pvar

Array varian string yang menampung nama objek.

Nilai kembali

Metode ini mendukung nilai pengembalian HRESULT standar, termasuk:

Keterangan

Anda tidak dapat menggunakan metode IADsNameTranslate::SetEx untuk mengatur terjemahan nama untuk objek yang berada di server lain, bahkan ketika opsi pengejaran rujukan diaktifkan. Untuk informasi selengkapnya tentang pengejaran rujukan, lihat Metode Properti IADsNameTranslate.

Anda dapat menggunakan IADsNameTranslate::SetEx untuk mengatur nama untuk beberapa objek. Namun, semua nama harus memiliki format yang sama.

Contoh

Contoh kode C/C++ berikut menggunakan metode IADsNameTranslate::SetEx untuk menyiapkan array objek yang namanya akan diterjemahkan dari format RFC 1779 ke format nama pengguna 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();

Contoh kode Visual Basic berikut menggunakan metode IADsNameTranslate::SetEx untuk menyiapkan array objek yang namanya akan diterjemahkan dari format RFC 1779 ke format nama pengguna 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)

Contoh kode VBScript/ASP berikut menggunakan metode IADsNameTranslate::SetEx untuk menyiapkan array objek yang namanya akan diterjemahkan dari format RFC 1779 ke format nama pengguna.

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

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista
Server minimum yang didukung Windows Server 2008
Target Platform Windows
Header iads.h
DLL Activeds.dll

Lihat juga

ADS_NAME_TYPE_ENUM

IADsNameTranslate

Metode Properti IADsNameTranslate

IADsNameTranslate::Set