The Wine development release 1.9.12 is now available.

What's new in this release (see below for details):
  - Bug fix update of the Mono engine.
  - Initial version of a taskbar in desktop mode.
  - Fixes for right-to-left languages in Uniscribe.
  - More Shader Model 4 support in Direct3D.
  - Better metafile support in RichEdit.
  - Various bug fixes.

The source is available from the following locations:

  http://dl.winehq.org/wine/source/1.9/wine-1.9.12.tar.bz2
  http://mirrors.ibiblio.org/wine/source/1.9/wine-1.9.12.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.12 (total 20):

  11898  Dance eJay Demo 7 crashes due to unimplemented interface relating to devenum
  20977  Bad hlp table rendering
  23954  Threads not allocated to multiple processors.
  26965  Dragon Age 2 demo - sound in cutscenes is muffled
  31971  mspaint.exe from windows 8 wants ntdll.WinSqmStartSession
  34557  Lemmings Revolution: can't rotate playing field
  34897  Lego Mindstorms EV3 Home Edition (.NET 4.0 app) needs msctf DocumentMgrSource_AdviseSink implementation
  37096  Problems with DC Universe Online and Virtual Desktops
  39896  Robot animations glitch in main lobby of Lego Mindstorms EV3 software
  40380  Wine should take dosbox's configuration instead of creating a new one
  40497  "Trainz: A New Era" needs msvcr120.dll.?__ExceptionPtrToBool@@YA_NPEBX@Z
  40593  wininet:http test regression (failure & timeout)
  40624  Source games make wined3d to attach incomplete texture to FBO (WINED3DFMT_NULL)
  40660  latest update Sega Genesis & Mega Drive update no longer running after May 18, 2016 update
  40662  CAPS key Not Working !!
  40691  DVDFab 9.2.4.4 pre-check FabCheck.exe executable fails, needs setupapi.dll.CM_Get_DevNode_Status
  40709  iexplore crashes when proxy enabled
  40711  Splinter Cell: Blacklist crashes at launch (needs GetVoiceDetails implementation)
  40727  ddraw tests broken with warn+heap
  40745  Python 3.5.1 interpreter crashes, needs _set_thread_local_invalid_parameter_handler

----------------------------------------------------------------

Changes since 1.9.11:

Aaryaman Vasishta (2):
      d3drm: Fix declaration of IDirect3DRMViewport*::Init.
      d3drm/tests: Fix some missing HRESULT returns in test_frame_qi.

Akihiro Sagawa (3):
      imm32/tests: Add tests showing that the IME window is created between WM_NCCREATE and WM_NCCALCSIZE.
      imm32/tests: Add tests showing the IME window is created if the first window is a child.
      imm32/tests: Add more tests showing that the IME window is created after WM_NCCREATE.

Alex Henrie (2):
      ntdll: Skip synchronous read if a serial read interval timeout is set.
      msvcrt: Stub out _(get|set)_thread_local_invalid_parameter_handler.

Alexandre Julliard (14):
      winebrowser: Support MULTI_SZ strings for browsers and mailers configuration.
      winebrowser: Support browser and mailer commands with arguments.
      user32: Post notification to the desktop window for window creation/activation.
      explorer: Add a generic handler for desktop notifications.
      explorer: Display buttons on the task bar for running applications.
      winex11: Hide window icons in desktop mode when the taskbar is active.
      makefiles: Remove some obsolete import libraries.
      explorer: Show the application system menu on taskbar right clicks.
      user32: Setup system menu even when used through TrackPopupMenu.
      user32: Remove redundant system menu handle checks.
      ntdll: Add a helper function for registering a file read async I/O.
      explorer: Avoid crash on empty Start Menu folders.
      explorer: Don't bother with taskbar buttons when the taskbar is not visible.
      user32: Notify explorer when the active window changes.

Alistair Leslie-Hughes (4):
      inetcomm: Add support for PID ids in MimeBody Get/SetProp.
      inetcomm: Add missing default properties.
      include: Add ID3D10InfoQueue interface.
      d3d10_1/tests: Test for ID3D10InfoQueue interface.

Andreas Maier (3):
      msi: Use special error control flag in CreateService.
      msi/tests: Delete TestService after testing.
      msi/tests: Test for error control flag handling.

