Método IEnumVARIANT::Clone (oaidl.h)
Cria uma cópia do estado atual da enumeração.
Sintaxe
HRESULT Clone(
[out] IEnumVARIANT **ppEnum
);
Parâmetros
[out] ppEnum
O enumerador clone.
Retornar valor
Esse método pode retornar um desses valores.
Código de retorno | Descrição |
---|---|
|
Êxito. |
|
Memória insuficiente para concluir a operação. |
Comentários
Usando essa função, um ponto específico na sequência de enumeração pode ser registrado e, em seguida, retornado para em um momento posterior. O enumerador retornado é da mesma interface real que a que está sendo clonada.
Não há nenhuma garantia de que exatamente o mesmo conjunto de variantes será enumerado na segunda vez em que foi enumerado o primeiro. Embora uma duplicata exata seja desejável, o resultado depende da coleção ser enumerada. Você pode achar que é impraticável que algumas coleções mantenham essa condição (por exemplo, uma enumeração dos arquivos em um diretório).
Exemplos
O código a seguir implementa IEnumVariant::Clone. Uma implementação de exemplo completa da interface IEnumVariant está disponível no exemplo linhas de conceitos básicos com (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 | Valor |
---|---|
Plataforma de Destino | Windows |
Cabeçalho | oaidl.h |