Wine release 0.9.55

Alexandre Julliard julliard at
Fri Feb 8 09:54:36 CST 2008

This is release 0.9.55 of Wine, a free implementation of Windows on Unix.

What's new in this release:
  - Direct3D improvements, including driver version emulation.
  - Beginnings of support for OLE objects in Richedit.
  - Several fixes to the animation control.
  - A bunch of fixes for regression test failures.
  - Lots of bug fixes.

Because of lags created by using mirrors, this message may reach you
before the release is available at the public sites. The sources will
be 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 or CVS
repositories. Check respectively or for details.

If you fix something, please submit a patch; instructions on how to do
this can be found at

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


Changes since 0.9.54:

Alexander Nicolaysen Sørnes (1):
      shell32: Use LocalFree in CommandLineToArgvW.

Alexandre Julliard (18):
      winex11: Abstract the depth->bpp conversion and use it in X11DRV_DIB_CreateDIBFromPixmap.
      winex11: Remove unneeded check on bitmap depth, screen bpp cannot be 15.
      shell32: Fix permissions of newly-created directories.
      gdi32: Avoid locking in CreateCompatibleBitmap.
      gdi32: Get rid of a few more uses of DC_GetDCPtr.
      gdi32: Don't hold the GDI lock when calling DC_InitDC.
      gdi32: Avoid locking in BITMAP_CopyBitmap.
      gdi32: Use a separate critical section for freetype locking instead of relying on the GDI lock.
      gdi32: Get rid of DC_GetDCPtr in font functions.
      gdi32: Get rid of DC_GetDCPtr in the GDI object functions.
      winex11: Add a critical section for the palette global variables instead of relying on the GDI lock.
      gdi32: Get rid of DC_GetDCPtr in the palette functions.
      gdi32: DC_GetDCPtr and DC_ReleaseDCPtr are not longer used.
      winex11: Don't erase the desktop window synchronously on resizes to prevent deadlocks.
      winex11: Use the gdi display when initializing the keyboard to avoid creating a second display connection.
      winex11: Only update the virtual screen rect once in xinerama_init to minimize race conditions.
      tests: Add a helper routine to wait for a child process and propagate its result correctly.
      localspl: Avoid sizeof in a trace.

Alistair Leslie-Hughes (7):
      msxml3: Validated attribute name.
      msxml3: Corrected Entity Reference Test.
      msxml3: Correct createElement return value for an invalid type.
      kernel32: Add RegisterApplicationRestart stub.
      gdiplus: Add GdipSetPenMode stub.
      gdiplus: Add GdipSetStringFormatFlags stub.
      msxml3: Corrected test text.

Andre Wisplinghoff (1):
      winecfg: Enable add button when choosing lib from combobox (Libraries tabsheet).

Andrew Riedi (2):
      user32: Test destroying the cursor of a parent process.
      user32: winex11.drv has support for color cursors now.

Andrew Talbot (10):
      winemp3.acm: Remove unneeded casts.
      wineps.drv: Remove unneeded casts.
      winex11.drv: Remove unneeded casts.
      winex11.drv: Remove unneeded casts.
      wininet: Remove unneeded casts.
      winmm: Remove unneeded casts.
      wintab32: Remove unneeded cast.
      msvfw32: Avoid possible dereference of NULL pointer (Coverity).
      wnaspi32: Remove unneeded cast.
      ws2_32: Remove unneeded casts.

Andrey Esin (1):
      cmd: Additions to Russian translation.

Aric Stewart (1):
      gdi32: Child fonts need to be scaled like their parent. With input from Dmitry Timoshkov.

Bang Jun-young (4):
      crypt32: Include wine/port.h for snprintf().
      user32: Fix EndMenu() to match the PSDK.
      riched20: Include wine/port.h for vsnprintf().
      comctl32: Fix invalid syntax.

Christopher Harvey (1):
      winex11: Added WGL_BIND_TO_TEXTURE_DEPTH_NV to ConvertAttribWGLtoGLX.

Colin Finck (2):
      widl: Support Windows paths in dup_basename and make_token.
      widl: Write the TLB file in binary mode, so the line endings won't be changed.

Detlef Riekenberg (7):
      localspl: Initialize pointers in struct PRINTPROVIDOR.
      localspl: Implement fpGetPrinterDriverDirectory.
      winspool: Use the backend for GetPrinterDriverDirectory.
      gdi32: Add stub for GdiInitSpool and GdiGetSpoolMessage.
      url: Add a stub for AddMIMEFileTypesPS.
      localspl: Implement fpAddPrinterDriverEx.
      winspool: Use the backend for AddPrinterDriverEx.

