IEnumVARIANT ::Next, méthode (oaidl.h)
Récupère les éléments spécifiés dans la séquence d’énumération.
Syntaxe
HRESULT Next(
[in] ULONG celt,
[out] VARIANT *rgVar,
[out] ULONG *pCeltFetched
);
Paramètres
[in] celt
Nombre d’éléments à récupérer
[out] rgVar
Tableau de celte de taille minimale dans lequel les éléments doivent être retournés.
[out] pCeltFetched
Nombre d’éléments retournés dans rgVar, ou NULL.
Valeur retournée
Cette méthode peut retourner l’une de ces valeurs.
Code de retour | Description |
---|---|
|
Le nombre d’éléments retournés est celte. |
|
Le nombre d’éléments retournés est inférieur à celte. |
Remarques
Si le nombre d’éléments restant dans la séquence est inférieur au nombre demandé, Next retourne uniquement les éléments restants. Le nombre réel d’éléments est retourné dans pCeltFetched, sauf s’il est null.
Exemples
Le code suivant implémente IEnumVariant ::Next. Un exemple complet d’implémentation de l’interface IEnumVariant est disponible dans l’exemple DE LIGNES DE BASE COM (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;
}
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | oaidl.h |