The Wine development release 1.9.2 is now available.

What's new in this release (see below for details):
  - GStreamer 1.0 support.
  - Support for SHA hashes in BCrypt.
  - Synthesizing bold glyphs also for bitmap fonts.
  - Underlines support in DirectWrite.
  - Still more Shader Model 4 instructions.
  - Various bug fixes.

The source is available from the following locations:

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

   7938  Gyldendal dictionary needs ole2disp.dll.SAFEARRAYALLOCDATA
   8490  SHBrowseForFolder: BIF_NEWSTYLEDIALOG not implemented - title gets cropped in uTorrent
  11023  Lack of ole2disp.dll.SAFEARRAYDESTROYDESCRIPTOR causes Nota Bene to refuse to launch
  18932  Installshield installer text not being bolded (appinstall)
  20896  Use-after-free in DdeClientTransaction in user32 dde tests
  24658  Unimplemented function ole2.dll16.READCLASSSTM
  28113  winverbs doesn't work, needs ole2disp.dll16.SAFEARRAYALLOCDESCRIPTOR
  30557  winegstreamer broken with >=glib-2.32.0
  31496  Render-to-fbo with WINED3D_SWAP_EFFECT_FLIP continually spammed in console
  31836  Add support for GStreamer 1.0 API/ABI
  31913  EasyPal version August 6 2012 crashes on unimplemented function msvcp60.dll.??Dstd@@YA?AV?$complex@N@0@ABNABV10@@Z
  34185  Castlevania: Lords of Shadow demo doesn't work after intro movies
  35774  MSVC 2012 needs msvcp110.dll.?_Equivalent@sys@tr2@std@@YAHPBD0@Z
  36299  valgrind shows a few possible leaks in msxml3/tests/httpreq.c
  36303  valgrind shows several leaks in msxml3/tests/schema.c
  37536  Native MSVCP120.dll override requires implementation of msvcr120.dll._W_Gettnames (Desura client)
  37908  GLFont crashes saving a .glf file (needs msvcp70.dll.?open@?$basic_ofstream@DU?$char_traits@D@std@@@std@@QAEXPBDH@Z)
  38451  valgrind shows uninitialized variable in dlls/shlwapi/tests/ordinal.c
  38722  AVG installer wants ntdll.dll.RtlCreateUserProcess
  38781  Dungeon Keeper FX runs too quickly (differences in clock() function)
  39186  Steam client: links missing underline when DirectWrite method enabled
  39558  Unused variables xoffset, yoffset in SCROLL_TrackScrollBar
  39609  Dirt 3 requires WINED3DFMT_R8G8_UNORM
  39677  Zararadio crashes when it has to change from a playlist to another.
  39739  Cobra 11 - Burning Wheels demo: crashes when starting the tutorial
  39803  When closing a maximized microsoft word 2007 window, the program is closed but the desktop screen is not refreshed
  39805  GTAIV rendering is broken
  39818  J-Link 1.3.0 does not start at all, needs winspool.drv.EnumPrinterKeyW
  39820  Warhammer 40k: Kill Team needs BC1_UNORM
  39838  Wreckfest Server: Crashes at startup, unimplemented function KERNEL32.dll.GetConsoleScreenBufferInfoEx & SetConsoleScreenBufferInfoEx
  39874  Alien Shooter crashes often with access violation
  39901  LeapPadExplorer needs rasapi32.dll.RasSetCustomAuthDataW
  39943  Worms Armageddon opens wine explorer instead of running
  39950  Cabal II can't be opened, needs msvcp100.dll.?lowest@?$numeric_limits@M@std@@SAMXZ
  39951  KeePassX 2.0 wants KERNEL32.dll.SetSearchPathMode
  39952  trackbar thumb always at zero on dialog load.
  39953  StarCraft II: 64bit client crashing regularly due to access violation (0xC0000005)
  39954  StarCraft II: 64bit client only runs with lowest shader settings
  39958  Regression in dmime caused by change in flag handling for DSBCAPS_CTRLPAN in dsound
  39974  Thumb slider doesn't respond to key events
  39984  EveOnline launcher crashes when started, needs msvcr120.dll._dpcomp

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

Changes since 1.9.1:

Aaryaman Vasishta (3):
      d3drm/tests: Add texture loading tests.
      d3drm: Fix QueryInterface for IDirect3DRMTexture*.
      d3drm/tests: Add QueryInterface tests for IDirect3DRMTexture*.

