The Wine development release 1.7.34 is now available.

What's new in this release (see below for details):
  - Support for surround sound in DirectSound.
  - Better text run support in DirectWrite.
  - Many HTML engine fixes.
  - More support for WBEM objects.
  - A few more C/C++ runtime functions.
  - Various bug fixes.

The source is available from the following locations:

  http://prdownloads.sourceforge.net/wine/wine-1.7.34.tar.bz2
  http://mirrors.ibiblio.org/wine/source/1.7/wine-1.7.34.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.7.34 (total 63):

   5137  avifil32 limits itself to max of 1024 frames when writing avis
  12295  Star Trek Klingon Academy 1.02: Ship textures are partly invisible
  15111  Adobe Photoshop CS2 tools stop working in maximised images
  18474  DPP (Digital Photo Professional): Instruments window returns to its starting position (in the center) automatically when the image windows is selected
  20015  X-Lite don`t work with ALSA driver correctly
  22521  .NET 2.0 SP2 installer fails (RegSvcs.exe bootstrapper expects updated assemblies while GAC update is deferred during install)
  22602  KP500-Utils-EN.exe fails silently to extract .kdz files
  27616  Warcraft 3: missing mouse cursor
  28556  ICQ 7 installer error message
  28866  Avant Browser needs HTMLElement_get_isTextEdit
  30220  Unhandled privileged instruction when starting Minitab 16 (Sentinel HASP hardlock.sys kernel driver tries to write to CR4/not handled in ntoskrnl emulate_instruction)
  30420  pyjamas desktop (python26 + python-comtypes MSHTML.DLL from IE8) fails due to unsupported ReadTypeLib header
  30836  Total Overdose: choppy audio playback with Diesel Power 3D sound system
  32169  Multiple 64-bit applications crash on startup (GetLocaleInfo() returns improper TCHAR count for LOCALE_IFIRSTDAYOFWEEK) (PowerGrep v4.x, RegexBuddy 4.x)
  32888  Compiling Ultracopier 0.4.0.3 inside Qt 5.0.1 results in errors from compiler
  32954  Trying to download flash from iexplore crashes in jscript
  33809  javascript basic DOM API functions fail
  33940  winmm/mci tests hang on PC-BSD
  34230  SWGEmu crashes everytime it tries to load
  34271  Artemis 2.0 crashes when loading the splash screen
  34330  Wine64 does not work on FreeBSD
  34864  Call of Duty: Ghosts needs psapi/kernel32 K32EnumProcessModulesEx
  35076  Multiple applications/installers fails due to SWbemLocator::ConnectServer being a stub (PSPad 4.5.7, Nitro PDF Professional 6.2.x, eTax 2008, GOG.com games)
  35167  Atom Zombie Smasher, Warhammer 40K: Dawn of War GOTY (Winter Assault) on Steam doesn't start with Wine Mono 4.5.2
  35173  Loud audio distortion using wine 1.7.6 and up.
  35230  Macromedia Freehand 9 demo: invalid path for file association default icon causes stack overflow in winemenubuilder
  35253  BOINC 5.8.16: uninstall fails
  35364  Multiple applications/installers fail due to WinMGMTS_ParseDisplayName stub (PaintRibbon 1.x, MicroStation V8i)
  35403  dplayx interactive tests crash
  35420  Stronghold Kingdoms crashes due to ID3DXFont PreloadCharacters being a stub.
  35754  WHO Anthro software doesn't work with Mono 4.5.2 (unimplemented System.Configuration.SettingValueElement.Unmerge)
  35971  dsound resampler causing clicks in StarCraft when resampling to 48000
  36092  Microsoft Office 2013 (15.0) and OneNote web installer crashes on unimplemented function IPHLPAPI.DLL.CreateSortedAddressPairs
  36703  PlayOn 3.9.13 settings tool fails to detect system memory size (needs 'Win32_OperatingSystem' WMI class 'TotalVisibleMemorySize' property)
  36777  vSphere 5.5 client 'hcmon.sys' driver crashes on unimplemented function ntoskrnl.exe.IoCsqInitialize
  36785  Hero Lab 5.x fails to retrieve updates
  36822  Multi Theft Auto: San Andreas 1.3.5 'FairplayKD.sys' driver crashes on unimplemented function ntoskrnl.exe.KeSetSystemAffinityThread
  36844  Multiple games need X3DAudio1_7.dll (BeamNG v0.3 Tech Demo, Doom 3 BFG Edition)
  36937  WinHttpReceiveRequest goes into infinite blocking on 304 responses
  36991  WSAStringToAddress("2001::1", AF_INET, …) appears to succeed.
  37265  MaxQuant 1.4/1.5 (.NET 4.5 app) needs named entry point 'Shell32.dll.SHILCreateFromPath' in 'Windows Vista' mode
  37333  winefile command line does not support paths with spaces
  37423  YouTube Downloader crashes
  37565  Skype crashes trying to chat with anyone
  37658  Endless Space crashes on startup
  37684  Free YouTube to MP3 Converter 3.12 installer crashes on unimplemented function msvcr120.dll._wcsset_s
  37700  Propellerhead Reason 8 needs COMCTL32.dll.381 LoadIconWithScaleDown()
  37701  Propellerhead Reason 8 needs mfplat.dll.MFStartup
  37714  Personal Ancestral File 5 crashes when a new line is added in 'Notes' panel
  37723  Elevated demo silently exits
  37727  Saya no Uta: sound is all over the place after update
  37735  Propellerhead Reason 8 installer complains "interface not supported" during install
  37752  Airport Tycoon 2 demo fails to load with built-in msvcp70
  37757  Windows 8.1 Media Creation Tool: crashes due to unimplemented function VERSION.dll.GetFileVersionInfoSizeExW
  37768  hh.exe
  37783  N1MM PLUS Logger 1.0 (.NET 4.0 app) crashes on launch (failure to parse registration-free COM/ActiveX info from app manifest)
  37787  Cannot install Olympus Viewer 3
  37794  Bus Simulator 2012 crashes on startup
  37817  Autocad2006 crashes on unimplemented function msvcp70.dll.??0?$basic_ifstream@DU?$char_traits@D@std@@@std@@QAE@PBDH@Z
  37836  SteuerSparErklärung 2015: crashes when starting a new tax case
  37839  Unable to license IAR Embedded Workbench Kickstart Edition 6.x/7.x (License Manager needs 'Win32_ComputerSystemProduct' WMI class)
  37844  PTC Mathcad Prime 3.0 Web installer crashes ('Win32_LogicalDisk' WMI class needs to provide 'VolumeName' property)
  37848  For loop %~$PATH:I feature works incorrect - PATH variable size limited by MAX_PATH

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

Changes since 1.7.33:

Aidan Thornton (1):
      quartz: Implement IFilterGraph2::AddSourceFilterForMoniker.

Akihiro Sagawa (2):
      advapi32: Remove unused parameter.
      advapi32/tests: Add more KEY_WOW64_32KEY tests for 64-bit.

Alex Henrie (4):
      kernel32/tests: Add tabular UTF-7 encoding tests.
      x3daudio1_7: Add stub DLL.
      dpvoice: Decrement reference count in Release functions.
      kernel32/tests: Add tabular UTF-7 decoding tests.

Alexandre Julliard (1):
      winspool.drv: Don't crash if the ppd directory cannot be created.

Alistair Leslie-Hughes (1):
      jscript: Support PROPERTYGET in Date Value.

Amine Khaldi (1):
      shdocvw: Fix inverted StopWatch forwards.

Andrew Eikum (5):
      winmm: Allow larger MMTIME sizes.
      mshtml: Support new window targets for FORM elements.
      mmdevapi: More accurately track device position.
      wineoss.drv: Don't use SNDCTL_DSP_GETISPACE.
      dsound: Don't send notify events before played range.

André Hentschel (4):
      loader: Treat BSDs architecture independent for wine64.
      ntdll: Always define UTIME_OMIT if not yet defined.
      configure: Fix check for cms.
      Update copyright info for 2015.

Aric Stewart (1):
      usp10: Correct an off-by-one error in page cache allocation.

Austin English (6):
      comctl32: Add a stub for LoadIconWithScaleDown.
      include: Flesh out IEnumWIA_DEV_INFO.
      version: Add stubs for GetFileVersionInfoSizeExA/W.
      version: Add stubs for GetFileVersionInfoExA/W.
      include/ddk: Add csq.h.
      ntoskrnl.exe: Add a stub for IoCsqInitialize.

Axel Davy (2):
      d3d9/tests: Fix volume_dxt5_test getPixelColor check.
      d3d9/tests: Fix test_3dc_formats getPixelColor check.

Bruno Jesus (13):
      winefile: Allow paths with spaces.
      ws2_32: Ensure an IPv6 is not recognized as IPv4 in WSAStringToAddress.
      wininet: Handle CERT_TRUST_IS_NOT_SIGNATURE_VALID in netconn_verify_cert().
      avifil32: Remove the 1024 frame limit when recording AVI files.
      po: Update Brazilian Portuguese translation.
      po: Update Portuguese translation.
      ws2_32: Better trace __WSAFDIsSet.
      iphlpapi: Add a stub for CreateSortedAddressPairs().
      include: Add support for WS_ prefixed IPX names in wsnwlink.h.
      secur32: Always tell the user that libgnutls could not be loaded.
      cmd: Ensure environment variables fit in memory.
      ws2_32: Print the correct variable.
      ws2_32/tests: Show that send/recv functions set last error to zero on success.

Dmitry Kozliuk (1):
      winecfg: Fix title reset when removing application from the list.

Drew Ronneberg (2):
      winemenubuilder: Prevent recursion by calling open_module_icon() instead of open_icon()
      winemenubuilder: Eliminate an unused variable.

Erich Hoover (1):
      ntdll: Unify retrieving the attributes of a file.

François Gouget (11):
      ws2_32: Add a trailing '\n' to a FIXME() call.
      jscript: Add a trailing '\n' to an ok() call.
      shell32: Fix a trailing '\n' in a FIXME() call.
      shell32: Fix the IDS_PERSONAL hardcoded default.
      shell32: Reset pszHome if it's not usable so we don't try to reuse it when setting up the Desktop symlink.
      mshtml: Make create_document_fragment() static.
      winex11.drv: Make X11DRV_PALETTE_ComputeColorShifts() static.
      combase: Remove an unused default debug channel.
      dwrite: Make free_glyph_outline() static.
      riched20: Move DestroyIRichEditOle() into IRichEditOle:Release().
      ws2_32: Add a trailing '\n' to a TRACE() call.

Gerald Pfeifer (1):
      wordpad: Avoid an out-of-bounds array access in registry_set_filelist.

Hans Leidekker (19):
      mlang: Add a stub implementation of IMultiLanguage3::DetectOutboundCodePageInIStream.
      wininet: Use a helper function to remove request headers.
      wininet/tests: Add a test to show that the Content-Length header is not updated when a request is reused.
      rpcrt4: Make sure the Content-Length header is set correctly when preparing the out pipe.
      winhttp/tests: Use a wait event instead of an unconditional sleep in the server thread.
      advapi32: Return an error from RegSetValueExW if passed a NULL data pointer and non-zero size.
      wbemprox: Implement Win32_LogicalDisk::VolumeName.
      wbemdisp: Add a stub implementation of ISWbemServices.
      wbemprox: Implement Win32_SoundDevice::StatusInfo.
      wbemprox: Implement Win32_VideoController::VideoProcessor.
      wbemprox: Implement Win32_NetworkAdapterConfiguration.DNSHostName.
      wbemprox: Implement Win32_ComputerSystemProduct.UUID.
      xcopy: Ignore the /V option.
      wbemdisp: Add IDispatch support to the services object.
      wbemdisp: Forward SWbemLocator::ConnectServer to IWbemLocator::ConnectServer.
      wbemdisp: Add a stub implementation of ISWbemObject.
      wbemdisp: Add a stub implementation of ISWbemObjectSet.
      wbemdisp: Add support for parsing WMI monikers.
      wbemdisp/tests: Add initial tests.

Henri Verbeet (3):
      wined3d: Reject wined3d_texture_create() calls without explicit level count.
      wined3d: Allow initial texture contents to be specified with wined3d_texture_create().
      wined3d: Specify the initial texture contents with wined3d_texture_create() in wined3d_device_create_cursor_texture().

Hugh McMaster (2):
      msvcrt: Fix a spelling error.
      msvcrt/tests: Add more tests for _vsnwprintf.

Jacek Caban (29):
      mshtml: Resolve duplicated IDispatch entries as soon as they are processed.
      jscript: Added test of Date object default value.
      mshtml: Added IHTMLStyle::styleFloat attribute implementation.
      mshtml: Improved IHTMLStyle3::zoom stub.
      mshtml: Handle VT_ERROR in IHTMLSelectElement::add.
      mshtml: Added IHTMLElement4::focusin semi-stub implementation.
      d3d11.idl: Added D3D11_APPEND_ALIGNED_ELEMENT declaration.
      mshtml: Added IHTMLDOMTextNode::splitText implementation.
      mshtml: Include nsbody reference in cycle collection.
      mshtml: Added IHTMLElement::get_isTextEdit implementation.
      urlmon: Store URLs as const char* in mime_tests.
      urlmon: Skip query and hash part in find_mime_from_url.
      urlmon: Use find_mime_from_ext directly in file protocol handler.
      mshtml: Treat empty bstrHref as not specified in IHTMLDocument2::createStyleSheet.
      mshtml: Added nsIEmbeddingSiteWindow::GetDimensions implementation.
      mshtml: Added screenLeft and screenTop properties implementation.
      mshtml: Use standard list to store task queue.
      mshtml: Flush pending document node tasks before firing onload event.
      mshtml: Delay onreadystateevent notification if script elemenet is not added by parser.
      mshtml/tests: Added script element readyState and onreadystatechange tests.
      mshtml: Correctly handle NULL active element in IHTMLDocument2::get_activeElement.
      mshtml: Allow '#' to be the first char of resource name in res protocol.
      mshtml: Introduced new representation of range point and use that in range_to_string instead of trying to iterate by nodes.
      mshtml: Reimplemented IHTMLTxtRange::moveStart using new range point representation.
      mshtml: Use new end point representation in IHTMLTxtRange::expand("word") implementation.
      mshtml: Use new range point representation in all cases.
      include: Added d3d11_1.idl.
      mshtml: Use document encoding for scripts.
      mshtml: Use debugstr_mshtml_guid in omnavigator.c.

Janis Lukss (1):
      wine.inf: Added ProductId registry key also to "Windows NT".

Jon Doron (1):
      kernel32: Fix write_raw_resources to support 32 and 64 PE formats.

Jonathan Vollebregt (2):
      reg/tests: Test for integer overflow.
      reg/tests: Test REG_NONE.

Ken Thomases (2):
      winemac: Ignore Cocoa child windows which aren't instances of WineWindow.
      shell32: Don't append a trailing space to the arguments in a shell link if the command info has an empty parameters string.

Mark Harmstone (11):
      dsound: Remove unused struct entries.
      dsound: Use array for channel volumes.
      winealsa: Return PKEY_AudioEndpoint_PhysicalSpeakers device prop.
      dsound: NOP on SetSpeakerConfig.
      dsound: Get speaker config from mmdevice props.
      winealsa: Support up to 6 channels.
      include: Add xaudio2.h.
      dsound: Parse speaker config.
      dsound: Do not use panning to set sound position.
      dsound: Support quadraphonic sound.
      dsound: Support 5.1 sound.

Martin Storsjo (3):
      combase: Implement creation and deletion of HSTRING objects.
      combase: Implement functions for accessing HSTRING objects.
      combase: Implement functions for HSTRING_BUFFER.

Marton Balint (1):
      dsound: Convert freqAdjust and freqAcc to integers.

Matteo Bruni (6):
      d3d9/tests: Remove a couple duplicate lines.
      winemac: Make the implementation of clearToBlackIfNeeded compatible with core contexts.
      winemac: Implement wglCreateContextAttribsARB.
      wined3d: Inline GL_EXT_FUNCS_GEN in load_gl_funcs.
      wined3d: Prefer the core glActiveTexture function.
      wined3d: Use the core version of the glBlend* functions.

Michael Stefaniuc (11):
      oleaut32/tests: Remove duplicated subexpressions (PVS-Studio).
      d3d9: Don't assert for shaders with the wrong vtbl.
      mapi32/tests: Test the correct return code (PVS-Studio).
      mscms: Remove always false if subexpression (PVS-Studio).
      msvfw32: Remove always false if subexpression (PVS-Studio).
      mlang/tests: Avoid always true ok() checks (PVS-Studio).
      netapi32: Remove always true conditional expression (PVS-Studio).
      oledb32/tests: Simplify some ok() checks (PVS-Studio).
      quartz: Remove always true if subexpression (PVS-Studio).
      quartz: Remove an unused variable (PVS-Studio).
      quartz: Simplify code flow logic (PVS-Studio).

Nikolay Sivov (34):
      gdi32: Remove some useless returns.
      dwrite: Initial GetGlyphRunOutline() implementation.
      dwrite: Support outlines with oblique simulation.
      dwrite: Font collection pointer is never null when creating text format.
      dwrite: Release system collection pointer after using it, not before.
      dwrite: Added stub EUDC font collection.
      shell32: Added stub IPropertyStore for a shell link object.
      dwrite: Split each text range into runs by script.
      dwrite: Split runs according to BiDi levels.
      dwrite: Store nominal breakpoint data in layout.
      dwrite: Update breakpoints in case of inline objects.
      ntdll: Accept asm.v2 as default namespace.
      ntdll: Fix 'description' element parsing to allow empty elements.
      msdmo: Registry API functions don't return HRESULT codes.
      msdmo: Fix RegOpenKeyExW() failure condition.
      ole32: Return END_OF_CHAIN for chains starting with special sector values.
      dwrite: Cleanup layout instance creation, handle memory allocation failures.
      dwrite: Set string pointer in run description when splitting by bidi levels.
      msdmo: Use specified category in DMOUnregister().
      msdmo: Fix DMOUnregister() when running on clean wineprefix.
      ntdll: Skip context dependencies that have allowDelayedBinding attribute set.
      dwrite: Store locale name for each text range.
      dwrite: Release FreeType resources on dll unload.
      dwrite: Fix range comparison by locale name.
      dwrite: Support family name attribute for ranges.
      dwrite: Unify temp value variable name.
      dwrite: Move range bounds check to an attribute setting helper.
      oleaut32: Use CoTaskMem* functions for safearrays.
      dwrite/tests: Fix buffer overflow when filling test string.
      dwrite: Create fontface instance for each run.
      dwrite: Store cluster map and glyph indices for each run.
      dwrite: Set glyph advances and offsets for each run.
      dwrite: Store additional properties for gdi-compatible layouts.
      dwrite: Use gdi-compatible placements in case of gdi-compatible layouts.

Piotr Caban (9):
      msvcrt: Add _wcsset_s implementation.
      msvcp70: Fix basic_filebuf definition.
      msvcp70: Fix ios_base definition.
      msvcr120: Add _fdtest function implementation.
      user32: Only store dialog focus when window is hidden or inactive.
      msvcp70: Add basic_ifstream(name, mode) constructor implementation.
      winex11.drv: Don't resize hidden windows on ConfigureNotify event.
      msvcp: Fix setting decimal point and thousands separator in numpunct_wchar__Init.
      msvcp: Fix format parsing in time_put_wchar_put_format.

Sebastian Lackner (5):
      include: Add mferror.h header.
      mfplat: Implement stubs for MFStartup and MFShutdown.
      kernel32: Return proper char count in get_registry_locale_info.
      shlwapi: Add implementation for StrCatChainW.
      psapi: Implement semi-stub for K32EnumProcessModulesEx.

Sergey Kalinichev (1):
      ntdll: Add stub for RtlSetHeapInformation.

Seán de Búrca (1):
      kernel32: Implement Get{Time,Date}FormatEx.

Stefan Leichter (3):
      shell32: Export SHILCreateFromPath by name too.
      ntoskrnl.exe: Add stub for KeSetSystemAffinityThread.
      ntoskrnl.exe: Emulate instruction mov eax,cr4.

Yifu Wang (1):
      msvcp120: Implemented xtime functions.

--
Alexandre Julliard
julliard@winehq.org
