다음을 통해 공유


VSPackage에 대한 자동화 제공

VSPackage 관련 개체를 구현하고 표준 자동화 개체를 구현하여 VSPackage에 자동화를 제공하는 기본 방법에는 두 가지가 있습니다. 일반적으로 이러한 기능은 환경의 자동화 모델을 확장하는 데 함께 사용됩니다.

VSPackage 관련 개체

자동화 모델 내 특정 위치에서는 VSPackage에 고유한 자동화 개체를 제공해야 합니다. 예를 들어 새 프로젝트에는 VSPackage만 제공하는 고유한 개체가 필요합니다. 이러한 개체의 이름은 레지스트리에 입력되며 환경 DTE 개체에 대한 호출을 통해 개체 이름을 가져옵니다.

자동화 소비자가 표준 개체의 개체 속성을 통해 제공된 개체를 사용하는 경우에도 VSPackage 관련 개체를 가져올 수 있습니다. 예를 들어 표준 Window 개체에는 일반적으로 Windows.Object 속성이라고 하는 Object 속성이 있습니다. 소비자가 VSPackage에서 구현된 창에서 Window.Object를 호출하면 고유한 디자인의 특정 자동화 개체를 다시 전달합니다.

프로젝트

VSPackage는 자체 VSPackage 관련 개체를 통해 새 프로젝트 형식의 자동화 모델을 확장할 수 있습니다. VSPackage에 새 자동화 개체를 제공하는 기본 목적은 고유한 프로젝트 개체를 VCProject 또는 VSProject2 개체와 구분하기 위함입니다. 이러한 차별화는 솔루션에 나란히 표시하여 다른 프로젝트 형식과는 별도로 프로젝트 형식을 단일화하거나 반복하는 방법을 제공하려는 경우에 편리합니다. 자세한 내용은 프로젝트 개체 노출을 참조하세요.

이벤트

환경의 이벤트 아키텍처는 고유한 VSPackage 관련 개체를 추가할 수 있는 또 다른 위치를 제공합니다. 예를 들어 고유한 이벤트 개체를 만들어 프로젝트의 환경 이벤트 모델을 확장할 수 있습니다. 새 항목이 사용자 고유한 프로젝트 형식에 추가될 때 사용자 고유한 이벤트를 제공할 수 있습니다. 자세한 내용은 이벤트 노출을 참조하세요.

창 개체

Windows는 호출될 때 VSPackage 관련 자동화 개체를 다시 환경으로 전달할 수 있습니다. 개체가 배치된 창 개체를 확장하여 속성을 되돌리는 IVsExtensibleObject, IExtensibleObject 또는 IDispatch에서 파생된 개체를 구현합니다. 예를 들어 이 방법을 사용하여 창 프레임에 배치된 컨트롤에 자동화를 제공할 수 있습니다. 이 개체와 확장할 수 있는 다른 개체의 의미 체계는 개발자가 설계합니다. 자세한 내용은 방법: Windows에 대한 자동화 제공을 참조하세요.

도구 메뉴의 옵션 페이지

페이지를 만든 다음, 페이지를 구현하고 정보를 레지스트리에 추가하여 고유한 옵션을 만들어 도구인 옵션 자동화 모델을 확장할 수 있습니다. 그런 다음, 다른 옵션 페이지와 마찬가지로 환경 개체 모델을 통해 페이지를 호출할 수 있습니다. VSPackage를 통해 환경에 추가하는 기능 디자인에 옵션 페이지가 필요한 경우 자동화 지원도 추가해야 합니다. 자세한 내용은 옵션 페이지에 대한 자동화 지원을 참조하세요.

표준 자동화 개체

또한 프로젝트에 대한 자동화를 확장하려면 다른 프로젝트 개체 옆에 있는 표준 자동화 개체(IDispatch에서 파생)를 구현하고 표준 메서드와 속성을 구현합니다. 표준 개체의 예로는 솔루션 계층 구조(예: Projects, Project, ProjectItemProjectItems)에 삽입되는 프로젝트 개체가 있습니다. 모든 새 프로젝트 형식에서 이러한 개체(및 프로젝트의 의미 체계에 따라 다른 개체)를 구현해야 합니다.

어떤 의미에서 이러한 개체는 VSPackage 관련 프로젝트 개체의 반대 이점을 제공합니다. 표준 자동화 개체를 사용하면 같은 개체를 지원하는 다른 프로젝트와 마찬가지로 일반화된 방식으로 프로젝트를 사용할 수 있습니다. 따라서 일반 ProjectProjectItem 개체에 대해 작성된 추가 기능은 모든 형식의 프로젝트에서 작동할 수 있습니다. 자세한 내용은 프로젝트 모델링을 참조하세요.