The Wine development release 1.3.11 is now available.

What's new in this release (see below for details):
  - PO files now used for translations.
  - Various JavaScript improvements.
  - Some fixes to the Wine debugger.
  - Translation updates.
  - Various bug fixes.

The source is available from the following locations:

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

   2057  When textbox is told to scroll to end of text, it doesn't
   5157  MS Hearts (16 bit) crashes after startup screen
  17816  Crash on startup if an Hercules DJ Console Rmx is connected
  19025  Allods3:Evil_Islands freezes every 10 sec
  19873  Automated installation of gecko requires DOS path to root filesystem
  24932  GTA 3, VC, SA crash
  25231  F-22 Lightning 3 crashes in the options menu
  25404  Super Meat Boy: game is running at insane framerate
  25427  Arcanum crashes in the main menu (when using hardware acceleration)
  25491  BearShare: Fails to install
  25512  Watchtower Library 2010 crashes after splash screen
  25678  'Wine reg add' with longer hive name error
  25704  Movie Collection

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

Changes since 1.3.10:

Adam Martinson (1):
      configure: Fix OpenCL includes on systems with only CL/cl.h.

Alexandre Julliard (58):
      ntdll: Use the getdents64 system call on all Linux platforms.
      ntdll: Use the futex system calls on all Linux platforms.
      ntdll: Use the gettid system call on all Linux platforms.
      server: Use the tgkill system call on all Linux platforms.
      configure: Get rid of the replacement function for gettid.
      configure: Create a wow64 symlink for the preloader too.
      winetest: Refuse to run if the WoW64 side of the registry is missing.
      winex11: Make the tool window flag take precedence when setting the window type.
      winebuild: Allow duplicate resources with different versions and keep the highest version.
      configure: Add a generic mechanism for passing flags to dll and program rules.
      configure: Make the import lib name optional in WINE_CONFIG_DLL.
      wrc: Copy the strmake utility function from winegcc.
      wrc: Explicitly define structure creation functions instead of playing with macros.
      wrc: Store location information in strings.
      wpp: Line and column numbers must start at one.
      ping: Add some missing includes.
      Update copyright info for 2011.
      configure: Output maintainer-mode rules directly from configure.
      makefiles: Automatically add missing source variables in make_makefiles.
      makefiles: Automatically update the EXTRASUBDIRS variable in make_makefiles.
      configure: Fix the bin install rule in wow64 mode.
      Revert "wined3d: Update detection of vertex blend capabilities."
      configure: Add a check for the gettextpo library.
      wrc: Add support for generating .po files from existing resources.
      wrc: Add support for loading translations from po files.
      clock: Convert translations to po files.
      makefiles: Add dependencies on all po files for po-translated resources.
      makefiles: Add rules to rebuild the po files in maintainer mode.
      cmd: Convert translations to po files.
      ipconfig: Convert translations to po files.
      net: Convert translations to po files.
      reg: Convert translations to po files.
      start: Convert translations to po files.
      taskkill: Convert translations to po files.
      uninstaller: Convert translations to po files.
      write: Convert translations to po files.
      xcopy: Convert translations to po files.
      wrc: Do not use translations that are marked fuzzy.
      po: Add missing entry for No key in en_US translation.
      crypt32: Convert translations to po files.
      cryptdlg: Convert translations to po files.
      devenum: Convert translations to po files.
      hhctrl: Convert translations to po files.
      iccvid: Convert translations to po files.
      jscript: Convert translations to po files.
      localspl: Convert translations to po files.
      mapi32: Convert translations to po files.
      msi: Convert translations to po files.
      msrle32: Convert translations to po files.
      msvidc32: Convert translations to po files.
      oleaut32: Convert translations to po files.
      shdoclc: Convert translations to po files.
      winmm: Convert translations to po files.
      wldap32: Convert translations to po files.
      wrc: Treat empty translation strings as missing.
      po: Use more standard names for the Serbian locales.
      kernel32: Update the country code for Serbia.
      po: Update the English po files.

