On Wed Apr 29 18:42:32 2026 +0000, Jacek Caban wrote:
Applying the same logic to VT_I8 and VT_UI8 would require adjustments. Converting them to double would result in a loss of precision. `VarCmp` seems to already handle that, in combination with VT_RESERVED. Maybe could just set that bit in `var_cmp` and let it do the work? Native VarCmp accepts VT_I8 but rejects VT_UI8, VT_UI2, VT_UI4, VT_UINT and VT_I1 with TYPE_MISMATCH (per oleaut32/tests/vartest.c test_VarCmp). So delegating to VarCmp+VT_RESERVED only covers the I8 case; the others would still need a separate path. And it still swallows the parse-error on a non-numeric BSTR (returns VARCMP_GT instead of error 13), so we'd need a pre-check.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/10775#note_138274