The Wine development release 1.9.7 is now available.

What's new in this release (see below for details):
  - More work towards the WineD3D command stream.
  - More support for Shader Model 5 shaders.
  - C++ exception handling on x86-64.
  - Support for Windows-style static import libraries.
  - Performance fixes in the XML writer.
  - Various bug fixes.

The source is available from the following locations:

  http://dl.winehq.org/wine/source/1.9/wine-1.9.7.tar.bz2
  http://mirrors.ibiblio.org/wine/source/1.9/wine-1.9.7.tar.bz2

Binary packages for various distributions will be available from:

  http://www.winehq.org/download

You will find documentation on http://www.winehq.org/documentation

You can also get the current source directly from the git
repository. Check http://www.winehq.org/git for details.

Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.

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

Bugs fixed in 1.9.7 (total 42):

  10063  wineconsole run fail on korean locale.
  10156  oleidl.h has OLECONTF_ONLYUSER misspelled
  12400  Display problems in Indiana Jones and The Emperor's Tomb with vertex shader enabled
  15537  Game "PURE" shows black screen
  19081  Force closing winhlp32 without a file loaded pops up an error dialog (appinstall)
  19171  Powerpoint viewer 2003 & 2007 show weird characters (appinstall)
  19538  Microsoft Publisher 2007 and 2010 crash when opening documents/templates (TSF manager 'ITextStoreACPSink' must support QI with 'IID_ITextStoreACPServices')
  19585  Water is red in Settlers: Heritage of Kings demo
  20695  Cannot scroll documents being compared in winmerge
  26767  U-he Tyrell, Uhbik and ACE vst plugins: GUI Knob bug (image files files not being sorted correctly)
  26942  CSPRO 4 editing : context menu on grid header not working properly
  26978  tokenadmin.exe crash : Unimplemented function winscard.dll.SCardListReadersA
  28172  Civilization II crashes on startup
  29319  Internet Explorer 8 fails to start an InPrivate Browsing session
  29979  ElsterFormular crashes when trying to print already sent income tax return
  30488  IE8 shows corrupted previews on the quick tabs screen
  31393  Nvidia force antialiasing no longer works
  32347  Alien8 and Head Over Heels crash when window is moved partly off-screen
  35092  Multiple 64-bit applications need __CxxFrameHandler implementation (Ableton Live 9.1, Adobe Cloud apps)
  35711  Winelib: compile error in wincon.h if NOGDI is defined before #include <windows.h>
  36136  oleaut32/tests/vartest.c test shows a couple leaks with valgrind
  36297  valgrind shows uninitialized memory in msxml3/tests/domdoc.c
  36383  valgrind shows several uninitialized values in ddraw_CreateSurface() in ddraw/tests/dsurface.c
  36748  valgrind shows two possible leaks in d3drm/tests/d3drm.c
  38347  Canon PIXMA MP495 driver setup needs setupapi.dll.SetupDiSetDeviceInstallParamsW
  38670  advapi32/registry tests shows several uninitialized values
  38971  Allied Telesis Smart Switch Management Utility v1.0.0.7 crashes on unimplemented function mgmtapi.dll.SnmpMgrTrapListen
  39215  Nvidia GeForce GTX960M detected as GTX470
  39435  The 64 bit mshtml:xmlhttprequest fails on Windows 8/10
  39667  dinput: MotoGP 3 demo launcher crashes on leaving key configuration dialog.
  39681  Unimplemented function crypt32.dll.CryptMsgVerifyCountersignatureEncoded
  39786  GoodSync crashes, needs oleaut32.OleLoadPictureFile
  40048  Camtasia Studio 8 : crashes on unimplemented function dwmapi.dll.DwmSetPresentParameters
  40081  CLM Explorer needs fontsub.dll.CreateFontPackage
  40113  mshtml:xmlhttprequest regression
  40135  msvcirt.c:1386:5: warning: comparison of unsigned expression < 0 is always false
  40182  Elder Scrolls Online: Login connection issues
  40297  Multiple app crashes in macdrv_EnumDisplayMonitors
  40304  EveHQ2 crashes with builtin gdiplus
  40306  Overexposed/wrong gamma? on The Legend of Heroes Trails in the Sky SC
  40319  VerbAce Dictionary does not install correctly
  40331  The Legend of Heroes Trails in the Sky SC crashes on start with runtime error R6025

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

