The Wine development release 1.3.12 is now available.

What's new in this release (see below for details):
  - Support for multiple icon sizes in winemenubuilder.
  - Improvements to the help browser.
  - Initial stab at DOSBox integration.
  - Various MSI fixes.
  - Some fixes to the Wine debugger.
  - Various bug fixes.

The source is available from the following locations:

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

   5349  Wine crashes on attempt to run SimTower with sound
  12004  foobar2000-0.9.4.4 toolbars not moveable
  12006  ForceBindIP crashes
  12219  The "House of the Dead 3" "start game" options menu doesn't show any text.
  13061  DreamSeeker: Map Element rendered improperly. (DX)
  13165  Crash with Far Cry Demo in Direct3D
  13457  Facewound crashes when in-game console is opened
  13626  PowerPoint Viewer 2007: some sounds resembles pig
  13852  2d game has lost sounds (some go some don't go)
  14484  Unable to install Chaser, setup.exe segfaults
  15230  eXperience112 demo won't run
  15423  mIRC enters deadlock after a second playback attempt
  15849  Madden NFL 08: creating thousands of orphaned temp files
  16163  FEAR 1.08 (DX8 mode): FBO status - incomplete dimensions
  16241  Call of duty 5 World at War : Fails to initialize
  16330  wine <=1.1.9 hangs if mIRC sound events is on OR application crash
  17458  Quake Live will crash firefox upon entering the Quake Live Portal
  17494  Goalpro 2008 crashes when trying to print
  17716  Madden NFL 08 doesn't recognize Saitek P990 right analog horizontal axis
  18182  Wildlife Park Gold: intro video displays garbage pixels
  18597  Source Insight: Crashes when cursor focus is in the Symbol Window and then Esc is pressed.
  18755  Street Wars: Constructor Underground - Game sound lags lots and freezes up
  19575  Settlers: Rise of an Empire demo hangs/crashes when starting a game
  19920  Bloom and other lighting effects not rendered to the bottom in The.Popular.Demo
  20314  wine loader doesn't work on Debian/kFreeBSD
  20340  CryptImportKey CRYPT_IPSEC_HMAC_KEY support missing, causes failure in chromium's base_unittests.exe in HMACTest.*
  21500  Paste in a text box replaces all the text, even if the text wasn't selected
  21714  Moraff's Maximum MahJongg Vol. 2: Midi's won't play
  21868  Can't save anything in Online-Profiles in Anno1404
  22314  Sims 3: error window is completely blank
  23073  Printing specific range of pages instead of all pages fails
  23135  Mass Effect 2 hangs/crashes after Shepard is reanimated
  23223  Cyberboard Player: unwind menu disappear when clicked
  23394  unimplemented function msvcr80.dll._set_abort_behavior (affects Windows Live Mail, Sims 3)
  23708  winemenubuilder:SaveIconResAsPNG unsupported bpp 21060, please report
  23975  mcicda wants to open the nth cdrom in the system
  24212  Morrowind Script Extender (MWSE) fails silently
  24306  kernel/console: no more EOF handling.
  24400  Sims 3 crashes at startup with unimplemented function msvcr80.dll._atoflt
  24800  wine try to use float texture even if driver don't support them
  24913  children of the nile demo crashes  because of TGA picture format
  25169  Anarchy Online crashes when pushing settings button
  25463  ZEMAX cannot display help pages
  25556  Resizing window causes SimSig to hang
  25593  Burnout Paradise Configuration crashes
  25616  Comet Busters: Error displays indicating Wine cannot continue
  25685  When printing diagrams & charts in Family Historian 4.1.3 characters are upside down
  25686  uninstaller and appwiz.cpl fails to remove registry entry
  25720  Invisible input text in wineconsole
  25752  [patch] add support for indexed formats to GdipBitmapSetPixel
  25784  Crash while installing safesign_icbc_per.exe ( Driver for G&D USB-Shield)
  25789  No icons in wine's iexplore

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

Changes since 1.3.11:

Akihiro Sagawa (6):
      gdi32/tests: Add more tests for GetCharABCWidthsA.
      gdi32: Pass the byte count to FONT_mbtowc in GetCharABCWidthsA.
      gdi32: Avoid an integer overflow in GetCharABCWidthsA.
      gdi32: Add a helper function to get chars in the range.
      gdi32: Use the helper function in GetCharWidth32A to support DBCS.
      gdi32: Use the helper function in GetCharABCWidthsFloatA to support DBCS.

Alexander Kochetkov (1):
      wineps.drv: Disable world transform for fonts in GM_COMPATIBLE mode.

Alexander Morozov (5):
      include: Add some Shell32 interfaces and coclasses.
      shell32: Add stub implementation of IShellDispatch.
      shell32: Register CLSID_Shell.
      shell32: Added typelib.
      shell32: Implement IDispatch methods of IShellDispatch.

Alexandre Julliard (72):
      makefiles: Generate dependencies for rsrc.pot.
      configure: Update libgettextpo check to detect too old versions.
      notepad: Convert menu and string table resources to po files.
      progman: Convert menu and string table resources to po files.
      taskmgr: Convert menu and string table resources to po files.
      comctl32/imagelist: Don't change destination size in ImageList_Duplicate without corresponding allocation.
      tools: Upgrade the config.guess/config.sub scripts.
      view: Convert menu and string table resources to po files.
      wineconsole: Convert string table resources to po files.
      winedbg: Convert menu and string table resources to po files.
      winemine: Convert menu and string table resources to po files.
      winhlp32: Convert menu and string table resources to po files.
      winefile: Convert menu and string table resources to po files.
      wordpad: Convert menu and string table resources to po files.
      browseui: Convert menu and string table resources to po files.
      comctl32: Convert string table resources to po files.
      winedump: Fix printing of module sources in PDB files.
      winedump: Don't crash when the PDB filenames table isn't found.
      winedump: Print the machine field from the PDB symbol table.
      dbghelp: Try to load the string table from file number 4 too.
      winedump: Try to load the PDB string table from file number 4 too.
      credui: Convert string table resources to po files.
      cryptui: Convert string table resources to po files.
      inetcpl.cpl: Convert string table resources to po files.
      localui: Convert string table resources to po files.
      mpr: Convert string table resources to po files.
      mshtml: Convert string table resources to po files.
      msvfw32: Convert string table resources to po files.
      setupapi: Convert string table resources to po files.
      shdocvw: Convert menu and string table resources to po files.
      shlwapi: Convert string table resources to po files.
      wininet: Convert string table resources to po files.
      winspool.drv: Convert string table resources to po files.
      libwine: Fix handling of null character in vsnprintfW for %c format.
      cryptui: Unify the spelling of "All files" with the other modules.
      avifil32: Append the *.* extension by hand after loading the string.
      appwiz.cpl: Build the file filter by hand instead of hardcoding it in resource strings.
      shell32: Build the file filter by hand instead of hardcoding it in resource strings.
      appwiz.cpl: Convert string table resources to po files.
      avifil32: Convert string table resources to po files.
      oleacc: Convert string table resources to po files.
      oledlg: Convert string table resources to po files.
      shell32: Convert menu and string table resources to po files.
      user32: Convert menu and string table resources to po files.
      libwine: Fall back to normal exec if the preloader doesn't exist.
      dbghelp: Support pointer types of various sizes.
      winevdm: Try to exec dosbox if DOS is not supported natively.
      oleview: Build the file filter by hand instead of hardcoding it in resource strings.
      regedit: Build the file filter by hand instead of hardcoding it in resource strings.
      winecfg: Build the file filter by hand instead of hardcoding it in resource strings.
      oleview: Convert menu and string tables resources to po files.
      regedit: Convert menu and string tables resources to po files.
      winecfg: Convert menu and string tables resources to po files.
      comdlg32: Convert string tables resources to po files.
      sane.ds: Convert string tables resources to po files.
      wrc: Remove the context prefix when generating the po file for English.
      mshtml: Remove a leftover string table.
      configure: Add a check for the QuickTime development headers.
      po: Unify the spelling of some menu entries across programs.
      po: Update the English po files.
      libwine: Remove redundant wine_switch_to_stack implementations.
      shdocvw: Get rid of the IDB_IETOOLBAR define, the bitmap is loaded by name.
      wmc: Add support for creating resource and plain binary files.
      makefiles: Generate .res files directly from message files.
      server: Add symbolic names in filesystem change actions traces.
      widl: Don't generate proxies for oleautomation interfaces.
      actxprxy: Add proxies for shldisp.idl.
      include: Add an assert.h msvcrt header.
      shell32: Convert dll registration to the IRegistrar mechanism.
      shdocvw: Convert coclass registration to the IRegistrar mechanism.
      hhctrl: Don't use an extended menu.
      ole32: Cleanup return value handling in CoWaitForMultipleHandles.

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

Andrew Bogott (1):
      winemenubuilder: Avoid passing a null pointer (or a non-pointer) to extract_icon in InvokeShellLinkerForURL.

Andrew Eikum (2):
      mmdevapi: Children of IAudioClient should hold a reference to their parents.
      mmdevapi: Prevent deadlock when releasing a stream that's still playing.

Andrew Nguyen (26):
      kernel32: Improve parameter validation for ReadConsoleOutputCharacterW.
      kernel32: Improve parameter validation for ReadConsoleOutputCharacterA.
      kernel32: Improve parameter validation for ReadConsoleOutputAttribute.
      kernel32/tests: Demonstrate an input event handling peculiarity with WriteConsoleInputW.
      kernel32/tests: Demonstrate an input event handling peculiarity with WriteConsoleInputA.
      kernel32: Pass an output parameter when calling WriteConsoleOutputCharacterW and FillConsoleOutputAttribute.
      wineconsole: Pass an output parameter when calling ReadConsoleOutputCharacterW.
      advapi32: Convert the trustee name buffer based on trustee form in SetEntriesInAclA.
      explorerframe/tests: Free the shell items at the end of the event tests.
      fusion: Avoid memory leaks on memory allocation failure in parse_display_name.
      gameux: Initialize registry path pointer to NULL in GAMEUX_getAppIdFromGDFPath.
      gameux: Free the allocated GameStatisticsImpl object on failure in GameStatisticsMgrImpl::GetGameStatistics.
      kernel32/tests: Free environment block in the child process when it is unused.
      iphlpapi: Correctly compute the buffer offset for the DNS address structure in GetAdaptersAddresses.
      msvcrt: Fix a possible memory leak in _wpopen if a memory allocation fails.
      msvcrt: Fix a possible memory leak in _wsystem for the NULL command case.
      msvcrt/tests: Avoid embedding extended ASCII characters in locale string literals.
      msvcrt: Null terminate the temporary locale buffer in _create_locale.
      setupapi: Allocate the proper number of bytes for the drive spec.
      setupapi: Fix some memory leaks in SetupDiGetINFClassA.
      shell32: Fix initial reference count for a new IAutoComplete instance.
      include: Add an extern C++ block around the property key equality operators.
      regedit: Remove an unused string array.
      kernel32/tests: Free environment strings buffer at the conclusion of the environment tests.
      windowscodecs: Avoid writing to the output pointer on failure in StreamOnStreamRange::Read and StreamOnStreamRange::Write.
      windowscodecs: Use memmove in StreamOnMemory::Read and StreamOnMemory::Write to cope with potentially overlapped memory copying.

André Hentschel (7):
      imagehlp: Use define instead of hardcoded value.
      po: Update German translation.
      winedump: Fix MZ Header detection.
      kernel32/tests: Don't test function directly when reporting GetLastError().
      po: Update German translation.
      kernel32/tests: Use the right return type and a better failed test message.
      libwine: Implemented the call_on_stack function for Sparc.

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

Austin English (7):
      configure: Check for snd_pcm_hw_params_get_access_mask() when checking for ALSA.
      winecfg: Fix a compiler warning on PowerPC.
      libwine: Add missing checks for FreeBSD_kernel.
      server: Add missing checks for FreeBSD_kernel.
      ntdll: Add missing checks for FreeBSD_kernel.
      loader: Add missing checks for FreeBSD_kernel.
      shell32/tests: fix a couple memory leaks (Valgrind).

Damjan Jovanovic (1):
      winemenubuilder: Extract all icon sizes on freedesktop too.

David Hedberg (5):
      oleaut32: Handle NULL arguments to ITypeComp::BindType.
      oleaut32: Make ITypeComp::BindType case-insensitive.
      urlmon: Add some error handling to the http protocol.
      shell32: Fix a leak in the ebrowser travellog (Valgrind).
      shell32/tests: Fix a leak in the ebrowser tests (Valgrind).

Dylan Smith (1):
      richedit: Clear non-default style when changing to plain text mode.

Eric Pouech (26):
      winedump: Added support for dumping FPO streams.
      dbghelp: Restructure internal PDB information.
      dbghelp: Use new file/debug format framework to allow keeping pdb files opened.
      dbghelp: Keep the mapping of any PDB file open until the module is unloaded.
      dbghelp: Added preliminary extended FPO information out of PDB files.
      winedbg: Added CPU method for identifying a jmp insn, and implement it for i386.
      winedbg: Try to detect jump (potentially thunk code) while getting the status.
      dbghelp: Better support for OOM conditions when creating source file table.
      dbghelp: Speed up source string creation (by using rb trees).
      winedump: Force the PDB_??_ROOT to always be present in reader object.
      winedump: Dump streams names information out of ROOT object.
      winedump: Get string table stream index out of ROOT named streams list.
      winedump: Added stream header support.
      winedump: Make use of PDB_STREAM_INDEXES in order to get rid of hardwired indexes.
      winedump: Dump segment info out of PDB files.
      winedump: Also dump FPO data out of JG PDB files.
      dbghelp: Add support for stream lookup by name in PDB files and use it for strings stream.
      dbghelp: Get stream indexes out of PDB files (instead of hardwired values).
      dbghelp: When failing to look up for a PDB file, don't keep a module format object around.
      dbghelp: Use AT_range attribute (for function, block... addresses) when AT_low_pc and AT_high_pc are not present.
      dbghelp, winedump: Added definition for S_FRAMEPROC_V2 symbol (CodeView).
      kernel32: Added support for terminfo/termcap in console code.
      kernel32: Move the input character to INPUT_RECORD translation functions to term.c.
      kernel32: Correctly parse the input strings for advanced keys.
      kernel32: Added support for insert/overwrite modes while editing a line.
      kernel32: Fix prototype when no curses dev package is present.

Erich Hoover (5):
      urlmon: Update MK protocol handling to IInternetProtocolEx.
      urlmon: Fix MK protocol handling of escaped characters.
      hhctrl.ocx: Add support for the print button using IWebBrowser_ExecWB.
      hhctrl.ocx: Add better bitmaps for some toolbar buttons.
      hhctrl.ocx: Add some private toolbar bitmaps (copied from shdocvw).

Francois Gouget (1):
      ntdll/tests: Fix compilation on systems that don't support nameless unions.

Gerald Pfeifer (2):
      ws2_32: Restructure and simplify debugstr_wsaioctl a bit.
      ntoskrnl.exe: Remove variable sep and related code from INSTR_GetOperandAddr.

Greg Geldorp (22):
      winetest: Include account level info in the report.
      gdi32/tests: Fix some font test failures on non-English machines.
      kernel32/tests: Set TrueType console font before running tests.
      gdi32/tests: Skip tests on unexpected font code page.
      gdi32/tests: Allow ANSI_CHARSET for some tests.
      d3d8/tests: Skip tests if not running in the foreground.
      d3d9/tests: Skip tests if not running in the foreground.
      user32/tests: Fix menu test failures on East-Asian machines.
      gdi32/tests: Fix tmLastChar test.
      shlwapi/tests: Don't assume date/time are separated by comma.
      ddraw/tests: Remove some outdated tests.
      msctf/tests: Fix failures on Win7 and East-Asian machines.
      user32/tests: Fix DDE test failures on DBCS machines.
      comdlg32/tests: Fix expected height computation.
      msvcrt/tests: Use different method to determine non-SBCS locale.
      winhttp/tests: Fix tests when connecting via proxy.
      urlmon/tests: Fix tests when connecting via proxy.
      riched20/tests: Skip some tests on non-English platforms.
      comctl32/tests: Fix failures for 120DPI display.
      imm32/tests: Windows does post WM_IME_COMPOSITION messages sometimes.
      winhttp/tests: No reconnect on redirect when using proxy.
      wininet/tests: Fix failures when connecting through proxy.

Hans Leidekker (20):
      kernel32: Add a stub implementation of GetThreadIOPendingFlag.
      Revert "advapi32: Fix cred domain according to tests.".
      appwiz.cpl: Fix two RegQueryValueExW calls.
      msi/tests: Add tests for publishing and unpublishing assemblies.
      msi/tests: Add a test for MsiGetComponentState.
      msi: Add support for comparing TrueType font versions.
      msi: Fix detection of installed global assemblies.
      msi: Don't extract files for assemblies which are already installed.
      msi: Improve detection of installed local assemblies.
      fusion/tests: Add some tests for IAssemblyCache_QueryAssemblyInfo.
      msi: Fix a memory leak (valgrind).
      msi: Fix parsing of patch product codes (valgrind).
      msi: Fix some memory leaks (valgrind).
      msi/tests: Accept one more estimated size.
      msi: Free memory on error (valgrind).
      msi: Don't ignore disabled components when resolving install states.
      msi: Downgrade a warning.
      msi: Search all contexts in ACTION_GetComponentInstallStates.
      msi: Clean up better when removing a product.
      msi/tests: More tests for publishing and unpublishing assemblies.

Henri Verbeet (20):
      wined3d: Pass an IWineD3DResourceImpl pointer to device_resource_remove().
      wined3d: Pass an IWineD3DResourceImpl pointer to device_resource_add().
      wined3d: Pass an IWineD3DResourceImpl pointer to device_resource_released().
      wined3d: Pass an IWineD3DResourceImpl pointer to context_resource_released().
      wined3d: Pass an IWineD3DResourceImpl pointer to context_resource_unloaded().
      wined3d: Pass an IWineD3DResourceImpl pointer to wined3d_rendertarget_view_init().
      wined3d: Store an IWineD3DResourceImpl pointer in struct wined3d_rendertarget_view.
      wined3d: Store an IWineD3DClipperImpl pointer in IWineD3DSurfaceImpl.
      wined3d: Pass an IWineD3DVolumeImpl pointer to volume_add_dirty_box().
      wined3d: Pass an IWineD3DVolumeImpl pointer to volume_bind_and_dirtify().
      wined3d: Pass an IWineD3DSwapChainImpl pointer to swapchain_create_context_for_thread().
      wined3d: Pass an IWineD3DSwapChainImpl pointer to findThreadContextForSwapChain().
      ddraw: Initialize the AutoRestoreDisplayMode field of WINED3DPRESENT_PARAMETERS (Valgrind).
      d3d8/tests: Fix test_ApplyStateBlock() (Valgrind).
      wined3d: Move swapchain context retrieval to swapchain.c.
      wined3d: Store a pointer to an array of IWineD3DSwapChainImpl pointers in the device.
      wined3d: Remove IWineD3DSurface::BindTexture() from the public interface.
      wined3d: Remove IWineD3DSurface::LoadTexture() from the public interface.
      wined3d: Get rid of IWineD3DSurface::GetData().
      wined3d: Remove IWineD3DVolume::LoadTexture() from the public interface.

Huw Davies (2):
      wininet: Add tests for querying INTERNET_OPTION_MAX_CONNS_PER_SERVER and INTERNET_OPTION_MAX_CONNS_PER_1_0_SERVER and fix typo in the implementation.
      include: Add some more internet options.

Hwang YunSong (4):
      wininet: Update Korean resource.
      winspool.drv: Update Korean resource.
      wordpad: Update Korean resource.
      po: Update Korean translation.

Jacek Caban (25):
      shdocvw: Separate DocHost ref count from InternetExplorer ref count.
      shdocvw: Added InternetExplorer object tests.
      shdocvw: Added InternetExplorer::get_Visible implementation.
      shdocvw: Added beginning iexplore DDE suport.
      shdocvw: Moved allocating InternetExplorer object to separated function.
      shdocvw: Improved 'iexplore -nohome' handling.
      msxml3: Don't forward get_nodeTypedValue to node's IXMLDOMNode iface.
      msxml3: Don't forward get_namespaceURI calls to node's IXMLDOMNode iface.
      urlmon: Store object instead of interface pointer to BindProtocol in Binding object.
      mshtml: Get rid of win9x test failures workarounds.
      wininet: Make sure to initialize the whole z_stream struct (valgrind).
      winnt.h: Use Common macro for __C89_NAMELESSUNION and __C89_NAMELESSSTRUCT.
      shlwapi: Fixed handling A->W buffer in UrlCanonicalizeA (valgrind).
      wininet: Added post data tests.
      wininet: Fixed memory leak in tests (valgrind).
      msxml3: Fixed memory leak (valgrind).
      urlmon: Fixed memory leaks in tests.
      mshtml: Added IUri-based implementation of nsIURL::[Get|Set]Ref.
      wininet: Fixed race in SSL connection handling.
      mshtml: Fixed leaks (valgrind).
      mshtml: Fixed some leaks in tests (valgrind).
      mshtml: Forward nsIURL::[Get|Set]FilePath to nsIURI::[Get|Set]Path.
      mshtml: Fixed leaks in htmllocation tests (valgrind).
      urlmon: Added backslash handling to remove_dot_segments.
      urlmon: Call remove_dot_segments on path opaque for mk: protocol.

Joel Holdsworth (4):
      comctl32/rebar: Removed a redundant call.
      comctl32/rebar: Implemented band reordering within rows.
      comctl32/rebar: Moved drag notify code into REBAR_MouseMove.
      comctl32/rebar: Implemented dragging between rows.

Juan Lang (14):
      rsaenh/tests: Add tests for CRYPT_IPSEC_HMAC_KEY.
      rsaenh: Move check for CRYPT_IPSEC_HMAC_KEY to each key import function.
      rsaenh: Add support for CRYPT_IPSEC_HMAC_KEY.
      mswsock.h: Fix typo.
      crypt32: Add stub for CertRegisterPhysicalStore.
      rsaenh: Only set key length on successful retrieval of hash value.
      rsaenh: Be more careful about when to hash HMAC key material.
      crypt32: Fix memory leak (Valgrind).
      crypt32: Fix memory leaks when decoding fails (valgrind).
      crypt32: Fix memory leaks when encoding fails.
      crypt32: Remove no-ops.
      crypt32: Ensure that chain validity time is initialized (valgrind).
      crypt32: Simplify a function.
      crypt32: Ensure temporary string is NULL-terminated to avoid uninitialized memory access (valgrind).

Jörg Höhle (1):
      winmm: PlaySound ignores SND_NOWAIT.

Ken Thomases (5):
      winemenubuilder: On Mac, understand and keep 256x256 Vista-style icons.
      winemenubuilder: On Mac, ignore non-square icon entries.
      winemenubuilder: On Mac, size is implicit in ICNS slot; don't search for best.
      windowscodecs: Disable ICNS support when building for Mac OS X 10.4 Tiger.
      secur32/tests: Fix copy/paste error in test message ("first" -> "third").

Kusanagi Kouichi (2):
      gdi32/tests: Add a test for GetCharABCWidthsA with DBCS.
      gdi32: GetCharABCWidthsA should work for DBCS.

Maarten Lankhorst (1):
      ole32: Handle alertable wait in CoWaitForMultipleHandles.

Martin Petricek (1):
      gdiplus: Support for indexed formats in GdipBitmapSetPixel.

Matteo Bruni (1):
      ntdll/tests: Add a FILE_APPEND_DATA test.

Michael Stefaniuc (53):
      urlmon: Use ifaces instead of vtbl pointers in GopherProtocol.
      urlmon: Use ifaces instead of vtbl pointers in MimeFilter.
      urlmon: Use an iface instead of a vtbl pointer in MkProtocol.
      urlmon: Use an iface instead of a vtbl pointer in stgmed_buf_t.
      urlmon: Use ifaces instead of vtbl pointers in BindStatusCallback.
      urlmon: Use an iface instead of a vtbl pointer in AsyncBindCtx.
      windowscodecs: Use an iface instead of a vtbl pointer in BmpEncoder.
      windowscodecs: COM cleanup for stream.c.
      urlmon: COM cleanup for the IMoniker iface.
      urlmon: COM cleanup for the IInternetProtocolEx iface.
      urlmon: COM cleanup for the rest of the iface in BindProtocol.
      windowscodecs: Use ifaces instead of vtbl pointers in BmpDecoder.
      windowscodecs/tests: COM cleanup for converter.c.
      avifil32: COM cleanup for acmstream.c.
      avifil32: Avoid the forward declaration of the IAVIStream methods.
      windowscodecs/tests: Fix crash introduced with eaf394a9ac4c.
      wiaservc: COM cleanup for the IClassFactory iface.
      wiaservc: COM cleanup for the IWiaDevMgr iface.
      shlwapi/tests: Finish the COM cleanup in ordinal.c.
      sxs: COM cleanup for the IAssemblyCache iface.
      objsel: COM cleanup for the IClassFactory iface.
      objsel: COM cleanup for the IDsObjectPicker iface.
      urlmon: Use ifaces instead of vtbl pointers in ProtocolProxy.
      urlmon: COM cleanup for the IBinding iface.
      urlmon: COM cleanup for the rest of the ifaces in Binding.
      urlmon: COM cleanup for the IStream iface.
      urlmon: Remove some leftovers from the old COM days.
      jscript: COM cleanup for the IDispatchEx iface.
      jscript: Use ifaces instead of vtbl pointers in JScript.
      jscript: COM cleanup for the IServiceProvider iface.
      hhctrl.ocx: Use ifaces instead of vtbl pointers in IOleClientSiteImpl.
      mmdevapi: Use ifaces instead of vtbl pointers in MMDevice.
      ddraw: Avoid some unsafe IDirect3D7 iface to IDirectDrawImpl transitions.
      ddraw: Pass an IDirectDrawImpl* instead of an iface to ddraw_set_display_mode().
      ddraw: Pass an IDirectDrawImpl* instead of an iface to CreateSurface().
      ddraw: COM cleanup for the IDirect3D iface.
      ddraw: COM cleanup for the IDirect3D2 iface.
      ddraw: COM cleanup for the IDirect3D3 iface.
      ddraw: COM cleanup for the IDirect3D7 iface.
      ddraw: COM cleanup for the IDirectDraw iface.
      ddraw: COM cleanup for the IDirectDraw2 iface.
      ddraw: COM cleanup for the IDirectDraw3 iface.
      ddraw: COM cleanup for the IDirectDraw4 iface.
      ddraw: COM cleanup for the IDirectDraw7 iface.
      explorerframe: COM cleanup for the IClassFactory iface.
      compobj.dll16: COM cleanup for the IMalloc16 iface.
      ddraw: Drop "Thunk_" from the names of the IDirect3DDevice methods.
      ddraw: Drop "Thunk_" from the names of the IDirect3DDevice2 methods.
      ddraw: Drop "Thunk_" from the names of the IDirect3DDevice3 methods.
      ole2.dll16: Add missing ILockBytes::Stat to the vtbl initialisation.
      ole2.dll16: COM cleanup for the ILockBytes16 iface.
      ddraw: Drop "Thunk_" from the names of the IDirect3DMaterial* methods.
      ddraw: Drop "Thunk_" from the names of the IDirect3DVertexBuffer methods.

Nikolay Sivov (23):
      ole32/tests: Test for return value directly without macros.
      oleaut32/tests: Test for return value directly.
      oleaut32/safearray: Fix allocation error check for array descriptor.
      comctl32/tests: Fix a leak in toolbar test data allocation (Valgrind).
      comctl32/tests: Fix a leak in rebar test data allocation (Valgrind).
      oleaut32/tests: Fix a string leak (Valgrind).
      comctl32/imagelist: Fix a couple of imagelist leaks (Valgrind).
      fusion: Fix processor arch string leak (Valgrind).
      hlink/tests: Fix interface leak (Valgrind).
      shlwapi: Keep pointer to allocated block to free it later (Valgrind).
      shell32/tests: Fix some leaks in tests (Valgrind).
      shell32: Fix a cloned PIDL leak (Valgrind).
      msxml3/tests: Fix a lot of leaks in tests (Valgrind).
      rsaenh/tests: Fix a key leak (Valgrind).
      msvcrt: Add _atoflt and _atoflt_l implementations.
      oleaut32/tests: Fix a dead path in test (Valgrind).
      shell32/tests: Fix a PIDL leak in tests (Valgrind).
      shell32: Fix interface leak (Valgrind).
      oleaut32: Fix a stream leak on failure.
      shell32: Fix interface leak while adding tree items.
      shell32: Free cloned PIDL after tree initialization (Valgrind).
      shell32/tests: Close find file handle (Valgrind).
      msvcrt: Partially implement _set_abort_behavior.

Owen Rudge (6):
      hhctrl.ocx: Implement Show/Hide functionality.
      hhctrl.ocx: Implement Sync button functionality.
      hhctrl.ocx: Implement pop-up menu for Options button.
      dsound: Add support for 32-bit IEEE float buffers.
      dsound/tests: Add IEEE float buffer tests.
      dsound/tests: Add IEEE float buffer tests for dsound8.

Piotr Caban (6):
      shell32: Try to get file status from FileSystemBindData in UNIXFS_path_to_pidl.
      shell32: Don't check if files are of the same type if name is equal in IShellFolder2_CompareIDs.
      server: Return multiple events in read_changes.
      server: Don't report rename events when file is moved between directories.
      kernel32/tests: Added file move/rename ReadDirectoryChangesW tests.
      mshtml: Added IObjectSafety stub.

Stefan Dösinger (1):
      wined3d: Don't set cube and volume POW2 caps if np2 textures are supported.

Thomas Mullaly (8):
      urlmon: Fixed misc typos and removed a few random tab characters.
      normaliz: Changed the default debug channel to normaliz instead of authz.
      urlmon/tests: Fixed memory leak in tests (valgrind).
      urlmon: Added stub for CoInternetGetSecurityUrlEx.
      urlmon/tests: Added CoInternetGetSecurityUrlEx tests.
      urlmon: Added basic CoInternetGetSecurityUrlEx implementation.
      urlmon/tests: Added pluggable protocol tests for CoInternetGetSecurityUrlEx.
      urlmon: Added pluggable protocol support to CoInternetGetSecurityUrlEx.

Travis Athougies (2):
      d3dcompiler_43/tests: Fixed nonconformant C string literals in HLSL test suite.
      d3dcompiler_43/tests: Added error tests to HLSL test suite.

Vincent Povirk (9):
      windowscodecs: Ignore the alpha channel of ICO files if it's empty.
      windowscodecs: Add a utility function for swapping 8-bit BGR/RGB data.
      windowscodecs: Support 8-bit RGB (as opposed to BGR) bitfields bitmaps.
      windowscodecs: Avoid an iface -> impl conversion from a non-method.
      windowscodecs: Ignore an unspecified extra sample in RGB TIFF images.
      windowscodecs: Accept failure when seeking to the start of a TGA footer.
      wininet: Use LIST_FOR_EACH_SAFE in a loop where we can delete an entry.
      gdiplus: Rewrite GdipCreateMatrix3.
      oleaut32: Deserialize VT_BOOL as 2 bytes, not 4.

Vitaliy Margolen (21):
      dinput: More COM cleanup for IDirectInput - use interfaces instead of typecasts.
      dinput: COM cleanup - use proper DirectInput interface with IUknown calls.
      dinput: COM cleanup - return interface instead of typecasting This.
      dinput: COM cleanup - use proper interface instead of typecasting This when calling queue_event.
      dinput: COM cleanup - use helper function instead of direct typecast in base device class.
      dinput: COM cleanup - use helper function instead of direct typecast in mouse.
      dinput: COM cleanup - use helper function instead of direct typecast in keyboard.
      dinput: COM cleanup - use helper function instead of direct typecast in base joystick class.
      dinput: COM cleanup - use helper function instead of direct typecast in Linux joystick.
      dinput: COM cleanup - use helper function instead of direct typecast in linuxinput joystick.
      dinput: COM cleanup - use helper function instead of direct typecast in OS/X joystick.
      dinput: Change internal check_dinput_hooks method to take W iface.
      dinput: Explicitly define ASCII and Unicode methods in DirectInputDevice base class. Make ASCII methods call Unicode. Use new methods in child classes.
      dinput: Explicitly define ASCII and Unicode methods in keyboard.
      dinput: Explicitly define ASCII and Unicode methods in mouse.
      dinput: Explicitly define ASCII and Unicode methods in joystick base class. Use new methods in child classes.
      dinput: Explicitly define ASCII and Unicode methods in evdev joystick.
      dinput: Explicitly define ASCII and Unicode methods in joydev joystick.
      dinput: COM cleanup - use interfaces instead of vtbl. Combine both Unicode and ASCII interfaces into the same classes.
      dinput: Make newly created device append itself to Direct Input's list.
      dinput: Combine ASCII and Unicode Direct Input Device QueryInterface.

Yaron Shahrabani (1):
      po: Hebrew update.

--
Alexandre Julliard
julliard@winehq.org
