The Wine development release 1.7.5 is now available.

What's new in this release (see below for details):
  - Support for registration-free COM using activation contexts.
  - Improved support for simulated bold fonts.
  - Unicode data updated to Unicode 6.3.
  - Better support for typelib registration on 64-bit.
  - Various bug fixes.

The source is available from the following locations:

  http://prdownloads.sourceforge.net/wine/wine-1.7.5.tar.bz2
  http://mirrors.ibiblio.org/wine/source/1.7/wine-1.7.5.tar.bz2

Binary packages for various distributions will be available from:

  http://www.winehq.org/download

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

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

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

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

Bugs fixed in 1.7.5 (total 30):

  13699  Wine doesnt show embedded web browser interface on Clarion applications
  17929  Crash when creating a DC
  18465  url.dll FileProtocolHandler does not open URLs in browser.
  22926  Main Steam window disappears when entering Exposé
  24770  Bioshock not work
  25327  Risen - No space between words in Risen
  26900  GetTabbedTextExtent() returns non-zero value when nCount == 0
  27168  chromium-based apps can't load https sites
  27694  wine iexplore can't load hotmail.com (gives a blank page)
  28946  Steam freezes
  29365  Internet Explorer 8 fails to submit a URL to VirusTotal for analysis
  29784  Spotify crashes on startup
  30745  GOG.com version of Soulbringer crashes on startup (GetModuleHandleExW needs to support GET_MODULE_HANDLE_EX_FLAG_PIN)
  32280  32-bit Visual C++ 2010 Express full installer complains "Unknown Error" with Mono (mscoree CLR v4 shim needs CreateInterface)
  33384  Basic WPF applications using .NET 3.5 WPF fails to handle images (windowscodecs {7543696a-bc8d-46b0-5f81-8d95728972be} = IMILBitmapSource unsupported)
  33799  Wargame: Airland Battle needs msvcr110.dll._libm_sse2_atan_precise
  34432  installer of iTudou needs atl90
  34472  window titlebar names
  34475  Fullscreen Window scaling issue (MacDriver)
  34502  __unDName doesn't use flags UNDNAME_NO_LEADING_UNDERSCORES and UNDNAME_NO_MS_KEYWORDS for "__ptr64"
  34503  __unDName doesn't support flag UNDNAME_NO_THISTYPE
  34648  J2SE Runtime Environment 5.0 Update 10 installer 'patchjre' tool crashes due to unbuffered io on redirected stdout pipe
  34677  e-carte bleue la banque postale doesn't work at all
  34707  Miranda crashes on start up
  34719  cabinet_open{,_stream} returns 0 on failure but doesn't compliant to _open interface
  34735  Photoscape: crashes selecting some filters
  34738  PageFault when generating a MD5 Hash
  34757  Tray icons don't attach to the native notification area
  34776  explorer.exe does not start
  34778  IE7 can't install

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

Changes since 1.7.4:

Adam Bolte (1):
      wined3d: Add support for nVidia GTX 660M.

Akihiro Sagawa (3):
      gdi32/tests: Add tests for fake bold outline fonts.
      gdi32: Adjust fake bold outline font metrics.
      gdi32: Synthesize bold glyphs for outline fonts.

