Wine release 0.9.26

Alexandre Julliard julliard at
Fri Nov 24 11:01:33 CST 2006

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

What's new in this release:
  - Better support for Unix locale settings.
  - Improved X11 keyboard support.
  - Various MSI fixes.
  - Winecfg improvements.
  - 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.25:

Alex Villacís Lasso (1):
      kernel32: Restore C locale for LC_NUMERIC.

Alexander Nicolaysen Sørnes (3):
      Updated Norwegian Bokmål translations.
      regedit: Updated Norwegian Bokmål translation.
      wineconsole: Updated Norwegian Bokmål translation.

Alexandre Julliard (30):
      server: Fix list corruption caused by previous change.
      kernel32: Use LC_NUMERIC instead of LC_ALL to determine the user locale.
      ntdll: Added support for reading directories using the BSD getdirentries function.
      winex11.drv: Update the X11 window position when the primary monitor origin changes.
      shell32: Don't use the short path name to delete files in SHFileOperation.
      msvcrt/tests: Clean up a temp file.
      kernel32/tests: Reserve some more memory for the environment.
      Revert "comctl32: Fix a potential regression in ImageList_ReplaceIcon()."
      user32: Renamed the user/ directory to user32.
      kernel32: Rewrote the locale matching to match more elements and to support Windows-format locale names.
      kernel32: Added the locale name entry to all locale definitions.
      kernel32: Use the appropriate Unix locale for GetLocaleInfo when a default LCID is used.
      d3d9: Include wingdi.h, not gdi.h.
      gdi32: Avoid accessing the internal palette object from dib.c.
      gdi32: Moved the system palette flags to winex11.drv.
      winex11.drv: Avoid some direct accesses to the PALETTEOBJ structure.
      winex11.drv: Abstract accesses to the palette color mapping.
      gdi32: Get rid of the palette mapping handling and leave it up to the driver.
      winex11.drv: Store the palette mapping in an X context instead of the GDI object.
      gdi32: Stop exporting GDI_GetObjPtr and GDI_ReleaseObj.
      gdi32: Get rid of the gdi.h include.
      include: Get rid of heap.h.
      include: Install adshlp.h too.
      winmm: Avoid using sizeof() in traces.
      server: Return an fd type in the get_handle_fd request.
      ntdll: Store the fd type in the cache and return it in server_get_unix_fd.
      ntdll: Don't bother with async I/O on regular files.
      winecfg: Don't try to load the arts driver, the arts library is too buggy.
      comctl32: Remove invalid NULL check.
      ntdll: Setting the needs_close flag in server_get_unix_fd got lost in the previous change.

Andrew Talbot (23):
      qcap: Cast-qual warnings fix.
      quartz: Cast-qual warnings fix.
      rpcrt4: Cast-qual warnings fix.
      rpcrt4: Cast-qual warnings fix.
      advapi32: Constify a parameter.
      rsaenh: Cast-qual warning fix.
      secur32: Cast-qual warning fix.
      setupapi: Cast-qual warning fix.
      shell32: Cast-qual warnings fix.
      shell32: Cast-qual warnings fix.
      shlwapi: Cast-qual warnings fix.
      shlwapi: Cast-qual warnings fix.
      urlmon: Cast-qual warnings fix.
      user32: Cast-qual warnings fix.
      user32: Cast-qual warnings fix.
      user32: Cast-qual warnings fix.
      user32: Cast-qual warnings fix.
      wininet: Cast-qual warnings fix.
      winmm: Cast-qual warnings fix.
      winmm: Cast-qual warnings fix.
      winspool.drv: Cast-qual warning fix + make function static.
      ws2_32: Cast-qual warnings fix.
      winmm/wineoss: Cast-qual warning fix.

Andrey Turkin (11):
      alt: Host component implementation: IOleClientSite.
      atl: Implement AtlAxAttachControl.
      atl: Host component implementation: IOleContainer.
      atl: Host component implementation: IOleInPlaceSiteWindowless.
      atl: Host component implementation: IOleInPlaceFrame.
      atl: Host component implementation: IOleControlSite.
      atl: AtlAxGetHost and AtlAxGetControl implementation.
      atl: Fix incorrect prototypes.
      atl: Implement AtlModuleLoadTypeLib.
      atl: Implement AtlRegisterLoadTypeLib.
      atl: Implement AtlModuleRegisterServer.

Byeong-Sik Jeon (1):
      user32: Update the edit control when the IME composition string is emptied.

Christoph Frick (1):
      dinput: Simplify the code that finds the offset of the given linux event.

Clinton Stimpson (1):
      riched20: Fix key handling in dialogs.