Changes since 1.9.6:

Aaryaman Vasishta (2):
      d3drm: Move struct d3drm_texture to header for global access.
      d3drm: Fix signature macro of IDirect3DRM*::CreateObject.

Adam Buchbinder (1):
      riched20: Implement ITextRange::ScrollIntoView.

Alex Henrie (1):
      ole32: Fix sizeof mismatch in CompositeMonikerImpl_Construct.

Alexandre Julliard (26):
      winebuild: Use strarray objects instead of pointers where possible.
      winebuild: Use strarray objects for a few more string arrays.
      kernel32/tests: Use Interlocked functions to avoid fault counters being optimized out.
      winebuild: Don't store the full spec for an imported dll.
      winebuild: Store a C-compatible version of the dll name.
      winebuild: Store dll imports in a list instead of an array.
      winebuild: Store delayed imports in a separate list.
      winebuild: Add a separate structure to store the data of imported functions.
      winebuild: Use a global flag to determine when to generate the get_pc thunk.
      winebuild: Add a common helper to find an imported dll.
      winebuild: Add support for creating static import libraries.
      winebuild: Add support for linking to static import libraries.
      makefiles: Expand the names of static libraries in linker commands.
      makefiles: Build import libraries that contain object files as static libraries.
      makefiles: Always expand the library name for cross-compiled import libraries.
      makefiles: Add tool dependencies for winegcc and winebuild.
      winegcc: Use explicit library file name when loading cross libraries.
      makefiles: When supported, use -Ttext-segment also for the main loader.
      makefiles: Reduce the maximum page size for modules that have a base address.
      makefiles: Move the main loader base address to cope with huge page alignment.
      kernel32: Lower the load address to accomodate the dll size.
      wineconsole: If necessary, fallback to a font without the right properties instead of failing.
      makedep: Sort makefile variables.
      user32: Use kernel32 functions for character types and case conversions.
      winegcc: Support building from the top directory.
      makedep: Rename top_dir_path to top_src_dir_path for consistency.

Alistair Leslie-Hughes (2):
      include: Add d3dx10tex.h.
      d3d10: Add D3D10CreateEffectPoolFromMemory stub.

Andrew Eikum (1):
      winecoreaudio.drv: Ensure divide-by-zero SSE exceptions are masked before calling AudioConverterNew.

André Hentschel (1):
      shell32: Provide helper function a buffer of correct size.

Austin English (8):
      include: Fix GetCurrentConsoleFontEx/SetCurrentConsoleFontEx definition.
      crypt32: Add CryptMsgVerifyCountersignatureEncoded stub.
      mgmtapi: Add SnmpMgrTrapListen stub.
      dwmapi: Add DwmSetPresentParameters stub.
      winscard: Add stubs for SCardListReadersA/W.
      oleaut32: Add OleLoadPictureFile stub.
      sfc: Document ordinal only exports.
      setupapi: Add SetupDiSetDeviceInstallParamsW stub.

Bernhard Übelacker (2):
      dinput: Implement device property DIPROP_USERNAME.
      d3drm/tests: Release two retrieved interfaces to allow proper cleanup.

Bruno Jesus (1):
      comctl32/tests: Add initial tests for the animation control.

Caron Wills (1):
      wined3d: Add Nvidia GeForce GTX 860.

Daniel Lehman (3):
      ucrtbase: Add hypot forward.
      msvcp120: Add _Mtx_current_owns.
      msvcr120: Add asinh.

Detlef Riekenberg (1):
      kernelbase: Add dll with forwards to kernel32.dll.

