quizas porque a la funcion SetWindowTextA se le esta pasando 4 parametros (Me.hWnd, "Hello !", ByVal 0&, ByVal 0&) en lugar de 2 (HWND + titulo), cambie el codigo, en vez de llamar a SetWindowTextA llama a MessageBoxA y funciona (este si tiene 4 parametros):
Private Declare Function FreeLibrary Lib "kernel32" (ByVal hLibModule As Long) As Long
Private Declare Function LoadLibrary Lib "kernel32" Alias "LoadLibraryA" (ByVal lpLibFileName As String) As Long
Private Declare Function GetProcAddress Lib "kernel32" (ByVal hModule As Long, ByVal lpProcName As String) As Long
Private Declare Function CallWindowProc Lib "user32" Alias "CallWindowProcA" (ByVal lpPrevWndFunc As Long, ByVal hWnd As Long, ByVal Msg As Any, ByVal wParam As Any, ByVal lParam As Any) As Long
Private Sub Form_Load()
On Error Resume Next
Dim Icono As Long
Icono = 48
'KPD-Team 1999
'URL: http://www.allapi.net/
'E-Mail: KPDTeam@Allapi.net
'We're going to call an API-function, without declaring it!
Dim lb As Long, pa As Long
'map 'user32' into the address space of the calling process.
lb = LoadLibrary("user32")
'retrieve the address of 'SetWindowTextA'
pa = GetProcAddress(lb, "MessageBoxA")
'Call the SetWindowTextA-function
CallWindowProc pa, Me.hWnd, "Hello !", "titulo", Icono
'unmap the library's address
FreeLibrary lb
End Sub