다음을 통해 공유


표준 편집기 열기

표준 편집기를 열면 IDE에서 파일에 대한 프로젝트별 편집기를 지정하는 대신 지정된 파일 형식에 대한 표준 편집기를 결정할 수 있습니다.

다음 절차를 완료하여 OpenItem 메서드를 구현합니다. 그러면 표준 편집기에서 프로젝트 파일이 열립니다.

표준 편집기를 사용하여 OpenItem 메서드를 구현하려면

  1. IVsRunningDocumentTable(RDT_EditLock)을 호출하여 문서 데이터 개체 파일이 이미 열려 있는지 확인합니다.

  2. 파일이 이미 열려 있는 경우 IsDocumentOpen 메서드를 호출하여 grfIDO 매개 변수에 대해 IDO_ActivateIfOpen 값을 지정하여 파일을 다시 표면화합니다.

    파일이 열려 있고 문서가 호출 프로젝트와 다른 프로젝트에서 소유하는 경우 열려 있는 편집기가 다른 프로젝트의 편집기라는 경고가 프로젝트에 표시됩니다. 그런 다음, 파일 창이 표시됩니다.

  3. 문서가 열려 있지 않거나 실행 중인 문서 테이블에 없는 경우 OpenStandardEditor 메서드(OSE_ChooseBestStdEditor)를 호출하여 파일에 대한 표준 편집기를 엽니다.

    메서드를 호출할 때 IDE는 다음 작업을 수행합니다.

    1. IDE는 레지스트리의 Editors/{guidEditorType}/Extensions 하위 키를 검사하여 파일을 열 수 있는 편집기를 확인하고 이 작업을 수행하는 데 가장 높은 우선 순위를 둡니다.

    2. IDE에서 파일을 열 수 있는 편집기를 결정한 후 IDE가 CreateEditorInstance를 호출합니다. 이 메서드의 편집기 구현에서는 IDE가 CreateDocumentWindow를 호출하고 새로 연 문서를 사이트로 지정하는 데 필요한 정보를 반환합니다.

    3. 마지막으로 IDE는 일반적인 지속성 인터페이스(예: IVsPersistDocData2)를 사용하여 문서를 로드합니다.

    4. IDE가 이전에 계층 구조 또는 계층 구조 항목을 사용할 수 있다고 결정한 경우 IDE는 프로젝트에서 GetItemContext 메서드를 호출하여 CreateDocumentWindow 메서드 호출로 다시 전달할 프로젝트 수준 컨텍스트 IServiceProvider 포인터를 가져옵니다.

  4. 편집기가 프로젝트에서 컨텍스트를 가져올 수 있도록 하려면 IDE가 프로젝트에서 GetItemContext를 호출할 때 IDE에 대한 IServiceProvider 포인터를 반환합니다.

    이 단계를 수행하면 프로젝트에서 편집기에 추가 서비스를 제공할 수 있습니다.

    문서 보기 또는 문서 보기 개체가 창 프레임에 성공적으로 배치된 경우 개체는 LoadDocData를 호출하여 해당 데이터로 초기화됩니다.