Andrew Eikum (2):
      xaudio2: Shut down OpenAL in the correct order.
      xaudio2: Implement GetVoiceDetails for source and submix voices.

Andrey Gusev (16):
      include: Fix a typo in IHTMLSelection interface.
      wineps.drv: Fix typos.
      ddraw: Fix a typo in WARN() messages.
      d3d10: Fix a typo in depthstencilstate_count variable name.
      wined3d: Fix a typo in comment.
      advapi32: Fix a typo in comment.
      hlink/tests: Fix a typo in ok() messages.
      kernel32/tests: Fix a typo in ok() messages.
      user32/tests: Fix a typo in ok() messages.
      urlmon/tests: Fix a typo in ok() message.
      server: Fix a typo in comment.
      d3dx9_36: Fix typos in comments.
      mmdevapi/tests: Fix a typo in ok() messages.
      gdiplus: Fix a typo in struct GpAdjustableArrowCap.
      include: Fix a typo in IWMReaderAdvanced interface.
      mshtml: Fix a typo in WARN() message.

Aric Stewart (2):
      winex11.drv: Correct sizes in COMPOSITIONSTRING structure when updating fields.
      winemac.drv: Correct sizes in COMPOSITIONSTRING structure when updating fields.

Austin English (1):
      ntdll: Add WinSqmEndSession/WinSqmStartSession stubs.

Béla Gyebrószki (2):
      quartz: Fix a typo in an ERR() message.
      wined3d: Add Nvidia GeForce GTS 250.

Caron Wills (1):
      wined3d: Add Nvidia GeForce GT 730M.

François Gouget (13):
      shell32: Spelling fixes.
      secur32: Spelling fixes.
      mlang: Spelling fixes.
      kernel32: Spelling fixes.
      gdi.exe16: Spelling fixes.
      d3dxof: Spelling fixes.
      dmsynth: Spelling fixes.
      wined3d: Spelling fixes.
      d3d9/tests: Fix a trailing ok() '\n'.
      usp10: Punctuation fixes.
      msxml3: Spelling fixes.
      ole32: Spelling fixes.
      imm32/tests: Spelling fix.

Grazvydas Ignotas (3):
      wined3d: Use Intel data returned by Windows driver.
      wined3d: Add some more Intel GPUs.
      wined3d: Add a fallback for Skylake.

Guillaume Charifi (1):
      wined3d: Add support for the ishr opcode.

Hadrien Boizard (4):
      msvcrt: Use BOOL type where appropriate.
      winegstreamer: Use BOOL type where appropriate.
      include: Add missing FILE_ATTRIBUTE flags.
      include: Add file notification flags.

Hans Leidekker (1):
      webservices: Add support for encoded UTF-8 characters in WsDecodeUrl.

Henri Verbeet (10):
      usp10/tests: Add an itemisation test for Persian numerals and punctuation.
      usp10: Fix the script tag and fallback font for Script_Persian.
      usp10: Persian numerals are written left-to-right.
      usp10: Set the base embedding level for Script_Persian to 2.
      usp10: Properly check for numeric scripts.
      ddraw: Avoid accessing free'd memory on an error path in ddraw_surface_create().
      usp10/tests: Add an itemisation test for Arabic numerals and punctuation.
      usp10: Handle C2_ARABICNUMBER as numeric.
      usp10: Arabic numerals are written left-to-right.
      usp10: Set the base embedding level for Script_Arabic_Numeric to 2.

Hugh McMaster (17):
      reg: Recognise hyphen and forward slash help switches.
      reg: Parse the registry operation using an enum.
      reg: Exit with an error if the specified operation is invalid.
      reg: Simplify help logic and syntax.
      reg: Make help for registry operations common in wmain.
      reg: Move duplicate sane_path() calls to wmain.
      reg: Move duplicate path_get_rootkey() calls to wmain.
      reg: Rename HKEY 'subkey' to 'key' in reg_add() and reg_delete().
      reg: Move duplicate strchrW() calls to wmain.
      reg: Combine duplicate 'for' loops in wmain and parse all remaining arguments.
      reg: Remove an unreachable 'else' pathway from wmain.
      reg: Move duplicate /v, /ve and /va combination checks to wmain.
      reg/tests: Add initial tests for 'reg import'.
      reg: Do not allow duplicate /d or /t switches.
      reg/tests: Add tests for invalid switches.
      reg: Recognise switches beginning with a forward slash or hyphen.
      reg: Avoid possible out-of-bounds memory access when a switch is only a forward slash or hyphen.

