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

What's new in this release:
  - A number of gdiplus functions.
  - More complete pdh.dll implementation.
  - Support for MSI remote calls.
  - Messaging support in crypt32.dll.
  - 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:

  http://ibiblio.org/pub/linux/system/emulators/wine/wine-0.9.41.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-0.9.41.tar.bz2

Binary packages for various distributions will be available from:

  http://www.winehq.org/site/download

You will find documentation on

  http://www.winehq.org/site/documentation

You can also get the current source directly from the git or CVS
repositories. Check respectively http://www.winehq.org/site/git or
http://www.winehq.org/site/cvs for details.

If you fix something, please submit a patch; instructions on how to do
this can be found at http://www.winehq.org/site/sending_patches

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.40:

Alexander Nicolaysen Sørnes (3):
      comdlg32: fontdlg: Respect the CF_NOSCRIPTSEL flag.
      wordpad: Disable copy/cut in menu when appropriate.
      wordpad: Prompt for saving file changes.

Alexandre Julliard (41):
      configure: Fix the strip command line for Mac OS.
      configure: Export the shared library extension instead of hardcoding .so.
      configure: Don't use a default soname if a library is not found, leave it undefined.
      configure: Don't set LDPATH if not needed.
      configure: Change WINE_GET_SONAME to allow it to be used as a replacement for AC_CHECK_LIB.
      configure: Move the dll checks earlier in the file to make them available for library checks.
      configure: Merge the libhal existence check with the soname check.
      configure: Merge the libcurses existence check with the soname check.
      configure: Merge the libcapi20 existence check with the soname check.
      configure: Merge the libsane existence check with the soname check.
      configure: Make the libcups soname check depend on the header check.
      configure: Make the libjack soname check depend on the header check.
      configure: Make the libfontconfig soname check depend on the header check.
      configure: Make the libssl soname check depend on the header check.
      configure: Make the libjpeg soname check depend on the header check.
      configure: Added checks for libpng.
      ntdll: Add check for null pointer in NtQuerySystemInformation(SystemModuleInformation).
      configure: Merge the libGL existence check with the soname check.
      configure: Merge the libXrandr existence check with the soname check.
      configure: Merge the libXrender existence check with the soname check.
      configure: Merge the libXinerama existence check with the soname check.
      configure: Get rid of the no longer used check for libtxc_dxtn.
      Maketest.rules: Add dependency on IDL headers for crosstest objects.
      configure: Make the libXcursor soname check depend on the header check.
      configure: Make the libXi soname check depend on the header check.
      configure: Merge the libfreetype existence check with the soname check.
      configure: Merge the libX11 and libXext existence check with the soname check.
      configure: We no longer need the shared library extension.
      aclocal: Add macros for logging messages about missing features.
      configure: Move notices about missing features next to the corresponding checks.
      configure: Add a few more notices for missing packages.
      include: Add some definitions for manifest resources.
      winedump: Add RT_MANIFEST resource type.
      configure: Fix typo in liblcms notice check.
      kernel32: Implemented GetTickCount64.
      user32/tests: Flush messages more aggressively in a couple of tests.
      msi/tests: Comment out call to function that is still a stub in Wine.
      user32: Check both A and W proc for previously allocated winprocs.
      user32: Allocate a dual A/W winproc for DefWindowProc.
      dnsapi: Fix some potential infinite loops because of an unsigned loop counter.
      wldap32: Fix some potential infinite loops because of an unsigned loop counter.

Anatoly Lyutin (1):
      cmd: Use toupperW instead of toupper.

Andrew Talbot (10):
      ole32: Constify some variables.
      oleaut32: Constify some variables.
      ole32: Constify some variables.
      winelib: Cast-qual warnings fix.
      ole32: Constify a variable (and fix a typo concerning its level of indirection).
      ole32: Cast-qual warnings fix.
      comdlg32: Cast-qual warning fix.
      ole32: Cast-qual warning fix.
      winedump: Cast-qual warnings fix.
      winedump: Cast-qual warnings fix.

