The Wine development release 1.5.3 is now available. What's new in this release (see below for details): - Support for graphics bounds tracking. - A number of fixes to the builtin Internet Explorer. - Support for displaying ARM code in the Wine debugger. - Various DirectMusic improvements. - Better namespace support in MSXML. - Various bug fixes. The source is available from the following locations: http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.5.3.tar.bz2 http://prdownloads.sourceforge.net/wine/wine-1.5.3.tar.bz2 Binary packages for various distributions will be available from: http://www.winehq.org/download You will find documentation on http://www.winehq.org/documentation You can also get the current source directly from the git repository. Check http://www.winehq.org/git for details. Wine is available thanks to the work of many people. See the file AUTHORS in the distribution for the complete list. ---------------------------------------------------------------- Bugs fixed in 1.5.3: 6878 GetBoundsRect not implemented 7977 date format differs from Windows 7990 C&C 3 Video does not stretch to fullscreen with ATI drivers 12228 No ALSA support for certain soundcards since 0.9.57 14400 AngelBot crashes if text is copied via right-click context menu 15582 Adobe Dreamweaver CS3 Installer crash if you reject the license 15606 Lotr Bfme2: Big parts of characters appear in a glowing white 19435 Some winsock calls will crash when passing NULL as protocol parameter 20102 Runes of magic is unable to save configuration settings 20566 icons of size 24x24 are black 20770 FineReader 8 crashes after importing images into an empty batch 20839 Blue particles where there should be only fog in Age of Empires III trial. 21269 Babylon 5 - I've F­ound Her: crashes when colliding with objects if using a joystick 22767 Ragnarok and deforming sound 23106 Shareaza shows white boxes when you select a neighbor in the network tab 23867 Non-English characters don't display in winecfg 24816 Serif WebPlus X2 fails to install 26176 JavaScript custom-actions not running? 26420 TES Construction Set crashes on topic view/edit 27157 Brink: No sound 27273 Microsoft Office Communicator 2007 R2 does not install, doesn't recognize MSXML 6.0 SP1 as installed (ACTION_FileVersionMatches needs to check version for languages) 28340 UFO: Extraterrestrials Gold crashes at start (can't be workarounded by using native dsound/directplay) 28848 PCSX2 0.9.9 svn r4942: Using GSDX plugin results in garbled graphics 28999 Weatherbug fails to detect vbscript 29099 LabView 2011 demo crashes on start (PathRemoveExtensionA/W unconditionally tries to null terminate string) 29165 IApplicationAssociationRegistration not implemented (needed by gecko) 29318 Internet Explorer 8 cannot show previews on the quick tabs screen 29823 Subtitle Edit is missing its menu bar with MS .NET 2.0, but not Mono 30085 Non display of code from a saved project on starting the app again 30090 Pegasus Mail v4.63 build 325 starts w/ exception (0x80004001) (0x80004001) @01AE3610 (mshtml HTMLDocument_put_URL is a stub) 30233 Cisco IP Communicator 8.6(1). The minimum supported processor to run Cisco IP Communicator is a P3 Pentium-level or compatible processor 30243 RaiderZ needs msvcr90.dll._byteswap_ulong 30283 Can not fetch STATIC records from Microsoft ADO data sources 30313 Microsoft Office Communicator 2007 R2 Trial requires ISAXXMLReader feature "namespace-prefixes" 30363 Some sites iexplore now hangs 30401 Iexplore crashes http://whatsmyuseragent.com 30430 Iexplore crashes http://europe.cnn.com/CNNI/ 30440 Iexplore crashes https://login.yahoo.com/ 30448 Star Wars Galactic Battlegrounds 1.0: crashes randomly every time I play it 30461 Windows Media Player does not render video 30468 Iexplore hangs http://www.tinymce.com/tryit/full.php 30478 Document.write doesn't support number content 30482 Lexware Buchhalter 2012 fails on startup due to GdipCreateFontFromLogfont not properly handling negative font heights 30491 Microsoft Office Communicator 2007 R2 Trial fails to parse rule XML from resource file (BSTR/UTF-16 passed to SAXXMLReader) 30505 Microsoft Office Communicator 2007 R2 Trial fails to parse rule XML from resource file (needs support for push/pop operations for namespace contexts) 30508 Powerpoint 2003 & 2007: embedded video has an "ActiveMovie" title bar (and shouldn't) 30510 Crash when using CANeds 30516 StudioTax 2011 installer hangs ---------------------------------------------------------------- Changes since 1.5.2: Akihiro Sagawa (2): comctl32/tests: Add tests for long info tip texts. comctl32: Truncate the info tip text when using ANSI version messages. Alexander Morozov (1): kernel32/tests: Add more tests for early closing mapping handle. Alexandre Julliard (18): po: Fix a msgid in the Danish translation. gdi32: Add helper functions for manipulating bounds rectangles. gdi32: Add a GetBoundsRect driver entry point. gdi32: Add bounds tracking to all the DIB engine entry points. winex11: Convert all points to device coordinates at once for polylines and polygons. winex11: ExtFloodFill does take the current ROP into account. gdi32/tests: Fix a test that can fail on multi-monitor setups. winex11: Remove support for server-side fonts. winex11: Add bounds rectangle tracking to all graphics entry points. user32: Don't invalidate DCEs for sibling top-level windows since they are not clipped. gdi32/tests: Take into account multi-monitor setups in the clip region tests. gdi32: Fix some typos in the 4-bpp shrink_row function. dmusic: Internal functions don't need to be WINAPI. gdi32: Fix coordinates for row copies in mirrored vertical stretching. iphlpapi/tests: Get rid of function typedefs and use more standard names for function pointers. gdi32: Add a SetBoundsRect driver entry point. gdi32: Store the bounds rectangle as a pointer in the DIB driver. winex11: Store the DC bounds rectangle as a pointer. Andrew Eikum (2): dmime: Don't try to create a standard audio path if the client didn't ask for one. dsound: Map MMDevAPI error to DSound error. André Hentschel (21): winedbg: Add long branch to Thumb disassembling. winedbg: Solve ARM disassembling fixmes. winedbg: Use better register names for ARM disassembling. winedbg: Fix parsing table for ARM disassembler. advapi32: Avoid shadowing a parameter. crypt32: Avoid shadowing a parameter. winedbg: Add shift operators to ARM disassembler. comctl32: Remove unneeded shadow variables for comboex. devenum: Remove unneeded shadow variables. gdi32: Remove unneeded shadow variable. mscms: Remove unneeded shadow variable. netapi32: Remove unneeded shadow variables. winhlp32: Remove unneeded shadow variables. jscript: Remove unneeded shadow variable. services: Remove unneeded shadow variable. winedbg: Disassemble more Thumb instructions. winedbg: Add "load address" and new nops to the Thumb disassembler. winedbg: Print all available information about branch targets in ARM disassembler. winevdm: Remove unneeded shadow variable. ws2_32: Remove unneeded shadow variable. dbghelp: Assorted fixes for shadow variables. Aric Stewart (8): quartz: Correct a critical section lock reversal issue found by Marcus Meissner (Coverity). strmbase: Implement BaseDispatch. strmbase: Have BaseControlWindow use BaseDispatch. strmbase: Have BaseControlVideo use BaseDispatch. strmbase: Have PassThruImpl use BaseDispatch. strmbase: We cannot hold the RenderLock during QualityControlRender_WaitFor. strmbase: get_VideoHeight should always have a positive height. strmbase: Track internal window styles in baseWindow.WindowStyles. Aurimas Fišeras (1): po: Update Lithuanian translation. Bruno Jesus (4): ole32: Make sure StgIsStorageILockBytes tests real data. iphlpapi/tests: Add SetTcpEntry tests. regedit: Fix item text reading in regedit. regedit: Allows semicolon comments. Carlo Bramini (1): shlwapi: Add NULL checks to StrCpyW and StrCatW. Christian Costa (25): winegstreamer: Remove useless FIXME. dmband: Add tests. dmband: Display flag variables in hexadecimal and rename some parameters. d3drm: Pass the first requested interface when notifying the application. d3drm: Implement IDirect3DRMFrameX_AddChild. d3drm: Implement IDirect3DRMFrameX_DeleteChild. dmusic: Fix IDirectMusic8Impl_CreateMusicBuffer buffer signature. dmusic: Pass creation parameters to DMUSIC_CreateDirectMusicBufferImpl then allocate data buffer and set format accordingly. dmusic: COM clean-up of IDirectMusicBuffer. include: Add dmksctrl.h with definition of KSDATAFORMAT_SUBTYPE_DIRECTMUSIC needed by DirectMusic. amstream: Use proper constructor name for ddraw mediastream. amstream: Add IAudioMediaStream stub implementation. dmusic: Implement IDirectMusicBufferImpl_GetBufferFormat. dmusic: Implement IDirectMusicBufferImpl_GetMaxBytes. dmusic: Implement IDirectMusicBufferImpl_GetRawBufferPtr. dmusic: Display new ref in IDirectMusicBufferImpl_AddRef and IDirectMusicBufferImpl_Release. dmusic: Cleanup IDirectMusicBufferImpl_QueryInterface. amstream: Add stubbed implementation of DirectDrawStreamSample. amstream: Add stubbed implementation of AudioStreamSample. dmusic: Add tests for IDirectMusicBuffer. dmusic: Handle GUID_NULL when creating IDirectMusicBuffer. dmusic: Implement IDirectMusicBufferImpl_PackStructured. dmusic: IDirectMusicBufferImpl_GetUsedBytes. dmusic: Implement IDirectMusicBuffer_GetStartTime and IDirectMusicBuffer_SetStartTime. dmusic: Implement IDirectMusicBufferImpl_Flush. Daniel Lehman (3): gdi32: Don't add_join if points are coincident in wide_line_segments. msvcrt: Add declarations to stdlib.h for _strtoui64 and _strtoi64. oleaut32: Treat years 0 to 29 as 2000 to 2029 in VARIANT_RollUdate. Detlef Riekenberg (2): browseui: Add IOleWindow to IProgressDialog. browseui/tests: Add tests for IProgressDialog. Dmitry Timoshkov (17): kernel32: Fix some typos, remove not needed casts. server: Add access mapping for IO completion objects. include: Define MUTEX_ALL_ACCESS in a PSDK compatible way. include: Add some missing FILE_FLAG_xxx definitions. advapi32: Add distinct tests for Read, Write and Execute access rights for kernel objects. advapi32: Add named pipe access tests. gdiplus: Use StretchBlt instead of GdiAlphaBlend if device doesn't support alpha blending. kernel32: Add more memory access checks. gdiplus: Avoid saving negative values in pixel_size and emSize. gdiplus: Use symbolic names of font styles. gdiplus: Use Tahoma instead of Arial for gdiplus font tests. include/wine/test.h: Fix tests compilation with a PSDK compiler. gdiplus: Do not rely on an enumerated font size being equal to otmEMSquare. gdi32: Enumerated font size should not be too large. gdi32: ntmCellHeight and ntmAvgWidth should be in font units. gdiplus: Use symbolic name of the font style. winex11.drv: Windows always generates VK_DECIMAL for Del/. on a keypad. Francois Gouget (24): d3drm/tests: Make object_load_callback() static. quartz: Mark a bunch of functions as static. scrrun/tests: Make test_interfaces() static. wineoss.drv: Make get_ossdevice_from_guid() static. gdiplus/tests: Make test_pathgradientpresetblend() static. msi: Make create_record() static. po: Fix some typography issues in the Czech translation. po: A couple of line wrapping tweaks in the Czech translation. po: Fix a couple of typography issues in the Portuguese (Portugal) translation. po: Assorted French translation spelling fixes and tweaks. po: Mark an Esperanto translation with an invalid formatting directive as fuzzy. po: Fix a few line feed / line wrapping issues in the Esperanto translation. po: Fix some typography issues in the Esperanto translation. po: Fix a couple of trailing space issues in the Korean translation. po: Fix some typography issues in the Danish translation. po: Fix a couple of line feed / line wrapping issues in the Ukrainian translation. po: Fix some typography issues in the Ukrainian translation. po: Fix some typography issues in the Turkish translation. po: Mark an incomplete Ukrainian translation as fuzzy. po: Mark an incorrect Spanish translation as fuzzy. po: Fix some typography issues in the Chinese (PRC) translation. po: Fix a Portuguese (Portugal) translation. po: Update a few Yes/No/All Slovak translations. comctl32/tests: Add a trailing '\n' to an ok() call. Frédéric Delanoy (2): vbscript: Fix a typo. jscript: Assorted spelling fixes. Hans Leidekker (16): server: Include the Unix pid in the snapshot_next_process reply. iphlpapi: Add support for TCP_TABLE_OWNER_PID_ALL in GetExtendedTcpTable. iphlpapi: Add tests for GetExtendedTcpTable. iphlpapi: Reimplement GetTcpTable on top of GetExtendedTcpTable. msi: Fix install state detection for registry components. msi/tests: Add a test for MsiEnumProductsEx. msi/tests: Fix some leaks. msi: Remove an unneeded assignment. msi: Reduce the indentation level in ACTION_GetComponentInstallStates. msi: Initialize hkey in msi_comp_find_prod_key. msi: Dynamically allocate the path buffer in MsiQueryComponentStateW. msi: Remove child folders first in the RemoveFolders action. msi: Check supported languages in the AppSearch action. msi: Don't free cached tables in MsiDatabaseCommit. msi: Avoid a crash in get_registered_local_package. fusion: Implement IAssemblyCache::UninstallAssembly. Henri Verbeet (50): d3d10core: COM cleanup for the ID3D10Buffer interface. d3d10: COM cleanup for the ID3D10EffectVariable interface. wined3d: Move the present() back buffer check to the common wined3d_swapchain_present() code. wined3d: device_clear_render_targets() never fails. ddraw/tests: Add a helper function to create a material. d3d8: Properly retrieve an interface pointer in IDirect3DCubeTexture8Impl_GetCubeMapSurface(). d3d8: Properly retrieve an interface pointer in IDirect3DCubeTexture8Impl_LockRect(). d3d8: Properly retrieve an interface pointer in IDirect3DCubeTexture8Impl_UnlockRect(). d3d8: Get rid of IDirect3DTexture8Impl. d3d8: Get rid of IDirect3DCubeTexture8Impl. d3d8: Properly retrieve an interface pointer in d3d8_texture_2d_GetSurfaceLevel(). d3d8: Properly retrieve an interface pointer in d3d8_texture_2d_LockRect(). d3d8: Properly retrieve an interface pointer in d3d8_texture_2d_UnlockRect(). d3d8: Get rid of IDirect3DVolumeTexture8Impl. d3d8: Merge cubetexture.c into texture.c. d3d8: Properly retrieve an interface pointer in d3d8_texture_3d_GetVolumeLevel(). d3d8: Properly retrieve an interface pointer in d3d8_texture_3d_LockBox(). d3d8: Properly retrieve an interface pointer in d3d8_texture_3d_UnlockBox(). d3d8: Merge volumetexture.c into texture.c. d3d8: Get rid of IDirect3DBaseTexture8Impl. d3d8: Properly retrieve an interface pointer in IDirect3DSwapChain8Impl_GetBackBuffer(). d3d8: Use the surface implementation pointer in reset_enum_callback(). d3d8: Properly retrieve an interface pointer in IDirect3DDevice8Impl_GetBackBuffer(). dxgi: COM cleanup for the surface IUnknown interface. ddraw/tests: Add a helper function to set the viewport background material. d3d8: Properly retrieve an interface pointer in IDirect3DDevice8Impl_GetRenderTarget(). d3d8: Properly retrieve an interface pointer in IDirect3DDevice8Impl_GetDepthStencilSurface(). d3d8: Properly retrieve an interface pointer in IDirect3DDevice8Impl_GetTexture(). d3d9: Get rid of IDirect3DTexture9Impl. d3d9: Get rid of IDirect3DCubeTexture9Impl. d3d8: Properly retrieve an interface pointer in IDirect3DDevice8Impl_GetIndices(). d3d8: Properly retrieve an interface pointer in IDirect3DDevice8Impl_GetStreamSource(). d3d9: Properly retrieve an interface pointer in IDirect3DSwapChain9Impl_GetBackBuffer(). d3d9: Get rid of IDirect3DVolumeTexture9Impl. d3d9: Merge cubetexture.c into texture.c. d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetSwapChain(). d3d9: Use the surface implementation pointer in reset_enum_callback(). d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetBackBuffer(). d3d9: Merge volumetexture.c into texture.c. d3d9: Get rid of IDirect3DBaseTexture9Impl. d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetRenderTarget(). d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetDepthStencilSurface(). d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetTexture(). ddraw: Get rid of IClassFactoryImpl. wined3d: Move the resource bind_count field up to wined3d_resource. d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetVertexDeclaration(). d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetVertexShader(). d3d9: Properly retrieve an interface pointer in IDirect3DDevice9Impl_GetPixelShader(). d3dx9: Introduce a special case for simple loads in D3DXLoadSurfaceFromMemory(). d3dx9: Add basic support for loading DXT formats to D3DXLoadSurfaceFromMemory(). Huw Davies (11): wineps: Add a helper to find an input slot. wineps: Add a helper to find a page size. wineps: Add a helper to find a duplex entry. wineps: Add a cups job ticket containing pagesize and duplex information. winspool: Simplify cups function loading. winspool: Explicitly set CUPS options based on any job ticket lines, which otherwise get ignored by cupsPrintFile. winspool: Add a helper to open a printer's registry key. winspool: Simplify the code that checks for deleted printers and have it not call OpenPrinter unless it finds a printer that needs deletion. winspool: Update the default settings when deleting the default printer. winspool: If CUPS is found but lists no printers assume that there really are no printers - don't look in /etc/printcap. winspool: Don't leak the handle returned by AddPrinter. Hwang YunSong (1): po: Update Korean translation. Jacek Caban (36): jscript: Make sure to jump out of switch before entering implicit default clausule. mshtml: Added IHTMLStyle2::bottom implementation. mshtml: Added support for IHTMLEventObj::cancelBubble property. mshtml: Moved style_tbl lookup to separated function. mshtml: Added IHTMLStyle::removeAttribute implementation. mshtml: Added IHTMLStyle::removeAttribute tests. axcore.idl: Guard GetTimeFormat by WINE_NO_UNICODE_MACROS ifdef and added missing AM_GBF_NODDSURFACELOCK define. mshtml: Added IHTMLDocument2::put_URL implementation. Added support for shadowing of element pseudo-variables. mshtml: Added IHTMLWindow3::detachEvent implementation. mshtml: Added IHTMLStyle2::overflowX implementation. mshtml: Added IHTMLStyle2::overflowY implementation. jscript: Addded parameterized property assignment support. jscript: Added parameterized property assignment tests. jscript: Pass correct cpbegin to InitMatch. jscript: Correctly handle empty matches in String.replace. mshtml: Allow more tests to be ran in non-administrator mode. mshtml: Copy filter value in HTMLElement_clone. winhttp: Fixed netconn_recv when read uses both SSL_recv and buffered data. winhttp: Use SSL_pending in netconn_query_data_available. jscript: Added regexp 'pre-parser' to support non-backslash-sequenced non-terminating '/' in characted classes. mshtml: Ignore dispid 3000026 in IPropertyNotifySink::OnChanged tests. mshtml: Accept different VARIANT types in document_write. winhttp: Trace accept types in WinHttpOpenRequest. jscript: Use compiler-generated struct for representing function code. jscript: Store function name in function_code_t. jscript: Store source code range in function_code_t. jscript: Store variable names in function_code_t. jscript: Fixed func->funcs leak. jscript: Store function parameters in function_code_t. jscript: Make parser a temporary compiler object. jscript: Moved collecting variable declarations from parser to compiler. vbscript: 'property' may be both keyword and identifier. jscript: Get rid of parser function collecting hack by moving the logic to compiler. jscript: Use stack_push_int in interp_bneg. jscript: Removed unused do_*_tag_format arguments. Julian Rüger (1): po: Update German translation. Józef Kucia (1): d3dx9/tests: Add DDS pixel format tests for D3DXGetImageInfoFromFileInMemory. Lauri Kenttä (2): po: Update Finnish translation. po: Update Swedish translation. Marcus Meissner (2): strmbase: Use correct *ppv (Coverity). dmusic: Remove useless NULL check (Coverity). Michael Stefaniuc (7): d3drm: Remove leftover return statement (Smatch). mmdevapi: Remove superfluous NULL pointer check before HeapFree (Smatch). strmbase: Remove break after return (Smatch). oleaut32/tests: Compare the correct variants. gdi32/tests: Fix typo (comparison with itself). ntdll/tests: Avoid casting zero. riched20/tests: Don't cast NULL to an integer. Nikolay Sivov (22): msxml3: Use expected/actual sequence concept for reader tests including attributes tests. msxml3: Fix end prefix iteration for SAXXMLReader40. msxml3: Added IMXAttributes::clear(). msxml3: Added getIndexFromName() implementation for SAXAttributes. msxml3: Set namespace-prefixes on by default. po: Update Russian translation. msxml3: Use lookup table for feature names. msxml3: Respect 'namespaces' feature calling content handler callbacks. msxml3: Fix handling of feature values. msxml3: Make failing Locator QI a warning. msxml3: Support 'namespace-prefixes' feature. po: Update Russian translation. msxml3: Switch parser encoding manually when it won't be able to detect it (UTF-16 case). msxml3: Implement push/pop operations for contexts. msxml3: getPrefix() should check all pushed contexts as well. msxml3: Added getValueFromName() for IMXAttributes. msxml3: Added getName() for IMXAttributes. msxml3: Implement getLocalName() for IMXAttributes. msxml3: Implement getURI() for IMXAttributes. msxml3: Support disabled escaping mode for characters() callback. msxml3: Support disabled escaping mode when writing attribute values. msxml3: Query for handler interface instead of using what was passed in Variant directly. Owen Rudge (6): include: Add MAPISendMailW definition and structures. mapi32: Add stub implementation of MAPISendMailW. mapistub: Forward MAPISendMailW. mapi32: Convert sendmail_extended_mapi to Unicode. mapi32: Convert message to Unicode in MAPISendMail. mapi32: Add support to MAPISendMailW for ANSI fallback. Piotr Caban (16): msvcrt: Added support for %W and %U format in strftime. msvcrt: Fixed 'h' modifier handling when printing integers. msvcrt: Added more length modifiers in scanf function. msvcr90: Added _byteswap_{ushort,ulong,uint64} implementation. jscript: Make parsing of double more accurate. jscript: Added Number.toFixed implementation. jscript: Added Number.toExponential implementation. jscript: Added Number.toPrecision implementation. wininet: Use the same hashing function as native does. msvcr90: Fix byteswap_ulong implementation. msvcrt: Rework wcsncpy_s to work on overlapping pointers. jscript: Fix toExponential behavior when exponent is 0. make_unicode: Create tables with data needed by nameprep algorithm. kernel32: Added IdnToNameprepUnicode implementation. kernel32/tests: Added more FoldString tests. kernel32/tests: Added IdnToNameprepUnicode tests. Rico Schüller (2): d3dx9: Use param->bytes for copying the data in ID3DXBaseEffect::SetValue(). d3dx9/tests: Add tests for ID3DXBaseEffect::G/SetValue(). Vincent Povirk (19): windowscodecs: Implement JpegEncoder_Frame_SetPixelFormat. windowscodecs: Implement JpegEncoder_Frame_SetResolution. windowscodecs: Implement JpegEncoder_Frame_WritePixels. windowscodecs: Implement JpegEncoder_Frame_Commit. windowscodecs: Implement JpegEncoder_Commit. windowscodecs: Implement JpegEncoder_Frame_WriteSource. windowscodecs: Implement JpegDecoder_Frame_GetResolution. gdiplus: Add support for JPEG encoding. mscoree: Always call mono_thread_attach before invoking managed code. gdiplus: Implement accessors for graphics rendering origin. gdiplus: Remove FIXME on implemented function. gdiplus: Implement GdipSetPathGradientBlend, with tests. gdiplus: Implement GdipSetPathGradientLinearBlend. gdiplus: Implement GdipSetPathGradientSigmaBlend. gdiplus: Store only one surround color if all colors are the same. gdiplus: Return OutOfMemory when creating a path gradient with NULL points. gdiplus: Return OutOfMemory when creating a path gradient from a NULL path. gdiplus: Add basic implementation of GdipWidenPath. gdiplus: Implement GdipWidenPath for closed figures. -- Alexandre Julliard julliard@winehq.org