Anders Jonsson (2):
      appwiz.cpl: Update Swedish translation.
      jscript: Update Swedish translation.

Andrew Eikum (4):
      mmdevapi: Store period size in frames.
      mmdevapi: Be explicit about units of ACImpl::bufsize.
      mmdevapi: Be explicit about the units of ACImpl::ofs.
      mmdevapi: Be explicit about units in IAudioRenderClient::ReleaseBuffer.

Andrew Nguyen (18):
      wineboot: Set the FeatureSet value in the volatile CPU registry keys.
      wineboot: Set a placeholder ProcessorNameString value in the volatile CPU registry keys.
      wined3d: Remove references to GLX_SGI_video_sync.
      wined3d: Fix typo in GL_SGIS_generate_mipmap preprocessor definition.
      winex11.drv: Enhance the wrapper functions for WGL_EXT_swap_control.
      wined3d: Handle the swapchain presentation interval with wglSwapIntervalEXT.
      kernel32/tests: Avoid an input buffer overrun in the empty console write test.
      mmsystem.dll16: Correctly map the MCI_SYSINFO_PARMS structure when MCI_SYSINFO_QUANTITY is set.
      kernel32: Fail with an invalid output parameter in GetNumberOfConsoleInputEvents.
      kernel32: Improve parameter validation for WriteConsoleInputW.
      kernel32: Improve parameter validation for WriteConsoleInputA.
      kernel32: Improve parameter validation for WriteConsoleOutputCharacterW.
      kernel32: Improve parameter validation for WriteConsoleOutputCharacterA.
      kernel32: Improve parameter validation for WriteConsoleOutputAttribute.
      kernel32: Improve parameter validation for FillConsoleOutputCharacterW.
      kernel32/tests: Add tests for FillConsoleOutputCharacterA.
      kernel32: Improve parameter validation for FillConsoleOutputAttribute.
      reg: Accept full names of the standard registry hives.

André Hentschel (31):
      setupapi/tests: Better clean up if SetupUninstallOEMInf fails.
      setupapi/tests: Don't test function directly when reporting GetLastError().
      jscript: Update German translation.
      ntdll/tests: Don't test function directly when reporting GetLastError().
      advapi32/tests: Even more tests for the merged view of HKCR.
      setupapi/tests: Don't test function directly when reporting GetLastError().
      dsound/tests: Don't test function directly when reporting GetLastError().
      shell32/tests: Don't test function directly when reporting GetLastError().
      comdlg32/tests: Don't test function directly when reporting GetLastError().
      shlwapi/tests: Don't test function directly when reporting GetLastError().
      urlmon/tests: Don't test function directly when reporting GetLastError().
      riched20/tests: Don't test function directly when reporting GetLastError().
      msi/tests: Don't test function directly when reporting GetLastError().
      shlwapi/tests: Fix typo.
      advapi32/tests: Test how creating a subkey in HKCR affect HKLM/HKCU.
      wininet/tests: Don't call GetLastError() twice.
      advapi32/tests: Don't test function directly when reporting GetLastError().
      mscms/tests: Fix test message.
      riched32/tests: Don't test function directly when reporting GetLastError().
      imagehlp/tests: Don't test function directly when reporting GetLastError().
      ole32/tests: Don't test function directly when reporting GetLastError().
      user32/tests: Don't test function directly when reporting GetLastError().
      shell32/tests: Don't test function directly when reporting GetLastError().
      msvcrt: Forward _setjmp on x86_64.
      advapi32/tests: Don't test function directly when reporting GetLastError().
      gdi32/tests: Don't test function directly when reporting GetLastError().
      appwiz.cpl: Update German translation.
      include: Add more minor shutdown reasons.
      ntdll: Respect multiple CPUs when faking values.
      winemaker: Add def file support.
      user32/tests: Don't test function directly when reporting GetLastError().

Arno Teigseth (1):
      msvcrt: Added _ui64tow_s.

