ADsEncodeBinaryData 함수(adshlp.h)

ADsEncodeBinaryData 함수는 BLOB(Binary Large Object)을 검색 필터에 포함하기에 적합한 유니코드 형식으로 변환합니다.

구문

HRESULT ADsEncodeBinaryData(
  [in]  PBYTE  pbSrcData,
  [in]  DWORD  dwSrcLen,
  [out] LPWSTR *ppszDestData
);

매개 변수

[in] pbSrcData

형식: PBYTE

변환할 BLOB입니다.

[in] dwSrcLen

형식:DWORD

BLOB의 크기(바이트)입니다.

[out] ppszDestData

형식: LPWSTR*

변환된 데이터를 수신하는 null로 끝나는 유니코드 문자열에 대한 포인터입니다.

반환 값

형식: HRESULT

이 메서드는 표준 반환 값과 다음을 지원합니다.

설명

ADSI에서 검색 필터는 유니코드 문자열이어야 합니다. 경우에 따라 필터에는 일반적으로 불투명한 데이터 BLOB으로 표현되는 데이터가 포함됩니다. 예를 들어 검색 필터에 이진 데이터인 개체 보안 식별자를 포함할 수 있습니다. 이 경우 먼저 ADsEncodeBinaryData 함수를 호출하여 이진 데이터를 유니코드 문자열 형식으로 변환해야 합니다. 데이터가 더 이상 필요하지 않으면 FreeADsMem 함수를 호출하여 변환된 유니코드 문자열을 해제합니다. 즉, ppszDestData입니다.

ADsEncodeBinaryData 함수는 알파 숫자 문자를 나타내는 바이트 값을 인코딩하지 않습니다. 대신 인코딩하지 않고 문자열에 문자를 배치합니다. 이렇게 하면 인코딩된 문자와 인코딩되지 않은 문자가 혼합된 문자열이 포함됩니다. 예를 들어 이진 데이터가 0x05|0x1A|0x1B|0x43|0x32 인코딩된 문자열에는 "\05\1A\1BC2"가 포함됩니다. 이는 필터에 영향을 주지 않으며 검색 필터는 이러한 유형의 문자열에서 올바르게 작동합니다.

예제

다음 코드 예제에서는 이 함수를 사용하는 방법을 보여줍니다.

// Test binary values in filters and use
// a binary filter instead of a string filter in ExecuteSearch.

LPWSTR pszPrefix = L"objectSid=%s";
LPWSTR pszBinaryFilter = NULL;
LPWSTR pszDest = NULL;
HRESULT hr = S_OK;
 
BYTE column[] = {
  0x01, 0x05, 0x00, 0x00, 0x00, 0x00, 0x00, 0x05, 0x15, 0x00,
  0x00, 0x00, 0x59, 0x51, 0xb8, 0x17, 0x66, 0x72, 0x5d, 0x25,
  0x64, 0x63, 0x3b, 0x0b, 0x29, 0x99, 0x21, 0x00 };

DWORD dwSize = sizeof(column)/sizeof(BYTE);
 
hr = ADsEncodeBinaryData (
    column,
    dwSize,
    &pszDest
    );

if(hr==S_OK)
{
    dwSize = wcslen(pszPrefix) + wcslen(pszDest) + 1;
    pszBinaryFilter = new WCHAR[dwSize];
    sprintf_s(pszBinaryFilter,pszPrefix,pszDest);
}
else
{
    return hr;
}


 
// Perform the search with the pszDest as the filter string. Code omitted.
. . . 
// Done with the search and free the converted string.
FreeADsMem( pszDest );

요구 사항

요구 사항
지원되는 최소 클라이언트 Windows Vista
지원되는 최소 서버 Windows Server 2008
대상 플랫폼 Windows
헤더 adshlp.h
라이브러리 Activeds.lib
DLL Activeds.dll; AdsLdpc.dll

추가 정보

ADSI 오류 코드

ADSI 함수

FreeADsMem