Huw D. M. Davies (7):
      include: Add flags for the EM_AUTOURLDETECT message.
      riched20: Fix URL auto-detection to handle 'neutral' characters.
      riched20: Add support for quoting urls with spaces within '<' '>'.
      riched20: Add support for saving enhanced metafiles.
      gdi32: Rename the struct representing an embedded EMF in a WMF.
      gdi32: If the WMF was created by GetWinMetaFileBits() then return the original EMF.
      gdi32: Rename the struct representing an embedded WMF in an EMF.

Jacek Caban (8):
      msctf: Don't call ITextStoreACP::UnadviseSink in context destructor.
      msctf: Added Push/Pop context tests.
      msctf: Fixed ref counts in tests.
      wininet: Fixed leak in HTTP_DealWithProxy (coverity).
      wininet: Added missing LeaveCriticalSection to set_cookie (coverity).
      wininet: Skip more problematic tests on IE6.
      wininet: Correctly handle the last proxy override in HTTP_ShouldBypassProxy.
      user32: Make SetWindowLongW hotpatchable.

Julian Rüger (1):
      po: Update German translation.

Józef Kucia (38):
      wined3d: Use pure integer vertex attributes for SM4+ shaders.
      d3d11/tests: Add test for input assembler.
      d3d10core/tests: Add test for input assembler.
      wined3d: Add ARB_explicit_attrib_location extension.
      wined3d: Use ARB_explicit_attrib_location to pre-assign vertex attribute locations.
      wined3d: Add support for NULL sampler.
      wined3d: Implement index buffer offset.
      d3d11: Set blend states only when blending is enabled.
      d3d11/tests: Add test for NULL sampler.
      d3d10core/tests: Add test for NULL sampler.
      wined3d: Implement SM4 umax instruction.
      wined3d: Implement SM4 switch instruction.
      wined3d: Implement SM4 case instruction.
      wined3d: Implement SM4 default instruction.
      wined3d: Implement SM4 endswitch instruction.
      wined3d: Allow creating render targets for some _UNORM/_SNORM formats.
      wined3d: Add wined3d_shader_resource_view_desc.
      d3d11: Normalize more fields in SRV descriptions.
      wined3d: Add more formats to WINED3DFMT_R24G8_TYPELESS class.
      wined3d: Do not try to attach WINED3FMT_NULL surfaces to FBO.
      d3d11/tests: Add more tests for creating shader resource views.
      wined3d: Remove "view_type" from "wined3d_shader_resource_view_desc".
      wined3d: Store GL view class for each wined3d format.
      wined3d: Add ARB_texture_view extension.
      wined3d: Create texture views for shader resource views.
      d3d10core/tests: Add more tests for creating shader resource views.
      d3d11: Normalize "ArraySize" field in D3D11_RENDER_TARGET_VIEW_DESC.
      wined3d: Fix wined3d_rendertarget_view_desc validation for 3D textures.
      d3d11/tests: Add more tests for creating render target views.
      d3d11: Normalize "ArraySize" field in D3D11_DEPTH_STENCIL_VIEW_DESC.
      d3d11/tests: Add more tests for creating depth stencil views.
      d3d11: Normalize SRV descriptions for remaining view dimensions.
      d3d10core/tests: Add more tests for creating render target views.
      d3d10core/tests: Add more tests for creating depth stencil views.
      d3d11/tests: Add test for texturing with custom shader resource views.
      d3d10core/tests: Add test for texturing with custom shader resource views.
      wined3d: Recognize SM 4.1 gather4 opcode.
      wined3d: Recognize SM 5 gather4_c opcode.

Ken Thomases (3):
      winemac: Use a more idiomatic pattern for an autorelease pool around a loop.
      winemac: Fix the logic for checking if a view is already in the intended z-order.
      winemac: Remove an unnecessary call to -[NSView removeFromSuperview].

Lauri Kenttä (2):
      winefile: Fix horizontal scrolling.
      winefile: Clarify header width calculations.

