Unix consoles (created from initial process) are inherited by child
processes for various reasons, like keeping std handles bound to that
unix console.
This differs from Windows as the default for a GUI is not to have
console attached.
If a GUI programs asks for a console, it will succeed on Windows
but fail under Wine as the Unix console is still present.
So, allow AllocConsole() to succeed when called from a GUI program
and tied to a Unix console.
(don't do it for CUI as they are already attached to a console).
This fixes Scrap Mechanic when run with '-dev' option.
(based on suggestion from Zhiyi Zhang)
Signed-off-by: Eric Pouech <epouech(a)codeweavers.com>
--
v2: kernelbase: Only inherit consoles for CUI processes.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3022
--
v5: winepulse: Refactor AudioClient's Initialize to match other drivers.
wineoss: Use create_stream's channel count in AudioClient's Initialize.
winecoreaudio: Use create_stream's channel count in AudioClient's Initialize.
winealsa: Use create_stream's channel count in AudioClient's Initialize.
winepulse: Use mmdevapi's set_stream_volumes.
wineoss: Use mmdevapi's set_stream_volumes.
winecoreaudio: Use mmdevapi's set_stream_volumes.
winealsa: Use mmdevapi's set_stream_volumes.
https://gitlab.winehq.org/wine/wine/-/merge_requests/3112