Detlef Riekenberg (8):
      localspl: Implement ConfigurePort.
      localspl: Replace number with a defined value (static buffer size).
      localspl/tests: Add test for ConfigurePortW.
      shell32: Fix a function name in a comment.
      kernel32/tests: Load tests on Win9x again (VirtualAllocEx+VirtualFreeEx).
      kernel32/tests: Avoid crash on Win95 (GetLongPathNameW).
      localspl: Implement DeletePort.
      localspl/tests: Add test for DeletePort.

Dmitry Timoshkov (8):
      ntdll: Alphabetically sort the Makefile entries.
      user: Set DDE errors in some failing cases.
      user: Use DDE critical section exclusively for instance list protection.
      kernel32: Add a basic PE loader test.
      user32: Add some optional messages to the button message test.
      user32: Add support for DdeEnableCallback(EC_DISABLE) command.
      user32: Add a rudimentary WM_SETFONT message test for the static control, make it pass under Wine.
      user32: Restore the len == 0 check which got lost in a previous patch.

Eric Pouech (1):
      ntdll: Fixed returned status for NtQueryThreadInformation's ThreadDescriptorTable

Francois Gouget (26):
      kernel32: Fix the 'MAP_FOLDCZONE' ok() test.
      user: Only perform the screen resolution changing tests in interactive mode.
      include/tapi.h: Add missing include directives.
      ole32/tests: Don't use the NONAMELESS* macros in the tests.
      msi: assert.h is not a local header (spotted by winapi_check).
      shell32: Fix inclusion of conditional headers (spotted by winapi_check).
      rpcrt4: Add some stub documentation headers to make winapi_check happy.
      winex11.drv: Fix some comments so they are properly formatted documentation headers.
      ole32: Standardize some documentation comments.
      Add some documentation headers to make winapi_check happy.
      Assorted spelling fixes.
      shell32: Remove unused parameters from SHELL_FindExecutableByOperation().
      comctl32/tests: Don't use the NONAMELESS* macros in the tests.
      dinput/tests: Remove unneeded NONAMELESS* macros.
      dsound/tests: Remove unneeded NONAMELESS* macros.
      mapi32/tests: Remove unneeded NONAMELESS* macros.
      shell32/tests: Don't use the NONAMELESS* macros in the tests.
      shlwapi/tests: Remove unneeded NONAMELESS* macros.
      comctl32/tests: Fix the CheckDPA() tests.
      msvcrt/tests: The tests must not include msvcrt.h because it contains declarations that may be incompatible with the PSDK headers.
      user32/tests: Remove unneeded NONAMELESS* macros.
      Replace SUBLANG_DEFAULT with the specific SUBLANG_XXX constant for languages that have multiple sublanguages.
      programs: Update the Portuguese translation (contributed by Americo Jose Melo).
      serialui: Update the Portuguese translation (contributed by Americo Jose Melo).
      comdlg32: Moved a FIXME out of the user-visible string.
      msvcrt/tests: We cannot link with _initterm() with Visual C++, so we have to load it dynamically.

H. Verbeet (10):
      winex11.drv: The y coordinate should be offset agaist the height, not the width.
      wined3d: Rename renderUpsideDown to render_offscreen.
      wined3d: Fix depth buffer formats to use actual depth textures.
      wined3d: Make the offscreen render mode a registry setting.
      wined3d: Add FBO support for offscreen rendering.
      wined3d: Allow the depth buffer to be shared between onscreen and offscreen rendering modes.
      wined3d: Fix GL_ARB_texture_cube_map extension support.
      wined3d: Support cube map FBO attachments.
      wined3d: Make sure render target textures aren't bound when we start drawing.
      wined3d: Only copy the depth buffer if there is one.

Hans Leidekker (6):
      shlwapi: UrlEscapeA should fail with E_POINTER when querying the buffer size.
      setupapi: The inf section suffix that corresponds to __x86_64 is .ntamd64.
      setupapi: Implement SetupGetSourceFileLocation{A,W}.
      setupapi: Implement SetupGetSourceInfo{A,W}.
      setupapi: Implement SetupGetTargetPath{A,W}.
      setupapi: Add tests for SetupGet{SourceFileLocation, SourceInfo, TargetPath}.

Huw Davies (10):
      msxml3: Add a guard around DOMNodeType just like in the PSDK, so that we can include version 2 and version 3 msxml headers simultaneously.
      msxml3: Initialize the uuids that aren't in libuuid.
      msxml3: Add the CLSID_DOMDocument define in msxml2.idl to match the PSDK.
      msxml3: Support both v 2.x and 3.0 version independent clsids as well as the v 3.0 version dependent clsid.
      ole32: CoRegisterMessageFilter shouldn't crash on an uninitialized apartment.
      msxml3: Implement createProcessingInstruction with a stub PI object.
      msxml3: Implement createElement.
      comctl32: Set the result to IDOK on 'Finish'.
      ole32: CoGetInterfaceAndReleaseStream shouldn't crash when passed a NULL stream.
      ole32: Spelling fixes.

