Recherche de données binaires

Bien que la fonctionnalité de recherche ADSI ne prenne en charge que la recherche de données de type chaîne, il est possible de rechercher des données binaires. Pour ce faire, utilisez la fonction ADsEncodeBinaryData pour convertir les données binaires en une chaîne qui peut être utilisée avec les méthodes de recherche. La recherche de données binaires est particulièrement utile lors de la recherche d’un GUID ou d’un SID, car ces types de données sont stockés sous forme de données binaires.

Lors de l’utilisation de la fonction ADsEncodeBinaryData , la mémoire allouée doit être libérée à l’aide de la fonction FreeADsMem .

L’exemple de code C++ suivant montre comment créer une chaîne de requête pour rechercher un objet qui a une valeur objectGUID particulière.

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;
}