The Wine development release 1.3.10 is now available.

What's new in this release (see below for details):
  - Support for notification balloons in system tray.
  - Obsolete AudioIO sound driver removed.
  - More work on ActiveX support.
  - Various MSI fixes.
  - Preloader now used for 64-bit too. 
  - Translation updates.
  - Various bug fixes.

The source is available from the following locations:

  http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.3.10.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-1.3.10.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.3.10:

   4432  Blobby Volley - corrupted graphics
   7304  WRC (Wine Resource Compiler) preprocessing is buggy
   7431  Xilinx picoblaze assembler kcpsm3 crashes
   7922  Language settings not found and strange Day Error in EWRevenge (bug in oleaut32)
  11449  ExpressPCB 6.1.2 crashes when updating pricing
  12744  Steam tray icon doesn't appear if panel hidden in autohide mode
  12808  indexed bitmaps support is broken
  12828  Arcade Pool 2: Game crashes after several seconds
  14922  no ingame sound in drakensang
  15003  VB6 crashes when triing enter a program code
  15041  Guild Wars: Typing into Char Fields
  15257  Changing from OpenGL to Direct3D output in WinUAE results in blank screen
  15882  while wine application is running fullscreen ekiga incoming call popup doesn't appare
  16489  Falcon 4.0 AF: Updater does not work, check fails
  16672  Marie La Cavalière: Unhandled exception
  16703  Wineconsole: Fallback from curses to window based backend
  16704  wineconsole: Allow specifying the console backend to use when wineconsole is launched implicitly
  16914  wrc chokes on a file which is accepted by windows rc
  18075  IE8 crashes due to missing urlmon.dll.423 API
  18230  Romanian translation wrong
  18484  Charma: too slow and there's a problem with the pointer
  18497  Gothic 3: Failure at starting new game
  18768  Madden NFL 08 regression: program doesn't start
  19314  IE8 for Server 2003 refuses to install (Service Pack 2 for Windows Server 2003 install required)
  19565  Guitar Hero World Tour does not produces any sound (except videos)
  20311  Blitzkrieg game crashes when selecting 'Allies campaign' (failed to save document to IStream)
  20552  Memory leak in alloc_thread_tls?
  20842  Python: ctrl-c and ctrl-d do not work in wineconsole [dogfood]
  21173  choice.exe missing, needed by some cmd scripts
  21245  file operations are very slow or hangs solidworks
  22487  tray icons broken with ubuntu 10.04 for some users (affects utorrent 2.0.1, autohotkey)
  23028  Empire Earth 1.00 and 1.04 mirrored cursor on vertical move
  23089  Grass rendering bug in S.T.A.L.K.E.R clear sky/call of pripyat
  23378  Desktop launchers generated by new Steam UI are broken
  24294  corrupted icons in SolidWorks sketches
  24323  Need for speed 3 crashes on startup
  24680  loader: segfault after  loading krnl386.exe, while LoadLibraryEx for any buildin dll
  24866  Unhandled exception in Windows Double Explorer (IExplorerBrowser_fnSetPropertyBag)
  25040  Icons in system tray area are blank
  25059  dotnet30 install completion window minimized, needs balloon tooltip
  25155  Creative Writer 2 only installs in Win9x modes on WoW64
  25283  Unimplemented function urlmon.dll.410
  25301  Occasional sock_check_pollhup() error on Solaris
  25452  office2000 reconfiguration gives msi crash
  25484  NewsLeecher 'send to tray' broken
  25510  Wine-generated desktop files are not compliant with XDG standard
  25513  Wine Software Uninstaller crashes
  25529  64-bit Internet Explorer 7/8 refuse to install
  25545  64-bit wine loader broken (in win64 mode)

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

Changes since 1.3.9:

Albert Pool (1):
      winecfg: Update Dutch translation.

