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

What's new in this release:
  - Completed I/O completion.
  - Improved user credentials management, including Mac Keychain support.
  - More Valgrinding.
  - 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.50.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-0.9.50.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.49:

Alex Villacís Lasso (6):
      user32: Fix returned value of LB_DIR.
      user32: LB_DIR with standalone DDL_DRIVES implies DDL_EXCLUSIVE.
      user32: DlgDirSelect tacks on a period on filenames without ext.
      user32: Conformance tests for LB_DIR on listboxes.
      user32: DlgDirList converts path specification to uppercase.
      user32: Conformance tests for DlgDirList and DlgDirSelectEx.

Alexander Nicolaysen Sørnes (5):
      wordpad: Refer to main menu using IDM_MAINMENU.
      wordpad: Fix print preview bar.
      wordpad: Move printing functions to a separate file.
      user32: Change to modern Windows colours.
      winecfg: Some fixes for Norwegian translation.

Alexandre Julliard (19):
      oleaut32: Fixed asm proxys to support more than 128 methods.
      user32: Remove a few traces that only duplicate the relay information.
      include: Added definition for SEE_MASK_NOASYNC.
      shell32: Pass some of the ShellExecute flags through InvokeCommand.
      shell32: Don't wait for the command to terminate in ShellLink_InvokeCommand.
      winedbg: Print a backtrace in --auto mode.
      comctl32: Fixed handling of monochrome icons in image lists.
      wine.inf: Some dlls need to be registered before the others.
      wine.inf: Register inetcomm.dll.
      ntdll: Initialize the PEB LoaderLock pointer.
      ntdll: Send the exit code to the server on failed initialization.
      ntdll: Unblock signals in process init only after the dlls have been imported.
      libport: Work around Mac OS execve() breakage.
      kernel32/tests: Don't crash the test if GetThreadContext fails.
      winex11.drv: Make sure to erase the dragging frame before moving the window.
      wsock32: Forward AcceptEx and GetAcceptExSockaddrs to mswsock.
      server: When merging mouse messages ignore the window if it isn't set.
      wined3d: Add printf format checking to the shader_addline function and fix resulting warnings.
      libwine: Work around the Mac OS dynamic loader support for PE files.

Alistair Leslie-Hughes (10):
      clusapi: Corrected value in GetNodeClusterState.
      msxml3: Return E_INVALIDARG on bad parameter.
      msxml3: Enable test for bad argument / fix memory leak.
      msxml: Allow insertBefore to have a NULL output parameter.
      msxml: Test for insertBefore with a NULL output parameter.
      msxml: Added test for get_text.
      msxml: Always return a string in get_text.
      msxml: Implement createTextNode.
      msxml: Tests for createTextNode.
      urlmon: The callback parameter can be null, check pointer before using.

Anatoly Lyutin (1):
      msi: Fix invalid SQL query.

Andrew Talbot (12):
      user32: Constify some variables.
      user32: Constify a variable.
      user32: Constify a variable.
      user32: Constify some variables.
      user32: Constify some variables.
      user32: Constify some variables.
      comctl32: Fix a typo.
      user32: Fix a typo.
      comdlg32: Use logical OR not bitwise OR.
      dinput: Use bitwise NOT not logical NOT.
      gdi32: Fix a typo.
      advapi32: Fix a typo.

Andrey Turkin (5):
      ntdll: Add some I/O completion tests.
      server: Allow async i/o operations to send completion messages.
      ws2_32: Make certain winsock functions generate i/o completion messages.
      ntdll: Make async i/o functions generate completion messages.
      server: Pass Information field from async I/O APCs.

Aric Stewart (3):
      winecoreaudio: Implement WIDM_GETPOS.
      winmm: Correct check for MIXER_GETLINECONTROLSF_ONEBYTYPE in mixerGetLineControlsA.
      coreaudio: Verify valid lineId in MIXER_GETLINECONTROLSF_ONEBYTYPE.

Bang Jun-young (1):
      olecli32: Fix invalid syntax.

Dan Kegel (2):
      advapi32: Fix buffer overrun in tests/registry.c:wine_debugstr_wn().
      user32: Implement return value for DdeClientTransaction for XTYP_EXECUTE.