Aric Stewart (4):
      imm32: Implementation of GCS_CURSORPOS.
      include: Add a ddk header for imm.
      imm32: Implement Locking/Unlocking IMC and IMCC functions.
      imm32: Use the COMPOSITIONSTRING in hCompStr.

Ben Hodgetts (2):
      ws2_32: Don't tell users to run Wine as root when sockets not creatable.
      winecfg: Clean up Graphics tab and remove broken neutral translation.

Bernd Buschinski (1):
      gdiplus: Fix test typo/compile error.

Chris Robinson (4):
      winemp3: Check the right macro when defining TRUE.
      winemp3: Use head_check to check for valid headers.
      winemp3: Remove global mpstr pointer.
      winemp3: Remove function declarations with no definition and unused macros.

Damjan Jovanovic (2):
      shell32: DragQueryFile doesn't count the null terminator.
      ntdll: Use the win16 current directory for win16 processes.

Detlef Riekenberg (4):
      setupapi: Avoid crash in SetupCloseInfFile.
      advpack+setupapi: Remove unneeded checks before SetupCloseInfFile.
      ntdll: Avoid crash with WINEDEBUG=+snoop.
      printui: Parse args for PrintUIEntryW.

Dmitry Timoshkov (4):
      gdi32: Do not report an error if a requested to add font is already loaded.
      include: Add HandleToUlong, UlongToHandle, UintToPtr, UlongToPtr compatibility macros.
      ntdll: Remove an artificial limitation in NtQuerySecurityObject.
      shlwapi: Fix some spec entry definitions.

Emmanuel Maillard (1):
      winecoreaudio: MIDIIn_MessageHandler: Fix non-SysEx messages parsing.

Evan Stade (50):
      oleaut32: Added support for decoding some PNG files.
      oleaut32: Save load time format of pictures.
      gdiplus: Use SaveDC, RestoreDC in GdipDrawLineI.
      gdiplus: Call EndPath() in GdipDrawLineI in case there is an open path.
      gdi32: Don't access DC in PolyDraw after releasing handle.
      gdiplus: Added SetPenEndCap.
      gdiplus: Rendering of linecaps.
      gdiplus: Added linecap rendering for GdipDrawBezier.
      gdiplus: Public declaration of GdipSetPenEndCap.
      gdiplus: Added GdipAddPathLine2.
      gdiplus: Added GdipClosePathFigure.
      gdiplus: Added GdipClosePathFigures.
      gdiplus: Added GdipGetPointCount.
      gdiplus: Added GdipGetPathPoints.
      gdiplus: Added GdipGetPathTypes.
      gdiplus: Updated draw_pie to use SaveDC/RestoreDC.
      gdiplus: Updated GdipDrawRectangleI.
      gdiplus: GdipDrawCurve2 now uses SaveDC()/RestoreDC() and end caps.
      gdiplus: Fixed a bug in helper function draw_polybezier.
      gdiplus: Make LineCapArrowAnchor look more like it does in windows.
      gdiplus: Added constructor and destructor test for gdiplus paths.
      gdiplus: Fixed bug in GdipGetPathPoints().
      gdiplus: Added a test for GdipAddPathLine2.
      gdiplus: Changed calls to floor to floorf.
      gdiplus: Moved two inline helpers to the header.
      gdiplus: Added GdipAddPathArc.
      gdiplus: Added GdipAddPathArc test.
      gdiplus: Updated GdipDrawArc to use SaveDC()/RestoreDC()/line caps.
      gdiplus: Updated GdipDrawLines to use SaveDC()/RestoreDC()/end caps.
      gdiplus: Added GdipStartPathFigure.
      gdiplus: Added GdipDrawPath.
      gdiplus: Added draw_polybezier error checking.
      gdiplus: Added draw_polyline error checking.
      gdiplus: Added basic matrix implementation.
      gdiplus: Added GdipTransformMatrixPoints.
      gdiplus: Added GdipCreateMatrix2 test.
      gdiplus: Added GdipTransformPath.
      gdiplus: Added GdipGetPathWorldBounds.
      gdiplus: Fixed memory leak in GdipDeletePath.
      gdiplus: Added GdipTransformMatrixPoints test.
      gdiplus: Added GdipGetPathWorldBounds test.
      gdiplus: Changed the way the direction of the endcap is calculated to make LineCapArrowAnchor direction match Windows better.
      gdiplus: Added GdipSetPenLineJoin.
      gdiplus: Use passed pen in GdipAddPathWorldBound.
      gdiplus: Added more GdipGetPathWorldBounds tests.
      gdiplus: Improved GdipGetPathWorldBounds handling of both matrix and pen's effect on bounding box.
      gdiplus: Added GdipGetPathFillMode.
      gdiplus: Added GdipResetPath.
      gdiplus: Added GdipAddPathPath.
      gdiplus: Added GdipAddPathPath test.