Hwang YunSong(황윤성) (2):
      shdoclc: Updated Korean resource.
      winecfg: Update Korean resource.

Jacek Caban (16):
      shdoclc: Added shdoclc.dll.
      mshtml: Remove menus that are in shdoclc.dll.
      mshtml: Added IDM_INDENT and IDM_OUTDENT implementation.
      mshtml: Added IDM_HORIZONTALLINE implementation.
      mshtml: Added IDM_UNORDERLIST implementation.
      mshtml: Added IDM_ORDERLIST implementation.
      mshtml: Added border implementation.
      mshtml: Added get_style implementation.
      mshtml: Store nsIDOMCSSStyleDeclaration in HTMLStyle.
      mshtml: Added put_fontFamily implementation.
      mshtml: Added put_backgroundColor implementation.
      mshtml: Added put_fontSize implementation.
      mshtml: Added semi-stub createStyleSheet implementation.
      mshtml: Remove nscstring and nscwstring typedefs.
      mshtml: Added missing break.
      mshtml: Added Exec(IDM_FONTSIZE) implementation.

James Hawkins (3):
      msi: Fix a heap corruption bug by resizing the src string before adding to it.
      msi: Notify the external UI handler when changing media.
      kernel32: Replace magic numbers with descriptive defines.

Jesse Allen (3):
      msvcrt: Free correct buffer in pf_vsnprintf.
      msvcrt: Estimate required buffer size better in pf_vsnprintf.
      msvcrt: printf buffer overrun tests.

Kai Blin (1):
      secur32: Fix handling of ISC_REQ* flags in InitializeSecurityContext.

Ken Thomases (7):
      winex11.drv: Reset the keyc2vkey table to empty before rebuilding it.
      winex11.drv: Track which vkeys have already been assigned to keycodes.
      winex11.drv: Replace no-longer-existent VK_A, VK_Z, VK_0, and VK_9 constants.
      winex11.drv: Move some dead code from inside a loop to just after the loop.
      winex11.drv: Changed indenting of some dead code.
      winex11.drv: Enable code for picking layout-independent vkey as second pass.
      winex11.drv: Correct the count of characters matching with layout.

Kevin Koltzau (3):
      winnt.h: Add defines for new DLL characteristics.
      winnt.h: Add AMD64 relocation types.
      winedump: Print new DLL characteristics.

Kirill K. Smirnov (3):
      winhelp: Do not create popup window if file not found.
      winhelp: Fix WINHELP_DeleteWindow.
      winhelp: Use path of parent helpfile while looking for popup window.

Kovács András (1):
      mshtml: HTMLElementCollection_item implementation.

Louis Lenders (3):
      shell32: Define a few more icon resources.
      msvcrt: Add _fstat64 and _stat64 to msvcrt.spec.
      wine.inf: Add setupapi to fake dlls.

Marcus Meissner (5):
      kernel32: Added missing shift by 8.
      ntdll: Converted bitmask into TRUE/FALSE.
      shell32: Pass number of wide chars, not bytes as last argument to MBtoWC().
      kernel32/tests: Test -1 length for NULL ptr too.
      oleaut32: Protect against integer overflow in SysAllocStringLen.

Markus Amsler (14):
      d3d8: Back buffer is identical to the render target, test it only once.
      d3d8: Test refcount forwarding.
      d3d8: Test AddRef with refcount==0.
      d3d8: Show that the implicit surfaces are not freed if refcount reaches 0.
      d3d9: Forward port d3d8 refcount tests.
      d3d: Remove AddRef from IWineD3DDevice_GetDirect3D.
      d3d: Remove AddRef from IWineD3DDevice_GetBackBuffer.
      d3d: Remove AddRef from IWineD3DDevice_GetRenderTarget.
      d3d: Remove AddRef from IWineD3DDevice_GetDepthStencilSurface.
      d3d: Remove AddRef from IWineD3DDevice_GetTexture.
      d3d: Remove AddRef from IWineD3DDevice_GetStreamSource.
      d3d: Remove AddRef from IWineD3DDevice_GetIndices.
      d3d: Remove AddRef from IWineD3DDevice_GetSwapChain.
      d3d: Fix partially applied patch: Remove AddRef from GetDirect3D.

Matthew Kehrer (1):
      mshtml: Add basic support for ITimer interface.

