Freigeben über


IADsNameTranslate::GetEx-Methode (iads.h)

Die IADsNameTranslate::GetEx-Methode ruft die Objektnamen im angegebenen Format ab. Die Objektnamen müssen von IADsNameTranslate::SetEx festgelegt werden.

Syntax

HRESULT GetEx(
  long    lnFormatType,
  VARIANT *pvar
);

Parameter

lnFormatType

Der Formattyp, der für die Ausgabenamen verwendet wird. Weitere Informationen zu den verschiedenen Formattypen, die Sie verwenden können, finden Sie unter ADS_NAME_TYPE_ENUM. Diese Methode unterstützt das ADS_NAME_TYPE_SID_OR_SID_HISTORY_NAME-Element in ADS_NAME_TYPE_ENUM nicht.

pvar

Ein Variantenarray von Zeichenfolgen, die namen der zurückgegebenen Objekte enthalten.

Rückgabewert

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

Hinweise

Diese Methode ruft die Namen mehrerer Objekte ab. Alle zurückgegebenen Namen verwenden jedoch ein einzelnes Format.

Wenn die Verweisverfolgung aktiviert ist, versucht diese Methode nicht, den Pfad eines angegebenen Objekts zu verfolgen und aufzulösen, das sich nicht auf dem verbundenen Server befindet.

Beispiele

Im folgenden C/C++-Codebeispiel wird gezeigt, wie ein distinguished Name, der mit RFC 1779 konform ist, in das GUID-Format übersetzt wird. Der Computername des Verzeichnisservers lautet "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();

Das folgende Codebeispiel zeigt, wie mehrere Namen vom RFC 1779-Typ in den GUID-Typ konvertiert werden. Der Computername des Verzeichnisservers lautet "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)

Im folgenden VBScript/ASP-Codebeispiel werden zwei distinguished Names, die mit RFC 1779 kompatibel sind, in das GUID-Format übersetzt. Der Computername des Verzeichnisservers lautet "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>

Anforderungen

   
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

IADsNameTranslate::SetEx