David Adam (27):
      d3dx8: Implement D3XMatrixInverse.
      d3dx8: Implement D3XMatrixMultiplyTranspose.
      d3dx8: Implement D3XMatrixVec3Project.
      d3dx8: Implement D3DXVec3Unproject.
      d3dx8: Implement D3DXMatrixAffine Transformation.
      d3dx8: Implement D3DXPlaneNormalize.
      d3dx8: Implement D3DXPlaneIntersectLine.
      d3dx8: Implement D3DXMatrixShadow.
      d3dx8: Implement D3DXMatrixReflect.
      d3dx8: Implement D3DXPlaneFromPointNormal.
      d3dx8: Implement D3DXPlaneFromPoints.
      d3dx8: Implement D3DXPlaneTransform.
      d3dx8: Implement D3DXColorAdjustSaturation.
      d3dx8: Implement D3DXColorAdjustContrast.
      d3dx8: Implement D3DXQuaternionMultiply.
      d3dx8: Implement D3DXQuaternionInverse.
      d3dx8: Implement D3DXQuaternionSlerp.
      d3dx8: Implement D3DXQuaternionSquad.
      d3dx8: Implement D3DXQuaternionBaryCentric.
      d3dx8: Implement D3DXQuaternionToAxisAngle.
      d3dx8: Implement D3DXQuaternionRotationAxis.
      d3dx8: Implement D3DXQuaternionRotationMatrix.
      d3dx8: Implement D3DXQuaternionRotationYawPitchRoll.
      d3dx8: Implement D3DXQuaternionLn.
      d3dx8: Implement D3DXQuaternionExp.
      d3dx8: Implement D3DXMatrixTransformation.
      include: Header files for d3dx9_xx.

Detlef Riekenberg (2):
      shell32: Some undocumented defines and functions are now in the PSDK.
      comctl32: Fix a typo in a debug message.

Divan Burger (3):
      user32: Fix colours to match exactly with Windows 2000.
      user32: Change the desktop colour and pattern to match win2k.
      user32, wine.inf: Enable title bar gradients and match colours with win2k.

Dmitry Timoshkov (5):
      winex11.drv: Get rid of unused variables.
      server: Make timer id allocation algorithm conform to the Windows one.
      kernel32: Set last error to ERROR_ALREADY_EXISTS if CreateFile succeeds and file existed before for CREATE_ALWAYS and OPEN_ALWAYS.
      kernel32: Mask out FILE_ATTRIBUTE_NOT_CONTENT_INDEXED to prevent a test failure under Windows.
      winex11.drv: Use display device guid managed by explorer.

EA Durbin (4):
      kernel32: Add stub implementation of GetConsoleInputExeNameA.
      kernel32: Add stub implementation of GetConsoleInputExeNameW.
      kernel32: Add stub implementation of GetConsoleKeyboardLayoutNameA.
      kernel32: Add stub for GetConsoleKeyboardLayoutNameW.

Francois Gouget (17):
      wined3d: Add trailing '\n's to two shader_addline() calls.
      ntoskrnl: Remove trailing spaces in Wine traces.
      acledit: Add wfext.h.
      d3dx8: Make d3dx8math.h C++ compatible.
      rpcrt4: Add an API documentation stub to make winapi_check happy.
      cfgmgr32: Flesh out cfgmgr32.h a bit more and fix the corresponding functions.
      ctapi32: Use quotes to include our headers. Fixes winapi_check warnings.
      user32/tests/msg: Don't mess up lParam as it is passed on to DefWindowProcA().
      advpack: Skip some tests if not in interactive mode because they pop up dialogs.
      rpcrt4: Add some missing prototypes and better match the PSDK types.
      kernel32/tests: Fix a signed/unsigned warning.
      winex11: Add the trailing '\n' to a Wine trace.
      d3d9/tests: Fix the trailing '\n' in an ok() call.
      user32/tests: Add the trailing '\n' to an ok() call.
      ntdll/tests: Fix compilation on systems that don't support nameless unions.
      crypt32/tests: Get the tests running on Windows 98.
      d3dx8/tests: Fix compilation on systems that don't support nameless unions.

