The Wine development release 1.7.39 is now available.

What's new in this release (see below for details):
  - WinMM joystick support on Mac OS X.
  - Kerning support in DirectWrite.
  - Support for DirectX Media Objects filters.
  - Better support for animated GIFs in GdiPlus.
  - Improved support for Known Folders in Shell32.
  - Various bug fixes.

The source is available from the following locations:

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

  14563  picasa can't play mp3 files during slideshows
  18424  Mac OS X Joystick support doesn't work
  23491  Barbri Study Smart hangs without putting up a window
  23977  Steam overlay can't use shift or caps lock
  26300  98Plus! Screensavers don't look right in Wine Desktop
  27141  Brink (Splash Damage, Bethesda Softworks) (Steam) fails to launch
  31819  Animated GIF images are rendered incorrectly (transparent areas painted black)
  33447  Wine GUI on Mac display Traditional Chinese instead when host language is Simplified Chinese
  35763  Multiple applications and games need wmvcore.dll.WMCreateWriter (Tinker, iMesh 7.x)
  35933  Evolve Client 1.8.3 (.NET 4.0 app) 'AppsMgr' fails to install downloaded applications/updates after login (support for RPC FC_CALLBACK_HANDLE needed)
  36849  eTax 2014 installation fails with Wine-Mono 4.5.2
  36951  no sound effects in BridgeMaster 2000
  37202  MSWord hangs on opening a document opened in other program
  38096  Nero Burning ROM v8 needs 'NetUserEnum' level 20 support (USER_INFO_20)
  38110  Winhttp sample doesn't always work
  38177  d3d: Card 10de:0849 not found in driver DB
  38184  AutoHotkey script crashes when calling WScript.Shell's "exec" method (IWshShell3 vtable only supports up to IWshShell2)
  38203  MSYS2 needs FileNetworkOpenInformation support in NtQueryInformationFile
  38209  WshScriptExec's Terminate method is missing
  38220  Chemcraft crashes
  38221  Wrong parameter assignment in get_family_names_from_stream()
  38223  SoManyEuros program doesnt run (needs IFile::get_Path() implementation)
  38226  EBWin(Unicode) crashes when searching katakana words. (_mbctohira is a stub)
  38251  Assign value to function parameter

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

Changes since 1.7.38:

Aaryaman Vasishta (5):
      d3drm/tests: Add tests for querying between IDirect3DRM interfaces.
      d3drm: Fix IDirect3DRM::QueryInterface returning incorrect HRESULT on unsupported interfaces.
      d3drm/tests: Add tests for invalid interfaces in IDirect3DRM::QueryInterface.
      d3drm/tests: Remove dynamic loading in d3drm.c.
      d3drm/tests: Remove dynamic loading in vector.c.

Akihiro Sagawa (5):
      msvcrt: Fix _ismbckata() for Halfwidth Katakana characters.
      msvcrt: Add _mbctohira implementation.
      msvcrt: Add _mbctokata implementation.
      winmm/tests: Add notify flag tests for MPEGVideo driver.
      mciqtz32: Fix notify flag behavior.

Alexandre Julliard (23):
      server: Don't report completion at all in the MORE_PROCESSING_REQUIRED case.
      ws2_32: Set the completion event on the server side also for AcceptEx.
      ws2_32: Use Win32 APIs for interlocked functions.
      server: Allow device manager ioctls to run asynchronously.
      server: Add a request to store the results of an ioctl asynchronously.
      ntoskrnl: Allow IoCompleteRequest to report completion asynchronously.
      ole32: Remove confusing uses of the __thiscall specifier.
      msvcp60: Share math functions implementation with msvcp90.
      msvcp60: Share memory functions implementation with msvcp90.
      msvcp60: Share misc functions implementation with msvcp90.
      msvcp60: Merge locale code with msvcp90 where possible to reduce the differences.
      msvcp60: Add MSVCP prefix on exported string functions.
      msvcp60: Share exception functions implementation with msvcp90.
      msvcp90: Remove functions that are not exported in native.
      msvcp60: Merge I/O stream code with msvcp90 where possible to reduce the differences.
      msvcp60: Add MSVCP prefix on more string functions.
      msvcp60: Move string iterator functions to match msvcp90.
      msvcp60: Merge the char_traits functions with msvcp90.
      ntoskrnl: Allow running user APC inside the device manager loop.
      msvcp: Add a macro to access the locale field of I/O streams.
      winhttp: Remove const to fix a warning with the Microsoft headers.
      server: Copy completion information for accepted socket into the new file descriptor.
      msvcp60: Share locale functions implementation with msvcp90.