Alexandre Julliard (53):
      makefiles: Remove useless definitions of COM_NO_WINDOWS_H.
      makedep: Remove some unnecessary typedefs.
      makedep: Add more helpers for file output and error handling.
      makedep: Generate correct dependencies for testlist.c.
      winex11: Add helper functions for converting between root and virtual screen coords.
      winex11: Add a helper function to return the virtual screen rectangle.
      winex11: Add a helper function to return the primary monitor rectangle.
      jscript: Use the official Windows constant for MAXLONGLONG.
      makefiles: Generate explicit build rules for lex files from makedep.
      makefiles: Generate explicit build rules for bison files from makedep.
      makefiles: Generate explicit build rules for message files from makedep.
      makefiles: Generate explicit build rules for resource files from makedep.
      makefiles: Generate explicit build rules for idl files from makedep.
      makefiles: Generate explicit build rules for dlldata.c from makedep.
      makefiles: Generate explicit build rules for testlist.c from makedep.
      tools: Update the character data tables to Unicode 6.3.0.
      ntdll/tests: Skip test if LdrAddRefDll is missing.
      makedep: Remove support for no longer used .mc.rc files.
      makedep: Add a helper function to replace a file name extension.
      makedep: Automatically add the source idl for generated sources to the dependencies list.
      explorer: Set the final size of the desktop window only after it has been created.
      explorer: Create the driver desktop window after the window handle is created.
      user32: Delay registration of the builtin classes until the first window is created.
      user32: Delay creation of the 55AA pattern brush until it's needed.
      user32: Create the desktop window before enumerating monitors.
      winex11: Clear the thread data explicitly on detach.
      winemac: Clear the thread data explicitly on detach.
      gdi32: Determine the virtual resolution dynamically if it hasn't been set.
      mmdevapi/tests: Mark a failing test as broken.
      ole32: Delay registering the apartment class until needed.
      explorerframe: Correctly initialize common controls.
      shell32: Delay initialization of the icon cache until needed.
      shell32: Delay common controls initialization until needed.
      explorer: Make sure the graphics driver module is always set.
      explorer: Avoid crashing when the desktop launchers are not initialized.
      winemac: Only register the IME class when needed.
      user32: Fix tick counter wrap-around handling.
      user32: Fix the scope of a local variable.
      wineps: Return the size directly from get_bbox to avoid compiler warnings.
      jscript: Reorganize StringConstr_value slightly to avoid confusing gcc.
      gdi32: Always initialize the em_scale variable.
      wineconsole: Avoid an empty for loop.
      include: Add inline wrappers for some underscore-prefixed math functions.
      winex11: Use an init once function to register IME classes.
      winemac: Use an init once function to register IME classes.
      user32: Get rid of the CreateCursorIcon driver entry point.
      explorer: Store the graphics driver name for the desktop in the registry.
      imm32: Retrieve the graphics driver name from the registry.
      wintab32: Retrieve the graphics driver name from the registry.
      user32: Don't trigger a graphics driver load for functions that require an existing window.
      winemac: Don't try to set the app icon before GDI is properly initialized.
      user32: Register classes once the graphics driver has been loaded, except for the desktop class.
      user32: Set the display device property on the desktop window as soon as it is created.

Alistair Leslie-Hughes (1):
      mscoree: Add support for ICLRMetaHostPolicy interface.

Andrew Cook (1):
      include: Add types for SetInformationJobObject.

Andrew Eikum (5):
      advapi32: Attempt to open WOW64 key before the lowest level key, too.
      advapi32: Don't cache HKCR if WOW64 redirection flags are set.
      oleaut32: Also register typelibs in the opposite registry mode.
      oleaut32: For 64-bit, fallback on the win32 key if win64 key is empty for typelibs.
      winhttp: Attempt to refill empty buffer before answering QueryDataAvailable.

André Hentschel (9):
      ntdll: vm86 is not available on PowerPC.
      msacm32/tests: Fix tests compilation with __WINESRC__ defined.
      imm32/tests: Fix tests compilation with __WINESRC__ defined.
      version/tests: Fix tests compilation with __WINESRC__ defined.
      rsaenh/tests: Fix tests compilation with __WINESRC__ defined.
      sti/tests: Fix tests compilation with __WINESRC__ defined.
      usp10/tests: Fix tests compilation with __WINESRC__ defined.
      psapi/tests: Fix tests compilation with __WINESRC__ defined.
      winspool.drv/tests: Fix tests compilation with __WINESRC__ defined.

Aric Stewart (1):
      tools: Add new Explicit Formatting types for Unicode 6.3.

Austin English (1):
      explorerframe/tests: Build with -D__WINESRC__.

Daniel Lehman (1):
      kernel32: Don't use depth in RtlInterlockedFlushSList.

