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

What's new in this release:
  - Many Direct3D fixes and performance improvements.
  - Several new comctl32 test cases.
  - IDL compiler improvements.
  - More OLE32 marshalling 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:

  http://ibiblio.org/pub/linux/system/emulators/wine/wine-0.9.31.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-0.9.31.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.30:

Alexandre Julliard (39):
      widl: Copy the UserMarshal support into the generic code.
      widl: Use the typegen function for marshalling/unmarshalling in proxies.
      widl: Initialize local variables in stub functions.
      widl: Rename a couple of variables to make the code closer to what midl generates.
      widl: Add a few more fields in the stub descriptor.
      widl: Define __midl_proxy in the generated proxy code.
      widl: Avoid dependency on COBJMACROS in generated code.
      widl: Make some generated variables static and/or const.
      snmpapi: Fix printf format warnings in tests.
      winspool: Fix make rules for import library.
      makefile: Use git-ls-files if possible to build tags files.
      winnt.h: Avoid warnings on Mac OS X.
      server: Clear the thread wait before releasing objects to avoid nested calls.
      libwine: Hardcode the data for the US-ascii codepage instead of loading a unicode.org file.
      libwine_port: Implemented interlocked_cmpxchg64 for x86_64.
      iphlpapi: Avoid printf format warnings.
      widl: Output correct alignments in type format strings.
      widl: Add support for arrays of simple types in format strings.
      widl: Take array dimensions into account when computing buffer size.
      widl: size_is and length_is are expression lists now.
      widl: Added support for iid_is conformance descriptors.
      widl: Use the correct type offset when freeing proxy variables.
      ntdll: Clear the DebugInfo field when a shared heap critical section is made global.
      msvcrt: Implement fopen/wfopen on top of fsopen/wfsopen instead of the other way around.
      widl: Only recognize attribute keywords inside an attribute list.
      widl: Add a string list type and use it for the endpoint attribute.
      widl: Output endpoint information in client and server files.
      widl: Rename parser states to uppercase to avoid conflicts.
      Make.rules: Automatically generate the header for all types of idl sources.
      mshtml: Don't test the contents of an output parameter.
      rpcrt4: Enter new named pipe connections into the protocol connection list.
      winex11.drv: We still have to flush the display after mapping a window.
      ntdll: Allow APCs to run while waiting for a debug event reply.
      gdi32: Fixed typo in AngleArc.
      cabinet: Fixed fd leak in case of error.
      d3d8: Avoid a size_t printf format warning.
      shell32: Don't wrap SHELL_ConfirmIDs in an assert. Fixed return value.
      winex11.drv: Added a check for the ATI driver corrupting %fs.
      gdi32/tests: Create a window for justification tests that generate output

Anatoly Lyutin (3):
      comdlg32: Update Russian translation.
      comdlg32: fontdlg: Add initialisation for comboboxes.
      wineconsole: Added range of value for all up-down controls on config dialog.

Andrew Talbot (33):
      cabinet: Improve initialization of some arrays.
      serialui: Declare some items static.
      sane.ds: Declare a function static.
      setupapi: Declare some functions static.
      sensapi: Declare a variable static.
      secur32: Declare a function static.
      avifil32: Declare some variables static.
      shdocvw: Declare some functions static.
      user32: Declare some functions static.
      uxtheme: Declare some items static.
      quartz: Fix a typo.
      winemp3.acm: Declare some items static.
      winmm: Declare a function static.
      wtsapi32: Declare a variable static.
      winex11.drv: Declare variable signed to accept possible negative return value (Coverity).
      winedos: Declare some items static.
      user32: Remove unused variables.
      shell32: Remove unused function.
      winemp3.acm: Remove unused functions.
      user32: Remove unused function.
      wineps.drv: Remove unused functions.
      wineps.drv: Declare some functions static.
      shell32: Declare some functions static.
      shell32: Declare some functions static.
      shell32: Declare some functions static.
      shell32: Declare some functions static.
      winex11.drv: Remove unused items.
      amstream: Constify a variable.
      dinput: Constify some variables.
      version: Constify a formal parameter of VerQueryValue{A|W}().
      dxdiagn: Constify a variable.
      itss: Constify a variable.
      imaadp32.acm: Constify some variables.

