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