Aurimas Fišeras (4):
      wininet: Update Lithuanian translation.
      cmd: Update Lithuanian translation.
      jscript: Update Lithuanian translation.
      appwiz.cpl: Update Lithuanian translation.

Austin English (1):
      winex11.drv: Use consistent formatting in a TRACE().

Damian Dixon (1):
      advapi32: Implement SetEntriesInAclA by calling SetEntriesInAclW.

Dan Kegel (1):
      include: Remove extra semicolons after a macro that doesn't need them.

David Hedberg (3):
      shell32: Fix test error on certain w2k8 setups.
      urlmon: Move protocol flags for wininet based protocols into a common header.
      urlmon: Add new on_error function to protocol vtbl.

Eric Pouech (10):
      dbghelp: Fix ELF file computation on 64bit systems.
      winedbg: Don't print extra \n in print_basic.
      winedbg: When printing with default format an integer (in hex), keep printed value in sync with integer size.
      urlmon: Fixed traces on 64bit systems.
      msvcr90: Fix an integer overflow on 64 bit system for qsort_s tests.
      dbghelp: Factorize a bit the ELF enumeration callbacks.
      dbghelp: Split elf_load_file into two functions (one for creating a file-map, another one for loading info out of a file-map).
      dbghelp: Use pread instead of read in elf_map_file.
      dbghelp: Extend elf_map_file so that it can also handle ELF maps directly from debuggee address space.
      dbghelp: For targets on Linux, report the VDSO system page as a known ELF module.

Eryk Wieliczko (1):
      msvcrt: Implement _ftime64_s and _ftime32_s.

Francois Gouget (2):
      shdocvw/tests: Fix compilation on systems that don't support nameless unions.
      winemenubuilder: Fix compilation on systems that don't support nameless unions.

Frédéric Delanoy (2):
      appwiz.cpl: Update French translation.
      jscript: Update French translation.

Gerald Pfeifer (6):
      dbghelp: Make ehdr_addr in elf_enum_modules_internal dependent on AT_SYSINFO_EHDR.
      include: Consolidate duplicate declarations of WNetGetLastErrorA, WNetGetLastErrorW and definition of WNetGetLastError.
      comctl32: Remove the last, unused parameter from LISTVIEW_HScroll.
      comctl32: Shed unused parameter from TOOLTIPS_NCCreate.
      cards: Fix description of cdtTerm.
      dbghelp: Also return a value in an error case in elf_map_file_read.

Greg Geldorp (17):
      spoolss/tests: Skip tests on Win7.
      shell32/tests: Support for IShellFolderView::RemoveObject was removed in Win7.
      shell32/tests: Fix race conditions.
      setupapi/tests: Uninstall .pnf if uninstall of .inf failed.
      kernel32/tests: Skip some debugger tests on 64-bit.
      gdi32/tests: Skip test that crashes on 64-bit.
      oledb32: Use correct 32/64-bit typedefs.
      ole32/tests: Fix crashes in usrmarshal.
      user32/tests: Skip DefWindowProc tests on Vista+.
      winmm/tests: Don't use same buffer for both input and output.
      msctf/tests: Wait a bit for registrations to become active on Win7.
      kernel32/tests: Add error codes for XP/Win2003 Wow64.
      msi/tests: Fix some failures on Wow64.
      ole32/tests: Disable target device clipboard tests.
      msi/tests: Fix remaining Wow64 failures for action test set.
      dinput/tests: Skip acquire tests when not running in the foreground.
      gdi32/tests: Fix System font test for Japanese.

Hans Leidekker (1):
      msi/tests: Mark a test result on some old Wow64 platforms as broken.

