Wine release 0.9.34

Alexandre Julliard julliard at
Fri Mar 30 10:00:32 CDT 2007

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

What's new in this release:
  - Support for Xcursor.
  - A range of fixes for various installers.
  - New builtin xcopy tool.
  - 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.33:

A C Hurst (1):
      wined3d: Fix struct size calculation in EnumTextureFormats.

Alessandro Pignotti (3):
      dplayx: Check for null pointer dereference in DP_FindPlayer.
      dplayx: Corrected the way nameserver initializes the sessiondesc structure on broadcast request reply.
      dplayx: Fixes the order of GUID initialization and storage.

Alexander Farber (1):
      cmd: Enlarge max. length of PATH variable.

Alexandre Julliard (38):
      dbghelp: Avoid some warnings on Solaris.
      wldap32: Prefix option defines with WLDAP32 to avoid conflicts with system headers.
      ntdll: Remove unnecessary pointers in fstab parsing on Solaris.
      server: Use the common pattern for async I/O parameters in named pipe requests.
      server: Grab the owner object of an APC while the APC is executing.
      server: Make struct async into a real object, to keep it around while the APC is running.
      server: Return the status from an async I/O APC call to the server.
      server: Add an async_data_t structure to store parameters for async I/O requests.
      setupapi: Add support for .inf files in utf-8 format.
      server: Add support for storing an event to signal upon async I/O completion.
      server: Notify the async object when the APC call completed.
      server: Move the signalling of the completion event for NtRead/WriteFile to the server.
      ws2_32: Move the signalling of the completion event to the server.
      server: Move the signalling of the named pipe completion event to the server.
      server: Use a standard async I/O event to signal directory changes.
      winex11.drv: Relax the bitmap depth check in CreateBitmap to accept some compatible formats.
      server: Add an open_file() function to the object operations.
      server: Implemented the open_file method for named pipe and mailslot devices.
      server: Create the named pipe and mailslot devices under \Device.
      server: Don't enforce named pipes path format in ntdll, only in the server.
      server: Don't enforce mailslots path format in ntdll, only in the server.
      ntdll: Better support for NT path names in wine_nt_to_unix_file_name.
      server: Implement the open_file method for mailslots.
      server: Implement the open_file method for named pipes.
      server: Print the callback function in the APC_ASYNC_IO trace.
      kernel32: Fixed timeout calculation in WaitNamedPipe.
      ntdll: Avoid overwriting the result of the async I/O callback in NtFsControlFile.
      server: A named pipe wait can be satisfied by an idle pipe server too.
      server: Always return STATUS_PENDING when an async I/O operation has been queued.
      kernel32: Don't use the reserved argument of the APC routine callback.
      server: Add support for queuing a user APC upon async I/O completion.
      server: Remove the return value of the flush() method, it's not used.
      Makefile: More portable invocation of ctags/etags.
      ntdll: Ignore failure to open current directory, it's broken on Mac OS X.
      kernel32: Make default behavior more consistent when AeDebug key is not present.
      libwine: Hack to work around the Solaris dlopen() brain damage.
      kernel32: Better default for dwActiveProcessorMask in GetSystemInfo.
      Makefile: Try to force the makefile to be rebuilt with non-GNU make too.

Andrew Riedi (2):
      winex11.drv: Add Xcursor support for 32 bit cursors.
      dsound: Change a couple DPRINTF's to TRACE's

