다음을 통해 공유


구성 요소 범주 및 작동 방식

구성 요소 범주는 소프트웨어 구성 요소가 지원하고 요구하는 기능 영역을 식별합니다. 레지스트리 항목은 각 범주 또는 식별된 기능 영역에 사용됩니다. 각 구성 요소 범주는 GUID(Globally Unique Identifier)로 식별됩니다. 컨트롤이 설치되면 컨트롤에 대한 구성 요소 범주 ID를 사용하여 시스템 레지스트리에 컨트롤로 등록 됩니다. 컨트롤에 대한 자체 등록을 참조하세요. 컨트롤 자체 등록 내에서 구현하는 구성 요소 범주와 컨트롤을 성공적으로 호스트하기 위해 컨테이너에서 지원해야 하는 구성 요소 범주도 등록합니다.

컨트롤 컨테이너가 삽입할 컨트롤을 사용자에게 제공하는 경우 사용자가 해당 환경에서 적절하게 작동할 수 있는 컨트롤을 선택하고 인스턴스화할 수 있습니다. 예를 들어 컨트롤 컨테이너가 데이터 바인딩을 지원하지 않는 경우 컨테이너는 사용자가 데이터 바인딩 구성 요소 범주가 필요하다는 것을 나타내는 레지스트리에 항목이 있는 컨트롤을 선택하고 인스턴스화하는 것을 허용하지 않습니다. 레지스트리 항목을 처리하는 컨트롤 삽입 및 API에 대한 일반적인 대화 상자를 사용할 수 있습니다.

구성 요소 범주는 누적되거나 배타적이지 않으며, 컨트롤이 작동하려면 구성 요소 범주를 혼합해야 할 수 있습니다. 구성 요소 범주에 필요한 항목이 없는 컨트롤은 컨트롤 컨테이너에서 작동할 수 있어야 하며 컨트롤 컨테이너의 특정 기능이 작동하지 않아도 될 수 있습니다.

다음 구성 요소 범주는 여기에서 식별됩니다. 여기서 범주에 대한 자세한 사양을 사용할 수 있습니다.

  • ISimpleFrameSite 컨트롤 포함.
  • IPropertyNotifySink 인터페이스를 통한 간단한 데이터 바인딩.
  • 고급 데이터 바인딩(VB4.0의 추가 데이터 바인딩 인터페이스에서 지원됨)
  • Visual Basic 프라이빗 인터페이스 - IVBFormat, IVBGetControl
  • 인터넷 인식 컨트롤.
  • 창 없는 컨트롤입니다.

범주의 최종 목록은 아닙니다. 새 요구 사항이 식별되면 향후 추가 범주가 정의될 가능성이 높습니다. 구성 요소 범주의 최신 목록은 Microsoft에서 사용할 수 있습니다. 이 목록에는 Microsoft에서 식별한 구성 요소 범주와 Microsoft에 통보한 공급업체에 대한 기타 항목이 반영되어 있습니다.

컨트롤은 가능한 한 많은 환경에서 작동하려고 시도해야 합니다. 가능한 경우 컨트롤은 특정 인터페이스를 지원하지 않는 컨테이너에 배치할 때 해당 기능을 저하시켜야 합니다. 구성 요소 범주의 목적은 컨트롤이 적합하지 않은 환경에 배치되고 컨트롤이 원하는 작업을 수행할 수 없는 상황을 방지하는 것입니다. 일반적으로 컨트롤은 인터페이스가 없을 때 정상적으로 저하되어야 하며, 컨트롤은 사용자에게 일부 기능을 사용할 수 없다는 메시지 상자를 제공하거나 최적의 성능을 위해 컨트롤 컨테이너에 필요한 기능을 명확하게 문서화하도록 선택할 수 있습니다.

이전 컨트롤 및 컨테이너는 구성 요소 범주를 사용하지 않고 대신 레지스트리의 컨트롤에 대해 있는 컨트롤 키워드(keyword) 사용합니다. 이전 컨테이너 컨트롤에서 인식할 수 있도록 컨트롤 키워드(keyword) 레지스트리에 등록할 수 있습니다 제어 개발자는 컨트롤이 성공적으로 이러한 컨테이너에서 호스트 될 수 있는지 검사 합니다. 구성 요소 범주를 사용하는 컨테이너는 구성 요소 범주 DLL이 매핑을 처리할 때 이전 컨트롤을 호스트하는 데 성공적으로 사용할 수 있으며, 필요한 경우 컨테이너가 선택적으로 제외할 수 있도록 이전 컨트롤 CATID_ControlV1 별도의 범주가 있습니다.

구성 요소 범주는 GUID로 식별되므로 특정 기능을 제공하는 컨테이너에는 GUID 생성 도구를 사용하여 생성된 고유한 범주 ID가 있을 수 있습니다. 그러나 이렇게 하면 컨트롤 및 컨테이너의 상호 운용성의 이점을 훼손할 수 있으므로 가능한 경우 기존 구성 요소 범주를 사용하는 것이 좋습니다. 공급업체는 새 구성 요소 범주를 정의할 때 함께 협의하여 마켓플레이스의 일반적인 요구 사항을 충족하고 ActiveX 컨트롤의 상호 운용성 정신을 따르는 것이 좋습니다.

구성 요소 범주