Since GetWindowTextLength has something to do with Strings, it may have two versions (GetWindowTextLengthA and GetWindowTextLengthW) in User32. In fact, it does. This is what VB's API Viewer gives me:
code:
Declare Function GetWindowTextLength Lib "user32" Alias "GetWindowTextLengthA" (ByVal hwnd As Long) As Long
Try it and report if it doesn't work
By the way, you also need to add "Alias GetWindowTextA" for GetWindowText, otherwise VB will complain about it too.
Another by the way is that you should use Long to store hWnd values in VB (I mean VB6), I guess...