다음을 통해 공유


범주 매크로

이러한 매크로는 범주 맵을 정의합니다.

매크로 설명
BEGIN_CATEGORY_MAP 범주 맵의 시작을 표시합니다.
END_CATEGORY_MAP 범주 맵의 끝을 표시합니다.
IMPLEMENTED_CATEGORY COM 개체에 의해 구현되는 범주를 나타냅니다.
REQUIRED_CATEGORY COM 개체에서 컨테이너에 필요한 범주를 나타냅니다.

요구 사항

헤더: atlcom.h

BEGIN_CATEGORY_MAP

범주 맵의 시작을 표시합니다.

BEGIN_CATEGORY_MAP(theClass)

매개 변수

theClass
[in] 범주 맵을 포함하는 클래스의 이름입니다.

설명

범주 맵은 COM 클래스가 구현할 구성 요소 범주와 해당 컨테이너에서 필요한 범주를 지정하는 데 사용됩니다.

COM 클래스에서 구현하는 각 범주의 맵에 IMPLEMENTED_CATEGORY 항목을 추가합니다. 클래스에서 클라이언트가 구현해야 하는 각 범주의 맵에 REQUIRED_CATEGORY 항목을 추가합니다. 맵의 끝을 END_CATEGORY_MAP 매크로로 표시합니다.

클래스에 연결된 OBJECT_ENTRY_AUTO 또는 OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO 있는 경우 모듈이 등록되면 맵에 나열된 구성 요소 범주가 자동으로 등록됩니다.

참고 항목

ATL은 표준 구성 요소 범주 관리자를 사용하여 구성 요소 범주를 등록합니다. 모듈이 등록될 때 관리자가 시스템에 없으면 등록이 성공하지만 구성 요소 범주는 해당 클래스에 대해 등록되지 않습니다.

구성 요소 범주에 대한 자세한 내용은 구성 요소 범주 란 무엇이며 Windows SDK에서 작동하는 방법을 참조하세요.

예시

BEGIN_CATEGORY_MAP(CMyCtrl)
   IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()

END_CATEGORY_MAP

범주 맵의 끝을 표시합니다.

END_CATEGORY_MAP()

예시

BEGIN_CATEGORY_MAP 예제를 참조하세요.

IMPLEMENTED_CATEGORY

구성 요소의 범주 맵에 IMPLEMENTED_CATEGORY 매크로를 추가하여 catID 매개 변수로 식별된 범주를 구현하는 것으로 등록해야 함을 지정합니다.

IMPLEMENTED_CATEGORY(catID)

매개 변수

catID
[in] 구현된 범주에 대한 GUID(Globally Unique Identifier)를 보유하는 CATID 상수 또는 변수입니다. catID주소가 맵에 추가됩니다. 선택한 주식 범주는 아래 표를 참조하세요.

설명

클래스에 연결된 OBJECT_ENTRY_AUTO 또는 OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO 매크로가 있는 경우 모듈이 등록되면 맵에 나열된 구성 요소 범주가 자동으로 등록됩니다.

클라이언트는 클래스에 등록된 범주 정보를 사용하여 인스턴스를 만들지 않고도 해당 기능 및 요구 사항을 확인할 수 있습니다.

구성 요소 범주에 대한 자세한 내용은 구성 요소 범주 란 무엇이며 Windows SDK에서 작동하는 방법을 참조하세요.

주식 범주 선택

설명 기호 레지스트리 GUID
스크립팅에 안전 CATID_SafeForScripting {7DD95801-9882-11CF-9FA9-00AA006C42C4}
초기화에 안전 CATID_SafeForInitializing {7DD95802-9882-11CF-9FA9-00AA006C42C4}
단순 프레임 사이트 포함 CATID_SimpleFrameControl {157083E0-2368-11cf-87B9-00AA006C8166}
단순 데이터 바인딩 CATID_PropertyNotifyControl {157083E1-2368-11cf-87B9-00AA006C8166}
고급 데이터 바인딩 CATID_VBDataBound {157083E2-2368-11cf-87B9-00AA006C8166}
창 없는 컨트롤 CATID_WindowlessObject {1D06B600-3AE3-11cf-87B9-00AA006C8166}
인터넷 인식 개체 샘플 목록은 Windows SDK의 Internet Aware Objects를 참조하세요.

예시

BEGIN_CATEGORY_MAP(CMyCtrl)
   IMPLEMENTED_CATEGORY(CATID_Insertable)
END_CATEGORY_MAP()

REQUIRED_CATEGORY

구성 요소의 범주 맵에 REQUIRED_CATEGORY 매크로를 추가하여 catID 매개 변수로 식별된 범주를 요구하는 것으로 등록하도록 지정합니다.

REQUIRED_CATEGORY( catID )

매개 변수

catID
[in] 필요한 범주에 대한 GUID(Globally Unique Identifier)를 포함하는 CATID 상수 또는 변수입니다. catID주소가 맵에 추가됩니다. 선택한 주식 범주는 아래 표를 참조하세요.

설명

클래스에 연결된 OBJECT_ENTRY_AUTO 또는 OBJECT_ENTRY_NON_CREATEABLE_EX_AUTO 매크로가 있는 경우 모듈이 등록되면 맵에 나열된 구성 요소 범주가 자동으로 등록됩니다.

클라이언트는 클래스에 등록된 범주 정보를 사용하여 인스턴스를 만들지 않고도 해당 기능 및 요구 사항을 확인할 수 있습니다. 예를 들어 컨트롤은 컨테이너가 데이터 바인딩을 지원하도록 요구할 수 있습니다. 컨테이너는 해당 컨트롤에 필요한 범주에 대한 범주 관리자를 쿼리하여 컨트롤을 호스트하는 데 필요한 기능이 있는지 확인할 수 있습니다. 컨테이너가 필요한 기능을 지원하지 않는 경우 COM 개체의 호스트를 거부할 수 있습니다.

샘플 목록을 포함하여 구성 요소 범주에 대한 자세한 내용은 구성 요소 범주란 무엇이며 Windows SDK에서 어떻게 작동하는지 를 참조하세요.

주식 범주 선택

설명 기호 레지스트리 GUID
스크립팅에 안전 CATID_SafeForScripting {7DD95801-9882-11CF-9FA9-00AA006C42C4}
초기화에 안전 CATID_SafeForInitializing {7DD95802-9882-11CF-9FA9-00AA006C42C4}
단순 프레임 사이트 포함 CATID_SimpleFrameControl {157083E0-2368-11cf-87B9-00AA006C8166}
단순 데이터 바인딩 CATID_PropertyNotifyControl {157083E1-2368-11cf-87B9-00AA006C8166}
고급 데이터 바인딩 CATID_VBDataBound {157083E2-2368-11cf-87B9-00AA006C8166}
창 없는 컨트롤 CATID_WindowlessObject {1D06B600-3AE3-11cf-87B9-00AA006C8166}
인터넷 인식 개체 샘플 목록은 Windows SDK의 Internet Aware Objects를 참조하세요.

예시

BEGIN_CATEGORY_MAP(CMyWindow)
   REQUIRED_CATEGORY(CATID_InternetAware)
END_CATEGORY_MAP()

참고 항목

매크로