Dmitry Timoshkov (2):
      kernel32: LOADPARAMS16->showCmd can be NULL, do not crash in that case.
      kernel32: Separate modifier from charset before detecting the charset codepage.

Eric Pouech (27):
      dbghelp: Return the size of each directory instead of passing a pointer to it.
      dbghelp: Fixed the suspend count when creating a minidump in the middle of an exception.
      dbghelp: Removed double assignment of checksum.
      dbghelp: Store the PE version information in module block.
      winedbg: Implemented the pXX request in gdb proxy.
      riched20: Start handling OLE objects inside richedit.
      riched20: Handle the zoom in OLE objects.
      riched20: Correctly handle the wrapping when graphics are used.
      riched20: Invert graphics when they are under the selection.
      riched20: Support a couple of paragraphs attributes out of RTF stream reading.
      riched20: Added support for image reading from RTF stream.
      riched20: Start implementing object reading out RTF stream.
      riched20: Make use of the size info in REOBJECT if present.
      dbghelp: Fixed the types we want to load at first.
      dbghelp: Added missing basic types for booleans and integers.
      dbghelp: Pass the 'details' flags to _fetch_type so that we can simplify some code around.
      dbghelp: Fix mixed up return and this type in MFunction V2.
      dbghelp: Added HRESULT as new basic type (and some doc about basic types ids).
      dbghelp: Added support for some V3 fields in structure parsing.
      dbghelp: Added support for register v3 in msc.
      dbghelp: Added preliminary support for a strange stack variable object.
      dbghelp: Added support for labels outside functions (and used it in msc parsing).
      dbghelp: Added basic support for base class information.
      dbghelp: Extended the internal enumeration information so that we know the underlying integral type.
      dbghelp: Attempt to cache some basic symbol types for easier and faster code.
      dbghelp: When sending back information about a global symbol, only demangle the class & field/method name.
      dbghelp: Disable the S_PUB_FUNC_XXX msc symbols until we know what they do (the first guess is wrong anyway).

Francois Gouget (23):
      shell32/tests: Fix a couple of copy/paste errors.
      user32: Fix a typo in the StretchDIBits stub name.
      winedump: Use the standard SLDF_XXX flag names instead of inventing new ones. Add the missing flags.
      winedump: Track unknown lnk flags and dump them.
      winedump: Dump the raw data when finding an unknown block in an lnk file.
      winedump: Switch the block dumping code to be block-oriented, rather then flag oriented, so it is resilient to order changes.
      winedump: Add support for dumping SZ_LINK and SPECIAL_FOLDER data blocks.
      ddraw/tests: Fix compilation on systems that don't support nameless unions.
      mapi32: Add an API documentation stub to make winapi_check happy.
      ntdsapi: Add an API documentation stub to make winapi_check happy.
      winex11.drv: Add some API documentation stubs to make winapi_check happy.
      msvcrt: __CxxDetectRethrow() and __CxxQueryExceptionSize() are implemented now so export them.
      winapi_check: Update win32.api for acledit.dll, ctapi32.dll and inetcomm.dll.
      winapi_check: Assorted win32.api updates.
      winapi_check: Update win32.api for d3dx8.dll.
      d3dx8core.h: Remove some extraneous #include directives.
      d3dx8: Fix the D3DXMatrixAffineTransformation() prototype.
      d3dx8: Make d3dx8core.h C++ compatible.
      d3dx8: Add the d3dx8mesh.h header and move the relevant function declarations there.
      d3dx8: Fix the D3DXAssembleShaderFromFileA/W() prototypes.
      comctl32/tests: Call InitCommonControlsEx() if available, fall back to InitCommonControls() for the older controls, and skip the tests altogether for the newer ones.
      riched20: Fix the name of the lpUsedDefChar field of GETTEXTEX.

Gerald Pfeifer (2):
      d3d9: Fix the type of three loop variables.
      configure: Use GCC's -Wtype-limits if possible.

Hans Leidekker (3):
      wininet: Make sure not to overwrite any caller supplied authorization header.
      wininet: Send HTTP/1.1 requests by default.
      wininet: Add zero value content length header to POST requests only.

