The Wine development release 1.1.31 is now available.

What's new in this release (see below for details):
  - Vastly improved monthcal control.
  - Performance improvements for DIB sections.
  - Several sound driver fixes.
  - Beginning of ActiveX support in JScript.
  - More Direct3D 10 work.
  - More 16-bit dlls split off to separate modules.
  - Support for attachments in MAPI.
  - Various bug fixes.

The source is available from the following locations:

  http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.1.31.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-1.1.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
repository. Check http://www.winehq.org/site/git for details.

Wine is available thanks to the work of many people. See the file
AUTHORS in the distribution for the complete list.

----------------------------------------------------------------

Bugs fixed in 1.1.31:

   1660  Worms 2 demo crashes on startup
   3044  CSpy/Date and Time Picker: selection of commas or weekday
   3853  Freelancer: music hangs
   5055  Deleting files from a window in wine doesn't send them to the Trash
   5764  Running FFXI leaves blank screen after accepting user agreement.
   6967  CSpy/Month Calendar: Wrong date gets selected
   6969  CSpy/List View: Cannot select multiple items with mouse
   7768  server should set process affinity
   9989  Oracle OCI client: Hangs on updating LOB data
   9995  font/menu problems
  10050  oleaut32 and ITypeInfo::Invoke arguments
  11385  Everquest 2 patcher window has transparency/drawing regression
  11447  Solver addin in excel 2003 gives an "Out of Memory" error
  11542  Proteus Demo crashes/hangs early
  12349  DSOUND_MixInBuffer Assertion `dsb->buf_mixpos + len <= dsb->tmp_buffer_len' failed
  12816  Age of Conan crashes
  12859  HideThreadFromDebugger in NtSetInformationThread
  13024  Regressions in Trackmania Nations Forever
  13247  Emperor - Rise of the middle kingdom runs slowly w/o virtual desktop
  15322  Add smartcard functionality
  15812  3DS MAX 7.0: Any attempt to change viewport configuration results in a crash
  15828  Microsoft Games for Windows - LIVE Redistributable setup - blank EULA
  15936  Rollercoaster Tycoon 3 : crashes when start up
  16525  Angels Online: Black screen in windowed mode.
  16658  Scratchiness of sound in aimp 2.5 and other audio players
  17096  Visual C++ 2005 Trial can't build project, complains when starting mspdbsrv
  17532  Satori Bulk Mailer - adding modules fails
  17581  Steam will not begin installation, segmentation fault, perhaps
  17674  wine recaching font metrics on every run
  18040  Mass Efffect crashes
  18364  utorrent with an https tracker url stops working
  18423  UPnP port mapping in uTorrent stopped working
  18500  ntdll.NtQueryInformationProcess: provide simple ProcessDebugObjectHandle info class handling, returning "no debugger"
  18660  .NET 3.0 WPF requires SystemParametersInfoW( SPI_GETDROPSHADOW) handled
  18716  .NET 3.0 WPF requires SystemParametersInfoW(  SPI_GETMOUSEVANISH) handled
  18921  O(n) hash_table_add causes winedbg to take 20 minutes to dump stack when chromium crashes
  19270  Dragon NaturallySpeaking 10 Standard freezes after selecting alsa in winecfg
  19365  [Monkey Island Special Edition] Screen is cropped to a small part.
  19369  C&C3 and Kane's Wrath crash with DSOUND_BufPtrDiff assertion
  19380  SysDateTimePick32 - wDayOfWeek not generated automatically after DTM_SETSYSTEMTIME
  19559  Proteus: Component text is too big
  19578  Ares (Proteus 7.5) exits silently
  19620  CounterStrike Source:  Cannot perform microphone test (or use mic)
  19851  interlocked* functions unimplemented for ARM
  19897  d3d10/dxgi: device.ok crashes on MacOS X (InitAdapters/glGetString)
  19901  Burg Schreckenstein: OSS HW emulation plays too slow and crashes
  19963  GetSystemTimeAdjustment() should return 10000000 / sysconf(_SC_CLK_TCK)
  19977  runasdate: buggy comctl32 behavior
  19994  Microsoft Security Essentials Setup crashes missing __uncaught_exception
  20094  messui.exe: instantly crashes
  20121  Cities XL Demo fails to run
  20153  AutoCAD 2008: Icons in popup menus too big
  20159  EVE Online crashes on Character selection screen
  20169  Jedi Knight: MotS freezes randomly after videos.
  20253  WWII Online: Battleground Europe crashes
  20258  Imperium Romanum crashes on startup
  20270  Open file dialog in Winamp not resizable
  20290  Crash when opening Splinter Cell Pandora Tomorrow or Chaos Theory's multiplayer mode

----------------------------------------------------------------

Changes since 1.1.30:

Alexander Scott-Johns (2):
      user32: Add missing doc comment.
      winecfg: In Load Theme dialog, add " (*.msstyles; *.theme)" to file type combobox.

Alexandre Julliard (94):
      gdi32: BS_DIBPATTERN brushes use a 32-bit handle in 32-bit mode.
      wineps.drv: BS_DIBPATTERN brushes use a 32-bit handle in 32-bit mode.
      winex11.drv: BS_DIBPATTERN brushes use a 32-bit handle in 32-bit mode.
      gdi32: Move remaining 16-bit metafile functions to metafile16.c
      gdi32: Make wing.dll into a stand-alone 16-bit module.
      gdi32: Get rid of the 16-bit DC hook support.
      gdi32: Move the 16-bit DIB pointer support to gdi16.c.
      include: Avoid direct access to wine_ldt_copy outside of kernel.
      libwine: Don't export wine_ldt_copy for the Windows build.
      winedos: Always run the BIOS tick timer.
      kernel32: Make system.drv into a stand-alone 16-bit module.
      kernel32: Allocate the global arena array only once and store a pointer to it in THHOOK.
      kernel32: Moved MemManInfo16 to toolhelp16.c.
      kernel32: Moved ToolHelpHook16 to kernel16.c, it's not a toolhelp function.
      kernel32: Moved GetThreadSelectorEntry to thread.c.
      kernel32: Moved private function prototypes out of toolhelp.h.
      kernel32: Make toolhelp.dll into a stand-alone 16-bit module.
      winetest: Use the registry path for COM dlls instead of GetModuleFileName.
      winetest: Don't run tests on native dlls when running under Wine.
      ws2_32: Split the async function callback by type of query.
      ws2_32: Define a common header struct for async queries, and switch to 32-bit types.
      ws2_32: Define a specific structure for each query type.
      ws2_32: Use the standard winsock functions to implement the async versions.
      ws2_32: Move the getXXXbyYYY critical section to socket.c.
      ws2_32: Move the 16-bit async functions to socket16.c.
      ws2_32: Remove remaining 16-bit code from async.c and simplify the code.
      ws2_32: Make winsock.dll into a stand-alone 16-bit module.
      configure: Don't build wow32.dll when 16-bit support is disabled.
      system.drv16: Add ntdll import.
      toolhelp.dll16: Add ntdll import.
      comdlg32: Fix icon drawing in the 3.1 file dialog.
      ntdll/tests: Retrieve the number of processors through GetSystemInfo.
      gdi32: Fall back to StretchBlt if the driver doesn't export PatBlt or BitBlt.
      winex11: Move X11DRV_ClientSideDIBCopy to avoid forward declarations.
      winex11: Move the DIB locking and the client-side optimizations into BITBLT_InternalStretchBlt.
      winex11: Remove BITBLT_InternalStretchBlt now that it's identical to X11DRV_StretchBlt.
      version: Abstract resource finding into a common function.
      version: Use the find_resource function instead of the 16-bit entry points to load 16-bit resources.
      version: Moved GetFileResourceSize16/GetFileResource16 to ver16.c.
      version: Make ver.dll into a stand-alone 16-bit module.
      version: Simplify the resource loading since we always load the same type and id now.
      wineps.drv: Make wineps16.drv into a stand-alone 16-bit module.
      setupapi: Duplicate the string substitution code to implement GenFormStrWithoutPlaceHolders16.
      setupapi: Make setupx.dll into a stand-alone 16-bit module.
      configure: Add -Werror flag in maintainer mode.
      winedump: Use consistent prototypes for option callbacks.
      winetest: Use explicit prototypes for function pointers.
      wnaspi32: Use explicit prototypes for function pointers.
      winex11: Use explicit prototypes for function pointers.
      opengl32/tests: Use explicit prototypes for function pointers.
      odbc32: Define correct function prototypes for all libodbc entry points.
      msvcrt: Add an MSVCRT prefix to _wenviron.
      tools: Build all the tools with -D__WINESRC__.
      loader: Build the loader with -D__WINESRC__.
      msvideo: Pass the correct function address for 32->16 callbacks.
      user32: Don't use a static dc for icon blitting.
      kernel32: Use call_entry_point to call functions with variable number of arguments.
      oleaut32: Use an assembly wrapper to implement DispCallFunc, and make it i386-only.
      msvcrt: Use strict function prototypes.
      include: Add support for building Wine with strict prototype checking.
      kernel32: Fix empty function prototypes.
      tests: Build all tests with strict prototypes.
      wrc: Include unistd.h before the Windows headers.
      advapi32: Retrieve the current user SID from the server in lookup_user_account_name.
      Fix empty function prototypes.
      advapi32: Use strict prototypes in the VTableProvStruc definition.
      winhlp32: Use explicit prototypes for the dll callbacks.
      winhlp32: Don't use FARPROC for functions that take variable number of arguments.
      programs: Build all programs with -DWINE_STRICT_PROTOTYPES.
      configure: Build with -Wstrict-prototypes if supported.
      libport: Remove unnecessary function prototypes.
      kernel32: Move the 16-bit string functions to kernel16.c.
      kernel32: Move the 16-bit error functions to error16.c.
      kernel32: Move the 16-bit synchronization functions to kernel16.c.
      kernel32: Move the 16-bit debugger functions to kernel16.c.
      kernel32: Move the 16-bit thread and process functions to kernel16.c.
      kernel32: Move the 16-bit handle functions to kernel16.c.
      kernel32: Move the 16-bit PE module functions to kernel16.c.
      winedos: Don't import kernel 16-bit version functions.
      kernel32: Move the 16-bit version functions to kernel16.c.
      kernel32: Fix a couple of compiler warnings on 64-bit.
      kernel32: Move Get/SetProcessDword to kernel16.c.
      kernel32: Move the k32 kernel32->user32 helpers to thunk.c.
      kernel32: Don't export the large integer functions on 64-bit.
      winex11: Rename the XRENDERINFO type to make it clear it's a pointer.
      kernel32: Fix handling of overflows in GetPrivateProfileSectionA.
      kernel32: Reimplement GetPrivateProfileString16 on top of 32-bit functions and move it to file16.c.
      kernel32: Move the DOS file handle functions to file16.c.
      kernel32: Move some 16-bit definitions to kernel16_private.h.
      kernel32: Moved the DeviceIoControl function to file.c.
      setupapi/tests: Fix the SetupGetIntField test to load the correct key.
      oleaut32/tests: Skip a test that may crash on Win64.
      oleaut32: Avoid floating point for some VarCy conversions.
      rpcrt4/tests: Remove tests for specific values of bit fields.

Allan Tong (2):
      d3d9: Don't release the parent device before destroying its children.
      d3d8: Don't release the parent device before destroying its children.

Andrew Eikum (5):
      mshtml: Check for null pointers in IHTMLLocation_get*.
      wininet: Always extract #fragments in InternetCrackUrl.
      ole32/tests: Add tests for IStorage::CopyTo.
      ole32: Use snbExclude in StorageImpl::CopyTo.
      ole32/tests: Add tests for IStorage::CopyTo with SNB exlusions.

Andrew Nguyen (6):
      cmd: Fix copy option handling in batch mode.
      ddraw/tests: Remove a superfluous return statement.
      ddraw: Simplify and test DirectDrawEnumerateA.
      ddraw: Implement and test DirectDrawEnumerateW.
      ddraw: More fully implement and test DirectDrawEnumerateExA.
      ddraw: Implement and test DirectDrawEnumerateExW.

Andrey Turkin (8):
      user32: Accept SPI_GET/SETDROPSHADOW parameters in SystemParametersInfo.
      user32: Accept SPI_GET/SETMOUSEVANISH parameters in SystemParametersInfo.
      ntdll: Accept ProcessDebugObjectHandle in QueryInformationProcess.
      kernel32: Catch invalid memory accesses in resource enumeration handlers.
      kernel32: Always use ANSI version of OutputDebugString.
      kernel32: Send debug strings to system-wide monitor.
      ntdll: Handle invalid pointers in NtQueryInformationProcess(ProcessDebugObjectHandle).
      ntdll: Add stub for NtSetInformationThread(ThreadHideFromDebugger).

André Hentschel (4):
      jscript: Update German translation.
      widl: Add ARM support.
      jscript: Update German Translation.
      libwine: Implemented the call_on_stack function for ARM.

Aric Stewart (3):
      advapi32: Fill the PLSA_REFERENCED_DOMAIN_LIST parameters for LsaLookupNames2 and LsaLookupSids.
      comctl32: Implement LISTVIEW_ApproximateViewRect for icon.
      comctl32/tests: LISTVIEW_ApproximateViewRect tests for LV_VIEW_ICON.

Aurimas Fišeras (2):
      jscript: Update Lithuanian translation.
      jscript: Update Lithuanian translation.

Austin English (6):
      dwmapi: Add a stub for DwmGetTransportAttributes.
      dwmapi: Add a stub for DwmGetGraphicsStreamClient.
      comctl32: Add missing prototype.
      jscript: Add missing prototype.
      atl: Add missing prototypes.
      ntdll: Add a stub for NtQuerySystemEnvironmentValue.

Chris Robinson (1):
      openal32: Watch for the generic device names, and map them to the default.

Colin Fowler (1):
      libport: Add generic interlocked instruction support fallback.

Damjan Jovanovic (7):
      sti: Test behavior of creation with the A/W functions versus STI_VERSION_FLAG_UNICODE.
      sti.h: Define the IStilImageW interface.
      sti.h: Add some missing defines.
      wine.inf: Add the still image class key.
      sti: Add stubs for the IStillImageW interface.
      sti: Add aggregation tests for the IStillImageW interface.
      sti: Allow CoCreateInstance aggregation and fix a broken test.

Dan Kegel (1):
      ntdll: Refactor test_NtQueryDirectoryFile to be table driven, check DIRECTORY attribute.

Detlef Riekenberg (14):
      urlmon/tests: Fix sec_mgr tests on win98 (IE 4).
      localspl: Implement fpConfigurePort.
      winspool: Use the backend for ConfigurePortW.
      localspl: Implement fpDeletePort.
      winspool: Use the backend for DeletePortW.
      localspl: Unload only portmonitors in monitor_unloadall.
      localspl: Fix type of a WCHAR buffer.
      localspl: Implement fpAddPort.
      winspool: Use the backend for AddPortW.
      localui: Fix a memory leak.
      include: Fix the fpAddPortEx prototype in struct PRINTPROVIDOR.
      localspl: Implement fpAddPortEx.
      winspool: Use the backend for AddPortExW.
      fltlib: Add a stub dll.

Dmitry Kislyuk (1):
      kernel32/tests: Pass test on error code returned by Windows 7.

Dmitry Timoshkov (1):
      gdi32: Rework the test for too large width/height font ratio to pass with different font heights, make it pass under Wine.

Dylan Smith (5):
      richedit: Use ITextHost interface in ME_LinkNotify.
      secur32: Remove redendant call to gnutls_certificate_get_peers.
      secur32: Free schannel handle table.
      richedit: Added test to show that handle to parent is cached.
      richedit: Handle to parent window is cached.

Eric Pouech (6):
      msvcrt: Added __uncaught_exception support.
      dbghelp: Enhance support for constant values in dwarf debug information.
      winedbg: Properly manage Wine's dbghelp extensions for constant symbols which value is passed by ref.
      winmm: Correctly fill the yield-data parameter in mciGetYieldProc.
      winmm: Remove direct inclusion of winemm.h in winemm16.h.
      winmm: Reduce in MMSystem the calls to WinMM's internals.

Erik Inge Bolsø (1):
      wininet: Add test for response without headers, avoid crash.

Francois Gouget (7):
      ntdll/tests: Add a trailing '\n' to an ok() call.
      mshtml: Make HTMLDocumentNode_destructor() static.
      ws2_32: Make wsaErrno() and wsaHerrno() static.
      system.drv16: Remove the 32-bit timer callback support.
      rpcrt4: A signed 1-bit bitfield doesn't make much sense; use unsigned.
      comctl32/tests: Make test_ApproximateViewRect() static.
      Assorted spelling fixes.

Frédéric Delanoy (2):
      jscript: Update French translation.
      jscript: Update French translation.

Ge van Geldorp (16):
      setupapi/tests: Add acceptable error code for Win7.
      shell32/tests: Fix shellpath test on Win7.
      comctl32/tests: Fix toolbar test on comctl32 version 4.72.
      shell32/tests: Fix shlexec on Vista and higher.
      kernel32/tests: Fix atom tests on Win7.
      ntdll/tests: Fix atom tests on Win7.
      comctl32/tests: Fix misc test on Win7.
      shlwapi/tests: Add acceptable error code for Win7 clist test.
      kernel32/tests: Add acceptable error codes for Win7 process test.
      secur32/tests: Add acceptable error code for Win7 ntlm test.
      user32/tests: Fix sysparams test failure on Win7.
      schannel/tests: Fix crash on Win7.
      mapi32/tests: Skip tests if no default email client is installed.
      ntdll/tests: Fix exception test failure on Win7.
      kernel32/tests: Skip some resource tests on Win7.
      kernel32/tests: Check last error before calling lstrcmpA() since it may reset GLE.

Gerald Pfeifer (1):
      winebuild: Add support for PLATFORM_FREEBSD.

Hans Leidekker (6):
      msi: Respect UI level in custom action type 19.
      msi: Test the Installed property.
      msi: Don't set the Installed property twice.
      msi: Test installing over in-use files.
      msi: Schedule a rename operation when the file to overwrite is in use.
      secur32: Test passing null authentication data to AcquireCredentialsHandle.

Henri Verbeet (51):
      wined3d: Properly keep texture references in the stateblock.
      wined3d: Keep vertex declaration references in the stateblock.
      wined3d: Remove some redundant code in IWineD3DVertexDeclarationImpl_Release().
      wined3d: Cleanup IWineD3DDeviceImpl_SetTexture() a bit.
      wined3d: Just use the actual array size as argument to memcpy() in stateblock_copy().
      wined3d: Fix a typo.
      wined3d: Add a separate function for state block initialization.
      wined3d: Clear the correct "activeLights" array in stateblock_copy().
      wined3d: Pass IWineD3DStateBlockImpl pointers to stateblock_copy().
      wined3d: Explicitly pass gl_info to stateblock_savedstates_copy().
      wined3d: Explicitly pass gl_info to stateblock_savedstates_set().
      wined3d: Make some internal stateblock function arguments const.
      wined3d: Add a separate function for copying stateblock values.
      wined3d: Get rid of stateblock_copy().
      wined3d: Add a separate function for initializing the "contained_*" fields from the "changed" field.
      wined3d: Get rid of stateblock_savedstates_copy().
      wined3d: Simplify stateblock_savedstates_set().
      wined3d: Use stateblock_init_contained_states() for WINED3DSBT_ALL stateblocks.
      wined3d: Add a separate function to initialize the saved states for WINED3DSBT_PIXELSTATE.
      wined3d: Use stateblock_init_contained_states() for WINED3DSBT_PIXELSTATE stateblocks.
      wined3d: Add a separate function to initialize the saved states for WINED3DSBT_VERTEXSTATE.
      wined3d: Use stateblock_init_contained_states() for WINED3DSBT_VERTEXSTATE stateblocks.
      wined3d: Fix the values of NUM_SAVEDPIXELSTATES_T and NUM_SAVEDVERTEXSTATES_R.
      wined3d: Move the pixel/vertex states arrays to stateblock.c.
      wined3d: Use the actual array sizes to determine the number of the various pixel/vertex states.
      d3d9: Remove D3D9_RENDER_STATES from the stateblock tests.
      d3d9: Remove useless typedefs from the stateblock tests.
      d3d9: Always pass "struct event_data" to "event_fn" in the stateblock tests.
      d3d8: Always pass "struct event_data" to "event_fn" in the stateblock tests.
      d3d8: Make the individual stateblock tests responsible for checking data.
      d3d9: Make the individual stateblock tests responsible for checking data.
      wined3d: Keep references to the textures initially captured by CreateStateBlock() as well.
      wined3d: Keep a reference to the vertex declaration initially captured by CreateStateBlock() as well.
      wined3d: Move the SM1 opcode enum to shader_sm1.c.
      wined3d: Remove some unused code.
      d3d8: Get rid of the unused "return_data_buffer" in the stateblock tests.
      d3d9: Get rid of the unused "return_data_buffer" in the stateblock tests.
      d3d8: Use separate fields for data to check/apply in the stateblock tests.
      d3d9: Use separate fields for data to check/apply in the stateblock tests.
      d3d8: Rename abort_stateblock() to delete_stateblock() in the stateblock tests.
      d3d8: Rename abort_stateblock() to release_stateblock() in the stateblock tests.
      d3d8: Don't test D3DRS_DEBUGMONITORTOKEN in the stateblock tests.
      d3d9: Don't test D3DRS_DEBUGMONITORTOKEN in the stateblock tests.
      d3d8: Add some tests for CreateStateBlock().
      d3d9: Add some tests for CreateStateBlock().
      wined3d: Clear resources that we aren't recording in stateblock_init().
      wined3d: Capture some more renderstates in vertex and pixel stateblocks.
      d3d8: Add tests for D3DSBT_VERTEXSTATE stateblocks.
      d3d9: Add tests for D3DSBT_VERTEXSTATE stateblocks.
      d3d8: Add tests for D3DSBT_PIXELSTATE stateblocks.
      d3d9: Add tests for D3DSBT_PIXELSTATE stateblocks.

Huw Davies (1):
      oledb32: Implement conversions to DBTYPE_BYREF | DBTYPE_WSTR.

Jacek Caban (51):
      jscript: Use host global object as default 'this' if available and global object otherwise.
      mshtml: Added IHTMLDocument3::attachEvent implementation.
      urlmon.idl: Added IInternetHostSecurityManager and CONFIRMSAFETY declarations.
      jscript: Added ActiveXObject constructor stub implementation.
      mshtml: Added ScriptHost IServiceProvider stub implementation.
      mshtml: Added IInternetHostSecurityManager stub implementation.
      jscript: Added ActiveXObject constructor implementation.
      jscript: Added ActiveXObject tests.
      msxml3: Store pointer to node object in domtext.
      msxml3: Store xmlnode pointer in domattr.
      msxml3: Store xmlnode pointer in domcdata.
      msxml3: Store xmlnode pointer in domcomment.
      msxml3: Store xmlnode pointer in domfrag.
      msxml3: Store xmlnode pointer in entityref.
      msxml3: Store xmlnode pointer in dom_pi.
      msxml3: Get rid of node internal IUnknown.
      mshtml: Return HTMLDocumentNode object in ScriptHost::QueryService for SID_SInternetHostSecurityManager.
      urlmon: Correctly handle pPolicy and pContext arguments in ProcessUrlAction.
      mshtml: Added IInternetHostSecurity::ProcessUrlAction implementation.
      urlmon: Improve QueryCustomPolicy stub.
      urlmon: Added support for URLACTION_ACTIVEX_OVERRIDE_SCRIPT_SAFETY.
      mshtml: Added QueryCustomPolicy implementation.
      mshtml.idl: Added DispHTMLAnchorElement declaration.
      mshtml: Moved init_dispex call to HTMLElement_Init.
      mshtml: Added HTMLAnchorElement dispex data.
      mshtml: Use dispinterface DISPID_VALUE implementation if available.
      mshtml: Get rid of no longer needed HTMLLocation_value.
      mshtml: Added IHTMLAnchorElement::get_href implementation.
      mshtml: Added IHTMLAnchorElement::get_href tests.
      mshtml: Use document.defaultView to get iframe contentWindow.
      mshtml: Added IHTMLDOMNode::cloneNode implementation.
      jscript: Added FIXME about IClassFactoryEx.
      mshtml.idl: Moved IHTMLElement dispinterface declaration to macro.
      mshtml.idl: Moved IHTMLElement2 dispinterface declaration to macro.
      mshtml.idl: Moved IHTMLElement3 dispinterface declaration to macro.
      mshtml.idl: Moved IHTMLElement3 dispinterface declaration to macro.
      mshtml.idl: Moved IHTMLUniqueName dispinterface declaration to macro.
      mshtml.idl: Moved IHTMLDOMNode dispinterface declaration to macro.
      mshtml.idl: Moved IHTMLDOMNode2 dispinterface declaration to macro.
      mshtml.idl: Moved IHTMLDatabinding dispinterface declaration to macro.
      mshtml.idl: Group common sets of disinterfaces in macros.
      mshtml.idl: Moved IHTMLElement5 dispinterface declaration to macro and add it to all element types.
      mshtml.idl: Moved IElementSelector dispinterface declaration to macro and added it to all element types with data.
      mshtml.idl: Moved IHTMLDOMConstructor dispinterface declaration to macro and add it to all element types.
      mshtml: Added IHTMLElement2::clientTop implementation.
      mshtml: Added IHTMLElement2::clientLeft implementation.
      mshtml: Added IHTMLElement2::client[Top|Left] tests.
      mshtml: Fixed typo in IHTMLElement2::get_scrollHeight.
      jscript: Query created ActiveXObject for IObjectWithSite interface.
      jscript: Call SetSite on created ActiveX object.
      urlmon: Fixed tests for systems with stored cookie for winehq.org.

Jeff Zaroyko (2):
      imm32/tests: Add another combination which should fail.
      imm32: dwIndex flags are mutually exclusive.

Joel Holdsworth (5):
      gdi32: Added tests for StretchBlt.
      gdi32: Added tests for StretchDIBits.
      comdlg32: Replaced file dialog house icon with the shell icon for desktop.
      user32: Fixed CURSORICON_CreateIconFromBMI to preserve the alpha channel.
      comctl32/tests: Added tests for ImageList_DrawIndirect.

Juan Lang (17):
      ntdll/tests: Add tests for process and thread affinity.
      ntdll: Don't allow setting a zero process affinity.
      ntdll: Don't allow setting a zero thread affinity.
      server: Setting a process's affinity sets all of its threads' affinities too.
      server: Use kernel support for thread affinity when available.
      kernel32: Set time between interrupts in GetSystemTimeAdjustment.
      server: A thread's affinity is restricted to the process affinity.
      wininet: Move initialization of SSL_CTX to library initialization time.
      wininet: Protect OpenSSL initialization with critical section.
      wininet: Unload OpenSSL when unloading wininet.
      wininet: Set callbacks needed by OpenSSL for multithreaded use.
      wininet: Correct user agent handling.
      wininet: Quiet a fixme.
      winhttp: Move initialization of SSL_CTX to library initialization time.
      winhttp: Protect OpenSSL initialization with critical section.
      winhttp: Unload OpenSSL when unloading winhttp.
      winhttp: Set callbacks needed by OpenSSL for multithreaded use.

Jörg Höhle (9):
      ole32/tests: Guard ReleaseStgMedium with SUCCEEDED.
      winmm: Require at least 16 bytes in the WAVE fmt header for PlaySound.
      wineoss: Fix the buffer size check for more than 2 channels.
      winecoreaudio: Accept up to 8 channels.
      dsound: Get rid of redundant NULL check.
      winmm/tests: Correct (IMA)ADPCM test.
      dsound: Enforce invariant about BlockAlign and nAvgBytesPerSec.
      dsound: Correct deallocations when DuplicateSoundBuffer fails.
      mcicda: Fix an early return statement in Open.

Maarten Lankhorst (4):
      winealsa.drv: Small capture fixes.
      winealsa.drv: Add non-mmap support to dscapture.
      winealsa.drv: Remove test for mmap in waveinit.
      winealsa.drv: Fix dsoutput to work better with pulseaudio.

Marcus Meissner (3):
      jscript: Initialize val_str (Coverity).
      mapi32: Fixed uninitialized variable (Coverity).
      wpp: Fixed resource leakages (Coverity).

Markus Stockhausen (2):
      ole32/storage32: Fix for reference counters in nested storage.
      ddraw: Set dwBackBufferCount=0 in CreateSurface for backbuffer.

Matteo Bruni (7):
      wpp: Remove the assumption ppy_error calls exit().
      wpp: Manage malloc failure in pp_xstrdup.
      wpp: Handle memory allocation failures in tokens management code.
      wpp: Handle remaining memory allocation failures in ppl.l and ppy.y.
      wpp: Handle remaining memory allocation failures.
      wpp: get_string() now can return NULL, handle it.
      wpp: Add error management callbacks.

Michael Stefaniuc (14):
      dxdiagn: Remove duplicate include.
      windowscodecs: Remove trailing '\'.
      msi/tests: Remove trailing '\'.
      server: A signed 1-bit bitfield doesn't make much sense; use unsigned.
      winhttp: 'http1_1' is already defined in the private header.
      mapi32: Use 0 instead of (wrongly) casting NULL to an integer.
      comctl32/tests: Silence some Win64 compile warnings.
      user32/tests: Use LONG instead of long.
      oleaut32/tests: Use LONG instead of long.
      kernel32/tests: Use better types than long.
      ws2_32/tests: Use LONG instead of long.
      dlls/msacm32: Avoid a sizeof()+cast in an ok() call.
      user32: Fix a memory leak on a error patch (Smatch).
      msvcrt/tests: Use LONG instead of long.

Mike Kaplinskiy (1):
      ws2_32/tests: fix failure on win98/me.

Nikolay Sivov (64):
      comctl32/monthcal: Copy SYSTEMTIME with a simple assignment.
      comctl32/monthcal: Make tests not depend on each other.
      comctl32/monthcal: Store full date info for selection at creation time.
      comctl32/monthcal: Fix some bugs with date range.
      comctl32/monthcal: Make year edit box readonly, cleanup LButton handler to be more readable.
      comctl32/monthcal: Gather currently selected year and month into a single structure.
      comctl32/monthcal: Store full date info to current date on todaylink with LButton.
      comctl32/monthcal: Properly handle Goto Today popup menu (on RButton).
      comctl32/monthcal: Fix memory leak on MCN_GETDAYSTATE notification.
      comctl32/monthcal: Move MCN_GETDAYSTATE notification to a helper.
      comctl32/monthcal: Prevent configured range exceeding with prev/next buttons.
      comctl32/monthcal: Fix timestamp storing on MCM_SETRANGE/MCM_SETSELRANGE.
      comctl32/monthcal: Add parameter validation to MCM_HITTEST handler.
      comctl32/monthcal: Right button should trigger a popup menu on release.
      comctl32/monthcal: Months popup menu should be placed at current pointer position.
      comctl32/monthcal: Use a single calendar for hittesting tests, make point calculation at runtime.
      comctl32/monthcal: Minimal rectangle should be zero based.
      comctl32/monthcal: Control elements should be centered in client area, and left/top aligned if they don't.
      comctl32/updown: Fix some test failures on Win95 (comctl32 4.0).
      comctl32/monthcal: Fix locale dependent test failure.
      comctl32/monthcal: Fix hittesting for MCHT_CALENDARDATEPREV/MCHT_CALENDARDATENEXT cases.
      comctl32/monthcal: Make prev/next month day a current selection on LButton release.
      comctl32/monthcal: Move selection logic to LButton release handler, fix notifications order.
      comctl32/datetime: If we already have a 4 digit year reset it on first char typed.
      comctl32/monthcal: Respect locale abbreviated day names when calculating control dimensions.
      comctl32/datetime: Separate tests from each other.
      comctl32/datetime: Some DTM_SETSYSTEMTIME tests.
      comctl32/datetime: Always store a recalculated day of week instead of a value passed in (DTM_SETSYSTEMTIME).
      comctl32/datetime: Use SDK defined class name instead of another local constant.
      comctl32/monthcal: Don't request locale data when it isn't needed.
      comctl32/monthcal: No need to redraw if month didn't change after popup menu.
      comctl32/monthcal: Move MCN_SELCHANGE/MCN_SELECT notifications to helpers.
      comctl32/monthcal: Changing MCS_MULTISELECT isn't allowed after creation, set default value properly.
      comctl32/monthcal: Fix parameter validation in MCM_SETMAXSELCOUNT handler.
      comctl32/monthcal: Drop exstyle parameter, it isn't used.
      comctl32/monthcal: Implement MCM_GETMONTHRANGE for GMR_VISIBLE flag, single calendar control only.
      comctl32/monthcal: Handle mouse pointer followed focus rectangle more accurately.
      comctl32/monthcal: Use true date comparison on multiselection, not only the day is valuable.
      comctl32/monthcal: Check range limits in MCM_SETCURSEL.
      comctl32/monthcal: Parameter fixes for MCM_SETSELRANGE handler: swap selection bounds, store day of week.
      comctl32/monthcal: Check configured selection range max width in MCM_SETSELRANGE handler.
      comctl32/monthcal: Simplify WM_MOUSEMOVE handler.
      comctl32/monthcal: Remove today rectangle and focus drawing code from loops.
      comctl32/monthcal: Check date limits on prev/next month buttons and year UpDown control.
      comctl32/monthcal: Fix parameter validation in MCM_SETCURSEL handler.
      ole32: Check source pointer in StringFromGUID2.
      comctl32/monthcal: Fix '&->&&' typo in focused day helper.
      comctl32/monthcal: Use a single timer for auto month scroll with prev/next buttons.
      comctl32/monthcal: Use a timer to auto update today date memory.
      comctl32/monthcal: Fix a nice typo in test message.
      comctl32/monthcal: Optimize WM_LBUTTONUP handler.
      comctl32/monthcal: Update day of week properly while iterating with prev/next buttons and hit testing.
      comctl32/monthcal: Recalculate control layout on MCS_WEEKNUMBERS style change.
      comctl32/monthcal: Invalidate unconditonally on MCM_SETFIRSTDAYOFWEEK.
      comctl32/monthcal: Cleanup top drawing helper namespace, reduce parameter count in prev/next draw helpers.
      comctl32/monthcal: Fix the way a first day of week is handled.
      comctl32: Use user32 control names from public header constants instead of defining over and over again.
      comctl32/monthcal: Implement MCM_GETMONTHRANGE for GMR_DAYSTATE flag and a single calendar control.
      comctl32/datetime: Block WM_SETTEXT message.
      comctl32/datetime: Properly handle hit on separators and empty control area.
      comctl32/datetime: Fix selections painting - use text rectangle, not whole field.
      comctl32/monthcal: Really use locale data for all days.
      comctl32/datetime: Use locale data to compute field widths for day and month.
      comctl32/datetime: Draw field text horizontally centered.

Owen Rudge (13):
      mapi32: Pass DllGetClassObject through to Extended MAPI provider.
      comctl32: Implement highlighting (marquee) selection support in listview.
      mapi32: Add stub of Extended MAPI wrapper for MAPISendMail.
      include: Add MAPI_USE_DEFAULT and MDB_NO_DIALOG definitions to mapidefs.h.
      mapi32: Log on via Extended MAPI and get the default message store.
      include: Add IMsgStore definition.
      include: Add definitions for IMAPIContainer, IMAPIFolder, IMessage.
      mapi32: Open the Drafts folder in preparation for creating a message.
      mapi32: Create new message and show editor window.
      include: Add IAttach interface to mapidefs.h.
      mapi32: Add attachment support to sendmail_extended_mapi.
      comctl32: Capture the mouse when performing a listview marquee selection.
      comctl32: Ensure coordinates are valid during listview marquee selection.

Paul Vriens (25):
      gdiplus/tests: Fix some test failures on older gdiplus versions.
      jscript: Add some Dutch translations.
      kernel32/tests: Fix some test failures on WinMe.
      include: Add an error code.
      user32/tests: Don't crash on Win9x/WinMe/NT4.
      comctl32/tests: Fix some test failures.
      msi/tests: Skip some tests on Win9x/WinMe.
      setupapi/tests: Don't crash on WinMe.
      secur32/tests: Skip some tests on WinMe to avoid a crash.
      fltlib: Add a stub for FilterConnectCommunicationPort.
      comctl32/tests: Fix some test failures on older comctl32 versions.
      comctl32/tests: Fix some test failures (MCM_SETRANGE and MCM_GETRANGE).
      comctl32/tests: Fix some test failures (MCM_SETCURSEL and MCM_GETCURSEL).
      comctl32/tests: Fix some test failures (MCM_SETUNICODEFORMAT and MCM_GETUNICODEFORMAT).
      comctl32/tests: Fix some test failures (MCM_GETSELRANGE).
      user32/tests: Fix some test failures with 9x/Me on VMware.
      kernel32/tests: Don't crash on WinMe.
      setupapi/tests: Cleanup after SetupCopyOEMInf() tests.
      comctl32/tests: Fix some test failures on older comctl32 versions.
      ddraw/tests: Fix some test failures on WinME/VMware.
      user32/tests: Skip some tests on Win9x/WinMe.
      shell32/tests: Fix some test failures on WinMe (FO_COPY).
      shell32/tests: Fix some test failures on WinMe (SHPathPrepareForWrite).
      shell32/tests: Fix remaining failures on WinMe.
      setupapi/tests: Fix some test failures on Win98.

Peter Dons Tychsen (2):
      user32: Add exception handling for timer callbacks.
      cmd: Fix handling of quotes when line includes redirections and/or pipes.

Peter Oberndorfer (9):
      shlwapi: Fix spec file for some unicode functions.
      shlwapi: Fix prototype of SHCreateMemStream.
      shlwapi: Implement IStream::Stat for registry/memory streams.
      shlwapi: Fix logic of SHCreateMemStream in combination with NULL pointers.
      shlwapi: Fix IStream::Read for reg/mem stream.
      shlwapi: Implement IStream::Write, Seek and SetSize.
      shlwapi: Remove pointer check in IStream::Clone, it also crashes on Windows.
      shlwapi: Allow SHOpenRegStream2 A/W to work with not existing values.
      shlwapi: Write back data to registry when closing reg stream.

Piotr Caban (5):
      jscript: Added Global.escape() implementation.
      jscript: Added some missing functions stubs.
      jscript: Added Date.toGMTString implementation.
      jscript: Fix implementation of Global.escape.
      jscript: Fixed escaped characters processing.

Rein Klazes (1):
      comdlg32: Make explorer type file dialogs without custom template or hook proc resizable.

Rico Schüller (18):
      d3d10: Rename ConstantBuffer's variable to member.
      d3d10: Add the D3D10_CBUFFER_TYPE enum.
      d3d10: Parse constant buffer type.
      d3d10: Make the constant buffer a variable.
      d3d10: Forward ID3D10EffectVariable functions from ID3D10EffectConstantBuffer to ID3D10EffectVariable.
      d3d10: Implement ID3D10EffectType::GetMemberName().
      d3d10: Implement ID3D10EffectType::GetMemberSemantic().
      d3d10: Improve ID3D10EffectType::GetMemberName().
      d3d10: Add null_type.
      d3d10: Implement ID3D10EffectType::GetMemberTypeByIndex().
      d3d10: Implement ID3D10EffectType::GetMemberTypeByName().
      d3d10: Implement ID3D10EffectType::GetMemberTypeBySemantic().
      d3d10: Implement ID3D10EffectVariable::GetMemberByIndex().
      d3d10: Implement ID3D10EffectVariable::GetMemberByName().
      d3d10: Implement ID3D10EffectVariable::GetMemberBySemantic().
      d3d10: Remove double declared variable in parse_fx10_variable().
      d3d10/tests: Add constant buffer type test.
      d3d10/tests: Add variable type test.

Roderick Colenbrander (2):
      winex11: Add support for 16-bit/32-bit DIB sections.
      winex11: Move XRENDERINFO allocation in a separate function.

Stefan Dösinger (13):
      wined3d: Don't use GL_NV_texture_shader on OSX.
      wined3d: Test if result.clip[] works correctly.
      wined3d: Fix an error string.
      wined3d: Fix a contradicting comment.
      wined3d: Fix vs_2_0 sgn.
      d3d9: Test viewports that are bigger than the surface.
      wined3d: SetRenderTarget doesn't change the viewport in d3d7.
      wined3d: SetRenderTarget bypasses stateblock recording.
      wined3d: SetRenderTarget resets the scissor rect.
      d3d9: Reduce the YUV test precision.
      wined3d: Don't write to result.color in arb_add_sRGB_correction.
      wined3d: Split the clip_parameters[2] array.
      wined3d: Don't reserve clipping constants needlessly.

Stefan Leichter (1):
      kernel32: Check parameter of CheckRemoteDebuggerPresent with tests.

Vincent Povirk (25):
      user32: Invert y in DrawTextEx in GM_COMPATIBLE mode if y increases up.
      ole32: We do need to implement Commit/Revert for non-root storage.
      ole32/tests: Test substorages of transacted storage objects.
      ole32/tests: Add test for IStorage::Revert.
      ole32/tests: Add test for non-root transacted storage objects.
      ole32: Remove useless comments.
      include: Add gdiplus hatch brush functions to headers.
      gdiplus: Use gdi texture brushes to draw hatch brushes.
      gdiplus: Add some hatch brushes not present in gdi.
      windowscodecs: Implement GetResolution for the PNG decoder.
      windowscodecs: Support more formats in the BMP encoder.
      windowscodecs: Add test for BMP encoder.
      windowscodecs: Add stub PNG encoder.
      windowscodecs: Implement Initialize for the PNG encoder.
      windowscodecs: Implement CreateNewFrame for the PNG encoder.
      windowscodecs: Implement Initialize for the PNG frame encoder.
      windowscodecs: Implement SetPixelFormat for the PNG encoder.
      windowscodecs: Implement SetSize for the PNG encoder.
      windowscodecs: Implement SetResolution for the PNG encoder.
      windowscodecs: Implement WritePixels for the PNG encoder.
      windowscodecs: Implement WriteSource for the PNG encoder.
      windowscodecs: Implement Commit for the PNG frame encoder.
      windowscodecs: Implement Commit for the PNG encoder.
      windowscodecs: Add test for PNG encoder.
      gdiplus: Enable encoding of PNG images.

Vladimir Pankratov (1):
      jscript: Update Russian translation.

Wilfried Pasquazzo (2):
      user32/tests: DrawState: New test case for correct drawing of icons.
      user32: DrawState always uses real icon size for drawing.

Wim Lewis (2):
      winex11: Font metric cache file cleanups.
      winex11: Fix font metric cache filename generation.

--
Alexandre Julliard
julliard@winehq.org