Alexander Morozov (3):
      wincrypt.h: Define PFN_CMSG_IMPORT_KEY_TRANS callback function.
      crypt32: Implement decoding enveloped messages.
      crypt32: Implement getting content and some parameters from a decoded enveloped message.

Alexandre Julliard (54):
      user32: Fix coordinates mapping for the desktop window in the explorer process.
      winex11: Fix event coordinates mapping for the root window in the explorer process.
      comctl32: Fix positioning of tracking tooltips at the bottom of the screen.
      windowscodecs: Convert the coclasses registration to the IRegistrar mechanism.
      urlmon: Convert the coclasses registration to the IRegistrar mechanism.
      itss: Convert protocol registration to the IRegistrar format.
      actxprxy: Convert dll registration to the IRegistrar mechanism.
      dispex: Convert dll registration to the IRegistrar mechanism.
      qmgrprxy: Convert dll registration to the IRegistrar mechanism.
      user32: Don't call GetModuleFileNameW under the user lock.
      wineboot: Set the correct architecture in the process identifier variable.
      kernel32: Update the environment variables that vary across 32-bit/64-bit/Wow64.
      wine.inf: Don't set the ProgramFiles environment variables through the registry.
      ntdll: Ensure alignment of static TLS data and free it at thread exit.
      krnl386: Fetch version from the PEB to avoid potentially using GetVersionEx before it's initialized.
      winex11: Store information needed for the info balloon in the tray icon structure.
      winex11: Add support for displaying system tray notification balloons.
      winex11: Potentially update the system tray notification position when any foreign window is moved.
      explorer: Store information needed for the info balloon in the tray icon structure.
      explorer: Add support for displaying system tray notification balloons in desktop mode.
      wineboot: Relaunch the 64-bit version of wineboot on Wow64.
      winecfg: Relaunch the 64-bit version of winecfg on Wow64.
      winecfg: Set Wow64 registry keys as well as the 64-bit ones for version information.
      ntdll: Don't worry about the DOS area on non-x86.
      loader: Make sure the new stack is 16-byte aligned in the preloader.
      loader: Use long instead of int in the preloader for anything that can store a pointer.
      loader: Build the preloader for x86-64.
      libwine: Use the 64-bit preloader when starting 64-bit wine.
      libwine: Reserve memory areas for 64-bit in case we don't have a preloader.
      ntdll: Avoid putting the virtual heap in the low 2Gb on 64-bit.
      quartz: Convert coclasses registration to the IRegistrar mechanism.
      avifil32: Move extension registrations to the rgs file.
      widl: Register the PSFactoryBuffer class as factory if it's defined in the idl file.
      msi: Convert the dll registration to the IRegistrar mechanism.
      loader: Define asm functions instead of inlines for x86-64 syscalls to avoid trouble with register constraints.
      wiaservc: Convert coclasses registration to the IRegistrar mechanism.
      include: Correctly define the msxml typelib by directly including xmldom.idl and xmldso.idl.
      include: Add a couple of missing interfaces in msxml2.idl.
      msxml: Add an msxml library that contains the v2.0 msxml typelib.
      msxml: Register the v2.0 classes using the IRegistrar mechanism.
      msxml2: Add an msxml2 library that contains the v2.6 msxml typelib.
      msxml3: Convert dll registration to the IRegistrar mechanism.
      loader: Setup the TLS register on x86-64 for stack protector checks.
      widl: Allow specifying a version for a coclass independently of its typelib version.
      include: Set version to 1.0 for msxml classes.
      hhctrl.ocx: Add a typelib and register it.
      widl: Don't free the input file name since it's stored in various places in the location info.
      widl: Allow specifying a class version outside of a typelib too.
      include: Define the Scriptlet class in mshtml.idl.
      mshtml: Convert the classes registration to the IRegistrar mechanism.
      server: Use the syscall function instead of inline assembly.
      ntdll: Use the syscall function instead of inline assembly.
      libwine: Use the syscall function instead of inline assembly.
      appwiz.cpl: Convert the application list to a standard Wine list.

