다음을 통해 공유


IEnumVARIANT::Clone 메서드(oaidl.h)

열거형의 현재 상태 복사본을 만듭니다.

구문

HRESULT Clone(
  [out] IEnumVARIANT **ppEnum
);

매개 변수

[out] ppEnum

클론 열거자입니다.

반환 값

이 메서드는 이러한 값 중 하나를 반환할 수 있습니다.

반환 코드 Description
S_OK
성공.
E_OUTOFMEMORY
메모리가 부족하여 작업을 완료할 수 없습니다.

설명

이 함수를 사용하면 열거형 시퀀스의 특정 지점을 기록한 다음 나중에 로 반환할 수 있습니다. 반환된 열거자는 복제 중인 인터페이스와 동일한 실제 인터페이스입니다.

정확히 동일한 변형 집합이 첫 번째로 열거된 것처럼 두 번째로 열거된다는 보장은 없습니다. 정확한 중복이 바람직하지만 결과는 열거되는 컬렉션에 따라 달라집니다. 일부 컬렉션에서 이 조건을 유지하는 것은 비실용적일 수 있습니다(예: 디렉터리에 있는 파일 열거).

예제

다음 코드는 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

추가 정보

IEnumVARIANT