The typelib is only created if something requests it, so it may be NULL at PROCESS_DETACH.
WMPControls_play doesn't release and NULL out the filter_graph it creates on failure. So if a call to play() fails after making filter_graph but before making media_controls, calling play() again on the same instance will crash.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3326
This MR allows existing some existing Windows TTS Engines, such as Amazon Polly, to be used in Far Cry 6, and possibly in other games/applications.
--
v2: sapi: Implement ISpVoice::WaitUntilDone.
sapi: Implement ISpTTSEngineSite::GetActions/Rate/Volume.
sapi: Implement ISpTTSEngineSite::Write.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3328