Andrew Talbot (45):
      comcat: Declare some variables static and const.
      comctl32: Replace inline static with static inline.
      advapi32: Replace inline static with static inline.
      kernel32: Replace inline static with static inline.
      ntdll: Replace inline static with static inline.
      user32: Replace inline static with static inline.
      wined3d: Replace inline static with static inline.
      winex11.drv: Replace inline static with static inline.
      server: Replace inline static with static inline.
      winebuild: Replace inline static with static inline.
      wineps.drv: Replace inline static with static inline.
      ddraw: Replace inline static with static inline.
      dsound: Replace inline static with static inline.
      msvcrt: Replace inline static with static inline.
      dinput: Replace inline static with static inline.
      setupapi: Replace inline static with static inline.
      gdi32: Replace inline static with static inline.
      comctl32: Constify some variables.
      dbghelp: Replace inline static with static inline.
      kernel32/tests: Replace inline static with static inline.
      mlang/tests: Replace inline static with static inline.
      msg711.acm: Replace inline static with static inline.
      comctl32: Constify some variables.
      msi: Replace inline static with static inline.
      shell32: Replace inline static with static inline.
      msvcrt/tests: Replace inline static with static inline.
      ole32: Replace inline static with static inline.
      oleaut32: Replace inline static with static inline.
      rpcrt4: Replace inline static with static inline.
      comctl32: Constify some variables.
      comctl32: Constify some variables.
      include: Replace inline static with static inline.
      shlwapi: Replace inline static with static inline.
      wintab32: Replace inline static with static inline.
      wininet: Replace inline static with static inline.
      winmm: Replace inline static with static inline.
      ws2_32: Replace inline static with static inline.
      comctl32: Constify some variables.
      winelib: Replace inline static with static inline.
      loader: Replace inline static with static inline.
      secur32: Replace const pointer parameters with correct pointers to const.
      comctl32: Constify some variables.
      comctl32: Constify some variables.
      comctl32: Constify some variables.
      comctl32: Cast-qual warnings fix.

Aric Stewart (3):
      ole32: Rework storage with blockfiles to properly use ILockBytes interfaces.
      Revert 7c35db07c35db0... msiexec: Use CommandLineToArgvW instead of process_args to reduce code duplication.
      imm32: Change the default IME window to better reflect applications request.

Chris Robinson (15):
      quartz: Hold a reference on a filter while sending data to it.
      quartz: Release objects when pins fail to connect.
      quartz: Disconnect pins when their filter is removed.
      quartz: Release objects when they're no longer needed.
      quartz: Don't delete critical sections before the filter's pins are done using them.
      quartz: Don't redundantly set waveparser output pin data before it's created.
      quartz: Fully disconnect the AsyncReader when released.
      quartz: Make DSoundRender_Run start the playback buffer.
      quartz: Implement volume and pan control for DSoundRenderer.
      quartz: Store the current reference time with the PullPin.
      quartz: Propogate transform filter errors upstream.
      quartz: Return proper CLSID for parser filters.
      quartz: Protect DSound buffer creation with a critical section lock.
      winemp3: Clear stream buffers when the stream is reset.
      quartz: Add filters using their names.

Clinton Stimpson (1):
      riched20: Fix text replacement with text limit.

Damjan Jovanovic (2):
      ws2_32: In some cases send should block until the entire buffer is sent.
      ws2_32: WSASendTo should always re-enable the FD_WRITE event.

Detlef Riekenberg (7):
      libs/wine: Use xstrdup to avoid duplicate code.
      kernel32/tests: DuplicateTokenEx is not present on all platforms.
      advapi32/tests: DuplicateTokenEx is not present on all platforms.
      localspl/tests: Rename hXcv for special tests.
      localspl/tests: Open the default Xcv-channel only once.
      localspl/tests: Fix copy+paste bug.
      winspool.drv: Do not cache the port names.

Dmitry Timoshkov (11):
      winex11.drv: In the case requested glyphs do not present in the font fail gracefully instead of asserting.
      msvcrt: Print FIXME on platforms where _except_handler3 is a stub.
      user32: Avoid compiler specific code in the DefWindowProc test.
      ole32: Move the storage signatures to the appropriate file that uses them.
      riched20: Add a test that shows that under Win9x RichEdit20W windows are not unicode, but always expect to see unicode input.
      user32: WM_GETTEXT message converters have to 0-terminate output buffer if there is enough space even if there is no text to convert.
      riched20: Split unicode and ansi window procs, handle messages depending on the unicode flag.
      gdi32: Implement GdiGetCodePage.
      gdi32: Make the EMF driver return sane NUMCOLORS value.
      include: Add some API prototypes to appropriate header files, fix some prototypes.
      shlwapi: Match shlwapi wrappers to MSDN descriptions.

Erich Hoover (1):
      wined3d: Fix LockRect memory location calculation for WINED3DFMT_DXT*.

