Wine release 0.9.35

Alexandre Julliard julliard at
Fri Apr 13 11:08:02 CDT 2007

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

What's new in this release:
  - Broken aRts sound driver now removed for good.
  - Many fixes to the Quartz DLL sound support.
  - File I/O performance improvements.
  - The usual assortment of Direct3D fixes.
  - 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.34:

Alessandro Pignotti (1):
      dplayx: Implement proper interface locking for DP_EnumSession.

Alexandre Julliard (39):
      make_makefiles: Add the .INIT/.BEGIN rules for the main makefile.
      server: Add a generic wait queue to the file descriptor object.
      server: Avoid redundant polling in fd_queue_async_timeout.
      server: Take advantage of the fd generic wait queue to remove a lot of serial code.
      server: Use the fd generic wait queue for directory change I/O operations.
      server: Make async I/O queues into real objects.
      server: Check file access in register_async before calling the object method.
      kernel32: Added some last error tests for mailslots.
      server: Add a separate function to set the timeout of an async I/O operation.
      server: Make timeout status for async I/O specifiable. Fix mailslots timeout handling.
      server: Hold a pointer to the queue from the async operations.
      make_requests: More aggressive grepping for status values.
      server: Add support for associating a file descriptor to a message queue.
      winex11.drv: Store the display file descriptor directly in the server message queue.
      server: Fix the handling of the signaled status for file descriptors.
      server: Use the standard file descriptor signal mechanism for directory changes.
      ntdll: Avoid setting status in IO_STATUS_BLOCK until the I/O operation is done.
      ntdll: Avoid relying on the IO_STATUS_BLOCK for storing the current transfer count.
      ws2_32: Don't access the IO_STATUS_BLOCK until the I/O operation is finished.
      ntdll: Make test for heap boundaries more strict in HEAP_FindSubHeap.
      kernel32: Add a bit of slack to the mailslot timeout test.
      ntdll: Reimplement NtReadFile.
      ntdll: Reimplement NtWriteFile.
      ntdll: Rely on the server to queue the final APC for asynchronous read/write.
      ntdll: Use send(2) instead of write(2) for zero-byte writes to sockets.
      ntdll: Add some test cases for asynchronous I/O.
      setupapi: Avoid using sizeof in traces.
      server: Add support for restarting an async I/O when the client side couldn't finish it right away.
      ntdll: Simplify the async read/write code now that most of the work is done in the server.
      ntdll: Determine the async read avail_mode flag from the client side.
      server: Explicitly shutdown closed pipes to prevent access from file descriptors cached in the client.
      kernel32: Add SYNCHRONIZE access to mailslot handles.
      server: Store the opening options in the file descriptor instead of in the individual objects.
      server: Rename the get_file_info function to get_fd_type and get rid of the flags.
      ntdll: Store the file access and options in the fd cache, and get rid of the dynamic flags.
      shell32: Have _ILCreateFromFindDataW also create a FileStructW type of pidl.
      server: Create a separate fd object for each mailslot writer. Make them first-class file handles.
      server: Don't bother with default entry points for objects that don't even return an fd.
      winex11.drv: Hack to disable XInitThreads when an XIM is used.

Andrew Talbot (35):
      comctl32: Constify some variables.
      comctl32: Constify some variables.
      comctl32: Constify some variables.
      comctl32: Constify some variables.
      comctl32: Constify some variables.
      comctl32: Constify some variables.
      comctl32: Constify some variables.
      comctl32: Constify some variables.
      comctl32: Constify some variables.
      comctl32: Constify some variables.
      comctl32: Constify some variables.
      advapi32: Constify some variables.
      atl: Constify some variables.
      advpack: Constify some variables.
      comcat: Constify some variables.
      avifil32: Constify some variables.
      comdlg32: Constify some variables.
      comdlg32: Constify some variables.
      comdlg32: Constify some variables.
      comdlg32: Constify some variables.
      comdlg32: Constify some variables.
      comdlg32: Constify some variables.
      comdlg32: Remove inappropriate const qualifier.
      include: Remove superfluous semicolons.
      d3d8: Void functions should not return a value.
      d3d9: Void functions should not return a value.
      kernel32: Remove superfluous semicolons.
      mapi32: Void functions should not return a value.
      crypt32: Constify some variables.
      mshtml: Void functions should not return a value.
      msvcrt: Remove superfluous semicolons.
      ntdll: Void functions should not return a value.
      ntdll: Remove superfluous semicolons.
      ole32: Void functions should not return a value.
      oleaut32: Remove superfluous semicolons.