Andrew Eikum (9):
      shell32/tests: A couple of win8 fixes.
      shell32/tests: Fix win8 knownfolders relative and parsed paths.
      shell32/tests: Remove unused flag.
      shell32/tests: Fix win8 knownfolder attributes.
      shell32/tests: Support alternate parent folders.
      shell32: Allow updating knownfolder definitions.
      shell32: Allow registering knownfolders without relative paths.
      shell32: Also register knownfolder attributes.
      shell32: Install knownfolders to registry during DLL registration.

André Hentschel (5):
      server: Add header guarding for security.h.
      msvcp90: Cleanup macro usage.
      dinput/tests: Avoid assigning values twice (PVS-Studio).
      shlwapi: Avoid assigning values twice (PVS-Studio).
      gameux: Return function result on error (PVS-Studio).

Aric Stewart (1):
      dsound: Do not wait on mixer thread exit on dsound release.

Austin English (6):
      dxdiagn: Add bNoHardware stub property.
      include: Add ASN1*string* definitions/functions.
      include: Add some missing entries in hidusage.h.
      include: Add remaining function prototypes in msasn1.h.
      include/winternl.h: Use ntdef.h where possible.
      setupx.dll16: Add a DiOpenClassRegKey stub.

Bernhard Übelacker (1):
      wined3d: Recognize Nvidia GeForce 8100 with Nouveau driver (bug).

Bruno Jesus (11):
      ws2_32/tests: Move second WSACleanup test elsewhere.
      ws2_32/tests: Fix a NT4 crash due to unsupported SIO_ADDRESS_LIST_QUERY.
      ws2_32/test: Don't test unsupported IP_MULTICAST_TTL on NT4.
      ws2_32/tests: Improve setup_connector_socket to allow non-blocking connect calls.
      ws2_32/tests: Add more select() tests.
      ws2_32: Normalize socket tracing.
      ws2_32/tests: Test the behavior of reading data from an OOBINLINE'd socket.
      ws2_32/tests: Add more select() tests related to OOB handling.
      ws2_32/tests: Improve some helper functions.
      ws2_32/tests: Check the OOB mark in the right place.
      kernel32: Only zero the buffer up to 32767 bytes in GetTempPathW.

Christian Costa (1):
      d3dxof: Use assignment for GUID instead of memcpy with hardcoded size.

Daniel Lehman (1):
      wininet: Accept Version in cookies.

Dmitry Timoshkov (2):
      shell32/tests: Add a couple of SHFileOperation(FO_MOVE) tests for a directory.
      shell32: Fix SHFileOperation(FO_MOVE) for a directory with subdirectories.

