Partager via


IMAPITable::GetRowCount

S’applique à : Outlook 2013 | Outlook 2016

Retourne le nombre total de lignes dans la table.

HRESULT GetRowCount(
ULONG ulFlags,
ULONG FAR * lpulCount
);

Paramètres

ulFlags

Réservés au; doit être égal à zéro.

lpulCount

[out] Pointeur vers le nombre de lignes dans la table.

Valeur renvoyée

S_OK

Le nombre de lignes a été retourné avec succès.

MAPI_E_BUSY

Une autre opération est en cours qui empêche l’opération de récupération du nombre de lignes de démarrer. Soit l’opération en cours doit être autorisée à se terminer, soit elle doit être arrêtée.

MAPI_E_NO_SUPPORT

La table ne peut pas calculer le nombre de lignes.

MAPI_W_APPROX_COUNT

L’appel a réussi, mais un nombre approximatif de lignes a été retourné, car le nombre exact de lignes n’a pas pu être déterminé en raison de contraintes de mémoire. Pour tester cet avertissement, utilisez la macro HR_FAILED . Consultez Utilisation de macros pour la gestion des erreurs.

Remarques

La méthode IMAPITable ::GetRowCount récupère le nombre total de lignes dans une table.

Remarques pour les responsables de l’implémentation

Si vous ne pouvez pas déterminer le nombre exact de lignes de la table, retournez MAPI_W_APPROX_COUNT et un nombre approximatif de lignes dans le contenu du paramètre lpulCount .

Remarques pour les appelants

Utilisez GetRowCount pour déterminer le nombre de lignes d’une table avant d’effectuer un appel à la méthode IMAPITable ::QueryRows pour récupérer les données. S’il y a moins de vingt lignes dans la table, il est sûr d’appeler QueryPosition pour récupérer la table entière. S’il y a plus de vingt lignes dans la table, envisagez d’effectuer plusieurs appels à QueryPosition et de limiter le nombre de lignes récupérées dans chaque appel.

Certaines tables ne prennent pas en charge GetRowCount et retournent MAPI_E_NO_SUPPORT. Si GetRowCount n’est pas pris en charge, une alternative peut être d’appeler IMAPITable ::QueryPosition. Avec les résultats de QueryPosition, vous pouvez déterminer la relation entre la ligne actuelle et la dernière ligne.

Lorsque GetRowCount retourne MAPI_E_BUSY parce qu’il est temporairement incapable de récupérer un nombre de lignes, appelez la méthode IMAPITable ::WaitForCompletion . Lorsque WaitForCompletion est retourné, réessayez d’appeler GetRowCount. Une autre façon de détecter si une opération asynchrone est en cours consiste à appeler la méthode IMAPITable ::GetStatus et à case activée le contenu du paramètre lpulTableState.

Référence MFCMAPI

Pour voir un exemple de code MFCMAPI, consultez le tableau suivant.

Fichier Fonction Commentaire
MAPIFunctions.cpp
CopyFolderContents
MFCMAPI utilise la méthode IMAPITable ::GetRowCount pour déterminer le nombre de lignes de la table source afin que de la mémoire puisse être allouée pour effectuer la copie.

Voir aussi

IMAPITable::GetStatus

IMAPITable::QueryPosition

IMAPITable::QueryRows

IMAPITable::WaitForCompletion

IMAPITable : IUnknown

MFCMAPI comme un exemple de Code