András Kovács (2):
      ntdll: Add Vista version option.
      winecfg: Add Windows Vista version option.

Aric Stewart (8):
      comctl32: Unset active page while setting a new active page for a propsheet.
      comctl32: Propsheet exception fix.
      ole32: Storage optimization.
      msi: Register fonts with full target paths as applications can and will install fonts to places other than the windows/fonts directory.
      shell32: Avoid unneeded A->W conversions in _ILSimpleGetTextW.
      shell32: Update the debug functions to handle Unicode value pidl.
      shell32: Use _ILSimpleGetTextW instead of using _ILGetTextPointer
      msi: Do not crash in MsiGetUserInfo if org, user or serial are not present, instead return USERINFOSTATE_ABSENT.

Byeong-Sik Jeon (2):
      regedit: Support REG_MULTI_SZ creation and editing.
      regedit: Update Korean resource.

Chris Robinson (23):
      quartz: Don't fill the dsound buffer with small amounts.
      quartz: Remove errant parser output pins on input connection failure.
      quartz: Set the sample time based on the number of bytes read before sending it downstream.
      quartz: Use a safe APC to kill the PullPin thread when the PullPin is being released.
      quartz: Use a second-long DSound buffer for playback.
      quartz: Hold a reference on the PullPin's filter while the processing thread is alive.
      quartz: Connect input when the pins connect, not when querying.
      quartz: Add a QueryConnect method for transform filters.
      quartz: Break loop on error in ACMWrapper.
      quartz: Implement Get/SetSyncSource for the FilterGraph's IMediaFilter interface.
      quartz: Don't call ReleaseSemaphore on NULL semaphore handles.
      quartz: Tell filters to stop sending data when the chain is broken.
      quartz: Avoid releasing NULL objects.
      quartz: Send a notification when the filter graph clock changes.
      quartz: Use more precise positioning information for the DSound filter's reference clock.
      quartz: Add partial implementation of IReferenceClock for DSoundRenderer.
      quartz: Add a cleanup callback for parser filters to call on release.
      quartz: Make sure cached media samples are released for parser filters.
      quartz: Fix ALIGN macros.
      quartz: Fix error with operator precedence.
      quartz: Pass the media sample to the individual transform filter callbacks.
      winedbg: Align module addresses to 8 characters.
      quartz: Implement IAMFilterData interface for IFilterMapper.

Dan Hipschman (1):
      rpcrt4: Add tests for RpcServerListen and friends.

Dan Kegel (2):
      imagehlp: BindImageEx stub should report success.
      winex11.drv: GetAsyncKeyState must check mouse buttons, too.

Detlef Riekenberg (4):
      localui: Add localui.dll with stubs.
      localui/tests: Add initial test.
      localspl/tests: Remove duplicate tests.
      localui: Add version resource.

Dmitry Timoshkov (8):
      kernel32: Add GetCPInfo test.
      gdi32: Make GetKerningPairsA not fail for fonts with SYMBOL charset.
      winspool: Add a test for DeviceCapabilities, fix some bugs found.
      shlwapi: Fix a forward to user32.PrivateExtractIconExW.
      user32: Windows uses ptMaxTrackSize to set an initial window size not ptMaxSize.
      winebuild: Check if a given forward does exist in one of the imported dlls, fix a couple of problems detected.
      gdi32: Fix a couple of problems with negative lfWidth test.
      ntdll: Fix a compiler warning.

