The IADsNameTranslate::Init method initializes a name translate object by binding to a specified directory server, domain, or global catalog, using the credentials of the current user. To initialize the object with a different user credential, use
IADsNameTranslate::InitEx.
Syntax
HRESULT Init(
long lnInitType,
BSTR bstrADsPath
);
Parameters
- lnInitType
-
A type of initialization to be performed. Possible values are defined in
ADS_NAME_INITTYPE_ENUM.
- bstrADsPath
-
The name of the server or domain, depending on the value of lnInitType. When ADS_NAME_INITTYPE_GC is issued, this parameter is ignored. The global catalog server of the domain of the current computer will perform the name translate operations. This method will fail if the computer is not part of a domain as no global catalog will be found in this scenario. For more information, see ADS_NAME_INITTYPE_ENUM.
Return Value
Returns a standard HRESULT or RPC error code, including:
| Return code | Description |
- S_OK
| Initialization is successful.
|
- E_FAIL
| Initialization has failed.
|
- E_ADS_BAD_PARAMETER
| lnInitType is invalid.
|
- HRESULT_FROM_WIN32(ERROR_GEN_FAILURE)
| An unspecified error occurred.
|
Remarks
After the successful initialization, you can proceed to use the name translate object to submit requests of name translations of objects in the directory. For more information, see
IADsNameTranslate::Set, or
IADsNameTranslate::Get.
Examples
The following C/C++ code example uses the IADsNameTranslate::Init method to initialize an IADsNameTranslate object before the distinguished name of a user object is rendered in the Windows NT 4.0 format.
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;}
hr =pNto->Set(ADS_NAME_TYPE_1779,
CComBSTR("cn=jeffsmith,cn=users,dc=Fabrikam,dc=com"));
if(FAILED(hr)) {exit 1;}
BSTR bstr;
hr = pNto->Get(ADS_NAME_TYPE_NT4, &bstr);
printf("Name in the translated format: %S\n", bstr);
SysFreeString(bstr);
pNto->Release();
The following Visual Basic code example uses the IADsNameTranslate::Init method to initialize an IADsNameTranslate object in order to have the distinguished name of a user object rendered in the Windows NT 4.0 user name format.
Dim nto As New NameTranslate
dso="CN=jeffsmith, CN=users, DC=Fabrikam dc=COM"
nto.Init ADS_NAME_INITTYPE_SERVER, "myServer"
nto.Set ADS_NAME_TYPE_1779, dso
trans = nto.Get(ADS_NAME_TYPE_NT4)
The following VBScript/ASP code example uses the IADsNameTranslate::Init method to initialize an IADsNameTranslate object in order to have the distinguished name of a user object rendered in the Windows NT 4.0 user name format.
<%@ 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 = "CN=jeffsmith,CN=Users,DC=Fabrikam,DC=COM"
Set nto = Server.CreateObject("NameTranslate")
nto.Init ADS_NAME_INITTYPE_SERVER, "myServer"
nto.Set ADS_NAME_TYPE_1779, dn
result = nto.Get(ADS_NAME_TYPE_NT4)
Response.Write "<p>Name in the translated format: " & result
%>
</body>
</html>
Requirements
| Minimum supported client | Windows 2000 Professional |
| Minimum supported server | Windows 2000 Server |
| Header | Iads.h |
| DLL | Activeds.dll |
| IID | IID_IADsNameTranslate is defined as B1B272A3-3625-11D1-A3A4-00C04FB950DC |
See Also
- IADsNameTranslate
- IADsNameTranslate::Get
- IADsNameTranslate::InitEx
- IADsNameTranslate::Set
- ADS_NAME_TYPE_ENUM
Send comments about this topic to Microsoft
Build date: 11/12/2009