François Gouget (11):
      shell32/tests: Delete the shlproto test class when done.
      shell32/tests: Move a file URL test to test_fileurl().
      shell32/tests: Test default verb detection for files as well as for URLs.
      dinput: Make ff_effect_direction_to_rad() static.
      shell32/tests: Make shlexec's reset_association_description() static.
      wined3d: Make wined3d_texture_force_reload() static.
      mshtml: Make some functions static.
      d3dx9_36: Make d3dx_set_shader_const_state() static.
      winecfg: Highlight spelling fixes.
      cmd/tests: Slash spelling fix.
      gdi32: Fix the PAN_WEIGHT_INDEX constant name.

Hans Leidekker (7):
      iphlpapi/tests: Trace network prefixes in the test for GetAdaptersAddresses.
      webservices: Add support for optional values in WsReadType.
      webservices: Fix memory leaks on error paths in WsCreateReader.
      webservices: Add a helper to determine node type.
      webservices: Add support for text field mappings in WsReadType.
      webservices/tests: Add more structure type tests.
      webservices: Add support for repeating element field mappings in WsReadType.

Henri Verbeet (50):
      wined3d: Get resource info from the texture in read_from_framebuffer().
      wined3d: Get resource info from the texture in surface_load_fb_texture().
      wined3d: Get resource info from the texture in surface_prepare_rb().
      wined3d: Get resource info from the texture in fb_copy_to_texture_direct().
      wined3d: Get resource info from the texture in fb_copy_to_texture_hwstretch().
      wined3d: Get rid of wined3d_surface_ops.surface_private_setup().
      wined3d: Validate (2D) texture dimensions in texture_init().
      wined3d: Check for compressed and height scaled formats in texture_init().
      wined3d: Merge surface_private_setup() into wined3d_surface_init().
      d3drm/tests: Properly initialise context.obj in test_Viewport().
      ddraw/tests: Rewrite blt_test().
      ddraw/tests: Get rid of the unused "d3d" variable in test_shademode().
      wined3d: Get resource info from the texture in surface_blt_to_drawable().
      wined3d: Get resource info from the texture in surface_blt_special().
      wined3d: Get resource info from the texture in surface_depth_blt().
      dxgi: Simplify the shader model comparison in dxgi_check_feature_level_support().
      d3d11: Use %#x for tracing the feature level in layer_set_feature_level().
      wined3d: Get the framebuffer height from the view in shader_glsl_load_constants().
      wined3d: Pass a texture instead of a surface to context_create().
      wined3d: Introduce wined3d_texture_get_gl_buffer().
      wined3d: Get resource info from the texture in surface_load_ds_location().
      wined3d: Get resource info from the texture in surface_copy_simple_location().
      wined3d: Get resource info from the texture in surface_load_drawable().
      wined3d: Get resource info from the texture in surface_load_texture().
      wined3d: Get resource info from the texture in surface_load_renderbuffer().
      wined3d: Replace context_generate_rt_mask_from_surface() with context_generate_rt_mask_from_resource().
      wined3d: Pass a texture instead of a surface to context_generate_rt_mask_no_fbo().
      wined3d: Use wined3d_texture_blt() in wined3d_device_copy_resource().
      wined3d: Use wined3d_texture_blt() in wined3d_device_copy_sub_resource_region().
      wined3d: Use wined3d_texture_blt() in wined3d_swapchain_get_front_buffer_data().
      wined3d: Get resource info from the texture in surface_load_location().
      wined3d: Get resource info from the texture in swapchain_blit().
      wined3d: Get resource info from the texture in wined3d_volume_upload_data().
      wined3d: Get resource info from the texture in wined3d_volume_download_data().
      wined3d: Get resource info from the texture in wined3d_volume_load_location().
      wined3d: Use wined3d_texture_blt() in swapchain_gl_present().
      wined3d: Store the context's current rendertarget as a texture and sub-resource index.
      wined3d: Simplify checking if the released resource is in use as a rendertarget in device_resource_released().
      wined3d: Validate the sub-resource index in wined3d_rendertarget_view_init().
      wined3d: Get rid of the d3d_surface and d3d_texture debug channels.
      wined3d: Use the texture dimension helpers in arbfp_blit_surface().
      wined3d: Use the texture dimension helpers in context_find_fbo_entry().
      wined3d: Use the texture dimension helpers in is_full_clear().
      wined3d: Use the texture dimension helpers in prepare_ds_clear().
      wined3d: Use the texture dimension helpers in wined3d_device_update_texture_3d().
      wined3d: Avoid surface_from_resource() in device_load_logo().
      wined3d: Avoid surface_from_resource() in wined3d_device_init_3d().
      wined3d: Avoid surface_from_resource() in wined3d_device_update_texture().
      wined3d: Avoid surface_from_resource() in swapchain_gl_present().
      wined3d: Avoid surface_from_resource() in swapchain_gdi_frontbuffer_updated().

