ADS_NAME_INITTYPE_ENUM 枚举 (iads.h)

ADS_NAME_INITTYPE_ENUM枚举指定要对 NameTranslate 对象执行的初始化类型。 它在 IADsNameTranslate 接口中使用

语法

typedef enum __MIDL___MIDL_itf_ads_0001_0050_0002 {
  ADS_NAME_INITTYPE_DOMAIN = 1,
  ADS_NAME_INITTYPE_SERVER = 2,
  ADS_NAME_INITTYPE_GC = 3
} ADS_NAME_INITTYPE_ENUM;

常量

 
ADS_NAME_INITTYPE_DOMAIN
值:1
通过设置对象绑定到的域来初始化 NameTranslate 对象。
ADS_NAME_INITTYPE_SERVER
值: 2
通过设置对象绑定到的服务器来初始化 NameTranslate 对象。
ADS_NAME_INITTYPE_GC
值: 3
通过查找对象绑定到的全局目录来初始化 NameTranslate 对象。

注解

IADsNameTranslate::Init 方法或 IADsNameTranslate::InitEx 方法使用这些选项初始化 NameTranslate 对象。 使用 ADS_NAME_INITTYPE_SERVER 时,请指定目录服务器的计算机名称。 设置 ADS_NAME_INITTYPE_DOMAIN 后,在目录林中提供域名。 发出 ADS_NAME_INITTYPE_GC 时, 将忽略 IADsNameTranslate::InitIADsNameTranslate::InitEx 中的第二个参数。 当前计算机域的全局目录服务器用于执行名称转换操作。 如果主计算机不是域的一部分,则初始化失败,因为找不到全局目录。

注意 由于 VBScript 无法从类型库读取数据,因此 VBScript 应用程序无法识别上面定义的符号常量。 请改用数字常量在 VBScript 应用程序中设置适当的标志。 若要将符号常量用作良好的编程做法,请在 VBScript 应用程序中编写此类常量的显式声明,如此处所示。
 

示例

下面的 C/C++ 代码示例使用 IADsNameTranslate::Init 方法通过全局目录初始化 NameTranslate 对象,前提是运行应用程序的客户端位于目录林中。 然后,它以 Windows 格式呈现用户对象的可分辨名称。

IADsNameTranslate *pNto = NULL;
HRESULT hr = S_OK;
CComBSTR sbstr;

hr = CoCreateInstance(CLSID_NameTranslate,
                      NULL,
                      CLSCTX_INPROC_SERVER,
                      IID_IADsNameTranslate,
                      (void**)&pNto);
if(FAILED(hr)) { exit 1;}
 
hr = pNto->Init(ADS_NAME_INITTYPE_GC, CComBSTR(""));
if (FAILED(hr))
{ 
   goto cleanup;
}
 
hr =pNto->Set(ADS_NAME_TYPE_1779,
             CComBSTR(L"cn=jeffsmith,cn=users,dc=Fabrikam,dc=com"));
if(FAILED(hr))
{
   goto cleanup;
}
 
hr = pNto->Get(ADS_NAME_TYPE_NT4, &sbstr);
printf("Name in the translated format: %S\n", sbstr);

cleanup: 
if(pNto)
{
    pNto->Release();
}

下面的 Visual Basic 代码示例使用 IADsNameTranslate::Init 方法通过全局目录初始化 NameTranslate 对象,前提是运行应用程序的客户端位于目录林中。 然后,它以 Windows 格式呈现用户对象的可分辨名称。

Dim nto as New NameTranslate
dso="CN=jeffsmith, CN=users, DC=Fabrikam dc=COM"
 
nto.Init  ADS_NAME_INITTYPE_GC, ""
nto.Set ADS_NAME_TYPE_1779, dso
trans = nto.Get(ADS_NAME_TYPE_NT4)   
MsgBox "Translated name = " & trans

下面的 VBScript/ASP 代码示例使用 IADsNameTranslate::Init 方法通过全局目录初始化 NameTranslate 对象,前提是运行应用程序的客户端位于目录林中。 然后,它以 Windows 格式呈现用户对象的可分辨名称。

<%@ Language=VBScript %>
<html>
<body>
<%
  Dim nto
  const ADS_NAME_INITTYPE_GC = 3  ' VBScript cannot read. 
  const ADS_NAME_TYPE_1779 = 1    ' Enumeration definition.
  const ADS_NAME_TYPE_NT4 = 3
 
  dn = "CN=jeff smith,CN=Users,DC=Fabrikam,DC=COM" 
 
  Set nto = Server.CreateObject("NameTranslate")
  nto.Init ADS_NAME_INITTYPE_GC, ""
  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>

要求

   
最低受支持的客户端 Windows Vista
最低受支持的服务器 Windows Server 2008
标头 iads.h

另请参阅

ADSI 枚举

IADsNameTranslate