Henri Verbeet (20):
      wined3d: Pass an IWineD3DBaseTextureImpl pointer to basetexture_set_lod().
      wined3d: Pass an IWineD3DBaseTextureImpl pointer to basetexture_get_lod().
      wined3d: Pass an IWineD3DBaseTextureImpl pointer to basetexture_set_autogen_filter_type().
      wined3d: Pass an IWineD3DBaseTextureImpl pointer to basetexture_get_autogen_filter_type().
      wined3d: Pass an IWineD3DBaseTextureImpl pointer to basetexture_generate_mipmaps().
      wined3d: Pass an IWineD3DBaseTextureImpl pointer to basetexture_bind().
      wined3d: Pass an IWineD3DBaseTextureImpl pointer to basetexture_apply_state_changes().
      wined3d: Pass an IWineD3DBaseTextureImpl pointer to internal_preload().
      wined3d: Use surface_modify_location() to manipulate location flags in IWineD3DSurfaceImpl_Unmap().
      wined3d: Pass an IWineD3DDeviceImpl pointer to delete_opengl_contexts().
      wined3d: Pass an IWineD3DDeviceImpl pointer to create_primary_opengl_context().
      wined3d: Remove IWineD3DBaseTexture::BindTexture() from the public interface.
      wined3d: Pass an IWineD3DResourceImpl pointer to resource_init().
      wined3d: Pass an IWineD3DResourceImpl pointer to resource_cleanup().
      wined3d: Pass an IWineD3DResourceImpl pointer to resource_free_private_data().
      wined3d: Pass an IWineD3DResourceImpl pointer to resource_get_private_data().
      wined3d: Pass an IWineD3DResourceImpl pointer to resource_set_private_data().
      wined3d: Pass an IWineD3DResourceImpl pointer to resource_get_priority().
      wined3d: Pass an IWineD3DResourceImpl pointer to resource_set_priority().
      wined3d: Pass an IWineD3DResourceImpl pointer to resource_get_type().

Huw Davies (4):
      wrc: Initialise variable.
      ole32: Reimplement SendOnDataChange using the connection enumerator.
      ole32: Store the ole advise sinks in a STATDATA array.
      wineps.drv: Explicitly report that we do not support blending.

Hwang YunSong (26):
      mpr: Update Korean resource.
      msacm32: Update Korean resource.
      msi: Update Korean resource.
      msrle32: Update Korean resource.
      msvfw32: Update Korean resource.
      msvidc32: Update Korean resource.
      net: Update Korean resource.
      notepad: Update Korean resource.
      jscript: Update Korean resource.
      oleacc: Update Korean resource.
      oleaut32: Update Korean resource.
      oledlg: Update Korean resource.
      appwiz.cpl: Update Korean resource.
      oleview: Update Korean resource.
      progman: Update Korean resource.
      reg: Update Korean resource.
      regedit: Update Korean resource.
      serialui: Update Korean resource.
      setupapi: Update Korean resource.
      view: Update Korean resource.
      wineboot: Update Korean resource.
      wineconsole: Update Korean resource.
      winedbg: Update Korean resource.
      winefile: Update Korean resource.
      winemine: Update Korean resource.
      wineps.drv: Update Korean resource.

Jacek Caban (30):
      urlmon: Fixed a race in tests causing unexpected Switch call failures.
      jscript: Added ScriptEngine() implementation.
      jscript: Added ScriptEngine*Version functions implementation.
      mshtml: Pass DispatchEx pointer instead of outer IUnknown to DispatchEx's vtbl functions.
      mshtml: Don't use DEFINE_THIS2 for HTMLDOMNode vtbl functions.
      mshtml: Fixed unsafe cast in CreateChromeWindow2 implementation.
      jscript: Better syntax error tests.
      jscript: Pass HRESULTs instead of IDSs to throw_* functions.
      jscript: Use HRESULTs instead of IDSs in parser.
      jscript: Ensure that the whole script is parsed.
      jscript: Moved new_boolean_literal to lex.c.
      jscript: Moved allocating double literal to separated function.
      jscript: Beginning support for conditional compilation.
      jscript: Added conditional compilation tests.
      appwiz.cpl: Added checksum validation of downloaded file.
      jscript: Don't unescape '\v'.
      jscript: Return 'unknown' in typeof operator for native object's values that can't be retrieved.
      jscript: Moved remaining registration to IRegistrar mechanism.
      shdocvw: Get rid of no longer used DOCHOST_THIS.
      msxml3: Don't forward put_nodeTypedValue and put_dataType calls to node IXMLDOMNode iface.
      jscript: Fixed some math API assumption that cause test failures on Solaris.
      mshtml: Added moz-safe-about to the list of Gecko internal protocols.
      mshtml: Make nsIIOService::NewURI IUri-based.
      mshtml: Use IUri for nsURL::[Get|Set]Password implementation.
      mshtml: Don't prefer to forward a few more calls in nsIURL implementation.
      urlmon: Fixed IUriBuilderFactory declaration.
      mshtml: Make nsIURI::Resolve implementation IUri-based.
      msxml3: Get rid of xmlnode_transformNodeToObject.
      mshtml: Avoid obj to iface cast in ProtocolFactory_Create.
      mshtml: Use inline function instead of macro for BSCallback vtbl implementations.