Eric Pouech (3):
      winedbg: When reloading real PE modules from a minidump, also look in the search path (as we do for ELF modules).
      winedbg, winedump: Extended some info printed from system info directory in minidump about the CPU.
      taskmgr: Let the debug channels work again.

Fabian Bieler (7):
      wined3d: Fix GLSL cmp instruction for INF and NAN arguments.
      wined3d: Fix GLSL cnd instruction for INF and NAN arguments.
      wined3d: Add support for float texture formats back in.
      wined3d: Fix UpdateSurface for sourceRect != sourceWidth.
      wined3d: Fix GLSL cnd instruction.
      wined3d: Add GL_EXT_framebuffer_blit to extension handler.
      wined3d: Mark vertex shader 3.0 as foggy shaders if they write out the fog coord.

Felix Nawothnig (13):
      gdi32: Properly handle negative font widths.
      wined3d: Make CreateCubeTexture fail when not supported.
      wined3d: Downgrade some ERRs to FIXMEs.
      wined3d: Only issue state_patchsegments FIXME once.
      comctl32: Fix item rect calculation.
      comctl32: Use appropriate font for header drag image.
      taskmgr: Use default font for proc listview.
      comctl32: Allow destruction of toolbar in BN_CLICKED handler.
      comctl32: Allow enabling TVS_CHECKBOXES on the fly.
      d3d8: Add missing relay trace.
      wined3d: Allow np2 textures to be loaded for SFLAG_INDRAWABLE.
      wined3d: Preload target in ActivateContext() for ORM_BACKBUFFER/ORM_PBUFFER.
      wined3d: Issue an error when the render target is read back without SFLAG_INDRAWABLE being set.

Francois Gouget (8):
      ole32/tests: Spelling fix.
      ole32/tests: Spelling fix.
      Assorted spelling and English fixes.
      shell32/tests: Fix some expected FindExecutable() error codes.
      shell32/tests: End the lines with CR+LF otherwise the profile APIs are unable to read them back on Win >= 2000.
      shell32/tests: On Windows 98 FindExecutable() does not '\0' terminate the returned command which caused many tests to fail.
      shell32/tests: On NT4 FindExecutable() returns an extra backspace character in some tests.
      oleaut32/tests: Fix compilation on systems that don't support nameless structs or unions.

H. Verbeet (16):
      wined3d: Handle FBO attachments slightly more efficiently.
      wined3d: Fixup FBO depth attachments when the depth attachment is larger than the render target.
      wined3d: Add a function to dump WINED3DTEXTUREFILTERTYPE values.
      wined3d: Make bind_fbo a bit more generic.
      wined3d: Separate attaching a surface to an FBO from set_render_target_fbo.
      wined3d: Use the framebuffer blit extension to implement StretchRect.
      wined3d: Add some StretchRectFilterCaps.
      wined3d: Don't report render target formats we don't support as supported.
      wined3d: Display the stream offset in GetStreamSource/SetStreamSource traces.
      wined3d: Set the stream offset to 0 in DrawPrimitiveUP/DrawIndexedPrimitiveUP.
      wined3d: Add some traces to stretch_rect_fbo.
      wined3d: Remove some redundant IWineD3DSurface_PreLoad calls from stretch_rect_fbo.
      wined3d: Disable the scissor test in stretch_rect_fbo.
      wined3d: Disable the scissor test for depth blits.
      wined3d: Dirtify the sampler used by IWineD3DSurface_PreLoad in IWineD3DSurfaceImpl_BltOverride.
      wined3d: Fix some swizzles on scalars.

