Values returned from PtInRect and LB_ITEMFROMPOINT are reversed.
diff --git a/controls/listbox.c b/controls/listbox.c index 44f9e1e..47cd85e 100644 --- a/controls/listbox.c +++ b/controls/listbox.c
@@ -2257,7 +2257,7 @@ rect.bottom = descr->height; return MAKELONG( LISTBOX_GetItemFromPoint(wnd, descr, pt.x, pt.y), - PtInRect( &rect, pt ) ); + !PtInRect( &rect, pt ) ); } case LB_SETCARETINDEX16: