The Wine development release 1.9.18 is now available. What's new in this release (see below for details): - Support for multiple kernel drivers in a single process. - More WebServices reader support. - Various improvements in joystick support. - Some more work towards the Direct3D command stream. - GDI performance improvements. - Improved IME window handling. - Compatibility fixes in the clipboard support. - Various bug fixes. The source is available from the following locations: http://dl.winehq.org/wine/source/1.9/wine-1.9.18.tar.bz2 http://mirrors.ibiblio.org/wine/source/1.9/wine-1.9.18.tar.bz2 Binary packages for various distributions will be available from: http://www.winehq.org/download You will find documentation on http://www.winehq.org/documentation You can also get the current source directly from the git repository. Check http://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 1.9.18 (total 26): 22461 Microsoft Office 2000 Server Extensions Configuration Wizard 'CFGWIZ.EXE' needs msvcirt.dll?cout@@3Vostream_withassign@@A 25105 Loading a 3d model with a test program fails 25352 Videos play upside down in multiple games (Fable: The Lost Chapters, Mob Ties Tokyo, Star Wars Republic Commando, SAS: Secure Tomorrow, Hatsune Miku: Project DIVA) 32936 SmartMusic 2012/2014 crashes on startup (Core Audio adapter 'PKEY_DeviceInterface_FriendlyName' property not supported) 34056 Multiple applications have a problem with typing Chinese/Japanese with IME (Nabeta Jisho for Japanese, YY and Netease POPO for Chinese) 35404 Spartan demo: no label on main menu icons 35892 sdb2xml (.NET 2.0 app) crashes on unimplemented function apphelp.dll.SdbGetAppPatchDir 39672 Folder names not clickable 40106 ntdll:info regression 40580 TASCAM US-16x08 soundcard controller crashes 40686 win7's ehshell.exe needs KERNEL32.dll.EncodeSystemPointer 40716 osu! - slightly low-pitched sound when using the ALSA sound driver 40741 Wings of Vi - black screen on launch 40953 Necropolis crashes at start (needs native xinput1_3.dll) 40968 Multiple Games require dxgi_output_FindClosestMatchingMode implementation(Need For Speed: The Run, Magic Duels) 40997 Fallout 4 needs DXGI_FORMAT_BC7_UNORM_SRGB 41007 Regression in minimum sound latency / HelBuflen value 41094 comctl32/treeview: TVS_FULLROWSELECT style does not work 41105 Tropico 5 (DX11) starts with only a mouse pointer on a black screen 41117 Insufficient check for sysinfo function breaks build on hurd and kfreebsd 41118 We Happy Few (UE4) crashes with "D3DRHI->GetFactory()->CreateSwapChain(DXGIDevice,&SwapChainDesc,SwapChain.GetInitReference())" 41165 MiTeC System Information X needs unimplemented function wlanapi.dll.WlanCloseHandle 41182 Don't export QT_QPA_PLATFORM 41189 No Man's Sky fails to start due to a regression in ntdll 41228 Rendering is messed up on WineD3D8 for Windows 41246 Office 2010 apps show "Configuring" dialog on first run when installed in new prefix ---------------------------------------------------------------- Changes since 1.9.17: Akihiro Sagawa (6): po: Update Japanese translation. winex11: Return more reliable value from X11DRV_MsgWaitForMultipleObjects. winex11: Fix log message in process_events(). winex11: Use proper return type for process_events(). user32: Create and destroy the default IME window implicitly. imm32/tests: Add more default IME window tests with message-only window. Alexandre Julliard (23): server: Add separate requests for opening and closing the clipboard. server: Add a separate request to set the clipboard viewer. user32: Get rid of the CLIPBOARDINFO structure. server: Add a request to return clipboard information. user32: Don't allow SetClipboardData if the clipboard is not open. user32: Don't disallow delayed rendering even when not the clipboard owner. winex11: Don't disallow replacing unowned formats. winex11: Don't try to free custom GDI formats at all. user32/tests: Add a few more clipboard tests. server: Cleanup clipboard information upon window destruction. user32/tests: Add some tests for inter-process clipboard viewer notifications. user32: Notify the clipboard viewer on close even if we are not the owner. server: Add some validation of clipboard window handles. server: Implement Add/RemoveClipboardFormatListener. user32: Fix InSendMessage return value. server: Notify all listeners when the contents of the clipboard have changed. server: Add a helper function to validate a window handle. server: Avoid some compiler warnings when EWOULDBLOCK == EAGAIN. rpcss: Make rpcss a proper service. ole32: Cope with receiving WM_RENDERALLFORMATS even when the clipboard is empty. server: Add a release_clipboard request, and notify the owner and viewer on release. server: Don't release the clipboard owner window when the owner thread terminates. user32/tests: Add some tests for synthesized clipboard formats. Alistair Leslie-Hughes (1): inetcomm/tests: Add Attachment tests. Andrew Eikum (6): mshtml: Don't crash creating a URI if we have no document. mmdevapi/tests: Fix failure on Vista. winhttp: Indicate that WinHttpCrackUrl should return string pointers. winhttp: Also pass hostname to jsproxy. qcap: Use HRESULT correctly. quartz: Implement IClassFactory::LockServer. André Hentschel (1): ntdll: Bump Win 10 version to 14393. Aric Stewart (3): hidclass.sys: Handle IRP_MN_REMOVE_DEVICE. include: Fix definition of DRIVER_EXTENSION. ntoskrnl.exe: Stub IoInvalidateDeviceRelations. Austin English (3): ntdll: Forward DecodeSystemPointer/EncodeSystemPointer to DecodePointer/EncodePointer. apphelp: Add SdbGetAppPatchDir stub. msports: Add stub dll. Bernhard Übelacker (1): mlang/tests: Test IMultiLanguage_GetCharsetInfo with malformed charsets. Bruno Jesus (25): dinput: Return the correct error when CreateEffect is not supported. dinput: Dump the DIOBJECTDATAFORMAT flags. dinput: Get the controller type from the device instance for Linux drivers. ntdll: Use a helper to allocate threadpool workers. dinput: Dump the force feedback effect before upload. dinput: Be more precise when returning effect upload errors. dinput: Do not read/write past the struct for old DX versions. dinput: Restore effect ID on error due to kernel < 3.14 bug. dinput/tests: Use EnumEffects and test a supported effect. dinput: Dump the condition effect correctly for 2 array items. dinput: Fix calculation of too small periods for periodic effect. dinput: Fix infinite effect length handling. dinput: Simplify cartesian and fix polar direction calculations. dinput: Don't give up if we can't translate the effect envelope. msacm32: Add the 16-bit DLL version on acmGetVersion. dinput: Simplify condition effect translation. dinput: Fix saturation range on condition effects. msacm32: Handle invalid use of reserved parameter in acmStreamPrepareHeader. msacm32: Handle invalid source length in acmStreamPrepareHeader. msacm32: Use a helper to validate stream pointers. xinput1_3: Better trace all functions. xinput1_3: Better handle input parameters. xinput1_3: Stub XInputGetStateEx. xinput1_3: Implement XInputGetState using XInputGetStateEx. xinput1_3/tests: Cope with XInputGetStateEx not being present by name. Colin Finck (2): include: Add a prototype for RpcBindingServerFromClient. rpcrt4: Add a test for RpcBindingServerFromClient (todo_wine). Daniel Lehman (1): ntdll: Set Rip in for longjmp in RtlRestoreContext. Dmitry Timoshkov (1): gdiplus: Reimplement metafile loading using gdi32 instead of IPicture. Hans Leidekker (16): include: Add missing Web Services declarations. webservices: Flush the writer first in WsWriteXmlBuffer. webservices: Fix the condition to determine when to skip writing a namespace attribute. webservices: Add support for writing WS_STRING and WS_XML_STRING values. webservices: Ignore unimplemented struct options in the writer. webservices: Allow structures to be passed by value in WsWriteType. webservices: Add support for optional and nillable fields in the writer. webservices/tests: Add a test for WsWriteText. webservices: Store standard headers in an XML buffer. webservices: Implement WsAddCustomHeader. webservices: Implement WsRemoveCustomHeader. webservices: Add a stub implementation of WsAbortServiceProxy. webservices: Ignore unimplemented struct options in the reader. webservices: Implement WsReadEnvelopeStart. webservices: Implement WsReadEnvelopeEnd. webservices: Implement WsReadBody. Henri Verbeet (30): wined3d: Send resource preloads through the command stream. wined3d: Use wined3d_format_calculate_pitch() in wined3d_surface_upload_data(). ddraw: Rename "wineD3DPalette" to "wined3d_palette". ddraw: Rename "wineD3DVertexBuffer" to "wined3d_buffer". ddraw: Rename "wineD3DVertexDeclaration" to "wined3d_declaration". wined3d: Use wined3d_resource_map() in d3d_vertex_buffer7_Lock(). ddraw: Use wined3d_resource_unmap() in d3d_vertex_buffer7_Unlock(). d3d8: Use wined3d_resource_map() in d3d8_vertexbuffer_Lock(). d3d8: Use wined3d_resource_unmap() in d3d8_vertexbuffer_Unlock(). d3d8: Use wined3d_resource_map() in d3d8_indexbuffer_Lock(). d3d8: Use wined3d_resource_unmap() in d3d8_indexbuffer_Unlock(). d3d9: Use wined3d_resource_map() in d3d9_vertexbuffer_Lock(). d3d9: Use wined3d_resource_unmap() in d3d9_vertexbuffer_Unlock(). d3d9: Use wined3d_resource_map() in d3d9_indexbuffer_Lock(). d3d9: Use wined3d_resource_unmap() in d3d9_indexbuffer_Unlock(). d3d11: Use wined3d_resource_map() in d3d10_buffer_Map(). d3d11: Use wined3d_resource_unmap() in d3d10_buffer_Unmap(). wined3d: Use resource mapping functions in process_vertices_strided(). ddraw: Use resource mapping functions in d3d_device7_DrawPrimitive(). ddraw: Use resource mapping functions in d3d_device7_DrawIndexedPrimitive(). ddraw: Use resource mapping functions in d3d_device7_DrawPrimitiveStrided(). ddraw: Use resource mapping functions in d3d_device7_DrawIndexedPrimitiveStrided(). ddraw: Use resource mapping functions in d3d_device7_DrawIndexedPrimitiveVB(). d3d8: Use resource mapping functions in d3d8_device_DrawPrimitiveUP(). d3d8: Use resource mapping functions in d3d8_device_DrawIndexedPrimitiveUP(). d3d9: Use resource mapping functions in d3d9_device_DrawPrimitiveUP(). d3d9: Use resource mapping functions in d3d9_device_DrawIndexedPrimitiveUP(). wined3d: Send resource maps through the command stream. wined3d: Send resource unmaps through the command stream. wined3d: Sanitise resource map flags in wined3d_resource_map(). Hugh McMaster (6): reg/tests: Remove embedded BOM tests and add other tests for 'reg import'. regedit: Process registry input from stdin. reg/tests: Fix copy/paste error in 'import' tests. regedit: Remove two 'continue' statements from the end of two 'while' loops. regedit: Do not set s_eol to NULL when it will be re-assigned immediately. reg/tests: Exclude the null terminating character from MultiByteToWideChar conversion. Huw D. M. Davies (26): d3dx10/tests: Dynamically load d3d10 and skip if it's not present. user32: Scale the edge thickness of check boxes drawn with DrawFrameControl(). user32: Scale the check mark drawn with DrawFrameControl(). user32: The offset between the button and the text is half the digit width. user32: Scale the button size with screen resolution. gdi32: Eliminate a masking operation by generating a larger colour table. gdi32: Handle the case of a partial source byte separately. gdi32: Unroll the start- and end-of-line loops. ucrtbase: Add __stdio_common_vswscanf(). ucrtbase: Add __stdio_common_vfscanf(). gdi32: Move the outer loop into separate functions for each direction. gdi32: Explicitly write out the rops for copy_rect_32(). gdi32: Explicitly write out the rops for mask_rect_32(). gdi32: Split out the various offset cases for copy_rect_1() into separate functions. gdi32: Explicitly write out the rops for copy_rect_1(). uxtheme: Use 'ptr' instead of 'wstr' for [out] pointers. oleaut32/tests: Don't draw on the desktop window. oleaut32/tests: Remove test for broken NT 4.0 behaviour. crypt32/tests: Win 10 accepts carriage returns within a base64 four character block. comctl32/tests: Move the cursor off the parent window to avoid mouse messages. comctl32/tests: Restore the cursor position after moving it. user32: EC_USEFONTINFO behaviour depends on whether the font's charset is CJK or not. rpcrt4/tests: Remove an unnecessary and confusing message. rpcrt4/tests: Mark Win 8.1 behaviour of UuidCreateSequential() as broken. ole32: Mask out the flag bit. ole32/tests: Update tests to the new channel hook info structure. Jacek Caban (25): wpc: Added stub wpc dll. wpc: Added basic tests. wpc: Register WindowsParentalControls class. wpc: Added class factory stub implementation. wpc: Added IWindowsParentalControls stub implementation. kernel32: Fixed handling LOCALE_NAME_USER_DEFAULT in GetLocaleInfoEx. user32: Introduced ThreadDetach driver entry point. winemac.drv: Added ThreadDetach entry point and use it instead of DllMain. rpcrt4/tests: Don't load GetUserNameEx dynamically. winex11.drv: Added ThreadDetach entry point and use it instead of DllMain. rbtree.h: Store parent entry pointer in each entry. rbtree.h: Use parent pointer instead of stack in wine_rb_postorder. rbtree.h: Rewrite wine_rb_remove to use parent pointers instead of stack. rbtree.h: Rewrite wine_rb_put to use parent pointers instead of stack. rbtree.h: Get rid of no longer needed wine_rb_stack. rbtree.h: Store compare function instead of wine_rb_functions in wine_rb_tree. ntoskrnl.exe: Use static initializer for device_drivers. winemenubuilder: Use static initalizer for mimeProgidTree and nativeMimeTypes. winedevice: Use static initializer for wine_drivers. winhttp: Don't perform buffer size tests for components that don't pass buffer in WinHttpCrackUrl. d3d10: Removed no loner needed wine_rb_init error handling. d3d11: Removed no longer needed wine_rb_init error handling. wined3d: Removed no longer needed wine_rb_init error handling. d3dcompiler_43: Removed no longer needed wine_rb_init error handling. rbtree.h: Pass compare function instead of wine_rb_functions to wine_rb_init. Józef Kucia (21): d3d11: Compare semantic names ignoring case. d3d11/tests: Modify existing test to cover case-insensitive input elements matching. d3d10core/tests: Modify existing test to cover case-insensitive input elements matching. d3d8/tests: Skip test_reset() when device is initially lost. d3d8/tests: Add test for regression in IDirect3DDevice8_Reset(). d3d9/tests: Restore display rotation in test_get_adapter_displaymode_ex(). d3d9/tests: Add test for IDirect3DDevice9Ex_ResetEx(). d3d9: Allow passing "mode" to IDirect3DDevice9Ex_ResetEx() iff "Windowed" is FALSE. d3d9: Forbid display mode and back buffer mismatch in IDirect3DDevice9Ex_ResetEx(). dxgi/tests: Extend test for creating swapchain. dxgi/tests: Add test for switching display mode to inexact resolution. dxgi: Introduce helper functions for converting wined3d_display_mode. wined3d: Introduce wined3d_find_closest_matching_adapter_mode(). dxgi: Implement dxgi_output_FindClosestMatchingMode(). dxgi/tests: Add test for IDXGIOutput_FindClosestMatchingMode(). wined3d: Optionally use closest matching mode in wined3d_swapchain_set_fullscreen(). dxgi: Enable WINED3D_SWAPCHAIN_USE_CLOSEST_MATCHING_MODE. wined3d: Optionally use closest matching mode in wined3d_swapchain_resize_target(). d3d8/tests: Prefer higher resolutions in test_reset(). dxgi: Update swapchain fullscreen state when state change is successful. dxgi: Release target output when releasing swapchain. Ken Thomases (2): winemac: Trace when a window's per-pixel-alpha setting changes. winemac: Set windows to transparent until they have content to draw, to reduce flicker. Keno Fischer (2): ntdll: Tolerate null handle in DeregisterWait. kernel32/tests: Improve tests for pUnregisterWait(0). Kimmo Myllyvirta (4): wined3d: Add support for WINED3DFMT_BC7_UNORM format. wined3d: Add support for WINED3DFMT_BC6H_UF16/SF16 formats. d3d11: Add tests for WINED3DFMT_BC7_UNORM format. d3d11: Add tests for WINED3DFMT_BC6H_UF16/SF16 formats. Marcus Meissner (1): winemenubuilder: Avoid double free (Coverity). Max Qian (8): api-ms-win-core-job-l1-1-0: Add dll. api-ms-win-core-job-l2-1-0: Add dll. api-ms-win-core-namespace-l1-1-0: Add dll. api-ms-win-core-normalization-l1-1-0: Add dll. api-ms-win-core-string-obsolete-l1-1-0: Add dll. api-ms-win-core-toolhelp-l1-1-0: Add dll. api-ms-win-eventlog-legacy-l1-1-0: Add dll. api-ms-win-shell-shellfolders-l1-1-0: Add dll. Michael Gilbert (1): ntdll: Add missing stdint.h include for kfreebsd architectures. Michael Müller (2): d3d11: Fix calculation of array size for 1D textures. d3d11: Correctly print unhandled bind flags in wined3d_usage_from_d3d11. Michael Stefaniuc (2): dmusic: Avoid using the COM method implementations directly. dmime: Avoid using the COM method implementations directly. Nikolay Sivov (29): comctl32/treeview: Fill full row for TVS_FULLROWSELECT style. include: Added some of newer Common Controls definitions. dinput: Explicitly check for -1 as open() failure code. hidclass: Fix handle leak on error path (Coverity). oleaut32: Keep most of typeinfo attributes in TYPEATTR structure. include: Fix facility id for d3d10 HRESULTs. mscoree: Return pointer to interface, not implementation. oleaut32: Support querying for ITypeComp from ITypeInfo. oleaut32: Fix AddFuncDesc() to ignore scodes array length when NULL array pointer is passed. oleaut32: Added PSTypeComp to DllGetClassObject. oleaut32: Implement ITypeComp::Bind() proxy/stub. oleaut32: Implement IClassFactory::QueryInterface() for StdFont object. urlmon: Added proxy/stubs for IBindHost. dwrite: Fail stream creation on file mapping failure. dwrite/tests: Remove unnecessary font face creation. shell32: Use interface pointer instead of implementation one. winegstreamer: Remove some casts that are not needed. msdaps: Added AddRefAccessor() proxy/stub. oleaut32: Added proxy/stub for BindType. include: Updated CAL_* info defines. kernel32: Map from CAL_* constants to LOCALE_*. amstream: Remove some casts. msctf/tests: Return interface pointers instead of pointers to impl structure. netcfgx: Return pointer to interface. msimtf: Return interface pointers. dxgi: Use texture pointer instead of resource pointer for DXGI surface. d3dx10/tests: Basic tests for async loaders. wined3d: Add texture flag to indicate GetDC() capability. quartz: Remove some interface pointer casts. Patrick Rudolph (1): wined3d: Handle WINED3DFMT_FLAG_BROKEN_PITCH in wined3d_format_calculate_size(). Piotr Caban (8): ntdll: Remove no longer accessible TEB frames in RtlRestoreContext. include: Add msvcrt/fpieee.h header. msvcrt: Add _fpieee_flt stub. msvcrt: Support fdiv m64fp in i386 _fpieee_flt. msvcr90: Add _fpieee_flt tests. winemac.drv: Fix setting Cocoa focus when window is shown by other thread. ntdll: Don't incorrectly overwrite orig_context in call_stack_handlers. user32: Fix DefWindowProc behavior on WM_NCRBUTTONDOWN message. Ruslan Kabatsayev (1): wined3d: Initialise p_wglGetPixelFormat when USE_WIN32_OPENGL is defined. Sebastian Lackner (29): ws2_32/tests: Add basic tests for async messages. ws2_32: Do not spawn a separate thread for each async task. ntdll/tests: Use longer waits to reduce risk of random failures on the testbot. ntdll: Allow to release threadpool objects while waiting for group. ntdll/tests: Add tests for releasing threadpool objects during TpReleaseCleanupGroupMembers. ntdll: Call group cancel callback with the correct arguments. ntdll: Group cancel callbacks should be executed after waiting for pending callbacks. ntdll: Do not call group cancel callback for finished simple callbacks. services: Remove synchronization for CloseThreadpoolCleanupGroupMembers. shell32: Use the correct memory allocation function in RecycleBin_GetDisplayNameOf. ntoskrnl.exe: Implement ZwLoadDriver and ZwUnloadDriver based on services API. winedevice: Add support for loading/unloading drivers asynchronously. kernel32/tests: Add a missing linebreak to an ok() message. winedevice: Avoid memory leak when driver cannot be unloaded. shell32: Remove some unused static inline functions. shell32: Remove __SHFreeAndNil macro. services/tests: Add test for passing arguments to a service. advapi32: Unify service startup and control handling. services: Do not create environment block before first service startup. services: Add a separate winedevice service for each kernel driver. services: Load kernel drivers with same load order group into a single process. webservices: Fix handling of duplicate headers in WsAddCustomHeader. webservices: Fix handling of duplicate headers in WsRemoveCustomHeader. webservices: Fix invalid memory access in remove_header. wintrust/tests: Fix test for pfnAddSgnr2Chain. schedsvc: Avoid deadlock when scheduler service starts rpcss. ntoskrnl.exe: Use the same timeout for service startup like in other wine modules. ntdll: Simplify RtlFormatCurrentUserKeyPath using GetCurrentThreadEffectiveToken. user32: Do not create IME window for HWND_MESSAGE windows. Stefan Dösinger (8): ddraw/tests: Move IDirect3DViewport::TransformVertices tests to ddraw1.c. ddraw: Copy extra vertex data in viewport::TransformVertices. ddraw: Fix offscreen flag handling in TransformVertices. ddraw: Validate the input data in TransformVertices. ddraw/tests: Extend TransformVertices invalid data tests. ddraw/tests: Make the vec parameter of compare_vec4 const. ddraw/tests: Test matrices in TransformVertices. ddraw/tests: Port test_transform_vertices to ddraw2 and ddraw4. Vincent Povirk (1): gdiplus: Copy remap tables when cloning an ImageAttributes. -- Alexandre Julliard julliard@winehq.org