Wine Announcement

The Wine development release 1.3.18 is now available.

What's new in this release (see below for details):
  - Support for mouse pointer clipping.
  - Raw mouse events support using XInput2.
  - First steps of a DIB engine implementation.
  - More properties supported in DXDiag.
  - New security tab in the Internet control panel.
  - Improved video playback on Mac OS X.
  - Various bug fixes.

The source is available from the following locations:

Binary packages for various distributions will be available from:

You will find documentation on

You can also get the current source directly from the git
repository. Check for details.

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


Bugs fixed in 1.3.18:

   1918  PostMessage(hwnd,WM_QUIT,0,0) doesn't exit the message loop
   4553  Future Cop doesn't start
   5559  rendering problem in Beyond Good and Evil
   7663  War Of the Ring Demo aborts silently on startup
   9026  division by zero in winealsa
  13387  Crysis patcher fails
  14045  SketchUp was unable to initialize OpenGL
  15304  Running any Half-Life based game in "Windowed Mode" corrupts mouse movement
  15394  Activating a single item menu using a hotkey doesn't execute the menu item command
  16187  Google Sketchup Layout crashes on startup (needs TIFF encoding)
  19191  Adobe Updater 6: unable to install updates for Adobe Reader 9
  19960  NtQuerySystemInformation( SystemProcessorPerformanceInformation returns stale and incorrect values
  20998  Anarchy Online starting up slowly and KDE panel shown fullscreen
  22282  Dragon Age: Origins mouse control glitches
  23509  SetThreadAffinityMask() doesn't work correctly anymore
  23830  KKBOX crashes
  23962  Borderlands will not start
  24134  Demos on dhpoware website won't run without native msvcp100.dll
  24359  dbghelp has lots of 'elf_new_wine_thunks Duplicate' (gcc 4.6)
  24870  thief gold multiprocessor bug not affected by taskset or schedtool.
  25321  Osu! doesn't run in OpenGL mode
  25407  Office 2007 SP2 installer reports success but fails to install some components
  25520  Unreal Gold ( version) crashes
  25653  ratGPU standalone renderer hits unimplemented function MSVCR90.dll.__CxxFrameHandler3 on x86_64
  25825  kernel32:debugger tests fail under clang
  25920  winedbg does not work under clang
  25975  Edge of Chaos window display does not update
  26013  Brigade E5 crashes at startup
  26023  Live Messenger 2009 crashes on start, needs msvcr80.dll._mbslwr_s
  26026  Installation of ICBC online bank Active Control needs scarddlg.dll
  26266  Moving the mouse ingame causes it to halt in Retribution Engine
  26284  Crysis 2 demo needs msvcr90.dll._snscanf (purist)
  26381  mcmap.exe help text is wrong
  26418  Guitar Hero World Tour: Playstation 3 (ps3) hardware detection in game
  26482  Typo in leads to FTBFS
  26509  dbghelp gives a ton of duplicate symbols under clang
  26564  Sinking Island: exception occurs on exit
  26591  Slingplayer 2 crashes when clicking on "Log in" when compiled with gcc -O0
  26599  ip-tv player not switch to fullscreen
  26627  Z doesn't install (needs ole2disp.SETERRORINFO)
  26632  MultiByteToWideChar with MB_ERR_INVALID_CHARS doesn't fail for some code points.
  26650  MS Office 2007 won't install
  26675  Lots of black surfaces and textures in Dungeon Keeper 2
  26679  Warcraft 3 stops rendering when pressing the left mouse button (selecting several units)
  26689  Creative Writer 2 crashes after opening some sets of files consecutively
  26720  hifree required InternetSetW with INTERNET_OPTION_DATA_SEND_TIMEOUT
  26728  d3d_compiler/reflection test shows a ton of valgrind warnings
  26732  Winecfg: tab text is missing
  26733  AutoCAD 2008: Hang-up at start-up
  26735  It should be possible to select Windows 2008 R2
  26777  Games for Windows Live fails to start without native windowscodecs


Changes since 1.3.17:

Akihiro Sagawa (6):
      gdi32/tests: Add a test for a charset enumeration order.
      gdi32: Move charset enumeration to helper function.
      gdi32: Remove redundant charset assignments.
      gdi32: Create charset enumeration order list for EnumFontFamiliesEx.
      kernel32/tests: Add a test for undefined byte character conversion.
      libwine: MB_ERR_INVALID_CHARS makes an error when the undefined byte character is used.

Alexandre Julliard (29):
      gdi32: Use the hdc from the generic physdev structure in metafiles.
      gdi32: Use the hdc from the generic physdev structure in enhanced metafiles.
      server: Don't run low-level hooks in debugged processes.
      server: Add a more general way of posting messages to the desktop window.
      server: Post a message to the desktop window when the cursor clip rectangle changes.
      winex11: Implement cursor clipping using a pointer grab.
      winex11: Add an option to disable pointer grabs.
      winex11: Always forward SetCursor to the driver, and limit the frequency of updates on the driver side.
      winex11: Update the cursor on the clipping window while it's mapped.
      user32: Avoid accessing the dialog info of a destroyed window.
      winex11: Update the cursor on the clip window when the pointer grab starts.
      winex11: Simplify the event handler lookup, and support names in debug traces for extension events.
      server: Fix a memory leak.
      server: Queue a WM_MOUSEMOVE message when the cursor position is explicitly changed.
      server: Warp the mouse inside the clipping rectangle when it's set.
      server: Don't queue a hardware WM_MOUSEMOVE if the position hasn't changed.
      gdi32: Avoid reading bits outside of the glyph bitmap in GetGlyphOutline.
      gdi32: Fix a compiler warning on 64-bit.
      winex11: Get rid of the old ddraw HAL support.
      winex11: Add infrastructure for managing the extra data of generic extension events.
      winex11: Build the mouse input structure directly in the mouse event handlers.
      configure: Add a check for XInput2 headers.
      winex11: Add handlers for the XInput2 raw mouse events.
      winex11: Retrieve raw mouse events through XInput2 while the cursor is clipped.
      winex11: Make sure the clipping window is initialized in every thread.
      ntdll: Implement the ProcessAffinityMask case in NtQueryInformationProcess.
      server: Inherit the process affinity from the parent process.
      server: Retrieve the Unix thread affinity for the initial thread.
      ntdll: Rewrite the SystemProcessorPerformanceInformation handing to avoid code duplication.

Andrew Nguyen (11):
      dxdiagn: Add some machine name properties to the DxDiag_SystemInfo container.
      dxdiagn: Broaden the scope of the DLL instance handle.
      dxdiagn: Add language properties to the DxDiag_SystemInfo container.
      dxdiagn: Add a NetMeeting detection property to the DxDiag_SystemInfo container.
      dxdiagn: Add a NECPC98 property to the DxDiag_SystemInfo container for completeness.
      dxdiagn/tests: Add tests for some DxDiag_SystemInfo properties.
      dxdiagn: Add date and time properties to the DxDiag_SystemInfo container.
      dxdiagn: Add a physical memory display string property to the DxDiag_SystemInfo container.
      dxdiagn: Add paged memory display string properties to the DxDiag_SystemInfo container.
      dxdiagn: Add operating system string properties to the DxDiag_SystemInfo container.
      msvcrt: Ensure that old buffer contents are copied when allocating a growable pf_output buffer for the first time.

André Hentschel (7):
      uxtheme/tests: Mark XP SP1 behaviour as broken.
      uxtheme/tests: Remove unneeded comment.
      winedbg: Implement get_addr on sparc.
      mshtml: Fix Warning message.
      gdiplus: Add a FIXME.
      dbghelp: Implement sparc_get_addr.
      winedbg: Implement adjust_pc_for_break on Sparc.

Aric Stewart (9):
      strmbase: Create OutputQueue for queuing outgoing samples.
      strmbase: Add OutputQueue_EOS implementation.
      wineqtdecoder: Move pixel buffer access to utility module.
      wineqtdecoder: Implement a Wine specific Data Handler.
      wineqtdecoder: Add 64-bit functions to datahandler.
      wineqtdecoder: Work to add a QuickTime video Splitter.
      wineqtdecoder: Add processing for audio in the movie.
      wineqtdecoder: Optimizations for audio extraction.
      wineqtdecoder: Tweak required for processing MPEG streams.

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

Austin English (12):
      msvcp100: Add stub dll.
      vcomp: Add stub dll.
      windowscodecs: Only declare jpeg debug channel if jpeg is supported.
      ole2disp.dll16: Add a stub for SETERRORINFO.
      winex11.drv: Remove extraneous parentheses (LLVM/Clang).
      winealsa.drv: Remove extraneous parentheses (LLVM/Clang).
      quartz: Remove extraneous parentheses (LLVM/Clang).
      wineoss.drv: Remove extraneous parentheses (LLVM/Clang).
      ole32: Remove extraneous parentheses (LLVM/Clang).
      comctl32: Remove extraneous parentheses (LLVM/Clang).
      progman: Avoid assigning a variable to itself (LLVM/Clang).
      ntdll: Add support for win2k8r2.

Christian Inci (1):
      crypt32: Fix a string test.

David Hedberg (2):
      comdlg32: Fetch rectangle from the correct control.
      comdlg32: Add support for customizing control labels in the item dialog.

Detlef Riekenberg (6):
      inetcpl: Add a security propsheet.
      inetcpl: Fill the security listview with zones.
      inetcpl: Display description and security level for a zone.
      inetcpl: Add German version of the security propsheet.
      winecfg: Fix major version of windows 3.1.
      po: Update German translation.

Dmitry Timoshkov (9):
      user32: Add a test for WM_QUIT handling by DefDlgProc.
      user32: DefDlgProc on WM_QUIT should repost it and terminate the dialog message loop.
      user32: Add a test for activating a menu consisting from a single menu item using a hot key.
      kernel32: Constify some data.
      user32: Use symbolic names for values returned by WM_MENUCHAR handler.
      winex11: Move the SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE/SC_RESTORE) call after the window extents check.
      user32: Use symbolic names for values returned by WM_MENUCHAR handler.
      user32: Fix the single menu item activation using a hot key.
      ole32: Replace a spurious FIXME by a TRACE.

