ADS_VLV structure (iads.h)

La structure de ADS_VLV contient des métadonnées utilisées pour effectuer des recherches en affichage de liste virtuelle (VLV). Cette structure remplit deux rôles. Tout d’abord, il spécifie les préférences de recherche envoyées au serveur. Ensuite, il retourne les métadonnées VLV du serveur.

Syntaxe

typedef struct _ads_vlv {
  DWORD  dwBeforeCount;
  DWORD  dwAfterCount;
  DWORD  dwOffset;
  DWORD  dwContentCount;
  LPWSTR pszTarget;
  DWORD  dwContextIDLength;
  LPBYTE lpContextID;
} ADS_VLV, *PADS_VLV;

Membres

dwBeforeCount

Indique le nombre d’entrées, avant l’entrée cible, que le client demande au serveur.

dwAfterCount

Indique le nombre d’entrées, après l’entrée cible, que le client demande au serveur.

dwOffset

Lors de l’entrée, indique le décalage demandé de l’entrée cible dans la liste. Si le client spécifie un décalage égal au nombre de contenu supposé du client, la cible est la dernière entrée de la liste. Sur la sortie, indique la meilleure estimation du serveur quant au décalage réel de la position de l’entrée cible retournée dans la liste.

dwContentCount

La valeur d’entrée représente la valeur estimée du client pour le nombre de contenu. La valeur de sortie est l’estimation du nombre de contenu par le serveur. Si le client envoie un nombre de contenu égal à zéro, cela signifie que le serveur doit utiliser son estimation du nombre de contenu à la place de celui du client.

pszTarget

Optionnel. Chaîne Unicode terminée par null qui indique l’entrée cible souhaitée demandée par le client. Si ce paramètre contient une valeur non NULL , le serveur ignore la valeur spécifiée dans dwOffset et recherche la première entrée cible dont la valeur de la clé de tri primaire est supérieure ou égale à la chaîne spécifiée, en fonction de l’ordre de tri de la liste.

dwContextIDLength

Optionnel. Paramètre qui indique la longueur de l’identificateur de contexte. Lors de l’entrée, si vous passez un identificateur de contexte dans lpContextID, celui-ci doit être défini sur la taille de l’identificateur en octets. Sinon, elle doit être définie sur zéro. En sortie, si lpContextID contient une valeur non NULL , cela indique la longueur, en octets, de l’ID de contexte retourné par le serveur.

lpContextID

Optionnel. Indique l’identificateur de contexte généré par le serveur. Ce paramètre peut être envoyé aux clients. Si un client reçoit ce paramètre, il doit le retourner inchangé dans une requête ultérieure qui se rapporte à la même liste. Cette interaction peut améliorer les performances et l’efficacité des serveurs. Si vous ne transmettez pas d’identificateur de contexte au serveur, ce membre doit avoir la valeur NULL . Lors de la sortie, si ce membre contient une valeur non NULL , cela pointe vers l’ID de contexte retourné par le serveur.

Notes

Pour définir la VLV par dwContentCount et dwOffset, vous devez également définir pszTarget sur une valeur NULL . Si pszTarget contient une valeur non NULL , elle est utilisée comme offset. Sinon, lOffset est utilisé comme offset. Il est recommandé d’initialiser la structure à zéro.

Exemples

L’exemple de code suivant montre comment récupérer les 30 premières entrées d’un jeu de résultats.

ADS_SEARCHPREF_INFO prefInfo[2];
ADS_VLV vlv;

vlv.dwBeforeCount=0;
vlv.dwAfterCount=30;
vlv.dwOffset=1;
vlv.dwContentCount=0;
vlv.pszTarget = NULL; 
vlv.dwContextIDLength = 0;
vlv.lpContextID = NULL;

// VLV set preferences.
prefInfo[0].dwSearchPref = ADS_SEARCHPREF_VLV;
prefInfo[0].vValue.dwType = ADSTYPE_PROV_SPECIFIC;
prefInfo[0].vValue.ProviderSpecific.dwLength = sizeof(ADS_VLV);
prefInfo[0].vValue.ProviderSpecific.lpValue = (LPBYTE) &vlv;

// Sort key set preferences.
prefInfo[1].dwSearchPref = ADS_SEARCHPREF_SORT_ON;
prefInfo[1].vValue.dwType = ADSTYPE_PROV_SPECIFIC;
prefInfo[1].vValue.ProviderSpecific.dwLength = sizeof(ADS_SORTKEY);
prefInfo[1].vValue.ProviderSpecific.lpValue = (LPBYTE) pSortKey;

hr = m_pSearch->SetSearchPreference(prefInfo, 2);

L’exemple de code suivant montre comment récupérer les 50 premières entrées d’un jeu de résultats qui commencent par les lettres « Ha ».

ADS_VLV vlv;

vlv.dwBeforeCount=0;
vlv.dwAfterCount=50;
vlv.pszTarget= L"Ha";
vlv.lpContextID = NULL; 
vlv.dwContextIDLength = 0;

// For more information about how to set the preference, see the previous code example.

L’exemple de code suivant montre comment récupérer les 100 premières entrées à la cible approximative de 60 %, en supposant que le serveur a précédemment retourné dwContentCount avec la valeur 4294.

Notez que vlvResp représente une structure ADS_VLV précédemment retournée par le serveur.
 
ADS_VLV vlv;

vlv.dwBeforeCount=50;
vlv.dwAfterCount=50;
vlv.dwOffset=2577;  
vlv.dwContentCount=4294;
vlv.pszTarget = NULL;
vlv.dwContextIDLength = vlvResp.dwContextIDLength; 
vlv.lpContextID = vlvResp.lpContextID;

Spécifications

   
Client minimal pris en charge Windows Vista
Serveur minimal pris en charge Windows Server 2008
En-tête iads.h

Voir aussi

ADS_SEARCHPREF_ENUM

Guide pratique pour effectuer une recherche à l’aide de VLV

IDirectorySearch