François Gouget (83):
      ddraw/tests: Fix compilation on systems that don't support nameless unions.
      wrc: Remove an unused lexer definition.
      activeds: Remove an unneeded NONAMELESSUNION directive.
      actxprxy: Remove unneeded NONAMELESSXXX directives.
      appwiz.cpl: Remove an unneeded NONAMELESSSTRUCT directive.
      comctl32: Remove unneeded NONAMELESSSTRUCT directives.
      commdlg.dll16: Remove unneeded NONAMELESSXXX directives.
      comdlg32: Remove unneeded NONAMELESSSTRUCT directives.
      compstui: Remove an uneeded NONAMELESSUNION directive.
      crypt32: Remove an uneeded NONAMELESSUNION directive.
      cryptnet: Remove an unneeded NONAMELESSSTRUCT directive.
      cryptnet/tests: Remove an uneeded NONAMELESSUNION directive.
      d3d8: Remove unneeded NONAMELESSXXX directives.
      dbghelp: Remove an unneeded NONAMELESSSTRUCT directive.
      dispex: Remove unneeded NONAMELESSXXX directives.
      dmloader: Remove an unneeded NONAMELESSSTRUCT directive.
      dplayx: Remove unneeded NONAMELESSSTRUCT directives.
      dsound: Remove unneeded NONAMELESSXXX directives.
      dwmapi: Remove unneeded NONAMELESSXXX directives.
      explorerframe: Remove unneeded NONAMELESSXXX directives.
      gphoto2.ds: Remove unneeded NONAMELESSXXX directives.
      hhctrl.ocx: Remove unneeded NONAMELESSXXX directives.
      inetcpl.cpl: Remove uneeded NONAMELESSUNION directives.
      kernel32: Remove unneeded NONAMELESSXXX directives.
      krnl386.exe16: Remove unneeded NONAMELESSXXX directives.
      ieframe: Remove unneeded NONAMELESSXXX directives.
      ieframe/tests: NONAMELESSUNION is not needed when using the U() macro.
      localspl: Remove uneeded NONAMELESSUNION directives.
      mshtml: Remove unneeded NONAMELESSXXX directives.
      localui: Remove an uneeded NONAMELESSUNION directive.
      mapi32: Remove unneeded NONAMELESSXXX directives.
      mmdevapi: Remove an uneeded NONAMELESSUNION directive.
      mmsystem.dll16: Remove unneeded NONAMELESSXXX directives.
      winecoreaudio.drv: The drv_keyW variable is unused so remove it.
      wshom.ocx: Make enum_thread_wnd_proc() static.
      dbghelp: pe_unmap_directory() is unused so remove it.
      winex11.drv: Make X11DRV_XROPfunction static.
      secur32: Export SetContextAttributes[AW]().
      msdaps: Remove unneeded NONAMELESSXXX directives.
      msi: Remove unneeded NONAMELESSXXX directives.
      msxml3: Remove unneeded NONAMELESSUNION directives.
      ntdll: Remove unneeded NONAMELESSXXX directives.
      ntdll/tests: Remove an unneeded NONAMELESSSTRUCT directive.
      ntprint: Remove an uneeded NONAMELESSUNION directive.
      krnl386.exe16: Fix the _lread16() documentation.
      crypt32: Mark internal symbols with hidden visibility.
      dbghelp: Mark internal symbols with hidden visibility.
      winemenubuilder: Avoid a couple of forward declarations.
      winemenubuilder: Handle icons disguised as executables and better validate icon streams.
      ws2_32: Add more WSA_FLAG_XXX values.
      ws2_32: Add support for WSA_FLAG_NO_HANDLE_INHERIT.
      d3drm: Mark internal symbols with hidden visibility.
      d3dx9_36: Make d3dx_decltype_size[] static.
      devenum: Mark internal symbols with hidden visibility.
      odbccp32: Remove an uneeded NONAMELESSUNION directive.
      ole2.dll16: Remove unneeded NONAMELESSXXX directives.
      ole32: Remove unneeded NONAMELESSXXX directives.
      oleaut32: Remove unneeded NONAMELESSXXX directives.
      oledb32: Remove unneeded NONAMELESSXXX directives.
      oledb32/tests: Remove unneeded NONAMELESSXXX directives.
      oledlg: Remove an unneeded NONAMELESSSTRUCT directive.
      printui: Remove an unneeded NONAMELESSUNION directive.
      pdh: Remove an unneeded NONAMELESSSTRUCT directive.
      quartz: Remove unneeded NONAMELESSXXX directives.
      qcap: Remove unneeded NONAMELESSXXX directives.
      quartz/tests: Remove an uneeded NONAMELESSUNION directive.
      jscript: Mark internal symbols with hidden visibility.
      hhctrl.ocx: Make html_encoded_symbols[] static.
      hhctrl.ocx: Mark internal symbols with hidden visibility.
      hh: Add an icon.
      hh: Use the hh.exe icon as the default for .chm files.
      riched20: Remove unneeded NONAMELESSXXX directives.
      sane.ds: Remove unneeded NONAMELESSXXX directives.
      scsiport.sys: Remove unneeded NONAMELESSXXX directives.
      setupapi: Remove unneeded NONAMELESSXXX directives.
      rpcrt4: Remove an unneeded NONAMELESSSTRUCT directive.
      krnl386.exe16: Mark internal symbols with hidden visibility.
      mmsystem.dll16: Mark internal symbols with hidden visibility.
      Assorted spelling fixes.
      riched20: Fix a trailing '\n' in a FIXME() call.
      shell32: Remove unneeded NONAMELESSXXX directives.
      shlwapi: Remove unneeded NONAMELESSXXX directives.
      mscoree: Mark internal symbols with hidden visibility.

Frédéric Delanoy (1):
      po: Update French translation.

Gerald Pfeifer (1):
      twain_32: Avoid using an uninitialized variable in the failure path in path in a couple of cases.

Hans Leidekker (5):
      msi: Improve tracing.
      msi: Fix the case where the summary information stream is already open in MsiGetSummaryInformationW.
      msi: Handle errors from IStorage_CreateStream instead of trying to open the stream first in msi_commit_streams.
      winhttp: Don't try to read more data than available in the current chunk in refill_buffer.
      netapi32: Add support for info level 20 in NetUserEnum.

