Wine release 1.5.28

Alexandre Julliard julliard at
Fri Apr 12 13:46:25 CDT 2013

The Wine development release 1.5.28 is now available.

What's new in this release (see below for details):
  - GnuTLS used for all secure connections, OpenSSL is no longer needed.
  - Mac driver enabled by default.
  - Built-in FixedSys fonts.
  - New icon for the joystick control panel.
  - Postscript driver improvements.
  - 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.5.28 (total 21):

  13872  Audiosurfs main menus displays incorrectly
  16649  configure isn't recognizing OpenSSL on OpenBSD
  19317  Enemy Nations: "Error 2 loading the game"
  23673  El Matador's demo requires d3dx9_36.dll.D3DXSHEvalHemisphereLight
  25417  Black & White: Ignores mouse button clicks
  28438  segfault in Dawn of War Soulstrom demo when drawing a frame with mouse
  28601  cnet download app can't initialize GUI
  31685  DYMO Stamps wants hid.dll.HidD_GetManufacturerString
  32735  Stellarium 10.2 does not load under WiNE 1.4 (dogfood)
  32904  Opera installer needs GetNamedSecurityInfo to return an owner for registry keys (dogfood)
  33150  [Wine Control]X Axis does not works properly with joystick "event" driver
  33196  Multiple applications ported to WinRT/ARM require MSVCP110.dll (Audacity)
  33219  Maxthon 4.0 fails to start
  33251  RPG Tkool VX Ace: some texts aren't fit in the message box.
  33265  HoMM 3 fails to create wgl context
  33281  Bioshock infinite fails to use TaskDialogIndirect
  33286  Extech RHT10 needs setupapi.dll.CM_Get_Device_ID_ExA called
  33288  Startopia 1.01 crashes on video setting adjust
  33311  Loading of winspool.drv intended to be delay loaded for a built-in module actually is not delayed
  33320  WinRT/ARM port of Audacity needs msvcp110.dll.??0id at locale@std@@QAA at I@Z
  33330  Guild Wars 2: Some graphics options are greyed out in wine 1.5.22.


Changes since 1.5.27:

Akihiro Sagawa (7):
      winmm: Inherit the seek position when using standard file handle.
      gdi32: Introduce macros to calculate outline text metrics.
      gdi32: Improve outline text metrics calculation, especially if unitsPerEm is not power of 2.
      gdi32: Improve fixed-pitch advance calculation as well as outline text metrics.
      gdi32/tests: Fix tests for fixed-pitch full-width character advance. It's double of tmAveCharWidth.
      fonts: Add Fixedsys font.
      fonts: Add Japanese FixedSys font.

Alexander Monakov (1):
      winex11.drv: Simplify test for pbuffer availability.

Alexander Morozov (1):
      advapi32: Do not terminate a regular program if it calls StartServiceCtrlDispatcher.

Alexandre Julliard (14):
      winebuild: Check for delayed import before the library is parsed, in case the real module name is different.
      gdi32: Use the Mac driver by default.
      user32: Don't print a warning when creating the HWND_MESSAGE parent window.
      ntdll: Set the address space limit before running application code.
      kernel32: Fetch the system information only once the memory limits are correct.
      msvcrt: Constify the arguments of execv functions.
      makefiles: Don't link against libport in the tests.
      libport: Rename spawnvp to _spawnvp to avoid the deprecated name.
      cabarc: Avoid some redefinition warnings.
      wineconsole: Fix a pointer cast warning.
      ddraw: De-duplicate display modes even when returning the refresh rate.
      icinfo: Fix vsnprintfW usage.
      kernel32: Make event/mutex/semaphore functions hotpatchable.
      server: Add a helper function to compute an SID length.

Andrew Cook (1):
      dbghelp: Add stubs for SymSetHomeDirectory.

Andrew Talbot (3):
      winmm: Remove unneeded address-of operator from function name.
      msvcr90: void functions should not return a value.
      krnl386.exe16: Constify a variable.

