First commit adds a "todo_wine" test, second commit fixes the behavior and marks the test as no longer "todo". It looks like the same logic is already implemented (and tested) for the EnumDevices method.
Commit message for the fix commit:
---
This solves an issue in ZUSI 3 settings for DirectInput devices. Delphi defines the True value of the "C-compatible" LongBool type as -1, which wine interpreted to mean DIENUM_STOP because it is != DIENUM_CONTINUE. Change that logic so only an explicit DIENUM_STOP (= 0) return value stops the enumeration of objects.