항목 추가 이벤트를 모니터링하려고합니다.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 이벤트를 듣는 것 외의 다른 방법을 알고 있습니까?
감사
미안하지만 나는 너무 바보 같다. 그렇다면 항목 (파일)이 추가 될 때 VS.NET 확장 (패키지) 알림을 받길 원한다면 내 패키지가 IVsHierarchyEvents 인터페이스를 구현해야합니까? 방금 시도했는데 이벤트가 아직 안 맞았습니다. – sowen
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
좋아, 정말 고마워! – sowen