Dmitry Timoshkov (72):
      gdiplus/tests: Fix tests compilation with __WINESRC__ defined.
      tools/winapi: Remove OLDFONTENUMPROC from the list of tested types.
      gdi32/tests: Fix bitmap tests compilation with __WINESRC__ defined.
      gdi32/tests: Fix brush tests compilation with __WINESRC__ defined.
      gdi32/tests: Fix DC tests compilation with __WINESRC__ defined.
      gdi32/tests: Fix DIB tests compilation with __WINESRC__ defined.
      gdi32/tests: Fix GDI object tests compilation with __WINESRC__ defined.
      gdi32/tests: Fix metafile tests compilation with __WINESRC__ defined.
      gdi32/tests: Fix pen tests compilation with __WINESRC__ defined.
      gdi32/tests: Fix font tests compilation with __WINESRC__ defined.
      gdi32/tests: Enable gdi32 tests compilation with __WINESRC__ defined.
      gdiplus/tests: Add a test for GdipCloneBitmapArea called on an already locked bitmap.
      kernel32/tests: Fix PE loader tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix process tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix virtual memory tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix communication port tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix environment tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix time tests compilation with __WINESRC__ defined.
      crypt32: Add another root store path to the certificate location list.
      windowscodecs: Add support for IMILBitmapSource interface.
      gdiplus: Reimplement GdipCloneBitmapArea without using GdipBitmapLockBits.
      gdiplus: Reimplement GdipCloneImage using GdipCloneBitmapArea for a bitmap.
      kernel32/test: Fix activation context tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix file change notification tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix console tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix debugger tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix fiber tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix file tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix FormatMessage tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix heap tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix locale tests compilation with __WINESRC__ defined.
      include: Redefine security privilege names without using TEXT macro.
      kernel32/tests: Fix mailslot tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix module tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix path tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix pipe tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix profile tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix resource tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix synchronization tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix thread tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix timer tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix toolhelp tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix version tests compilation with __WINESRC__ defined.
      kernel32/tests: Fix volume tests compilation with __WINESRC__ defined.
      kernel32/tests: Enable kernel32 tests compilation with __WINESRC__ defined.
      user32/tests: Fix broadcast tests compilation with __WINESRC__ defined.
      user32/tests: Fix class tests compilation with __WINESRC__ defined.
      user32/tests: Fix clipboard tests compilation with __WINESRC__ defined.
      user32/tests: Fix combobox tests compilation with __WINESRC__ defined.
      user32/tests: Fix cursor and icon tests compilation with __WINESRC__ defined.
      user32/tests: Fix DCE tests compilation with __WINESRC__ defined.
      user32/tests: Fix DDE tests compilation with __WINESRC__ defined.
      user32/tests: Fix dialog tests compilation with __WINESRC__ defined.
      user32/tests: Fix input tests compilation with __WINESRC__ defined.
      user32/tests: Fix edit control tests compilation with __WINESRC__ defined.
      user32/tests: Fix listbox tests compilation with __WINESRC__ defined.
      user32/tests: Fix menu tests compilation with __WINESRC__ defined.
      user32/tests: Fix monitor tests compilation with __WINESRC__ defined.
      user32/tests: Fix message tests compilation with __WINESRC__ defined.
      user32/tests: Fix resource tests compilation with __WINESRC__ defined.
      user32/tests: Fix scroll tests compilation with __WINESRC__ defined.
      user32/tests: Fix static control tests compilation with __WINESRC__ defined.
      user32/tests: Fix system parameters tests compilation with __WINESRC__ defined.
      user32/tests: Fix text drawing tests compilation with __WINESRC__ defined.
      user32/tests: Fix window tests compilation with __WINESRC__ defined.
      user32/tests: Fix window station and desktop tests compilation with __WINESRC__ defined.
      user32/tests: Fix wsprintf tests compilation with __WINESRC__ defined.
      user32/tests: Enable user32 tests compilation with __WINESRC__ defined.
      kernel32/tests: Accept the case when WriteFile is able to complete the request immediately for an overlapped COM-port write.
      kernel32/tests: Increase the timeout for completion of write to a COM-port.
      kernel32/tests: WaitCommEvent may sometimes return immediately on a busy system when write operation to a COM-port has already completed.
      server: Add support for pending write flag to the serial device.

François Gouget (3):
      ntdll/tests: Fix compilation on systems that don't support nameless unions.
      oleaut32/tests: Make the uk_*() methods static.
      crypt32: Make add_cert_to_store() static.

