다음을 통해 공유


프로젝트 모델 핵심 구성 요소

다음 테이블은 프로젝트 모델에서 확장됩니다. 테이블에는 모델에서 식별된 인터페이스 및 서비스, 특정 개체와 관련된 인터페이스 및 서비스에 대한 간략한 설명이 나와 있습니다. 또한 이 테이블에는 특정 프로젝트 유형의 요구 사항에 따라 프로젝트 생성 및 유지 관리에서 선택 사항인 기타 인터페이스가 자세히 설명되어 있습니다.

자세한 내용은 기호 검색 도구 지원을 참조하세요.

패키지 개체

인터페이스 설명
IVsPackage IDE에서 VSPackage를 초기화하고 해당 서비스를 IDE에서 사용할 수 있도록 합니다.

프로젝트 팩터리 개체

인터페이스 설명
IVsProjectFactory 새 프로젝트를 만들고 기존 프로젝트를 여는 것을 관리합니다.

프로젝트 개체

인터페이스 설명
IVsProject3 프로젝트 항목의 추가 및 제거를 관리하고, 편집기를 열고, 각 문서 이름과 VSITEMID 간의 매핑을 유지 관리합니다. IVsProjectIVsProject2에서 상속됩니다.
IVsHierarchy 탐색 및 표시 속성을 관리하고 이벤트를 제공합니다.
IVsUIHierarchy 포커스가 솔루션 탐색기에 있을 때만 적용되는 잘라내기 및 이름 바꾸기와 같은 명령에 대해 IOleCommandTarget과 유사한 명령 실행을 활성화합니다.
IOleCommandTarget 프로젝트 계층 구조의 기본 명령 대상 인터페이스 역할을 합니다. 명령 상태 또는 상태에 대한 개체를 쿼리하고 명령을 실행하기 위한 표준 인터페이스입니다. 프로젝트 창에 포커스가 없는 경우에 사용할 수 있습니다.
IPersistFileFormat 프로젝트 상태의 지속성을 조정합니다. 일반적으로 프로젝트 상태는 프로젝트 파일로 저장되지만 파일 기반이 아닌 스토리지 시스템에 맞게 조정할 수 있습니다.
IVsPersistHierarchyItem2 프로젝트가 디스크의 파일 또는 다른 스토리지 시스템의 개체로 프로젝트 항목에 대한 지속성의 모든 측면을 관리할 수 있도록 합니다. IVsPersistHierarchyItem2 인터페이스는 IVsPersistDocData2 인터페이스를 구현하지 않는 항목에 사용됩니다.
IVsSccProject2 소스 코드 컨트롤과의 상호 작용을 조정합니다.
IVsProjectFlavorCfgProvider 프로젝트에서 구성 정보를 관리할 수 있도록 합니다.
IVsCfgProvider2 디버그/릴리스 구성과 같은 프로젝트 구성 개체를 관리합니다. 빌드, 배포, 디버그 작업은 프로젝트 구성 개체를 통해 조정됩니다.
IVsHierarchyDeleteHandler 계층 구조 항목에 대한 삭제(파괴) 또는 제거(비파괴) 옵션을 제어하기 위해 계층에 의해 구현됩니다. IVsHierarchy 인터페이스에서 IVsHierarchyDeleteHandler 인터페이스의 쿼리 인터페이스를 호출합니다.
IVsGetCfgProvider IVsHierarchy 인터페이스를 구현하는 프로젝트 개체와 다른 COM ID에서 IVsCfgProvider2 인터페이스를 지원하는 개체를 갖는 구현 옵션을 제공합니다.
IVsProjectStartupServices 다른 개발자가 프로젝트를 확장할 수 있도록 구현된 선택적 인터페이스입니다. IVsProjectStartupServices 인터페이스를 사용하면 타사 VSPackage가 프로젝트 파일에 유지되는 GUID를 등록할 수 있으므로 프로젝트가 로드될 때마다 타사 서비스 GUID를 프로젝트 파일에 로드하고 해당 GUID에 대해 QueryService를 호출할 수 있습니다.
IVsUIHierWinClipboardHelperEvents 잘라내기, 복사 및 붙여넣기와 같은 클립보드 작업을 조정하기 위해 UIHierarchy 창의 소스 계층 구조에 의해 구현됩니다. AdviseClipboardHelperEvents 인터페이스를 사용하여 클립보드 이벤트를 등록합니다.
IVsHierarchyDropDataSource2 UI 계층 구조 창에서 끌어서 놓기 작업 중에 데이터 원본을 기준으로 끌어온 항목에 대한 정보를 제공합니다. IVsHierarchy 인터페이스에서 호출됩니다.
IVsHierarchyDropDataTarget UI 계층 창에서 끌어서 놓기 작업 중 끌어서 놓기 대상을 기준으로 끌어온 항목에 대한 정보를 제공합니다. IVsHierarchy 인터페이스에서 호출됩니다.