Jeremy Chin (1):
      wined3d: Update detection of vertex blend capabilities.

Ken Thomases (2):
      winemenubuilder: On Mac OS X, keep multiple icon sizes.
      windowscodecs: Use Mac OS X native ICNS support, not libicns.

Lauri Kenttä (1):
      readme: Add Finnish translation.

Luca Bennati (2):
      jscript: Update Italian translation.
      appwiz.cpl: Update Italian translation.

Marcus Meissner (5):
      winealsa.drv: Re-add capcontrols initialization.
      crypt32: NULL ptr could leak into function (Coverity).
      mmdevapi: Fixed buffer size passed to RegEnumKeyExW.
      crypt32: Handle NULL ptr leak in CryptDecodeObjectEx (Coverity).
      jscript: Fixed VT variable type for DISPID_GLOBAL_ISWIN64.

Matteo Bruni (1):
      wined3d: Don't call glPointParameter with a random context.

Michael Stefaniuc (91):
      mshtml: COM cleanup for all the IServiceProvider ifaces.
      mshtml: COM cleanup for all the IOleCommandTarget ifaces.
      mshtml: COM cleanup for the IOleControl iface.
      mshtml: COM cleanup for the IHlinkTarget iface.
      mshtml: COM cleanup for the ISupportErrorInfo iface.
      mshtml: COM cleanup for the IObjectWithSite iface.
      mshtml: COM cleanup for the IHTMLWindow2 iface.
      mshtml: COM cleanup for the rest of the *Window* ifaces in HTMLWindow.
      msxml3: Standardize the COM usage in saxreader.c.
      avifil32: Use an iface instead of a vtbl pointer in IAVIStreamImpl.
      avifil32: Reorder some code to avoid forward declarations for the IAVIStreamVtbl methods.
      avifil32: Use an iface instead of a vtbl pointer in IGetFrameImpl.
      avifil32: Reorder some code to avoid forward declarations for the IGetFrameVtbl methods.
      mshtml: COM cleanup for the nsIWebBrowserChrome iface.
      mshtml: COM cleanup for the remaining ifaces in NSContainer.
      crypt32: Don't open code CONTAINING_RECORD().
      mapi32: Fully merge the IMAPIProp ifaces into IPropData.
      mapi32: COM cleanup for the IPropData iface.
      hlink: Use ifaces instead of vtbl pointers in HlinkImpl.
      oledb32: Use ifaces instead of vtbl pointers in convert.
      msxml3: Use an iface instead of a vtbl pointer in httprequest.
      mshtml: COM cleanup for the IHTMLTxtRange iface.
      mshtml: Use an iface instead of a vtbl pointer in nsProtocolHandler.
      inetcomm: Use an iface instead of a vtbl pointer in cf.
      wbemprox: Use an iface instead of a vtbl pointer in wbemprox_cf.
      msxml3: Use an iface instead of a vtbl pointer in parse_error_t.
      explorerframe/tests: COM cleanup for INameSpaceTreeControlEventsImpl.
      xmllite/tests: Use an iface instead of a vtbl pointer in testinput.
      wmiutils: Use an iface instead of a vtbl pointer in wmiutils_cf.
      hnetcfg: Use an iface instead of a vtbl pointer in hnetcfg_cf.
      sti: Use an iface instead of a vtbl pointer in sti_cf.
      oleaut32/tests: COM cleanup for usrmarshal.c.
      mshtml: COM cleanup for the IHTMLElement iface.
      mshtml: COM cleanup for the IHTMLElement2 iface.
      mshtml: COM cleanup for the IHTMLElement3 iface.
      mshtml: COM cleanup for the IHTMLFiltersCollection iface.
      mshtml: COM cleanup for the IHTMLElementCollection iface.
      mshtml: COM cleanup for the IHTMLDOMNode iface.
      mshtml: COM cleanup for the IHTMLDOMNode2 iface.
      mshtml: COM cleanup for the IHTMLDOMChildrenCollection iface.
      mshtml: COM cleanup for the nsIHttpChannel iface.
      mshtml: COM cleanup for the remaining ifaces in nsChannel.
      urlmon: Use an iface instead of a vtbl pointer in ClassFactory.
      hlink: Use an iface instead of a vtbl pointer in CFImpl.
      rpcrt4: COM cleanup for StdProxyImpl.
      mshtml: COM cleanup for the IDispatchEx iface in HTMLDocument.
      mshtml: COM cleanup for the IDispatchEx iface in HTMLWindow.
      mshtml: COM cleanup for the IDispatchEx iface in DispatchEx.
      mshtml: Remove some stray #undef.
      mshtml: COM cleanup for the IUnknown iface.
      comdlg32: Pass an object instead of an iface to a helper function.
      comdlg32: Use ifaces instead of vtbl pointers in IShellBrowserImpl.
      mshtml: Use ifaces instead of vtbl pointers in HTMLFrameBase.
      mshtml: Use ifaces instead of vtbl pointers in HTMLDocumentNode.
      mshtml: COM cleanup for the IConnectionPoint* ifaces.
      mshtml: COM cleanup for the IHTMLOptionElement* ifaces.
      mshtml: COM cleanup for the IHTMLImageElementFactory iface.
      mshtml: COM cleanup for the IHTMLTextContainer iface.
      mshtml: COM cleanup for the ICustomDoc iface.
      mshtml: COM cleanup for the IHTMLLocation iface.
      mshtml: Use ifaces instead of vtbl pointers in BSCallback.
      mshtml: COM cleanup for the nsIDOMEventListener iface.
      mshtml: COM cleanup for the IHTMLFormElement iface.
      mshtml: COM cleanup for the nsIFactory iface.
      mshtml: COM cleanup for the IHTMLCommentElement iface.
      mshtml: COM cleanup for the IHTMLStyleSheet* ifaces.
      mshtml: COM cleanup for the IHTMLTable iface.
      mshtml: COM cleanup for the IHTMLDOMTextNode iface.
      mshtml: COM cleanup for the IHTMLCurrentStyle iface.
      mshtml: COM cleanup for the IActiveScriptSite* ifaces.
      mshtml: COM cleanup for the IHTMLStyleElement iface.
      mshtml: COM cleanup for the IHTMLStyle iface.
      mshtml: COM cleanup for the IHTMLStyle2 iface.
      mshtml: COM cleanup for the IHTMLStyle3 iface.
      mshtml: COM cleanup for the IHTMLStyle4 iface.
      ole32: COM cleanup for the IEnumSTATSTG iface.
      urlmon: Don't use DEFINE_THIS2 for the Protocol vtbl functions.
      mshtml: COM cleanup for the IHTMLEmbedElement iface.
      hlink: Use ifaces instead of vtbl pointers in ExtensionService.
      atl: Use ifaces instead of vtbl pointers in IOCS.
      mshtml: COM cleanup for the nsIURL iface.
      mshtml: COM cleanup for the nsIInputStream iface.
      mshtml: Use ifaces instead of vtbl pointers in ProtocolFactory.
      windowscodecs: Use an iface instead of a vtbl pointer in BmpFrameEncode.
      mshtml: Finish the COM standardization in protocol.c.
      mshtml: Remove some leftover *_THIS undefs.
      urlmon: Use an iface instead of a vtbl pointer in ProxyBindStatusCallback.
      ole32: COM cleanup for the IMalloc iface.
      msdaps: COM cleanup for the IClassFactory iface.
      oleaut32/tests: COM cleanup for vartest.c.
      shlwapi/tests: COM cleanup for thread.c.

