방법: 프로젝트 관련 편집기 열기How to: Open project-specific editors

프로젝트에 의해 열리는 항목 파일이 기본적으로 해당 프로젝트의 특정 편집기에 바인딩된 경우 프로젝트는 프로젝트별 편집기를 사용 하 여 파일을 열어야 합니다.If an item file being opened by a project is intrinsically bound to the particular editor for that project, the project must open the file by using a project-specific editor. 편집기를 선택 하기 위해 IDE의 메커니즘으로 파일을 위임할 수 없습니다.The file cannot be delegated down to the IDE's mechanism for selecting an editor. 예를 들어 표준 비트맵 편집기를 사용 하는 대신이 프로젝트 관련 편집기 옵션을 사용 하 여 프로젝트에 고유한 파일의 정보를 인식 하는 특정 비트맵 편집기를 지정할 수 있습니다.For example, instead of using a standard bitmap editor, you can use this project-specific editor option to specify a specific bitmap editor that recognizes information in the file that is unique to your project.

IDE는 OpenItem 특정 프로젝트에서 파일을 열어야 하는 경우 메서드를 호출 합니다.The IDE calls the OpenItem method when it determines that a file should be opened by a specific project. 자세한 내용은 파일 열기 명령을 사용 하 여 파일 표시를 참조 하세요.For more information, see Display files by using the Open File command. 프로젝트 OpenItem 관련 편집기를 사용 하 여 프로젝트에서 파일을 열 수 있도록 메서드를 구현 하려면 다음 지침을 따르십시오.Use the following guidelines to implement the OpenItem method to have your project open a file by using a project-specific editor.

프로젝트별 편집기를 사용 하 여 OpenItem 메서드를 구현 하려면To implement the OpenItem method with a project-specific editor

  1. ( FindAndLockDocument ) 메서드를 호출 RDT_EditLock 하 여 파일 (문서 데이터 개체)이 이미 열려 있는지 여부를 확인 합니다.Call the FindAndLockDocument method (RDT_EditLock) to determine whether the file (document data object) is already open.

    참고

    문서 데이터 및 문서 뷰 개체에 대 한 자세한 내용은 사용자 지정 편집기의 문서 데이터 및 문서 뷰를 참조 하세요.For more information about document data and document view objects, see Document data and document view in custom editors.

  2. 파일이 이미 열려 있는 경우에는 메서드를 호출 하 IsDocumentOpen 고 매개 변수에 IDO_ActivateIfOpen 값을 지정 하 여 파일을 resurface 합니다 grfIDO .If the file is already open, resurface the file by calling the IsDocumentOpen method and specifying a value of IDO_ActivateIfOpen for the grfIDO parameter.

    파일이 열려 있고 문서를 호출 하는 프로젝트가 아닌 프로젝트에서 소유 하 고 있는 경우 사용자에 게 열려 있는 편집기가 다른 프로젝트에서 발생 하는 것으로 표시 되는 경고가 표시 됩니다.If the file is open and the document is owned by a project other than the calling project, a warning will be displayed to the user that the editor being opened is from another project. 그러면 파일 창이 표시 됩니다.The file window is then surfaced.

  3. 텍스트 버퍼 (문서 데이터 개체)가 이미 열려 있는 상태에서 다른 뷰를 연결 하려는 경우 해당 뷰를 연결 해야 합니다.If your text buffer (document data object) is already open and you want to attach another view to it, you are responsible for hooking up that view. 프로젝트에서 뷰 (문서 뷰 개체)를 인스턴스화하는 권장 방법은 다음과 같습니다.The recommended approach to instantiating a view (document view object) from the project, is as follows:

    1. QueryService서비스에서를 호출 하 여 인터페이스에 대 한 포인터를 SLocalRegistry 가져옵니다 ILocalRegistry2 .Call QueryService on the SLocalRegistry service to get a pointer to the ILocalRegistry2 interface.

    2. 메서드를 호출 CreateInstance 하 여 문서 뷰 클래스의 인스턴스를 만듭니다.Call the CreateInstance method to create an instance of the document view class.

  4. CreateDocumentWindow문서 뷰 개체를 지정 하 여 메서드를 호출 합니다.Call the CreateDocumentWindow method, specifying your document view object.

    이 메서드는 문서 창에서 문서 뷰 개체를 사이트 합니다.This method sites the document view object in a document window.

  5. 또는 메서드에 대 한 적절 한 호출을 수행 합니다 InitNew Load .Perform the appropriate calls to either the InitNew or the Load methods.

    이 시점에서 뷰를 완전히 초기화 하 여 열 수 있도록 준비 해야 합니다.At this point, the view should be fully initialized and ready to be opened.

  6. 메서드를 호출 Show 하 여 뷰를 표시 하 고 엽니다.Call the Show method to show and open the view.

참고 항목See also