Fabian Bieler (8):
      wined3d: Implement linear fog with pixel shader.
      wined3d: Remove fog coordinate clamping in the vertex shader.
      d3d9/tests: Add test for fog with shader.
      wined3d: Implemented bump map transform for texbem in GLSL with native signed textures.
      wined3d: Fix glsl texbem instruction for projective textures.
      wined3d: Fix arb texbem instruction for projective textures.
      d3d9/tests: Add test for texbem instruction.
      wined3d: Implement support for projective textures in ps 2.0 and later.

Felix Nawothnig (3):
      wined3d: Only disable GL_TEXTURE_CUBE_MAP_ARB if supported.
      wined3d: Fix broken ERR() message.
      wined3d: Use GL_TEXTURE_2D for dummy textures.

Francois Gouget (5):
      setupapi: Fix InstallCatalog()'s calling convention.
      netapi32/tests: Add a missing '\n' to a trace().
      gdi32: Remove a space before '\n' in a trace.
      cmd: Spelling fix.
      Remove unneeded checks on the GetModuleHandle() return value for cases where we are linked with the dll.

Gabriel Gambetta (1):
      ntdll: Add Uruguayan Summer Time timezone.

Gerald Pfeifer (1):
      configure: Add -lXau to NASLIBS if applicable to obtain XauGetBestAuthByAddr and XauDisposeAuth.

Hagop Hagopian (2):
      comctl32: tab: Added message sequence tests for the tab control.
      comctl32: tab: Minor bug fixes in the curSel and curFocus getters and setters.

Hans Leidekker (9):
      wine.inf: Register an 'install' verb with the shell for .inf files.
      wine.inf: Open/print .rtf files with wordpad.
      wine.inf: Add cabinet.dll to the list of fake dlls.
      setupapi: Add a stub implementation for InstallCatalog.
      userenv: Add stub implementations for {Register, Unregister}GPNotification.
      mpr: Fix buffer size calculation in WNetGetUniversalNameW.
      mpr: Add a stub implementation for WNetGetUniversalNameA.
      ntdll: Fully initialize the security descriptor returned from RtlSelfRelativeToAbsoluteSD.
      shell32: Add a stub implementation for SHPathPrepareForWrite{A, W}.

Huw Davies (3):
      user32: Use a window's icon in preference to its class icon.
      winex11.drv: Rename a local variable to avoid confusion with a global.
      winex11.drv: Delete the tile pixmap whenever the drawable is changed.

Jacek Caban (9):
      spoolss: Added RevertToPrinterSelf stub implementation.
      advapi: Constify argument of StartServiceCtrlDispatcher[AW] functions.
      advapi: Improve SetEntriesInAclW stub.
      spoolsv: Added spoolsv.exe.
      wine.inf: Register Spooler service.
      wine.inf: Code clean up.
      mshtml: Added DispHTMLDocument dispinterface declaration.
      mshtml: Added DIID_DispHTMLDocument to QueryInterface.
      winnt.h: Added activation context structures declarations.

James Hawkins (8):
      setupapi: Add missing SetupCopyOEMInf flags.
      setupapi: Add several tests for SetupCopyOEMInf, with fixes so the tests don't crash.
      setupapi: Handle the SP_COPY_NOOVERWRITE flag.
      setupapi: Don't allow relative paths in SetupCopyOEMInf.
      setupapi: The Inf file should be copied regardless of the destination buffer, with tests.
      setupapi: Correct the Inf output position.
      setupapi: SetLastError to ERROR_SUCCESS on success.
      msi: Load the folder property if available and requested.

Jan Zerebecki (1):
      wined3d: Print lastpixel state fixme only once.

Jason Edmeades (18):
      cmd.exe: Add support for DIR /D.
      cmd.exe: Add support for dir /-C.
      cmd.exe: Add support for DIRCMD and sequential qualifier processing.
      cmd.exe: Add support for dir /A filtering.
      cmd.exe: Add errorlevel support for DIR command.
      cmd.exe: Only write 'bytes free' message if a file was displayed during dir.
      Basic implementation of xcopy.
      xcopy: Add support for /W (pause).
      xcopy: Add support for /T (no copy).
      xcopy: Prompt when overwriting files, add /Y and /-Y support.
      xcopy: Add support for COPYCMD override and fix /-y.
      xcopy: Add support for /N (shortname copy).
      xcopy: Add support for /U (target must exist).
      xcopy: Add support for /R (Replace read only files).
      xcopy: Add support for /H (Hidden/System).
      xcopy: Add support for /C (Continue if errors).
      xcopy: Add support for /P (Prompt).
      xcopy: Add support for xcopy /A and /M (archive copies).