Mikhail Maroukhine (1):
      user32: Add constness to params and variables.

Nikolay Sivov (21):
      oleaut32: Add a helper to return INVOKEKIND flags value.
      oleaut32: Allow all property methods to have the same name.
      oleaut32: Get SYSKIND value with a helper.
      oleaut32: Move common define to a header.
      oleaut32: Get rid of some magic offset values, use structure for that.
      oleaut32: Use function description layout instead of hardcoded byte offsets.
      oleaut32: Get rid of useless comment lines.
      oleaut32: Get function/variable description size with a helper, remove a hardcoded size.
      oleaut32: Update variable description and typeinfo size in ICreateTypeInfo2::SetVarHelpContext().
      oleaut32: Implement ICreateTypeInfo2::SetVarDocString().
      oleview: Fix a crash on null helpstring and name on library level.
      oleview: Fix some crashes on unnamed variables.
      oleview: Fix some crashes on unnamed methods/arguments.
      oleaut32: Use structure size instead of hardcoded values.
      oleaut32/tests: Cleanup some test macros.
      oleaut32: Use alloc/free helpers for all typelib parse methods.
      oleaut32: Use implementation pointer to avoid casts.
      oleaut32: Use IDispatch vtable size instead of hardcoded value.
      oleaut32: Use alloc/free helpers for typelib creation part too.
      oleaut32: Use VARENUM members instead of hardcoded values.
      oleaut32: Do nothing for TKIND_ALIAS types in ::LayOut().

