搜尋二進位數據
雖然 ADSI 搜尋功能只支援搜尋字串數據,但可以搜尋二進位數據。 若要這樣做,請使用 ADsEncodeBinaryData 函式,將二進位數據轉換成可與搜尋方法搭配使用的字串。 搜尋 GUID 或 SID 時,搜尋二進位數據特別有用,因為這些數據類型會儲存為二進位數據。
使用 ADsEncodeBinaryData 函式時,必須使用 FreeADsMem 函式釋放配置的記憶體。
下列 C++ 程式代碼範例示範如何建置查詢字串,以搜尋具有特定 objectGUID 值的物件。
LPWSTR pwszGuid = NULL;
LPWSTR pwszFormat = L"(objectGUID=%s)";
LPWSTR pwszSearch = NULL;
hr = ADsEncodeBinaryData((LPBYTE)pguid, sizeof(GUID), &pwszGuid);
if(FAILED(hr))
{
goto cleanup;
}
pwszSearch = new WCHAR[lstrlenW(pwszFormat) + lstrlenW(pwszGuid) + 1];
if(NULL == pwszSearch)
{
goto cleanup;
}
swprintf_s(pwszSearch, pwszFormat, pwszGuid);
// Use pwszSearch to perform a query for the object.
cleanup:
if(pwszGuid)
{
FreeADsMem(pwszGuid);
}
if(pwszSearch)
{
delete pwszSearch;
}