structure ADS_VLV (iads.h)

La structure ADS_VLV contient les métadonnées utilisées pour effectuer des recherches de vue de liste virtuelle (VLV). Cette structure sert deux rôles. Tout d’abord, il spécifie les préférences de recherche envoyées au serveur. Ensuite, elle 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 auprès du serveur.

dwAfterCount

Indique le nombre d’entrées, après l’entrée cible, que le client demande auprès du 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 qui est égal au nombre de contenu supposé du client, la cible est la dernière entrée de la liste. En 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 des clients.

pszTarget

facultatif. 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

facultatif. 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, il doit être défini sur la taille de l’identificateur en octets. Sinon, elle doit être égale à 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

facultatif. 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 . En sortie, si ce membre contient une valeur non NULL , cela pointe vers l’ID de contexte retourné par le serveur.

Remarques

Pour définir la valeur 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 commençant 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 en tant que 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;

Configuration requise

   
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

Comment effectuer une recherche à l’aide de VLV

IDirectorySearch