Anders Jonsson (1):
      cmd: Update Swedish translation.

Andrew Bogott (1):
      winemenubuilder: In InvokeShellLinkerForURL, better replicate the deferral behavior in InvokeShellLinker.

André Hentschel (22):
      msi: Fix test failure on some 2k3 machines.
      advapi32: Fix test failure on some NT4 machines.
      ntdll: Fix test failure on some NT4 machines.
      rsaenh: Fix test failure on some NT4 machines.
      wrc: Allow comma after popup name.
      shell32: Fix shelllink test to not crash on NT4.
      shdocvw: Add Resizer control to the iexplore window.
      gphoto2.ds: Fix German translation.
      include: Add winhttp secure protocol flags.
      msi/tests: Remove superfluous check.
      gameux: Fix test failures on Wine wow64.
      gameux: Fix Path for the statistics.
      sane.ds: Fix translation of microsecond.
      wininet: Update German translation.
      include: Add ERROR_INTERNET_FORTEZZA_LOGIN_NEEDED for wininet tests.
      include: Add new suite masks.
      wininet: Fix German translation.
      shlwapi/tests: Allow Win7 behaviour for SHFormatDateTimeW.
      qmgr/tests: Use a temporary path to avoid failures.
      shell32/tests: Fix a typo.
      advapi32: Print a FIXME also for the unknown levels.
      gameux: Fix another test failure on Wine wow64.

Austin English (4):
      ntdll: Bump win2k3 version information to sp2.
      urlmon: Add stubs for ordinals 410 and 423.
      mscoree/tests: Fix a broken test (LLVM/Clang).
      quartz: Avoid %L in traces (LLVM/Clang).

Cheer Xiao (2):
      view: Update simplified Chinese translation.
      write: Update simplified Chinese translation.

Damian Dixon (1):
      advapi32: Added check for NULL pointer being passed to QueryServiceStatus for either parameter.

David Bartley (1):
      iphlpapi: Add CancelIPChangeNotify stub.

David Hedberg (14):
      urlmon: Set BINDF_NEEDFILE if BINDF_PULLDATA is not specified.
      wininet: Respect SECURITY_FLAG_IGNORE_CERT_DATE_INVALID.
      wininet: Make module handle scope global.
      wininet: Add a simple certificate dialog to InternetErrorDlg.
      shell32: Fix ExplorerBrowser::SetRect to work properly when passed a NULL-valued hdwp.
      shell32: Return S_OK in ::SetPropertyBag.
      include: Add IShellItem2 interface declaration.
      shell32: IShellItem::GetAttributes should also work on the desktop shellfolder.
      shell32: Add IShellItem2 stub to ShellItem implementation.
      include: Add a few INET_E_ defines.
      urlmon: Split the code for sending an http request into its own function.
      urlmon: Fix return value from QueryService.
      shell32: Standardize the COM usage in ebrowser.c.
      shell32: Add IInputObject stub to ExplorerBrowser.

Detlef Riekenberg (5):
      cmd: Allow GOTO to a label which has a following whitespace, with test.
      configure: Ask for the correct development package for gstreamer base plugins.
      cmd: Add CHOICE builtin with DOS6 to XP commandline parameter.
      cmd: Add german translation for CHOICE.
      cmd: Do not reset errorlevel during SET.

Eric Pouech (3):
      kernel32: When reading chars out of a bare console, use the Unix API (instead of the Windows one).
      kernel32: Proper support for echo-input (enable/disable) when getting console input.
      kernel32: In readline, now print control characters with ^ escape.

Eryk Wieliczko (1):
      msvcrt/tests: Add _fcvt_s tests.

Francois Gouget (4):
      shdocvw: Fix compilation on systems that don't support nameless unions.
      mshtml: Fix a typo and remove a space before a '\n' in a FIXME() trace.
      msvcrt/tests: Add a trailing '\n' to an ok() call.
      Assorted spelling fixes.