Michael Stefaniuc (4):
      dsound: Fix the declaration/definition of DSOUND_timer().
      dsound: Win64 printf format warning fixes.
      winmm/tests: Fix the parameters of LPTIMECALLBACK functions.
      winmm/tests: Win64 printf format warning fixes.

Mike McCormack (43):
      msi: Clean upstore_binary_to_temp.
      msi: Fix an uninitialized variable in the test cases.
      msi: Fail if we can't write out a temporary file.
      msi: Track temp files as soon as they are created.
      msi: Fix error handling.
      msi: Only free a string in one place.
      kernel32: Print a FIXME only once.
      user32: Print a fixme only once.
      comctl32: When removing an image, move the remaining images one forward, not one backwards.
      comctl32: Fix a potential regression in ImageList_ReplaceIcon().
      comctl32: Remove a redundant variable.
      msi: Print a message if we fail to delete a file.
      msi: Always delete temp files after creating them.
      msi: Remove track_tempfile()'s unused 2nd parameter.
      msi: Defer package deletion until after the database is closed.
      msi: Delete the tempfile created by GetTempFileName.
      msi: Split MSI_CreatePackage into two functions.
      kernel32: Downgrade a FIXME to a WARN.
      oleaut32: Remove incorrect references to malloc.
      msi: Remove some redundant else statements.
      msi: Add a test showing which tables are special.
      msi: Add a test showing the _Properties table is a bit strange.
      msi: Remove a level of indent in resolve_folder().
      msi: Remove unnecessary includes.
      msi: Fix a memory leak in load_folder().
      msi: Don't leak row handles.
      msi: Fix some memory leaks.
      msi: Clean up parameters of msi_media_get_disk_info().
      msi: Add another test for the SourceDir property.
      msi: Spelling fixes.
      msi: Split msi_set_sourcedir_props into a separate function.
      msi: Fix an access after freeing memory.
      msi: Create a function to free control data.
      msi: Don't access the list of controls after the dialog is destroyed.
      msi: Add a test for formatting records with strings.
      msi: Test MsiRecordGetString on an integer record fields with a NULL output buffer.
      msi: Fix use of integer fields in MsiFormatRecord.
      riched20: Simplify an array size calculation.
      msi: Remove an unused parameter.
      msi: Split process_action_return_value into two different functions.
      msi: Only wait for custom actions that don't have msidbCustomActionTypeContinue specified.
      msi: Load all folders in one query, rather one per query.
      msi: Treat the SourceDir folder the same as TargetDir.

Paul Vriens (10):
      msi: Fix typo's (Coverity).
      rsaenh: Move type-check before len-check (Coverity).
      comdlg32: Remove unused variable (Coverity).
      comctl32: Remove deadcode (Coverity).
      ntdll: Remove tests that crash on XP and W2K3.
      ntdll: Remove unused variables.
      ntdll: Remove tests that crash on XP and W2K3.
      ntdll: Use intended variable.
      ntdll: Remove unused variables.
      advpack: Remove test that crashes on systems with IE7.

Rob Shearman (13):
      rpcrt4: Fix a comment and move a WARN to where it really indicates a problem, rather than falsely triggering on normal conditions.
      rpcrt4: Convert the server interfaces list into a standard Wine list.
      rpcrt4: Implement RpcServerUnregisterIf.
      ole32: Re-enable the code that unregisters interfaces with the RPC runtime.
      include: Fix a typo in the SecInvalidateHandle macro in sspi.h.
      include: Add wincred.h header file.
      rpcrt4: Add a FIXME for unsupported client protocol sequences.
      rpcrt4: Fix a crash in RPCRT4_OpenBinding that can occur if
      rpcrt4: Add support for signing, verifying, encrypting and decrypting RPC packets.
      rpcrt4: Use SecInvalidateHandle and SecIsValidHandle for handling RpcConnection::ctx instead of setting/comparing the field to 0.
      include: Add security QOS flags to winbase.h.
      rpcrt4: Allow applications to specify authentication levels other than connect in RpcBindingSetAuthInfoA/W.

Roderick Colenbrander (1):
      wgl: Fix a typo in the pbuffer pixelformat enumeration code.

Sam Dennis (1):
      msvcrt: Use the custom vsnprintf implementation for msvcrt.vsprintf too.

Stefan Dösinger (1):
      wined3d: Fix a comment.

Vitaliy Margolen (6):
      winecfg: Allow editing of broken drive links.
      winecfg: Move controls on "Desktop Integration" tab to make more room for the next patch.
      winecfg: Add ability to change colors and non-client sizes.
      winecfg: Update Russian translation.
      winecfg: Remove some old dead code and associated language resources.
      winemenubuilder: Use 'start.exe' to launch non .exe files.

Alexandre Julliard
julliard at

More information about the wine-announce mailing list