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 |
---|---|
|
Die Anzahl der zurückgegebenen Elemente ist celt. |
|
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 |