Frédéric Delanoy (37):
      gdi32: Use BOOL type where appropriate.
      uxtheme: Use BOOL type where appropriate.
      winedbg: Use BOOL type where appropriate.
      winmm/tests: Use BOOL type where appropriate.
      winetest: Use BOOL type where appropriate.
      winepath: Use BOOL type where appropriate.
      wined3d: Avoid initializing some variables.
      attrib: Use BOOL type where appropriate.
      net: Use BOOL type where appropriate.
      ole32: Use BOOL type where appropriate.
      win87em.dll16: Use BOOL type where appropriate.
      xcopy: Use BOOL type where appropriate.
      cmd: Use BOOL type where appropriate.
      wordpad: Use BOOL type where appropriate.
      winecfg: Use BOOL type where appropriate.
      winefile: Use BOOL type where appropriate.
      oleaut32: Use BOOL type where appropriate.
      oleaut32/tests: Use BOOL type where appropriate.
      d3dxof: Use BOOL type where appropriate.
      windowscodecs/tests: Use BOOL type where appropriate.
      shell32/tests: Use BOOL type where appropriate.
      windowscodecs: Use BOOL type where appropriate.
      comctl32: Use BOOL type where appropriate.
      shell32: Use BOOL type where appropriate.
      winhlp32: Use BOOL type where appropriate.
      comctl32/tests: Use BOOL type where appropriate.
      user.exe16: Use BOOL type where appropriate.
      comdlg32: Use BOOL type where appropriate.
      wineboot: Use BOOL type where appropriate.
      comdlg32/tests: Use BOOL type where appropriate.
      kernel32: Use BOOL type where appropriate.
      kernel32/tests: Use BOOL type where appropriate.
      mciqtz32: Use BOOL type where appropriate.
      dwrite/tests: Use BOOL type where appropriate.
      mscoree: Use BOOL type where appropriate.
      quartz: Use BOOL type where appropriate.
      quartz/tests: Use BOOL type where appropriate.

Gerald Pfeifer (1):
      winefile: Remove redundant check in format_bytes().

Hans Leidekker (18):
      mscms/tests: Compile with -D__WINESRC__.
      wldap32/tests: Compile with -D__WINESRC__.
      dnsapi: Perform a wide character string comparison if the character set is unknown.
      dnsapi/tests: Compile with -D__WINESRC__.
      winhttp: Fix a test failure on Windows 8 and conform to the more recent behavior.
      winhttp/tests: Compile with -D__WINESRC__.
      msi/tests: Prepare action.c for the switch to -D__WINESRC__.
      msi/tests: Prepare automation.c for the switch to -D__WINESRC__.
      msi/tests: Prepare db.c for the switch to -D__WINESRC__.
      msi/tests: Prepare format.c for the switch to -D__WINESRC__.
      msi/tests: Prepare install.c for the switch to -D__WINESRC__.
      msi/tests: Prepare package.c for the switch to -D__WINESRC__.
      msi/tests: Prepare patch.c for the switch to -D__WINESRC__.
      msi/tests: Prepare record.c for the switch to -D__WINESRC__.
      msi/tests: Prepare source.c for the switch to -D__WINESRC__.
      msi/tests: Prepare suminfo.c for the switch to -D__WINESRC__.
      msi/tests: Prepare msi.c for the switch to -D__WINESRC__.
      msi/tests: Compile with -D__WINESRC__.

Huw D. M. Davies (8):
      wsock32: Add a fallback for inet_network.
      ole32/tests: Add tests to show that CoLockObjectExternal() calls ReleaseConnection() with the appropriate value for fLastReleaseCloses.
      ole32/tests: Extend the lifecycle tests to objects which expose IExternalConnection.
      ole32/tests: Make the two reference marshalling thread more generic.
      ole32/tests: Add some tests for CoReleaseMarshalData with a combination of normal and weak marshals.
      ole32: When releasing marshal data of a normal ref ignore any remaining weak refs.
      ole32: Call IExternalConnection_ReleaseConnection with the correct final parameter.
      ole32: If an object exposes IExternalConnection then don't take down the stub manager if we have remaining weak refs in a call that would otherwise ignore them.

