Wine Announcement

The Wine development release 1.7.40 is now available.

What's new in this release (see below for details):
  - Support for kernel job objects.
  - Various fixes to the ListView control.
  - Better support for OOB data in Windows Sockets.
  - Support for DIB images in the OLE data cache.
  - Improved support for MSI patches.
  - Some fixes for ACL file permissions.
  - Various bug fixes.

The source is available from the following locations:

Binary packages for various distributions will be available from:

You will find documentation on

You can also get the current source directly from the git
repository. Check 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.7.40 (total 29):

  19231  Trine Demo fails to start without native d3dx9_36
  21433  InqScribe: Installed fine, but no output or UI response when running installed app
  22139  CDBurnerXP 3.0.x produces a "fail" message after choosing a mode
  26223  Multiple apps and games need wmvcore.dll.WMCreateReader implementation (Nail'd demo)
  26748  World Series of Poker crashes when starting up a game
  30648  SEGA Genesis / Mega Drive Classic Collection (Steam) crashes on startup
  30723  Playchess listview control is broken
  31579  Microsoft Visio 2007-2010 crashes on exit (unload of msctf component with ThreadMgr/CBT hook still alive)
  32361  epson stylus t13 installer problem: wine: Unimplemented function setupx.dll16.DiOpenClassRegKey
  33164  row-resize / col-resize cursor is wrong (Listview)
  34254  Wine64 seh:RtlUnwindEx error with c++ exception handling
  35135  Air Video Server HD 1.x crashes on startup (NULL SERVER_INFO_101.sv101_comment returned from NetServerGetInfo)
  36133  valgrind shows some leaks in gdiplus/tests/image.c
  36190  comdlg32/itemdlg shows a ton of valgrind warnings
  36305  valgrind shows a possible leak in netapi32/tests/access.c
  36332  Total Commander 8.x: moving files between folders renders them inaccessible (SetNamedSecurityInfo)
  36656  valgrind shows an unintialized write in comdlg32/tests/itemdlg.c
  36709  Multiple applications/games from Windows 7 need slc.SLGetWindowsInformationDWORD semi-stub/implementation
  36842  Can't set a static crontrol's text to empty by passing NULL pointer
  37731  Montezuma's Revenge Remake fails with fatal error when quitting the game
  37960  Paint.NET 4.0.5 does not install: unimplemented function KERNEL32.dll.QueryThreadCycleTime
  38205  Unreal Tournament 3 Black Edition installer fails after the language selection
  38238  user32:input right-clicks outside its windows
  38248  Worms World Party (w/SetCooperativeLevel workaround/hacks) and older versions of Worms Armageddon black screen on startup
  38256  Myst Online Uru Live: too dark/missing textures
  38261  Playchess doesn't install anymore
  38282  Header control fails to update/synchronize listview when columns order changes
  38288  Wrong pointer in icnsformat.c IcnsFrameEncode_WriteSource
  38317  winetricks xna31 fails


Changes since 1.7.39:

Aaryaman Vasishta (1):
      d3drm: Fix hard-coded HRESULT return in Direct3DRMFrame_create.

Alexandre Julliard (11):
      server: Fix the string type in traces for I/O completion names.
      dsound: Fix an error return code.
      server: Post a notification to the desktop window when a top-level window is destroyed.
      explorer: Cleanup system tray icons when their owner is destroyed instead of polling.
      winex11: Cleanup system tray icons when their owner is destroyed instead of polling.
      user32: Remove left-over freeing of the edit text with ES_PASSWORD.
      comctl32: Print full flag values in traces.
      msacm32: Print full flag values in traces.
      riched20/tests: Print full flag values in traces.
      user32/tests: Print full flag values in traces.
      winmm: Print full flag values in traces.

Alistair Leslie-Hughes (2):
      odbccp32: Implement SQLWritePrivateProfileStringA/W.
      msctf: Always return FALSE in DllCanUnloadNow.

Andrew Cook (15):
      kernel32/tests: Add tests for IsProcessInJob.
      kernel32/tests: Add tests for TerminateJobObject.
      kernel32/tests: Add tests for QueryInformationJobObject.
      kernel32/tests: Add tests for job object completion ports.
      kernel32/tests: Add tests for JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSE.
      kernel32/tests: Add tests for JOB_OBJECT_LIMIT_BREAKAWAY_OK.
      kernel32/tests: Add tests for job inheritance.
      kernel32/tests: Extend IsProcessInJob tests.
      server: Implement CreateJobObject.
      server: Implement AssignProcessToJobObject.
      server: Implement IsProcessInJob.
      server: Implement job limit flags.
      server: Implement job inheritance.
      server: Implement io completion messages for job objects.
      server: Track handle count of objects.

Andrew Eikum (2):
      oleaut32: Allow typelib filenames longer than MAX_PATH.
      wineoss.drv: Don't skip over position updates of less than one fragment.

Andrey Gusev (1):
      d3dx9_36: Assorted spelling and typos fixes.

André Hentschel (5):
      include: Add more header guards.
      ntdll: Add support for FreeBSD on ARM.
      ntdll: Fix CPU level on ARM.
      ntdll: Get available CPU info from FreeBSD on ARM.
      loader: Run checks also on ARM Linux.

Aric Stewart (2):
      wineqtdecoder: Unload the AsyncReader on movie processing failure.
      winmm: sndPlaySound can play resource sounds.

Austin English (2):
      kernel32: Add a stub for QueryThreadCycleTime.
      include: Add initial mfapi.h.

Bruno Jesus (13):
      netapi32/tests: Fix a memory leak (Valgrind).
      netapi32: Return an empty comment instead of NULL pointer in NetServerGetInfo.
      winmm/tests: Add a basic joystick interactive test.
      ws2_32: Don't try to receive data in an OOB_INLINED socket with MSG_OOB.
      ws2_32: Convert send/recv flags to native system.
      ws2_32: Add a helper to check if a socket is bound or not.
      ws2_32: Ensure sockets in exceptfds get set when an error occurs.
      ws2_32: Do not poll unbound descriptors.
      ws2_32: Check for OOB data in select() calls when not OOB_INLINED.
      ws2_32/tests: Add more WSAEnumNetworkEvents tests.
      ws2_32/tests: Skip part of OOB test to unfreeze NT4 test.
      ws2_32: Fix return value when receiving with MSG_OOB without data to read.
      ws2_32: Better trace setsockopt/getsockopt.

Christoph von Wittich (2):
      riched20: EM_SETSEL should not return 0.
      riched20: Handle SCF_WORD.

David Hedberg (1):
      comdlg32: Only attempt to update the layout if the dialog window exists.

David Naylor (2):
      configure: Recognise host starting in 'amd64'.
      configure: Explicitly set host_cpu for 'amd64'.

Dmitry Timoshkov (1):
      shell32: Update version information to match XP values.

Erich Hoover (1):
      advapi32/tests: Add tests for inheriting ACL attributes.

François Gouget (40):
      taskschd: Remove an unneeded NONAMELESSUNION directive.
      storage.dll16: Remove an unneeded NONAMELESSSTRUCT directive.
      system.drv16: Remove an unneeded NONAMELESSSTRUCT directive.
      toolhelp.dll16: Remove unneeded NONAMELESSXXX directives.
      twain_32: Remove unneeded NONAMELESSXXX directives.
      msctf: Mark internal symbols with hidden visibility.
      msi: Mark internal symbols with hidden visibility.
      msxml3: Mark internal symbols with hidden visibility.
      ddraw/tests: Fix compilation on systems that don't support nameless unions.
      urlmon: Remove unneeded NONAMELESSXXX directives.
      wineoss.drv: Remove an uneeded NONAMELESSUNION directive.
      usbd.sys: Remove an unneeded NONAMELESSSTRUCT directive.
      user32: Remove an unneeded NONAMELESSSTRUCT directive.
      windowscodecs: Remove unneeded NONAMELESSXXX directives.
      mshtml: Mark internal symbols with hidden visibility.
      oleaut32: Mark internal symbols with hidden visibility.
      opengl32: Mark internal symbols with hidden visibility.
      riched20: Mark internal symbols with hidden visibility.
      winex11.drv: Remove unneeded NONAMELESSXXX directives.
      wininet: Remove an unneeded NONAMELESSSTRUCT directive.
      winspool.drv: Remove unneeded NONAMELESSXXX directives.
      winmm: Remove unneeded NONAMELESSSTRUCT directives.
      explorer: Remove an uneeded NONAMELESSUNION directive.
      secur32: Mark internal symbols with hidden visibility.
      sxs: Mark internal symbols with hidden visibility.
      user32: Mark internal symbols with hidden visibility.
      wbemprox: Mark internal symbols with hidden visibility.
      winedbg: Remove unneeded NONAMELESSXXX directives.
      rpcss: Remove unneeded NONAMELESSXXX directives.
      regedit: Remove an unneeded NONAMELESSSTRUCT directive.
      winecfg: Remove unneeded NONAMELESSXXX directives.
      wineconsole: Remove an unneeded NONAMELESSSTRUCT directive.
      wineps.drv: Mark internal symbols with hidden visibility.
      wininet; Mark internal symbols with hidden visibility.
      wmp: Mark internal symbols with hidden visibility.
      shell32: Point the 'My Documents' symbolic link to the XDG or OS X 'Documents' folder if they exist.
      widl: Remove unneeded NONAMELESSXXX directives.
      winedump: Remove unneeded NONAMELESSXXX directives.
      winhlp32: Remove an unneeded NONAMELESSSTRUCT directive.
      winefile: Remove an unneeded NONAMELESSUNION directive.

Frédéric Delanoy (1):
      Assorted spelling/grammar fixes.

Hans Leidekker (17):
      msi: Fall back to the database summary information stream in MSI_OpenPackageW.
      msi: Avoid allocating a database handle only to retrieve the summary information.
      msi: Use the last sequence number specified for patch media when updating media records.
      msi: Check the component enabled flag earlier.
      msi: Skip files from the original media if a patch is applied.
      msi: Check file state before installing global assemblies.
      msi: Import mspatcha instead of loading it dynamically.
      msi: Store the disk id for file patches.
      msi: Don't apply file patches in the cabinet extraction callback.
      msi: Don't mark global assembly files as installed when they are extracted.
      msi: Clean up handling of temporary files.
      msi: Get rid of global variables the cabinet extraction callbacks.
      wbemprox: Make sure to allocate sufficient memory in resize_table.
      wbemprox: Fix a memory leak.
      wbemprox: Implement more properties of Win32_Processor.
      wbemprox: Implement more properties of Win32_VideoController.
      wbemprox: Add a partial implementation of Win32_Printer.

Henri Verbeet (35):
      wined3d: Store shader output signatures as a wined3d_shader_signature structure.
      wined3d: Store shader input signatures as a wined3d_shader_signature structure.
      wined3d: Merge some common shader initialization code into shader_init().
      wined3d: Take the input slot into account when handling WINED3D_APPEND_ALIGNED_ELEMENT.
      d3d10core: Also pass unused input layout elements to wined3d.
      wined3d: Implement d3d10 style instance data step rates.
      wined3d: Use the "sysval_semantic" field instead of "semantic_name" to recognize SV_POSITION.
      wined3d: Add support for SV_InstanceID.
      d3d10core: Implement d3d10_device_DrawInstanced().
      d3d10core/tests: Add a test for D3D10_APPEND_ALIGNED_ELEMENT.
      d2d1: Properly take the source offset into account in d2d_d3d_render_target_DrawBitmap().
      d2d1: Implement d2d_state_block_GetTextRenderingParams().
      d2d1: Implement d2d_state_block_SetTextRenderingParams().
      d2d1: Implement d2d_state_block_GetDescription().
      d2d1: Implement d2d_state_block_SetDescription().
      d2d1: Implement d2d_d3d_render_target_GetFactory().
      d2d1: Implement d2d_d3d_render_target_SetTextRenderingParams().
      d2d1: Implement d2d_d3d_render_target_GetTextRenderingParams().
      d2d1: Implement d2d_d3d_render_target_SetAntialiasMode().
      d2d1: Implement d2d_d3d_render_target_GetAntialiasMode().
      d2d1: Implement d2d_d3d_render_target_SetTextAntialiasMode().
      d2d1: Implement d2d_d3d_render_target_GetTextAntialiasMode().
      d2d1: Implement d2d_d3d_render_target_SetTags().
      d2d1: Implement d2d_d3d_render_target_GetTags().
      d2d1: Use a D2D1_DRAWING_STATE_DESCRIPTION structure to store render target drawing state.
      d2d1: Implement d2d_d3d_render_target_SaveDrawingState().
      d2d1: Implement d2d_d3d_render_target_RestoreDrawingState().
      d2d1/tests: Add a test for ID2D1DrawingStateBlock.
      d2d1: Do not multiply color brush RGB values with the brush opacity.
      wined3d: Add support for half-integer pixel centers.
      d2d1/tests: Add a test for color brushes.
      wined3d: Take WINED3D_PIXEL_CENTER_INTEGER into account when calculating vpos.
      wined3d: Use GLSL 1.30 for SM4 shaders when available.
      d3d10core/tests: Port the d3d9 vPos test to d3d10.
      d2d1: Fix a typo in the determinant calculation in d2d_d3d_render_target_FillRectangle().

Hugh McMaster (2):
      netstat: Fix incorrect comment.
      attrib: Fix incorrect comment.

Huw D. M. Davies (10):
      ole32: Read the class id from the top-level storage object.
      ole32: A cache entry should hold the stream its data is from, not the top-level storage.
      ole32: Split the data loading into a couple of helpers.
      ole32: Add support for parsing the 'CONTENTS' stream.
      ole32: Separate metafile loading into a helper function.
      ole32: Add support for loading dibs.
      ole32: Add support for retrieving extents of dib format.
      ole32: Add support for drawing the dib format.
      ole32: Implement QueryGetData().
      ole32/tests: Add tests for loading a dib 'CONTENTS' stream.

Jacek Caban (11):
      mshtml.idl: Added IHTMLSelectionObject2 declaration.
      mshtml: Added IHTMLSelectionObject2 stub implementation.
      dxgi.idl: Added DXGI_SWAP_EFFECT_FLIP_SEQUENTIAL declaration.
      d3d11_1.idl: Added some missing declarations.
      dxgi1_2.idl: Added IDXGIFactory2 declaration.
      wininet: Pass timeout as DWORD in setsockopt calls.
      d3d11sdklayers.idl: Added ID3D11Debug declaration.
      dxgi1_2.idl: Added IDXGIAdapter2 declaration.
      d3d11.idl: Added D3D11_FEATURE_DATA_D3D11_OPTIONS declaration.
      d3d11_1.idl: Fixed ClearView argument (missing const).
      wmsdkidl.idl: Added IWMReaderAdvanced* declarations.

Jinhui Chen (1):
      winex11.drv: Fix row-resize/col-resize mapping to X cursor.

Ken Thomases (4):
      winmm: For Mac, fix joyGetPosEx() to put number of buttons pressed in dwButtonNumber field.
      winemac: Allow the user to attempt to resize a maximized window and try to restore it if they do.
      winemac: Restore a maximized window if a user tries to move it by dragging its title bar.
      winemac: Cleanup system tray icons when their owner is destroyed instead of polling.

Mark Harmstone (5):
      comctl32: Use correct font for themed headers.
      ntdll: Treat strings as case-insensitive in find_window_class.
      comctl32: Redraw themed button on WM_ENABLE.
      winecfg: Style updown control with UDS_ALIGNRIGHT.
      winecfg: Add manifest.

Matteo Bruni (12):
      wined3d: Use a separate STATE_VIEWPORT state handler in the GLSL pipeline.
      wined3d: Introduce a get_projection_matrix() function.
      wined3d: Introduce a get_texture_matrix() function.
      wined3d: Don't use the builtin FFP uniform for the normal matrix.
      d3d9/tests: Add more lighting tests.
      d3d8/tests: Add more lighting tests.
      wined3d: Don't use the builtin FFP uniform for the projection matrix.
      ddraw: D3DLIGHT lights default to active.
      ddraw: Make sure AddLight properly activates lights.
      ddraw: Make sure to activate / deactivate the light on D3DLIGHT_ACTIVE flag changes.
      ddraw: D3DRENDERSTATE_NORMALIZENORMALS doesn't exist before d3d7.
      ddraw: Enable WINED3D_RS_NORMALIZENORMALS on d3d versions older than d3d7.

Michael Müller (4):
      netprofm: Add stubbed IConnectionPoint interface.
      netprofm/tests: Add tests for ConnectionPointContainer::FindConnectionPoint.
      ntdll: Define a couple more information classes.
      kernel32/tests: Add tests for GetFinalPathNameByHandleA/W.

Michael Stefaniuc (15):
      mscoree: Use SUCCEEDED instead of !FAILED.
      taskschd: Print the debug string instead of the pointer value.
      mshtml: Print the debug string instead of the pointer value.
      qcap: Print the debug string instead of the pointer value.
      scrrun: Print the debug string instead of the pointer value.
      schedsvc: Drop WINE_ prefix from ERR().
      fntcache: Drop WINE_ prefix from FIXME/TRACE.
      taskschd/tests: Test the correct return value.
      mshtml/tests: Actually test the return of IHTMLTable_get_width().
      windowscodecs/tests: Actually test the return of IWICBitmap_GetSize().
      winhttp/tests: Test the correct return code.
      d3drm/tests: Test the correct return code.
      wmp: Forward from a Release to a Release method.
      gdiplus: The result of a comparison is already a BOOL.
      winealsa.drv: The result of a comparison is already a BOOL.

Nikolay Sivov (35):
      comctl32/listview: Update view on style change only if LVS_TYPEMASK styles have changed.
      user32/static: Allow setting NULL text.
      scrrun: Added support for interface pointers as keys for dictionary.
      scrrun: Added support for VT_DATE keys, and BYREF float key types.
      scrrun: Support BYREF types for integer keys.
      comctl32/tooltips: Allow NULL hinst value when fetching text from resources.
      ole32: Return interface pointers instead of impl pointers from QI.
      ole32/tests: Return interface pointer instead of impl pointer from QI.
      msi: Return interface pointer instead of impl pointer.
      dwrite: Forward IDWriteTextLayout::GetMetrics() to IDWriteTextLayout2::GetMetrics().
      comctl32: Claim success in InitializeFlatSB().
      comctl32/tests: Listview doesn't subclass its header.
      taskmgr: Simplify setting extended style for a list.
      rpcrt4/tests: Use status definitions instead of numeric values.
      rpcrt4: Fix RpcMgmtStopServerListening() return value when we're not listening.
      po: Corrected Russian translation.
      dwrite: Pass sideways run flag to shaping methods.
      comctl32/listview: Fix item focus rectangle to use proper label/selection bounds.
      comctl32/listview: Fix focus rectangle for LVS_EX_FULLROWSELECT case.
      comctl32/listview: Fix scrolling in LV_VIEW_DETAILS view.
      comctl32/listview: Always forward LVM_GETCOLUMNORDERARRAY to header.
      comctl32/listview: Remove outdated TODO comment.
      dwrite: Initial implementation of DetermineMinWidth().
      dwrite: Return CreateStreamFromKey() failure code from Analyze().
      comctl32/listview: Support header item image/bitmap in LVSCW_AUTOSIZE_USEHEADER case.
      comctl32/listview: Use defined name instead of magic value.
      comctl32/listview: Always forward HDM_SETORDERARRAY to a header.
      taskmgr: Set column order through listview.
      comctl32/dsa: Implement DSA_Clone().
      comctl32/dsa: Implement DSA_GetSize().
      dwrite: Update to IDWriteRenderingParams2.
      wincodecs: Use valid bitmap cache option.
      msxml3: Explicitly list acceptable libxml2->msxml node types for unknode.
      comctl32/tests: Fix couple of metrics tests that fail on some systems.
      dwrite: Fix cluster width and length calculation.

Pierre Schweitzer (3):
      setupapi: Implement SetupOpenLog(), SetupCloseLog().
      setupapi: Implement SetupLogErrorA(), SetupLogErrorW().
      setupapi/tests: Add tests for the SetupOpenLog(), SetupLogErrorA(), SetupCloseLog() functions.

Piotr Caban (21):
      oleacc: Added Client_get_accChild implementation.
      oleacc: Added client IEnumVARIANT stub.
      oleacc: Added window IEnumVARIANT stub.
      oleacc: Added client IEnumVARIANT::{Reset,Skip,Next} implementation.
      oleacc: Added client IEnumVARIANT tests.
      oleacc: Added AccessibleChildren implementation.
      oleacc: Added AccessibleChildren tests.
      msvcrt/tests: Add atan, tanh and exp tests on invalid arguments.
      msvcrt: Fix NAN handling in printf.
      msvcrt/tests: Use NAN and INFINITY definitions from port.h in printf tests.
      user32/tests: Don't send mouse clicks to other process windows in input tests.
      msvcp90/tests: Use NAN and INFINITY definitions from port.h in Ctraits::_Isnan tests.
      advapi: Don't use CreateFile when opening file with possibly empty DACL.
      server: Make directory DACL entries inheritable.
      advapi32: Add SetNamedSecurityInfo test with empty DACL.
      advapi32/tests: Add test for mapping DACL to permission.
      advapi32: Add DACL inheritance support in SetSecurityInfo.
      ntdll: Improve parameter validation in RtlAddAce.
      server: Fix DACL to permissions conversion.
      msvcr120: Add some missing exports on i386 architecture.
      advapi32: Handle NULL DACL in SetSecurityInfo.

Sebastian Lackner (12):
      gdiplus: Add missing returns in initialize_decoder_wic (Coverity).
      user32: Use C_ASSERT to ensure user_thread_info fits into TEB->Win32ClientInfo.
      browseui: Avoid race-conditions when progress dialog is released before thread terminates.
      ntoskrnl: Emulate 'mov Eb, Gb' instruction on x86 processor architecture.
      wiaservc: Return pointer to vtbl instead of implementation in wiadevmgr_Constructor.
      kernel32/tests: Allow multiple subprocess commands in process tests.
      kernel32/tests: Add tests for adding a terminated process to a job object.
      advapi32/tests: Repeat ACL inheritance tests for NtCreateFile.
      advapi32/tests: Add tests for NtCreateFile inheritance when security descriptor is set.
      advapi32/tests: Merge common code to test DACL descriptors in a helper function.
      advapi32/tests: Add tests for CreateFile with set security descriptor.
      ntdll: Fix various bugs RtlUnwindEx on x86_64.

Sergey Isakov (1):
      windowscodecs: Fix wrong pointer to formal parameter.

Shuai Meng (2):
      vbscript: Implemented Oct.
      vbscript: Fixed Hex.

Stefan Dösinger (15):
      ddraw: Update the palette before presents to the NULL window.
      ddraw/tests: The testbot applies color keying without a key.
      ddraw/tests: Correct executebuffer offsets.
      wined3d: Improve color fixups in atifs shaders.
      wined3d: Check for conversion changes in the atifs fragment pipeline.
      wined3d: Add per-context private data for fragment pipelines.
      wined3d: Avoid constant collision in atifs.
      ddraw/tests: Make sure color keying is on in test_texturemapblend.
      ddraw/tests: Port test_color_fill to earlier versions.
      wined3d: Implement per stage constants in atifs.
      wined3d: Give tex_type and its values a better name.
      wined3d: Pass a wined3d_ffp_texture_type enum to blit shader functions.
      wined3d: Use bitfields in struct arbfp_blit_type.
      wined3d: Pass a struct arbfp_blit_type to the blit shader generation functions.
      wined3d: Define a constant for the blit texture size parameter.

Thomas Faber (5):
      wscript: Correctly use CommandLineToArgvW.
      gdi32: Avoid uninitialized variable use in EnumEnhMetaFile (MSVC).
      setupapi/tests: Avoid side-effect in an assert.
      user32/tests: Avoid side-effect in an assert.
      winegstreamer: Avoid side-effects in asserts.

Vincent Povirk (8):
      gdiplus: Fonts in UnitWorld shouldn't be scaled to the page unit.
      gdiplus: Apply page scale to pen thickness.
      gdiplus: Handle large input rect in GdipMeasureCharacterRanges.
      gdiplus: Fix blend_colors when alpha channel differs.
      mscoree: Remove the runtime version selection logic and just use 4.0.
      gdiplus: Add support for reading PNG tEXt metadata.
      windowscodecs: Implement PngDecoder_Block_GetCount.
      windowscodecs: Implement PngDecoder_Block_GetReaderByIndex.

Zheng Chen (2):
      msvcrt: Correct atan/exp/tanh errno setting.
      msvcrt: Fix _copysign bugs for NAN/INF.

Alexandre Julliard