Jacek Caban (28):
      urlmon: Added HlinkParseDisplayNameEx implementation.
      urlmon: Added MkParseDisplayNameEx tests.
      hlink: Call AddRef of correct interface in ExtServUnk_QueryInterface.
      hlink.idl: Added more function declarations.
      hlink: Added HlinkParseDisplayName implementation.
      hlink: Added HlinkParseDisplayName tests.
      hlink: Added HlinkResolveMonikerForData implementation.
      hlink: Added HlinkResolveMonikerForData tests.
      hlink: Added standard comments.
      hlink: Don't prefer native version.
      urlmon: Added comments about missing MIME filters.
      widl: Ignore ATTR_LOCAL in create_msft_typeinfo.
      urlmon: Added CopyStgMedium implementation.
      urlmon: Fixed tests.
      urlmon: Return better error results.
      mshtml: Added more about protocol tests.
      urlmon: Separate buffer from stream object.
      urlmon: Abstract ProtocolStream object.
      urlmon: Don't create stgmed_obj for binding to object.
      urlmon: Added support for binding to IID_IUnknown storage (cache file).
      urlmon: Correctly handle BINDF_NEEDFILE flag in http protocol.
      urlmon: Added more protocol tests.
      itss: Added BINDF_NEEDFILE test.
      urlmon: Added more tests.
      mshtml: Update wine_url in nsIURI::SetPath.
      urlmon: Added gecko_installer_workaround to url.c tests.
      urlmon: Fixed ref count leak.

James Hawkins (16):
      kernel32: Factor out the VerifyVersionInfo tests into their own function.
      version: Return ERROR_RESOURCE_DATA_NOT_FOUND if the file does not have version information.
      msi: Add tests for using single quotes in an INSERT query.
      msi: Implement the MSIMODIFY_ASSIGN action of MsiViewModify for the streams table.
      msi: Add tests for MsiGetFileVersion.
      msi: Only convert output strings if the call succeeded.
      msi: Return ERROR_INVALID_PARAMETER if a string pointer is non-NULL and the size pointer is NULL.
      msi: Return ERROR_FILE_INVALID if the file has no version information.
      msi: Leave room for the NULL terminator.
      msi: Return the string length even if the string is NULL.
      msi: Return ERROR_MORE_DATA if the size is too small.
      msi: Add more tests for MsiFormatRecord.
      msi: Reimplement MsiFormatRecord.
      msi: Fix handling of the NULL separator when writing registry values.
      msi: Test using carriage returns in SQL queries and imported tables.

Jens Nestler (1):
      kernel32: Don't fail unconditionally in MoveFile for directories with flag MOVEFILE_REPLACE_EXISTING.

Johan Gardell (1):
      user32: Added support for SPI_SETMOUSESPEED in SystemParametersInfoW.

Juan Lang (1):
      rsaenh: Merge the encrypting and decrypting states, as encrypting and decrypting are allowed with the same key.

Kirill K. Smirnov (2):
      systray: Properly track errors.
      systray: Add support for NIS_HIDDEN flag.

Lars-Ake Fredlund (1):
      winex11: Don't create a mapping if X11DRV_PALETTE_VIRTUAL is set.

Lei Zhang (3):
      comctl32: Use wine_dbgstr_rect() in traces.
      user32: Use wine_dbgstr_rect() in traces.
      quartz: Add VideoRendererDefault.

Marcus Meissner (3):
      wordpad: Remove condition that never triggers.
      atl: Check for NULL.
      pdh: Fixed wrong condition.

Michael Stefaniuc (3):
      user32: Remove duplicated get_hook_proc() function.
      olecli: Remove duplicated typedefs/enums.
      msi: Fix "type of 'x' defaults to 'int'" warnings.

Paul Chitescu (1):
      ntoskrnl.exe: Implement MmPageEntireDriver and MmResetDriverPaging.

Paul Vriens (4):
      include/wintrust.h: Add missing members to CRYPT_PROVIDER_DATA struct (fixes some wintrust tests on Windows).
      wintrust/tests: Use GetModuleHandleA instead of LoadLibraryA.
      rpcrt4/tests: Change test for Windows 2003.
      rpcrt4/tests: Skip rest of the tests if we fail.

Reece H. Dunn (9):
      comctl32: Proper fix redrawing the trackbar background with themes enabled.
      gdiplus: Fix the bezier arc path test on all Windows platforms.
      msxml3: Fix the domdoc test failures.
      cabinet: Make the fdi tests pass on Vista.
      ddraw: Spelling fixes in the d3d test output.
      gdi32: Improve the failure reporting in the bitmap tests.
      uxtheme: Fix the system tests so they pass on Vista.
      comctl32: Vista sends an unidentified message when destroying datetime and monthcal windows.
      user32: Make the listbox tests pass in directories other than dlls/user32/tests.