Aric Stewart (2):
      user32: We are calculating the height for the drop down based on
      user32: Scroll window fix.

Bang Jun-Young (4):
      advapi32: Fix prototypes to match the PSDK.
      wininet: config.h police.
      ntdll: Fix NtUnloadKey to match the DDK.
      advpack: Constify the 3rd argument of RebootCheckOnInstall[AW].

Chris Peterson (1):
      comctl32: treeview: New conformance tests for TreeView controls.

Chris Robinson (5):
      wined3d: Properly round negative values in shader_glsl_mov.
      quartz: Properly handle input parameters in FileSource_GetCurFile.
      quartz: Remove 1GB AVI size limitation.
      wine.inf: Add quartz.dll to the list of installed fake DLLs.
      quartz: Loop through the rest of the possible filters even when a connection fails.

Clinton Stimpson (2):
      user32: WM_SETFONT on button doesn't repaint directly.
      user32: Add test cases for update rects affected by ShowWindow.

Damjan Jovanovic (6):
      libwine_port: Added interlocked_cmpxchg64.
      ntdll: Slist support.
      msvcrt: Align struct _stati64's st_size on an 8 byte boundary.
      msvcrt: Added declarations for functions and structures related to stat64.
      msvcrt: Implemented stat64, wstat64 and fstat64.
      msvcrt: Fix fstat's handling of pipes and char devices.

Detlef Riekenberg (8):
      winspool/tests: Add test for XcvDataW,MonitorUI.
      winspool/tests: Add test for XcvDataW,PortIsValid.
      mshtml: Add a missing space.
      regedit: Remove unused resource.
      regedit: Declare some variables static.
      regedit: Do not pass a global available pointer to a static function.
      regedit: Do not use a local copy of a global pointer.
      winspool: Do not access NULL when HeapAlloc failed.

Dmitry Timoshkov (17):
      gdi32: CreateBitmap and friends should return stock DEFAULT_BITMAP if requested bitmap width or height is 0.
      user32: Dump contents of CREATESTRUCT in WM_[NC]CREATE of the message spy.
      kernel32: Add a trace to MultiByteToWideChar.
      winedump: Add a sanity check before dumping long format library export.
      dbghelp: Turn a FIXME to a WARN in order to avoid mangling the output.
      user32: Although Windows sends WM_GETMINMAXINFO at the window creation time, it doesn't use returned values to set window size.
      gdi32: Make sure that we don't read/write beyond the provided buffer in GetOutlineTextMetricsA, add a test case.
      user32: Add the tests for minimize/restore MDI child sequence, fix some failures.
      comctl32: Make ImageList_Read and ImageList_Write compatible with each other, simplify the code.
      user32: Activate an MDI child on WM_SETFOCUS as well as on WM_CHILDACTIVATE.
      comctl32: Implement ImageList_GetFlags.
      user32: Avoid sending unwanted DM_GETDEFID/DM_SETDEFID messages.
      gdi32: Revert 1440eb5a35dc95dea1836d9035b51e2b15d83703 and add the test showing that the change was wrong.
      comctl32: Change internal imagelist bitmap storage in the way applications with pre-compiled imagelists expect it.
      gdi32: Fix a typo in the memcmp call.
      gdi32: Skip the SYMBOL_CHARSET test if Symbol or Wingdings is not installed.
      gdi32: CreateBitmapIndirect should ignore the provided bm.bmWidthBytes.

Duane Clark (1):
      treeview: Scrolling does not cause label being edited to lose focus.

Eric Pouech (8):
      msvcrt: Reset a signal to DFL before it's used.
      msvcrt: Implemented the raise function.
      msvcrt: Use raise(SIGABRT) for abort() and assert().
      winedbg: Correctly handle invalid read conditions.
      winedbg: Support for debugging child processes.
      winedump: Larger usage of symbol demangling while dumping.
      winedump: Simplify guid dumping.
      winedump: Removed a couple of unused elements out of struct symbol.

Farshad Agah (1):
      comctl32: Added monthcal test cases.

Felix Nawothnig (5):
      gdi32: Fix offset calculation in PATH_ExtTextOut for >1 chars.
      comctl32: Remove unnecessary and misused mask member from TAB_ITEM.
      comctl32: Rename 'string' test to 'misc'.
      comctl32: Add tests for Alloc() and friends.
      comctl32: Remove redundant NULL checks before Free() calls.

