컨트롤 속성
컨트롤 자체에서 정의하고 구현하는 속성 외에도 ActiveX 컨트롤 기술에는 다음이 포함됩니다.
-
앰비언트 속성
-
이러한 값은 컨테이너에 포함된 모든 컨트롤에 적용되는 환경 값을 제공하기 위해 제어 클라이언트 사이트를 통해 컨테이너에 의해 노출됩니다. 예를 들어 컨테이너는 컨트롤에서 사용할 수 있는 기본 배경색 또는 기본 글꼴을 제공할 수 있습니다. 앰비언트 속성은 컨테이너의 사이트 개체에 구현된 IDispatch 를 통해 노출됩니다. 컨테이너는 앰비언트 속성 값이 변경되면 컨트롤의 IOleControl::OnAmbientPropertyChange 메서드를 호출합니다. 이에 대한 응답으로 컨트롤은 자체 내부 또는 시각적 상태를 업데이트해야 할 수 있습니다. 컨테이너는 DISPID 매개 변수로 변경된 앰비언트 속성을 나타내거나 여러 앰비언트 속성이 변경되었음을 나타내기 위해 DISPID_UNKNOWN 전달할 수 있습니다.
-
확장 속성
-
이러한 속성은 실제로 컨테이너에 의해 구현되어 포함된 컨트롤을 래핑하여 네이티브 컨트롤 속성인 것처럼 표시되는 컨테이너 관리 속성을 제공합니다. 컨테이너는 컨트롤을 집계하여 확장 속성을 추가하여 컨트롤의 속성을 보완하거나 재정의할 수 있습니다. 집계된 개체를 확장 컨트롤이라고 합니다. 컨테이너에 확장된 컨트롤이 컨트롤 자체로 나타나고 확장 속성이 컨트롤에 의해 노출되는 것처럼 보입니다. 컨테이너는 클라이언트 사이트 메서드 IOleControlSite::GetExtendedControl을 통해 확장된 컨트롤을 지원합니다. GetExtendedControl 메서드를 사용하면 컨테이너가 이 기능을 지원하는 경우 컨트롤이 사이트를 탐색하여 컨테이너에서 제공하는 확장된 컨트롤 개체로 이동할 수 있습니다. 컨테이너는 ISpecifyPropertyPages를 통해 컨트롤이 일반적으로 지정하는 페이지 외에도 확장된 컨트롤에 대한 속성 페이지를 표시하도록 선택할 수도 있습니다. 이 때문에 컨트롤은 컨트롤이 자체 작업을 시도하기 전에 컨테이너에 속성 프레임을 표시하도록 요청해야 합니다. 컨트롤은 IOleControlSite::ShowPropertyFrame 을 호출하여 이 작업을 수행합니다. 컨테이너가 이 함수를 구현하면 속성 프레임 자체가 표시됩니다. 메서드가 오류를 반환하면 컨트롤이 속성 프레임을 표시할 수 있습니다.
자세한 내용은 아래 항목을 참조하세요.
관련 항목