then the latter shouldn't call MessageBeep(). yeah, Beep doesn't call MessageBeep. the beep I am attempting to implement will be done by a change in conhost where if '\a'(int 7) is encountered we call MessageBeep(MB_OK), that's about it
On Thu, Jul 23, 2026 at 10:29 PM Elizabeth Figura <zfigura@codeweavers.com> wrote:
On Thursday, 23 July 2026 11:56:38 CDT Barath Rk wrote:
Higher than Beep() From what I have seen, MessageBeep and Beep appear to be pretty different the way they have been implemented right now. MessageBeep calls the respective Beep method defined for the particular display server protocol being used. Currently only X11/XWayland is supported(look at pBeep in x11drv_funcs present in dlls/winex11.drv/init.c which is basically just a call to XBell). A Beep method for Wayland needs to be implemented.
MessageBeep() was supposed to call Beep() in fact. MSDN claims that Beep is the fallback: https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messa... But as it stands MessageBeep doesn't fallback to Beep and in any case lBeep isn't even properly implemented. No tone generation seems to be in place; it just forwards the request to conhost with the IOCTL_CONDRV_BEEP code, which essentially calls the terminal's configured beep(only if it is a unix terminal or else it does nothing lol). So I suppose Beep should also be properly implemented at some point, if desired.
Well if MessageBeep() might fall back to Beep(), and Beep() calls IOCTL_CONDRV_BEEP, then the latter shouldn't call MessageBeep().
On Thu, Jul 23, 2026 at 10:09 PM Elizabeth Figura <zfigura@codeweavers.com> wrote:
On Thursday, 23 July 2026 10:34:37 CDT Eric Pouech via Wine-Devel wrote:
Le 23/07/2026 à 17:06, Elizabeth Figura via Wine-Devel a écrit :
On Wednesday, 22 July 2026 03:15:12 CDT Eric Pouech via Wine-Devel wrote:
Le 22/07/2026 à 03:31, Barath Rk via Wine-Devel a écrit :
Hmm alright. Thanks for the detailed response
MessageBeep shall be used
Isn't MessageBeep a higher level API?
higher than what?
(it's supposed to be called from conhost.exe, so I don't see too much trouble here)
Higher than Beep(). I thought that MessageBeep() was supposed to call Beep() in fact.
I guess with conhost maybe it is the other way around.
and I tried to avoid calling kernel32.Beep from conhost (it would require calling some MM apis from kernel32, which doesn't seem great either)
-Eric