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 클래스와 유사합니다.
참고 항목
CComEnumImpl
및 IEnumOnSTLImpl
간의 추가 차이점에 대한 자세한 내용은 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 값입니다.