Gerald Pfeifer (21):
      ws2_32/tests: Fix error checking.
      comctl32: Remove check which never triggers.
      taskmgr: Move out-of-domain checking into PerfDataGetProcessorUsage() and PerfDataGetProcessorSystemUsage().
      winedbg: Fix type of loop variable in types_udt_find_element().
      rsaenh/tests: Fix const-ness of parameters to printBytes().
      configure: Fix typos in warning messages.
      advapi32: Remove untriggerable check.
      user32: Fix variable type in SCROLL_HandleScrollEvent().  Remove useless check in SCROLL_SetScrollInfo().
      oleaut32: Simplify two conditions based on the fact that unsigned variables cannot be negative.
      oleaut32: Simplify two conditions based on the fact that unsigned variables cannot be negative.
      ntdll: Simplify condition in RtlGetAce() based on variable (un)signedness.
      netapi32: Remove one tests and simplify another based on the limited range of unsigned.
      winedos: Use DWORD instead of long for return values of SetFilePointer.
      itss: Avoid checking an unsigned value for < 0.
      wined3d: Rewrite condition in vshader_program_add_param() to actually distinguish between two cases.
      inetcomm: Fix error check in InternetTransport_Connect().
      ntdll: Fix computation in enumerate_key().
      kernel32: Handle default case in Local32_FromHandle().
      winedbg: Warning fixes.
      user32: Reduce scope of variable in ICO_ExtractIconExW() and initialize it.
      gdi32: Fix the type of two loop variables.

Hans Leidekker (8):
      pdh: Make two tests pass on Vista.
      snmpapi: Make a test pass on Vista.
      wininet: Fix two handle leaks in the test.
      kernel32: Loosen requirements on what QueryDosDevice returns.
      wininet: Fix a number of problems with InternetSetCookie.
      wininet: Fix a number of problems with InternetGetCookie.
      wininet: Initialize path buffer in InternetSetCookie.
      kernel32: Add stub implementations for FindFirstVolume{A, W}.

Huw Davies (12):
      inetcomm: Register a couple more classes.
      inetcomm: Add a stub MimeBody implementation.
      inetcomm: Add a class factory for MimeBody.
      inetcomm: Add a test for MimeBody.
      msxml3: Don't leak an interface on failure.
      inetcomm: Copy RFC822 headers into a memory block for later parsing.
      inetcomm: Parse headers into a list.
      inetcomm: Unfold headers.
      inetcomm: Store a header's parameters as a list.
      inetcomm: Implement IMimeBody:IsContentType.
      inetcomm: Implement IMimeBody:[G|S]etCurrentEncoding.
      inetcomm: Implement IMimeBody:SetData.

Jacek Caban (34):
      mshtml: Reset focus after loading the page in edit mode.
      mshtml: Remove nsIWebBrowserFocus_Activate useless call.
      hlink.idl: Added Hlink[Get|Set]SpecialReference declaration.
      shlwapi: Added SHPackDispParamsV implementation.
      shlwapi: Added SHPackDispParams implementation.
      shlwapi: Added SHPackDispParams test.
      shlwapi: Reimplement IUnknown_CPContainerInvokeParam on top of SHPackDispParams.
      shlwapi: Fixed SHPackDispParamsV spec declaration.
      hlink: Added HlinkGetSpecialReference implementation.
      include: Added isguids.h.
      shdocvw: Register CLSID_InternetShortcut.
      shdocvw: Set default home and search page.
      mshtml: Fixed handling channels without container and necko channel.
      shdocvw: Added WebBrowser::get_Application implementation.
      shdocvw: Return correct error from WebBrowser::Quit.
      mshtml: Move IOleInPlaceFrame::SetActiveObject call to separated function.
      mshtml: Use call_set_active_object in exec_editmode.
      mshtml: Always initialize output in exec_fontname.
      mshtml: Reload page in exec_editmode if available.
      mshtml: Added more loading tests.
      mshtml: Change FIXME that is usually invalid to TRACE.
      hlink: Added HlinkUpdateStackItem stub.
      hlink: Move common includes and function declarations to header file.
      hlink: Wrap heap functions.
      hlink: Added HlinkCreateExtensionServices implementation.
      hlink: Added HlinkCreateExtensionServices tests.
      urlmon: Wrap heap functions.
      mshtml: Store nsIDOMCSSStyleSheet in HTMLStyleSheet object if available.
      mshtml: Added IHTMLStyleSheetsCollection::item implementation.
      mshtml: Added IOleCommandTarget implementation to HTMLTxtRange.
      kernel32: Terminate child process in virtual tests.
      shdocvw: Silence common invalid QueryInterface FIXMEs.
      mshtml.idl: Added IHTMLTable declaration.
      mshtml: Added IHTMLTable interface stub implementation.