Francois Gouget (49):
      snmpapi: Fix the winapi_check warnings.
      winecoreaudio.drv: Update win32.api to fix the winapi_check warnings.
      usp10: Update win32.api to fix the winapi_check warnings.
      wintrust: Better match the PSDK types and fix the winapi_check warnings.
      wintrust: Add missing prototypes and a missing include directive to mscat.h.
      wintrust: Add missing packing directives to mscat.h.
      winapi_check: Print the line number when an error or warning is found in the API files.
      winapi_check: Print a warning when 'long' is used in an API file as this type is not Win64 compatible.
      shell32: Remove an unneeded local variable initialization.
      Add missing '\n's in traces.
      winspool.drv: Remove unneeded cast.
      atl: Protect atlwin.h against multiple inclusions.
      oleaut32: Update win32.api to fix the winapi_check warnings.
      compstui: Update win32.api to fix the winapi_check warnings.
      hid: Update win32.api to fix the winapi_check warnings.
      comctl32: Update win32.api to fix the winapi_check warnings.
      wtsapi: Update win32.api to fix the winapi_check warnings.
      gphoto2.ds: Update win32.api to fix the winapi_check warnings.
      pstorec: Update win32.api to fix the winapi_check warnings.
      localspl: Update win32.api to fix the winapi_check warnings.
      inseng.dll: Update win32.api to fix the winapi_check warnings.
      rpcrt4: Improve the prototypes Win64 compatibility by replacing long with LONG.
      hid: Add the hidsdi.h header.
      ntdll: Add a stub API documentation to make winapi_check happy.
      rpcrt4: Better match the PSDK types and fix the winapi_check warnings.
      browseui: Add missing '\n's to ok() calls.
      credui: Make wincred.h C++ compatible.
      clusapi: Better match the PSDK types and fix the winapi_check warnings.
      atl: Better match the PSDK types and fix the winapi_check warnings.
      winsock & ws2_32: Update win32.api to fix the winapi_check warnings.
      credui: Better match the PSDK types and fix the winapi_check warnings.
      advpack: Make the header more consistent with the implementation and fix the winapi_check warnings.
      clusapi: Make clusapi.h C++ compatible.
      ntdll: ZwRaiseException() is not a register function.
      ntdll: The fourth parameter of RtlUnwind() is a pointer, not a long.
      kernel32: Add prototypes to winbase.h for the SList functions.
      Make winnt.h C++ compatible.
      ntdsapi: Add a commented-out #include directive as a reminder.
      ntdsapi: Update win32.api to fix the winapi_check warnings.
      winapi_check: '-register' is compatible with stdcall. So remove this obsolete warning.
      winapi_check: Fix handling of the -register functions.
      ntdll: Better match the PSDK types and fix the winapi_check warnings.
      shell32/tests: ILFree() and ILIsEqual() are exported by ordinal only on Win9x. So use GetProcAddress().
      shell32/tests: Fix test_GetDisplayName() to cope with a left-over test directory.
      shell32/tests: wnsprintfA() is missing on Win9x, so use sprintf() instead.
      ntdll: Add prototypes to winnt.h for the SList functions.
      ntdll: Fix compilation on systems that don't support nameless structs.
      Assorted spelling fixes.
      comctl32/tests: Add missing '\n's to ok() calls.

