2013-02-21 1 views
2

현재 VS2010 확장을 VS2012로 이식하고 있으며 fAdded == 1으로 내 솔루션을로드 할 때 IVsSolutionEvents.OnAfterOpenProject(IVsHierarchy pHierarchy, int fAdded) 콜백이 호출 된 것을 확인했습니다. VS2012 프로젝트의 비동기 로딩 때문일 것으로 확신합니다. 이것은 VS2010에서는 발생하지 않습니다.VS2012의 솔루션을 열 때 OnAfterOpenProject가 fAdded == 1로 호출되었습니다.

그럼 내 질문은 OnAfterOpenProject에서 비동기 프로젝트로드 프로세스에서 호출되는 것을 어떻게 알 수 있습니까?

답변

0

(파티에 늦게 있지만) 그 행동 here MSDN IVsSolutionEvents.OnAfterOpenProject 참조에서이 올 것 같습니다과 문서가 설명하는 (지금까지 이상) :

는 fAdded

유형 : 선택 System.Int32

[있음] 사실 솔루션을 열면 프로젝트가 솔루션에 추가되는 경우입니다. false 솔루션을 열 때 프로젝트가 솔루션에 추가되는 경우

그리고 보고서에서

, 거짓 (솔루션 아직 로딩) 1에 매핑 것 같다, 그래서 사실0 매핑됩니다 같아요. 이 VSConstants의 정의와 어떻게 든 일치 :

public const int S_FALSE = 1; 
public const int S_OK = 0; 

마지막으로, OnAfterOpenProject 구현 당신이 fAdded 입력 값에 따라 통화를 필터링 할 수 있습니다에서 : 1를 호출하는 경우, 솔루션이 여전히 있음을 의미 (비동기 적으로)로드됩니다. 그렇지 않으면 새 프로젝트가 (이미로드 된) 솔루션에 추가되었음을 의미합니다.

관련 문제