Bagikan melalui


IEnumVARIANT::Metode kloning (oaidl.h)

Membuat salinan status enumerasi saat ini.

Sintaks

HRESULT Clone(
  [out] IEnumVARIANT **ppEnum
);

Parameter

[out] ppEnum

Enumerator kloning.

Nilai kembali

Metode ini dapat mengembalikan salah satu nilai ini.

Menampilkan kode Deskripsi
S_OK
Berhasil.
E_OUTOFMEMORY
Tidak cukup memori untuk menyelesaikan operasi.

Keterangan

Dengan menggunakan fungsi ini, titik tertentu dalam urutan enumerasi dapat direkam, lalu dikembalikan ke di lain waktu. Enumerator yang dikembalikan adalah antarmuka aktual yang sama dengan yang sedang dikloning.

Tidak ada jaminan bahwa set varian yang sama persis akan dijumlahkan untuk kedua kalinya seperti yang dijumlahkan yang pertama. Meskipun duplikat yang tepat diinginkan, hasilnya tergantung pada koleksi yang dijumlahkan. Anda mungkin menemukan bahwa tidak praktis bagi beberapa koleksi untuk mempertahankan kondisi ini (misalnya, enumerasi file dalam direktori).

Contoh

Kode berikut mengimplementasikan IEnumVariant::Clone. Contoh lengkap implementasi antarmuka IEnumVariant tersedia dalam sampel Com Fundamentals Lines (Enumvar.cpp).

STDMETHODIMP
CEnumVariant::Clone(IEnumVARIANT ** ppenum)
{
   CEnumVariant * penum = NULL;
   HRESULT hr;

   if (ppenum == NULL)
      return E_INVALIDARG;

   *ppenum = NULL;

   hr = CEnumVariant::Create(m_psa, m_cElements, &penum);
   if (FAILED(hr))
      goto error;
   penum->AddRef();
   penum->m_lCurrent = m_lCurrent;

   *ppenum = penum;
   return NOERROR;

error:
   if (penum)
      penum->Release();
   return hr;
}

Persyaratan

Persyaratan Nilai
Target Platform Windows
Header oaidl.h

Lihat juga

IEnumVARIANT