James Hawkins (25):
      msi: Test the default tables added by MsiOpenDatabase.
      msi: Create the _Tables table when creating a database.
      msi: Return a remote interface to the database in a custom action.
      msi: Delete the uninstall key when the product is removed.
      msi: Test the Uninstall registry entries.
      msi: Implement the VolumeSelectCombo control.
      msi: Set the file to NULL when running the directory search.
      msi: Fix the condition for checking a drive.
      msi: Simplify ready_media.
      msi: Add tests for situations involving missing cabinets.
      msi: Only check the presence of the cabinet if the file is compressed.
      msi: Don't ignore the error returned by ready_media.
      msi: Don't check for a cabinet's existence if it's embedded in the package.
      msi: Check the cabinet's full path for existence, not just the cabinet name.
      msi: Add tests for MsiGetFileHash and clean up the existing tests.
      msi: Verify the szFilePath parameter of MsiGetFileHash.
      msi: Set the file contents of the file hash test file explicitly.
      msi: Check the destination file's hash and skip that file if the hash matches.
      msi: Only check the volume label if it's different than the first media's volume label.
      msi: Downgrade a FIXME to a WARN.
      msi: Downgrade an ERR to a WARN.
      msi: Fix the condition of a FIXME.
      msi: Downgrade an ERR to a WARN.
      msi: Make sure attr is valid before checking for the directory bit.
      msi: Don't check for the media or cabinet if the cabinet is internal.

Jonathan Ernst (12):
      shell32: Updated French translation.
      cmd: Updated French translation.
      regedit: Updated French translation.
      credui: Updated French translation.
      localui: Updated French translation.
      net: Updated French translation.
      xcopy: Updated French translation.
      avifil32: Updated French translation.
      wine.desktop: Updated French translation.
      wordpad: Updated French translation.
      cmd: Updated French translation.
      credui: Updated French translation.

José Manuel Ferrer Ortiz (1):
      winefile: Spanish resource file updated.

Juan Lang (32):
      rsaenh: Check pad bytes for consistency when decrypting.
      iphlpapi: Default to a default gateway when choosing the best route.
      iphlpapi: Don't override return value from getTcpTable.
      iphlpapi: Don't allocate gobs of memory when the TCP entry table is empty.
      iphlpapi: Don't allocate gobs of memory when the route table is empty.
      iphlpapi: Don't allocate gobs of memory when the ARP table is empty.
      iphlpapi: Don't allocate gobs of memory if the UDP table is empty.
      iphlpapi: Don't allocate gobs of memory if interface table is empty.
      iphlpapi: Don't allocate gobs of memory if the IP address table is empty.
      iphlpapi: Don't allocate gobs of memory if there are no non-loopback interfaces.
      iphlpapi: Avoid HEAP_ZERO_MEMORY where it isn't needed.
      iphlpapi: Correct copy/paste error in GetTcpTable.
      iphlpapi: Correct confusing indentation in GetTcpTable.
      shell32: Dynamically allocate buffer for command parameters.
      shell32: Use a helper function for executing a class.
      shell32: Use helper function to translate ID list.
      shell32: Dynamically allocate directory buffer.
      shell32: Use a helper function for executing a found executable.
      shell32: Dynamically allocate buffer for quoted command.
      shell32: Don't overwrite the caller's buffer when doing a dde connection.
      shell32: Constify some parameters.
      shell32: Dynamically allocate buffer for command.
      shell32: Use helper function to execute a URL.
      shell32: Dynamically allocate memory for executing an URL.
      shell32: Use more restricted registry rights when quering values.
      shell32: Remove a bad comment.
      crypt32: Implement finding an existing certificate in a store.
      crypt32: Add CERT_STORE_ADD_NEWER support to CertAddCertificateContextToStore.
      rsaenh: Empty container names are allowed for CRYPT_VERIFYCONTEXT contexts.
      wincrypt.h: Add values for KP_PADDING key param.
      crypt32: Support getting and setting the KP_PADDING key param.
      crypt32: Support setting the salt value through KP_SALT_EX.

