You are here
Wine changelog for 1.5.2
The Wine development release 1.5.2 is now available. What's new in this release (see below for details): - Improved naming scheme for audio devices. - Better support for finding system fonts on Mac OS X. - Beginnings of support for JPEG encoding. - Several printing fixes. - Improvements to the URL cache. - Various bug fixes. The source is available from the following locations: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.5.2.tar.bz2 http://prdownloads.sourceforge.net/wine/wine-1.5.2.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. ---------------------------------------------------------------- Changes since 1.5.1: Akihiro Sagawa (1): comctl32: Add support for retrieving lpszText in TOOLINFO structure. Alexander Morozov (2): advapi32: Regular program should not freeze forever if it calls StartServiceCtrlDispatcher. kernel32/tests: Add a test for creating named mapping after closing without unmapping. Alexandre Julliard (21): ntdll: Move the _chkstk implementation to signal_i386.c. ntdll: Add a __chkstk entry point for x86_64. winex11: Fix a potential deadlock in the GradientFill non-XRender fallback. msvcp60: Use DEFINE_RTTI_DATA to initialize exception RTTI data. msvcp60: Use the correct vtable pointer for type_info objects. msvcp90: Use the correct vtable pointer for type_info objects. msvcrt: Use macros to define RTTI data. msvcrt: Use macros to define exception type info structures. gdi32: Fix GetClipBox return value for non-memory DCs. gdi32/tests: Automatically reset the bits after comparing the hash. gdi32/tests: Add tests for DC bounds to the DIB graphics tests. gdi32/tests: Add tests for DC bounds on various device types. gdi32/tests: Add tests for DC bounds handling across various DC manipulations. gdi32: SaveDC doesn't save the DC bounds. gdi32: Clip the returned DC bounds to the device rectangle. gdi32: Add explicit fields for the DC flags. gdi32: Store the reference DC in the enhanced metafile and use it to retrieve device caps. gdi32: Move the pen/brush_region helpers to graphics.c and avoid redundant clipping. gdi32: Map all the points at once in PolyPolyline, similarly to what PolyPolygon does. gdi32: Avoid redundant computation of the gradient bounding rectangle. gdi32/tests: Add test cases for wide pen bounding rectangles. Alistair Leslie-Hughes (2): scrrun: Add IFileSystem3 support. scrrun: Add scrrun tests. Andrew Eikum (13): dsound: Validate and correct wValidBitsPerSample in primary buffer SetFormat. mmddk.h: Remove unused, Wine-specific WinMM defines. winealsa.drv: Use device GUIDs as keys. wineoss.drv: Use device GUIDs as keys. winecoreaudio.drv: Use device GUIDs as keys. mmdevapi: Use device GUIDs as unique identifiers. winealsa.drv: Prefix device names with direction indication. wineoss.drv: Prefix device names with direction indication. dmusic: Check correct return code. mmdevapi: Store device interface in registry. winmm: Support DRV_QUERYDEVICEINTERFACE in waveXxxMessage. mmdevapi: Indicate data flow direction in IMMDevice::GetId result. winealsa.drv: Enumerate ALSA devices in a single pass. André Hentschel (5): winedbg: Implement be_arm_store_integer on ARM. make_specfiles: Add atl group. libwine: Add thumb support. winedbg: Add partial ARM disassembler. winedbg: Add partial Thumb disassembler. Aric Stewart (28): quartz: COM cleanup for AsyncReader and FileAsyncReader. quartz: COM cleanup for AVIDecImpl. quartz: COM cleanup in ACMWrapperImpl. strmbase: Expand BaseRenderer implementation. quartz: Convert DsoundRenderer to use strmbase BaseRenderer. strmbase: More additions to BaseRenderer for video renderers. strmbase: Implement renderer quality control into the base renderer. quartz: Have the VideoRenderer use strmbase BaseWindow. quartz: Convert VideoRenderer to use strmbase BaseRenderer. strmbase: Remove QualityControlImpl from the general strmbase.h. quartz: Convert VideoRenderer to use strmbase's BaseControlWindow. quartz: Change VideoRenderer to use strmbase's BaseControlVideo. strmbase: COM cleanup for PosPassThru. strmbase: Fix issues with new quality control implementation in TransformFilter. strmbase: Add IMediaPosition implementation to PosPassThru. quartz: COM cleanup for DSoundRenderImpl. quartz: Add initial VMR9 stub. quartz: Add BaseControlWindow to VMR9. quartz: Add BaseControlVideo to VMR9. quartz: Add IAMFilterMiscFlags to VMR9 implementation. quartz: Add VMRFilterConfig9 to VMR9. quartz: Add VMRWindowlessControl9 to VMR9. user32: While calculating lines, discard uniscribe data for non-visible lines. quartz: COM cleanup for PullPin. quartz: Add VMRSurfaceAllocatorNotify9 to VMR9. wineqtdecoder: Register the QT Splitter to be a default potential handler for all unhandled streams. quartz: Add control.idl as a typelib resource. wineqtdecoder: Call OutputQueue_Destroy during pin disconnect. Austin English (1): ntdll: Give a better error message if signal context functions aren't defined. Bruno Jesus (4): ws2_32/tests: Avoid usage of inet_ntoa since its return is static. ws2_32/tests: Add hostent struct tests for gethostbyname. ws2_32/tests: Update hostent struct tests. ws2_32/tests: Avoid crashing if getservbyname fails. Carlo Bramini (4): include: Add PERCEIVED types and flags. include: mimeole.idl: Fix typo in ADDRESSPROPS structure. shlwapi: Add stub for AssocGetPerceivedType. shlwapi: Don't remove nonexistent extension in PathRemoveExtension. Christian Costa (17): d3drm: Make IDirect3DRMMeshBuilderX stub return D3DRM_OK. d3drm: Add support for frame with fake data in IDirect3DRMX:Load methods + tests. d3drm: Implement CreateMesh method and stubbed IDirect3DRMMesh interface. dmusic: Enumerate ports for midi out and midi in devices in EnumPort. dmusic: Check return codes and display name from port caps when enumerating microsoft synthetizer. amstream: Add CLSID_AMAudioData implementation. amstream: Implement IAMMultiMediaStreamImpl_Seek. amstream: Implement IAMMultiMediaStreamImpl_SetState. dmsynth: Add basic tests. dmsynth: Check the rigth CLSID to create the DirectMusicSynthSink object. dmsynth: Put port caps that match native ones. d3drm: Display filename when loading data from a file. kernel32: Limit dwTotalPageFile in GlobalMemoryStatus to 4Gb minus 512kb for apps that do not expect so much memory. dmusic: Replace debugstr_DMUS_OBJECTDESC by a specific dump function to avoid debug buffer overflow. dmusic: Add dump function for DMUS_PORTPARAMS struct. dmusic: Check wrong params when creating a port + tests. dmusic: Add trace to DMUSIC_CreateReferenceClockImpl and rename some variables. Daniel Jelinski (2): comctl32/tests: Added test for treeview expand notifications on keyboard events. comctl32/tests: Added tests for treeview TVM_HITTEST message. Detlef Riekenberg (1): comdlg32: Remove an unused 16-bit macro. Dmitry Timoshkov (10): gdi32: Remove a no longer needed shortcut in CreateScalableFontResource test. gdi32: Refuse to load a large .fot file earlier. user32: SetParent() should use ShowWindow() to make a reparented window visible and move a window to new position. user32: SetWindowPos() should check the final window position in screen coords before adding SWP_NOMOVE. gdi32: Fix a typo in faces_equal() preventing loading all sizes of a bitmap font. gdi32: Add more verbose messages to indicate when a font is being added/replaced/refused to load. gdi32: Add a test for bitmap fonts selected for not existing font sizes. fonts: Update cyrillic bitmap glyphs in Tahoma Bold. fonts: Generate large pixel size versions of MS Sans Serif. gdi32: Add large fonts support for MS Sans Serif. Eric Pouech (1): winedbg: Fix set instruction when sizeof(int) sizeof register. Erich Hoover (3): ntdll: Fix section header heap deadlock. ws2_32: Implement IP_UNICAST_IF socket option. ws2_32: Implement IPV6_UNICAST_IF socket option. Francois Gouget (1): po: Remove duplicate spaces between sentences. Hans Leidekker (12): msi: Implement MsiEnumComponentsEx. msi: Reimplement MsiEnumComponents on top of MsiEnumComponentsEx. msi/tests: Add tests for MsiEnumComponents and MsiEnumComponentsEx. msi: Rename the need_reboot flag to need_reboot_at_end. msi: Use the state parameter passed to MsiSetMode. msi: Implement MsiGet/SetMode(MSIRUNMODE_REBOOTNOW). msi: Suspend the installation if an action sets MSIRUNMODE_REBOOTNOW. kernel32/tests: Add tests for GetModuleHandleEx. kernel32: Return failure from GetModuleHandleEx if the module handle pointer is NULL. kernel32: Clear the module handle on failure in GetModuleHandleEx. kernel32: GetModuleHandleEx already clears the module handle on failure. msi: Keep the UI level fixed during the lifetime of a package. Henri Verbeet (49): ddraw: Explicitly check for the IDirectDrawColorControl interface in ddraw_surface7_QueryInterface(). ddraw: The texture interfaces can't be queried from version 7 surfaces. ddraw: The texture interface shares its refcount with the surface interface version used to create the surface. d3d9: Don't return a pointer to the implementation in IDirect3DStateBlock9Impl_QueryInterface(). d3d9: Don't return a pointer to the implementation in IDirect3DQuery9Impl_QueryInterface(). ddraw: The various D3D device interfaces can't be queried from version 7 surfaces. ddraw: Surface versions before 7 return E_INVALIDARG on failure in QueryInterface(). ddraw/tests: Add some QueryInterface() tests for surfaces. d3d9: Don't return a pointer to the implementation in IDirect3DDevice9Impl_QueryInterface(). d3d9: Don't return a pointer to the implementation in IDirect3DCubeTexture9Impl_QueryInterface(). ntdll: Free the correct section headers copy in map_image(). ntdll: Use the copy of the section headers for applying memory protections as well in map_image(). ddraw: Keep track of the ddraw version used to create a device. ddraw: Replace an ERR in IDirect3DDeviceImpl_7_QueryInterface() with a WARN. ddraw: Remove some interfaces from IDirect3DDeviceImpl_7_QueryInterface(). wined3d: Properly determine the viewport size for front buffer blits in SetupForBlit(). d3dx9: Also print the format as FOURCC in get_format_info(). ddrawex: Don't return a pointer to the implementation in IDirectDrawFactoryImpl_QueryInterface(). ddrawex: Don't return a pointer to the implementation in IDirectDrawClassFactoryImpl_QueryInterface(). ddraw: Fix querying device interfaces in IDirect3DDeviceImpl_7_QueryInterface(). ddraw: Version 1 devices are aggregated by the surface that created them. ddraw/tests: Add some QueryInterface() tests for devices. dxgi: Don't return a pointer to the implementation in dxgi_surface_inner_QueryInterface(). d3dx9: Don't return a pointer to the implementation in ID3DXSpriteImpl_QueryInterface(). wined3d: Simplify the data.buffer_object assignment in surface_load_texture(). ddraw: Simplify updating palette entries in d3d_texture2_Load(). ddraw: Properly retrieve an interface pointer in ddraw_surface7_GetPalette(). d3dx9: Don't return a pointer to the implementation in ID3DXConstantTableImpl_QueryInterface(). d3dx9: Don't return a pointer to the implementation in ID3DXMeshImpl_QueryInterface(). ddraw: Properly retrieve an interface pointer in ddraw7_GetSurfaceFromDC(). ddraw: Properly retrieve an interface pointer in IDirect3DDeviceImpl_7_GetTexture(). ddraw: Get rid of IDirect3DDeviceImpl. d3dx9: Don't return a pointer to the implementation in ID3DXMatrixStackImpl_QueryInterface(). d3dx9: Don't return a pointer to the implementation in ID3DXLineImpl_QueryInterface(). d3d9: Introduce a separate function for swapchain creation. d3d9: COM cleanup for the IDirect3DSwapChain9 interface. ddraw: Get rid of IDirect3DExecuteBufferImpl. d3dx9: Don't return a pointer to the implementation in ID3DXFontImpl_QueryInterface(). d3dx9: Don't return a pointer to the implementation in ID3DXEffectPoolImpl_QueryInterface(). d3d9: Introduce a separate function for vertex declaration creation. d3d9: Store wined3d vertex declarations in the fvf lookup table. ddraw: Get rid of IDirect3DVertexBufferImpl. d3dx9: Don't return a pointer to the implementation in ID3DXEffectCompilerImpl_QueryInterface(). d3dx9: Don't return a pointer to the implementation in ID3DXEffectImpl_QueryInterface(). d3d9: Use the wined3d declaration to retrieve the FVF in IDirect3DDevice9Impl_GetFVF(). d3d9: COM cleanup for the IDirect3DVertexDeclaration9 interface. wined3d: Unify the wined3d_mapped_rect and wined3d_mapped_box structures. include: Fix a couple of ID3DXSaveUserData prototypes. d3dx9: Don't return a pointer to the implementation in ID3DXBaseEffectImpl_QueryInterface(). Huw Davies (33): winspool: Propagate the printer's devmode to a new job. wineps: Use the unicode version of StartDocPrinter. winspool: Initialise portname. winspool: Correct the padding calculation when there is no buffer. winspool/tests: Add some tests for OpenPrinter with non-NULL defaults. winspool: Remove a FIXME now that we don't ignore the defaults. wineps: Free the output string from the correct heap. wineps: Move some structs to the process heap. wineps: Store the document title as a unicode string. wineps: Store the unicode version of the printer name and call the unicode version of OpenPrinter. wineps: Move some allocations to the process heap. wineps: Fix a memory leak. wineps: Change the printer info list into a standard list. wineps: Add a helper to retrieve the font substitution table. winspool: Generalise the A to W printer info conversion to cope with other levels. winspool: Forward SetPrinterA to SetPrinterW. winspool: Add a helper to set devmode data in the registry. winspool: Implement SetPrinterW for level 9. wineps: Move the installed font list to a standard list. wineps: Move the constraints list to a standard list. wineps: Move the input slot list to a standard list. wineps: Move the duplex list to a standard list. wineps: Remove the installed options list as it's never populated. wineps: Retrieve the printer's devmode using GetPrinter. wineps: Set the printer's devmode using SetPrinter. wordpad: Don't quit if the user cancels the save-as dialog when being prompted to save changes. wineps: Return from a common point. wineps: Switch to using a Unicode devmode. wineps: Pass the devmode to OpenPrinter. wineps: Simplify the failure path. wineps: Move the default resolution fallback to the ppd parser. wineps: Add the duplex entry to the list. wineps: Move ppd filename retrieval to a separate function. Igor Paliychuk (1): po: Update Ukrainian translation. Ilya Basin (1): regedit: Fix buffer size when exporting binary values. Jacek Caban (36): jscript: Fixed jsheap_grow implementation. jscript: Emit undefined statement return for switch without default clausule. jscript: Fixed parsing /=/ regexp. mshtml.idl: Added DispHTMLMetaElement declaration. mshtml.idl: Added IHTMLMetaElement* declarations. mshtml: Added IHTMLMetaElement stub implementation. mshtml: Fixed status text cache implementation. mshtml: Added IHTMLMetaElement::get_name implementation. mshtml: Added IHTMLMetaElement::get_content implementation. mshtml: Added IHTMLMetaElement::get_httpEquiv implementation. mshtml: Use helpers for IHTMLStyle::put_verticalAlign property implementation. mshtml: Use helper for IHTMLStyle::get_height implementation. mshtml: Use helper for IHTMLStyle::get_top implementation. mshtml: Use helper for IHTMLStyle::get_left implementation. mshtml: Use helper for IHTMLStyle::put_zIndex implementation. devenum: Removed useless structs. mshtml: Added IHTMLWindow2::onerror semi-stub implementation. jscript: Avoid cleaning an uninitialized variable. mshtml: Remove old channel from load group in nsIAsyncVerifyRedirectCallback::AsyncOnChannelRedirect. mshtml: Added support for IDispatch-only ActiveX objects. mshtml: Detach also internal listeners in detach_events. mshtml: Added IHTMLImgElement::onerror implementation. mshtml: Added IHTMLImgElement::onerror tests. mshtml: Added semi-stub implementation of IOmNavigator::get_cookieEnabled. urlmon: Build more appropriate user agent string. mshtml: Added IHTMLFormElement::submit implementation. jscript: Replace only the first match for non-regexp pattern in String.replace. mshtml: Added better IHTMLWindow2::get_opener stub. mshtml: Added IHTMLDocument2::onkeypress implementation. mshtml: Added IHTMLElement2::blur implementation. mshtml: Return self as a parent of global top window. mshtml: Improved helper for returning color as VARIANT in HTMLBodyElement implementation. mshtml: Use return_nsstr helper in IHTMLBodyElement::get_background implementation. mshtml: Use return_nsstr helper in HTMLElement object implementation. mshtml: Use return_nsstr helper in more functions. vbscript: Short if statement may have optional 'end if'. Jeff Latimer (1): ws2_32: Make a common fixme more meaningful and return success. Joris Huizer (1): amstream: IAMMultiMediaStreamImpl_SetState: correct ifs. Józef Kucia (3): include/d3dx9: Fix spelling errors. d3dcompiler: Fix parsing the tex instruction in ps_1_0 shaders. d3dcompiler: Allow the alternative shader version format (with dots instead of underscores). Ken Thomases (2): Revert "gdi32: Load fonts from default Mac external font paths.". gdi32: On Mac OS X, find fonts using Core Text rather than FontConfig, by default. Kusanagi Kouichi (1): gdi32: Improve font cache. Lucas Zawacki (1): dinput: Don't trace DIEFFECT members if they don't contain valid data. Marcus Meissner (1): winealsa.drv: Fixed buffer to RegEnumKeyExW. Michael Stefaniuc (11): dmime: COM cleanup for IDirectMusicPerformance8. dmime: DirectMusicPerformance doesn't supports COM aggregation. dmime/tests: Add some COM tests for IDirectMusicPerformance. dmime: Move struct IDirectMusicPerformance8Impl to the c file. devenum: COM cleanup for ICreateDevEnum. devenum: COM cleanup for IEnumMoniker. devenum: COM cleanup for IMoniker (MediaCatMoniker). devenum: Don't use DEVENUM_IPropertyBag_AddRef method directly. devenum: COM cleanup for IParseDisplayName. dmime: DirectMusicSegment doesn't supports COM aggregation. dmime/tests: Add some COM tests for DirectMusicSegment. Morten Rønne (5): po: Updated Danish translation. wininet/tests: Fixed text errors in tests. wininet/tests: Added more tests for urlcache, including a new flag in CacheEntryType. po: Updated Danish translation. wininet/tests: Moved a test outside a loop to make numbers of tests run independent on the numbers of entries in the cache. Nicolas Le Cam (1): configure.ac: Prefer pkg-config over freetype-config. Piotr Caban (20): wininet: Store element type and state in hash table key (urlcache). wininet: Correctly set next hash table offset. wininet: Mark empty fields in the same way while hash table is created and element is removed. wininet: Set uninitialized memmory to 0xdeadbeef in cache files. wininet: Only mark elements as deleted in DeleteUrlCacheEntry function. wininet: Don't delete locked entry in DeleteUrlCacheEntry. wininet: Don't overwrite locked entry in CommitUrlCacheEntry. wininet: Don't reserve space for directory in URL cache entry. wininet: Return error code in URLCache_FindFirstFreeEntry function. wininet: Implement urlcache index growing. ddraw: Improve GetScanLine stub so it's usable for timing related tasks. msvcrt: Rewrite asctime function. msvcrt: Rewrite wasctime function. msvcrt: Set correct date and time format for C locale. msvcrt: Added field names to MSVCRT___lc_time_data structure. msvcrt: Added _Strftime implementation. msvcrt/tests: Added more strftime tests. msvcrt: Added support for _TRUNCATE flag in wcsncpy_s. msvcrt: Fix months and weekday names in C locale. wininet: Store correct urlcache file size. Robert van Herk (1): msi: Fixed MsiGetFileHashW for empty files. Stefan Leichter (2): atl80: New dll. atl80: Add stub for AtlCreateRegistrar. Vincent Povirk (14): gdiplus: Implement GdipGetPathGradientCenterColor. gdiplus: Implement path gradient preset blend accessors. gdiplus: Add tests for preset blend accessors. gdiplus: Implement GdipGetPathGradientTransform. gdiplus: Forbid creating path gradients with fewer than 2 points. gdiplus: Default path gradient center color depends on the constructor. gdiplus: Set the wrap mode in the path gradient constructor. gdiplus: Implement path gradient transform setters. winedump: Add basic support for dumping the property store in lnk files. windowscodecs: Add stub JPEG encoder. windowscodecs: Implement JpegEncoder_Initialize. windowscodecs: Implement JpegEncoder_CreateNewFrame. windowscodecs: Implement JpegEncoder_Frame_Initialize. windowscodecs: Implement JpegEncoder_Frame_SetSize. Łukasz Wojniłowicz (1): po: Updated Polish translation. -- Alexandre Julliard julliard@winehq.org