IEnumVARIANT::Metode berikutnya (oaidl.h)
Mengambil item yang ditentukan dalam urutan enumerasi.
Sintaks
HRESULT Next(
[in] ULONG celt,
[out] VARIANT *rgVar,
[out] ULONG *pCeltFetched
);
Parameter
[in] celt
Jumlah elemen yang akan diambil
[out] rgVar
Array dengan setidaknya ukuran celt di mana elemen akan dikembalikan.
[out] pCeltFetched
Jumlah elemen yang dikembalikan dalam rgVar, atau NULL.
Nilai kembali
Metode ini dapat mengembalikan salah satu nilai ini.
Menampilkan kode | Deskripsi |
---|---|
|
Jumlah elemen yang dikembalikan adalah celt. |
|
Jumlah elemen yang dikembalikan kurang dari celt. |
Keterangan
Jika kurang dari jumlah elemen yang diminta tetap dalam urutan, Berikutnya hanya mengembalikan elemen yang tersisa. Jumlah elemen aktual dikembalikan dalam pCeltFetched, kecuali jika null.
Contoh
Kode berikut mengimplementasikan IEnumVariant::Next. Contoh lengkap implementasi antarmuka IEnumVariant tersedia dalam sampel Com Fundamentals Lines (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;
}
Persyaratan
Persyaratan | Nilai |
---|---|
Target Platform | Windows |
Header | oaidl.h |