IEnumOnSTLImpl 클래스

이 클래스는 C++ 표준 라이브러리 컬렉션을 기반으로 열거자 인터페이스를 정의합니다.

구문

template <class Base,
    const IID* piid, class T, class Copy, class CollType>
class ATL_NO_VTABLE IEnumOnSTLImpl : public Base

매개 변수

Base
COM 열거자입니다. 예제는 IEnumString을 참조하세요.

piid
열거자 인터페이스의 인터페이스 ID에 대한 포인터입니다.

T
열거자 인터페이스에 의해 노출되는 항목의 형식입니다.

복사
복사 정책 클래스입니다.

CollType
C++ 표준 라이브러리 컨테이너 클래스입니다.

멤버

공용 메서드

이름 설명
IEnumOnSTLImpl::Clone Clone의 구현입니다.
IEnumOnSTLImpl::Init 열거자를 초기화합니다.
IEnumOnSTLImpl::Next Next구현입니다.
IEnumOnSTLImpl::Reset Reset의 구현입니다.
IEnumOnSTLImpl::Skip Skip의 구현입니다.

공용 데이터 멤버

속성 설명
IEnumOnSTLImpl::m_iter 컬렉션 내에서 열거자의 현재 위치를 나타내는 반복기입니다.
IEnumOnSTLImpl::m_pcollection 열거할 항목을 포함하는 C++ 표준 라이브러리 컨테이너에 대한 포인터입니다.
IEnumOnSTLImpl::m_spUnk IUnknown 컬렉션을 제공하는 개체의 포인터입니다.

설명

IEnumOnSTLImpl 는 열거되는 항목이 C++ 표준 라이브러리 호환 컨테이너에 저장되는 COM 열거자 인터페이스에 대한 구현을 제공합니다. 이 클래스는 배열을 기반으로 하는 열거자 인터페이스에 대한 구현을 제공하는 CComEnumImpl 클래스와 유사합니다.

참고 항목

CComEnumImplIEnumOnSTLImpl 간의 추가 차이점에 대한 자세한 내용은 CComEnumImpl::Init를 참조하십시오.

일반적으로 이 인터페이스 구현에서 파생하여 고유한 열거자 클래스를 만들 필요가 없습니다 . C++ 표준 라이브러리 컨테이너를 기반으로 ATL 제공 열거자를 사용 하려는 경우 CComEnumOnSTL의 인스턴스를 만들거나 ICollectionOnSTLImpl에서 파생 하 여 열거자를 반환 하는 컬렉션 클래스를 만드는 것이 더 일반적입니다.

그러나 사용자 지정 열거자(예: 열거자 인터페이스 외에 인터페이스를 노출하는 열거자)를 제공해야 하는 경우 이 클래스에서 파생할 수 있습니다. 이 경우 고유한 구현을 제공하기 위해 Clone 메서드를 재정의해야 할 수 있습니다.

상속 계층 구조

Base

IEnumOnSTLImpl

요구 사항

헤더: atlcom.h

IEnumOnSTLImpl::Init

열거자를 초기화합니다.

HRESULT Init(
    IUnknown* pUnkForRelease,
    CollType& collection);

매개 변수

pUnkForRelease
[in] IUnknown 열거자의 수명 동안 활성 상태로 유지해야 하는 개체의 포인터입니다. 이러한 개체가 없으면 NULL을 전달합니다.

컬렉션
열거할 항목을 보유하는 C++ 표준 라이브러리 컨테이너에 대한 참조입니다.

Return Value

표준 HRESULT 값입니다.

설명

다른 개체에 보관된 컬렉션에 대한 참조를 전달하는 Init 경우 pUnkForRelease 매개 변수를 사용하여 열거자가 필요한 한 개체와 컬렉션이 사용할 수 있는지 확인할 수 있습니다.

열거자 인터페이스에 대한 포인터를 클라이언트에 다시 전달하기 전에 이 메서드를 호출해야 합니다.

IEnumOnSTLImpl::Clone

이 메서드는 형식CComEnumOnSTL개체를 만들고, 현재 개체에서 사용하는 동일한 컬렉션 및 반복기로 초기화하고, 새로 만든 개체에서 인터페이스를 반환하여 Clone 메서드의 구현을 제공합니다.

STDMETHOD(Clone)(Base** ppEnum);

매개 변수

ppEnum
[out] 현재 열거자에서 복제된 새로 만든 개체의 열거자 인터페이스입니다.

Return Value

표준 HRESULT 값입니다.

IEnumOnSTLImpl::m_spUnk

IUnknown 컬렉션을 제공하는 개체의 포인터입니다.

CComPtr<IUnknown> m_spUnk;

설명

이 스마트 포인터는 IEnumOnSTLImpl::Init전달된 개체에 대한 참조를 유지하여 열거자의 수명 동안 활성 상태로 유지되도록 합니다.

IEnumOnSTLImpl::m_pcollection

이 멤버는 열거자 인터페이스의 구현을 구동하는 데이터를 제공하는 컬렉션을 가리킵니다.

CollType* m_pcollection;

설명

이 멤버는 IEnumOnSTLImpl::Init 호출에 의해 초기화됩니다.

IEnumOnSTLImpl::m_iter

이 멤버는 컬렉션 내의 현재 위치를 표시하고 후속 요소로 이동하는 데 사용되는 반복기를 보유합니다.

CollType::iterator m_iter;

IEnumOnSTLImpl::Next

이 메서드는 Next 메서드의 구현을 제공합니다.

STDMETHOD(Next)(
    ULONG celt,
    T* rgelt,
    ULONG* pceltFetched);

매개 변수

celt
[in] 요청된 요소의 수입니다.

rgelt
[out] 요소로 채울 배열입니다.

pceltFetched
[out] rgelt에서 실제로 반환되는 요소의 수입니다. 이 값은 목록에 남아 있는 셀트 요소보다 작을 경우 셀트보다 작을 수 있습니다.

Return Value

표준 HRESULT 값입니다.

IEnumOnSTLImpl::Reset

이 메서드는 Reset 메서드의 구현을 제공합니다.

STDMETHOD(Reset)(void);

Return Value

표준 HRESULT 값입니다.

IEnumOnSTLImpl::Skip

이 메서드는 Skip 메서드의 구현을 제공합니다.

STDMETHOD(Skip)(ULONG celt);

매개 변수

celt
[in] 건너뛸 요소의 수입니다.

Return Value

표준 HRESULT 값입니다.

참고 항목

클래스 개요