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 |