Francois Gouget (3):
      ddraw/tests: Fix compilation on systems that don't support nameless unions.
      Assorted spelling fixes.
      ddraw/tests: Fix compilation on systems that don't support nameless unions.

H. Verbeet (8):
      wined3d: Call IWineD3DDeviceImpl_FindTexUnitMap for cards without support for NV_REGISTER_COMBINERS as well.
      wined3d: Only call activate_dimensions() if the texture is used.
      wined3d: Only set GL_SHADER_OPERATION_NV to GL_NONE for supported units.
      wined3d: In tex_colorop() & tex_alphaop(), only check the mapped stage against GL_LIMITS(textures) if the texture is used.
      wined3d: Cleanup shader_glsl_load_psamplers().
      wined3d: Implement dsx & dsy shader instructions.
      wined3d: Advertise A32B32G32R32F render target support.
      wined3d: Advertise VTF support.

Hans Leidekker (9):
      dwmapi: Add a stub implementation for DwmIsCompositionEnabled.
      pdh: Add tests for opening and closing queries.
      pdh: Add an uptime counter source based on GetTickCount.
      pdh: Add tests for Pdh{Add, Remove}Counter and PdhCollectQueryData.
      pdh: Implement and test PdhSetCounterScaleFactor and PdhGetFormattedCounterValue.
      pdh: Implement and test PdhGetRawCounterValue.
      pdh: Implement and test PdhGetCounterInfo{A, W} and PdhGetCounterTimeBase.
      pdh: Use GetTickCount64 instead of GetTickCount.
      pdh: Fix two typos.

Huw Davies (6):
      winex11.drv: Pass root_window to XCreatePixmap to avoid BadDrawable errors.
      winex11.drv: Move the PictFormats into an array.
      winex11.drv: Use global Pictures for the tiles.
      gdi32: Using a bitmap font as the fallback sans serif is a very bad idea.
      kernel32: Swap incorrect use of buffers.
      kernel32: SetNamedPipeHandleState() is a stub, so for now don't check its return value.

