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