Public Overridable Function FilesToCheckOut()

in vsintegration/src/FSharp.ProjectSystem.PropertyPages/PropertyPages/PropertyControlData.vb [2251:2299]


        Public Overridable Function FilesToCheckOut() As String()
            Const PERUSER_EXTENSION As String = ".user" 

            
            If m_PropPage Is Nothing OrElse m_PropPage.DTEProject Is Nothing OrElse m_PropPage.m_ObjectsPropertyDescriptorsArray Is Nothing OrElse m_PropPage.m_ExtendedObjects Is Nothing Then
                Debug.Fail("PropertyControlData.FilesToCheckOut: can't determine files to check out because of an uninitialized field")
            Else
                
                If (Me.Flags And ControlDataFlags.PersistedInProjectUserFile) <> 0 Then
                    
                    Return New String() {m_PropPage.DTEProject.FullName & PERUSER_EXTENSION}

                ElseIf (Me.Flags And ControlDataFlags.PersistedInVBMyAppFile) <> 0 Then
                    Try
                        Dim MyAppProperties As MyApplication.MyApplicationPropertiesBase = _
                            DirectCast(m_PropPage.m_ObjectsPropertyDescriptorsArray(0)("MyApplication").GetValue(m_PropPage.m_ExtendedObjects(0)), MyApplication.MyApplicationPropertiesBase)
                        Debug.Assert(MyAppProperties IsNot Nothing)
                        If MyAppProperties IsNot Nothing Then
                            Return MyAppProperties.FilesToCheckOut(True)
                        End If
                    Catch ex As Exception When Not Common.IsUnrecoverable(ex)
                        Debug.Fail("Unable to retrieve MyApplicationProperties to figure out set of files to check out")
                    End Try
                ElseIf (Me.Flags And ControlDataFlags.PersistedInAppManifestFile) <> 0 Then
                    Dim AppManifest As String = GetSpecialFile(__PSFFILEID2.PSFFILEID_AppManifest, True)
                    If AppManifest <> "" Then
                        Return New String() {AppManifest}
                    End If
                ElseIf (Me.Flags And ControlDataFlags.PersistedInAssemblyInfoFile) <> 0 Then
                    Dim AssemblyInfo As String = GetSpecialFile(__PSFFILEID2.PSFFILEID_AssemblyInfo, True)
                    If AssemblyInfo <> "" Then
                        Return New String() {AssemblyInfo}
                    End If
                ElseIf (Me.Flags And ControlDataFlags.PersistedInApplicationDefinitionFile) <> 0 Then
                    Const PSFFILEID_AppXaml As Integer = -1008
                    Dim applicationDefinition As String = GetSpecialFile(PSFFILEID_AppXaml, True)
                    If applicationDefinition <> "" Then
                        Return New String() {applicationDefinition}
                    End If
                ElseIf (Me.Flags And ControlDataFlags.NoOptimisticFileCheckout) <> 0 Then
                    Return New String() {}
                Else
                    
                    Return New String() {m_PropPage.DTEProject.FullName}
                End If
            End If

            Return New String() {}
        End Function