Henri Verbeet (28):
      d3d10core: Implement d3d10_blend_state_SetPrivateDataInterface().
      d3d10core: Implement d3d10_blend_state_GetPrivateData().
      d3d10core: Implement d3d10_depthstencil_state_SetPrivateData().
      d3d10core: Implement d3d10_depthstencil_state_SetPrivateDataInterface().
      d3d10core: Implement d3d10_depthstencil_state_GetPrivateData().
      d3d10core: Implement d3d10_rasterizer_state_SetPrivateData().
      d3d10core: Implement d3d10_rasterizer_state_SetPrivateDataInterface().
      d3d10core: Implement d3d10_rasterizer_state_GetPrivateData().
      d3d10core: Implement d3d10_sampler_state_SetPrivateData().
      d3d10core: Implement d3d10_sampler_state_SetPrivateDataInterface().
      d3d10core: Implement d3d10_sampler_state_GetPrivateData().
      d3d10core: Implement d3d10_texture3d_SetPrivateData().
      d3d10core: Implement d3d10_texture3d_SetPrivateDataInterface().
      d3d10core: Implement d3d10_texture3d_GetPrivateData().
      d3d10core: Implement d3d10_depthstencil_view_SetPrivateData().
      d3d10core: Implement d3d10_depthstencil_view_SetPrivateDataInterface().
      d3d10core: Implement d3d10_rendertarget_view_SetPrivateData().
      d3d10core: Implement d3d10_depthstencil_view_GetPrivateData().
      d3d10core: Implement d3d10_rendertarget_view_SetPrivateDataInterface().
      d3d10core: Implement d3d10_rendertarget_view_GetPrivateData().
      d3d10core: Implement d3d10_shader_resource_view_SetPrivateData().
      d3d10core: Implement d3d10_shader_resource_view_SetPrivateDataInterface().
      d3d10core: Implement d3d10_shader_resource_view_GetPrivateData().
      d3d10core/tests: Fix a typo in shader source in test_clear_state().
      ddraw: Get rid of some comments in the middle of the copyright headers.
      d3drm: Get rid of some incorrect comments.
      wined3d: Simplify the wined3d_matrix structure.
      wined3d: Fix a TRACE in wined3d_device_draw_indexed_primitive_instanced().

Huw D. M. Davies (1):
      riched20: Don't resend a partial chunk to the edit stream callback.

Jacek Caban (11):
      mshtml: Added IHTMLDOMAttribute2 stub implementation.
      mshtml: Added IHTMLDOMAttribute2::get_expando implementation.
      wmsdkidl.idl: Added IWMWriter interface declaration.
      mshtml: Allow setting event handlers to strings.
      d3drmdef.h: Fixed a typo.
      wmvcore: Added WMCreateWriter implementation.
      wininet: Get rid of no longer needed sock_get_error.
      user32: Allow making window visible by WM_SETREDRAW message.
      mshtml: Added IHTMLTextAreaElement::defaultValue property implementation.
      wmsdkidl.idl: Added IWMWriterAdvanced* interfaces declarations.
      wmvcore: Added IWMWriterAdvanced3 stub implementation.

Jactry Zeng (4):
      riched20: Add tests for IRichEditOle::QueryInterface.
      riched20: Implement IOleWindow interface.
      riched20: Implement IOleWindow::GetWindow.
      riched20: Implement IOleInPlaceSite interface.

Ken Thomases (6):
      winemac: When exiting Cocoa full-screen mode for a no-longer-eligible window, bypass the override of -toggleFullScreen:.
      winemac: Prevent maximized windows from entering Cocoa full-screen mode.
      winejoystick: Separate Linux-specific code into a separate file.
      winejoystick: Add WinMM joystick support for OS X.
      winemenubuilder: Fix compiling on OS X.
      winejoystick: Fix a crash on accessing a CFArray past its end due to an off-by-one error in the Mac code.

Mark Harmstone (5):
      dsound: Keep track of locked bytes.
      dsound: Implement SetFX.
      dsound: Implement GetObjectInPath.
      dsound: Pipe audio data through DMOs.
      uxtheme: Support images in GetThemeBackgroundRegion.

Mark Jansen (1):
      kernel32/tests: Parameter validation tests for FindActCtxSectionString.

