IEnumVARIANT::Next-Methode (oaidl.h)

Ruft die angegebenen Elemente in der Enumerationssequenz ab.

Syntax

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

Parameter

[in] celt

Die Anzahl der abzurufenden Elemente

[out] rgVar

Ein Array von mindestens größe celt , in dem die Elemente zurückgegeben werden sollen.

[out] pCeltFetched

Die Anzahl der in rgVar oder NULL zurückgegebenen Elemente.

Rückgabewert

Diese Methode kann einen dieser Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Die Anzahl der zurückgegebenen Elemente ist celt.
S_FALSE
Die Anzahl der zurückgegebenen Elemente ist kleiner als celt.

Hinweise

Wenn weniger als die angeforderte Anzahl von Elementen in der Sequenz verbleibt, gibt Next nur die restlichen Elemente zurück. Die tatsächliche Anzahl von Elementen wird in pCeltFetched zurückgegeben, es sei denn, sie ist NULL.

Beispiele

Der folgende Code implementiert IEnumVariant::Next. Eine vollständige Beispielimplementierung der IEnumVariant-Schnittstelle ist im Beispiel COM Fundamentals Lines (Enumvar.cpp) verfügbar.

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;
}

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile oaidl.h

Weitere Informationen

IEnumVARIANT