Frédéric Delanoy (3):
      cmd: Update French translation.
      wininet: Update French translation.
      wininet: Update French translation.

Greg Geldorp (6):
      kernel32/tests: Add tests to verify USERPROFILE and environment variables from registry are present and correct.
      rsaenh/tests: CryptGetKeyParam doesn't fail on Win7/Win2K8R2.
      kernel32/tests: Quote command line arguments that might contain spaces.
      kernel32/tests: Remove check of environment variables against registry.
      ntdll/tests: Add alternative results for overlong instructions.
      shdocvw/tests: Need to save .url before committing extra props for IE6.

Hans Leidekker (16):
      msi: Support MSIRUNMODE_LOGENABLED in MsiGetMode.
      rpcrt4: Add a stub implementation of RpcMgmtSetAuthorizationFn.
      wineboot: Set the USERDOMAIN environment variable.
      msi: Return INSTALLSTATE_UNKNOWN from MsiGetComponentState if the component is disabled.
      msi: Rewrite command line parsing to handle quoted values correctly.
      msi: Add some traces.
      msi: Global and local win32 assembly names are formatted differently.
      msi: Don't flag an error in the InstallServices action if the component does not exist.
      msi: Remove an incorrect error trace.
      uninstaller: Run msiexec if the WindowsInstaller value is set.
      uninstaller: Fix a leak.
      appwiz.cpl: Run msiexec if the WindowsInstaller value is set.
      msi: Set the Preselected property if the default feature selection is modified in a dialog.
      msi: Set the install level to the maximum if the requested install state is not the default.
      msi: Use a function to determine if a feature is selected.
      msi: Change ACTION_UpdateComponentStates to take a feature pointer.

Henri Verbeet (17):
      wined3d: Pass an IWineD3DBaseShaderImpl pointer to shader_generate_arb_declarations().
      wined3d: Pass an IWineD3DBaseShaderImpl pointer to shader_generate_glsl_declarations().
      wined3d: Pass an IWineD3DBaseShaderImpl pointer to shader_destroy().
      wined3d: Pass an IWineD3DBaseShaderImpl pointer to shader_cleanup().
      wined3d: Avoid some interface pointers in set_glsl_shader_program().
      wined3d: Pass implementation pointers to generate_param_reorder_function().
      wined3d: Store implementation pointers in struct glsl_shader_prog_link.
      wined3d: Store implementation pointers in glsl_program_key_t.
      wined3d: Pass implementation pointers to get_glsl_program_entry().
      wined3d: Pass an IWineD3DBaseShaderImpl pointer to shader_get_registers_used().
      wined3d: Pass an IWineD3DBaseShaderImpl pointer to shader_generate_main().
      wined3d: Store an IWineD3DBaseShaderImpl pointer in wined3d_shader_context.
      wined3d: Pass an IWineD3DBaseTextureImpl array to pixelshader_update_samplers().
      wined3d: Pass an IWineD3DBaseTextureImpl pointer to basetexture_unload().
      wined3d: Pass an IWineD3DBaseTextureImpl pointer to basetexture_cleanup().
      wined3d: Pass an IWineD3DBaseTextureImpl pointer to basetexture_get_level_count().
      kernel32: Fix some memory leaks in set_wow64_environment().

Huw Davies (9):
      fonts: Fix the metrics of the extended integral and brace glyphs.
      ole32: Rewrite the OleAdviseHolder's STATDATA enumerator to be a generic STATDATA enumerator.
      include: Add GLYPHSET flag define.
      gdi32: Clear the accel flags.
      ole32: Remove some useless comments.
      ole32: Use a STATDATA array to hold the connection data.
      ole32: Allow the EnumSTATDATA constructor to take a sparse array.
      ole32: Implement IDataAdviseHolder_EnumAdvise.
      ole32: Standardize the COM usage.