H. Verbeet (35):
      wined3d: Always select the correct shader pair in the vertexdeclaration() state handler.
      wined3d: Cleanup the pixelshader() state handler a little bit.
      wined3d: Don't use WINED3DSHADERDECLUSAGE_PSIZE / WINED3DSHADERDECLUSAGE_FOG.
      wined3d: Get rid of WINED3DSHADERDECLUSAGE.
      wined3d: Add WINED3DDECLUSAGE, use it.
      d3d8: Add an IDirect3DVertexDeclaration8 class to hold the wined3d vertex declaration.
      d3d8: Store the d3d8 vertex declaration in the d3d8 vertex shader.
      wined3d: Get rid of the vertexDeclaration field in IWineD3DVertexShaderImpl.
      d3d9: Don't store the d3d9 declaration in the wined3d object.
      d3d8: Move loading local d3d8 vertex shader constants from wined3d to d3d8.
      d3d8: Don't store the d3d8 declaration in the wined3d object.
      wined3d: Use WINED3DSTREAMSOURCE_INSTANCEDATA rather than D3DSTREAMSOURCE_INSTANCEDATA.
      wined3d: Use WINED3DUSAGE rather than D3DUSAGE.
      wined3d: Use WINED3DPRESENT_BACK_BUFFER_MAX rather than D3DPRESENT_BACK_BUFFER_MAX.
      wined3d: Use WINED3D_OK rather than D3D_OK.
      wined3d: Add WINED3DTEXOPCAPS flags and use them.
      wined3d: Add WINED3DSTENCILCAPS flags and use them.
      wined3d: Add WINED3DPBLENDCAPS flags and use them.
      wined3d: Add WINED3DPMISCCAPS flags and use them.
      wined3d: Add WINED3DPCMPCAPS flags and use them.
      wined3d: Add WINED3DPTADDRESSCAPS flags and use them.
      wined3d: Add WINED3DLINECAPS flags and use them.
      wined3d: Add WINED3DDTCAPS flags and use them.
      wined3d: Add WINED3DPS20 & WINED3DPS20CAPS flags and use them.
      wined3d: Add WINED3DVS20 & WINED3DVS20CAPS flags and use them.
      wined3d: Use WINED3DRTYPE_SURFACE rather than D3DRTYPE_SURFACE.
      wined3d: Add the WINED3DSPD_IUNKNOWN flag and use it.
      wined3d: Use WINED3DISSUE_BEGIN / WINED3DISSUE_END rather than D3DISSUE_BEGIN / D3DISSUE_END.
      wined3d: Get rid of any remaining d3d9 stuff in state.c.
      wined3d: Get rid of any remaining d3d9 stuff in stateblock.c.
      wined3d: Get rid of any remaining d3d9 stuff in surface.c and surface_gdi.c.
      wined3d: Fix WINED3DPRESENT_PARAMETERS and use it instead of D3DPRESENT_PARAMETERS.
      wined3d: Add WINED3DCREATE flags and use them.
      wined3d: Get rid of any remaining d3d9 stuff in directx.c.
      wined3d: Remove the d3d9.h include from wined3d_private.h.

Hans Leidekker (5):
      wineshelllink: Use "=" instead of "==" to compare strings.
      wineshelllink: Keep using the slash as path separator.
      wordpad: Open .wri files in wordpad.
      wininet: Skip empty accept type strings in HttpOpenRequest.
      wininet: Fix a test that fails on Windows.

Huw Davies (6):
      widl: Add VT_DATE support to typelib generation.
      widl: Don't restrict the number of params of [prop*] functions.
      oleaut32: Fix marshaling of VARTYPE-less safearrays.
      winspool.drv: We don't need to check for the PPD Files key before using /etc/printcap.
      wineps.drv: Try to use the PostSript name of a font.
      oleaut32: Call SearchPath before LoadLibrary so that we get the full path of native exes and dlls.

Hwang YunSong(황윤성) (4):
      regedit: Updated Korean Resource.
      shell32: Updated Korean resource.
      shell32: Updated Korean resource.
      cmd: Updated Korean resource.

Ivan Sinitsin (1):
      comdlg32: Set the right background color of the dialog window "Choose color".