Akihiro Sagawa (6):
      gdi32: Add a helper function to calculate the glyph advance metric.
      gdi32: Fix the advance width in synthetic bold glyphs with scaling.
      gdi32: Return an boolean value whether synthesizing bold glyph is success.
      gdi32: Implement synthesizing bold glyphs for bitmap fonts.
      comctl32/tests: Fix a typo.
      comctl32: Prevent invalid focus change notifications from LVS_OWNERDATA lists.

Alex Henrie (5):
      ntdll: Remove redundant avail_mode check and confusing comment.
      winex11: Fix overflow in remove_startup_notification.
      server: Fix duplicate, incorrect comment describing is_fd_signaled.
      ntdll: Avoid double initialization.
      ntdll: Return an error from CDROM_Open if fstat fails.

Alexandre Julliard (28):
      makefiles: Generate all makefiles at once.
      makedep: Generate testlist.c directly from the makefile data.
      makefiles: Generate distclean rules from makedep.
      makefiles: Generate makefile dependencies from makedep.
      msvcrt: Don't import atexit to avoid conflicts with the Mingw runtime.
      msvcrt/tests: Don't check array pointer for NULL.
      explorer: Support a quoted /desktop option.
      xaudio2: Remove unnecessary kernel32 imports.
      ntdll: Add a helper function to allocate the full object_attributes structure.
      server: Store the attributes in the object_attributes structure.
      server: Add a helper function to validate and return object attributes.
      server: Allow the object attributes to be omitted in requests.
      server: Pass full object attributes in the create_timer request.
      server: Pass full object attributes in the create_mailslot request.
      server: Pass full object attributes in the create_directory request.
      server: Pass full object attributes in the create_symlink request.
      server: Pass full object attributes in the create_completion request.
      server: Add a helper function to skip the object attributes structure.
      server: Pass full object attributes in the create_key request.
      server: Pass full object attributes in the load_registry request.
      server: Fix constraints on the length of NT object names.
      kernel32/tests: Avoid sizeof in a trace.
      ntdll/tests: Fix a test failure on restricted Windows.
      server: Create window stations objects in a standard directory.
      server: Store the desktop object names inside their window station.
      configure: Don't check for gnutls_hash if gnutls is missing entirely.
      configure: Don't check for gst/gstpad.h that we don't use.
      server: Always print the full path of objects when dumping them.

Alistair Leslie-Hughes (6):
      include: Add declaration D3DXDisassembleEffect.
      d3dx9: Implement GetMaxNum* functions.
      d3dx9/tests: Add D3DXCreateAnimationController tests.
      d3dx9/tests: DDS magic isn't part of the DDS header.
      msi: Allow PathEdit controls to be updated.
      msi: Refreh controls after spawned dialog is closed.

Andrew Eikum (35):
      xaudio2: Explicitly version the 2.7 coclasses.
      xaudio2_8: Use shared source.
      xaudio2_6: Use shared source.
      include: Add TrySubmitThreadpoolCallback declaration.
      mscoree: Set config path for default app domain.
      xaudio2_5: Use shared source.
      xaudio2_4: Use shared source.
      xaudio2_3: Use shared source.
      xaudio2_2: Use shared source.
      xaudio2_1: Use shared source.
      xaudio2_0: Use shared source.
      winegstreamer: Always run gstreamer callbacks on a Wine thread.
      xapofx1_5: Use shared source.
      xapofx1_4: Use shared source.
      xapofx1_3: Use shared source.
      xapofx1_2: Use shared source.
      xapofx1_1: Use shared source.
      x3daudio1_7: Use shared source.
      x3daudio1_6: Use shared source.
      x3daudio1_5: Use shared source.
      x3daudio1_4: Use shared source.
      x3daudio1_3: Use shared source.
      x3daudio1_2: Use shared source.
      x3daudio1_1: Use shared source.
      x3daudio1_0: Use shared source.
      winegstreamer: Add TRACEs and improve formatting.
      winegstreamer: Update to use gstreamer-1.0.
      maintainers: Add DirectShow section.
      mciqtz32: Support MCI_DGV_PUT_DESTINATION.
      xaudio2: Remove run-time version checks for XAudio2 object.
      xaudio2: Remove run-time versioning of xapo objects.
      xaudio2_8: Don't use IXAudio27 interface to call Initialize.
      xaudio2: Don't build interfaces for other versions.
      xaudio2_9: Add xaudio2_9.
      xaudio2: Use an HRESULT return code.

