2013-08-01 1 views
0

항목 추가 이벤트를 모니터링하려고합니다.VS.NET 확장 패키지에 IVsEditorFactoryNotify를 등록하는 방법은 무엇입니까?

내가

RegisterEditorFactory(new ProjectEditorFactory()); 

하지만, 이벤트 핸들러를 실행 한 후 패키지 내 초기화 방법에 다음

public class ProjectEditorFactory : IVsEditorFactoryNotify, IVsEditorFactory 
{ 
    public int NotifyDependentItemSaved(IVsHierarchy pHier, uint itemidParent, string pszMkDocumentParent, uint itemidDpendent, string pszMkDocumentDependent) 
    { 
     return VSConstants.S_OK; 
    } 

    public int NotifyItemAdded(uint grfEFN, IVsHierarchy pHier, uint itemid, string pszMkDocument) 
    { 
     return VSConstants.S_OK; 
    } 

    public int NotifyItemRenamed(IVsHierarchy pHier, uint itemid, string pszMkDocumentOld, string pszMkDocumentNew) 
    { 
     return VSConstants.S_OK; 
    } 

............ 
} 

와 같은 사용자 정의 편집기 공장을 만든

프로젝트에 새 항목을 추가 한 후 히트되지 않습니다.

아무도 이벤트를 잡는 방법을 알고 있습니까?

실제로 실제로 원하는 것은 문법적으로 몇 개의 파일을 추가 한 다음 하나의 특정 파일에 대한 종속성을 만드는 것입니다. 누구나 ItemAdded 이벤트를 듣는 것 외의 다른 방법을 알고 있습니까?

감사

답변

0

당신은 당신이 (비주얼 스튜디오 내부의 텍스트 편집기 등) 사용자 정의 편집기를 제공하려는 경우 그건, 여기 편집기 공장을 원하지 않는다. 프로젝트 시스템과의 통합을 조사해야합니다. 나는 새로운 프로젝트 시스템을 통해 그 일을 할 수있는 방법을 기억하지 못한다. 그러나 아마도 빠져 나갈 수는있다. http://msdn.microsoft.com/en-US/library/microsoft.visualstudio.shell.interop.ivshierarchyevents(v=vs.110).aspx

+0

미안하지만 나는 너무 바보 같다. 그렇다면 항목 (파일)이 추가 될 때 VS.NET 확장 (패키지) 알림을 받길 원한다면 내 패키지가 IVsHierarchyEvents 인터페이스를 구현해야합니까? 방금 시도했는데 이벤트가 아직 안 맞았습니다. – sowen

+0

IVsHierarchy를 가져 와서 AdviseHierarchyEvents 메서드를 호출하고 IVsHierarchyEvents 구현을 전달할 필요가 없습니다. http://blogs.clariusconsulting.net/pga/how-do-i-get-a-project-from-a-ivshierarchy-and-viceversa/를보십시오. 이것은 프로젝트 보류 방법을 보여줍니다. 일단 확인이되면 관심있는 이벤트를 받으려면 http://msdn.microsoft.com/en-US/library/microsoft.visualstudio.shell.interop.ivshierarchy.advisehierarchyevents(v=vs.80).aspx를 호출하십시오. – Ameen

+0

좋아, 정말 고마워! – sowen

관련 문제