André Hentschel (10):
      dpnet: Increase reported buffer size.
      wine.inf: Add winemac.drv to RelayFromExclude.
      advapi32/tests: Remove bad key set on cleanup.
      uxtheme/tests: Don't test for themed app.
      kernel32/tests: Don't test function directly when reporting GetLastError().
      setupapi: Add CM_Get_Device_ID_ExA stub.
      hid: Add HidD_GetManufacturerString stub.
      wined3d: Report Win 8 when appropriate.
      explorerframe: Clear pointer when nothing is selected.
      ntdll: Hint that call_entry_point is ARM assembler.

Daniel Lehman (1):
      ntdll: Use larger virtual heap for 64-bit.

Dmitry Timoshkov (9):
      winspool.drv: Move loading of libcups out of the init code protected by mutex.
      wineps.drv: Add support for TrueType composite glyph transforms.
      wineps.drv: Constify a variable.
      include: Add COM interface definitions needed for PrintDlgEx implementation.
      comdlg32: Add a simple PrintDlgEx implementation which wraps around the PrintDlg one.
      comdlg32: Add an interactive PrintDlgEx test.
      kernel32: Add a shared memory test.
      kernel32: Add a test for threads state when a process is being terminated.
      kernel32: TerminateProcess unlike NtTerminateProcess is supposed to fail with process == 0.

Erich Hoover (1):
      server: Report administrator ownership by default for registry objects.

Francois Gouget (5):
      riched20: ME_StrDup() is not used anymore so remove it.
      windowscodecs/tests: Add a trailing '\n' to an ok() call.
      dplayx: Add a trailing '\n' to a TRACE().
      ieframe: Make dump_travellog() static.
      wininet: Make urlcache_{entry_create,get_entry_info}() static.

Huw Davies (2):
      wineps: Add a helper to return the rgb to grayscale scaling factors.
      wineps: Send grayscale images to monochrome printers.

Jacek Caban (28):
      secur32: Pass enabled protocols to GnuTLS.
      secur32: Pass enabled protocols to Mac Secure Transport.
      secur32: Disable SSL2 protocol in default settings.
      jscript: Use helpers to access string buffers in jsregexp.c.
      jscript: Use helpers to access string buffer in string.c.
      jscript: Moved string buffer to separated struct from jsstr_t.
      mshtml: Fixed builtin getter call with arguments.
      wininet: Moved more compat logic to netcon_secure_connect_setup.
      winhttp: Improved error handling in netconn_secure_connect.
      ieframe: Moved travellog to its own struct.
      ieframe: Fixed index of stored history when loading from history.
      ieframe: Moved freeing travellog entry into a helper function.
      ieframe: Use IPersistHistory for history navigation, if possible.
      ieframe: Added GoForward implementation.
      ieframe: Improved debug traces.
      ieframe: Added GoForward tests.
      wininet: Use schannel in NETCON_secure_connect if OpenSSL is not available.
      wininet: Use schannel in NETCON_GetCipherStrength if OpenSSL is not available.
      wininet: Added NETCON_send support for schannel-based connections.
      wininet: Added NETCON_recv support for schannel-based connections.
      wininet: Added NETCON_GetCert support for schannel-based connections.
      wininet: Added NETCON_get_data_available support for schannel-based connections.
      wininet: Use schannel for HTTPS connection by defaul and get rid of OpenSSL dependency.
      configure: Get rid of no longer needed OpenSSL checks.
      mshtml: Fixed load flags usage.
      mshtml: Pass IUri to create_doc_uri.
      wininet: Don't bother reconnecting to server for compat secure mode if we don't have compat cred handle.
      mshtml: Added parser compatMode tests.

Jactry Zeng (4):
      msvcrt: Added _wcscoll_l implementation.
      msvcrt: Added _wcsicoll_l implementation.
      msvcrt: Added _wcsnicoll_l implementation.
      msvcrt: Add missing declarations for _wcsncoll, _wcsncoll_l, _wcsicoll_l, _wcsnicoll_l and wcscoll_l.

Joel Holdsworth (1):
      joy.cpl: Added a Tango compliant icon.

Jonathan Liu (2):
      d3dcompiler.h: Fix typos.
      d3dcompiler.h: Add function pointer typedefs.

Jérôme Gardou (1):
      wined3d: Initialize adapter device name even if opengl is not used.

