Jinoh Kang (@iamahuman) commented about dlls/riched20/tests/richole.c:
+ } + if (SUCCEEDED(hr) && inst->undo_ctl_state == undoStateDisabled) + { + inst->undo_ctl_state = undoStateActive; + inst->last_undo_status = TRUE; + } + break; + case undoActionDisable: + hr = ITextDocument_Undo(inst->doc, tomFalse, count); + todo_wine + ok(hr == S_OK, "Undo: %#lx\n", hr); + if (SUCCEEDED(hr)) + { + inst->undo_ctl_state = undoStateDisabled; + inst->last_undo_status = FALSE; + inst->last_redo_status = FALSE; This models the complex behaviour of riched20's undo/redo status return. Note that removing any of both statements or flipping any boolean value makes the test fail.
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/320#note_3239