Méthode IEnumVARIANT ::Clone (oaidl.h)
Crée une copie de l’état actuel de l’énumération.
Syntaxe
HRESULT Clone(
[out] IEnumVARIANT **ppEnum
);
Paramètres
[out] ppEnum
Énumérateur clone.
Valeur retournée
Cette méthode peut retourner l’une de ces valeurs.
Code de retour | Description |
---|---|
|
Réussite. |
|
Mémoire insuffisante pour terminer l’opération. |
Remarques
À l’aide de cette fonction, un point particulier de la séquence d’énumération peut être enregistré, puis retourné ultérieurement. L’énumérateur retourné est de la même interface réelle que celle qui est clonée.
Il n’est pas garanti que le même ensemble de variantes sera énuméré la deuxième fois que la première. Bien qu’un doublon exact soit souhaitable, le résultat dépend de la collection énumérée. Vous constaterez peut-être qu’il n’est pas pratique pour certaines collections de conserver cette condition (par exemple, une énumération des fichiers dans un répertoire).
Exemples
Le code suivant implémente IEnumVariant ::Clone. Un exemple d’implémentation complet de l’interface IEnumVariant est disponible dans l’exemple LIGNES DE BASE 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;
}
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Windows |
En-tête | oaidl.h |