CComEnumImpl::Init
포인터가 열거자 인터페이스는 클라이언트로 다시 전달 하기 전에이 메서드를 호출 해야 합니다.
HRESULT Init(
T* begin,
T* end,
IUnknown* pUnk,
CComEnumFlags flags = AtlFlagNoCopy
);
매개 변수
begin
열거할 항목을 포함 하는 배열의 첫 번째 요소에 대 한 포인터입니다.end
열거할 항목을 포함 하는 배열의 마지막 요소 바로 뒤의 위치에 대 한 포인터입니다.펑크
[in] IUnknown 열거자의 수명 동안 유지 되도록 해야 하는 개체 포인터입니다.전달 NULL 이러한 개체가 없는 경우.flags
열거자 배열의 소유권을 가져오거나 복사본을 확인 해야 하는지 여부를 지정 하는 플래그입니다.가능한 값은 다음과 같습니다.
반환 값
표준 HRESULT 값입니다.
설명
만이 메서드를 한 번 호출-열거자를 초기화 하 고 사용이 버려야 합니다.
항목 형식은 다른 개체의 배열에 포인터를 전달 (및 열거자 데이터 복사 안 경우) 수는 펑크 매개 변수 열거자가 필요로 할 때 영희는 배열 및 개체를 사용할 수 있는지 확인 합니다.열거자 단순히 COM 참조를 활성 상태로 유지 하기 위해 개체를 보유 합니다.COM 참조는 열거자가 소멸 될 때 자동으로 해제 됩니다.
flags 매개 변수 열거자는 전달 된 배열 요소 처리 해야 방법을 지정할 수 있습니다.flags값 중 하나를 수행할 수 있는 CComEnumFlags 아래 열거:
enum CComEnumFlags
{
AtlFlagNoCopy = 0,
AtlFlagTakeOwnership = 2, // BitOwn
AtlFlagCopy = 3 // BitOwn | BitCopy
};
AtlFlagNoCopy 수명 배열의 열거자에서 제어 되지 않음을 의미 합니다.로 식별 되는 개체 또는 정적 배열 중 하나이 경우 됩니다 펑크 더 이상 필요할 때 배열 해제에 대 한 책임이 됩니다.
AtlFlagTakeOwnership 소멸 배열의 열거자에서 제어할 수 있는 수단입니다.이 경우 배열의 동적으로 사용 하 여 할당 해야 새.열거자는 배열에 소멸자가 삭제 됩니다.일반적으로 전달 합니다 NULL 의 펑크열거자의 소멸을 이유로 알림을 받아야 하는 경우 여전히 유효한 포인터를 전달할 수 있지만.
AtlFlagCopy 새 배열을 전달 된 배열에 복사 하 여 만들 수 있는 방법을 Init.새 배열의 수명 열거자에서 제어할 수 있습니다.열거자는 배열에 소멸자가 삭제 됩니다.일반적으로 전달 합니다 NULL 의 펑크열거자의 소멸을 이유로 알림을 받아야 하는 경우 여전히 유효한 포인터를 전달할 수 있지만.
[!참고]
유형의 것으로 프로토타입이 메서드의 배열 요소 지정 T여기서 T 클래스 템플릿 매개 변수로 정의 되었습니다.COM 인터페이스 메서드를 통해 노출 된 동일한 유형입니다 CComEnumImpl::Next.이 의미는, 달리입니다 IEnumOnSTLImpl,이 클래스는 다른 저장소를 지원 하지 않습니다 및 데이터 형식을 노출 합니다.배열에서 요소의 데이터 형식을 COM 인터페이스를 통해 노출 된 데이터 형식과 같아야 합니다.
요구 사항
헤더: atlcom.h