Hugh McMaster (4):
      reg: Allow values to be added, deleted or modified in root keys.
      kernel32: Add a stub for SetCurrentConsoleFontEx.
      regedit: Display REG_DWORD_BIG_ENDIAN values.
      regedit: Display REG_NONE values.

Huw D. M. Davies (1):
      wineqtdecoder: Use thread-safe initialization.

Iván Matellanes (1):
      msvcirt: Avoid superfluous comparison in some compilers.

Jacek Caban (49):
      mshtml/tests: Fixed xmlhttprequest test failures.
      mshtml/tests: Fixed remaining xmlhttprequest test failures.
      jscript: Removed no longer used argument from exec_source.
      jscript: Added a few more arguments tests.
      jscript: Keep track of active call in a separated structure.
      jscript: Store bytecode pointer in call_frame_t.
      jscript: Store function description in call_frame_t.
      jscript: Added new helpers for jumps.
      jscript: Store exception frame in call_frame_t.
      jscript: Store instruction pointer in call_frame_t.
      jscript: Store stack base in call_frame_t.
      jscript: Store current scope chain in call_frame_t.
      jscript: Store entry scope chain in call_frame_t.
      jscript: Pass script context instead of execution context to op handlers.
      jscript: Moved stack from execution context to script context.
      jscript: Store this object in call_frame_t.
      jscript: Store variable object in call_frame_t.
      jscript: Store return value in call_frame_t.
      jscript: Store is_global flag in call_frame_t.
      jscript: Get rid of no longer needed exec_ctx_t.
      secur32: Use %LATEST_RECORD_VERSION gnutls priority.
      jscript: Don't assume that ret value is cleared when it's not set explicitly.
      jscript: Clear stack outside OP_new handler.
      jscript: Clear stack outside OP_call* handlers.
      jscript: Sore is_global as a flag.
      jscript: Moved constructor return logic to interpreter.
      jscript: Merge setup_call_frame into exec_source.
      jscript: Keep reference to bytecode in call_frame_t.
      jscript: Moved more return object logic to enter_bytecode loop.
      jscript: Moved arguments object destuction to interpreter.
      jscript: Find Function.arguments on the stack instead of storing it in FunctionInstance object.
      jscript: Use already running interpreter for execution of member source function.
      jscript: Use already running interpreter for execution expressions that are source functions.
      jscript: Use already running interpreter for execution new expressions.
      jscript: Use already running interpreter for Function.apply() execution.
      jscript: Use already running interpreter for Function.call() execution.
      jscript: Use already running interpreter for eval() execution.
      mshtml: Moved createAttribute tests to test_attr.
      mshtml: Split conversion to string out of get_elem_attr_value_by_dispid.
      mshtml: Added support for IHTMLDOMAttribute2::get_value on detached attributes.
      mshtml: Added IHTMLDOMAttribute2::get_parentNode implementation.
      mshtml: Added IHTMLElement4::setAttributeNode implementation.
      mshtml: Return NULL instead of empty string in get_node_text.
      mshtml: Added IHTMLElement::get_outerText implementation.
      mshtml: Added IHTMLElement::put_outerText implementation.
      mshtml: Added IHTMLElement::outerText tests.
      mshtml.idl: Added IHTMLHtmlElement declaration.
      mshtml: Added HTMLHtmlElement object implementation.
      mshtml: Added IHTMLDivElement declaration.

