The Wine development release 1.5.8 is now available.

What's new in this release (see below for details):
  - More stream functionality in the C++ runtime.
  - A number of Windows Codecs improvements.
  - More WBEM classes and properties.
  - Some HTML Help fixes.
  - Support for printing fake italic fonts.
  - Various bug fixes.

The source is available from the following locations:

  http://prdownloads.sourceforge.net/wine/wine-1.5.8.tar.bz2
  http://mirrors.ibiblio.org/wine/source/1.5/wine-1.5.8.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.5.8 (total 80):

   5310  GDI32.SwapBuffers should call OPENGL32.wglSwapBuffers, not vice versa
  10458  Poptray 3.2 external exception with hotmail
  12966  Broken Sword 4 Demo fails to start
  15982  Geometry Wars game does not start
  16246  Setting WINEPATH has no effect
  16596  Game doesn't display properly without using 'Emulate a Virtual Desktop'
  16831  Audible Manager fails to active device
  17296  VMware Infrastructure Client 2.5 could not validate server's SSL certificate
  18640  .NET Framework 3.x/4.x WPF Media Integration Layer requires IDirect3D9ExImpl_GetAdapterDisplayModeEx implementation
  19771  SecureCRT: SSH connections fail.
  20651  Many .NET based applications need WMI core infrastructure (Wine doesn't provide a WMI implementation)
  20826  Images are mirrored horizontally when printing from Firefox
  21165  Borderlands is ~3x slower under Wine (GeForce Go 7900 GS).
  21230  d3dx9_36.dll: incomplete function "D3DXGetShaderConstantTableEx"
  21569  urlmon/url tests crash if +heap is enabled (crypt32 to blame?)
  21701  CarveWright locks up at loading screen (needs Win32_Bios WMI class)
  21812  3dgamestudio.com Venice demo crashes on exit
  23746  Bejeweled Twist game crashes on closing
  24144  Sample OBJ file is not rendered in OpenGL OBJ Viewer Demo (needs msvcp100.dll.??0?$basic_ostream@DU?$char_traits@D@std@@@std@@QAE@PAV?$basic_streambuf@DU?$char_traits@D@std@@@1@_N@Z)
  24287  stl_test crashes due to missing msvcp90.dll.?cout@std@@3V?$basic_ostream@DU?$char_traits@D@std@@@1@A
  24316  Level-R downloader needs msvcp90.dll.??0?$codecvt@_WDH@std@@QAE@I@Z,
  24875  SongSmith 1.0.2 doesn't install (managed assembly installation fails, needs Win32_OperatingSystem WMI class)
  25035  Red Ocean Demo requires unimplemented function d3dx9_36.dll.D3DXCreateVolumeTextureFromFileInMemory
  25094  Battlefield Bad Company 2: needs msvcp80.dll.??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE (purist)
  25252  Need For Speed Hot Pursuit (2010) crashes on startup (needs Win32_NetworkAdapter WMI class)
  25336  nimbuzz disconnects user after a few seconds
  26025  Atom Zombie Smasher demo needs locale_ctor_cstr
  26375  Medal of honor 2010 needs msvcp80.dll.??5?$basic_istream@DU?$char_traits@D@std@@@std@@QAEAAV01@AAI@Z
  26594  Civilization V crashes/freezes when loading or starting a game.
  26696  Dragon Age 2 Demo wants msvcp90.dll.??0?$basic_iostream@_WU?$char_traits@_W@std@@@std@@QAE@PAV?$basic_streambuf@_WU?$char_traits@_W@std@@@1@@Z
  26832  Multiple games/applications need msvcp80.dll.??0?$basic_ostringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z (Avatar Demo, The Witcher Demo, America's Army 3, Cmake, Gold Strike Poker)
  26892  Civ4 Beyond the Sword v3.19 mod "Master of Mana" needs msvcp71.?_Myptr@?$basic_string@GU?$char_traits@G@std@@V?$allocator@G@2@@std@@QAEPAGXZ
  26907  HaoZip: Crash when pressing right mouse button on tree
  26914  setvbuf() breaks iostream input (msvcrt/msvcp)
  27389  unimplemented function msvcp80.dll.??0?$basic_ostringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@H@Z
  27852  Sid Meier's Civilization V demo first screen missing text and graphics with builtin d3dx9_36, needs D3DXLoadVolumeFromMemory? (purist)
  28577  Gangsters 2 Demo (German): Timing errors
  28682  Ragnarok download shows a .NET exception on start (needs Win32_Processor WMI class)
  28922  Atom Zombie Smasher needs locale_ctor_cstr
  29256  Pulsen crashes with builtin msvcp90
  29637  MS Word 2007 cover page crashes
  29730  Visual Studio 11 Preview (.NET Framework 4.5 Preview) installer crashes due to unimplemented function KERNEL32.dll.LCMapStringEx
  29896  The Darkness II fails to render - needs PresentEx()
  29923  appwiz: Mistake in the text
  29932  Testdrive mouse pointer does not work
  30089  Microsoft SQL Server 2005 Express Edition: SQL Server System Configuration Checker fails (needs Win32_ComputerSystem WMI class)
  30336  Trillian crashes on run (msvcp90.dll.??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z)
  30524  Weather bug fails to detect vbscript (Property flag 1 not implemented)
  30551  SDET CMDCenter page faults
  30592  Give kernel32.GetDiskFreeSpaceW a trace message to better diagnose free disk space overflow problems with Win9X era apps/games
  30654  msvcp70.dll.??Mstd@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@0@0@Z is needed by Silent Hill 2 (purist)
  30845  Windows 7 SDK installer fails before putting up GUI
  30890  World of Goo crashes on startup: msvcp80.dll.??0?$basic_fstream@DU?$char_traits@D@std@@@std@@QAE@PBDHH@Z missed
  30913  dosbox svn version (EmuCR-Dosbox-r3738) needs unimplemented function msvcp100.dll.?_Fiopen@std@@YAPAU_iobuf@@PBDHH@Z
  30917  Liquidator 2 needs msvcp71.dll.??0?$basic_istringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@ABV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@1@H@Z
  30946  Secret of Monkey Island wants msvcp80.dll.?_Register@facet@locale@std@@QAEXXZ
  30948  HtmlHelp crashes when opening CHM file
  30949  [GNUTLS ERROR]Unable to savegame online with Ubisoft's games
  30950  0 A.D. crashes due to unimplemented msvcp90.dll.??0?$basic_stringstream@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@std@@QAE@ABV?$basic_string@_WU?$char_traits@_W@std@@V?$allocator@_W@2@@1@H@Z
  30951  mono's GraphicsPathTest.AddString_NegativeSize test fails
  30962  Rise of Nations Gold Edition : the characters animation is weird
  30987  Ragnarok download manager needs native gdiplus
  30989  CarveWright installer needs native vbscript
  31004  Crysis2 crashes on startup with seh:raise_exception code=c0000005
  31016  HTML Help does not properly handle index entries with the same name
  31019  stl_test crashes due to missing msvcp80.dll.??$?5DU?$char_traits@D@std@@@std@@YAAAV?$basic_istream@DU?$char_traits@D@std@@@0@AAV10@AAD@Z
  31029  TrackMania United Forever: Images not show properly
  31031  Need For Speed Hot Pursuit (2010) crashes (needs Win32_LogicalDisk WMI class)
  31032  Ragnarok download manager shows a .NET exception on start (GdipLoadImageFromStream stream clone fails)
  31033  Multiple apps need IWbemServices::GetObject to retrieve WMI class instances
  31037  Microsoft SQL Server 2005 Express Edition: SQL Server System Configuration Checker fails (Win32_Processor class table row count not set)
  31038  Window text in dutch is wrong
  31050  Civilization V demo crashes with unimplemented msvcp90:??0?$basic_stringstream@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QAE@H@Z (purist)
  31065  Unimplemented SHSetUnreadMailCountW crashes PortableApps Thunderbird
  31066  Avoid printing pServerPrincName with COLE_DEFAULT_PRINCIPAL ((OLECHAR *)-1) in IClientSecurity::SetBlanket stub FIXME
  31073  Cannot open .lnk files
  31087  WMI class property retrieval: support custom CIM data type to OLE variant (VT) mapping for properties (ProcessId CIM_UINT32 maps to VT_I4)
  31088  SongSmith 1.0.2 fails to install due to unimplemented IWshShortcut::WindowStyle property (set/get)
  31102  CMDcenter.exe failure: IXMLDOMNodeList__newEnum not implemented
  31110  SharpOcarina (.NET 4.0 app using OpenTK, C# OpenGL wrapper) fails to create a temp OpenGL context

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

Changes since 1.5.7:

Alexandre Julliard (39):
      winex11: Move the wglUseFontBitmaps implementation to opengl32, it's no longer driver-dependent.
      winex11: Move wglShareLists to the internal OpenGL extension functions.
      winex11: Move wglCopyContext and wglDeleteContext to the internal OpenGL extension functions.
      winex11: Move wglGetCurrentContext and wglGetCurrentDC to the internal OpenGL extension functions.
      gdi32: Remove OpenGL functions that don't use an HDC from the driver entry points.
      winex11: Move ChoosePixelFormat implementation to opengl32 and base it on DescribePixelFormat.
      gdi32: Forward DescribePixelFormat to opengl32 which in turn calls GdiDescribePixelFormat.
      gdi32: Forward SetPixelFormat to opengl32 which in turn calls GdiSetPixelFormat.
      gdi32: Forward SwapBuffers to opengl32 which in turn calls GdiSwapBuffers.
      opengl32: Add a helper function to correctly compare extension strings.
      opengl32: Add a helper function to build the extension list, and do it only when requested.
      opengl32: Generate an entry point for glDebugEntry.
      opengl32: Get rid of the X11 locking.
      gdiplus/tests: Add back some necessary casts.
      wined3d: Always load wgl functions from opengl32.dll.
      winex11: Add a GET_DRAWABLE escape to mirror the SET_DRAWABLE one.
      winex11: Use the GET_DRAWABLE escape to implement wglMakeCurrent.
      winex11: Use the GET_DRAWABLE escape to implement wglMakeContextCurrentARB.
      winex11: Export wglMakeCurrent and wglMakeContextCurrentARB as standard extension functions.
      winex11: Simplify wglSetPixelFormatWINE and export it as a standard extension function.
      opengl32: Add the concept of a WGL driver.
      opengl32: Move wglMakeContextCurrentARB to the WGL driver.
      opengl32: Move wglCreateContextAttribsARB to the WGL driver.
      opengl32: Move wglCreateContext to the WGL driver.
      opengl32: Move GetPixelFormat to the WGL driver.
      opengl32: Move wglGetProcAddress to the WGL driver.
      opengl32: Move wglGetCurrentContext implementation to opengl32.
      gdi32: Remove the remaining OpenGL entry points from the DC driver.
      gdi32: Add a null WGL driver.
      opengl32: Use proper handles for GL contexts and pass a context pointer to the WGL driver functions.
      opengl32: Move checks of the context thread id to opengl32.
      opengl32: Don't allow making a thread current in multiple threads.
      opengl32: Make the WGL driver context-specific.
      gdi32: Fix bitmap glyph allocation size in ExtTextOut fallback implementation.
      windowscodecs: Don't fail if the TIFF library doesn't have the functions to disable warnings.
      winex11: Move GLX definitions out of wgl.h.
      winex11: Replace wgl.h by the official wglext.h from the OpenGL registry.
      wined3d: Get WGL extension definitions from wglext.h.
      winex11: Use the correct drawable with the X11DRV_GET_DRAWABLE escape.

André Hentschel (5):
      winebuild: Put the PE header into the text section on ARM.
      configure: Downgrade the Thumb2 requirement to Thumb on ARM.
      ntdll: Check for ARMv7 architecture dynamically when loading a PE.
      advapi32: Remove 'stub' from TRACEs of implemented functions.
      kernel32: Change LCMapStringW to LCMapStringEx and call it from LCMapStringW.

Aurimas Fišeras (1):
      po: Update Lithuanian translation.

Austin English (3):
      kernel32: Add more tracing to GetDiskFreeSpaceW.
      po: Add missing url tag to nl.po.
      shell32: Add a stub for SHSetUnreadMailCountW.

Bruno Jesus (1):
      po: Fix a sentence in pt_BR translation.

Chris Robinson (3):
      quartz: Fix frame length calculation for MPEG audio.
      quartz: Improve MPEG header parsing and sync recovery.
      quartz: Remove the seek position table from the MPEG splitter.

Detlef Riekenberg (1):
      shell32/tests: Fix a failure on w2k.

Dmitry Timoshkov (37):
      windowscodecs: Add WICImagingCategories registration.
      windowscodecs: Implement ImagingFactory_CreateDecoder.
      windowscodecs: TiffDecoder_GetThumbnail should return NULL interface.
      windowscodecs: Implement TiffDecoder_GetPreview.
      windowscodecs: Implement TiffFrameDecode_GetThumbnail.
      windowscodecs: Implement MetadataReaderInfo_GetVendorGUID.
      gdiplus: When loading a bitmap frame save its IWICMetadataReader interface.
      gdiplus: Implement GdipGetPropertyCount.
      gdiplus: Implement GdipGetPropertyIdList.
      gdiplus: Add some tests for image properties.
      gdiplus: Avoid casting IWICBitmapFrameDecode to IWICBitmapSource.
      windowscodecs: Suppress libtiff warnings.
      gdiplus: Add a test for image stream refcount.
      gdiplus: Increase refcount of the source stream when loading a bitmap instead of cloning it.
      windowscodecs: Make sure that stream is not reused once the decoder is initialized.
      gdiplus: Comment out a test that crashes some gdiplus implementations.
      include/basetsd.h: Fix int64 to int truncation warnings when compiling with a 64-bit PSDK compiler.
      windowscodecs: Implement MetadataHandler_GetValue.
      gdiplus: Implement GdipGetPropertyItemSize.
      gdiplus: Implement GdipGetPropertyItem.
      gdiplus: Add some tests for GdipGetPropertyItemSize and GdipGetPropertyItem.
      gdiplus: Add a bunch of tests for TIFF image properties.
      gdiplus: Add GdipSaveAdd stub.
      gdiplus: Add a test to show that GdipCloneImage is not supposed to increase refcount of the source image.
      gdiplus: Add a test for 'value' pointer in the PropertyItem structure.
      gdiplus: Implement GdipGetPropertySize.
      gdiplus: Implement GdipGetAllPropertyItems.
      gdiplus: Add some tests for GdipGetPropertySize and GdipGetAllPropertyItems.
      windowscodecs: Implement BitmapDecoderInfo_GetSpecVersion.
      windowscodecs: Implement BitmapEncoderInfo_GetSpecVersion.
      windowscodecs: Implement FormatConverterInfo_GetSpecVersion.
      windowscodecs: Implement PixelFormatInfo_GetSpecVersion.
      windowscodecs: Implement MetadataReaderInfo_GetSpecVersion.
      windowscodecs: Implement MetadataReaderInfo_DoesRequireFullStream.
      windowscodecs: Implement MetadataReaderInfo_DoesSupportPadding.
      gdiplus: Add parameter checks to GdipSetPropertyItem, print item contents in the trace.
      gdiplus: Fix the convert_unit() comment to reflect its functionality.

Eric Pouech (2):
      dbghelp: Added support for index leaves in types definition for CodeView debug format.
      winedbg: In 'info locals' command, show the full register/stack layout for parameters & locals.

Erich Hoover (4):
      hhctrl.ocx: Add icons for the table of contents TreeView control.
      hhctrl.ocx: Keep parsing failure from causing a segmentation fault.
      hhctrl.ocx: Turn multiple index entries of the same name into a single entry.
      hhctrl.ocx: Use document title for subtopics in the index.

Francois Gouget (17):
      d3dx9_36/tests: Simplify test_D3DXSHMultiply3().
      msvcp90: Add a space between the spec entry name the implementation function.
      msvcp90: Make numpunct_char_use_facet() static.
      jscript: Make int_to_bstr() static.
      msvcp90: Make a couple more numpunct_*_use_facet() functions static.
      start: Fix the command line handling.
      opencl: We still use the deprecated OpenCL 1.1 APIs.
      msvcp60: Make _Lockit_ctor_locktype() static.
      msvcp60: Remove unused functions.
      po: Fix the Gecko link in the Dutch translation.
      msvcp60: Remove the msvcp90 debug channel from misc.c as it is unused.
      start: Fix the name of the open verb for the /ProgIDOpen option.
      Assorted spelling fixes.
      dssenh/tests: Add a trailing '\n' to a skip() call.
      d3dx9_36/tests: Add a trailing '\n' to ok() calls.
      kernel32/tests: Improve some traces for the CreateTimerQueueTimer() tests.
      kernel32/tests: Test deleting a timer right after creating it.

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

Hans Leidekker (26):
      wbemprox: Add a partial Win32_NetworkAdapter class implementation.
      wbemprox: Parse the resource string in IWbemLocator::ConnectServer.
      wbemprox: Implement IWbemServices::OpenNamespace.
      wbemprox: Implement IWbemServices::CreateInstanceEnum.
      wbemprox: Implement Win32_OperatingSystem.OSLanguage and Win32_OperatingSystem.SystemDirectory.
      wbemprox: Implement Win32_ComputerSystem.NumberOfLogicalProcessors and Win32_ComputerSystem.NumberOfProcessors.
      wbemprox Implement Win32_Processor.CpuStatus and Win32_Processor.DeviceId.
      wbemprox: Set the row count in fill_processor.
      wbemprox: Store the result index in the class enumerator instead of the view.
      wbemprox: Add support for 64-bit integer types.
      wbemprox: Implement Win32_NetworkAdapter.Speed.
      wbemprox: Implement Win32_OperatingSystem.CSDVersion.
      wbemprox: Implement Win32_ComputerSystem.TotalPhysicalMemory.
      wbemprox: Implement more properties of Win32_VideoController.
      wbemprox: Implement IWbemServices::GetObject.
      wbemprox: Support IClientSecurity on the class enumerator object;.
      wbemprox: Add reference counting to the query object.
      wbemprox: Implement IEnumWbemClassObject::Clone.
      wbemprox: Implement Win32_Processor.ProcessorId.
      wbemprox: Fix returned variant type and flavor for system properties.
      wbemprox: Win32_NetworkAdapter.InterfaceIndex is unsigned.
      wbemprox: Return 64-bit property values as strings.
      wbemprox: Avoid an exception when tracing the principal name in IClientSecurity::SetBlanket.
      wbemprox: Add a partial Win32_LogicalDisk class implementation.
      wbemprox: Support overriding the CIM to VARIANT type mapping for integer properties.
      wbemprox: Fix the CIM to VARIANT type mapping for a couple of properties.

Henri Verbeet (30):
      secur32: Handle padding only records in schan_DecryptMessage().
      secur32: We can't read more than expected_size - 5 in schan_DecryptMessage().
      secur32: Handle incomplete messages in schan_InitializeSecurityContextW().
      wined3d: Only unset the onscreen depth / stencil buffer once in wined3d_device_reset().
      wined3d: Release the stateblock only after mode setting in wined3d_device_reset().
      wined3d: Get rid of is_display_mode_supported().
      include: Add the DEVMODE dmDisplayFlags constants.
      wined3d: Take scanline ordering into account in the mode setting code.
      d3d9: Implement d3d9_GetAdapterDisplayModeEx().
      d3d9: Implement d3d9_device_GetDisplayModeEx().
      wined3d: Avoid a useless call to wined3d_get_adapter_mode_count() in wined3d_enum_adapter_modes().
      wined3d: Avoid a redundant call to EnumDisplaySettingsExW() in wined3d_enum_adapter_modes().
      wined3d: Use the device name stored in the adapter in wined3d_enum_adapter_modes().
      wined3d: Use the device name stored in the adapter in wined3d_get_adapter_mode_count().
      ddraw: Prevent ddraw from being unloaded.
      wined3d: Use the device name stored in the adapter in wined3d_get_adapter_display_mode().
      wined3d: Use the device name stored in the adapter in wined3d_set_adapter_display_mode().
      wined3d: Use the device name stored in the adapter in wined3d_get_adapter_identifier().
      d3d9: Implement d3d9_device_PresentEx().
      d3d9: Implement d3d9_GetAdapterModeCountEx().
      d3d9: Implement d3d9_EnumAdapterModesEx().
      d3d9: Pass a wined3d_swapchain_desc structure to swapchain_init().
      d3d8: Pass a wined3d_swapchain_desc structure to swapchain_init().
      d3d8: Introduce a separate function for swapchain creation.
      winex11: Get rid of some unused prototypes.
      d3d9: Introduce a helper function to create a wined3d_swapchain_desc from D3DPRESENT_PARAMETERS.
      d3d9: Introduce a helper function to create D3DPRESENT_PARAMETERS from a wined3d_swapchain_desc.
      d3d8: Introduce a helper function to create a wined3d_swapchain_desc from D3DPRESENT_PARAMETERS.
      d3d8: Introduce a helper function to create D3DPRESENT_PARAMETERS from a wined3d_swapchain_desc.
      winex11: Use our own structure for mode information.

Huw Davies (3):
      oleaut32: Add support for boolean strings in VarNot.
      oleaut32: If the records' guids are equal then the records match.
      wineps: Add support for printing fake italic fonts.

Hwang YunSong (2):
      po: Update Korean translation.
      po: Update Korean translation.

Jacek Caban (48):
      mshtml: Keep reference in node returned from get_node.
      mshtml: Added separated types for outer and inner HTML windows.
      mshtml: Moved document node from HTMLOuterWindow to HTMLInnerWindow.
      mshtml: Moved DispatchEx instance from HTMLOuterWindow to HTMLInnerWindow.
      mshtml: Moved global_props from HTMLOuterWindow to HTMLInnerWindow.
      mshtml: Moved option_factory from HTMLOuterWindow to HTMLInnerWindow.
      mshtml: Moved script_hosts from HTMLOuterWindow to HTMLInnerWindow.
      mshtml: Store event object in HTMLInnerWindow instead of HTMLOuterWindow.
      jscript: Don't use DISPPARAMS named args for internal parameter passing.
      jscript: Don't use DISPPARAMS for internal arguments.
      jscript: Removed no longer needed arg_cnt and get_arg helpers.
      jscript: Added more apply and call tests.
      mshtml: Moved image_factory to HTMLInnerWindow.
      mshtml: Moved screen property to HTMLInnerWindow.
      mshtml: Moved history property to HTMLInnerWindow.
      mshtml: Return referenced instances from node constructors.
      mshtml: Use inner window as script global object.
      mshtml: Share nsIDOMText reference with nsIDOMNode.
      mshtml: Call HTMLDOMNode_Init directly in HTMLCommentElement_Create.
      mshtml: Share nselem reference with nsnode.
      mshtml: Share nsanchor reference with nsnode.
      mshtml: Keep references to nodes stored in HTMLElementCollection.
      mshtml: Get rid of no longer needed unk_ref from HTMLElementCollection.
      mshtml: Share nsform reference with nsnode.
      mshtml: Share nsframe and nsiframe references with nsnode.
      mshtml: Share nstable reference with nsnode.
      mshtml: Share nsdoc reference with nsnode.
      mshtml: Share nsimg reference with nsnode.
      mshtml: Share nsoption reference with nsnode.
      mshtml: Share nsscript reference with nsnode.
      mshtml: Share nsobject reference with nsnode.
      mshtml: Don't release nselem in HTMLElement_destructor.
      mshtml: Share nsrow reference with nsnode.
      mshtml: Share nsstyle reference with nsnode.
      mshtml: Share nstextarea reference with nsnode.
      mshtml: Use proper macro to release nstext.
      mshtml: Share nsinput reference with nsnode.
      mshtml: Share nsselect reference with nsnode.
      mshtml: Keep reference to document in HTMLDOMChildrenCollection.
      mshtml: Return referenced object in get_node_obj.
      mshtml: Reimplement get_node_obj using vtbl comparison.
      wininet: Try harder to reuse connection after authorization.
      mshtml: Force cycle collection when releasing main document object.
      vbscript: Added a hack for parameterized assignments with one argument.
      vbscript: Added more parameterized assignment tests.
      vbscript: Skip the first (null) instruction in dump_code.
      vbscript: Added interpreter and compiler support for for each loops.
      vbscript: Added for each loop tests.

Jaime Rave (1):
      winhttp: Show discovery via DHCP not supported just one time.

Julian Rüger (5):
      localui/tests: Fix typos/grammar.
      winspool.drv/tests: Fix typos/grammar.
      opengl32: Fix typos in comments.
      opengl32: Remove spaces preceding punctuation, streamline some debug messages.
      po: Update German translation.

Józef Kucia (6):
      wined3d: Use the system memory pool for the logo surface.
      d3dx9: Implement D3DXLoadVolumeFromMemory.
      d3dx9/tests: Add tests for D3DXLoadVolumeFromMemory.
      d3dx9: Implement D3DXLoadVolumeFromVolume.
      d3dx9: Implement D3DXCreateVolumeTextureFromFileInMemoryEx.
      d3dx9: Forward D3DXCreateVolumeTextureFromFile functions to D3DXCreateVolumeTextureFromFileInMemoryEx.

Lauri Kenttä (3):
      po: Add missing ='s in the Catalan translation.
      po: Update Norwegian Bokmål translation.
      po: Update Finnish translation.

Lucas Zawacki (2):
      joy.cpl: Make dialog the same size as the other cpl applets.
      joy.cpl: Added POV axis visualization.

Marek Chmiel (1):
      dssenh: Added CryptAcquireContext test for the DSSENH cryptographic service provider.

Michael Stefaniuc (25):
      usp10: Remove unreachable break after return (Smatch).
      qedit: Basic COM cleanup for SampleGrabber.
      qedit: COM cleanup for the IPin iface (SampleGrabber).
      qedit: Support COM aggregation for SampleGrabber.
      d3drm: Get rid of unsafe_impl_from_IDirect3DRMFrame2().
      d3drm: Make IDirect3DRMx_CreateFrame() more forgiving about the parent frame.
      quartz: Handle wrong COM aggregation attempts in IClassFactory_CreateInstance.
      quartz: Standardize COM aggregation for FilterGraph.
      quartz: Standardize COM aggregation for FilterMapper.
      quartz: Move the FilterMapper_create to avoid forward declarations.
      quartz: COM cleanup for IAMFilterMiscFlags in NullRenderer.
      quartz: Standardize COM aggregation for NullRenderer.
      quartz: Use impl_from_IBaseFilter() instead of casts.
      quartz: Move NullRenderer_create() to avoid forward declarations.
      quartz: COM cleanup for IAMFilterMiscFlags in VideoRenderer.
      quartz: Don't set the VideoRenderer object on creation failure.
      quartz: Standardize COM aggregation for VideoRenderer.
      quartz: Move VideoRenderer_create() to avoid forward declarations.
      quartz/tests: Add COM aggregation test for NullRenderer.
      qedit: Support COM aggregation for MediaDet.
      qedit/tests: Add COM aggregation test for MediaDet.
      quartz: COM cleanup for IMediaSample2.
      quartz: Avoid a COM object => iface => object round trip.
      quartz: Use unsafe_impl_from_IMediaSample() instead of a cast.
      quartz: Use StdMemAllocator_from_IMemAllocator() instead of casts.

Nikolay Sivov (21):
      msxml3: Return stream reference from get_output() if stream is set.
      msxml3: Properly handle -1 as length of element qualified name in startElement().
      msxml3: Fix closing of open element.
      msxml3: Initial implementation of attributeDecl() in writer.
      msxml3: Implement internalEntityDecl() for writer.
      msxml3: Basic refcount test for IMXNamespacePrefixes.
      msxml3: Recognise PROPFIND method in open().
      msxml3: Fix async flag setting.
      msxml3: Accept VT_ERROR body as empty data.
      msxml3: Support VT_I2 variants tracing.
      msxml3: Support VT_UI1|VT_ARRAY variant debug output.
      msxml3: Implement put_nodeTypedValue() for bin.base64 type and commonly used input vartypes.
      wshom: Implement WindowStyle property for IWshShortcut.
      msxml3: Correct IEnumVARIANT regarding IUnknown forwarding.
      msxml3: Fix node interface leak after nextNode().
      msxml3: Make it possible to use different outer objects with single IEnumVARIANT implementation.
      msxml3: Add IEnumVARIANT support for IXMLDOMNodeList.
      msxml3: Implement _newEnum() for schema cache.
      msxml3: Fix putref_schemas()/get_schemas() behaviour on NULL pointer.
      msxml3: Add support for bin.hex element type encoding.
      msxml3: Added _newEnum() support for IXMLDOMNamedNodeMap.

Nozomi Kodama (2):
      d3dx9_36: Implementation of D3DXSHDot.
      d3dx9_36: Implementation of D3DXSHScale.

Owen Rudge (2):
      msvcp90: Add initial basic_stringbuf<char> implementation.
      msvcp90: Sync spec files.

Piotr Caban (35):
      msvcp90: Added num_put<wchar> implementation.
      msvcp90: Added partial num_get<wchar> and num_get<short> implementation.
      msvcp90: Added num_get<wchar>::_Getffld implementation.
      msvcp90: Added num_get<wchar>::_Getifld implementation.
      msvcp90: Added num_get<wchar>::get functions implementation.
      msvcp90: Added basic_ostream<wchar> implementation.
      msvcp90: Export clog object.
      msvcp90: Added basic_istream<wchar> implementation.
      msvcp90: Added basic_iostream<wchar> class implementation.
      msvcp90: Fix basic_ostream<char>::operator<<(basic_string) export.
      msvcp90: Added basic_istream::operator>>(char&) implementation.
      msvcp80: Forward basic_string<char>::erase functions to msvcp90.
      msvcp90: Added locale::facet::_Register function implementation.
      msvcp90: Added _Fiopen functions implementation.
      msvcp90: Allocate different id's for facets in use_facet functions.
      msvcp90: Added partial implementation of locale_ctor_cstr function.
      msvcp90: Sync spec files.
      msvcp90: Always destroy _Lockit object in use_facet function.
      msvcp90: Implement remaining functions in basic_stringbuf<char> class.
      msvcp90: Added basic_ostringstream<char> implementation.
      msvcp90: Added basic_istringstream<char> implementation.
      msvcp90: Added basic_stringstream<char> implementation.
      msvcp90: Added basic_stringbuf<wchar> and basic_stringbuf<short> implementation.
      msvcp90: Added basic_ostringstream<wchar> implementation.
      msvcp90: Added basic_istringstream<wchar> implementation.
      msvcp90: Added basic_stringstream<wchar> implementation.
      msvcp90: Sync spec files.
      msvcp90: Fix __cdecl functions definitions that returns structures.
      msvcp90/tests: Fixed _Getctype tests.
      msvcp90/tests: Added _Getcoll tests.
      msvcp90: Keep class definitions in separate file.
      msvcp60: Keep class definitions in separate file.
      msvcp71: Forward basic_string::_Myptr functions to msvcp90.
      msvcp71: Forward basic_string::operator{<,<=,>,>=} to msvcp90.
      msvcp90: Added locale::empty implementation.

Rico Schüller (4):
      d3dx9: Implement ID3DXBaseEffect::SetMatrixPointerArray().
      d3dx9: Implement ID3DXBaseEffect::SetMatrixTransposePointerArray().
      d3dx9/tests: Add effect parameter value SetMatrixPointerArray() test.
      d3dx9/tests: Add effect parameter value SetMatrixTransposePointerArray() test.

Roderick Colenbrander (3):
      winex11.drv: Remove GLX_ATI_render_texture support.
      opengl32: Check for valid context in wglGetProcAddress.
      opengl32: Disable wglGetProcAddress for core GL 1.0/1.1 functions.

Sergey Guralnik (1):
      user32: Add test for ComboBox repositioning behavior.

Stefan Leichter (1):
      gdi32: Spelling fix.

Vincas Miliūnas (1):
      wined3d: Recognize AMD Radeon HD 6700 Series renderer string.

Vincent Povirk (18):
      windowscodecs: Implement PixelFormatInfo_GetBitsPerPixel.
      windowscodecs: Implement PixelFormatInfo_GetChannelCount.
      windowscodecs: Implement IWICPixelFormatInfo::GetChannelMask.
      windowscodecs: Implement IWICPixelFormatInfo::GetFormatGUID.
      windowscodecs: Implement IWICPixelFormatInfo2::GetNumericRepresentation.
      gdiplus: Remove FIXME from GdipAddPathString.
      appwiz: Update text to match button names.
      windowscodecs: Implement IWICPixelFormatInfo2::SupportsTransparency.
      windowscodecs: Add tests for IWICPixelFormatInfo.
      windowscodecs: Add stub IWICBitmapScaler implementation.
      windowscodecs: Implement IWICImagingFactory::CreateEncoder.
      windowscodecs: Implement IWICBitmapScaler::Initialize.
      windowscodecs: Implement IWICBitmapScaler::GetSize.
      windowscodecs: Implement IWICBitmapScaler::GetPixelFormat.
      windowscodecs: Implement IWICBitmapScaler::GetResolution.
      windowscodecs: Implement IWICBitmapScaler::CopyPalette.
      windowscodecs: Implement BitmapScaler_CopyPixels.
      windowscodecs: Implement IWICBitmapCodecInfo::GetPixelFormats.

--
Alexandre Julliard
julliard@winehq.org