Hans Leidekker (8):
      wintrust: Improve a number of stubs.
      setupapi: Implement SetupGetFileCompressionInfoEx{A, W}.
      setupapi: Add tests for SetupGetFileCompressionInfoEx.
      setupapi: Implement SetupDecompressOrCopyFile{A, W}.
      setupapi: Add tests for SetupDecompressOrCopyFile.
      setupapi: Remove debug traces from allocation routines.
      setupapi: Implement SetupGetFileCompressionInfo on top of SetupGetFileCompressionInfoEx.
      kernel32: Allow any amount of whitespace between the words ANSI and SCSI in /proc/scsi/scsi.

Huw Davies (3):
      wineps.drv: Add a heuristic to cope with resolution strings of the form "nnnmmmdpi" (ie without the 'x' separator).
      winspool.drv: Implement level 1 support for EnumPrinters.
      imagehlp: Add support for the indices array passed to ImageEnumerateCertificates.

Ivan Gyurdiev (2):
      d3d9: Break out two helper functions from test_fvf_to_decl.
      d3d9: Add a test for the converted vertex decl.

Jacek Caban (5):
      mshtml: Change TRACE to FIXME in stubs.
      mshtml: Added IHTMLBodyElement::get_background implementation.
      mshtml: Correctly handle utf-16 encoded pages.
      mshtml: Added IPersistFile::Save implementation.
      mshtml: Added IDM_COMPOSESETTINGS and IDM_HTMLEDITMODE stub implementation.

James Hawkins (1):
      msi: Reset the is_extracted flag when every cabinet is loaded.

Jason Edmeades (20):
      xcopy: Add support for /EXCLUDELIST:file1+file2 etc.
      xcopy: Add support for /D and /D:m-d-y.
      xcopy: Rearrange code to closely match windows ordering.
      xcopy: Move all messages into an English resource file.
      xcopy: Update comments with unsupported operations and current status.
      xcopy: Add help.
      xcopy: Make displayed names mirror windows.
      xcopy: /E implies recursive (fixes ActiveState Perl installer).
      xcopy: Hack/workaround for filenames starting with a '.'.
      oleaut32: Convert to VT_DECIMAL fails with overflow (with test).
      cmd.exe: Only search for supplied command as-is if it includes an extension.
      cmd.exe: Attempt to launch pgm even if fails to locate it.
      cmd.exe: Fix dir filename /s and resolve many output differences.
      cmd.exe: Make dir support multiple parameters.
      cmd.exe: Make dir a* b* or dir a* b* /s mirror windows.
      cmd.exe: Partially fix 'dir *.' (ie files with no extension).
      cmd.exe: Add support for move with simple wildcards.
      cmd.exe: Add move support for wildcards and directories.
      cmd.exe: Add prompting and COPYCMD plus /Y support to move.
      cmd.exe: Fix regression when launching a fully qualified program.

Kai Blin (1):
      ntdll: Don't use settimeofday() to attempt to set the timezone.

Laurent Vromman (3):
      gdi32: Add two basic tests to check what WidenPath does.
      gdi32: Correction of WidenPath behaviour when pen width is 1.
      gdi32: Correct WidenPath behaviour when working on an open path.

Lei Zhang (5):
      advapi32: Spelling fixes.
      comctl32: Fix first day of the week in monthcal.
      comctl32: More monthcal hit tests.
      user32: WM_ACTIVATEAPP on minimize message test.
      comctl32: monthcal: GetMonthRange Tests.

Louis Lenders (1):
      user32: Add RealChildWindowFromPoint.

Maarten Lankhorst (2):
      winearts.drv: Kill off winearts.
      winecfg: Close audio driver when not needed any more.

Marcus Meissner (2):
      ntdll: Remove superflous NULL checks.
      configure: Include <sys/types.h> before including <linux/joystick.h>.

Michael Ploujnikov (1):
      wined3d: Remove DDBLT_WAIT fixme.

Michael Stefaniuc (3):
      msvcrt: Move the code to demangle a name with its template argument list out of get_class() and into a separate function.
      msvcrt: Demangle a C++ mangled string that is only a name with it's template argument list.
      ws2_32/tests: Remove redundant NULL check before HeapFree().