Andrey Turkin (1):
      d3d11: Add the ID3D11VideoContext interface.

André Hentschel (3):
      configure: Detect MinGW-w64 ARM toolchains.
      configure: Check for MinGW even when cross compiling.
      include: Add manifest related defines.

Anthony Fok (1):
      include: Suppress "use msvcrt" error in tchar.h when -mno-cygwin is used.

Anton Baskanov (1):
      quartz: Handle NULL target format in FilterGraph::ConvertTimeFormat.

Aric Stewart (4):
      hidclass.sys: Implement HID_Device_write.
      hidclass.sys: Implement IOCTL_HID_GET_FEATURE.
      hidclass.sys: Implement IOCTL_HID_SET_FEATURE.
      usp10: Rewrite ScriptXtoCP.

Austin English (5):
      kernel32: Add SetSearchPathMode stub.
      rpcrt4: Add a stub for RpcBindingServerFromClient.
      rasapi32: Add RasSetCustomAuthDataA/W stubs.
      winspool.drv: Add EnumPrinterKeyA/W stubs.
      irprops.cpl: Add stub dll.

Bernhard Übelacker (4):
      msvcp110/tests: Test virtual base table size exports.
      msvcp100/tests: Test virtual base table size exports.
      msvcp90/tests: Test virtual base table size exports.
      msvcp60/tests: Test virtual base table size exports.

Carlo Bramini (1):
      user32: Remove unused variables in SCROLL_TrackScrollBar.

Changhui Liu (1):
      hidclass.sys: Properly quit hid_device_thread when both completion event and halt event are signaled.

Christian Costa (1):
      d3dx9: Implement D3DXCreateAnimationController with a stubbed ID3DXAnimationController interface.

François Gouget (10):
      shell32/tests: The expectedArgs parameter of the DDE tests is an argument count, not a boolean.
      shell32/tests: Check the hProcess field when ShellExecuteEx() fails.
      shell32/tests: Create_test_association() should either succeed or fail due to insufficient permissions.
      shell32/tests: Fix the shortcut vs. class interaction test.
      tests: Use plain printf() calls instead of fprintf(stdout).
      kernel32/tests: Help the tests portably declare printf()-syle functions.
      kernel32/tests: Declare childPrintf() as a printf-style function.
      shell32/tests: Tweak some overly optimistic ok() messages.
      shell32/tests: Trace the effective ShellExecuteEx() flags.
      shell32/tests: Use the shell_execute{_ex}() call site for its traces and error messages.

Gerald Pfeifer (1):
      wined3d: Fix incorrect indentation of several break statements in in set_tex_op.

Hans Leidekker (17):
      bcrypt: Add support for SHA hashes on Linux using GnuTLS.
      bcrypt/tests: Don't load bcrypt dynamically.
      bcrypt/tests: Add tests for SHA hashes.
      bcrypt: Accept NULL implementation in BCryptOpenAlgorithmProvider.
      bcrypt: Support retrieving hash length from algorithm handles.
      include: Add missing Web Services declarations.
      webservices: Avoid some casts.
      webservices: Parse attribute names.
      webservices: Parse element names.
      webservices/tests: Add more tests for WsReadEndElement.
      webservices: Simplify handling of quotes in write_attribute.
      webservices: Attributes inherit the prefix from their element.
      webservices: Implement WsWriteXmlBuffer.
      webservices: Implement WsWriteXmlBufferToBytes.
      webservices: Reject end elements without a parent in the writer.
      webservices: Implement WsWriteType for a number of basic types.
      webservices/tests: Add tests.

Hugh McMaster (1):
      user32/tests: Use 'start' and 'end' variables in test comparisons.

Huw D. M. Davies (6):
      bcrypt: Ensure we have gnutls_hash() available.
      ole32: The type of the size of IMalloc'ed blocks is SIZE_T.
      oleaut32: Use the helper to access bstr_t.
      oleaut32: BSTRs should have 8 byte alignment on 64 bits.
      oleaut32: Use IMalloc_GetSize to determine the cache bucket.
      oleaut32: Use the default OLE allocator to allocate BSTRs.