Piotr Caban (1):
      shell32: Improved equal ITEMIDLISTs handling in ILIsParent.

Rex Tsai (3):
      wineboot: Update Traditional Chinese translation.
      setupapi: Update Traditional Chinese translation.
      wininet: Update Traditional Chinese translation.

Rico Schüller (3):
      d3dcompiler: Add initial RDEF parsing.
      d3dcompiler: Add initial SHDR and SHEX parsing.
      d3dcompiler: Implement ID3D11ReflectionInterface::GetDesc().

Stefan Leichter (1):
      setupapi: Add stub for SetupDiSetSelectedDevice.

Sven Baars (6):
      cmd: Fix a typo in the English resource.
      cmd: Update the Dutch translation.
      wininet: Update the Dutch translation.
      appwiz.cpl: Update the Dutch translation.
      jscript: Update the Dutch translation.
      msvcr80: Fix the _ctime32/64_s spec entries.

Thomas Mullaly (3):
      include: Added IDN support functions and types.
      kernel32: Added stubs for IDN functions.
      normaliz: Added normaliz.dll stub.

Timo Teräs (1):
      iphlpapi: Fix GetAdaptersAddresses return values.

Vincent Povirk (1):
      windowscodecs: Store an impl pointer instead of an iface pointer.

Vitaliy Margolen (4):
      dinput: Convert DirectInput to using interface instead of vtbl.
      dinput: COM cleanup - use interface instead of lpvtbl in joystick effects.
      dinput: Rename IDirectInputDevice2AImpl into IDirectInputDeviceImpl.
      dinput: Pass interface instead of this pointer to joystick poll callback.

Yaron Shahrabani (1):
      wininet: Updated Hebrew translation.

Łukasz Wojniłowicz (2):
      appwiz.cpl: Update Polish translation.
      jscript: Update Polish translation.

--
Alexandre Julliard
julliard@winehq.org