Eric Pouech (5):
      dbghelp: For codeview/bprel symbols force the register to be EBP, other CPUs should use regrel symbol instead of bprel.
      dbghelp: Force void type in const declaration, when subtype cannot be found.
      dbghelp: Extended CPU structure by adding a default register number for frame.
      dbghelp: Added some missing defines to dwarf.h.
      dbghelp: Silence DW_TAG_GNU_call_site objects.

Francois Gouget (16):
      msxml3/tests: Fix variable initializations to conform to C89.
      programs: NOINVERT is an obsolete flag so remove it.
      cmdlgtst: Use the human readable application name in the window title.
      progman: Fix accelerator support.
      taskmgr: Implement the Help menu.
      shell32: Fix the *CPLINFO* lData field type.
      winhlp32: Add support for accelerators in general and F1 in particular.
      progman: Fix the Alt+Enter accelerator so it shows the selected element attributes.
      d3dx9_36: Make get_parameter_{handle,struct}() static.
      mshtml: Make HTMLFiltersCollection_Create() static.
      mmdevapi: Reorder a couple of functions to avoid forward declarations and make MMDevice_SetPropValue() static.
      programs: Standardize the About menus.
      clock: Rename the Info menu to Help for consistency.
      winemine: Fix and standardize the menus.
      programs: Standardize the Help menus.
      qcap: Ifdef-out code that is not used if V4L support is missing.