Joris Huizer (2):
      amstream: sign-compare fixes.
      advpack: sign-compare fix.

Juan Lang (2):
      advapi32: Implement RegGetKeySecurity with NtQuerySecurityObject.
      wine.inf: Move fake rundll32 to the system directory.

Kai Blin (13):
      netapi32: Downgrade a FIXME and an ERR to a trace to not clutter test output on handled error conditions.
      netapi32: fix a comment.
      netapi32: Get rid of an ugly macro definition only used once.
      netapi32: Downgrade another WARN and ERR to a TRACE.
      netapi32: Remove another macro, replace by more readable functions.
      netapi32: Downgrade more ERRs to TRACEs.
      netapi32/tests: Use skip when skipping tests.
      netapi32: Add test for adding/deleting users.
      netapi32/test: Test the username and password length limits.
      netapi32: Implement NetUserAdd with a dummy user database.
      netapi32: Implement NetUserDel.
      netapi32: Implement NetUserChangePassword.
      netapi32/tests: Make NetGetUserInfo checks language independent.

Kanit Therdsteerasukdi (1):
      comctl32: datetime: Reject invalid flags in DTM_SETSYSTEMTIME.

Ken Thomases (1):
      Revert "gdi32: Disable the freetype mmap sharing on Mac OS.".

Laurent Vromman (1):
      gdi32: WidenPath partial implementation.

Louis Lenders (4):
      kernel32: Print a fixme only once.
      shell32: Define avi resource #163.
      kernel32: Add stub for AttachConsole.
      ntdll: Add NtAreMappedFilesTheSame stub.

Marcin Grześkowiak (1):
      user32: Use charset of currently selected font in DrawTextExA.

Michael Stefaniuc (1):
      quartz: Fix typo that produced an empty if-statement.

Mikołaj Zalewski (14):
      browseui: Remove a test with a wrong pointer.
      shell32/explorer: Support different structure sizes in Shell_NotifyIcon.
      shell32: Don't free user supplied data in Shell_NotifyIcon if GetIconInfo failed.
      shell32: Add some more notify icon defines.
      user32: tests: Using DefWindowProcA with RegisterClassW works under Windows.
      comctl32: CreateToolbarEx should send TB_SETBITMAPSIZE twice.
      comctl32: toolbar: The default button size is 16x16.
      comctl32: toolbar: Test standard buttons size.
      comctl32: toolbar: We shouldn't try to resize standard bitmaps.
      shell32: autocomplete: Don't use sel uninitialized.
      user32: combobox: The text area height should be font_height+4.
      wrc: Add HTML resources support to wrc --verify-translation.
      wrc: Change the format of the output of "wrc --verify-translation".
      comctl32: toolbar: TB_HIDEBUTTON and TB_MOVEBUTTON shouldn't force a recalc.

Nicolas Delcros (1):
      gdi32: Don't write a metafile record for escapes that require output.

Paul Vriens (18):
      kernel32/tests: Use skip.
      wininet/ftp: Simplify FTP_FtpGetFileW a bit.
      wininet/ftp: Move a definition in FTP_FtpFindFirstFileW (Coverity).
      wininet/tests: Expose a problem with FtpGetFile.
      wininet/ftp: Remove unneeded check.
      wininet/ftp: Fix potential memory leak.
      netapi32/tests: Use LoadLibrary where needed and skip.
      shlwapi/path: Proper use of GetProcessHeap().
      oleaut32/tests: Use skip.
      kernel32/profile: Rename a test.
      kernel32/profile: Move GetPrivateProfileSectionA to its own test.
      kernel32/profile: Add a few NULL checks (Coverity).
      kernel32/profile: Some parameter tests for GetPrivateProfileSectionA.
      advapi32/tests: Use skip.
      advapi32/tests: Move check for ERROR_CALL_NOT_IMPLEMENTED to the first call.
      advapi32/tests: Add check to see if LookupAccountNameA is implemented.
      advapi32/tests: Add check to see if ImpersonateSelf is implemented.
      advapi32/tests: Add check to see if SetEntriesInAclW is implemented.