Kai Blin (1):
      ws2_32: Cope with buggy apps passing setsockopt optval as a value instead of a pointer.

Kirill K. Smirnov (1):
      wineconsole: Do not show "Apply" button - it is not used anyway.

Lauris Kaplinski (1):
      wined3d: Fixed potential reference of freed backBuffer array in IWineD3DDeviceImpl_SetFrontBackBuffers.

Lei Zhang (4):
      shell32: rename My Video to My Videos.
      shell32: Don't crash if $HOME is not set.
      shell32: Perform copy in UnixFolder_ISFHelper_CopyItems.
      shell32: Only notify immediate parent.

Lionel Debroux (4):
      msvcrt: Fix memory leak (found by Smatch).
      ntdll: Trace arena magics (may help debugging some heap corruptions).
      msvcrt: Fix _Aligned_offset_realloc (move correct block of memory); add a comment to explain why.
      msvcrt: Test more offsets for _aligned_offset_realloc (especially offset > alignment).

Louis Lenders (1):
      advapi32: Add stub for CreateProcessWithLogonW.

Maarten Lankhorst (4):
      dsound: Implement AngleBetweenVectorsDeg as a call to AngleBetweenVectorsRad.
      dsound: Make AngleBetweenVectorsRad when vectors have no magnitude.
      dsound: Reassign pointers back to null when destroying structure.
      dsound: Return primary_done when no mixing needs to be done instead of 0.

Marco Schuster (1):
      wined3d: Added a card ID for a 8600 Mobile GT.

Marcus Meissner (1):
      shell32: GetModuleFileNameW gets number of WCHARs not bytes.

Michael Stefaniuc (17):
      msvcrt/tests: Remove redundant NULL check before free(). Found by Smatch.
      netapi32: Remove redundant NULL check before HeapFree(). Found by Smatch.
      localspl/tests: Use ANSI function declarations.
      shell32: Fix a mem leak on an error path. Found by Smatch.
      qcap: Fix a mem leak on an error path. Found by Smatch.
      quartz: Fix memory leaks on error paths. Found by Smatch.
      comdlg32: Remove duplicate includes.
      ntdll: Remove duplicate includes.
      kernel32: Remove duplicate includes.
      setupapi: Remove duplicate includes.
      dlls: Remove duplicate includes.
      tools: Remove duplicate includes.
      wininet/tests: Do not compare the return value of socket() with 0. Use INVALID_SOCKET instead.
      rpcrt4: socket() returns -1 on error so check the return value against that.
      shdocvw: Rename the wrappers around HeapAlloc() &Co to use the new standard naming.
      dnsapi: Rename the wrappers around HeapAlloc() &Co to use the new standard naming.
      urlmon: Rename the wrappers around HeapAlloc() &Co to use the new standard naming.

Misha Koshelev (6):
      urlmon: Release IInternetProtocolSink and BindInfo on request handle closure, not on first handle closure.
      urlmon: Fix PROTOCOLDATA message passing in IInternetProtocolSink interface of Binding.
      msi: automation: Fix automation object reference counts when objects are created.
      msi/tests: Close opened service handles.
      msi/tests: automation: Add missing VariantClear.
      msi: automation: Fix ITypeInfo leak.

Patrick Moran (1):
      msiexec: Fix atou() return value mistake.

Paul Millar (1):
      libwine: Fix naked getuid() to allow compilation under MinGW.