Frédéric Delanoy (2):
      po: Update French translation.
      po: Update French translation.

Gerald Pfeifer (4):
      winex11.drv: Initialize a variable in create_xcursor_frame to silence a warning.
      gdiplus: Initialize a variable in SOFTWARE_GdipFillRegion to avoid a compiler warning.
      quartz: Properly set a parameter by reference in Parser_OutputPin_DecideAllocator.
      configure: Add compiler warning -Wunused-but-set-parameter.

Hans Leidekker (10):
      msi: Fix parsing of an empty property followed by a non-empty property.
      msi: Honor msidbFeatureAttributesFollowParent.
      wine.inf: Add shell handler for .msp files.
      msi: More Wow64 fixes.
      msi: Check the return value of MSIREG_OpenUpgradeCodesKey (valgrind).
      msi: Fix a memory leak (valgrind).
      msi/tests: Fix some memory leaks (valgrind).
      msi: Avoid redundant loading of media info.
      msi: Add support for maintaining a list of cabinet streams.
      msi: Add offsets to disk ids added by patches.

Henri Verbeet (50):
      ddraw: Get rid of the unused LoadWineD3D() declaration.
      ddraw: Do not unset the index buffer on D3D device destruction.
      ddraw: Fix a typo in a comment.
      wined3d: Fix ARB_0001 with pixel shaders in arb_get_helper_value().
      wined3d: Introduce a helper function for translating blend operations.
      wined3d: Don't bother setting a depth render buffer for WINED3DFMT_NULL render targets.
      wined3d: Fix partial depth buffer copies.
      d3d8/tests: Add a test for partial depth buffer copies.
      d3d9/tests: Add a test for partial depth buffer copies.
      wined3d: Correctly check if the destination format is FBO attachable in fbo_blit_supported().
      wined3d: Make "blit_operation" naming a bit more consistent.
      wined3d: Introduce a separate function for depth fills.
      wined3d: Allow depth and stencil clears on surfaces other than the current depth / stencil buffer.
      wined3d: Add depth fills to the blitter interface.
      wined3d: Remove COM from the rendertarget view implementation.
      wined3d: Add support for depth blits to the blitter.
      d3d9/tests: Add a depth blit test.
      wined3d: Don't unregister windows with the wrong window proc on unload either.
      wined3d: Rename "NumberOfPalettes" to "palette_count".
      wined3d: Rename "NumberOfSwapChains" to "swapchain_count".
      wined3d: Don't use IWineD3DDeviceImpl_GetSwapChain() in IWineD3DDeviceImpl_Present().
      wined3d: Merge swapchain_gdi.c into swapchain.c.
      wined3d: Merge swapchain_base.c into swapchain.c.
      wined3d: Only create a swapchain context array for GL swapchains.
      wined3d: Merge the IWineD3DSwapChain::Destroy() implementations.
      wined3d: Don't free D3D swapchains until the wined3d swapchain is destroyed.
      wined3d: Explicitly handle 0 rt_count right at the start of context_apply_draw_buffers().
      wined3d: Only set draw buffers that are explicitly specified in context_apply_draw_buffers().
      wined3d: Set the read buffer to GL_NONE for draws and clears on an FBO.
      wined3d: Check FBO completeness after the read / draw buffers are specified.
      wined3d: Depth-only clears are done offscreen.
      wined3d: Flush after accessing the front buffer in surface_blt_fbo().
      wined3d: Flush after accessing the front buffer in flush_to_framebuffer_drawpixels().
      d3d8: Get rid of the implicit swapchain refcounting hacks.
      d3d9: Get rid of the implicit swapchain refcounting hacks.
      comctl32: Allocate the correct amount of memory for tab items in TAB_InsertItemT().
      wined3d: Get rid of the swapchain destroy callback.
      wined3d: Remove IWineD3DSwapChain::Destroy() from the public interface.
      wined3d: Merge the IWineD3DSwapChain::SetDestWindowOverride() implementations.
      wined3d: Take hDestWindowOverride into account in IWineGDISwapChainImpl_Present().
      wined3d: Merge the GL and GDI swapchain vtbls.
      wined3d: Remove COM from the swapchain implementation.
      wined3d: Get rid of the IWineD3DSwapChain typedefs.
      wined3d: Get rid of the unused vSyncCounter swapchain field.
      wined3d: Decrement the refcount in wined3d_query_decref().
      wined3d: Remove COM from the volume implementation.
      wined3d: Get rid of the IWineD3DVolume typedefs.
      wined3d: Don't flush just because a swapchain has multiple contexts.
      wined3d: Get rid of the IWineD3DResource interface.
      wined3d: Get rid of the IWineD3DBase interface.

