IEnumVARIANT::Clone-Methode (oaidl.h)

Erstellt eine Kopie des aktuellen Enumerationsstatus.

Syntax

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

Parameter

[out] ppEnum

Der Klon-Enumerator.

Rückgabewert

Diese Methode kann einen dieser Werte zurückgeben.

Rückgabecode BESCHREIBUNG
S_OK
Erfolg.
E_OUTOFMEMORY
Unzureichender Arbeitsspeicher, um den Vorgang abzuschließen.

Hinweise

Mit dieser Funktion kann ein bestimmter Punkt in der Enumerationssequenz aufgezeichnet und zu einem späteren Zeitpunkt zurückgegeben werden. Der zurückgegebene Enumerator hat dieselbe tatsächliche Schnittstelle wie die, die geklont wird.

Es gibt keine Garantie dafür, dass genau die gleiche Gruppe von Varianten beim zweiten Mal aufgezählt wird, wie die erste aufgezählt wurde. Obwohl ein exaktes Duplikat wünschenswert ist, hängt das Ergebnis von der Auflistung ab, die aufgelistet wird. Möglicherweise stellen Sie fest, dass es für einige Sammlungen unpraktisch ist, diese Bedingung beizubehalten (z. B. eine Enumeration der Dateien in einem Verzeichnis).

Beispiele

Der folgende Code implementiert IEnumVariant::Clone. Eine vollständige Beispielimplementierung der IEnumVariant-Schnittstelle finden Sie im Beispiel 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;
}

Anforderungen

Anforderung Wert
Zielplattform Windows
Kopfzeile oaidl.h

Weitere Informationen

IEnumVARIANT