James Hawkins (56):
      msi: Implement MsiSourceListGetInfoA.
      msi: Add tests for MsiSourceListGetInfo.
      msi: Validate MsiSourceListGetInfo parameters.
      msi: Return ERROR_BAD_CONFIGURATION if the SourceList key does not exist.
      msi: Return ERROR_SUCCESS if the PackageName property is not present.
      msi: Add the IWineMsiRemotePackage interface.
      msi: Add the IWineMsiRemoteCustomAction interface.
      msi: Handle remote calls to MsiGetActiveDatabase.
      msi: Handle remote calls to MsiGetProperty.
      msi: Handle remote calls to MsiSetProperty.
      msi: pcchValue represents the length of szValue in TCHARS, not bytes.
      msi: Add support for the MSICODE_PATCH option.
      msi: Add tests to show when the SourceList is published to the registry.
      msi: PackagePath must also include the package name.
      msi: Delay publishing of the SourceList until the PublishProduct action.
      msi: Unpublish the product when it is entirely removed.
      msi: Only publish the product if at least one feature is to be installed.
      msi: Set the WindowsInstaller value in RegisterProduct instead of PublishProduct.
      msi: Add tests for MsiQueryFeatureState.
      msi: Open the correct key and return INSTALLSTATE_ADVERTISED if it's missing.
      msi: Return INSTALLSTATE_ADVERTISED if the component list is empty.
      msi: Return INSTALLSTATE_BADCONFIG if we can't decode the first component.
      msi: Read the components state directly from the registry.
      msi: Handle remote calls to MsiProcessMessage.
      msi: Handle remote calls to MsiDoAction.
      msi: Handle remote calls to MsiSequence.
      msi: Handle remote calls to MsiGetTargetPath.
      msi: Handle remote calls to MsiGetSourcePath.
      msi: Handle remote calls to MsiSetTargetPath.
      msi: Handle remote calls to MsiGetMode.
      msi: Handle remote calls to MsiSetFeatureState.
      msi: Handle remote calls to MsiGetFeatureState.
      msi: Handle remote calls to MsiGetComponentState.
      msi: Handle remote calls to MsiSetComponentState.
      msi: Handle remote calls to MsiGetLanguage.
      msi: Handle remote calls to MsiSetInstallLevel.
      msi: Fix use of BSTRs.
      msi: Handle remote calls to MsiFormatRecordW.
      msi: Forward MsiFormatRecordA to MsiFormatRecordW.
      msi: Handle remote calls to MsiEvaluateCondition.
      msi: Enable remote custom actions.
      msi: Match the changes made by the hand-generated and API-generated transforms.
      msi: Delete msifile after the tests.
      msi: Test adding columns with data in a transform.
      msi: Handle adding columns in transforms.
      msi: Check for NULL transform, as there may be no transforms for the _Columns or _Tables tables.
      msi: Fix current _Property table tests and add more tests.
      msi: Add tests for adding properties in a transform.
      msi: Add tests for adding properties with a transform during an install.
      msi: Fix a copy and paste error.
      msi: Reload properties as they may have been changed by a transform.
      msi: Fix automation.c compile for MSVC.
      msi: Fix three tests that were failing in Windows.
      msi: Fix compilation in MSVC.
      msi: Add a test for installing from different current working directories.
      msi: Add a test for running an ADMIN install.

Juan Lang (44):
      crypt32: Use skip to avoid failures where support is missing.
      crypt32: Don't fail when CryptVerifyCertificateSignatureEx is missing, use skip (and get rid of unnecessary indenting).
      crypt32: Accept OSS errors.
      crypt32: Accept OSS errors as well.
      crypt32: Accept ERROR_BADKEY in addition to ERROR_INVALID_HANDLE.
      crypt32: Accept ERROR_INVALID_PARAMETER in addition to ERROR_PATH_NOT_FOUND (and remove no-longer-useful checkFileStoreFailure).
      crypt32: Pass function pointers to CryptMsgBase_Init rather than rely on callers to initialize them.
      crypt32: Add more tests for opening a data message for encoding.
      crypt32: Make a copy of a passed-in stream info rather than assuming the pointer will live forever.
      crypt32: Test that inner content OID is ignored for data messages.
      crypt32: Add tests for streamed encoding of data messages.
      crypt32: Test and fix CryptMsgGetParam for streamed messages.
      crypt32: Add a stub decode message implementation.
      crypt32: Implement getting the type of a decode message.
      crypt32: Add some tests for updating decode messages.
      crypt32: More decode message update tests.
      crypt32: Implement CryptSIPLoad.
      crypt32: Implement CryptSIPGetSignedDataMsg, CryptSIPPutSignedDataMsg,
      rsaenh: Get rid of the hash idle state, native doesn't behave as though it has one.
      crypt32: Make some encoding functions available outside encode.c.
      crypt32: Implement streamed encoding of definite-length data messages.
      crypt32: Add open tests for hash messages.
      crypt32: Add tests for updating hash messages opened to encode.
      crypt32: Test opening hash messages to encode with streaming.
      crypt32: Add a stub hash message implementation.
      crypt32: Add tests for getting hash message params.
      crypt32: Implement getting a hash message's hash value.
      crypt32: Simplify hash value tests.
      crypt32: Test updating hash messages with NULL stream output function.
      crypt32: Partially implement updating hash messages.
      crypt32: Add more missing defines.
      crypt32: Implement getting hash message version.
      crypt32: Add tests for hash message encoding.
      crypt32: Copy data in hash message update.
      crypt32: Add a helper function to copy params.
      crypt32: Don't check if msg is NULL, tests show native doesn't either.
      crypt32: Detached hash messages don't contain the content, so don't make a copy of it.
      crypt32: Add tests for retrieving the content of a non-finalized (detached) message.
      crypt32: Introduce an algorithm id encoding function that encodes missing parameters as NULL
      crypt32: Implement retrieving a hashed message's content.
      crypt32: Relax a test, the specific error isn't so important.
      crypt32: Change finalized from a boolean to a state and use it to simplify message updating.
      crypt32: Introduce an updated state, and use it to remove boolean "begun".
      crypt32: Update comments about hash message version numbers.

