다음을 통해 공유


프로젝트 모델링

프로젝트에 자동화를 제공하는 다음 단계는 표준 프로젝트 개체를 구현하는 것입니다(ProjectsProjectItems 컬렉션 ProjectProjectItem 개체와 구현에 고유한 나머지 개체). 이러한 표준 개체는 Dteinternal.h 파일에 정의되어 있습니다. 표준 개체의 구현은 BscPrj 샘플에서 제공됩니다. 이러한 클래스를 모델로 사용하여 다른 프로젝트 형식의 프로젝트 개체와 나란히 서 있는 고유한 표준 프로젝트 개체를 만들 수 있습니다.

자동화 소비자는 Solution(“<UniqueProjName>")ProjectItems(n)를 호출할 수 있다고 가정합니다. 여기서 n은 솔루션에서 특정 프로젝트를 가져오기 위한 색인 번호입니다. 이 자동화 호출을 수행하면 환경이 적절한 프로젝트 계층 구조에서 GetProperty을 호출하여 VSITEMID_ROOT를 ItemID 매개 변수로, VSHPROPID_ExtObject를 VSHPROPID 매개 변수로 전달합니다. IVsHierarchy::GetProperty은 구현한 핵심 Project 인터페이스를 제공하는 자동화 개체에 대한 IDispatch 포인터를 반환합니다.

다음은 IVsHierarchy::GetProperty의 구문입니다.

HRESULT GetProperty (

VSITEMIDitemid,

VSHPROPIDpropid,

VARIANT *pvar

);

프로젝트는 중첩을 수용하고 컬렉션을 사용하여 프로젝트 항목 그룹을 만듭니다. 해당 계층 구조는 다음과 같습니다.

Projects
  |- Project
      |- ProjectItems (a collection of ProjectItem)
          |- ProjectItem (single object) or ProjectItems (another collection)

중첩은 ProjectItems 컬렉션이 중첩된 개체를 포함할 수 있으므로 ProjectItem 개체가 동시에 ProjectItems 컬렉션이 될 수 있음을 의미합니다. 기본 프로젝트 샘플에서는 이 중첩을 보여 주지 않습니다. Project 개체를 구현하면 전체 자동화 모델의 디자인을 특징짓는 트리와 같은 구조에 참여하게 됩니다.

프로젝트 자동화는 다음 다이어그램의 경로를 따릅니다.

Visual Studio 프로젝트 개체

프로젝트 자동화

Project 개체를 구현하지 않으면 환경은 여전히 프로젝트 이름만 포함하는 일반 Project 개체를 반환합니다.

참고 항목