Jacek Caban (40):
      shlwapi: Don't unescape url in UrlCombineW with URL_FILE_USE_PATHURL flag.
      urlmon: Call AddRef in CoInternetGetSession.
      urlmon: Code clean up.
      hhctrl.ocx: Remove useless SetHostNames call.
      hhctrl.ocx: Use SetWindowRects to set WebBrowser's size.
      hhctrl.ocx: Use mk as default protocol and code clean up.
      urlmon: Fix zone tests.
      itss: Allow reading from ReportData call.
      urlmon: Set BINDF_NEEDFILE flag for all not urlmon protocols.
      urlmon: Unlock protocol only if it was locked.
      urlmon: Use proc instead of enum in task queue.
      urlmon: Use custom task structs.
      urlmon: Added ReportProgress(BINDSTATUS_BEGINDOWNLOADDATA) implementation.
      urlmon: Use queue for whole ReportData implementation.
      urlmon: Fix ReportResult on async protocols.
      urlmon: Added ReportProgress(BINDSTATUS_DIRECTBIND) implementation.
      urlmon: Call OnProgress directly in report_data.
      urlmon: Fix continue_call handling.
      itss: Fix handling URLs without '/' in object name.
      shlwapi: Unicodified scheme detecting code.
      shlwapi: Fix handling mk URLs.
      mshtml: Store URL in unicode in nsURI.
      mshtml: Added [Set|Get]WineURL functions to nsIWineURI.
      mshtml: Don't store moniker in nsURI.
      mshtml: Remove no longer used [Get|Set]Moniker functions.
      mshtml: Move AddRequest call to OnStartBinding.
      mshtml: Start binding asynchronously.
      mshtml: Call SetWineURL in Clone.
      mshtml: Handle resource protocol like chrome protocol.
      urlmon: Store download state in Binding object.
      urlmon: Depend on Read result in report_data.
      urlmon: Added test of handlong its protocol.
      urlmon: Added mk protocol handling test.
      mshtml: Return "wine" as scheme of nsIURI if wine_url is set.
      mshtml: Added SchemeIs implementation.
      mshtml: Forward GetAsciiSpec to GetSpec.
      mshtml: Use wine_url in GetSpec if possible.
      mshtml: Added comments about frozen/not frozen interface.
      mshtml: Don't release window if it wasn't created.
      mshtml: Make load_gecko thread safe.

James Hawkins (2):
      msi: Allow uncompressed files before compressed files in the same media.
      msi: Don't skip files continued from a previous cabinet.

Jan Zerebecki (1):
      urlmon: Remove redundant const.

Jason Green (1):
      riched20: If outside of the richedit window, return earlier.

John Klehm (2):
      ras.h: Added additional szDeviceType defines.
      rasapi32: RasEnumConnections now returns correct buffer size (zero) when there are zero connections available.

John Morris (1):
      ole32: Add CoWaitForMultipleHandles to spec file.

Joris Huizer (2):
      libwine: sign-compare fixes.
      winegcc: Sign-compare fixes.

Juan Lang (1):
      msvcrt: Implement _mbbtype according to MSDN.

Kai Blin (2):
      secur32: Bump minimal required samba version to 3.0.25, 3.0.24 is a bugfix release.
      secur32: Fix ntlm_auth version number check when registering the NTLM SSP.

Keith Stevens (1):
      comctl32: Add trackbar tests.

Ken Thomases (2):
      winecoreaudio.drv: Remove obsolete FIXME.
      explorer: Fix leak: always release the CFDictionary.

Kevin Koltzau (2):
      winnt.h: Correct declaration of SLIST_HEADER and SLIST_ENTRY for Win64.
      ntdll: Fix compile errors for Win64.

Kim Lilliestierna (1):
      cmd: Fix the "move" command the same way as the "copy" command.

Kirill K. Smirnov (2):
      user32: Handle WM_SETICON message similarly to WM_SETTEXT.
      user32/tests: Add tests for WM_SETICON.

Konstantin Kondratyuk (1):
      ntdll: Add Omsk time zone.

Lei Zhang (1):
      tools/wineshelllink: Create links with WINEPREFIX.

Leslie Choong (1):
      comctl32: updown: Getter and setter tests for updown control.

Louis Lenders (2):
      user32: Don't crash if a WM_NCCREATE message is sent with lParam=0.
      user32: Fix error return values in DialogBoxParam + simple test.

Maarten Lankhorst (4):
      wined3d: Report D3D caps properly for ATI cards.
      winealsa: Split driver up in tiny pieces.
      winealsa: Cosmetic stuff.
      winealsa: Use a helper thread instead of asynchronous callbacks.

Marcus Meissner (15):
      devenum: Fix uninitialized clsidString (Coverity).
      dinput: Fix dereference pointer after NULL check (Coverity).
      kernel32: Initialize owner_exists (Coverity).
      oleview: Removed dead code (Coverity).
      riched20: Fixed wrong condition (Coverity).
      winex11.drv: Removed dead code (Coverity).
      wmc: inputbuffer is a WCHAR array.
      riched20: Removed more dead code.
      ntdll: Initialize needs_close to FALSE.
      devenum: Initialize hKeysub.
      kernel32: Remove CloseHandle call.
      kernel32/tests: Fixed several uninitialized variables.
      winedump: Free function_name on all error paths.
      ntdll/tests: Fixed WCHAR overflow.
      bin2res: Use fstat, handle errors.