Józef Kucia (46):
      wined3d: Add extension detection for ARB_copy_buffer.
      wined3d: Implement copying of buffer resources.
      wined3d: Add support for buffers in wined3d_device_copy_sub_resource().
      d3d10core/tests: Add test for copying buffer resources.
      d3d11/tests: Add test for copying buffer resources.
      wined3d: Prevent possible integer overflow in buffer_invalidate_bo_range().
      wined3d: Fix driver version check.
      wined3d: Introduce helper function for binding buffers.
      wined3d: Allow draw calls without color attachments.
      d3d10core/tests: Test render to depth texture.
      d3d11/tests: Test render to depth texture.
      d3d10core/tests: Add test for ClearRenderTargetView().
      d3d11/tests: Add test for ClearRenderTargetView().
      wined3d: Implement SM4 sample_c instruction.
      wined3d: Implement SM4 sample_c_lz instruction.
      wined3d: Use dcl_sampler to determine if shadow sampler is needed.
      d3d8: Avoid '\n' in middle of TRACE() messages.
      d3d9: Avoid '\n' in middle of TRACE() messages.
      wined3d: Improve advertized driver version for Windows 10.
      d3dx9: Avoid '\n' in middle of TRACE() message.
      d3dcompiler: Avoid '\n' in middle of TRACE() messages.
      wined3d: Recognize SM 4.1 ld2dms opcode.
      wined3d: Recognize SM5 dcl_resource_structured opcode.
      wined3d: Use lower case letters for simple data types in SM4 "opcode_table".
      wined3d: Recognize SM5 dcl_uav_typed opcode.
      wined3d: Recognize SM5 store_uav_typed opcode.
      d3d11: Implement private data methods for immediate ID3D11DeviceContext.
      d3d11: Add ID3D11HullShader interface stub.
      wined3d: Add hull shader type.
      wined3d: Introduce wined3d_shader_create_hs().
      wined3d: Recognize SM5 hs_decls opcode.
      wined3d: Recognize SM5 hs_fork_phase opcode.
      wined3d: Recognize SM5 dcl_input_control_point_count opcode.
      wined3d: Recognize SM5 dcl_output_control_point_count opcode.
      wined3d: Add system value names used by tessellation shaders.
      wined3d: Improve wined3d_sysval_semantic enum values naming.
      wined3d: Recognize SM5 dcl_hs_fork_phase_instance_count opcode.
      wined3d: Avoid abbreviations in SM5 opcode names.
      wined3d: Recognize SM5 dcl_hs_max_tessfactor opcode.
      wined3d: Recognize SM5 vForkInstanceId register.
      wined3d: Recognize SM5 dcl_tessellator_domain opcode.
      wined3d: Recognize SM5 dcl_tessellator_output_primitive opcode.
      wined3d: Recognize SM5 dcl_tessellator_partitioning opcode.
      wined3d: Get rid of long else-if sequence from shader_sm4_read_instruction().
      wined3d: Add domain shader type.
      d3d11: Implement d3d11_device_CreateDomainShader().

Ken Thomases (1):
      user32: Call the EnumDisplayMonitors callback using a wrapper.

Kerstin Noa (1):
      wined3d: Add NVIDIA GeForce GTX 980 GPU information.

Louis Lenders (3):
      gdiplus: GdipTransformPath should return Ok if matrix = NULL.
      gdiplus/tests: Add test for GdipTransformPath with null-matrix.
      user32: Add stub for IsProcessDPIAware.

Mark Jansen (1):
      user32: Correctly determine bit count for BITMAPCOREINFO in is_dib_monochrome.