Paul Vriens (3):
      dsound/tests: Fix tests after addition of 24/32 bits buffer tests.
      dsound/tests: Fix test failures on WinXP.
      dsound/tests: Better check to see if class is not available.

Peter Beutner (2):
      ntdll: Don't try to handle kill(SIGTRAP).
      ntdll: Better trap exception handling.

Rob Shearman (85):
      ole32: Add a missing IStream_Release to test_CoMarshalInterThreadInterfaceInStream.
      ole32: Add a missing IStream_Release to test_same_apartment_unmarshal_failure.
      ole32: Fix memory leak in ItemMonikerImpl_Save.
      ole32: Add a missing IMoniker_Release to test_MkParseDisplayName.
      ole32: Store the InterfaceList object in the IEnumMoniker object.
      ole32: Fix a memory leak in get_moniker_comparison_data.
      ole32: Fix a leak of the IBindCtx object in FileMonikerImpl_IsEqual.
      ole32: Fix a memory leak of moniker in RunningObjectTableImpl_Register.
      ole32: Fix a memory leak in DataCacheEntry_Save.
      ole32: Fix a leak of a moniker object in test_default_handler.
      ole32: Initialise data_cf in DataCacheEntry's to zero to indicate no data present on creation.
      ole32: Free the memory associated with the open DLL list on unloading of ole32.
      shell32: Fix the length calculation of the pidl in ILSaveToStream by using the helper function ILGetSize.
      shell32: Fix a memory leak in Stream_WriteLocationInfo.
      ole32: Disconnect the IRemUnknown stub buffer before destroying it to release the reference on the IRemUnknown object.
      oleaut32: Handle non-byref safe arrays in VARIANT_UserFree.
      server: In set_user_object_info len is in bytes, not WCHARs.
      ntdll: Initialise the part of the buffer to be written to a file in the file test.
      kernel32: Implement GetThreadId.
      ole32: Fail before constructing an object in CreateStreamOnHGlobal to avoid a memory leak.
      ole32: Release the stream in COM_RevokeRegisteredClassObject.
      ole32: Fix a memory leak in the HGLOBAL stream tests by telling CreateStreamOnHGlobal to free the memory it allocates, as we don't free it ourselves in this test.
      ole32: Fix the condition in HMETAFILEPICT_UserFree to match that in METAFILEPICT_UserMarshal.
      ole32: Use asynchronous I/O for the named pipe server for local servers.
      ole32: Wait forever on the ready_event in the local server tests.
      rpcrt4: Implement RpcCancelThread for the ncacn_ip_tcp protocol sequence.
      ole32: Validate the parameters to DataCache_Cache.
      ole32: Release the correct pointer in test_MkParseDisplayName.
      rpcrt4: Fix a copy and paste mistake in declaring threaddata_cs_debug.
      msxml3: Fix some memory leaks of name in test_xmldoc.
      msxml3: Don't leak node in xmldoc_createElement in the wrong type was specified.
      ole32: Intialise some out parameters in ProxyCliSec_QueryBlanket.
      mapi32: Add a stub for DllGetClassObject.
      include: Add definitions used for AllowSetForegroundWindow and LockSetForegroundWindow.
      credui: Add support for saving the credentials input using CredUIPromptForCredentials by calling CredWriteW.
      credui: Split CredDialogProc out into separate functions.
      credui: Increase the dropped-down size of the username combo box.
      credui: Enumerate saved credentials and use these to populate the combo box.
      credui: Check for and don't add duplicates when filling the username combo box.
      credui: Ensure that the foreground window doesn't get changed while the user is typing in their password.
      credui: Make sure not to leave the password in memory when no longer in use.
      shell32: Add a stub for LinkWindow_RegisterClass.
      shell32: Add a stub for LinkWindow_UnregisterClass.
      rpcrt4: Hold the thread-data's critical section while cancelling a call.
      credui: Override the default banner if the caller specifies one to CredUIPromptForCredentialsW.
      comctl32: Unify the implementation of TOOLTIPS_Show and TOOLTIPS_TrackShow to give tracked tooltips balloon support.
      comctl32: Fix the tooltips behaviour when TTF_ABSOLUTE isn't specified.
      comctl32: Forward the WM_GETTEXTLENGTH message from ComboEx controls to its edit control.
      explorer: Add a fixme to show when applications are trying to show a balloon tip in the taskbar notification area.
      urlmon: Fix a reference count leak in RegisterBindStatusCallback.
      credui: Show a balloon tip in the credential dialog if CREDUI_FLAGS_INCORRECT_PASSWORD was specified.
      credui: Display a warning balloon if the user has Caps Lock on.
      server: Change the get_dll_info server request to allow retrieving the image file name of a process.
      server: Fix a typo in the enumeration of the ACE's in sd_to_mode.
      server: Fix incorrect translation of the World SID to and from Unix file permissions.
      rpcrt4: Raise an exception if a NULL ref-pointer is passed in to PointerMarshall or PointerBufferSize.
      ole32: Fix a race in find_proxy_manager.
      comctl32: Update the version in the created version to the highest current version present on XP.
      ntdll: Shared manifests should have a less-strict version check performed when loading them as dependencies.
      kernel32: Change the shared manifest test to depend on a build number that isn't currently published on at least XP, showing that assemblies with higher build numbers can be used.
      advapi32: Move credential registry reading code to separate functions.
      advapi32: Fix a typo in CredEnumerateW.
      ole32: Store the dispatch parameters in the message state structure to allow them to be initialised earlier in the sequence of IRpcChannelBuffer calls.
      ole32: Clean up properly in ClientRpcChannelBuffer_SendReceive in the case where PostMessageW fails.
      ole32: Add tests for WdtpInterfacePointer_* functions.
      advapi32: Add support for using the Mac Keychain services as a backend for the credential functions instead of the registry.
      credui: Fix a test failure on Windows XP.
      rpcrt4: Fix the tests for up_enum16.
      wininet: Don't clear the auth data for Basic authentication in HTTP_InsertAuthorizationForHeader.
      oleaut32: Free the correct custom data inside ITypeInfo_fnRelease.
      oleaut32: Introduce a new helper function, TLB_FreeCustData, for freeing custom data.
      oleaut32: Handle integer overflow of len in SysReAllocStringLen and SysAllocStringByteLen.
      advapi32: Use the open_for_write parameter to open_cred_mgr_key and fix get_cred_mgr_encryption_key to not need KEY_WRITE access to the key passed in.
      advapi32: Make the credential registry key stay around if a persist value longer than session is specified.
      rpcrt4: Check for integer overflows when increasing the buffer length.
      rpcrt4: Check there is enough space in the buffer and that the size doesn't cause an overflow when copying data to it.
      rpcrt4: Fix some more potential buffer overflows.
      rpcrt4: Fix an integer overflow in NdrConformantStructMarshall and NdrConformantStructUnmarshall.
      ole32: Fix description of what is being test in ok calls in the WdtpInterfacePointer tests.
      ole32: Fix a test in the WdtpInterfacePointer tests.
      rpcrt4: Errors in sending or receiving packets should result in RPC_S_CALL_FAILED being returned, not RPC_S_PROTOCOL_ERROR.
      rpcrt4: EmbeddedPointerUnmarshall doesn't need to change the address of the allocated memory, so reduce the level of indirection of the memory parameter by one.
      rpcrt4: Move forcing of fMustAlloc to NULL to the callers of EmbeddedPointerUnmarshall.
      rpcrt4: Improve PointerUnmarshall to cope with keeping the non-NULL source pointer of a client unmarshall.
      rpcrt4: Fix NdrSimpleStructUnmarshall to cope with [in, out] embedded pointers.

