Metodo IEnumVARIANT::Clone (oaidl.h)
Crea una copia dello stato corrente dell'enumerazione.
Sintassi
HRESULT Clone(
[out] IEnumVARIANT **ppEnum
);
Parametri
[out] ppEnum
Enumeratore clone.
Valore restituito
Questo metodo può restituire uno di questi valori.
Codice restituito | Descrizione |
---|---|
|
Operazione completata. |
|
Memoria insufficiente per completare l'operazione. |
Commenti
Usando questa funzione, è possibile registrare un punto specifico nella sequenza di enumerazione e quindi tornare a in un secondo momento. L'enumeratore restituito è della stessa interfaccia effettiva di quella clonata.
Non esiste alcuna garanzia che esattamente lo stesso set di varianti verrà enumerato la seconda volta come è stato enumerato il primo. Sebbene sia auspicabile un duplicato esatto, il risultato dipende dalla raccolta da enumerare. Potrebbe risultare poco pratico per alcune raccolte mantenere questa condizione, ad esempio un'enumerazione dei file in una directory.
Esempio
Il codice seguente implementa IEnumVariant::Clone. Un'implementazione di esempio completa dell'interfaccia IEnumVariant è disponibile nell'esempio 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;
}
Requisiti
Requisito | Valore |
---|---|
Piattaforma di destinazione | Windows |
Intestazione | oaidl.h |