Mark Adams (3):
      iphlpapi: Clarify interface counting.
      iphlpapi: Filter out no-ip addresses when building ip address table.
      iphlpapi: Support for non-linux platforms, including Mac OS X.

Michael Stefaniuc (4):
      msvcrt: Fix *printf() handling of negative field width.
      browseui: Move 'static' to the beginning of the declaration specifier.
      wldap32: Missing HeapFree on error path (found by Smatch).
      atl: Fix a comparison between signed and unsigned.

Mike McCormack (22):
      msi: Allocate a buffer in WCHARs not CHARs.
      msi: Fix a typo.
      msi: Add todos around tests that aren't being run yet, but will fail.
      widl: Handle TKIND_DISPATCH when generating MSFT typelibs.
      msi: Add a (mostly empty) typelib for the MsiServer interface.
      oleview: Remove many casts.
      winnt.h: Add defines for SLIST_HEADER.
      msi: Add a test showing MsiGetProperty returns correct values.
      msi: Factor out code to calculate column offsets.
      msi: Add the generated typelib to the resources.
      msi: Test the dispid for CreateRecord.
      ole32: Add a few more tests for transacted storage.
      widl: Implement dispinterfaces derived from an interface.
      msi: Add a test for the version method.
      msi: Register the typelib.
      msiexec: Catch the -Embedding flag and print out a message.
      msi: Split process_handle() into two separate functions.
      msi: Simplify ACTION_FinishCustomActions.
      msi: Store dll based custom actions in a separate list.
      ole32: Add missing parameter for RunningObjectTableImpl_UnInitialize.
      msi: Remove an unused initializer.
      msi: Find pending custom actions by GUID.

Mikołaj Zalewski (16):
      comctl32: rebar: Add some tests for rebar and change the way the header size is fixed.
      comctl32: rebar: Merge InsertBandA and InsertBandW.
      comctl32: rebar: Merge GetBandInfoA and GetBandInfoW.
      comctl32: rebar: Merge SetBandInfoA and SetBandInfoW.
      comctl32: rebar: Fix lpBand->lpText memory leak in DeleteBand and simplify the code.
      shlwapi: Test string functions when buffer is too small.
      browseui: Add the browseui DLL.
      include: Add definitions for the multisource AutoComplete list (ACLMulti).
      browseui: Add class factory.
      browseui: Implement and test ACLMulti.
      comctl32: toolbar: Copy bitmaps with CopyImage so that it works also for DIBs (based on a patch by Oleg Krylov).
      shell32: shlfileop tests: Avoid buffer overflows for paths.
      comctl32: listview: Create the LISTVIEW_INFO in WM_NCCREATE.
      shell32: Make sure BrowseForFolder doesn't return NULL for the Desktop folder as this means a cancel.
      shell32: Add a confirmation dialog with a "Yes to All" option.
      shell32: Allow overwriting files in SHFileOperation(FO_COPY) (with confirmation dialogs).

Misha Koshelev (8):
      kernel32: Added conformance test for nested thread wakeups in the server.
      msi: InstallPackage check for UI level must not disregard flags.
      kernel32: CreateThread returns NULL on error, not INVALID_HANDLE_VALUE.
      msi: Make sure to ignore UI level flags in dialog and files as well.
      msi: Conformance test, check that INSTALLUILEVEL flags don't trigger UI install.
      shell32: Properly create shell links for commands on path.
      shell32/tests: Test creating shell links for commands on path.
      wineboot: Start items in StartUp folder on boot.