Jacek Caban (14):
      mshtml: Added IHTMLCurrentStyle::overflowX implementation.
      mshtml: Added IHTMLCurrentStyle::overflowY implementation.
      mshtml: Added IHTMLCurrentStyle4::get_maxHeight implementation.
      mshtml: Added IHTMLUniqueName interface stub implementation.
      mshtml: Added IHTMLUniqueName::get_uniqueNumber implementation.
      mshtml: Added IHTMLUniqueName::get_uniqueID implementation.
      mshtml/tests: Added IHTMLUniqueName tests.
      mshtml: Expose IHTMLUniqueName for IDispatch of all element objects.
      oleaut32: Added more Invoke tests.
      mshtml: Skip unused named args in Invoke calls.
      mshtml: Added IHTMLDocument2::get_defaultCharset implementation.
      mshtml: Initialize dest VARIANT before VariantCopy call.
      mshtml/tests: Fixed location tests on IE11.
      d3d11.idl: Added CD3D11_RENDER_TARGET_VIEW_DESC and CD3D11_SHADER_RESOURCE_VIEW_DESC declarations.

Jactry Zeng (1):
      user32/tests: Fix a leak.

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

Józef Kucia (25):
      wined3d: Recognize SM4 ftou opcode.
      wined3d: Recognize SM4 ilt opcode.
      wined3d: Recognize SM4 imad opcode.
      wined3d: Recognize SM4 ine opcode.
      wined3d: Recognize SM4 ineg opcode.
      wined3d: Implement SM4 ftou instruction.
      wined3d: Reduce code duplication in shader_glsl_to_ functions.
      wined3d: Enable ARB_texture_query_levels extension.
      wined3d: Recognize SM4 resinfo opcode.
      wined3d: Implement SM4 resinfo instruction.
      d3d11/tests: Add test for SM4 resinfo instruction.
      d3d10core/tests: Add test for SM4 resinfo instruction.
      wined3d: Handle swizzle type equal to 0 as NOSWIZZLE.
      wined3d: Fix destination swizzle in few SM4 instructions.
      wined3d: Allow both SM4 parameter modifiers simultaneously.
      wined3d: Recognize SM4 oDepth register.
      wined3d: Implement SM4 imad instruction.
      wined3d: Recognize SM4 _sat instruction modifier.
      wined3d: Fix SM4 udiv instruction.
      wined3d: Do not update surface when empty box is passed.
      d3d11/tests: Extend test for ID3D11DeviceContext::UpdateSubresource().
      d3d10core/tests: Extend test for ID3D10Device::UpdateSubresource().
      wined3d: Do not copy surface region when empty box is passed.
      d3d11/tests: Add test for ID3D11DeviceContext::CopySubresourceRegion().
      d3d10core/tests: Port test_copy_subresource_region() from d3d11.

Michael Stefaniuc (1):
      dmime: Don't set DSBCAPS_CTRLPAN together with DSBCAPS_CTRL3D.

Nikolay Sivov (41):
      comctl32/trackbar: Update thumb immediately on TBM_SETPOS.
      msi: Fixed same file handle closed twice (Coverity).
      avifil32: Use typed pointers in sizeof() and va_arg() (Coverity).
      comdlg32: Don't use BOOL constants for regular integer type.
      crypt32: Fix a leak on error path (Coverity).
      ole2: Fix error handling in ReadClassStg().
      ole2: Implement ReadClassStm().
      ole2disp: Implement SafeArrayAllocDescriptor().
      dwrite: Consistently use explicit float literals.
      dwrite: Make position snapping more compact.
      dwrite: Fix a leak on error path.
      ole2disp: Implement SafeArrayDestroyDescriptor().
      ole2disp: Implement SafeArrayAllocData().
      dwrite: Start new effective run on strikethrough, underline or effect change.
      dwrite: Keep underlines in separate list.
      dwrite: Pass drawing effect to renderer in DrawGlyphRun().
      dwrite: Pass drawing effect to renderer in DrawStrikethrough().
      dwrite: Fix strikethrough baseline origin.
      ole2disp: Implement SafeArrayGetDim().
      ole2disp: Implement SafeArrayGetElemsize().
      ole2disp: Implement SafeArrayLock()/SafeArrayUnlock().
      dwrite: Handle bitmap allocation error when rendering to bitmap target.
      dwrite: Scale strikethrough thickness and position with current font size.
      ole2disp: Implement SafeArrayAccessData()/SafeArrayUnaccessData().
      dwrite: Implement support for underlines.
      dwrite: Store locale name range attribute in lower case.
      dwrite: Always initialize out pointers.
      dwrite: Fix comment typos.
      dwrite/tests: A test to compare font metrics with bold simulation and without.
      comctl32/trackbar: Update thumb immediately on key press.
      dwrite: Use callback freetype API to implement GetGlyphRunOutline().
      dwrite: Underline origin is always at the left run boundary.
      dwrite: Underline reading direction matches run direction.
      d3dx9/tests: Fix some test failures.
      d2d1: Don't update target dpi if only one SetDpi() argument is zero.
      d2d1: Support different measuring modes in DrawText().
      d2d1: Block target creation on invalid dpi values.
      d2d1: SetDpi() rejects negative values too.
      dwrite: Ask freetype once about kerning pairs support and monospaced property.
      dwrite: Return earlier from GetKerningPairAdjustments() when pair kerning is not supported.
      d2d1/tests: A test for DrawTextLayout() with drawing effect.

