다음을 통해 공유


IADsNameTranslate::GetEx 메서드(iads.h)

IADsNameTranslate::GetEx 메서드는 개체 이름을 지정된 형식으로 가져옵니다. 개체 이름은 IADsNameTranslate::SetEx로 설정해야 합니다.

구문

HRESULT GetEx(
  long    lnFormatType,
  VARIANT *pvar
);

매개 변수

lnFormatType

출력 이름에 사용되는 형식 형식입니다. 사용할 수 있는 다양한 형식에 대한 자세한 내용은 ADS_NAME_TYPE_ENUM 참조하세요. 이 메서드는 ADS_NAME_TYPE_ENUM ADS_NAME_TYPE_SID_OR_SID_HISTORY_NAME 요소를 지원하지 않습니다.

pvar

반환된 개체의 이름을 포함하는 문자열의 변형 배열입니다.

반환 값

이 메서드는 다음을 포함하여 표준 HRESULT 반환 값을 지원합니다.

설명

이 메서드는 여러 개체의 이름을 가져옵니다. 그러나 반환된 모든 이름은 단일 형식을 사용합니다.

조회 추적이 켜져 있으면 이 메서드는 연결된 서버에 없는 지정된 개체의 경로를 추적하여 resolve 시도하지 않습니다.

예제

다음 C/C++ 코드 예제에서는 RFC 1779를 준수하는 고유 이름을 GUID 형식으로 변환하는 방법을 보여줍니다. 디렉터리 서버의 컴퓨터 이름은 "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();

다음 코드 예제에서는 RFC 1779 형식에서 GUID 형식으로 여러 이름을 변환하는 방법을 보여 있습니다. 디렉터리 서버의 컴퓨터 이름은 "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)

다음 VBScript/ASP 코드 예제에서는 RFC 1779를 준수하는 두 개의 고유 이름을 GUID 형식으로 변환합니다. 디렉터리 서버의 컴퓨터 이름은 "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>

요구 사항

   
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
대상 플랫폼 Windows
헤더 iads.h
DLL Activeds.dll

참고 항목

ADS_NAME_TYPE_ENUM

IADsNameTranslate

IADsNameTranslate::SetEx