Paul Vriens (24):
      wininet/tests: Add ftp tests.
      wininet: Remove unused function.
      urlmon: Cast-qual warning fix.
      urlmon: Cast-qual warning fixes.
      wininet/ftp.c: Remove unneeded check.
      wininet/ftp: Remove unneeded (double) checks.
      wininet/ftp: Remove unneeded (double) checks.
      wininet/ftp: Remove unneeded (double) checks.
      wininet/ftp: Remove unneeded (double) checks.
      wininet/ftp: Remove unneeded (double) checks.
      wininet/ftp: Remove unneeded (double) checks.
      wininet/ftp: Remove unneeded (double) checks.
      wininet/ftp: Remove unneeded (double) checks.
      wininet/ftp: Remove unneeded (double) checks.
      wininet/tests: Add a few more tests.
      comctl32/tests: Fix typo (Coverity).
      wininet/ftp.c: Fix some returned error codes.
      user32/listbox: Remove deadcode (Coverity).
      wininet/ftp.c: Fix some returned error codes.
      wininet/ftp.c: Fix some returned error codes.
      wininet/ftp.c: Fix some returned error codes.
      wininet/ftp.c: Add another test.
      wininet/ftp.c: Add tests to show the order of parameter checking.
      wininet/ftp.c: Fix some returned error codes.

Pedro Araujo Chaves Jr (1):
      gdi32: Fix for GetTextExtentExPointW() and ExtTextOutW().

Peter Oberndorfer (9):
      msi: Only insert entries into listbox if property value matches.
      msi: Do not store property for each listbox element, as it is the same one for the whole listbox.
      msi: Store value of the property with each listbox element.
      msi: Do not use a static variable to save the insertion position for the listview.
      msi: Honor msidbControlAttributesSorted attribute for list box.
      msi: Honor attributes for combobox.
      msi: Clean up magic numbers.
      ntdll: Test that shows RtlRaiseException with EXCEPTION_BREAKPOINT mangles Eip of context.
      ntdll: Add a vectored exception handling test to the existing RtlRaiseException test.

Rob Shearman (30):
      credui: Set the focus to the username edit control.
      credui: Implement CredUIParseUserName.
      credui: Fill out the username, password and domain edit boxes from the values input to CredUIPromptForCredentialsW.
      credui: Fix the order of the controls in the dialog so that the
      oleaut32: Add a wrapper around the channel supplied to the IDispatch proxy
      comctl32: Fix the computation of the select bounds item rect
      ole32: Release iobject and the IRpcStubBuffer object no matter which code path we take.
      ole32: Add the external references that the server gave to us to any existing ifproxy,
      oleaut32: If an error info object was created when the invoked method failed then fill in exception info from the error info object.
      oleaut32: Fix the missing argument handling for non-byref variant arguments.
      oleaut32: Copy the value directly returned from the called function
      oleaut32: Add support for named arguments in ITypeInfo::Invoke.
      oleaut32: Ignore the first named argument when invoking property-put methods
      oleaut32: A value of PARAMFLAG_FNONE for wParamFlags means that the parameter is also marshaled and unmarshaled in the PARAMFLAG_FOUT case.
      oleaut32: Fix a one-off test failure in the tmarshal tests - TYPE_E_LIBNOTREGISTERED is an expected return value.
      oleaut32: Always register the typelib for the tmarshal tests.
      oleaut32: Comment out "dual" attribute of IKindaEnumWidget in tmarshal test to cause the interface to be marshaled correctly.
      oleaut32: Fix the IDL for the "Value" method in the tmarshal tests.
      oleaut32: Implement automatic value getting in ITypeInfo::Invoke.
      oleaut32: Fix the return value of ITypeInfo::Invoke when the property-put named argument isn't DISPID_PROPERTYPUT.
      include: Fix a typo in the parameter name for IClientSecurity::QueryBlanket in objidl.idl.
      include: Fix a typo in a comment in rpcdce.h.
      include: Add more EOAC_* enumeration values to objidl.idl.
      rpcrt4: The format structures used in the marshaling code should have 1-byte alignment.
      dbghelp: nread can be NULL for read_mem and read_mem64.
      advapi32: Add some more tests for AccessCheck that determine what
      advapi32: Add tests for token impersonation levels and what operations are allowed at each level.
      server: Track IDs for tokens and modifications made to tokens.
      server: Track the impersonation level of tokens.
      kernel32: Fix the GetComputerName* functions to not write to the buffer at all if there is not enough space.

Shanren Zhou (1):
      comctl32: Add header tests.

