Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Fungsi ADsEncodeBinaryData mengonversi objek besar biner (BLOB) ke format Unicode yang cocok untuk disematkan dalam filter pencarian.
Sintaks
HRESULT ADsEncodeBinaryData(
[in] PBYTE pbSrcData,
[in] DWORD dwSrcLen,
[out] LPWSTR *ppszDestData
);
Parameter
[in] pbSrcData
Jenis: PBYTE
BLOB yang akan dikonversi.
[in] dwSrcLen
Jenis: DWORD
Ukuran, dalam byte, dari BLOB.
[out] ppszDestData
Jenis: LPWSTR*
Penunjuk ke string Unicode yang dihentikan null yang menerima data yang dikonversi.
Mengembalikan nilai
Jenis: HRESULT
Metode ini mendukung nilai pengembalian standar, serta yang berikut ini.
Keterangan
Di ADSI, filter pencarian harus berupa string Unicode. Terkadang, filter berisi data yang biasanya diwakili oleh BLOB data buram. Misalnya, Anda mungkin ingin menyertakan pengidentifikasi keamanan objek dalam filter pencarian, yang merupakan data biner. Dalam hal ini, Anda harus terlebih dahulu memanggil fungsi ADsEncodeBinaryData untuk mengonversi data biner ke format string Unicode. Ketika data tidak lagi diperlukan, panggil fungsi FreeADsMem untuk membebaskan string Unicode yang dikonversi; yaitu, ppszDestData.
Fungsi ADsEncodeBinaryData tidak mengodekan nilai byte yang mewakili karakter alfa-numerik. Sebagai gantinya, ia akan menempatkan karakter ke dalam string tanpa mengodekannya. Ini menghasilkan string yang berisi campuran karakter yang dikodekan dan tidak dikodekan. Misalnya, jika data biner 0x05|0x1A|0x1B|0x43|0x32, string yang dikodekan akan berisi "\05\1A\1BC2". Ini tidak berpengaruh pada filter dan filter pencarian akan bekerja dengan benar dengan jenis string ini.
Contoh
Contoh kode berikut menunjukkan cara menggunakan fungsi ini.
// 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 );
Persyaratan
| Persyaratan | Nilai |
|---|---|
| Klien minimum yang didukung | Windows Vista |
| Server minimum yang didukung | Windows Server 2008 |
| Target Platform | Windows |
| Header | adshlp.h |
| Pustaka | Activeds.lib |
| DLL | Activeds.dll; AdsLdpc.dll |