Hwang YunSong (16):
      sane.ds: Update Korean resource.
      browseui: Update Korean resource.
      clock: Update Korean resource.
      cmdlgtst: Update Korean resource.
      comctl32: Update Korean resource.
      comdlg32: Update Korean resource.
      credui: Update Korean resource.
      crypt32: Update Korean resource.
      cryptdlg: Update Korean resource.
      cryptui: Update Korean resource.
      cmd: Update Korean resource.
      gphoto2.ds: Update Korean resource.
      hhctl.ocx: Update Korean resource.
      iccvid: Update Korean resource.
      localspl: Update Korean resource.
      localui: Update Korean resource.

Jacek Caban (38):
      mshtml: Fixed tests on IEs not supporting INewWindowManager.
      mshtml: Call DoVerb on embedded plugin.
      mshtml: Added support for plugin in place activation.
      mshtml: Deactivate plugin when detaching from document.
      mshtml: Added PluginHost::GetWindowContext implementation.
      mshtml: Added more plugin in place activation support.
      mshtml: Added more ActiveX tests.
      mshtml: Added OnUIActivation implementation.
      mshtml: Added IOleContainer stub implementation.
      mshtml: Added PluginHost::GetContainer implementation.
      mshtml: Forward PluginHost's QueryService calls to window object.
      mshtml: Fixed tests on some IE6 installations.
      mshtml: Removed undocumented, internal stubs exported only by old IEs.
      jscript: Move some of registration process to IRegistrar mechanism.
      mshtml: IHTMLDocument2 iface handling clean up.
      winetest: Make win9x unsupported.
      shdocvw: Share get_LocationURL implementation between WebBrowser and InternetExplorer objects.
      shdocvw: Moved getting dochost pointer to separated function.
      shdocvw: Added support for QueryService(IID_IWebBrowserApp).
      mshtml: Added IHTMLObjectElement::get_object implementation.
      mshtml: Added support for forwarding object element's DOM calls to ActiveX control.
      mshtml: Improved QueryService debug traces.
      mshtml: Improved IOmNavigator::javaEnabled stub.
      mshtml: Added IHTMLScriptElement::get_scr implementation.
      mshtml: Added IHTMLStyleElement::media property implementation.
      mshtml: Added IHTMLStyleElement::type property implementation.
      appwiz.cpl: Correctly handle NULL params in CPL_STARTWPARAMSW handler.
      jscript: Added Date.setYear implementation.
      urlmon: Added IUriContainer stub implementation of URLMoniker object.
      mshtml: Fixed IOleUndoManager::QueryInterface implementation.
      jscript: Exception tests clean up.
      aclocal.m4: Recognize mingw-w64 as 32-bit cross compiler.
      urlmon: Added more IInternetProtocolEx tests.
      mshtml: Added GUID_CUSTOM_CONFIRMOBJECTSAFETY with CONFIRMSAFETYACTION_LOADOBJECT flag tests.
      urlmon: Converted more registration process to IRegistrar mechanism.
      mshtml: Get rid of no longer used GECKO_DATADIR.
      urlmon: Make protocol tests more verbose.
      include: Added macros for unions and structs that should remain nameless regardless NONAMELESSUNION/NONAMELESSSTRUCT definition.

Jerome Leclanche (1):
      winemenubuilder: Add a trailing semicolon to MimeType in desktop files.

Joel Holdsworth (1):
      shdocvw: Added missing rendering directive to ietoolbar.svg.

Juan Lang (1):
      crypt32: Accept any matching CN when checking a certificate's name.

Kirill Smelkov (1):
      kernel32: Support deleting resources in UpdateResource.

Luca Bennati (2):
      cmd: Update Italian translation.
      wininet: Update Italian translation.

Maarten Lankhorst (5):
      quartz: Handle seeking while running better.
      quartz: Fix a race condition in videorenderer endflush.
      quartz: Handle EndOfStream more elegantly in dsound renderer.
      winegstreamer: Silence a harmless fixme.
      winegstreamer: Correct a state transition.

