1 The Wine development release 1.9.18 is now available.
3 What's new in this release (see below for details):
4 - Support for multiple kernel drivers in a single process.
5 - More WebServices reader support.
6 - Various improvements in joystick support.
7 - Some more work towards the Direct3D command stream.
8 - GDI performance improvements.
9 - Improved IME window handling.
10 - Compatibility fixes in the clipboard support.
13 The source is available from the following locations:
15 http://dl.winehq.org/wine/source/1.9/wine-1.9.18.tar.bz2
16 http://mirrors.ibiblio.org/wine/source/1.9/wine-1.9.18.tar.bz2
18 Binary packages for various distributions will be available from:
20 http://www.winehq.org/download
22 You will find documentation on http://www.winehq.org/documentation
24 You can also get the current source directly from the git
25 repository. Check http://www.winehq.org/git for details.
27 Wine is available thanks to the work of many people. See the file
28 AUTHORS in the distribution for the complete list.
30 ----------------------------------------------------------------
32 Bugs fixed in 1.9.18 (total 26):
34 22461 Microsoft Office 2000 Server Extensions Configuration Wizard 'CFGWIZ.EXE' needs msvcirt.dll?cout@@3Vostream_withassign@@A
35 25105 Loading a 3d model with a test program fails
36 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)
37 32936 SmartMusic 2012/2014 crashes on startup (Core Audio adapter 'PKEY_DeviceInterface_FriendlyName' property not supported)
38 34056 Multiple applications have a problem with typing Chinese/Japanese with IME (Nabeta Jisho for Japanese, YY and Netease POPO for Chinese)
39 35404 Spartan demo: no label on main menu icons
40 35892 sdb2xml (.NET 2.0 app) crashes on unimplemented function apphelp.dll.SdbGetAppPatchDir
41 39672 Folder names not clickable
42 40106 ntdll:info regression
43 40580 TASCAM US-16x08 soundcard controller crashes
44 40686 win7's ehshell.exe needs KERNEL32.dll.EncodeSystemPointer
45 40716 osu! - slightly low-pitched sound when using the ALSA sound driver
46 40741 Wings of Vi - black screen on launch
47 40953 Necropolis crashes at start (needs native xinput1_3.dll)
48 40968 Multiple Games require dxgi_output_FindClosestMatchingMode implementation(Need For Speed: The Run, Magic Duels)
49 40997 Fallout 4 needs DXGI_FORMAT_BC7_UNORM_SRGB
50 41007 Regression in minimum sound latency / HelBuflen value
51 41094 comctl32/treeview: TVS_FULLROWSELECT style does not work
52 41105 Tropico 5 (DX11) starts with only a mouse pointer on a black screen
53 41117 Insufficient check for sysinfo function breaks build on hurd and kfreebsd
54 41118 We Happy Few (UE4) crashes with "D3DRHI->GetFactory()->CreateSwapChain(DXGIDevice,&SwapChainDesc,SwapChain.GetInitReference())"
55 41165 MiTeC System Information X needs unimplemented function wlanapi.dll.WlanCloseHandle
56 41182 Don't export QT_QPA_PLATFORM
57 41189 No Man's Sky fails to start due to a regression in ntdll
58 41228 Rendering is messed up on WineD3D8 for Windows
59 41246 Office 2010 apps show "Configuring" dialog on first run when installed in new prefix
61 ----------------------------------------------------------------
66 po: Update Japanese translation.
67 winex11: Return more reliable value from X11DRV_MsgWaitForMultipleObjects.
68 winex11: Fix log message in process_events().
69 winex11: Use proper return type for process_events().
70 user32: Create and destroy the default IME window implicitly.
71 imm32/tests: Add more default IME window tests with message-only window.
73 Alexandre Julliard (23):
74 server: Add separate requests for opening and closing the clipboard.
75 server: Add a separate request to set the clipboard viewer.
76 user32: Get rid of the CLIPBOARDINFO structure.
77 server: Add a request to return clipboard information.
78 user32: Don't allow SetClipboardData if the clipboard is not open.
79 user32: Don't disallow delayed rendering even when not the clipboard owner.
80 winex11: Don't disallow replacing unowned formats.
81 winex11: Don't try to free custom GDI formats at all.
82 user32/tests: Add a few more clipboard tests.
83 server: Cleanup clipboard information upon window destruction.
84 user32/tests: Add some tests for inter-process clipboard viewer notifications.
85 user32: Notify the clipboard viewer on close even if we are not the owner.
86 server: Add some validation of clipboard window handles.
87 server: Implement Add/RemoveClipboardFormatListener.
88 user32: Fix InSendMessage return value.
89 server: Notify all listeners when the contents of the clipboard have changed.
90 server: Add a helper function to validate a window handle.
91 server: Avoid some compiler warnings when EWOULDBLOCK == EAGAIN.
92 rpcss: Make rpcss a proper service.
93 ole32: Cope with receiving WM_RENDERALLFORMATS even when the clipboard is empty.
94 server: Add a release_clipboard request, and notify the owner and viewer on release.
95 server: Don't release the clipboard owner window when the owner thread terminates.
96 user32/tests: Add some tests for synthesized clipboard formats.
98 Alistair Leslie-Hughes (1):
99 inetcomm/tests: Add Attachment tests.
102 mshtml: Don't crash creating a URI if we have no document.
103 mmdevapi/tests: Fix failure on Vista.
104 winhttp: Indicate that WinHttpCrackUrl should return string pointers.
105 winhttp: Also pass hostname to jsproxy.
106 qcap: Use HRESULT correctly.
107 quartz: Implement IClassFactory::LockServer.
110 ntdll: Bump Win 10 version to 14393.
113 hidclass.sys: Handle IRP_MN_REMOVE_DEVICE.
114 include: Fix definition of DRIVER_EXTENSION.
115 ntoskrnl.exe: Stub IoInvalidateDeviceRelations.
118 ntdll: Forward DecodeSystemPointer/EncodeSystemPointer to DecodePointer/EncodePointer.
119 apphelp: Add SdbGetAppPatchDir stub.
120 msports: Add stub dll.
122 Bernhard Übelacker (1):
123 mlang/tests: Test IMultiLanguage_GetCharsetInfo with malformed charsets.
126 dinput: Return the correct error when CreateEffect is not supported.
127 dinput: Dump the DIOBJECTDATAFORMAT flags.
128 dinput: Get the controller type from the device instance for Linux drivers.
129 ntdll: Use a helper to allocate threadpool workers.
130 dinput: Dump the force feedback effect before upload.
131 dinput: Be more precise when returning effect upload errors.
132 dinput: Do not read/write past the struct for old DX versions.
133 dinput: Restore effect ID on error due to kernel < 3.14 bug.
134 dinput/tests: Use EnumEffects and test a supported effect.
135 dinput: Dump the condition effect correctly for 2 array items.
136 dinput: Fix calculation of too small periods for periodic effect.
137 dinput: Fix infinite effect length handling.
138 dinput: Simplify cartesian and fix polar direction calculations.
139 dinput: Don't give up if we can't translate the effect envelope.
140 msacm32: Add the 16-bit DLL version on acmGetVersion.
141 dinput: Simplify condition effect translation.
142 dinput: Fix saturation range on condition effects.
143 msacm32: Handle invalid use of reserved parameter in acmStreamPrepareHeader.
144 msacm32: Handle invalid source length in acmStreamPrepareHeader.
145 msacm32: Use a helper to validate stream pointers.
146 xinput1_3: Better trace all functions.
147 xinput1_3: Better handle input parameters.
148 xinput1_3: Stub XInputGetStateEx.
149 xinput1_3: Implement XInputGetState using XInputGetStateEx.
150 xinput1_3/tests: Cope with XInputGetStateEx not being present by name.
153 include: Add a prototype for RpcBindingServerFromClient.
154 rpcrt4: Add a test for RpcBindingServerFromClient (todo_wine).
157 ntdll: Set Rip in for longjmp in RtlRestoreContext.
159 Dmitry Timoshkov (1):
160 gdiplus: Reimplement metafile loading using gdi32 instead of IPicture.
163 include: Add missing Web Services declarations.
164 webservices: Flush the writer first in WsWriteXmlBuffer.
165 webservices: Fix the condition to determine when to skip writing a namespace attribute.
166 webservices: Add support for writing WS_STRING and WS_XML_STRING values.
167 webservices: Ignore unimplemented struct options in the writer.
168 webservices: Allow structures to be passed by value in WsWriteType.
169 webservices: Add support for optional and nillable fields in the writer.
170 webservices/tests: Add a test for WsWriteText.
171 webservices: Store standard headers in an XML buffer.
172 webservices: Implement WsAddCustomHeader.
173 webservices: Implement WsRemoveCustomHeader.
174 webservices: Add a stub implementation of WsAbortServiceProxy.
175 webservices: Ignore unimplemented struct options in the reader.
176 webservices: Implement WsReadEnvelopeStart.
177 webservices: Implement WsReadEnvelopeEnd.
178 webservices: Implement WsReadBody.
181 wined3d: Send resource preloads through the command stream.
182 wined3d: Use wined3d_format_calculate_pitch() in wined3d_surface_upload_data().
183 ddraw: Rename "wineD3DPalette" to "wined3d_palette".
184 ddraw: Rename "wineD3DVertexBuffer" to "wined3d_buffer".
185 ddraw: Rename "wineD3DVertexDeclaration" to "wined3d_declaration".
186 wined3d: Use wined3d_resource_map() in d3d_vertex_buffer7_Lock().
187 ddraw: Use wined3d_resource_unmap() in d3d_vertex_buffer7_Unlock().
188 d3d8: Use wined3d_resource_map() in d3d8_vertexbuffer_Lock().
189 d3d8: Use wined3d_resource_unmap() in d3d8_vertexbuffer_Unlock().
190 d3d8: Use wined3d_resource_map() in d3d8_indexbuffer_Lock().
191 d3d8: Use wined3d_resource_unmap() in d3d8_indexbuffer_Unlock().
192 d3d9: Use wined3d_resource_map() in d3d9_vertexbuffer_Lock().
193 d3d9: Use wined3d_resource_unmap() in d3d9_vertexbuffer_Unlock().
194 d3d9: Use wined3d_resource_map() in d3d9_indexbuffer_Lock().
195 d3d9: Use wined3d_resource_unmap() in d3d9_indexbuffer_Unlock().
196 d3d11: Use wined3d_resource_map() in d3d10_buffer_Map().
197 d3d11: Use wined3d_resource_unmap() in d3d10_buffer_Unmap().
198 wined3d: Use resource mapping functions in process_vertices_strided().
199 ddraw: Use resource mapping functions in d3d_device7_DrawPrimitive().
200 ddraw: Use resource mapping functions in d3d_device7_DrawIndexedPrimitive().
201 ddraw: Use resource mapping functions in d3d_device7_DrawPrimitiveStrided().
202 ddraw: Use resource mapping functions in d3d_device7_DrawIndexedPrimitiveStrided().
203 ddraw: Use resource mapping functions in d3d_device7_DrawIndexedPrimitiveVB().
204 d3d8: Use resource mapping functions in d3d8_device_DrawPrimitiveUP().
205 d3d8: Use resource mapping functions in d3d8_device_DrawIndexedPrimitiveUP().
206 d3d9: Use resource mapping functions in d3d9_device_DrawPrimitiveUP().
207 d3d9: Use resource mapping functions in d3d9_device_DrawIndexedPrimitiveUP().
208 wined3d: Send resource maps through the command stream.
209 wined3d: Send resource unmaps through the command stream.
210 wined3d: Sanitise resource map flags in wined3d_resource_map().
213 reg/tests: Remove embedded BOM tests and add other tests for 'reg import'.
214 regedit: Process registry input from stdin.
215 reg/tests: Fix copy/paste error in 'import' tests.
216 regedit: Remove two 'continue' statements from the end of two 'while' loops.
217 regedit: Do not set s_eol to NULL when it will be re-assigned immediately.
218 reg/tests: Exclude the null terminating character from MultiByteToWideChar conversion.
220 Huw D. M. Davies (26):
221 d3dx10/tests: Dynamically load d3d10 and skip if it's not present.
222 user32: Scale the edge thickness of check boxes drawn with DrawFrameControl().
223 user32: Scale the check mark drawn with DrawFrameControl().
224 user32: The offset between the button and the text is half the digit width.
225 user32: Scale the button size with screen resolution.
226 gdi32: Eliminate a masking operation by generating a larger colour table.
227 gdi32: Handle the case of a partial source byte separately.
228 gdi32: Unroll the start- and end-of-line loops.
229 ucrtbase: Add __stdio_common_vswscanf().
230 ucrtbase: Add __stdio_common_vfscanf().
231 gdi32: Move the outer loop into separate functions for each direction.
232 gdi32: Explicitly write out the rops for copy_rect_32().
233 gdi32: Explicitly write out the rops for mask_rect_32().
234 gdi32: Split out the various offset cases for copy_rect_1() into separate functions.
235 gdi32: Explicitly write out the rops for copy_rect_1().
236 uxtheme: Use 'ptr' instead of 'wstr' for [out] pointers.
237 oleaut32/tests: Don't draw on the desktop window.
238 oleaut32/tests: Remove test for broken NT 4.0 behaviour.
239 crypt32/tests: Win 10 accepts carriage returns within a base64 four character block.
240 comctl32/tests: Move the cursor off the parent window to avoid mouse messages.
241 comctl32/tests: Restore the cursor position after moving it.
242 user32: EC_USEFONTINFO behaviour depends on whether the font's charset is CJK or not.
243 rpcrt4/tests: Remove an unnecessary and confusing message.
244 rpcrt4/tests: Mark Win 8.1 behaviour of UuidCreateSequential() as broken.
245 ole32: Mask out the flag bit.
246 ole32/tests: Update tests to the new channel hook info structure.
249 wpc: Added stub wpc dll.
250 wpc: Added basic tests.
251 wpc: Register WindowsParentalControls class.
252 wpc: Added class factory stub implementation.
253 wpc: Added IWindowsParentalControls stub implementation.
254 kernel32: Fixed handling LOCALE_NAME_USER_DEFAULT in GetLocaleInfoEx.
255 user32: Introduced ThreadDetach driver entry point.
256 winemac.drv: Added ThreadDetach entry point and use it instead of DllMain.
257 rpcrt4/tests: Don't load GetUserNameEx dynamically.
258 winex11.drv: Added ThreadDetach entry point and use it instead of DllMain.
259 rbtree.h: Store parent entry pointer in each entry.
260 rbtree.h: Use parent pointer instead of stack in wine_rb_postorder.
261 rbtree.h: Rewrite wine_rb_remove to use parent pointers instead of stack.
262 rbtree.h: Rewrite wine_rb_put to use parent pointers instead of stack.
263 rbtree.h: Get rid of no longer needed wine_rb_stack.
264 rbtree.h: Store compare function instead of wine_rb_functions in wine_rb_tree.
265 ntoskrnl.exe: Use static initializer for device_drivers.
266 winemenubuilder: Use static initalizer for mimeProgidTree and nativeMimeTypes.
267 winedevice: Use static initializer for wine_drivers.
268 winhttp: Don't perform buffer size tests for components that don't pass buffer in WinHttpCrackUrl.
269 d3d10: Removed no loner needed wine_rb_init error handling.
270 d3d11: Removed no longer needed wine_rb_init error handling.
271 wined3d: Removed no longer needed wine_rb_init error handling.
272 d3dcompiler_43: Removed no longer needed wine_rb_init error handling.
273 rbtree.h: Pass compare function instead of wine_rb_functions to wine_rb_init.
276 d3d11: Compare semantic names ignoring case.
277 d3d11/tests: Modify existing test to cover case-insensitive input elements matching.
278 d3d10core/tests: Modify existing test to cover case-insensitive input elements matching.
279 d3d8/tests: Skip test_reset() when device is initially lost.
280 d3d8/tests: Add test for regression in IDirect3DDevice8_Reset().
281 d3d9/tests: Restore display rotation in test_get_adapter_displaymode_ex().
282 d3d9/tests: Add test for IDirect3DDevice9Ex_ResetEx().
283 d3d9: Allow passing "mode" to IDirect3DDevice9Ex_ResetEx() iff "Windowed" is FALSE.
284 d3d9: Forbid display mode and back buffer mismatch in IDirect3DDevice9Ex_ResetEx().
285 dxgi/tests: Extend test for creating swapchain.
286 dxgi/tests: Add test for switching display mode to inexact resolution.
287 dxgi: Introduce helper functions for converting wined3d_display_mode.
288 wined3d: Introduce wined3d_find_closest_matching_adapter_mode().
289 dxgi: Implement dxgi_output_FindClosestMatchingMode().
290 dxgi/tests: Add test for IDXGIOutput_FindClosestMatchingMode().
291 wined3d: Optionally use closest matching mode in wined3d_swapchain_set_fullscreen().
292 dxgi: Enable WINED3D_SWAPCHAIN_USE_CLOSEST_MATCHING_MODE.
293 wined3d: Optionally use closest matching mode in wined3d_swapchain_resize_target().
294 d3d8/tests: Prefer higher resolutions in test_reset().
295 dxgi: Update swapchain fullscreen state when state change is successful.
296 dxgi: Release target output when releasing swapchain.
299 winemac: Trace when a window's per-pixel-alpha setting changes.
300 winemac: Set windows to transparent until they have content to draw, to reduce flicker.
303 ntdll: Tolerate null handle in DeregisterWait.
304 kernel32/tests: Improve tests for pUnregisterWait(0).
306 Kimmo Myllyvirta (4):
307 wined3d: Add support for WINED3DFMT_BC7_UNORM format.
308 wined3d: Add support for WINED3DFMT_BC6H_UF16/SF16 formats.
309 d3d11: Add tests for WINED3DFMT_BC7_UNORM format.
310 d3d11: Add tests for WINED3DFMT_BC6H_UF16/SF16 formats.
313 winemenubuilder: Avoid double free (Coverity).
316 api-ms-win-core-job-l1-1-0: Add dll.
317 api-ms-win-core-job-l2-1-0: Add dll.
318 api-ms-win-core-namespace-l1-1-0: Add dll.
319 api-ms-win-core-normalization-l1-1-0: Add dll.
320 api-ms-win-core-string-obsolete-l1-1-0: Add dll.
321 api-ms-win-core-toolhelp-l1-1-0: Add dll.
322 api-ms-win-eventlog-legacy-l1-1-0: Add dll.
323 api-ms-win-shell-shellfolders-l1-1-0: Add dll.
326 ntdll: Add missing stdint.h include for kfreebsd architectures.
329 d3d11: Fix calculation of array size for 1D textures.
330 d3d11: Correctly print unhandled bind flags in wined3d_usage_from_d3d11.
332 Michael Stefaniuc (2):
333 dmusic: Avoid using the COM method implementations directly.
334 dmime: Avoid using the COM method implementations directly.
337 comctl32/treeview: Fill full row for TVS_FULLROWSELECT style.
338 include: Added some of newer Common Controls definitions.
339 dinput: Explicitly check for -1 as open() failure code.
340 hidclass: Fix handle leak on error path (Coverity).
341 oleaut32: Keep most of typeinfo attributes in TYPEATTR structure.
342 include: Fix facility id for d3d10 HRESULTs.
343 mscoree: Return pointer to interface, not implementation.
344 oleaut32: Support querying for ITypeComp from ITypeInfo.
345 oleaut32: Fix AddFuncDesc() to ignore scodes array length when NULL array pointer is passed.
346 oleaut32: Added PSTypeComp to DllGetClassObject.
347 oleaut32: Implement ITypeComp::Bind() proxy/stub.
348 oleaut32: Implement IClassFactory::QueryInterface() for StdFont object.
349 urlmon: Added proxy/stubs for IBindHost.
350 dwrite: Fail stream creation on file mapping failure.
351 dwrite/tests: Remove unnecessary font face creation.
352 shell32: Use interface pointer instead of implementation one.
353 winegstreamer: Remove some casts that are not needed.
354 msdaps: Added AddRefAccessor() proxy/stub.
355 oleaut32: Added proxy/stub for BindType.
356 include: Updated CAL_* info defines.
357 kernel32: Map from CAL_* constants to LOCALE_*.
358 amstream: Remove some casts.
359 msctf/tests: Return interface pointers instead of pointers to impl structure.
360 netcfgx: Return pointer to interface.
361 msimtf: Return interface pointers.
362 dxgi: Use texture pointer instead of resource pointer for DXGI surface.
363 d3dx10/tests: Basic tests for async loaders.
364 wined3d: Add texture flag to indicate GetDC() capability.
365 quartz: Remove some interface pointer casts.
368 wined3d: Handle WINED3DFMT_FLAG_BROKEN_PITCH in wined3d_format_calculate_size().
371 ntdll: Remove no longer accessible TEB frames in RtlRestoreContext.
372 include: Add msvcrt/fpieee.h header.
373 msvcrt: Add _fpieee_flt stub.
374 msvcrt: Support fdiv m64fp in i386 _fpieee_flt.
375 msvcr90: Add _fpieee_flt tests.
376 winemac.drv: Fix setting Cocoa focus when window is shown by other thread.
377 ntdll: Don't incorrectly overwrite orig_context in call_stack_handlers.
378 user32: Fix DefWindowProc behavior on WM_NCRBUTTONDOWN message.
380 Ruslan Kabatsayev (1):
381 wined3d: Initialise p_wglGetPixelFormat when USE_WIN32_OPENGL is defined.
383 Sebastian Lackner (29):
384 ws2_32/tests: Add basic tests for async messages.
385 ws2_32: Do not spawn a separate thread for each async task.
386 ntdll/tests: Use longer waits to reduce risk of random failures on the testbot.
387 ntdll: Allow to release threadpool objects while waiting for group.
388 ntdll/tests: Add tests for releasing threadpool objects during TpReleaseCleanupGroupMembers.
389 ntdll: Call group cancel callback with the correct arguments.
390 ntdll: Group cancel callbacks should be executed after waiting for pending callbacks.
391 ntdll: Do not call group cancel callback for finished simple callbacks.
392 services: Remove synchronization for CloseThreadpoolCleanupGroupMembers.
393 shell32: Use the correct memory allocation function in RecycleBin_GetDisplayNameOf.
394 ntoskrnl.exe: Implement ZwLoadDriver and ZwUnloadDriver based on services API.
395 winedevice: Add support for loading/unloading drivers asynchronously.
396 kernel32/tests: Add a missing linebreak to an ok() message.
397 winedevice: Avoid memory leak when driver cannot be unloaded.
398 shell32: Remove some unused static inline functions.
399 shell32: Remove __SHFreeAndNil macro.
400 services/tests: Add test for passing arguments to a service.
401 advapi32: Unify service startup and control handling.
402 services: Do not create environment block before first service startup.
403 services: Add a separate winedevice service for each kernel driver.
404 services: Load kernel drivers with same load order group into a single process.
405 webservices: Fix handling of duplicate headers in WsAddCustomHeader.
406 webservices: Fix handling of duplicate headers in WsRemoveCustomHeader.
407 webservices: Fix invalid memory access in remove_header.
408 wintrust/tests: Fix test for pfnAddSgnr2Chain.
409 schedsvc: Avoid deadlock when scheduler service starts rpcss.
410 ntoskrnl.exe: Use the same timeout for service startup like in other wine modules.
411 ntdll: Simplify RtlFormatCurrentUserKeyPath using GetCurrentThreadEffectiveToken.
412 user32: Do not create IME window for HWND_MESSAGE windows.
415 ddraw/tests: Move IDirect3DViewport::TransformVertices tests to ddraw1.c.
416 ddraw: Copy extra vertex data in viewport::TransformVertices.
417 ddraw: Fix offscreen flag handling in TransformVertices.
418 ddraw: Validate the input data in TransformVertices.
419 ddraw/tests: Extend TransformVertices invalid data tests.
420 ddraw/tests: Make the vec parameter of compare_vec4 const.
421 ddraw/tests: Test matrices in TransformVertices.
422 ddraw/tests: Port test_transform_vertices to ddraw2 and ddraw4.
425 gdiplus: Copy remap tables when cloning an ImageAttributes.