странно, что не работает. Только что проверил у себя — всё нормально.
//декларация в VB: (long — это INT32)
ShowCursor Lib "user32"(ByVal bShow As Long) as Long
bShow — Int32 — TRUE (ненулевое значение) для отображение курсора, False — для скрытия.
Windows ведёт внутренний счётчик отображений, значение которого увеличивается при каждом вызове этой функции с параметром bSHOW == true, и уменьшается, если параметр bShow == false. Курсор отображается, если значение счётчика >= 0