Marcus Meissner (2):
      kernel32: Fixed size to GetEnvironmentVariableW.
      configure.ac: Add -Wlogical-op, if it's not noisy.

Martin Storsjo (2):
      wineconsole: Fallback to window based console if the curses library isn't found.
      wineconsole: Don't overwrite the backend selection when parsing --use-event.

Michael Stefaniuc (69):
      clock: Add the Malayalam translation.
      clock: Add the Telugu translation.
      clock: Add the Oriya translation.
      clock: Add the Punjabi translation.
      oleaut32: Standardize the COM usage in connpt.c.
      mmdevapi: Standardize the COM usage in devenum.c.
      msctf/tests: Standardize the COM usage in inputprocessor.c.
      ole32/tests: Standardize the COM usage in clipboard.c.
      shlwapi/tests: Standardize the COM usage in ordinal.c.
      oleaut32/tests: Use an iface instead of an vtbl pointer in IRecordInfoImpl.
      msi: Use an iface instead of an vtbl pointer in IClassFactoryImpl.
      msi: Use an iface instead of a vtbl pointer in msi_custom_remote_impl.
      msi: Use an iface instead of a vtbl pointer in msi_remote_package_impl.
      msi: Use an iface instead of a vtbl pointer in msi_remote_database_impl.
      ole32: Use ifaces instead of vtbl pointers in FTMarshalImpl.
      ole32: Standardize the COM usage in moniker.c.
      msxml3: Use an iface instead of a vtbl pointer in domattr.
      msxml3: Use ifaces instead of vtbl pointers in xmlnodemap.
      msxml3: Use an iface instead of a vtbl pointer in domcdata.
      msxml3: Use an iface instead of a vtbl pointer in entityref.
      msxml3: Use an iface instead of a vtbl pointer in domtext.
      msxml3: Use an iface instead of a vtbl pointer in domelem.
      msxml3: Use an iface instead of a vtbl pointer in xmlnodelist.
      msxml3: Use an iface instead of a vtbl pointer in dom_pi.
      msxml3: Use an iface instead of a vtbl pointer in domcomment.
      msxml3: Use an iface instead of a vtbl pointer in domimpl.
      msxml3: Use an iface instead of a vtbl pointer in domdoctype.
      msxml3: Use an iface instead of a vtbl pointer in domfrag.
      windowscodecs: Use ifaces instead of vtbl pointers in PngEncoder.
      oleaut32: Use ifaces instead of vtbl pointers in OLEFontImpl.
      ole32: Standardize the COM usage in clipboard.c.
      shell32: Use an iface instead of a vtbl pointer in ShellItem.
      winecfg: Remove the support to configure the audioio driver sound.
      Remove the audioio sound driver. It is unused.
      winapi: Remove support for wineaudioio.drv. wineaudioio.drv is no more.
      hnetcfg: Standardize the COM usage in apps.c.
      hnetcfg: Use an iface instead of an vtbl pointer in fw_manager.
      hnetcfg: Use an iface instead of an vtbl pointer in fw_policy.
      hnetcfg: Standardize the COM usage in port.c.
      hnetcfg: Use an iface instead of an vtbl pointer in fw_profile.
      hnetcfg: Standardize the COM usage in service.c.
      d3dx9_36: Use an iface instead of an vtbl pointer in ID3DXLineImpl.
      wmiutils: Use an iface instead of an vtbl pointer in status_code.
      sane.ds: The Da, En, Fi, Fr, Nl, Pt resources are using UTF-8.
      d3dx9_36: Use an iface instead of an vtbl pointer in ID3DXConstantTableImpl.
      qcap: Use ifaces instead of vtbl pointers in VfwCapture.
      oleaut32/tests: Standardize the COM usage in tmarshal.c.
      oleaut32: Standardize the COM usage in tmarshal.c.
      ole32: Standardize the COM usage in git.c.
      mshtml: COM cleanup for the IHTMLDocument3 iface.
      mshtml: COM cleanup for the IHTMLDocument4 iface.
      mshtml: COM cleanup for the IHTMLDocument5 iface.
      mshtml: COM cleanup for the IHTMLDocument6 iface.
      mshtml: COM cleanup for the IPersist* ifaces in HTMLDocument.
      msxml3: Use ifaces instead of vtbl pointers in xmldoc.
      msxml3: Standardize the COM usage in xmlelem.c.
      msctf: Standardize the COM usage in documentmgr.c.
      inkobj: Remove inkcollector.c as it is dead code.
      avifil32: Use an iface instead of a vtbl pointer in ITmpFileImpl.
      wuapi: Use an iface instead of a vtbl pointer in wucf.
      mshtml: COM cleanup for the IMonikerProp iface.
      mshtml: COM cleanup for the IOleObject iface.
      mshtml: COM cleanup for the IOleDocument iface.
      mshtml: COM cleanup for the IOleDocumentView iface.
      mshtml: COM cleanup for the IOleInPlaceActiveObject iface.
      mshtml: COM cleanup for the IViewObjectEx iface.
      mshtml: COM cleanup for the IOleInPlaceObjectWindowless iface.
      ole32: Use ifaces instead of vtbl pointers in DataCache.
      ole32: Standardize the COM usage in defaulthandler.c.