Matteo Bruni (19):
      wined3d: Emulate luminance texture formats on core profile.
      wined3d: Add ARB_texture_swizzle extension.
      wined3d: Use ARB_texture_swizzle for color fixups when possible.
      d3d11/tests: Add a test for DXGI_FORMAT_A8_UNORM textures.
      d3d10core/tests: Add a test for DXGI_FORMAT_A8_UNORM textures.
      d3d11: Add a couple missing wined3d_mutex_unlock() in d3d_shader_resource_view_init() error paths.
      wined3d: Get rid of WINED3D_GLSL_SAMPLE_NPOT.
      wined3d: Clamp diffuse and specular color in GLSL vertex ffp replacement for core profile.
      wined3d: Don't flag vertex color clamping for changes on core profile.
      wined3d: Don't call glClampColorARB() on core profile.
      d3d9/tests: Add a test for color varyings clamping.
      d3d8/tests: Add a test for color varyings clamping.
      wined3d: Don't set legacy light and texture environment state on core profile contexts.
      wined3d: Disable ARB_point_sprite on core profile contexts.
      wined3d: Don't try to set line stippling on core profile contexts.
      ddraw/tests: Add a test for color varyings clamping.
      wined3d: Avoid the deprecated GLSL "attribute" keyword on core profile contexts.
      wined3d: Avoid the deprecated gl_FragData on core profile contexts.
      wined3d: Don't read texcoord attributes unless necessary.

Michael Müller (2):
      kernel32: Set ERROR_DLL_NOT_FOUND as error code in load_library for Win 9x compatibility.
      kernel32: Check for invalid filename pointers in CreateFileA for Win9x compatibility.

Michael Stefaniuc (1):
      ddraw: Use SetRect() instead of open coding it.

Nikolay Sivov (41):
      include: Added shimgdata.idl.
      msctf: Make ITextStoreACPSink a part of context object.
      msctf: Added stub ITextStoreACPServices support for context ITextStoreACPSink.
      xmllite/writer: Implement WriteRaw().
      xmllite/tests: Use static linking to xmllite.dll.
      xmllite/tests: Add a helper to test writer output.
      xmllite/tests: Add a helper to create/set writer output.
      ole32: Make CoGetInstanceFromFile() propagate failure codes to returned MULTI_QI data (Coverity).
      ole32: Fix CreataDataCache() return value when requested riid is not IUnknown, for aggregation case.
      msctf/tests: Fix a crash on unsupported interface.
      oleaut32/tests: Fix a test crash on some XP SP1 VM.
      xmllite/tests: A test for Write* behaviour on initial writer state.
      xmllite/writer: Fix initial state handling in WriteEndDocument().
      xmllite/writer: Properly fail on initial state in WriteEndElement().
      xmllite/writer: Fix WriteEndElement()/WriteFullEndElement() on ready state.
      msxml3/mxwriter: Don't allocate output buffer structure separately from the writer.
      msxml3/mxwriter: Simplify argument check in externalEntityDecl().
      msxml3/tests: Remove useless VariantClear().
      msxml3/tests: Use win_skip() consistently.
      xmllite/writer: Handle initial and ready states in the rest of tested Write* methods.
      xmllite/writer: Put writer into closed state on WriteAttributeString().
      xmllite/writer: Fix a bunch of Write* methods to set closed state.
      xmllite/writer: Make it possible to use WriteRaw() multiple times.
      user32: For EnableScrollBar() always go through EnableWindow() in SB_CTL case.
      include: Added IDXGISurface1 definition.
      msxml3/mxwriter: No need to use contiguous allocation in case of BSTR output.
      msxml3/mxwriter: Handle allocation failure in get_output().
      msxml3/mxwriter: Flush internal buffer as soon as it's filled.
      msxml3/mxwriter: Use 4K for internal buffer size.
      dwrite: Use regular QI way to return interface client asked for.
      dwrite: Update to IDWriteFactory3.
      include: Fix ID2D1DCRenderTarget definition.
      d2d1: Don't use render target pointer directly in bitmap initialization helpers.
      dxgi: Update to IDXGISurface1.
      d2d1/tests: Basic test for ID2D1DCRenderTarget creation.
      d2d1: Move bitmap creation helpers to common location.
      t2embed: Implement TTGetEmbeddingType().
      fontsub: Added CreateFontPackage() stub.
      d2d1: Move brush creation helpers to common location.
      d2d1: Move mesh creation to mesh.c.
      dwrite: Always initialize context and font table pointers.