Julio E. Gonzalez P (1):
      ntdll: Add PYT and PYST time zones.

Kai Blin (1):
      ws2_32: Handle IPv6 in WSAStringToAddress.

Ken Thomases (6):
      winecoreaudio: Enable DirectSound HEL mode for output.
      winecoreaudio: Enable DirectSound HEL mode for input.
      winecoreaudio: Improve safety of iterations when returning WAVEHDRs to client.
      winecoreaudio: Correct the AudioBufferList allocated for input.
      winecoreaudio: Protect against AudioUnitRender clobbering our buffer list.
      winecoreaudio: Report format error on sample rate mismatch when opening wave-in device.

Kovács András (1):
      d3d10: Add stub for d3d10.dll.

Lei Zhang (2):
      start.exe: Put double quotes around arguments with spaces.
      winex11.drv: Remove old dnd code.

Maarten Lankhorst (6):
      winealsa: Silence the buffer warning more often.
      dsound: Revert "dsound: Disable property sets if hardware doesn't support it.".
      dsound: Clean up some unused variables.
      dsound: Remove some more unused variables.
      dsound: Fix division by zero in DSOUND_Calc3DBuffer.
      dsound: Simplify IDirectSoundBufferImpl_GetCurrentPosition.

Mark Adams (2):
      iphlpapi: Add support for GetTcpTable on Mac OS X.
      iphlpapi: Fix byte ordering of Linux ports.

Markus Gömmel (2):
      comctl32/datetime: Added a missing InvalidateRect to update display after WM_ENABLE.
      user32: Center MessageBox dialogs to desktop, as Windows does.

Michael Stefaniuc (2):
      ntdll: Fix missing unlock on error path. Found by Smatch.
      msvcrt: Remove superfluous casts of void pointers to other pointer types.

Mikołaj Zalewski (2):
      comctl32: toolbar: The iImage in TBN_GETDISPINFO should be initialized to -1.
      comctl32: toolbar: We should send TBN_GETDISPINFOW even for ANSI controls (with testcase).

Misha Koshelev (7):
      gdi32: Slightly simplify result handling in PolyDraw.
      urlmon/tests: Make http protocol mime type test pass on native.
      urlmon: Improve ObtainUserAgentString conformance to native.
      urlmon/tests: Add tests for ObtainUserAgentString.
      urlmon: Implement HttpProtocol.
      urlmon: Fix HttpProtocol_Start and strndupW to work properly with native wininet.
      urlmon: Make HttpProtocol conform with native wininet on wine.

Paul Vriens (29):
      advapi32/tests: Add tests for OpenSCManagerA.
      user32/tests: Use skip.
      user32/tests: Use skip.
      advapi32/tests: Use skip when we don't have enough rights.
      advpack/tests: Create the temporary inf-file in a directory where we are allowed to write.
      kernel32/tests: Use skip when functions are not available.
      kernel32/tests: Don't crash on win98.
      kernel32/tests 2/2: Use skip for not implemented function.
      advapi32/tests: Use skip for not implemented function.
      secur32/tests: Use skip when functions are not available.
      advapi32/tests: Add tests for OpenServiceA.
      advapi32/tests: Add tests for CloseServiceHandle.
      ddraw/tests: Use skip instead of trace.
      ddraw/tests: Use skip instead of trace.
      kernel32/tests: Add a forgotten if statement.
      advapi32: Handle to Service Control Manager is checked first.
      advapi32: Create specific access rights for service control manager handles.
      gdiplus: Don't use struct member before NULL check (Coverity).
      advapi/service: Simplify DeleteService by using RegDeleteTree.
      advapi/service: Fix possible handle leak.
      advapi/service: First tests (and fixes) for CreateService.
      advapi/service: Check if we have enough access rights to create a service.
      advapi/service: Check for empty servicename and binaryname.
      programs/cmd: Do the assignment after the return to avoid a missing free() (Coverity).
      advapi/service: Create specific access rights for service handles.
      advapi/service: Check servicetype and starttype.
      advapi32/tests: Use skip instead of trace.
      crypt32/tests: Skip test if we don't have enough rights.
      mscms/tests: Skip tests if we don't have enough rights.