Huw Davies (21):
      gdi32: Add a skeleton dib driver.
      gdi32: Add a dib primitive function table.
      gdi32: Add support for 32 bpp BI_BITFIELDS.
      gdi32/tests: Start of a framework for writing dib driver tests.
      gdi32: Add a solid_rects primitive.
      gdi32: Initial SelectPen support.
      gdi32: Add the ability to track whether we should defer to the graphics driver.
      gdi32: Add support for DC pens.
      gdi32: Calculate AND and XOR masks corresponding to the current pen colour and rop2.
      gdi32: Draw single pixel wide, horizontal or vertical lines with the dib driver.
      gdi32/tests: Add horizontal and vertical solid line tests.
      gdi32: Implement SelectBrush for solid brushes.
      gdi32: Implement PatBlt.
      gdi32/tests: Add PatBlt tests.
      winex11: Don't use the bitfields for the BI_RGB case.
      gdi32: Don't use the bitfields for the BI_RGB case.
      gdi32: Don't use the bitfields for the BI_RGB case and also cope with zero masks.
      gdi32: Don't set the bitfields when the dib section is BI_RGB.
      gdi32: Add support for solid diagonal lines.
      gdi32: Keep track of the combined clip region.
      gdi32: Add clipping for horizontal and vertical solid lines.