Phil Costin (1):
      wined3d: Ensure all states affected by a change in render_offscreen are marked dirty in ActivateContext.

Piotr Caban (2):
      comctl32: Fixed TreeView_EndEditLabelNow crash.
      comctl32: Set label width after editting.

Rob Shearman (32):
      ole32: Add warnings for failures in the structured storage stream functions.
      ole32: Implement TYMED_FILE for STGMEDIUM marshaling and unmarshaling.
      include: Fix the byte-order in the definition of the USER_MARSHAL_CB_SIGNATURE macro.
      oleaut32: Add some tests for user marshaling a VT_UNKNOWN variant.
      oleaut32: Make the VARIANT_UserUnmarshal tests work on XP.
      oleaut32: Clear the input pvar structure in VARIANT_UserUnmarshal to free the data instead of just initializing.
      ole32: Add a test for StgStreamImpl_SetSize with a non-zero HighPart for the size.
      atl: Add support for the pMapEntries parameter to AtlModuleUpdateRegistryFromResourceD.
      atl: Add support for the registrar parameter of AtlModuleUpdateRegistryFromResourceD.
      winedump: Fix the output for with respect to the dependencies line to match that required by the build system.
      ole32: The 16-bit version of CoDisconnectObject is not compatible with the 32-bit version, so create a separate stub for the former.
      rpcrt4: Implement associations which are intermediary objects that track the relationship between the client and a given endpoint on the server.
      rpcrt4: Make some parameters of non-exported functions const.
      ole32: Add a stubbed out implementation of IClientSecurity to the proxy manager.
      ole32: Add the OXID_INFO structure to dcom.idl.
      ole32: Generate OXID_INFO in the stub manager.
      rpcrt4: Retrieve the maximum token length from the security provider rather than using a hardcoded and rather small limit.
      rpcrt4: Call InitializeSecurityContext from only one function.
      rpcrt4: Call CompleteAuthToken if InitializeSecurityContext returned a code that says it should be called.
      rpcrt4: Use the correct authorization trailer length using information from the security provider.
      ole32: Handle NULL sub-objects correctly in the STGMEDIUM user marshaling functions so that no further data in marshaled or unmarshaled.
      ole32: Add documentation for CreateBindCtx, BindMoniker, GetRunningObjectTable and OleRun.
      ole32: Add documentation for CoGetClassObject and GetClassFile.
      ole32: Move GetClassFile to moniker.c and move OleRun to ole2.c.
      ole32: Register the ProgID for the class and file monikers.
      ole32: Pass the OXID info to RPC_CreateClientChannel and use this to pass the server process ID to channel hooks.
      ole32: Add tests for the standard marshaler's implementation of IClientSecurity.
      ole32: Do a case-insensitive comparison in the count_moniker_matches in the moniker tests as Win9x marshals an all upper-case file name for file monikers.
      ole32: Display the testname for the test for display name in test_moniker.
      ole32: Add some more tests for MkParseDisplayName.
      ole32: Implement MkParseDisplayName.
      rpcrt4: Fixing the using of the auth_len values the wrong way round - PKT_PRIVACY implies the packet will be encrypted, not just signed.

Stefan Dösinger (13):
      wined3d/ddraw: Forward DDSCL_MULTITHREADED to wined3d.
      wined3d: Fix client gl unit selection.
      wined3d: Remove some old stuff.
      wined3d: Activate a context before doing opengl calls.
      wined3d: Store an array of contexts in the swapchain.
      wined3d: Add GL_ATI_envmap_bumpmap to our gl extension header.
      wined3d: Support GL_ATI_envmap_bumpmap for D3DFMT_V8U8.
      wined3d: Store the pixel format in the texture.
      wined3d: General signed format correction without native signed formats.
      wined3d: Handle input modifiers in texcrd with arb shaders.
      wined3d: Implement bem shader instruction.
      wined3d: Disable texture coordinate arrays on the correct unit.
      ddraw: When changing the back buffers also update the render target.

Vitaly Budovski (1):
      wined3d: Check for float texture formats correctly.

Alexandre Julliard
julliard at

More information about the wine-announce mailing list