Nikolay Sivov (8):
      oleaut32/varformat: Fix day string representation format output.
      oleaut32/tests: Test return value without macros.
      oleaut32: Basic parameter validation tests for some GetTypeInfo* methods.
      oleaut32: Fix GetLibAttr for null argument, plus error handling.
      oleaut32: Added ICreateTypeInfo2::SetVarHelpContext().
      oleaut32: Fix null parameters handling in ICreateTypeLib2::CreateTypeInfo().
      oleaut32: Fix ICreateTypeInfo2::SetVarHelpContext() to iterate properly.
      oleaut32: Hide variables and functions count storage details in helpers.

Paul Vriens (1):
      shdocvw/tests: Make sure we use a valid temporary directory.

Piotr Caban (4):
      sane.ds: Convert Polish translation to UTF-8.
      kernel32: Add support for completion routine invocation in ReadDirectoryChangesW.
      server: Handle more inotify mask values.
      kernel32: Added more ReadDirectoryChangesW tests.

Rico Schüller (14):
      d3dcompiler: Handle TAG_OSG5 in D3DGetBlobPart().
      wined3d: Fix memset size in IWineD3DVolumeImpl_Unmap.
      d3dcompiler: Use an iface instead of a vtbl pointer in d3dcompiler_blob.
      d3dcompiler: Use an iface instead of a vtbl pointer in d3dcompiler_shader_reflection.
      d3dcompiler: Parse reflection STAT tag.
      d3dcompiler: Implement ID3D11ShaderReflection::GetMovInstructionCount().
      d3dcompiler: Implement ID3D11ShaderReflection::GetConversionInstructionCount().
      d3dcompiler: Parse ISGN in the reflection interface.
      d3dcompiler: Properly initialize Stream member of D3D11_SIGNATURE_PARAMETER_DESC.
      d3dcompiler: Parse OSGN in the reflection interface.
      d3dcompiler: Parse PCSG in the reflection interface.
      d3dcompiler: Implement ID3D11ShaderReflection::GetInputParameterDesc().
      d3dcompiler: Implement ID3D11ShaderReflection::GetOutputParameterDesc().
      d3dcompiler: Implement ID3D11ShaderReflection::GetPatchConstantParameterDesc().

Yaron Shahrabani (1):
      shlwapi: Added Hebrew translation.

Łukasz Wojniłowicz (5):
      avifile: Update Polish translation.
      wininet: Update Polish translation.
      taskmgr: Update Polish translation.
      cmd: Update Polish translation.
      winecfg: Update Polish translation.

--
Alexandre Julliard
julliard@winehq.org
