ddnet/src
Robert Müller c68841a733 Ensure Windows DDE conversations are finished in open_link
Use `ShellExecuteExW` instead of `ShellExecuteW` to pass the additional flag `SEE_MASK_NOASYNC`. This should ensure that DDE (Dynamic data exchange) conversations are finished before the function returns, as it would otherwise be necessary to manually pump messages on the calling thread. DDE conversations may be initiated when shell extensions are loaded via `ShellExecute`. Failing to answer the DDE messages will block the calling UI thread and may cause a dead-lock.

The flag `SEE_MASK_FLAG_NO_UI` is used to prevent native error message popups when the link/file cannot be opened.

Additionally, the `ShellExecute` verb is changed from `"open"` to `NULL`, which will cause the default shell handler to be used instead, as the `"open"` verb may not be available for all targets. Though for most targets it will be the default verb anyway.

References:

- https://learn.microsoft.com/en-us/windows/win32/api/shellapi/nf-shellapi-shellexecutew
- https://learn.microsoft.com/en-us/windows/win32/api/shellapi/ns-shellapi-shellexecuteinfow
- https://devblogs.microsoft.com/oldnewthing/20070430-00/?p=27063
- https://learn.microsoft.com/en-us/windows/win32/dataxchg/about-dynamic-data-exchange

Yet another attempt at solving #5744.
2022-10-12 17:18:57 +02:00
..
android More vector naming format 2022-06-15 19:37:37 +02:00
antibot Merge pull request #3961 from fokkonaut/pr-antibot 2021-12-19 19:33:56 +01:00
base Ensure Windows DDE conversations are finished in open_link 2022-10-12 17:18:57 +02:00
engine Initialize the Windows COM library on all threads 2022-10-12 17:18:57 +02:00
game Merge #5909 2022-10-10 14:42:18 +00:00
macos Huge variable naming format 2022-07-08 18:01:29 +02:00
mastersrv fix import on mastersrv 2022-10-07 21:32:53 +02:00
steam Huge variable naming format 2022-07-08 18:01:29 +02:00
test Only announce servers using Steam/Discord integration which are registered 2022-10-09 16:16:54 +02:00
tools Fix mismatched bound warning in map_replace_area and map_create_pixelart 2022-09-15 23:23:04 +02:00