IEnumVARIANT::Next
9/8/2008
Esse método tenta get o próximo celt Itens a seqüência enumeração e retorno-los por meio de matriz apontadas pelo rgVar.
Syntax
HRESULT Next(
unsigned long celt,
VARIANT FAR* rgVar,
unsigned long FAR* pCeltFetched
);
Parameters
- celt
[no] Número de elementos a serem retornados.
- rgVar
[out] Matriz no mínimo tamanho celt no qual os elementos são a ser retornado.
- pCeltFetched
[out] Ponteiro para o número de elementos retornados em rgVar, ou NULL.
Return Value
Se o número de elementos retornada celt, o valor de retorno é S_OK.
Se o número de elementos retornada for menor que celt, o valor de retorno é S_FALSE.
Remarks
Se menos do que o número solicitado de elementos permanecerão na seqüência, Próxima retorna apenas os elementos restantes. O real número de elementos retornados é passado por *pCeltFetched, a menos que seja NULL.
Example
O seguinte implementa codificar Próxima Para coleções no arquivo de exemplo linhas Enumvar.cpp.
STDMETHODIMP
CEnumVariant::Next(ULONG cElements, VARIANT FAR* pvar, ULONG FAR* pcElementFetched)
{
HRESULT hr;
ULONG l;
long l1;
ULONG l2;
if (pcElementFetched != NULL)
*pcElementFetched = 0;
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)
*pcElementFetched = l2;
m_lCurrent = l1;
return (l2 < cElements) ? ResultFromScode(S_FALSE) : NOERROR;
error:
for (l=0; l<cElements; l++)
VariantClear(&pvar[l]);
return hr;
}
Requirements
Header | oaidl.h, oaidl.idl |
Library | oleaut32.lib, uuid.lib |
Windows Embedded CE | Windows CE 2.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |