IEnumVARIANT::Clone メソッド (oaidl.h)
列挙体の現在の状態のコピーを作成します。
構文
HRESULT Clone(
[out] IEnumVARIANT **ppEnum
);
パラメーター
[out] ppEnum
複製列挙子。
戻り値
このメソッドは、これらの値のいずれかを返すことができます。
リターン コード | 説明 |
---|---|
|
正常終了しました。 |
|
操作を完了するためのメモリ不足。 |
注釈
この関数を使用すると、列挙シーケンス内の特定のポイントを記録し、後で に返すことができます。 返される列挙子は、複製されるインターフェイスと同じ実際のインターフェイスです。
1 番目のバリアントを列挙したのとまったく同じバリアント セットが 2 回目に列挙される保証はありません。 正確な重複が望ましいですが、結果は列挙されるコレクションによって異なります。 一部のコレクションでは、この条件 (ディレクトリ内のファイルの列挙など) を維持することは実用的でない場合があります。
例
次のコードは 、IEnumVariant::Clone を実装します。 IEnumVariant インターフェイスの完全な実装例は、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;
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | oaidl.h |