IEnumVARIANT::Next
celt, rgvar, pceltFetched)
unsigned long celt
VARIANT FAR* rgvar
unsigned long FAR* pceltFetched
Attempts to get the next
celt items in the enumeration sequence and return them through the array pointed
to by
rgvar.
Parameters
celt
The number of elements to be returned.
rgvar
An array of at least size
celt in which the elements are to be returned.
pceltFetched
Pointer to the number of elements returned in
rgvar, or NULL.
Return Value
The SCODE obtained from the returned HRESULT is one of the following:
SCODE
| Meaning
|
S_OK
| The number of elements returned is celt.
|
S_FALSE
| The number of elements returned is less than celt.
|
Comments
If fewer than the requested number of elements remain in the sequence, return
only the remaining elements; the actual number of elements returned is passed
through *
pceltFetched (unless it is NULL).
Example
The following code implements
IEnumVariant::Next for collections in the Lines sample (ENUMVAR.CPP):
STDMETHODIMP
CEnumVariant::Next(ULONG cElements, VARIANT FAR* pvar, ULONG FAR*
pcElementFetched)
{
HRESULT hr;
ULONG l;
long l1;
ULONG l2;
if (pcElementFetched != NULL)
for (l=0; l<cElements; l++)
VariantInit(&pvar[l]);
// Retrieve the next cElements elements.
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)
m_lCurrent = l1;
return (l2 < cElements) ? ResultFromScode(S_FALSE) : NOERROR;
error:
for (l=0; l<cElements; l++)
VariantClear(&pvar[l]);
return hr;
}
- Software for developers
-
Delphi Components
.Net Components
Software for Android Developers
- More information resources
-
MegaDetailed.Net
Unix Manual Pages
Delphi Examples