public int OnAfterSccStatusChanged(int cProjects, int cFiles, IVsProject[] rgpProjects, int[] rgFirstIndices, string[] rgpszMkDocuments, uint[] rgdwSccStatus) { // The value 0x1F is the AND of the following bits. // We want to check if any of these 5 bits is on. // SCC_STATUS_CONTROLLED = 1, // SCC_STATUS_CHECKEDOUT = 2, // SCC_STATUS_OUTOTHER = 4, // SCC_STATUS_OUTEXCLUSIVE = 8, // SCC_STATUS_OUTMULTIPLE = 16, if (cProjects > 0 && cFiles > 0 && rgdwSccStatus != null && rgdwSccStatus.Any(f => (f & 0x1F) != 0) && rgpszMkDocuments != null && rgpszMkDocuments.Any(s => s.EndsWith(".sln", StringComparison.OrdinalIgnoreCase))) { _parent.OnSourceControlBound(); } return(VsConstants.S_OK); }