다음을 통해 공유


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

참고 항목

참조

CComEnumImpl 클래스

IEnumOnSTLImpl::Init