Ken Thomases (14):
      winemac: During live resize, force occasional redisplay due to spontaneous redrawing.
      winemac: Drain the autorelease pool within loop in OnMainThread().
      winemac: Constify some macdrv_event pointer parameters.
      winemac: Make macdrv_event structs heap-allocated and reference-counted.
      winemac: Add a delivery limit to events.
      winemac: Handle a Cocoa quit request as a single-process session shutdown.
      winemac: Tell Cocoa to preserve our window content during live resizing.
      winemac: Initialize window surface to Mac-standard window background color instead of black.
      winemac: Clip surface drawn region to new visible rect on window resize.
      winemac: Add debug tracing for queried icon size.
      winemac: Scale large system tray icons down to fit status bar.
      winemac: Handle failure to get clipboard format name; don't use uninitialized buffer.
      libwine: Make [v]snprintW() always null-terminate the buffer, even if it's short.
      winemac: Don't order the window on-screen in -[WineWindow adjustWindowLevel].

Kim Jung Eon (1):
      wbemprox: Implement some properties of Win32_ComputerSystem and Win32_DiskPartition.

Ludger Sprenker (2):
      windowscodecs: Basic tests for tiff encoder options.
      windowscodecs: Add initializations for tiff encoder options.

Matteo Bruni (10):
      d3dx9/tests: Raise admitted error a bit in D3DXSHEvalSphericalLight tests.
      d3dx9/tests: Don't use an arbitrary number in relative_error macro.
      wined3d: Remove useless glClearxxx calls.
      wined3d: Reset all the dummy textures to 0 on destroy.
      wined3d: Fix typo, really check whether color fixups are supported.
      wined3d: Avoid redundant glDrawBuffer() calls.
      wined3d: Update comment on top of format_texture_info[].
      wined3d: Make the entire surface current after clearing a discarded depth buffer.
      wined3d: Use 0 as GL internal format for WINED3DFMT_NULL.
      winex11.drv: Fix attributes conversion in wglCreateContextAttribsARB().

