Partager via


IMAPITable::QueryPosition

S’applique à : Outlook 2013 | Outlook 2016

Récupère la position de ligne de table actuelle du curseur, en fonction d’une valeur fractionnaire.

HRESULT QueryPosition(
ULONG FAR * lpulRow,
ULONG FAR * lpulNumerator,
ULONG FAR * lpulDenominator
);

Paramètres

lpulRow

[out] Pointeur vers le numéro de la ligne actuelle. Le numéro de ligne est de base zéro ; la première ligne de la table est égale à zéro.

lpulNumerator

[out] Pointeur vers le numérateur pour la fraction identifiant la position de la table.

lpulDenominator

[out] Pointeur vers le dénominateur de la fraction identifiant la position de la table. Le paramètre lpulDenominator ne peut pas être égal à zéro.

Valeur renvoyée

S_OK

La méthode a retourné des valeurs valides dans lpulRow, lpulNumerator et lpulDenominator.

Remarques

La méthode IMAPITable ::QueryPosition détermine la position actuelle de la ligne et retourne à la fois le nombre de la ligne actuelle et une valeur fractionnaire indiquant sa position relative à la fin de la table. MAPI définit la ligne actuelle comme la ligne suivante à lire.

Remarques pour les responsables de l’implémentation

Vous n’avez pas besoin de retourner le nombre exact de lignes dans la table pour le paramètre lpulDenominator ; il peut s’agir d’une approximation.

Si vous ne pouvez pas déterminer la ligne actuelle, retournez la valeur 0xFFFFFFFF dans lpulRow.

Remarques pour les appelants

Vous pouvez utiliser QueryPosition pour positionner une zone de défilement dans une barre de défilement. Par exemple, dans une table contenant 100 lignes, si QueryPosition renvoie la valeur 75 dans le paramètre lpulNumerator , 100 dans le paramètre lpulDenominator et 75 dans le paramètre lpulRow , vous pouvez placer la zone de défilement 3/4 dans la barre de défilement.

Ne vous fiez pas à la valeur de lpulDenominator étant le nombre de lignes dans la table. QueryPosition ne peut pas toujours identifier la ligne exacte sur laquelle le curseur est positionné.

Un appel à QueryPosition peut impliquer de grandes quantités de mémoire, en particulier pour les grandes tables classées. Si le paramètre lpulRow est défini sur 0xFFFFFFFF, trop de mémoire était nécessaire pour que QueryPosition détermine la ligne actuelle. Appelez la méthode IMAPITable ::SeekRowApprox pour positionner la table sur la ligne identifiée par les paramètres lpulNumerator et lpulDenominator . Toutefois, ne vous attendez pas toujours à ce que SeekRowApprox établisse la position actuelle que la même ligne QueryPosition aurait si la mémoire n’avait pas été un facteur.

Voir aussi

IMAPITable::SeekRowApprox
IMAPITable : IUnknown