The Wine development release 4.15 is now available. What's new in this release (see below for details): - Initial implementation of the HTTP service. - Stack unwinding support on ARM64. - Better multi-monitor support on macOS. - RichEdit control optimizations. - Various bug fixes. The source is available from the following locations: https://dl.winehq.org/wine/source/4.x/wine-4.15.tar.xz http://mirrors.ibiblio.org/wine/source/4.x/wine-4.15.tar.xz Binary packages for various distributions will be available from: https://www.winehq.org/download You will find documentation on https://www.winehq.org/documentation You can also get the current source directly from the git repository. Check https://www.winehq.org/git for details. Wine is available thanks to the work of many people. See the file AUTHORS in the distribution for the complete list. ---------------------------------------------------------------- Bugs fixed in 4.15 (total 28): 22383 Dragon Age: Origins - massive flickering when StrictDrawOrdering is disabled 33834 user32: multiline edit control renders tabs not correctly using usp10 34830 rpcrt4:cstub fails and crashes on Windows 8 37781 Multiple Microsoft Redistributable/Component installers running in Windows 7 mode need dummy Windows Update Service (MS .NET Framework 4.5, MS VC++ 2015 Redist) 38245 Construct 2 can't create a localhost server (needs implementation of version 1 httpapi request queues) 40868 World of Warcraft 7 (Legion expansion beta realm version) client causes a lot of seh:RtlCaptureStackBackTrace stub noise in console 41752 Need For Speed Most Wanted 2012 Corrupted Models & Textures in Game 42681 Regression: Graphics/Texture no longer render correctly in Reflex Arena 43387 valgrind shows several definite leaks in dlls/windowscodecs/tests/metadata.c 44958 Epic Games crash reporter needs 'dbgeng.DebugCreate' to support IDebugClient5 interface 45420 Titanfall 2 Multiplayer mode stuck on Attempting Connection 45843 Battleye's BEDaisy.sys expects memory allocated by ExAllocatePoolWithTag to be executable 46315 Vypress Chat 2.1.9 MSI installer crashes without native jscript 47035 widl generates typelib file with enums multiply defined 47041 wire_marshal attribute ignored and the underlying type is used instead 47049 boolean type defined as 'unsigned char' rather than 'char' 47050 typedef'd anonymous structs typedef'd names are not used in interface methods 47101 Multiple 64-bit game and application crash reporting tools need x86_64 'ntdll.RtlCaptureStackBackTrace' implementation 47149 widl generates invalid C headers when user-defined structs also have const typedef'd names 47427 Glide wrapper - Configuration buttons misbehaving 47436 `winetricks -q dotnet30sp1` fails 47442 Quickbooks 2018 installer fails during Amyuni ABS PDF driver installation, reporting 'File not found.' (needs stub 'regini.exe') 47494 SuperTux: Fullscreen mode not working on MacOSX (Invalid monitor handle) 47523 EverQuest crashes on unimplemented function KERNEL32.dll.EnumSystemFirmwareTables since build Jul 12 2019 47563 Sforzando Sample Player works but GUI is blank (unusable) 47633 Guild Wars quits silently after the splash screen 47636 Multiple games text is upside down (affects Wizard101, Touhou, Unreal Tournament) 47661 SwanSoft CNC: Crashes when clicking "tools management" button ---------------------------------------------------------------- Changes since 4.14: Akihiro Sagawa (5): winex11.drv: Indicate whether the drop point is non-client area. comctl32/tests: Add tests to show no NM_RELEASEDCAPTURE notifications in the updown control. comctl32/updown: Suppress the NM_RELEASEDCAPTURE notification. winemac.drv: Translate the WM_DROPFILES point into client coordinates whenever possible. winemac.drv: Indicate whether the drop point is non-client area. Alex Henrie (1): ntdll/tests: Add more tests for RtlIpv4StringToAddress. Alexandre Julliard (27): ntdll: Move some exception definitions to winnt.h. ntdll: Share dynamic exception table functions across platforms. winedump: Add dumping for exception info for ARM64. include: Add support for .seh asm annotations. winecrt0: Add .seh annotations for x86_64. kernel32: Add .seh annotations for x86_64. ntdll: Add .seh annotations for x86_64. oleaut32: Add .seh annotations for x86_64. rpcrt4: Add .seh annotations for x86_64. vcomp: Add .seh annotations for x86_64. msvcrt: Simplify stack layout in __crtCapturePreviousContext(). d2d1: Make qsort() callback functions cdecl. d3dx9: Make qsort() callback functions cdecl. dsound: Make a qsort() callback function cdecl. inetmib1: Make bsearch() callback functions cdecl. mfplat: Make bsearch() callback functions cdecl. ntdll: Run signal handlers on the signal stack on ARM64. kernelbase: Implement SetThreadStackGuarantee(). ntdll: Take stack guarantee into account when handling stack overflows. Revert "wine/asm.h: Quote stdcall decored symbols." Revert "winebuild: Quote stdcall decored symbols." kernelbase: Comment out DECLSPEC_HOTPATCH on stub functions. ntdll: Implement RtlVirtualUnwind() for ARM64. ntdll: Add a helper function for calling RtlVirtualUnwind() on x86-64. configure: Add support for using an external libunwind. ntdll: Implement stack unwinding on ARM64. mfplat: Fix a GUID name. Alistair Leslie-Hughes (7): include: Add IDirectSoundFX interfaces. include: Add more ListView macros. dbgeng: Support interfaces IDebugClient2-7. dsound: Add missing defines. include: Allow compiling against IDirectSound*8 interfaces. odbccp32: Correct error when driver cannot be found. msi: Don't error when an ODBC Data Source fails to register. Andrey Gusev (1): twain_32: Add missing debugstr_a. André Hentschel (1): ntdll: Add RtlUnwindEx spec entry for ARM64. Austin English (2): mscoree/tests: Mark tests as todo_wine if mono is not available on the current platform. regini: Add stub program. Benedikt Bär (1): ucrtbase: Add more functions for Star Citizen 3.6.1. Bernhard Übelacker (2): cmd.exe: Command type with multiple files should print filenames to stderr. cmd.exe: Change parsing of the if command to avoid parsing the operators. Brendan Shanks (2): dinput/tests: Test for correct guidProduct. dinput: Add "PIDVID" guidProduct and use for non-keyboards/mice. Carlo Bramini (1): hhctrl.ocx: Expand environment vars in file name. Damjan Jovanovic (5): start.exe: Unquote the title. cmd.exe: If there is a title given through STARTUPINFO, use it. start.exe: Pass the "show window" flags to CreateProcess() too. start.exe: Launch all binaries through CreateProcess(). start.exe: Search PATH for the executable to launch. Daniel Lehman (1): wininet/tests: Fix typo in error message. Dmitry Timoshkov (1): rpcrt4: Add an exception handler to NdrAsyncClientCall. Fabian Maurer (1): find/tests: First tests. François Gouget (6): dbgeng: Fix the spelling of GetInterruptTimeout(). ntdll: Fix the spelling of StoragePortClassGuid. ninput: Fix the name of MANIPULATION_VELOCITY's velocityExpansion field. ntoskrnl.exe: Fix the name of CONFIGURATION_TYPE's MaximumType enum entry. wdscore: Fix the name of the WdsIterate*() stubs. api-*-advapi32-*: Fix the name of the ConvertToAutoInheritPrivateObjectSecurity() stub. Gijs Vermeulen (1): ucrtbase: Add _o__mbstrlen. Gleb Smirnoff (1): iphlpapi: Account for structs inpcb and tcpcb being unavailable for userland in FreeBSD 12. Hans Leidekker (8): ntdll: Read the chassis type from sysfs. wbemprox: Store the element size in struct array. wbemprox: Retrieve more properties from the SMBIOS table. wbemprox/tests: Add tests for Win32_Baseboard. wbemprox: Avoid evaluating row conditions twice. wbemprox: Support boolean qualifier values. wbemprox: Implement IWbemClassObject::GetQualifierSet. wbemprox: Implement IWbemQualifierSet::GetNames. Henri Verbeet (6): wined3d: Introduce WINED3D_TEXTURE_DOWNLOADABLE. wined3d: Introduce wined3d_colour_srgb_from_linear(). wined3d: Store the sRGB constants as wined3d_vec4 structures. wined3d: Add support for sRGB formats to wined3d_format_convert_from_float(). wined3d: Create the default samplers in adapter_vk_init_3d(). wined3d: Initialise d3d_info after quirks are applied. Huw D. M. Davies (6): riched20: Clearly separate the selection setting functions. riched20: Only invalidate the selection if it's not hidden. riched20: Move release_font_cache() further up the file. riched20: Allow the style to remain selected in the context. riched20: Use PatBlt() instead of FillRect() to paint the background area. riched20: Don't calculate the para numbering data if numbering is disabled. Isira Seneviratne (2): cabinet/tests: Alter string declaration to include null terminator. jscript: Replace '%pure-parser' with '%define api.pure'. Jacek Caban (21): jscript: Support enumerating own properties. jscript: Add Object.defineProperties implementation. jscript: Support properties argument in Object.create. mshtml/tests: Add Object.defineProperties tests. jscript: Fix Object.defineProperty return value. vbscript/tests: Fix tests on recent win10. vbscript: Return correct error when builtin call argument count is invalid. vbscript: Add Asc implementation. vbscript: Fix handling null argument in CStr. vbscript/tests: Fix tests on some Vista versions. vbscript: Support arrays in VarType. vbscript: Handle long/short distinction in interpreter. vbscript: Rename OP_long expression to OP_int. vbscript: Support unary + expressions. winebuild: Don't include aliases in importlib .def files. winebuild: Don't underscore local symbols in func_declaration. mscvrt: Always provide float variants of math functions in importlib on x86. wine/asm.h: Quote stdcall decored symbols. winebuild: Quote stdcall decored symbols. vbscript: Suport + sign in exponential literals. kernel32/tests: Add exception handling race test. Jactry Zeng (6): mfplat: Implement MFCreateDXGIDeviceManager(). mfplat: Implement IMFDXGIDeviceManager::ResetDevice(). mfmediaengine: Add stub dll. include: Add mfmediaengine.idl. mfuuid: Import mfmediaengine.h. mfmediaengine: Add MFMediaEngineClassFactory stub. Jeff Smith (5): d3drm: Implement d3drm_viewport2_GetCamera(). d3drm: Implement d3drm_viewport2_SetCamera(). d3drm: Implement d3drm_viewport2_GetPlane(). d3drm: Implement d3drm_viewport2_SetPlane(). d3drm: Initialise the front and back clip distances in d3drm_viewport2_Init(). Michael Müller (1): wuauserv: Add dummy service. Michael Stefaniuc (1): msi/tests: Actually test two return values. Naveen Narayanan (1): wineoss: Fix the -lossaudio check. Nikolay Sivov (2): gdiplus: Add GdipRecordMetafileStreamI(). oleaut32: Reduce noise in SAFEARRAY traces. Paul Gofman (1): user32: Return correct showCmd from GetWindowPlacement() for other process window. Piotr Caban (1): msi: Fix component Action for shared components in CostFinalize. Richard Pospesel (4): widl: Store the "const" type qualifier inside the decl_spec_t structure. widl: Fail compilation if an incomplete union or enum is used in a remoted field. widl: Add the typedef to the type library if the aliasee is an anonymous UDT. widl: Respect wire-marshal typedefs in type libraries. Richard Yao (1): advapi32: Add EventWriteString stub. Rémi Bernon (5): msctf/tests: Add multi-threaded apartment test for ITfSource_AdviseSink. dinput/tests: Add test to validate interactions between dinput and raw input devices. dinput8/tests: Add test to validate interactions between dinput8 and raw input devices. dinput8/tests: Add window name and window class name test. dbghelp: Prevent an invalid memory access when the search path element is empty. Steven Bell (1): kernel32: Add stub implementation of EnumSystemFirmwareTables. Sven Baars (9): wmp: Fix a crash in put_volume when basic_audio is NULL. wmp: Fix some memory leaks on error path (Coverity). wmp: Fix a playlist leak (Valgrind). setupapi/tests: Fix a crash in the need_media tests. setupapi: Fix a path leak (Valgrind). setupapi: Fix an uninitialized variable warning (Valgrind). ntoskrnl.exe: Don't use irp after it has been freed by IoCompleteRequest (Coverity). msvfw32/tests: Add MCIWndCreate tests. windowscodecs/tests: Fix a memory leak (Valgrind). Zebediah Figura (85): ntdll: Handle version 2 unwind info on x86_64. ntdll: Handle UWOP_EPILOG directives in x86_64 unwind info. widl: Fix nesting of functions, pointers, and arrays. widl: Store the "inline" function specifier inside the decl_spec_t structure. widl: Don't store the default pointer type in the type_t structure. ntoskrnl.exe: Fix a typo in a debug trace. ntoskrnl.exe: Implement ObQueryNameString(). ntoskrnl.exe: Make the driver object accessible by name while in its entry point. services: Don't redirect the image file path for kernel drivers. ntoskrnl.exe: Export InitializeSListHead(). httpapi: Stub HttpReceiveHttpRequest(). httpapi: Stub HttpSendHttpResponse(). httpapi: Stub HttpRemoveUrl(). widl: Track whether the type has been defined yet in the statement_t and var_t structures. widl: Create exactly one type_t object per named structure type. widl: Create exactly one type_t object per named union type. widl: Create exactly one type_t object per named enum type. ntoskrnl.exe: Implement IoInitializeRemoveLockEx(). ntoskrnl.exe: Implement IoAcquireRemoveLockEx(). ntoskrnl.exe: Implement IoReleaseRemoveLockEx(). ntoskrnl.exe: Implement IoReleaseRemoveLockAndWaitEx(). httpapi/tests: Add tests for version 1 request queues. ntoskrnl.exe: Use a manual-reset event for remove locks. ntoskrnl.exe: Don't signal the remove lock event unless the lock is in the removed state. ntoskrnl.exe/tests: Add tests for remove locks. widl: Check for redefinition of named user types. widl: Generate a name for the encapsulated union type. widl: Handle encapsulated unions in type libraries. widl: Write public typedefs into the typelib if they are referenced directly. http.sys: New stub driver. http.sys: Create a stub request queue device. http.sys: Create a skeletal request_queue object for each file opened. httpapi: Implement HttpCreateHttpHandle(). hidclass.sys: Avoid freeing pool memory with HeapFree(). ntoskrnl.exe: Allocate pool memory from an executable heap. ntoskrnl.exe: Stub IoRegisterBootDriverReinitialization(). ntoskrnl.exe: Set the IRP thread also for create and close requests. ntoskrnl.exe: Implement IoGetRequestorProcess(). setupapi/tests: Add some tests for SPFILENOTIFY_STARTCOPY. setupapi: Fix handling of FILEOP_SKIP from the SPFILENOTIFY_STARTCOPY callback. http.sys: Allow associating a URL with the request queue. httpapi: Implement HttpAddUrl(). httpapi: Implement HttpRemoveUrl(). http.sys: Listen for connections on addresses associated with each request queue. http.sys: Receive data from connected sockets. http.sys: Parse salient data from request headers. http.sys: Stop receiving data as long as an unread request is available. http.sys: Find a request queue to assign new HTTP requests to. http.sys: Allow receiving parsed HTTP requests. http.sys: Fill out unknown verbs. http.sys: Fill out the raw URL. http.sys: Fill out the cooked URL. http.sys: Fill out the local and remote addresses. http.sys: Fill out the request headers. http.sys: Implement HTTP_RECEIVE_REQUEST_FLAG_COPY_BODY. strmbase: Get rid of the "debug_info" parameter to strmbase_filter_init(). strmbase: Zero-initialize the BaseRenderer structure in strmbase_renderer_init(). evr: Consistently use base renderer methods. evr/tests: Add some tests for IEnumPins. evr/tests: Add some tests for IBaseFilter::FindPin(). evr/tests: Add some tests for querying pin information. http.sys: Assign a unique ID to each request. http.sys: Keep track of pending IOCTL_HTTP_RECEIVE_REQUEST IRPs and satisfy them when possible. http.sys: Send a 400 Bad Request response when an invalid request is received. httpapi: Implement HttpReceiveHttpRequest(). strmbase: Get rid of the BaseFilterFuncTable typedef. strmbase: Get rid of the BaseFilter typedef. amstream: Get rid of the IMediaStreamFilterImpl typedef. amstream: Use shorter names for IMediaStreamFilter methods. amstream: Create the stream filter when the multimedia stream is created. http.sys: Allow sending response data. httpapi: Implement HttpSendHttpResponse(). httpapi: Start the http service in HttpInitialize(). httpapi: Implement HttpCreateServerSession() and HttpCloseServerSession(). httpapi: Implement HttpCreateUrlGroup() and HttpCloseUrlGroup(). httpapi: Partially implement HttpSetUrlGroupProperty(). httpapi: Implement HttpAddUrlToUrlGroup() and HttpRemoveUrlFromUrlGroup(). httpapi: Implement HttpCreateRequestQueue() and HttpCloseRequestQueue(). httpapi/tests: Add some tests for version 2 request queues. httpapi: Prefer the builtin version. amstream/tests: Separate and expand tests for IAMMultiMediaStream::AddMediaStream(). amstream/tests: Add some tests for IAMMultiMediaStream::Initialize(). amstream/tests: Link to strmiids and uuid. amstream: Rename amstream.c to multimedia.c. amstream: Get rid of the IAMMultiMediaStreamImpl typedef. Zhiyi Zhang (12): user32: Wait for graphics driver to be ready in EnumDisplayDevicesW. winex11.drv: Add xrandr_get_screen_resources() helper. winex11.drv: Make screen helpers independent of Xinerama. msctf: Check TF_GetThreadMgr error in DocumentMgr_Destructor. d3d9/tests: Add a test for stencil reference value truncation. wined3d: Truncate stencil reference values to the stencil component size. winemac.drv: Add GPU initialization functions. winemac.drv: Support GPU initialization via Metal. winemac.drv: Add adapter initialization functions. winemac.drv: Add monitor initialization functions. winemac.drv: Handle display device change events. winemac.drv: Use generic EnumDisplayMonitors and GetMonitorInfo. -- Alexandre Julliard julliard@winehq.org