Jacek Caban (51):
      crypt32: Added addref to store vtbl and use it instead of directly accessing ref.
      crypt32: Moved store release implementation to vtbl.
      crypt32: Added support for CERT_CLOSE_STORE_CHECK_FLAG flag in MemStore_release.
      crypt32: Moved store context functions to vtbl.
      crypt32: Don't call CertFreeCertificateContext in CertDeleteCertificateContext, leave it to store-specific functions.
      crypt32: Added new empty store type and use it for creating certificates with no store.
      crypt32: Use linked pointer instead of context type to test for linked contexts.
      crypt32: Pass context as BASE_CONTEXT to Context_AddRef and added structs describing memory layout behind context structs.
      crypt32: Pass context as context_t to Context_Release.
      crypt32: Moved context desatructor to vtbl.
      crypt32: Use Context_AddRef instead of WINE_CONTEXT_INTERFACE.
      crypt32: Use Context_Release instead of WINE_CONTEXT_INTERFACE.
      crypt32: Use context_t in Context_CreateLinkContext.
      jscript: Compile tests with -D__WINESRC__.
      vbscript: Compile tests with -D__WINESRC__.
      crypt32: Moved CertAddCertificateContextToStore to cert.c.
      crypt32: Store list entry directly in context_t.
      crypt32: Store extra pointer directly in context_t and get rid of Context_GetExtra.
      crypt32: Pass contexts as context_t to CONTEXT_FUNCS->delete.
      crypt32: Added cloning logic to context's vtbl.
      crypt32: Get rid of no longer needed Context_GetLinkedContext.
      crypt32: Removed no longer needed hCertStore setting.
      crypt32: Don't use links to certs in memory store.
      crypt32: Added more cert duplicate and link tests.
      crypt32: Get rid of no longer used functions.
      crypt32: Store properties directly in link contexts and get rid of Context_GetProperties.
      crypt32: Use context_t in ContextList_Add.
      crypt32: Use context_t in enumContext.
      crypt32: Use context_t in addContext.
      crypt32: Get rid of no longer needed BASE_CONTEXT.
      crypt32: Get rid of no longer needed fields in ContextList.
      crypt32: Get rid of no longer needed contextSize arguments.
      crypt32: Moved critical section out of ContextList struct.
      crypt32: Use list struct directly instead of ContextList wrapper.
      crypt32: Share more code between memory store addContext implementations.
      crypt32: Share more code between memory store enumContext implementations.
      crypt32: Share more code between memory store deleteContext implementations.
      crypt32: Moved ContextList freeing to store.c and get rid of ContextList.
      crypt32: Always return TRUE from CertFreeCertificateContext.
      crypt32: Always return TRUE from CertFreeCRLContext.
      crypt32: Always return TRUE from CertFreeCTLContext.
      crypt32: Keep reference to store in contexts.
      crypt32: Use empty_store for new CRL contexts.
      crypt32: Use empty_store for new CTL contexts.
      secur32: Cache certificate context instead of store in schannel handle.
      crypt32: Clone CRL context instead of using link in CertAddCRLContextToStore.
      crypt32: Return context_t from Context_CreateDataContext.
      crypt32: Get rid of no longer needed hCertStore checks.
      crypt32: Get rid of no longer needed contextInterface arguments.
      crypt32: Don't access context after releaseContext call.
      wininet: Compile tests with -D__WINESRC__.

Ken Thomases (11):
      winemac: Don't coalesce events which might be in multiple queues.
      winemac: Clean up fully-delivered events in queues which aren't being drained.
      winemac: Treat mouse moves in a window title bar as outside the window.
      winemac: Restore app cursor settings when cursor moves back into an app window.
      winemac: Fix some bytes-vs-WCHARs length computation bugs in the UTF-16 clipboard support.
      winemac: Rename some confusingly-named variables.
      winemac: Fix a leak in macdrv_CountClipboardFormats(). (Clang).
      winecoreaudio: Fix a potential leak. (Clang).
      libwine: Fix a potential write through a null pointer. (Clang).
      winemac: Disable software GL rendering unless it's enabled via a new registry setting, AllowSoftwareRendering.
      winemac: Send WM_CANCELMODE when keyboard layout changes from Cocoa side.

Kevin Eaves (1):
      winemac: Restore the window title when the window style is changed.

Kohei Takahashi (1):
      msi: Return -1 on open failure in FDI callbacks.

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

Marcus Meissner (1):
      d3drm: Added some freeing of memory in error paths (Coverity).

Michael Stefaniuc (14):
      dsound/tests: Compile with -D__WINESRC__.
      cmd/tests: Compile with -D__WINESRC__.
      services/tests: Compile with -D__WINESRC__.
      winmm/tests: Use the explicit mciSendStringA() form.
      mmdevapi/tests: Compile with -D__WINESRC__.
      dxgi/tests: Compile with -D__WINESRC__.
      msctf/tests: Compile with -D__WINESRC__.
      d3dcompiler_43/tests: Compile with -D__WINESRC__.
      oledb32/tests: Compile with -D__WINESRC__.
      opengl32/tests: Compile with -D__WINESRC__.
      crypt32/tests: Compile with -D__WINESRC__.
      wintrust/tests: Compile with -D__WINESRC__.
      twain_32/tests: Compile with -D__WINESRC__.
      dssenh/tests: Compile with -D__WINESRC__.

