http://bugs.winehq.org/show_bug.cgi?id=8822
--- Comment #17 from Vladimir vladimiroski@gmail.com 2008-04-27 00:16:25 --- Ok, the problem is around there.
It's not itself that it returns or not a value, but that the function has a return Type instead of default "Variant".
Adding a "As Integer" to the Function solves the problem.
Function TimerProcFunc(ByVal HWnd As Long, ByVal uMsg As Long, ByVal nIDEvent As Long, ByVal dwTimer As Long) As Integer
My best guess is that Wine is somehow failing when the return type is Variant.