Roderick Colenbrander (3):
      wined3d: Flush GL calls after drawing to the drawable. This fixes apps that use multiple GL contexts.
      wined3d: Prevent unneeded context switches.
      wgl: Add wglCopyContext support.

Stefan Dösinger (51):
      wined3d: Align the gl function table.
      wined3d: Load extension functions after finding the supported extensions.
      wined3d: Extend the gl extension function loading table with ext info.
      wined3d: Load GL functions from core if needed.
      wined3d: Mark extensions supported which are included in the gl core.
      wined3d: Load GL_EXT_texture3D from gl 1.2 if the extension is not there.
      wined3d: Hardcode local constants into the shader if possible.
      wined3d: Get rid of a few Nvidiaisms in glsl shaders.
      wined3d: Partially revert "Get rid of the conditionals in shader_glsl".
      wined3d: Depth stencil fixes.
      wined3d: Read the framebuffer size from the surface, not the window.
      wined3d: Apply matrices when switching from transformed vertices to shaders.
      wined3d: Non power of two texture fixes.
      wined3d: Fix ATI video memory detection typo.
      wined3d: Do not call PreLoad in surface_download_data.
      wined3d: Remove a hack that slipped in.
      wined3d: Destroy GL contexts before changing the screen resolution.
      msvcrt: Implement strcpy_s.
      msvcrt: Implement strcat_s.
      msvcrt: Implement _mbsnbcpy_s.
      d3d8: Release the vertex declarations array when destroying the device.
      wined3d: Move IUnknown functions to IWineD3DBaseShader.
      wined3d: Free the shader function when freeing the shader.
      wined3d: Use standard wine lists for the resource list.
      d3d8: Destroy the window after the visual test.
      d3d9: Free the converted declaration data after creating the declaration.
      wined3d: Do not cap fragment samplers to 8.
      wined3d: Move destroying the glsl vshader into a separate function.
      wined3d: Move glsl shader destruction to the glsl shader backend.
      wined3d: Track vertex declaration changes on vertex shaders.
      wined3d: Bool constants aren't vectors.
      d3d9: Add a test for vertex shader input matching.
      wined3d: Make SRGB write correction working with 1.x shaders in arb.
      wined3d: Fog is applied after sRGB correction.
      wined3d: Downgrade an ERR to a WARN.
      wined3d: Correctly handle the y offset with offscreen rendering.
      wined3d: Inform the texture about filtering changes.
      wined3d: Work around nvidia beta driver bug.
      wined3d: Add some missing checkGLcall calls.
      wined3d: Do not try to disable unsupported texture units.
      wined3d: Report some more geforce 7 cards as geforce 7.
      wined3d: Allow using a different internal format for fbos.
      wined3d: Fix a sign mistake in the code creating the sorted attrib.
      wined3d: Disable GL_TEXTURE_2D in the standard blit setup.
      wined3d: Avoid hardcoding GL_TEXTURE_2D.
      wined3d: Add GL_ARB_texture_rectangles to our opengl extensions.
      wined3d: Make the code aware of GL_ARB_texture_rectangle.
      wined3d: Refuse to create a mipmapped conditional np2 texture.
      wined3d: Activate GL_ARB_texture_rectangle.
      wined3d: Remove the X channel fixup in render target unlocking.
      user32: Destroying the current cursor results in an error.

