On Mon Nov 20 11:27:02 2023 +0000, Rémi Bernon wrote:
Changing `performance_process_message` return value to `E_PENDING` for instance, I think something like that could work:
hr = performance_process_message(This, &message->msg, &timeout); if (hr == DMUS_S_REQUEUE) performance_queue_message(This, message, NULL); else if (hr == E_PENDING) performance_queue_message(This, message, next); if (FAILED(hr)) break;
Or maybe better, unlink the message only before calling `IDirectMusicTool_ProcessPMsg`.