Ho trovato in rete la seguente classe che consente di scrivere e leggere nei file .ini:

codice:
    ' API functions
    Private Declare Ansi Function GetPrivateProfileString _
      Lib "kernel32.dll" Alias "GetPrivateProfileStringA" _
      (ByVal lpApplicationName As String, _
      ByVal lpKeyName As String, ByVal lpDefault As String, _
      ByVal lpReturnedString As System.Text.StringBuilder, _
      ByVal nSize As Integer, ByVal lpFileName As String) _
      As Integer

    Private Declare Ansi Function WritePrivateProfileString _
      Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _
      (ByVal lpApplicationName As String, _
      ByVal lpKeyName As String, ByVal lpString As String, _
      ByVal lpFileName As String) As Integer

    Private Declare Ansi Function GetPrivateProfileInt _
      Lib "kernel32.dll" Alias "GetPrivateProfileIntA" _
      (ByVal lpApplicationName As String, _
      ByVal lpKeyName As String, ByVal nDefault As Integer, _
      ByVal lpFileName As String) As Integer

    Private Declare Ansi Function FlushPrivateProfileString _
      Lib "kernel32.dll" Alias "WritePrivateProfileStringA" _
      (ByVal lpApplicationName As Integer, _
      ByVal lpKeyName As Integer, ByVal lpString As Integer, _
      ByVal lpFileName As String) As Integer

    Dim strFilename As String

    ' Constructor, accepting a filename
    Public Sub New(ByVal Filename As String)

        strFilename = Filename

    End Sub

    ' Read-only filename property
    ReadOnly Property FileName() As String

        Get
            Return strFilename
        End Get

    End Property

    Public Function GetString(ByVal Section As String, ByVal Key As String, ByVal [Default] As String) As String

        ' Returns a string from your INI file
        Dim intCharCount As Integer
        Dim objResult As New System.Text.StringBuilder(256)

        intCharCount = GetPrivateProfileString(Section, Key, _
           [Default], objResult, objResult.Capacity, strFilename)

        If intCharCount > 0 Then GetString = _
           Left(objResult.ToString, intCharCount)

    End Function

    Public Function GetInteger(ByVal Section As String, ByVal Key As String, ByVal [Default] As Integer) As Integer

        ' Returns an integer from your INI file
        Return GetPrivateProfileInt(Section, Key, _
           [Default], strFilename)

    End Function

    Public Function GetBoolean(ByVal Section As String, ByVal Key As String, ByVal [Default] As Boolean) As Boolean

        ' Returns a boolean from your INI file
        Return (GetPrivateProfileInt(Section, Key, _
           CInt([Default]), strFilename) = 1)

    End Function

    Public Sub WriteString(ByVal Section As String, ByVal Key As String, ByVal Value As String)

        ' Writes a string to your INI file
        WritePrivateProfileString(Section, Key, Value, strFilename)
        Flush()

    End Sub

    Public Sub WriteInteger(ByVal Section As String, ByVal Key As String, ByVal Value As Integer)

        ' Writes an integer to your INI file
        WriteString(Section, Key, CStr(Value))
        Flush()

    End Sub

    Public Sub WriteBoolean(ByVal Section As String, ByVal Key As String, ByVal Value As Boolean)

        ' Writes a boolean to your INI file
        WriteString(Section, Key, CStr(CInt(Value)))
        Flush()

    End Sub

    Private Sub Flush()

        ' Stores all the cached changes to your INI file
        FlushPrivateProfileString(0, 0, 0, strFilename)

    End Sub
Non capisco perchè l'ambiente di sviluppo sottolinea "End Function" relativo alla funzione "GetString" con il seguente messaggio:


La funzione 'Getstring' non restituisce un valore in tutti i percorsi del codice. E' possibile che venga restituita un'eccezione dovuta a un riferimento con valore null in fase di esecuzione quando viene utilizzato il risultato.
Come è possibile eliminare questo messaggio?