Stefan Dösinger (51):
      wined3d: BeginScene and EndScene tests and fixes.
      wined3d: Make shader_cleanup more useful.
      wined3d: Add a per context structure for context management.
      wined3d: Store state optmization members in the context.
      wined3d: Store dirty states per context.
      wined3d: Use the context manager to prepare for drawing.
      wined3d: Use the context manager to prepare for blitting.
      wined3d: Improve render target to texture blits.
      wined3d: Make the context array dynamic.
      wined3d: Use the context manager to select the primary render target.
      d3d8: Deleting bound shaders unbinds them.
      wined3d: Use the context manager to create onscreen contexts.
      wined3d: Dirtify the render targets, not the primary swapchain on draws.
      wined3d: GetRenderTargetData can call BltFast.
      wined3d: Show fullscreen rendering windows.
      wined3d: Remove pow2Size from the surfaces.
      wined3d: Improve render target locking.
      wined3d: Always use np2 repacking if no native np2 support is available.
      wined3d: Partial render target locking.
      wined3d: Check error conditions before creating the object.
      wined3d: Swap the SFLAG_DIBSECTION flag when swaping hdc and memory.
      wined3d: Do not allocate compressed surfaces with glTexImage2D.
      wined3d: Replace the light chain with a hashmap.
      wined3d: Move lights to the state table.
      wined3d: Load single attribute setter functions.
      wined3d: SetStreamSource does not modify stream flags.
      wined3d: Do not release the local vertex buffer copy.
      wined3d: Do not leave SetStreamSource early.
      wined3d: Correctly load vertex attributes with a stride of 0.
      wined3d: Instancing emulation.
      wined3d: Properly release the converted vertex declaration.
      wined3d: More fullscreen window fixes.
      wined3d: Give the bump env matrices their own states.
      wined3d: Load one bump mapping environment matrix into pixel shaders if needed.
      wined3d: Implement texbem in arb, improve it in glsl.
      wined3d: Convert and load U8V8 surfaces as rgb.
      wined3d: Accelerated blits from and to offscreen render targets.
      ddraw, wined3d: Color keying tests and fixes.
      wined3d: Enable color keying only for surfaces without an alpha channel.
      wined3d: alphaop fixes for color keying.
      wined3d: Restore blitting environment after modifying it.
      ddraw: Forward D3DRS_TEXTUREADDRESS* and D3DTSS_ADDRESS* to sampler states.
      wined3d: Remove empty texture stage applying loop.
      ddraw: Handle mipmapped TEXTUREMIN render states.
      ddraw: Handle mipmapped mag filters by ignoring the mipmap parameter.
      wined3d: Restore the display mode when releasing a swapchain.
      6/10: WineD3D: rsq and rcp instructions may need a default swizzle in arb.
      wined3d: Test for supported queries.
      wined3d: Read offscreen render targets upside down when blitting them to a texture.
      wined3d: Convert the full surface for now.
      d3d8: Set WINED3DPRESENT_PARAMETERS.MultiSampleQuality to a valid pointer.

Steven Stein (2):
      msi: Added "Default" control condition to msi_dialog_set_control_condition.
      msi: ValidateProductID action stub.

Thomas Weidenmueller (1):
      comctl32: Fix the TAB_ITEM_SIZE macro.

Tijl Coosemans (1):
      wineshelllink: Fix mktemp usage on FreeBSD.

Ulrich Czekalla (1):
      wineserver: Validate the children of windows being hidden.

Vitaliy Margolen (14):
      dinput: Don't close fd before we done with it.
      dinput: Return user set limits not the device limits.
      dinput: Initialize user limits with the default 0..65535 range. Add tests.
      dinput: Don't reset user specified range in SetDataFormat. With tests.
      dinput: Look for all available js* joystick devices.
      dinput: Use correct flag for object instance.
      dinput: Don't reset dead zone and saturation when setting data format.
      winex11drv: Do extra error checking when opening XInput device.
      server: Fix typo. Should be group not owner.
      winex11.drv: Popup windows with system menu are managed.
      server: Get the primary group from the token's groups.
      server: Add security descriptor field to object struct.
      ntdll/server: Implement NtSetSecurityObject. With tests.
      advapi32: Add more tests for DuplicateHandle security.

Vitaly Lipatov (2):
      Some fixes in russian resources.
      cmd: Fix program name.

--
Alexandre Julliard
julliard@winehq.org