구성 개체

인터페이스 설명
IVsCfg 구성에 대한 정보를 제공합니다.
IVsProjectCfg2 프로젝트에서 구성 정보를 관리할 수 있도록 합니다.
IVsDebuggableProjectCfg 디버거의 제어 하에 프로젝트를 실행할 수 있습니다.
IVsDeployableProjectCfg 다른 프로젝트에 대한 배포 작업을 수행하는 배포 프로젝트에 의해 구현됩니다.

구성 작성기 개체

인터페이스 설명
IVsBuildableProjectCfg 프로젝트 구성의 빌드 작업을 관리합니다.

추가 프로젝트 개체

인터페이스 설명
IDispatch

ISpecifyPropertyPages
속성 창에 항목 속성을 표시합니다.
IVsOutput2

IVsEnumOutputs
배포에 대한 출력을 표시합니다.

다음 테이블에는 프로젝트 모델에서 식별된 서비스에 대한 간략한 설명이 나와 있습니다.

Services

서비스 설명
SVsRegisterProjectTypes 프로젝트 형식을 구현하는 VSPackage에서 프로젝트 팩터리를 IDE에 등록하는 데 사용됩니다. VSPackage는 이 서비스에 대해 QueryService를 호출하고 IVsPackage::SetSite 메서드가 호출될 때 프로젝트 팩터리를 등록해야 합니다. SetSite 메서드가 호출되지 않으면 프로젝트가 인스턴스화되지 않습니다.
SVsSolution 프로젝트를 열거하고, 새 프로젝트를 만들고, 프로젝트 변경 사항을 주의를 기울이는 기능 등 현재 솔루션에 대한 IDE의 내부 기본 제공 개념에 대한 액세스를 제공합니다.
SVsSccManager 소스 제어에 참여하려는 프로젝트에서 호출합니다.
SVsRunningDocumentTable 열려 있는 문서 테이블을 유지 관리하여 프로젝트 항목 중 하나 이상이 이미 열려 있는지 여부를 확인합니다.
SVsUIShellOpenDocument 표준 편집기 또는 특정 편집기를 사용하여 프로젝트 항목을 실제로 열기 위해 호출된 인터페이스와 메서드를 포함합니다.
SVsTrackProjectDocuments 항목을 추가, 제거 또는 이름을 바꿀 때 모든 프로젝트에서 호출해야 합니다.
SVsFileChangeEx 파일 또는 디렉터리에 대한 변경 내용을 관리하고 선택한 파일이 디스크에서 변경된 경우 클라이언트에 알립니다.
SVsQueryEditQuerySave 항목을 더럽히거나 저장하기 전에 모든 프로젝트 및 편집자가 호출해야 합니다.
SVsSolutionBuildManager 프로젝트 구성에 대한 빌드 및 배포 작업의 순서를 관리합니다.
SVsShellDebugger 대부분의 디버깅 컨트롤에 사용되는 하위 수준 디버거 서비스에 대한 액세스를 제공합니다.
SVsShellMonitorSelection VSPackage가 현재 선택 항목에 대한 정보에 액세스할 수 있도록 하고 속성 창과의 통신을 사용하도록 설정합니다.
SVsUIShell 도구 창 또는 문서 창을 만들고 열거하거나 사용자에게 오류를 보고하는 기능과 같은 기본 UI 관련 IDE 기능을 제공합니다.
SVsStatusbar IDE의 상태 표시줄에 대한 액세스를 제공합니다.
IVsExtensibility3 자동화 모델을 구현하는 데 사용됩니다. 프로젝트 모델에서 해당 개체의 인스턴스를 만들 수 있는 속성 개체를 반환합니다.
SVsUIHierWinClipboardHelper 계층 구조의 프로젝트 개체에서 클립보드 이벤트를 구현하는 데 사용됩니다. SVsUIHierWinClipboardHelper를 사용하면 잘라내기, 복사, 붙여넣기 작업을 올바르게 처리할 수 있습니다.

참고 항목