The Wine development release 1.7.39 is now available.
What's new in this release (see below for details): - WinMM joystick support on Mac OS X. - Kerning support in DirectWrite. - Support for DirectX Media Objects filters. - Better support for animated GIFs in GdiPlus. - Improved support for Known Folders in Shell32. - Various bug fixes.
The source is available from the following locations:
http://prdownloads.sourceforge.net/wine/wine-1.7.39.tar.bz2 http://mirrors.ibiblio.org/wine/source/1.7/wine-1.7.39.tar.bz2
Binary packages for various distributions will be available from:
http://www.winehq.org/download
You will find documentation on http://www.winehq.org/documentation
You can also get the current source directly from the git repository. Check http://www.winehq.org/git for details.
Wine is available thanks to the work of many people. See the file AUTHORS in the distribution for the complete list.
----------------------------------------------------------------
Bugs fixed in 1.7.39 (total 24):
14563 picasa can't play mp3 files during slideshows 18424 Mac OS X Joystick support doesn't work 23491 Barbri Study Smart hangs without putting up a window 23977 Steam overlay can't use shift or caps lock 26300 98Plus! Screensavers don't look right in Wine Desktop 27141 Brink (Splash Damage, Bethesda Softworks) (Steam) fails to launch 31819 Animated GIF images are rendered incorrectly (transparent areas painted black) 33447 Wine GUI on Mac display Traditional Chinese instead when host language is Simplified Chinese 35763 Multiple applications and games need wmvcore.dll.WMCreateWriter (Tinker, iMesh 7.x) 35933 Evolve Client 1.8.3 (.NET 4.0 app) 'AppsMgr' fails to install downloaded applications/updates after login (support for RPC FC_CALLBACK_HANDLE needed) 36849 eTax 2014 installation fails with Wine-Mono 4.5.2 36951 no sound effects in BridgeMaster 2000 37202 MSWord hangs on opening a document opened in other program 38096 Nero Burning ROM v8 needs 'NetUserEnum' level 20 support (USER_INFO_20) 38110 Winhttp sample doesn't always work 38177 d3d: Card 10de:0849 not found in driver DB 38184 AutoHotkey script crashes when calling WScript.Shell's "exec" method (IWshShell3 vtable only supports up to IWshShell2) 38203 MSYS2 needs FileNetworkOpenInformation support in NtQueryInformationFile 38209 WshScriptExec's Terminate method is missing 38220 Chemcraft crashes 38221 Wrong parameter assignment in get_family_names_from_stream() 38223 SoManyEuros program doesnt run (needs IFile::get_Path() implementation) 38226 EBWin(Unicode) crashes when searching katakana words. (_mbctohira is a stub) 38251 Assign value to function parameter
----------------------------------------------------------------
Changes since 1.7.38:
Aaryaman Vasishta (5): d3drm/tests: Add tests for querying between IDirect3DRM interfaces. d3drm: Fix IDirect3DRM::QueryInterface returning incorrect HRESULT on unsupported interfaces. d3drm/tests: Add tests for invalid interfaces in IDirect3DRM::QueryInterface. d3drm/tests: Remove dynamic loading in d3drm.c. d3drm/tests: Remove dynamic loading in vector.c.
Akihiro Sagawa (5): msvcrt: Fix _ismbckata() for Halfwidth Katakana characters. msvcrt: Add _mbctohira implementation. msvcrt: Add _mbctokata implementation. winmm/tests: Add notify flag tests for MPEGVideo driver. mciqtz32: Fix notify flag behavior.
Alexandre Julliard (23): server: Don't report completion at all in the MORE_PROCESSING_REQUIRED case. ws2_32: Set the completion event on the server side also for AcceptEx. ws2_32: Use Win32 APIs for interlocked functions. server: Allow device manager ioctls to run asynchronously. server: Add a request to store the results of an ioctl asynchronously. ntoskrnl: Allow IoCompleteRequest to report completion asynchronously. ole32: Remove confusing uses of the __thiscall specifier. msvcp60: Share math functions implementation with msvcp90. msvcp60: Share memory functions implementation with msvcp90. msvcp60: Share misc functions implementation with msvcp90. msvcp60: Merge locale code with msvcp90 where possible to reduce the differences. msvcp60: Add MSVCP prefix on exported string functions. msvcp60: Share exception functions implementation with msvcp90. msvcp90: Remove functions that are not exported in native. msvcp60: Merge I/O stream code with msvcp90 where possible to reduce the differences. msvcp60: Add MSVCP prefix on more string functions. msvcp60: Move string iterator functions to match msvcp90. msvcp60: Merge the char_traits functions with msvcp90. ntoskrnl: Allow running user APC inside the device manager loop. msvcp: Add a macro to access the locale field of I/O streams. winhttp: Remove const to fix a warning with the Microsoft headers. server: Copy completion information for accepted socket into the new file descriptor. msvcp60: Share locale functions implementation with msvcp90.
Andrew Eikum (9): shell32/tests: A couple of win8 fixes. shell32/tests: Fix win8 knownfolders relative and parsed paths. shell32/tests: Remove unused flag. shell32/tests: Fix win8 knownfolder attributes. shell32/tests: Support alternate parent folders. shell32: Allow updating knownfolder definitions. shell32: Allow registering knownfolders without relative paths. shell32: Also register knownfolder attributes. shell32: Install knownfolders to registry during DLL registration.
André Hentschel (5): server: Add header guarding for security.h. msvcp90: Cleanup macro usage. dinput/tests: Avoid assigning values twice (PVS-Studio). shlwapi: Avoid assigning values twice (PVS-Studio). gameux: Return function result on error (PVS-Studio).
Aric Stewart (1): dsound: Do not wait on mixer thread exit on dsound release.
Austin English (6): dxdiagn: Add bNoHardware stub property. include: Add ASN1*string* definitions/functions. include: Add some missing entries in hidusage.h. include: Add remaining function prototypes in msasn1.h. include/winternl.h: Use ntdef.h where possible. setupx.dll16: Add a DiOpenClassRegKey stub.
Bernhard Übelacker (1): wined3d: Recognize Nvidia GeForce 8100 with Nouveau driver (bug).
Bruno Jesus (11): ws2_32/tests: Move second WSACleanup test elsewhere. ws2_32/tests: Fix a NT4 crash due to unsupported SIO_ADDRESS_LIST_QUERY. ws2_32/test: Don't test unsupported IP_MULTICAST_TTL on NT4. ws2_32/tests: Improve setup_connector_socket to allow non-blocking connect calls. ws2_32/tests: Add more select() tests. ws2_32: Normalize socket tracing. ws2_32/tests: Test the behavior of reading data from an OOBINLINE'd socket. ws2_32/tests: Add more select() tests related to OOB handling. ws2_32/tests: Improve some helper functions. ws2_32/tests: Check the OOB mark in the right place. kernel32: Only zero the buffer up to 32767 bytes in GetTempPathW.
Christian Costa (1): d3dxof: Use assignment for GUID instead of memcpy with hardcoded size.
Daniel Lehman (1): wininet: Accept Version in cookies.
Dmitry Timoshkov (2): shell32/tests: Add a couple of SHFileOperation(FO_MOVE) tests for a directory. shell32: Fix SHFileOperation(FO_MOVE) for a directory with subdirectories.
François Gouget (83): ddraw/tests: Fix compilation on systems that don't support nameless unions. wrc: Remove an unused lexer definition. activeds: Remove an unneeded NONAMELESSUNION directive. actxprxy: Remove unneeded NONAMELESSXXX directives. appwiz.cpl: Remove an unneeded NONAMELESSSTRUCT directive. comctl32: Remove unneeded NONAMELESSSTRUCT directives. commdlg.dll16: Remove unneeded NONAMELESSXXX directives. comdlg32: Remove unneeded NONAMELESSSTRUCT directives. compstui: Remove an uneeded NONAMELESSUNION directive. crypt32: Remove an uneeded NONAMELESSUNION directive. cryptnet: Remove an unneeded NONAMELESSSTRUCT directive. cryptnet/tests: Remove an uneeded NONAMELESSUNION directive. d3d8: Remove unneeded NONAMELESSXXX directives. dbghelp: Remove an unneeded NONAMELESSSTRUCT directive. dispex: Remove unneeded NONAMELESSXXX directives. dmloader: Remove an unneeded NONAMELESSSTRUCT directive. dplayx: Remove unneeded NONAMELESSSTRUCT directives. dsound: Remove unneeded NONAMELESSXXX directives. dwmapi: Remove unneeded NONAMELESSXXX directives. explorerframe: Remove unneeded NONAMELESSXXX directives. gphoto2.ds: Remove unneeded NONAMELESSXXX directives. hhctrl.ocx: Remove unneeded NONAMELESSXXX directives. inetcpl.cpl: Remove uneeded NONAMELESSUNION directives. kernel32: Remove unneeded NONAMELESSXXX directives. krnl386.exe16: Remove unneeded NONAMELESSXXX directives. ieframe: Remove unneeded NONAMELESSXXX directives. ieframe/tests: NONAMELESSUNION is not needed when using the U() macro. localspl: Remove uneeded NONAMELESSUNION directives. mshtml: Remove unneeded NONAMELESSXXX directives. localui: Remove an uneeded NONAMELESSUNION directive. mapi32: Remove unneeded NONAMELESSXXX directives. mmdevapi: Remove an uneeded NONAMELESSUNION directive. mmsystem.dll16: Remove unneeded NONAMELESSXXX directives. winecoreaudio.drv: The drv_keyW variable is unused so remove it. wshom.ocx: Make enum_thread_wnd_proc() static. dbghelp: pe_unmap_directory() is unused so remove it. winex11.drv: Make X11DRV_XROPfunction static. secur32: Export SetContextAttributes[AW](). msdaps: Remove unneeded NONAMELESSXXX directives. msi: Remove unneeded NONAMELESSXXX directives. msxml3: Remove unneeded NONAMELESSUNION directives. ntdll: Remove unneeded NONAMELESSXXX directives. ntdll/tests: Remove an unneeded NONAMELESSSTRUCT directive. ntprint: Remove an uneeded NONAMELESSUNION directive. krnl386.exe16: Fix the _lread16() documentation. crypt32: Mark internal symbols with hidden visibility. dbghelp: Mark internal symbols with hidden visibility. winemenubuilder: Avoid a couple of forward declarations. winemenubuilder: Handle icons disguised as executables and better validate icon streams. ws2_32: Add more WSA_FLAG_XXX values. ws2_32: Add support for WSA_FLAG_NO_HANDLE_INHERIT. d3drm: Mark internal symbols with hidden visibility. d3dx9_36: Make d3dx_decltype_size[] static. devenum: Mark internal symbols with hidden visibility. odbccp32: Remove an uneeded NONAMELESSUNION directive. ole2.dll16: Remove unneeded NONAMELESSXXX directives. ole32: Remove unneeded NONAMELESSXXX directives. oleaut32: Remove unneeded NONAMELESSXXX directives. oledb32: Remove unneeded NONAMELESSXXX directives. oledb32/tests: Remove unneeded NONAMELESSXXX directives. oledlg: Remove an unneeded NONAMELESSSTRUCT directive. printui: Remove an unneeded NONAMELESSUNION directive. pdh: Remove an unneeded NONAMELESSSTRUCT directive. quartz: Remove unneeded NONAMELESSXXX directives. qcap: Remove unneeded NONAMELESSXXX directives. quartz/tests: Remove an uneeded NONAMELESSUNION directive. jscript: Mark internal symbols with hidden visibility. hhctrl.ocx: Make html_encoded_symbols[] static. hhctrl.ocx: Mark internal symbols with hidden visibility. hh: Add an icon. hh: Use the hh.exe icon as the default for .chm files. riched20: Remove unneeded NONAMELESSXXX directives. sane.ds: Remove unneeded NONAMELESSXXX directives. scsiport.sys: Remove unneeded NONAMELESSXXX directives. setupapi: Remove unneeded NONAMELESSXXX directives. rpcrt4: Remove an unneeded NONAMELESSSTRUCT directive. krnl386.exe16: Mark internal symbols with hidden visibility. mmsystem.dll16: Mark internal symbols with hidden visibility. Assorted spelling fixes. riched20: Fix a trailing '\n' in a FIXME() call. shell32: Remove unneeded NONAMELESSXXX directives. shlwapi: Remove unneeded NONAMELESSXXX directives. mscoree: Mark internal symbols with hidden visibility.
Frédéric Delanoy (1): po: Update French translation.
Gerald Pfeifer (1): twain_32: Avoid using an uninitialized variable in the failure path in path in a couple of cases.
Hans Leidekker (5): msi: Improve tracing. msi: Fix the case where the summary information stream is already open in MsiGetSummaryInformationW. msi: Handle errors from IStorage_CreateStream instead of trying to open the stream first in msi_commit_streams. winhttp: Don't try to read more data than available in the current chunk in refill_buffer. netapi32: Add support for info level 20 in NetUserEnum.
Henri Verbeet (28): d3d10core: Implement d3d10_blend_state_SetPrivateDataInterface(). d3d10core: Implement d3d10_blend_state_GetPrivateData(). d3d10core: Implement d3d10_depthstencil_state_SetPrivateData(). d3d10core: Implement d3d10_depthstencil_state_SetPrivateDataInterface(). d3d10core: Implement d3d10_depthstencil_state_GetPrivateData(). d3d10core: Implement d3d10_rasterizer_state_SetPrivateData(). d3d10core: Implement d3d10_rasterizer_state_SetPrivateDataInterface(). d3d10core: Implement d3d10_rasterizer_state_GetPrivateData(). d3d10core: Implement d3d10_sampler_state_SetPrivateData(). d3d10core: Implement d3d10_sampler_state_SetPrivateDataInterface(). d3d10core: Implement d3d10_sampler_state_GetPrivateData(). d3d10core: Implement d3d10_texture3d_SetPrivateData(). d3d10core: Implement d3d10_texture3d_SetPrivateDataInterface(). d3d10core: Implement d3d10_texture3d_GetPrivateData(). d3d10core: Implement d3d10_depthstencil_view_SetPrivateData(). d3d10core: Implement d3d10_depthstencil_view_SetPrivateDataInterface(). d3d10core: Implement d3d10_rendertarget_view_SetPrivateData(). d3d10core: Implement d3d10_depthstencil_view_GetPrivateData(). d3d10core: Implement d3d10_rendertarget_view_SetPrivateDataInterface(). d3d10core: Implement d3d10_rendertarget_view_GetPrivateData(). d3d10core: Implement d3d10_shader_resource_view_SetPrivateData(). d3d10core: Implement d3d10_shader_resource_view_SetPrivateDataInterface(). d3d10core: Implement d3d10_shader_resource_view_GetPrivateData(). d3d10core/tests: Fix a typo in shader source in test_clear_state(). ddraw: Get rid of some comments in the middle of the copyright headers. d3drm: Get rid of some incorrect comments. wined3d: Simplify the wined3d_matrix structure. wined3d: Fix a TRACE in wined3d_device_draw_indexed_primitive_instanced().
Huw D. M. Davies (1): riched20: Don't resend a partial chunk to the edit stream callback.
Jacek Caban (11): mshtml: Added IHTMLDOMAttribute2 stub implementation. mshtml: Added IHTMLDOMAttribute2::get_expando implementation. wmsdkidl.idl: Added IWMWriter interface declaration. mshtml: Allow setting event handlers to strings. d3drmdef.h: Fixed a typo. wmvcore: Added WMCreateWriter implementation. wininet: Get rid of no longer needed sock_get_error. user32: Allow making window visible by WM_SETREDRAW message. mshtml: Added IHTMLTextAreaElement::defaultValue property implementation. wmsdkidl.idl: Added IWMWriterAdvanced* interfaces declarations. wmvcore: Added IWMWriterAdvanced3 stub implementation.
Jactry Zeng (4): riched20: Add tests for IRichEditOle::QueryInterface. riched20: Implement IOleWindow interface. riched20: Implement IOleWindow::GetWindow. riched20: Implement IOleInPlaceSite interface.
Ken Thomases (6): winemac: When exiting Cocoa full-screen mode for a no-longer-eligible window, bypass the override of -toggleFullScreen:. winemac: Prevent maximized windows from entering Cocoa full-screen mode. winejoystick: Separate Linux-specific code into a separate file. winejoystick: Add WinMM joystick support for OS X. winemenubuilder: Fix compiling on OS X. winejoystick: Fix a crash on accessing a CFArray past its end due to an off-by-one error in the Mac code.
Mark Harmstone (5): dsound: Keep track of locked bytes. dsound: Implement SetFX. dsound: Implement GetObjectInPath. dsound: Pipe audio data through DMOs. uxtheme: Support images in GetThemeBackgroundRegion.
Mark Jansen (1): kernel32/tests: Parameter validation tests for FindActCtxSectionString.
Matteo Bruni (9): include: Pack structures to 4-bytes alignment on x86 in D3D headers. wined3d: Fix a typo in a trace in context_create(). wined3d: Force stream info update on vertex shader change. wined3d: Depend on the vertex shader state instead of the vertex declaration state where appropriate. wined3d: Introduce a get_identity_matrix() function. wined3d: Introduce a get_modelview_matrix() function. wined3d: Use a separate STATE_VDECL state handler in the GLSL pipeline. wined3d: Use a separate STATE_TRANSFORM(WINED3D_TS_VIEW) state handler in the GLSL pipeline. wined3d: Don't use the builtin FFP uniform for the modelview matrix.
Michael Stefaniuc (9): mstml/tests: Merge two adjacent if blocks with identical condition (PVS-Studio). dbghelp: Remove no-op additions with 0 (PVS-Studio). dsound: Avoid comparing BOOL variables with TRUE (PVS-Studio). gameux: Avoid comparison of a BOOL return with TRUE (PVS-Studio). kernel32: Don't free a NULL / not yet allocated pointer (PVS-Studio). msi: Remove comparison of pointer with >= NULL (PVS-Studio). ws2_32: Avoid using bitwise operations on BOOLs (PVS-Studio). mshtml/tests: '%' doesn't needs escaping in a C string (sparse). rsaenh: Don't compare a BOOL with 1 (PVS-Studio).
Nikolay Sivov (50): rpcrt4: Handle memory allocation error when creating OLE stream instance. rpcrt4: Return buffer size directly to avoid accessing implementation fields. rpcrt4: Add all stubs to OLE marshalling stream. wshom.ocx: Added missing IWshShell3 methods. wshom.ocx: Implement CurrentDirectory() property. oleaut32/tests: Hide details about VARIANT wire header in header testing helper. oleaut32: Use WdtpInterfacePointer_* functions in VARIANT marshalling. vbscript: Use CP_ACP instead of its numeric value. oleaut32/tests: Some tests for IsMatchingType(). rpcrt4: Export I_UuidCreate(). rpcrt4: Use a helper to skip conformance. wshom.ocx: Implement Exec() method. wshom.ocx: Implement Status property of IWshExec. wshom.ocx: Implement ProcessID() property. scrrun: Fix copy-paste issue in trace message. dwrite: Make a deep copy of family name string (Valgrind). dwrite: Fix excessive refcount increment when setting interface pointers as range attributes. wshom.ocx: Implement Terminate(). dwrite: Store pair kerning range attribute. dwrite: Store vertical orientation property. dwrite: Fix GetClusterMetrics() return value. ole32: Check ComposeWith() return value too (PVS-Studio). ole32: Handle some failures in Inverse() for composite moniker (PVS-Studio). ole32: Handle Stat() failure in OleLoad() (PVS-Studio). dwrite: Actually return NULL names pointer and error code when failed to read them. dwrite: Fix invalid parameter handling in GetGlyphIndices(). dwrite: Implement HasKerningPairs(). dwrite: Implement GetKerningPairAdjustments(). scrrun: Implement Path() property for IFile. ole32: Handle ILockBytes creation failure (PVS-Studio). dwrite: Initially format and layout don't have a fallback set. dwrite/tests: Use separate factory for each test in layout tests. dwrite: Allow to query for IDWriteTextFormat1 from layout. dwrite: Implement SetFontFallback(). dwrite: Remove unused helper. dwrite/tests: Another test for cluster metrics and inline objects. scrrun: Preserve pairs order during dictionary lifetime. scrrun: Added stub IEnumVARIANT for dictionary. scrrun: Implement IEnumVARIANT support for dictionary. wmvcore: Return S_OK from WMCreateReader. ole32/datacache: Handle stream Stat() failure (PVS-Studio). mstask: Added IEnumWorkItems stub. ole32: Fix error handling in GetTimeOfLastChange() for item moniker (PVS-Studio). ole32: Improve error handling in GetClassFile() (PVS-Studio). ole32: Cleanup QI for IEnumMoniker. avifil32: Return interface pointer from QI instead of impl pointer. browseui: Return interface pointer from QI instead of impl pointer. explorerframe: Return interface pointer from QI instead of impl pointer. fusion: Return interface pointer from QI instead of impl pointer. kernel32: Implement GetProcessIdOfThread().
Piotr Caban (10): gdiplus: Don't create new instance of IWICBitmapDecoder to encode every frame of animation. windowscodecs: Store stream reference in gif decoder. windowscodecs: Store stream reference in png decoder. gdiplus: Don't store stream reference in GpImage, it's done by IWICBitmapDecoder. gdiplus: Convert animated gif to PixelFormat32bppARGB on load. gdiplus: Fix animated gif frames composition. gdiplus/tests: Add gif frames composition tests. windowscodecs: Show that WIC doesn't do GIF frames composition. gdiplus: Add pixel format test for transparent non-animated gif. gdiplus: Fixed palette flags setting.
Qian Hong (3): ntdll: Implemented FileNetworkOpenInformation class support in NtQueryInformationFile. ntdll: Removed incorrect stub message in NtQueryObject and NtSetInformationObject. ws2_32: Improved error handling in gethostname when name length is insufficient.
Sebastian Lackner (14): ntdll: Move static threadpool variables into a struct. ole32: Fix a possible handle leak (Coverity). ole32: Fix call to free_stringtable with uninitialized pointer (Coverity). ole32: Wait a bit before doing next sanity check in StorageImpl_LockRegionSync. wine.inf: Add some LicenseInformation registry values. ntdll: Implement [Nt|Zw]QueryLicenseValue. slc: Implement SLGetWindowsInformationDWORD. ntdll: Move all structs and definitions to the beginning in threadpool.c. user32: Fix invalid memory access and leak if alloc_user_handle fails (Coverity). kernel32: Fix file handle leak in exec_process (Coverity). kernel32: Fix leak of dynamic_buffer in QueryFullProcessImageNameW (Coverity). user32/tests: Add tests for removing already seen messages from the queue. ntdll: RtlFindActivationContextSectionString should accept a NULL pointer as data. ntdll: Handle write watches in virtual_uninterrupted_write_memory.
Stefan Dösinger (21): wined3d: Properly up-scale WINED3DFMT_R5G5_SNORM_L6_UNORM. wined3d: Improve the unsigned emulation of WINED3DFMT_R5G5_SNORM_L6_UNORM. d3d9/tests: Add a test for signed formats. wined3d: Add support for GL_EXT_texture_snorm. wined3d: Support WINED3DFMT_R5G5_SNORM_L6_UNORM with EXT_texture_snorm. d3d8/tests: Add a test for signed formats. ddraw/tests: Add a test for signed formats. ddraw: Set DDPF_BUMPLUMINANCE for V5U5L6 and X8L8V8U8. ddraw: Remove support for V16U16. wined3d: Initialize WINED3DTA_TEMP. d3d9: Correct ColorFill validation. d3d9/tests: Relax the fog range test a bit. d3d8/tests: oFog is not initialized on r200. ddraw/tests: r200 ignores the alpha channel when matching color keys. ddraw: Add DDBLT_COLORFILL validation. ddraw/tests: Add a DDBLT_COLORFILL test. ddraw: Add DDBLT_DEPTHFILL validation. ddraw/tests: Add tests for DDBLT_DEPTHFILL. ddraw: Add validation and tests for DDBLT_ROP. ddraw: Handle DDBLT_ROP in ddraw. d3d9/tests: Extend the colorfill test.
Stefan Leichter (1): msctf: Add TF_InitMlngInfo stub.
Vincent Povirk (9): ole32: Test the entire range lock block for synchronization. ole32: Don't use real synchronous locks for storage synchronization. ole32: Accept only STG_E_INVALIDFUNCTION or success from LockRegionSync. ole32: Add a 20 second timeout when attempting to grab locks. ole32: Fail to open storage files that are locked incorrectly. gdiplus: Do not access Bitmap bits when drawing transparent pixels. gdiplus: Access bitmaps by row in alpha_blend_bmp_pixels. gdiplus: Fix leak in test in todo_wine case. gdiplus: GdipGetDC doesn't set the alpha channel for a 32-bit dib.
YongHao Hu (1): msvcp90: Add istream::operator>>complex implementation and tests.
-- Alexandre Julliard [email protected]