Hwang YunSong (3):
      po: Update Korean translation.
      po: Update Korean translation.
      po: Update Korean translation.

Igor Paliychuk (1):
      po: Update Ukrainian translation.

Jacek Caban (18):
      wininet: Abstract different transfer and content encoding reading to layered structures.
      wininet: Added more tests.
      mshtml: Get rid of no longer needed app-startup observer initialization.
      mshtml: Properly handle upload streams containing headers.
      urlmon: Use dedicated data.php URL for testing regular http binding.
      wininet: Check NETCON_connected in netconn_end_of_data.
      urlmon: Use winetest data.php URLs for regular http binding tests.
      shdocvw: Moved more registration to .rgs file.
      shdocvw: Register .url extension.
      shdocvw: intshcut.c COM clean up.
      shdocvw: Clean tests skipping.
      shdocvw: Make tests stricter and fix GetUrl problem found by the change.
      mshtml: Reimplement nsIURI::SetHost on top of IUriBuilder.
      kernel32: Moved GetProcessImageFileName implementation from psapi to kernel32.
      mshtml: Use xul.dll directly instead of via xpcom.dll.
      shdocvw: Register known protocols as URL protocols.
      shdocvw: Added more InternetShortcut tests.
      urlmon: Use winetest post.php URLs for http POST tests.

Jerome Leclanche (1):
      mscms: Move MSCMS_dbgstr_tag outside of the HAVE_LCMS conditional.

Joris Huizer (1):
      dxdiagn: Plug memory leak.

Juan Lang (2):
      crypt32: Accept CA certificates without a key usage extension.
      wininet: Honor security flags specified when opening a connection.

Jörg Höhle (5):
      winmm: Check callback flags prior to opening a driver.
      winmm: Trace DriverCallback once upon entry.
      winmm: DriverCallback returns TRUE iff there is notification.
      winmm: Audio drivers unconditionally invoke DriverCallback.
      user32: Added message names for winmm.

Maarten Lankhorst (2):
      include: Add missing defines to mddk.h.
      dsound: COM cleanup property sets.

Marcus Meissner (3):
      msxml3: Fixed two const table declarations (Coverity).
      mscms: Fixed bad sizeof() (Coverity).
      mscms: Added missing breaks (Coverity).

Matteo Bruni (1):
      wined3d: Get rid of context_validate.

Michael Curran (2):
      d3dxof: Adjusted to allow for parsing of optional template elements.
      d3dxof: Changed is_string function to accept spaces.

Michael Stefaniuc (7):
      wininet: Move "inline" right after the storage specifier.
      riched20: COM cleanup for the ITextHost iface.
      riched20: COM cleanup for the ITextServices iface.
      d3d9: COM cleanup for the IDirect3D9Ex iface.
      d3d9: COM cleanup for the IDirect3DQuery9 iface.
      d3d9: COM cleanup for the IDirect3DStateBlock9 iface.
      d3d9: COM cleanup for the IDirect3DCubeTexture9 iface.

Nikolay Sivov (8):
      comctl32/monthcal: Week numbers use title colour.
      comctl32/monthcal: Fix today label position and text colour.
      comctl32/monthcal: Cache pens, fix line colour.
      comctl32/monthcal: Get rid of empty slots in cached brushes array.
      comctl32/monthcal: Some tests for MCM_SIZERECTTOMIN.
      ole32: Handle null argument in OleIsRunning().
      comctl32/tab: Fix invalid read of item data.
      comctl32/tab: Use dpa to store item data.