Nikolay Sivov (22):
      msxml3: Handle parser failure when loading from url.
      ntdll: Support pinning module refcount with LdrAddRefDll().
      xmllite: Support resuming and value reporting for whitespace nodes in Misc.
      kernel32: Added support for GET_MODULE_HANDLE_EX_FLAG_PIN.
      msvcrt: Prevent msvcrt.dll unloading.
      advapi32/tests: Compile with -D__WINESRC__.
      advpack/tests: Compile with -D__WINESRC__.
      avifil32/tests: Compile with -D__WINESRC__.
      cabinet/tests: Compile with -D__WINESRC__.
      comdlg32/tests: Compile with -D__WINESRC__.
      dispex/tests: Compile with -D__WINESRC__.
      ole32/tests: Compile with -D__WINESRC__.
      imagehlp/tests: Compile with -D__WINESRC__.
      shlwapi/tests: Compile with -D__WINESRC__.
      msxml3: Set referrer header to container url.
      rsaenh: Fail on unsupported flag values only in CryptHashData().
      ole32: Support registration-free COM in CoGetClassObject().
      ole32: Support activation context redirection in CoGetPSClsid().
      ole32: Support activation context in ProgIDFromCLSID().
      comctl32/tests: Preparation for switching __WINESRC__ on.
      ole32: Add a helper to map ProgID to CLSID using registry.
      ole32: Support activation context in CLSIDFromProgID().

Piotr Caban (14):
      comctl32: Ignore tooltip position passed in TTM_TRACKPOSITION if TTF_TRACK flag is not set.
      msvcrt: Don't validate parameters in _itoa function.
      comctl32: Set updown control value to min or max in out of range case.
      comctl32: Fix UDM_SETPOS behavior on out of range values.
      comctl32: Fix UDM_GETPOS behaviour on out of range values.
      comctl32/tests: Add more updown control value tests.
      url: Add support for http protocol handling in FileProtocolHandlerA.
      msvcrt: Make the first call to fwrite buffered.
      msvcrt: Add support for UNDNAME_NO_THISTYPE flag in __unDName.
      msvcrt: Fix __ptr64 displaying when UNDNAME_NO_LEADING_UNDERSCORES flag is used.
      msvcrt: Don't output __ptr64 when UNDNAME_NO_MS_KEYWORDS is used.
      msvcrt/tests: Fix __unDName test failures on Win2000.
      msvcr110: Forward _libm_sse2_*_precise functions to __libm_sse2_*.
      msvcrt: Add __security_error_handler stub.

Qian Hong (11):
      user32/tests: Try harder to set foreground window.
      user32/tests: Skip winstation tests when no enough privileges.
      user32/tests: Skip winstation tests on NT4.
      atl90: Add a WinSxS manifest resource.
      atl: Trace ATL version.
      atl80: Trace ATL version.
      atl90: Trace ATL version.
      atl100: Trace ATL version and keep debug channel consistent.
      atl110: Trace ATL version.
      user32/tests: Skip desktop tests on NT4.
      winmm: Fixed mixerGetControlDetails with null paDetails.

Stefan Dösinger (10):
      wined3d: Update wined3d_volume_create in the spec file.
      ddraw/tests: Add surface lockability tests.
      ddraw: Treat D3DTEXTUREMANAGE like TEXTUREMANAGE.
      ddraw/tests: Test DDSCAPS2_D3DTEXTUREMANAGE.
      d3d9/tests: Remove the rtpatch test.
      d3d8/tests: Remove the rtpatch test.
      wined3d: Remove SCRATCH and SYSMEM lockability warnings.
      ddraw: Make default pool resources dynamic.
      ddraw/tests: Test DDLOCK_DISCARDCONTENTS.
      d3d8/tests: Port z_range_test to d3d8.

Thomas Faber (1):
      shell32: Avoid leaks and add parameter checks in SHCreateShellFolderView[Ex].

Vincent Povirk (5):
      gdiplus: Implement GdipWidenPath for custom dashed lines.
      gdiplus: Implement remaining dash styles in GdipWidenPath.
      mscoree: Remove support for multiple Mono ABI versions.
      mscoree: Do a "normal" runtime shutdown from _CorExeMain.
      mscoree: Call Mono's System.Environment.Exit instead of duplicating it.

Zhenbo Li (1):
      atl90: Added new dll.

--
Alexandre Julliard
julliard@winehq.org
