IEnumVARIANT::Clone
9/8/2008
Esse método cria um copiar do atual estado da enumeração.
Syntax
HRESULT Clone(
IEnumVARIANT FAR* FAR* ppEnum
);
Parameters
- ppEnum
[out] Em retorno, ponteiro para a localidade do enumerador de clone.
Return Value
Se o método for bem-sucedido, o valor de retorno é S_OK.
Se não houver memória insuficiente para completo a operação, o valor de retorno é E_OUTOFMEMORY.
Remarks
Usando essa função, um apontar específico na seqüência de enumeração pode ser registrada e então retornado para em um tempo posterior. O enumerador retornado está real a mesma interface que o que está sendo clonado.
Não há nenhuma garantia que exatamente o mesmo conjunto de variantes irá ser enumerado o segundo tempo conforme foi enumeradas primeiro. Embora um duplicado exato seja desejável, o resultado depende de como a coleção sendo enumerada.
Você pode localizar que é impraticável para algumas coleções para manter essa condição (por exemplo, uma enumeração os arquivos de um Diretório).
Example
O seguinte implementa codificar Clone Para coleções no arquivo de exemplo linhas Enumvar.cpp.
STDMETHODIMP
CEnumVariant::Clone(IEnumVARIANT FAR* FAR* ppEnum)
{
CEnumVariant FAR* penum = NULL;
HRESULT hr;
*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;
}
Requirements
Header | oaidl.h, oaidl.idl |
Library | oleaut32.lib, uuid.lib |
Windows Embedded CE | Windows CE 2.0 and later |
Windows Mobile | Windows Mobile Version 5.0 and later |