Michael Stefaniuc (61):
      dplayx: Forward IDirectPlay::Open to ::SecureOpen.
      dplayx: Forward IDirectPlay::GetMessageCount to ::GetMessageQueue.
      dplayx: Forward IDirectPlay::Send to ::SendEx.
      dplayx: Forward IDirectPlay::EnumPlayers to ::EnumGroupPlayers.
      dplayx: Forward IDirectPlay::EnumGroups to ::EnumGroupsInGroup.
      dplayx: Assimilate the inherited methods into IDirectPlay4A.
      dplayx: Introduce impl_from_IDirectPlay4A().
      dplayx: Use separate QueryInterface, AddRef and Release methods for IDirectPlay4 + 4A.
      dplayx: Add both ifaces to the DirectPlay object and stop cloning the object.
      dplayx: Remove AddRef hacks for the parent DirectPlay object.
      dplayx: Move the lock into the DirectPlay object.
      dplayx: Cleanup the DirectPlay object creation.
      dplayx: IDirectPlay4 / IDirectPlay4A have independent refcounts.
      dplayx: Merge the DirectPlay QueryInterface helper.
      dplayx: Assimilate the inherited stub methods into IDirectPlay4.
      dplayx: Merge the IDirectPlay4_Close helper.
      dplayx: Merge the IDirectPlay4_DeletePlayerFromGroup helper.
      dplayx: Merge the IDirectPlay4_EnumGroupPlayers helper.
      dplayx: Merge the IDirectPlay4_GetGroupData helper.
      dplayx: Forward IDirectPlay::GetCaps to ::GetPlayerCaps.
      dplayx: Merge the IDirectPlay4_GetPlayerCaps helper.
      dplayx: Merge the IDirectPlay4_GetPlayerData helper.
      dplayx: Merge the IDirectPlay4_SetGroupData helper.
      dplayx: Merge the IDirectPlay4_SetPlayerData helper.
      dplayx: Merge the IDirectPlay4_AddGroupToGroup helper.
      dplayx: Merge the IDirectPlay4_DeleteGroupFromGroup helper.
      dplayx: Merge the IDirectPlay4_EnumGroupsInGroup helper.
      dplayx: Merge the IDirectPlay4_InitializeConnection helper.
      dplayx: Merge the IDirectPlay4_GetGroupParent helper.
      dplayx: Merge the IDirectPlay4_AddPlayerToGroup helper.
      dplayx: Merge the IDirectPlay4_EnumSessions helper.
      dplayx: Merge the IDirectPlay4_SendEx helper.
      dplayx: Merge the IDirectPlay4_GetMessageQueue helper.
      dplayx: Cleanup the IDirectPlay_Cancel* methods.
      dplayx: Assimilate the rest of the inherited methods into IDirectPlay4.
      dplayx: Forward AW agnostic IDirectPlay4A stub methods to the W versions.
      dplayx: Get rid of the IDirectPlayXImpl to IDirectPlayImpl casts.
      dplayx: Remove superfluous forward declarations.
      dplayx: Merge dpinit.h into dplay_global.h.
      dplayx: Get rid of the IDirectPlayImpl aliases.
      dplayx: Add a separate refcount for IDirectPlay2A.
      dplayx: Add a separate refcount for IDirectPlay2.
      dplayx: Add a separate refcount for IDirectPlay3A.
      dplayx: Add a separate refcount for IDirectPlay3.
      dplayx/tests: Deal with broken COM aggregation handling on NT4.
      dplayx: Add a stub IDirectPlay iface.
      dplayx: IDirectPlay and IUnknown share a refcount.
      dplayx: Forward directly to IDirectPlay4 QueryInterface.
      dplayx: Create a IDirectPlay interface in DirectPlayCreate().
      dplayx: Get rid of the unused DirectPlayLobby{2,3}Data fields.
      dplayx: Remove the duplicated IDirectPlayLobby{2,3}Impl structs.
      dplayx: Have the decency to support IUnknown in DirectPlayLobby.
      dplayx/tests: Add DirectPlayLobby COM tests.
      dplayx: Get rid of the useless IDirectPlayLobby{,2} vtables.
      dplayx: Forward IDirectPlayLobby::Connect to ::ConnectEx.
      dplayx: Assimilate the inherited methods into IDirectPlayLobby3A.
      dplayx: Introduce impl_from_IDirectPlayLobby3A().
      dplayx: Use separate QueryInterface, AddRef and Release methods for IDirectPlayLobby3 + 3A.
      dplayx: Add both interfaces to the DirectPlayLobby object and stop cloning the object.
      dplayx: Move the lock into the DirectPlayLobby object.
      dplayx: Cleanup the DirectPlayLobby object creation.

Nikolay Sivov (13):
      comctl32: Initialize id field for message data (Coverity).
      mscms: Free memory and handle on error path (Coverity).
      msi: Free records on error paths (Coverity).
      ole32: Fix possible return of freed pointer (Coverity).
      include: Added IRowsetNotify definition and proxy/stub stub implementation.
      gameux: Fix release/free of uninitialized pointers (Coverity).
      oledb32: Implemented conversion from DBTYPE_VARIANT to DBTYPE_BSTR.
      oledb32: Implement GetConversionSize for DBTYPE_VARIANT -> DBTYPE_STR case.
      oledb32: Implement DBTYPE_BSTR to DBTYPE_VARIANT conversion.
      msdaps: Implement IRowsetNotify stub/proxy methods.
      oledb32: Destination status and length are optional.
      oledb32: Implement DBTYPE_I4 -> DBTYPE_VARIANT conversion.
      comctl32: Export TaskDialogIndirect by ordinal and name.

Nozomi Kodama (5):
      d3dx9: Do not use relative error for small numbers.
      d3dx9: Implement D3DXSHEvalSphericalLight.
      d3dx9: Implement D3DXSHEvalHemisphereLight.
      d3dx9: Floatify fabs into fabsf.
      d3dx9: Floatify sqrt into sqrtf.

