Método IEnumVARIANT::Next (oaidl.h)

Recupera los elementos especificados en la secuencia de enumeración.

Sintaxis

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

Parámetros

[in] celt

Número de elementos que se van a recuperar

[out] rgVar

Matriz de al menos tamaño celt en el que se van a devolver los elementos.

[out] pCeltFetched

Número de elementos devueltos en rgVar o NULL.

Valor devuelto

Este método puede devolver uno de estos valores.

Código devuelto Descripción
S_OK
El número de elementos devueltos es celt.
S_FALSE
El número de elementos devueltos es menor que celt.

Comentarios

Si menos del número solicitado de elementos permanecen en la secuencia, Next devuelve solo los elementos restantes. El número real de elementos se devuelve en pCeltFetched, a menos que sea null.

Ejemplos

El código siguiente implementa IEnumVariant::Next. Hay disponible una implementación de ejemplo completa de la interfaz IEnumVariant en el ejemplo com Fundamentals Lines (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;
}

Requisitos

Requisito Value
Plataforma de destino Windows
Encabezado oaidl.h

Consulte también

IEnumVARIANT