IADsNameTranslate ::SetEx, méthode (iads.h)
La méthode IADsNameTranslate ::SetEx établit un tableau d’objets pour la traduction de noms. Les objets spécifiés doivent exister dans le serveur d’annuaire connecté. Pour définir le nom et le format d’un objet de répertoire unique, utilisez la méthode IADsNameTranslate ::Set .
Syntaxe
HRESULT SetEx(
long lnFormatType,
VARIANT pvar
);
Paramètres
lnFormatType
Type de format des noms d’entrée. Pour plus d’informations, consultez ADS_NAME_TYPE_ENUM.
pvar
Tableau de variantes de chaînes qui contiennent des noms d’objets.
Valeur retournée
Cette méthode prend en charge les valeurs de retour HRESULT standard, notamment :
Remarques
Vous ne pouvez pas utiliser la méthode IADsNameTranslate ::SetEx pour définir la traduction de noms pour les objets résidant sur d’autres serveurs, même lorsque l’option de recherche de référence est activée. Pour plus d’informations sur la poursuite des références, consultez IADsNameTranslate, méthodes de propriété.
Vous pouvez utiliser IADsNameTranslate ::SetEx pour définir des noms pour plusieurs objets. Toutefois, tous les noms doivent être du même format.
Exemples
L’exemple de code C/C++ suivant utilise la méthode IADsNameTranslate ::SetEx pour configurer un tableau d’objets dont les noms doivent être traduits du format RFC 1779 au format de nom d’utilisateur 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();
L’exemple de code Visual Basic suivant utilise la méthode IADsNameTranslate ::SetEx pour configurer un tableau d’objets dont les noms doivent être traduits du format RFC 1779 au format de nom d’utilisateur 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)
L’exemple de code VBScript/ASP suivant utilise la méthode IADsNameTranslate ::SetEx pour configurer un tableau d’objets dont les noms doivent être traduits du format RFC 1779 au format de nom d’utilisateur s.
<%@ 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>
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista |
Serveur minimal pris en charge | Windows Server 2008 |
Plateforme cible | Windows |
En-tête | iads.h |
DLL | Activeds.dll |