Matteo Bruni (9):
      include: Pack structures to 4-bytes alignment on x86 in D3D headers.
      wined3d: Fix a typo in a trace in context_create().
      wined3d: Force stream info update on vertex shader change.
      wined3d: Depend on the vertex shader state instead of the vertex declaration state where appropriate.
      wined3d: Introduce a get_identity_matrix() function.
      wined3d: Introduce a get_modelview_matrix() function.
      wined3d: Use a separate STATE_VDECL state handler in the GLSL pipeline.
      wined3d: Use a separate STATE_TRANSFORM(WINED3D_TS_VIEW) state handler in the GLSL pipeline.
      wined3d: Don't use the builtin FFP uniform for the modelview matrix.

Michael Stefaniuc (9):
      mstml/tests: Merge two adjacent if blocks with identical condition (PVS-Studio).
      dbghelp: Remove no-op additions with 0 (PVS-Studio).
      dsound: Avoid comparing BOOL variables with TRUE (PVS-Studio).
      gameux: Avoid comparison of a BOOL return with TRUE (PVS-Studio).
      kernel32: Don't free a NULL / not yet allocated pointer (PVS-Studio).
      msi: Remove comparison of pointer with >= NULL (PVS-Studio).
      ws2_32: Avoid using bitwise operations on BOOLs (PVS-Studio).
      mshtml/tests: '%' doesn't needs escaping in a C string (sparse).
      rsaenh: Don't compare a BOOL with 1 (PVS-Studio).

Nikolay Sivov (50):
      rpcrt4: Handle memory allocation error when creating OLE stream instance.
      rpcrt4: Return buffer size directly to avoid accessing implementation fields.
      rpcrt4: Add all stubs to OLE marshalling stream.
      wshom.ocx: Added missing IWshShell3 methods.
      wshom.ocx: Implement CurrentDirectory() property.
      oleaut32/tests: Hide details about VARIANT wire header in header testing helper.
      oleaut32: Use WdtpInterfacePointer_* functions in VARIANT marshalling.
      vbscript: Use CP_ACP instead of its numeric value.
      oleaut32/tests: Some tests for IsMatchingType().
      rpcrt4: Export I_UuidCreate().
      rpcrt4: Use a helper to skip conformance.
      wshom.ocx: Implement Exec() method.
      wshom.ocx: Implement Status property of IWshExec.
      wshom.ocx: Implement ProcessID() property.
      scrrun: Fix copy-paste issue in trace message.
      dwrite: Make a deep copy of family name string (Valgrind).
      dwrite: Fix excessive refcount increment when setting interface pointers as range attributes.
      wshom.ocx: Implement Terminate().
      dwrite: Store pair kerning range attribute.
      dwrite: Store vertical orientation property.
      dwrite: Fix GetClusterMetrics() return value.
      ole32: Check ComposeWith() return value too (PVS-Studio).
      ole32: Handle some failures in Inverse() for composite moniker (PVS-Studio).
      ole32: Handle Stat() failure in OleLoad() (PVS-Studio).
      dwrite: Actually return NULL names pointer and error code when failed to read them.
      dwrite: Fix invalid parameter handling in GetGlyphIndices().
      dwrite: Implement HasKerningPairs().
      dwrite: Implement GetKerningPairAdjustments().
      scrrun: Implement Path() property for IFile.
      ole32: Handle ILockBytes creation failure (PVS-Studio).
      dwrite: Initially format and layout don't have a fallback set.
      dwrite/tests: Use separate factory for each test in layout tests.
      dwrite: Allow to query for IDWriteTextFormat1 from layout.
      dwrite: Implement SetFontFallback().
      dwrite: Remove unused helper.
      dwrite/tests: Another test for cluster metrics and inline objects.
      scrrun: Preserve pairs order during dictionary lifetime.
      scrrun: Added stub IEnumVARIANT for dictionary.
      scrrun: Implement IEnumVARIANT support for dictionary.
      wmvcore: Return S_OK from WMCreateReader.
      ole32/datacache: Handle stream Stat() failure (PVS-Studio).
      mstask: Added IEnumWorkItems stub.
      ole32: Fix error handling in GetTimeOfLastChange() for item moniker (PVS-Studio).
      ole32: Improve error handling in GetClassFile() (PVS-Studio).
      ole32: Cleanup QI for IEnumMoniker.
      avifil32: Return interface pointer from QI instead of impl pointer.
      browseui: Return interface pointer from QI instead of impl pointer.
      explorerframe: Return interface pointer from QI instead of impl pointer.
      fusion: Return interface pointer from QI instead of impl pointer.
      kernel32: Implement GetProcessIdOfThread().