Owen Rudge (1):
      advapi32: Add basic SaferSetLevelInformation stub.

Philipp Middendorf (1):
      dsound: Handle 8 channel audio input.

Piotr Caban (7):
      msvcrt: Added _wassert implementation.
      msvcrt: Added _snscanf implementation.
      msvcrt: Added _snwscanf implementation.
      msvcr90: Added _CRT_RTC_INIT and _CRT_RTC_INITW implementation.
      msvcrt: Added wctob implementation.
      msvcp100: Fix spec file.
      ntdll: Restore stack guard and prevent stack from shrinking.

Rex Tsai (1):
      wininet: Added stub for option DATA_SEND_TIMEOUT.

Rico Schüller (15):
      d3dcompiler: Move D3DCreateBlob() to blob.c.
      d3dx9: Add argument check to D3DXCreateBuffer().
      d3dx9: Add ID3DXBuffer test.
      d3dcompiler: Remove type cast in D3DCreateBlob().
      d3dcompiler: Move blob and strip functions to blob.c.
      d3dcompiler: Make some variables static.
      d3dx9: Fix return values.
      d3dx9: Start effect parameter parsing.
      d3dx9: Parse effect parameter type definition.
      d3dx9: Parse effect type D3DXPC_STRUCT.
      d3dx9: Parse name and semantics.
      d3dx9: Parse value data.
      d3dcompiler: Fix HeapAlloc/HeapFree for type members in the reflection parser.
      d3dx9: Make some functions inline.
      d3dx9: Parse effect pass and technique.

Stefan Dösinger (3):
      wined3d: Don't drop VBOs for full buffer reloading without conversion.
      wined3d: Remove FLOAT16 vertex attribute conversion support.
      wined3d: Only acquire a context in buffer::PreLoad if we have to.

Stefan Leichter (1):
      scarddlg: New dll stub.

Thomas Mullaly (6):
      include: Updated INTERNETFEATURELIST enum and flags.
      urlmon/tests: Added tests for CoInternetIsFeatureEnabled.
      urlmon/tests: Added tests for CoInternetSetFeatureEnabled.
      urlmon: Added FeatureControl registry keys.
      urlmon/tests: Added FeatureControl registry key tests.
      urlmon: Added basic implementation for CoInternet{Is/Set}FeatureEnabled.

Vincent Povirk (24):
      gdiplus: Add helper for translating GpFont to HFONT.
      gdiplus: Add a software implementation of GdipDrawDriverString.
      gdiplus: Don't settle on a font size until absolutely necessary.
      gdiplus: Respect the CmapLookup flag in GDI32_GdipDrawDriverString.
      windowscodecs: Implement TiffDecoder_GetResolution.
      windowscodecs: Add stub TIFF encoder.
      windowscodecs: Implement TiffEncoder_Initialize.
      windowscodecs: Implement TiffEncoder_CreateNewFrame.
      windowscodecs: Implement TiffFrameEncode_Initialize.
      windowscodecs: Implement TiffFrameEncode_SetPixelFormat.
      windowscodecs: Implement TiffFrameEncode_SetSize.
      windowscodecs: Implement TiffFrameEncode_SetResolution.
      windowscodecs: Implement TiffFrameEncode_WritePixels.
      windowscodecs: Implement TiffFrameDecode_WriteSource.
      gdiplus: Validate MatrixOrder in matrix functions.
      windowscodecs: Implement TiffFrameEncode_Commit.
      windowscodecs: Implement TiffEncoder_Commit.
      gdiplus: Add support for encoding TIFF images.
      windowscodecs: Add test for TIFF encoder.
      windowscodecs: Add test for multi-frame TIFF encoding.
      windowscodecs: Implement FlipRotator_GetPixelFormat.
      windowscodecs: Log unsupported conversion formats.
      windowscodecs: Add support for converting from 32bppPBGRA.
      windowscodecs: Add support for converting to 32bppPBGRA.

Vitaliy Margolen (1):
      dinput: Implement getting DIPROP_VIDPID property for evdev joystick driver. Fixes bug 26418.

Łukasz Wojniłowicz (1):
      po: Update Polish translation.

Alexandre Julliard