Patrick Armstrong (1):
      bcrypt: Added BCryptHash function.

Paul Gofman (4):
      d3dx9: Add test for preshader in effect.
      d3d9/tests: Add test for D3DFMT_L8 format as render target.
      wined3d: Support D3DFMT_L8 format as render target.
      d3dx9: Introduce preshaders in effect.

Piotr Caban (11):
      msvcrt: Fix exception parameters number validation in x86_64 __CxxDetectRethrow.
      msvcrt: Dump exception information in x86_64 __CxxFrameHandler.
      msvcrt: Restore exception object stored in thread storage after frames unwinding.
      msvcrt: Register exception object before unwinding.
      msvcrt: Update previous exception stored in cxx_frame_info after frames unwinding.
      msvcrt: Call C structured exception translator in x86_64 __CxxFrameHandler.
      msvcrt: Improve dump_function_descr helper.
      msvcrt: Add x86_64 __CxxFrameHandler implementation.
      msvcrt: Handle frames with CXX_FRAME_MAGIC_VC6 and CXX_FRAME_MAGIC_VC7 magic value.
      include: Fix ITargetFrame definition.
      ieframe: Add ITargetFrame stub.

Rob Walker (1):
      wined3d: Add Nvidia GPU SKUs 950,950M,960,960M.

Sebastian Lackner (9):
      ntdll: Fix off-by-one errors in __wine_set_signal_handler.
      quartz: Fix use of CONTAINING_RECORD in impl_from_TransformFilter.
      jscript: Fix off-by-one error in decode_dword.
      include: Add definition for TP_CALLBACK_ENVIRON_V3.
      ntdll/tests: Add test for threadpool environment version 3.
      ntdll: Don't warn about unsupported environment version 3.
      kernel32: Fix handling of GetOverlappedResult when status remains STATUS_PENDING.
      user32: Set %ecx to address of rect in EnumDisplayMonitors callback.
      ntdll: Use close_handle instead of NtClose for internal memory management functions.

Stefan Dösinger (10):
      wined3d: Avoid storing a clip plane pointer in struct wined3d_cs_set_clip_plane.
      wined3d: Avoid storing a transformation matrix pointer in struct wined3d_cs_set_transform.
      wined3d: Avoid storing a rectangle pointer in struct wined3d_cs_set_scissor_rect.
      wined3d: Avoid storing a viewport pointer in struct wined3d_cs_set_viewport.
      wined3d: Avoid storing color and rectangle pointers in struct wined3d_cs_clear.
      wined3d: Avoid storing rectangle pointers in struct wined3d_cs_present.
      wined3d: Store sub-resource locations in the sub-resource structure.
      wined3d: Introduce wined3d_texture_validate_location().
      wined3d: Introduce wined3d_texture_invalidate_location().
      wined3d: Introduce wined3d_texture_get_memory().

Theodore Dubois (2):
      shell32: Fix return value for ASSOCSTR_FRIENDLYDOCNAME and ASSOCSTR_DEFAULTICON when passed a ProgID.
      shell32/tests: Additional tests for IQueryAssociations.

Thomas Faber (3):
      dbghelp: Use documented member name in SYMBOL_INFO structure.
      user32/tests: Test loading monochrome icons.
      user32: Handle BITMAPCOREINFO when loading icons.

Vincent Povirk (1):
      mscoree: Enable crash chaining in Mono.

--
Alexandre Julliard
julliard@winehq.org