Piotr Caban (10):
      gdiplus: Don't create new instance of IWICBitmapDecoder to encode every frame of animation.
      windowscodecs: Store stream reference in gif decoder.
      windowscodecs: Store stream reference in png decoder.
      gdiplus: Don't store stream reference in GpImage, it's done by IWICBitmapDecoder.
      gdiplus: Convert animated gif to PixelFormat32bppARGB on load.
      gdiplus: Fix animated gif frames composition.
      gdiplus/tests: Add gif frames composition tests.
      windowscodecs: Show that WIC doesn't do GIF frames composition.
      gdiplus: Add pixel format test for transparent non-animated gif.
      gdiplus: Fixed palette flags setting.

Qian Hong (3):
      ntdll: Implemented FileNetworkOpenInformation class support in NtQueryInformationFile.
      ntdll: Removed incorrect stub message in NtQueryObject and NtSetInformationObject.
      ws2_32: Improved error handling in gethostname when name length is insufficient.

Sebastian Lackner (14):
      ntdll: Move static threadpool variables into a struct.
      ole32: Fix a possible handle leak (Coverity).
      ole32: Fix call to free_stringtable with uninitialized pointer (Coverity).
      ole32: Wait a bit before doing next sanity check in StorageImpl_LockRegionSync.
      wine.inf: Add some LicenseInformation registry values.
      ntdll: Implement [Nt|Zw]QueryLicenseValue.
      slc: Implement SLGetWindowsInformationDWORD.
      ntdll: Move all structs and definitions to the beginning in threadpool.c.
      user32: Fix invalid memory access and leak if alloc_user_handle fails (Coverity).
      kernel32: Fix file handle leak in exec_process (Coverity).
      kernel32: Fix leak of dynamic_buffer in QueryFullProcessImageNameW (Coverity).
      user32/tests: Add tests for removing already seen messages from the queue.
      ntdll: RtlFindActivationContextSectionString should accept a NULL pointer as data.
      ntdll: Handle write watches in virtual_uninterrupted_write_memory.

Stefan Dösinger (21):
      wined3d: Properly up-scale WINED3DFMT_R5G5_SNORM_L6_UNORM.
      wined3d: Improve the unsigned emulation of WINED3DFMT_R5G5_SNORM_L6_UNORM.
      d3d9/tests: Add a test for signed formats.
      wined3d: Add support for GL_EXT_texture_snorm.
      wined3d: Support WINED3DFMT_R5G5_SNORM_L6_UNORM with EXT_texture_snorm.
      d3d8/tests: Add a test for signed formats.
      ddraw/tests: Add a test for signed formats.
      ddraw: Set DDPF_BUMPLUMINANCE for V5U5L6 and X8L8V8U8.
      ddraw: Remove support for V16U16.
      wined3d: Initialize WINED3DTA_TEMP.
      d3d9: Correct ColorFill validation.
      d3d9/tests: Relax the fog range test a bit.
      d3d8/tests: oFog is not initialized on r200.
      ddraw/tests: r200 ignores the alpha channel when matching color keys.
      ddraw: Add DDBLT_COLORFILL validation.
      ddraw/tests: Add a DDBLT_COLORFILL test.
      ddraw: Add DDBLT_DEPTHFILL validation.
      ddraw/tests: Add tests for DDBLT_DEPTHFILL.
      ddraw: Add validation and tests for DDBLT_ROP.
      ddraw: Handle DDBLT_ROP in ddraw.
      d3d9/tests: Extend the colorfill test.

Stefan Leichter (1):
      msctf: Add TF_InitMlngInfo stub.

Vincent Povirk (9):
      ole32: Test the entire range lock block for synchronization.
      ole32: Don't use real synchronous locks for storage synchronization.
      ole32: Accept only STG_E_INVALIDFUNCTION or success from LockRegionSync.
      ole32: Add a 20 second timeout when attempting to grab locks.
      ole32: Fail to open storage files that are locked incorrectly.
      gdiplus: Do not access Bitmap bits when drawing transparent pixels.
      gdiplus: Access bitmaps by row in alpha_blend_bmp_pixels.
      gdiplus: Fix leak in test in todo_wine case.
      gdiplus: GdipGetDC doesn't set the alpha channel for a 32-bit dib.

YongHao Hu (1):
      msvcp90: Add istream::operator>>complex implementation and tests.

--
Alexandre Julliard
julliard@winehq.org