Pedro Araujo Chaves Jr (1):
      winspool.drv: Fallback to the first found printer as default printer.

Peter Dons Tychsen (1):
      winex11: Fix X11DRV_DIB_GetImageBits() when target bitmaps are larger than fetched.

Rob Shearman (9):
      secur32: Don't free the password in InitializeSecurityContextW to enable the credentials handle to be re-used in further InitializeSecurityContextW calls.
      secur32: Add tests for multiple use of a credential handle.
      rpcrt4: Translate between NCA and RPC status codes.
      rpcrt4: Call RPCRT4_Send directly from PKT_RECEIVE handler in server.
      rpcrt4: Return a fault packet if the proc num exceeds the index of the last function available for the interface.
      ntdll: The impersonation level in NtDuplicateToken should be taken from the SecurityQualityOfService member of ObjectAttributes if present.
      rpcrt4: Make binding to an interface a function of RpcAssoc instead of
      msxml3: Implement IXMLDOMNode::get_text for CDATA, processing instruction and comment nodes.
      mshtml: Implement HTMLElement_insertAdjacentHTML and HTMLElement_insertAdjacentText.

Romain Iehl (3):
      dsound: Fix bug preventing correct calculation of the sound parameters
      dsound: Simplify the calculation of sound attenuation due to distance.
      dsound: Correct field access.

Stefan Dösinger (19):
      wined3d: rsq and rcp use the .w component if no swizzle is given.
      wined3d: Select onscreen contexts based on the thread id.
      wined3d: Create multiple contexts for onscreen render targets.
      ddraw: Z buffers can be attached to offscreen d3d devices.
      ddraw: Fix an incorrect iface->impl cast.
      ddraw: Materials in the execute buffer are handles.
      ddraw: D3DOP_BRANCHFORWARD includes the current instruction size.
      ddraw: Read the world matrix correctly.
      ddraw: Implement IDirect3DViewport3::TransformVertices.
      wined3d: Offscreen rendering from foreign threads.
      ddraw: Update the wined3d matrix if a current matrix handle is modified.
      ddraw: Y coords are inversed.
      wined3d: Do not set streamIsUP in DrawPrimitiveStrided.
      wined3d: Implement high order patches.
      wined3d: Initialize surfaces at creation.
      wined3d: Print the fixed and unfixed vertex warning only when needed.
      wined3d: Add CTXUSAGE_CLEAR context usage.
      wined3d: Make ActivateContext a bit smaller.
      wined3d: Store the last active thread.

Thomas Weidenmueller (2):
      shell32: Set current directory when executing files in a shell view.
      shlwapi: Use publicly defined structure DATABLOCK_HEADER instead of redefining it locally.

Tim Schwartz (1):
      net.exe: Converted strings to resources.

Vitaliy Margolen (9):
      dinput: Correct test - use appropriate mouse state structure.
      dinput: Keep the list of all the dinput devices created for each IDIrectInput object.
      dinput: Keep a list of all IDirectInput objects and check it instead of refcount to create/destroy hook thread.
      dinput: Export Mouse and Keyboard GUIDs.
      dinput: Handle multiple keyboard and mouse devices.
      dinput: Rename set_dinput_hook and call it from the base class.
      dinput: Clear static variables after releasing hooks.
      dinput: Convert IDirectInput into multi-interface object.
      dxdiagn: Add reporting of some display related information.

--
Alexandre Julliard
julliard@winehq.org
