다음을 통해 공유


사용자 지정 문서 저장

환경은 저장, 다른 이름으로 저장모두 저장 명령을 처리합니다. 사용자가 파일 메뉴에서 저장, 다른 이름으로 저장또는 모두 저장을 클릭하거나 솔루션을 닫으면 모두 저장이 수행됩니다.

고객 편집기 프라이빗 저장

사용자 지정 편집기를 위한 저장, 다른 이름으로 저장 및 모두 저장 명령 처리

이 프로세스는 다음 단계에 자세히 설명되어 있습니다.

  1. 저장다른 이름으로 저장 명령의 경우, 환경은 SVsShellMonitorSelection 서비스를 사용하여 현재 활성 문서 창을 결정하고, 따라서 저장해야 할 항목들을 정합니다. 현재 문서 창이 알려지면 환경은 실행 중인 문서 테이블의 문서에 대한 계층 구조 포인터 및 itemID(항목 식별자)를 찾습니다. 자세한 내용은 문서 테이블 실행을 참조하세요.

    모두 저장 명령의 경우 환경은 실행 중인 문서 테이블의 정보를 사용하여 저장할 모든 항목의 목록을 컴파일합니다.

  2. 솔루션이 호출을 QueryStatus 받으면 선택한 항목 집합(즉, 서비스에서 노출하는 SVsShellMonitorSelection 여러 선택 항목)을 반복합니다.

  3. 선택 영역의 각 항목에서 솔루션은 계층 구조 포인터를 사용하여 메서드를 호출 IsItemDirty 하여 저장 메뉴 명령을 사용할지 여부를 결정합니다. 하나 이상의 항목이 더티인 경우 저장 명령이 사용하도록 설정됩니다. 표준 편집기를 사용하는 경우, 계층은 IsDocDataDirty 메서드를 호출하여 수정 여부 상태에 대한 쿼리를 편집기에 위임합니다.

  4. 선택한 각 변경된 항목에 대해, 솔루션은 계층 포인터를 사용하여 적절한 계층의 SaveItem 메서드를 호출합니다.

    사용자 지정 편집기의 경우 문서 데이터 개체와 프로젝트 간의 통신은 비공개입니다. 따라서 이러한 두 개체 간에 특별한 지속성 문제가 처리됩니다.

    비고

    고유한 지속성을 구현하는 경우 시간을 절약하기 위해 메서드를 QuerySaveFiles 호출해야 합니다. 이 메서드는 파일을 저장해도 안전한지 확인합니다(예: 파일이 읽기 전용이 아님).