Hola de nuevo,
dándole vueltas al tema me encontré con que hay que declarar dos veces la misma función, solamente cambiando la asignación del parámetro "lpKeyName". Y lo curioso es que una vez ejecutado el proyecto, puedes borrar la segunda declaración y funciona igual.
MS no dá información sobre el tema (al menos yo no encontré nada), pero creo que debe ser porque "GetPrivateProfileString" está en uso solamente por compatibilidad con 16 bits.
Bueno, te pongo el ejemplo que a mi me ha funcionado (yo lo puse en la clase del Form1).
Código:
Public Class Form1
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As String, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
' La siguiente declaración la puedes eliminar una vez que hayas ejecutado el proyecto
Private Declare Function GetPrivateProfileString Lib "kernel32" Alias "GetPrivateProfileStringA" (ByVal lpApplicationName As String, ByVal lpKeyName As Integer, ByVal lpDefault As String, ByVal lpReturnedString As String, ByVal nSize As Integer, ByVal lpFileName As String) As Integer
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim Est As String = New String(Chr(0), 255)
Dim i As Long = GetPrivateProfileString("Ejemplo", "Nombre", "", Est, Len(Est), "C:\test.ini")
If i > 0 Then
MsgBox("Tu Nombre es: " & Est)
End If
End Sub
End Class
Espero que te sirva.