Nikolay Sivov (@nsivov) commented about dlls/combase/roapi.c:
+ /* RO_ERROR_REPORTING_FORCEEXCEPTIONS overrides RO_ERROR_REPORTING_SUPPRESSEXCEPTIONS */ + raise_exception = (IsDebuggerPresent() && !(flags & RO_ERROR_REPORTING_SUPPRESSEXCEPTIONS)) || + (flags & RO_ERROR_REPORTING_FORCEEXCEPTIONS); + /* No need to do anything if: + * No debugger is attached, and no error reporting flags are set, or + * A debugger is attached, but SetErrorInfo and exceptions are disabled. */ + if (!set_error && !raise_exception) return TRUE; + + if (!(len_desc = FormatMessageW(FORMAT_MESSAGE_FROM_SYSTEM, NULL, error, 0, desc, ARRAY_SIZE(desc), NULL))) + len_desc = LoadStringW(hProxyDll, IDS_FALLBACK_HRESULT_MESSAGE, desc, ARRAY_SIZE(desc)); + + if (message) + { + /* Find the terminating NUL, and truncate the string to 512 characters. */ + max_len = max_len ? min(max_len, 512) : 512; + for (len_msg = 0; len_msg < max_len && message[len_msg]; len_msg++) /* nothing */; Is that some arbitrary length limit?
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/9332#note_120321