Piotr Caban (36):
      wininet: Do case-insensitive compare when looking for scheme.
      wininet: Fixed memory leak in load_persistent_cookie.
      wininet: Store urlcache container prefix as ANSI string.
      wininet: Use short path name when container path can't be converted to CP_ACP.
      wininet: Fixed buffer size check in urlcache_create_file_pathA.
      wininet: Correctly set SYSTEMTIME year in HTTP_HttpQueryInfoW.
      cryptnet: Handle SystemTimeToFileTime failure in HTTP_RetrieveEncodedObjectW.
      wininet: Support Punycode in GetUrlCacheEntryInfoExW.
      wininet: Support Punycode in SetUrlCacheEntryInfoW.
      wininet: Support Punycode in RetrieveUrlCacheEntryFileW.
      wininet: Support Punycode in UnlockUrlCacheEntryFileW.
      wininet: Support Punycode in DeleteUrlCacheEntryW.
      wininet: Support Punycode in IsUrlCacheEntryExpiredW.
      wininet: Support Punycode in CreateUrlCacheEntryW.
      wininet: Support Punycode in CommitUrlCacheEntryW.
      wininet: Support Punycode in urlcache_copy_entry.
      wininet: Support Punycode in RetrieveUrlCacheEntryStream.
      wininet: Use InternetCrackUrl in urlcache_entry_create.
      wininet: Added urlcache Unicode functions tests.
      msvcp: Change architecture of more thiscall functions.
      msvcp90: Add arm exports.
      msvcp100: Add arm exports.
      msvcp: Sync spec files.
      server: Don't debug children when debugger is attached with DebugActiveProcess function.
      msvcrt: Fixed debug message in strncpy_s.
      tapi32: Add more Unicode functions stubs.
      wininet: Skip some urlcache Unicode tests if ANSI version of URL is not known.
      oleaut32: Fixed setting oVft value in ITypeInfo2::GetFuncDesc.
      oleaut32: Add support for VARIANT arguments with default value in AddFuncDesc.
      oleaut32: Add support of VT_USERDEFINED arguments with default value in AddFuncDesc.
      oleaut32: Don't add stdole2 import when TYPEFLAG_FDISPATCHABLE is set.
      oleaut32: Make typeinfo offsets table dynamic.
      oleaut32: Use MSFT_VarRecord to store VARDESC.
      oleaut32: Use MSFT_VarFunc to store FUNCDESC.
      winedump: Dump parameters default values in typelib.
      msvcrt: Add forwards to __pioinfo structure.

Rico Schüller (1):
      winhlp32: Always open files as read only.

Sam Edwards (6):
      wined3d: Make fullscreen windows use HWND_TOPMOST instead of HWND_TOP.
      wined3d: Ignore WS_VISIBLE and WS_EX_TOPMOST when dropping out of fullscreen.
      d3d9/tests: Verify window style after exiting fullscreen mode.
      d3d8/tests: Verify window style after exiting fullscreen mode.
      ddraw/tests: Verify window style after exiting fullscreen mode.
      wined3d: Properly handle backbuffer_width/_height=0 in wined3d_device_reset.

Sergey Guralnik (8):
      extrac32: Merge identical case statements.
      extrac32: Allow leading '-' for command line switches.
      extrac32: Extract by default when required files are specified.
      extrac32: Get default path only when it is really necessary.
      extrac32: Use own parser for command line.
      extrac32: Create directory for extracted file if need.
      extrac32: Avoid appending redundant backslash to path end.
      user32/tests: SetWindowPos() propagates update region from WS_CLIPCHILDREN child to its children.

Stefan Dösinger (4):
      wined3d: Put local constants into the shader code again.
      wined3d: Put local constants into the shader code in ARB shaders.
      d3d9/tests: Test special fp values in local constants.
      wined3d: Remove the unused idx_data parameter from draw_primitive.

Stefan Leichter (2):
      msvcp: Match architecture with function we're forwarding to.
      msvcp110: Add VS2012 C/C++ runtime.

Tatyana Fokina (1):
      winspool.drv: Fix DocumentProperties with empty device name.

Victor Martinez (1):
      gdiplus: Fix returned rect in GdiGetRegionBoundsI.

Victor Martinez Calvo (3):
      msxml3: Fix SafeArrayGetUBond check in BindStatusCallback_create.
      msvcrt: Fix copy-pasta typos LOCALE_SSHORTDATE->LOCALE_SLONGDATE in _create_locale.
      windowscodecs: Don't overwrite bih.bV5AlphaMask and set the LCS_DEVICE_RGB flag in bih.bV5CSType.

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

Alexandre Julliard
julliard at

More information about the wine-announce mailing list