Rob Shearman (30):
      secur32: Move the detection of NULL credentials from AcquireCredentialsHandle to InitializeSecurityContext.
      secur32: If using cached credentials failed in InitializeSecurityContext then fail with SEC_E_NO_CREDENTIALS instead of carrying on with a blank password.
      secur32: Try to retrive credentials by using the credential manager to retrieve credentials saved for the target server in InitializeContextHandleW, if possible.
      secur32: Initialise more pointers in helper to NULL.
      oleaut32: Fix big memory leak in xCall.
      widl: Don't search for a import file name with a path in the include directories for compatibility with MIDL.
      widl: Output code for initialising and freeing full pointer translation tables.
      mapi32: Add a stub implementation of HrQueryAllRows at 24.
      ole32: Add a stub implementation of CreatePointerMoniker.
      oleaut32: Fix a leak of a typelib object in OLEFontImpl_GetTypeInfo.
      oleaut32: Fix a memory leak in the olefont tests.
      rpcrt4: Fix some incorrect checks in RPCRT4_Receive.
      oleaut32: Fix some reference count leaks in the tmarshal test.
      oleaut32: Fix a leak of bmi in OLEPictureImpl_LoadGif.
      comctl32: In certain circumstances, native comctl32's animation control accepts negative start positions for the ACM_PLAY message.
      advapi32: Fix the size calculation in StartServiceW.
      wine.inf: Make UI effects default to on.
      oleaut32: Fix some memory leaks in the safearray tests.
      ole32: Add tests for CreatePointerMoniker.
      ole32: Add pointer moniker implementation.
      wininet: HTTP_Connect should fail if a NULL or empty hostname is passed in.
      rpcrt4: Fix memory leaks in the rpc tests.
      comctl32: Get the background colour in ANIMATE_PaintFrame, instead of just in WM_PAINT.
      ntdll: The FileMailslotSetInformation and FileCompletionInformation cases of NtSetInformationFile don't need the fd.
      server: Always try return a named pipe server that is listening from find_available_server.
      rpcrt4: Fix potential memory leaks in RPCRT4_Receive.
      rpcrt4: Fix potential memory leaks on error paths in RPCRT4_io_thread.
      comctl32: Don't get the background colour in ANIMATE_PaintFrame as this can be called inside a critical section.
      comctl32: Move the getting of the DC outside of ANIMATE_DrawFrame.

Roderick Colenbrander (5):
      wined3d: Make sure to set the color key when it is needed including for index_in_alpha.
      wined3d: Reload the palette on a color key change. This fixes the ddex4/ddex5 samples from the dx7 sdk.
      wined3d: Allow read back of P8 surfaces. This fixes some of the redrawing issues in Red Alert.
      wined3d: Redownload the surface data in case of a palette change. This fixes a lot of redrawing problems in Red Alert.
      wined3d: Upload p8 palette using GL_ALPHA instead of GL_RED.

Stefan Dösinger (30):
      wined3d: Beware of texture_rectangle NP2 support in Reset.
      wined3d: Update the auto depth stencil buffer size on reset.
      wined3d: Unload implicit depth stencil buffers correctly.
      wined3d: Destroy FBOs and reset pointers on Reset.
      wined3d: Move some UnLoad code to the base texture class.
      wined3d: Mark textures dirty on UnLoad.
      wined3d: De-Statify depth blit opengl resources.
      d3d9: Some drivers allow non-aligned offsets.
      wined3d: Make Clear aware of the depth stencil sharing.
      wined3d: Update the gl rectangle when adjusting surface sizes.
      wined3d: D3DTADDRESS_WRAP on conditional NP2 textures clamps to edge.
      wined3d: Some texture transform test corrections.
      d3d9/tests: Be less picky about X8L8V8U8 precision.
      d3d9/tests: Accept the rejection of non-standard fixed function attrib types.
      wined3d: Correct the srgb reading check.
      wined3d: Fix dxtn format check.
      wined3d: Move the float format check to the big switch statement.
      wined3d: Move vertex buffer vbo creation to PreLoad.
      wined3d: Recreate the contexts on _Reset.
      wined3d: Restore the stateblock after Reset.
      wined3d: Tear down the dummy textures before resetting.
      wined3d: Move the highpart of the driver version to the gl structure.
      wined3d: Separate OpenGL and driver version.
      wined3d: Create VBOs.
      ddraw: Some drivers return a refresh rate of 0.
      wined3d: Add infrastructure for faking driver versions.
      wined3d: Add some ATI cards to the version database.
      wined3d: Reject unsupported modes when restting the device.
      d3d9: Implement the device lost state.
      wined3d: Restore the Window size on reset.

Stefan Leichter (1):
      advapi32: Fix the failing QueryServiceConfig2 test on platforms win2k3 and vista.

Alexandre Julliard
julliard at

More information about the wine-announce mailing list