Stefan Leichter (2):
      d3dx8: Add WINAPI to the prototypes of D3DXMatrixTransformation.
      kernel32: Added stub for FindVolumeClose.

Sven Paschukat (1):
      ctapi32: Added null terminator to library name.

Thomas Weidenmueller (1):
      comctl32: Fix handling of CB_RESETCONTENT in ComboBoxEx.

Tony Wasserka (7):
      d3dx8: Implement the C++ stuff of the D3DXVECTOR2 structure.
      d3dx8: Implement the C++ stuff of the D3DXVECTOR3 structure.
      d3dx8: Implement the C++ stuff of the D3DXVECTOR4 structure.
      d3dx8: Implement the C++ stuff of the D3DXMATRIX structure.
      d3dx8: Implement the C++ stuff of the D3DXQUATERNION structure.
      d3dx8: Implement the C++ stuff of the D3DXPLANE structure.
      d3dx8: Implement the C++ stuff of the D3DXCOLOR structure.

Vijay Kiran Kamuju (4):
      rsaenh: Add a few more tests which check the decryption strings.
      rsaenh: Add tests for RSA_AES provider.
      rsaenh: Add implementation of Enhanced RSA AES Provider.
      include: Add missing definitions for DSS in wincrypt.h.

Vitaliy Margolen (1):
      dinput: Fix dead zone handling.

--
Alexandre Julliard
julliard@winehq.org