Paul Gofman (4):
      ole32: Fix behaviour of OLE init/uninit.
      ole32: Zero output interface pointer in OleGetClipboard() on error.
      ole32/tests: OleGetClipboard should succeed when COM/OLE is not inited.
      mscoree: Fix calling convention for mono callback functions.

Pierre Schweitzer (2):
      mpr: Implement WNetAddConnectionW(), WNetAddConnection2W(), WNetAddConnection3W().
      mpr: Implement WNetAddConnectionA(), WNetAddConnection2A(), WNetAddConnection3A().

Piotr Caban (19):
      msvcp120: Fix layout of classes with vtordisp field.
      oleaut32/tests: Add tests for safearray unmarshaling into passed variant.
      oleaut32: Set safearray pointer to NULL in LPSAFEARRAY_UserFree.
      oleaut32: Pass safearray from VARIANT_UserUnmarshal to LPSAFEARRAY_UserUnmarshal so it can be reused.
      oleaut32: Reuse safearray passed to LPSAFEARRAY_UserUnmarshal if possible.
      oleaut32: Don't overwrite pointers in VARIANT_UserUnmarshal so we may free or reuse them.
      oleaut32/tests: Show that VARIANT_UserUnmarshal may reuse passed in BSTR.
      msvcp100: Add numeric_limits<*>::lowest implementation.
      msvcp60: Export more complex numbers operators.
      msvcrt: Fix modff signature.
      msvcr120: Add _dpcomp implementation.
      msvcr120: Add _set_FMA3_enable stub.
      msvcr: Sync spec files.
      msvcrt: Add _crt_debugger_hook implementation.
      msvcrt: Fix size test of structure returned by _Gettnames.
      msvcr110: Fix __lc_time_data definition.
      msvcr110: Add _W_Gettnames implementation.
      msvcrt: Add support for member function pointers demangling in unDName function.
      msvcrt: Add support for $$B datatype description format in unDName.

Riccardo Bortolato (2):
      d3d11: Handle NULL source box in d3d10_device_CopySubresourceRegion().
      d3d11: Implement d3d11_immediate_context_CopySubresourceRegion().

Sebastian Lackner (2):
      server: Fix invalid memory accesss caused by destroying winstation before desktop.
      oleaut32: Fix invalid memory access on 64-bit when warn+heap is used.

Stefan Dösinger (10):
      d3d10core/tests: Multisampled render targets are zeroed on creation.
      d3d11/tests: Multisampled render targets are zeroed on creation.
      d3d10core/tests: Viewport properties are integers.
      wined3d: Prepare GL textures in surface_load_ds_location.
      wined3d: Block validation checks the surface size too.
      d3d9/tests: Block validation checks the surface size too.
      d3d8: Don't validate 2D texture lock coordinates.
      d3d8/tests: Test invalid locks with textures.
      d3d9/tests: Test invalid locks with textures.
      d3d8/tests: Block validation checks the surface size too.

Stefan Leichter (2):
      kernel32: Add stub for GetSystemPreferredUILanguages.
      kernel32/tests: Add tests for GetSystemPreferredUILanguages.

Thomas Faller (1):
      dde: Fix use-after-free.

Vincent Povirk (2):
      mscoree: Remove search fallbacks when Wine Mono isn't installed.
      mscoree: Remove "Install Mono for Windows" message.

YongHao Hu (1):
      msvcp110: Add tr2_sys__Link implementation and test.

--
Alexandre Julliard
julliard@winehq.org