Luis Sahagun (1):
      winevdm: Tell dosbox to read the current user's config.

Matteo Bruni (3):
      wined3d: Fix FFP vertex shaders with ARB_explicit_attrib_location.
      wined3d: Cleanup state_clipping() a bit.
      wined3d: User clip planes emulation for core profile contexts.

Michael Stefaniuc (17):
      riched20/tests: Use EqualRect() instead of open coding it.
      include: Add an inline version of EqualRect() too.
      comctl32/tests: Use EqualRect() instead of open coding it.
      user32/tests: Use EqualRect() instead of open coding it.
      wordpad: Use OffsetRect() instead of open coding it.
      user32: Use InflateRect() instead of open coding it.
      include: Make wine_dbgstr_rect() available for tests too.
      shell32/tests: Use wine_dbgstr_rect() to print RECTs.
      dxgi/tests: Use wine_dbgstr_rect() to print RECTs.
      comctl32/tests: Use wine_dbgstr_rect() to print RECTs.
      ddraw/tests: Use wine_dbgstr_rect() in the ddraw1 tests.
      ddraw/tests: Use wine_dbgstr_rect() in the ddraw2 tests.
      ddraw/tests: Use wine_dbgstr_rect() in the ddraw4 tests.
      ddraw/tests: Use wine_dbgstr_rect() in the ddraw7 tests.
      comdlg32/tests: Use wine_dbgstr_rect() to print RECTs.
      d3d10core/tests: Use wine_dbgstr_rect() to print RECTs.
      d3d9/tests: Use wine_dbgstr_rect() to print RECTs.

Miklós Máté (2):
      winex11: Use GLX 1.3 for pixmaps.
      winex11: Use GLX 1.3 for windows.

Nikolay Sivov (19):
      dwrite: Fix font data array leak on list release (Valgrind).
      kernel32/tests: Fix a leak in tests (Valgrind).
      ntdll/tests: Fix some string leaks (Valgrind).
      ole32: Don't try to read key value if key was not found (Valgrind).
      user32/tests: Fix a leak when creating test icons (Valgrind).
      gdiplus/tests: Fix a font leak (Valgrind).
      include: Added missing ASSOCF enum members.
      msxml3/schema: Support element nodes in add().
      user32/tests: Some tests for EqualRect()/SetRect().
      oledb32: IErrorInfo methods are stubs.
      msscript: Added IOleObject stub.
      dsound: Remove redundant null pointer check (Coverity).
      dwrite: Implement IDWriteFontFace3::GetRecommendedRenderingMode().
      msscript: Implement GetMiscStatus().
      msscript: Implement SetClientSite()/GetClientSite().
      msscript: Added IPersistStreamInit stub.
      msscript: Implement GetExtent().
      msscript: Claim success in InitNew().
      msscript: Added IOleControl stub.

Paul Gofman (2):
      d3dx9: Implement IsParameterUsed function in effect.
      d3dx9/tests: Add test for IsParameterUsed function.

Piotr Caban (2):
      kernel32: Use utf8 for filenames encoding if different encoding was not specified on Mac.
      msvcr110: Fix critical_section_scoped_lock structure size.

Rob Walker (1):
      setupapi: Add stub for setupapi.dll.CM_Get_DevNode_Status.

Stefan Dösinger (3):
      ddraw/tests: Add readback tests to test_palette_gdi.
      ddraw/tests: Test P8 color keying.
      ddraw/tests: Remove p8_primary_test.

Theodore Dubois (3):
      shell32/tests: Fix out of memory errors and their underlying cause.
      shell32/tests: Fix memory leaks.
      shell32: Avoid closing the caller's key.

Thomas Faber (1):
      wininet: Avoid buffer overrun in alloc_object.

Vincent Povirk (4):
      explorer: Hide empty folders in the start menu.
      gdiplus/tests: Accept empty metafiles having 0 size on Windows.
      gdiplus: Return visible clip bounds in world coordinates.
      mscoree: Update Wine Mono to 4.6.3.

YongHao Hu (1):
      msvcr120/tests: Add critical section test.

Zhenbo Li (1):
      winegstreamer: Remove a condition which is always true.

--
Alexandre Julliard
julliard@winehq.org
