IEnumVARIANT::Clone 方法 (oaidl.h)
创建枚举的当前状态的副本。
语法
HRESULT Clone(
[out] IEnumVARIANT **ppEnum
);
参数
[out] ppEnum
克隆枚举器。
返回值
此方法可以返回其中一个值。
返回代码 | 说明 |
---|---|
|
成功。 |
|
内存不足,无法完成操作。 |
注解
使用此函数,可以记录枚举序列中的特定点,然后在以后返回 。 返回的枚举器与正在克隆的枚举器具有相同的实际接口。
无法保证第二次枚举完全相同的变体集,这与第一次枚举时完全相同。 尽管需要确切的重复项,但结果取决于要枚举的集合。 你可能会发现,某些集合不切实际地维护此条件 (例如,目录) 中的文件枚举。
示例
以下代码实现 IEnumVariant::Clone。 COM 基础知识行示例 (Enumvar.cpp) 中提供了 IEnumVariant 接口的完整示例实现。
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;
}
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | oaidl.h |