Método IEnumVARIANT::Clone (oaidl.h)
Crea una copia del estado actual de la enumeración.
Sintaxis
HRESULT Clone(
[out] IEnumVARIANT **ppEnum
);
Parámetros
[out] ppEnum
Enumerador de clonación.
Valor devuelto
Este método puede devolver uno de estos valores.
Código devuelto | Descripción |
---|---|
|
Correcto. |
|
Memoria insuficiente para completar la operación. |
Comentarios
Con esta función, se puede registrar un punto determinado de la secuencia de enumeración y, a continuación, volver a en un momento posterior. El enumerador devuelto es de la misma interfaz real que la que se está clonando.
No hay ninguna garantía de que el mismo conjunto de variantes se enumerará la segunda vez que se ha enumerado la primera. Aunque es deseable un duplicado exacto, el resultado depende de la colección que se enumera. Es posible que no sea práctico que algunas colecciones mantengan esta condición (por ejemplo, una enumeración de los archivos de un directorio).
Ejemplos
El código siguiente implementa IEnumVariant::Clone. Hay disponible una implementación de ejemplo completa de la interfaz IEnumVariant en el ejemplo 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;
}
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Windows |
Encabezado | oaidl.h |