Paul Vriens (11):
      advapi32/tests: Reopen the main handle if needed.
      advapi32/tests: Some cleanup.
      ole32/stg_bigblockfile: Check page before use (Coverity).
      odbccp32: Don't print *pcbPathOut as it can be NULL (Coverity).
      ntdll/tests: Use GetModuleHandle and skip.
      user32/tests: Don't run unicode tests if not supported.
      advapi32/tests: Make sure NT4 and W2K tests don't fail.
      setupapi/tests: Run tests on win98 again.
      advapi32/tests: Use skip when OpenSCManagerA is not implemented.
      advapi32/tests: Fix RegQueryValueExA test for win9x and ME.
      advpack/tests: Don't hardcode the windows directory.

Peter Beutner (2):
      dinput: Add missing definition to public header.
      ntdll: Remove one exception test.

Rob Shearman (21):
      urlmon: Fix a reference count leak that would keep the module alive when it shouldn't.
      advpack: Call OleInitialize before registering OCXs, like native does.
      advpack: Stop processing if there was an error registering an OCX.
      ntdll: Pass the correct value to NtClose in the tests.
      msi: Don't wait on closed handles in ACTION_FinishCustomActions.
      atl: AddRef the object being returned in AtlInternalQueryInterface,  not "this".
      ole32: Convert the OpenDll list to a standard Wine list.
      ole32: Move the in-process module loading to COMPOBJ_DllList_Add.
      ole32: Move the handling of loading a dll and getting an in-process object from it to an apartment-specific function.
      ole32: Add a test that shows CoFreeUnusedLibraries only frees unused libraries from the current apartment.
      ole32: Cache the address for the library's DllGetClassObject and DllCanUnloadNow in the OpenDll list entry.
      ole32: Keep a list of the loaded dlls for each apartment.
      ole32: In 16-bit OLE, LPOLESTR uses multibyte, not Unicode characters so make LoadTypeLib16 take an LPSTR instead of LPOLESTR.
      ole32: Add tests for drag and drop functions.
      ole32: Check for COM not being initialised and an invalid window handle being input to RegisterDragDrop.
      ole32: Check the input hwnd is valid in RevokeDragDrop.
      ole32: Don't release the registered drop targets in OleUninitialize.
      ole32: Move declaration for FileMonikerImpl_DecomposePath from compobj_private.h to moniker.h.
      ole32: Fix a hack which depended on the IID of the interface being marshaled
      shell32: Return Unicode strings from all of the IShellFolder::GetDisplayNameOf functions in not running in Win9x mode.
      msi: Provide UI action data for uncompressed files, not just compressed ones.

Rolf Kalbermatter (4):
      notepad: Implement handling of page setup dialog parameters.
      notepad: Fix a possible rounding error when storing the font point size to the registry.
      notepad: Fix text label.
      notepad: Improve printing considerably.

Stefan Dösinger (10):
      wined3d: Add GL_APPLE_client_storage to our extension list.
      wined3d: Use GL_APPLE_client_storage if available.
      wined3d: Add D3DDEVCAPS3_* to the wined3d caps header.
      wined3d: Add Filtering to IWineD3DSurface::Blt and handle it.
      wined3d: Index buffer data is unsigned.
      wined3d: Dirtify the shader and declaration states if the bound interface is destroyed.
      d3d9: AddRef the device in IDirect3DVertexDeclaration9::AddRef.
      d3d9: Fix the circular converted vertex declaration reference.
      d3d9: Fix vertex decl test.

Stefan Leichter (1):
      advapi32: Add some tests for RegDeleteTreeA.

Steven Edwards (1):
      winecfg: Add a button for audio test.

Vit Hrachovy (1):
      winecfg: Fix outdated Czech localization.

Vitaliy Margolen (2):
      dinput: Set the event regardless of the queue state.
      ntdll: Take size of the arena from the current pointer before advancing.

Alexandre Julliard
julliard at

More information about the wine-announce mailing list