Partager via


IEnumVARIANT ::Next, méthode (oaidl.h)

Récupère les éléments spécifiés dans la séquence d’énumération.

Syntaxe

HRESULT Next(
  [in]  ULONG   celt,
  [out] VARIANT *rgVar,
  [out] ULONG   *pCeltFetched
);

Paramètres

[in] celt

Nombre d’éléments à récupérer

[out] rgVar

Tableau de celte de taille minimale dans lequel les éléments doivent être retournés.

[out] pCeltFetched

Nombre d’éléments retournés dans rgVar, ou NULL.

Valeur retournée

Cette méthode peut retourner l’une de ces valeurs.

Code de retour Description
S_OK
Le nombre d’éléments retournés est celte.
S_FALSE
Le nombre d’éléments retournés est inférieur à celte.

Remarques

Si le nombre d’éléments restant dans la séquence est inférieur au nombre demandé, Next retourne uniquement les éléments restants. Le nombre réel d’éléments est retourné dans pCeltFetched, sauf s’il est null.

Exemples

Le code suivant implémente IEnumVariant ::Next. Un exemple complet d’implémentation de l’interface IEnumVariant est disponible dans l’exemple DE LIGNES DE BASE COM (Enumvar.cpp).

STDMETHODIMP
CEnumVariant::Next(ULONG cElements, VARIANT * pvar, ULONG * pcElementFetched)
{
   HRESULT hr;
   ULONG l;
   long l1;
   ULONG l2;

   if (pcElementFetched != NULL)
      *pcElementFetched = 0;

   if (pvar == NULL)
      return E_INVALIDARG;

   for (l=0; l<cElements; l++)
      VariantInit(&pvar[l]);

   // Retrieve the next cElements elements.
   // m_lLBound+m_cElements = # of elements in the m_psa collection.

   for (l1=m_lCurrent, l2=0; l1<(long)(m_lLBound+m_cElements) &&
      l2<cElements; l1++, l2++)
   {
      hr = SafeArrayGetElement(m_psa, &l1, &pvar[l2]); 
      if (FAILED(hr))
         goto error; 
   }
   // Set count of elements retrieved.
   if (pcElementFetched != NULL)
      *pcElementFetched = l2;
   m_lCurrent = l1;

   return  (l2 < cElements) ? S_FALSE : NOERROR;

error:
   for (l=0; l<cElements; l++)
      VariantClear(&pvar[l]);
   return hr;
}

Configuration requise

Condition requise Valeur
Plateforme cible Windows
En-tête oaidl.h

Voir aussi

IEnumVARIANT