Fixes Starfield not being able to take photos in photo mode (due to failing to creating windowscodecs' image factory due to COM apartment being initialized). Turns out on Windows RoGetActivationFactory() initializes implicit MTA apartment when called from STA thread, and so after that called once COM is implicitly uninitialized for any (new) thread until COM is uninitialized in the thread which called RoGetActivationFactory (or that thread exited). This is not the case on Win8 (where the function was first introduced) but looks consistent after that.
--
v4: combase: Ensure MTA existence in RoGetActivationFactory().
combase/tests: Add tests for implicit MTA with RoGetActivationFactory().
https://gitlab.winehq.org/wine/wine/-/merge_requests/3806
Since a81c53504ae32715e6e91bd020fdebd5bef20d48, reading the
debuggee environment could fail.
Depending on context, it could end up with no longer being
able to find ELF/Mach-O modules (as some codepaths get
the path to Wine's loader from debuggee environment).
Code was aligning read on allocation granularity, but this
can fail when not all the pages within that range are
committed. So align on page instead.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4048
--
v3: dmsynth: Create and register a fluid_sfont instance.
dmsynth: Create a fluid_synth instance on Open.
dmsynth: Simplify IDirectMusicSynth8_Open checks.
fluidsynth: Use Wine debugging facility for traces.
dmsynth: Import and use FluidSynth 2.3.3.
dmime/tests: Queue the message before calling SendPMsg twice.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3996
Windows gives this content special protection from being painted over, by some means that I have not investigated yet.
Emulate this protection for the trivial case of an InvalidateRect(...); call on the parent window.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/3416
This allows *BSDs to also have a fast path similar to futexes for thread-ID alerts.
Also a kevent with `EV_CLEAR` and `NOTE_TRIGGER` maps perfectly to the thread alertable state, fixing the issue of the current mach-semaphore implementation not correctly waiting in the test case below:
```
NtAlertThreadByThreadId((HANDLE)GetCurrentThreadId());
NtAlertThreadByThreadId((HANDLE)GetCurrentThreadId());
NtWaitForAlertByThreadId(NULL, NULL);
NtWaitForAlertByThreadId(NULL, NULL);
```
I took the liberty to remove this mach semaphore implementation, since all versions of OSX have supported kqueue().
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/4049