The Wine development release 1.1.6 is now available.

What's new in this release (see below for details):
  - Beginnings of schannel implementation using GnuTLS.
  - Many fixes from various code analysis tools.
  - Support for X11 desktop work area.
  - Fixes for Richedit tables.
  - More complete JavaScript support.
  - Various bug fixes.

The source is available from the following locations:

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

   2122  wrong window size on startup, busted graphics and invisible text in listboxes.
   3875  ACM format codecs shutdown sound in WINE
   3915  Win32 GTK apps are all black when run in WINE (dogfood)
   5008  Wine 0.9.11 does not run applications on FreeBSD 6.0
   5145  Microsoft Visual C++ Runtime Library (Etherlords 2 Demo)
   6253  EQ II Patcher Fails
   6382  CaptureWizard fails to install
   7051  EVE Online isn't displaying some elements of the ui
   7186  fonts in applications using cairo ( not only through GTK )
   7200  Tab control flickers too much
   7257  Documents Manager doesn't find iexplore.exe
   7295  wine.inf's timezone data is inconsistent with Windows
   7368  eISLP -font too small on main list
   7441  GlobalMemoryStatus 2GB limiting results in failure of virtual > physical memory checks
   7452  JScript not functioning
   7488  Screen.ActiveForm  run-time error 91
   7581  Shell Folder AutoComplete List in browseui.dll not implemented
   7645  Wine tests fail under FreeBSD and other problems
   7829  Photoshop CS3 install / Adobe Setup fails at runtime
   7996  serious sam dedicated servers don't work
   9298  Empire at war, best of PC install failes
   9319  Sony Vegas v4.0: Menus dissapear after single view
   9519  Adobe Reader 8.1 (and Acrobat Pro 8): Unable to accept License (window.external object)
   9877  AT1 crashes when system.ini or wini.ini have too many lines
   9929  Internet Explorer 7 installer complains it cannot verify integrity of installation files, quits
   9963  GPSMapEdit: Unimplemented function gdiplus.dll.GdipGetImageDecodersSize
  10544  treeview scrolling on collapsing is broken on windows
  10933  PAF 5 unicode font displays with inconsistent size
  11294  Adobe Imageready 3 and 6 (part of Photoshop 6 and 7) and InDesign 2 tool option window in wrong place
  11735  ClocX: UpdateLayeredWindow needs to be implemented
  11838  Y axis inverted in tablet with OpenCanvas 1.1?
  11938  Valve Hammer Editor unusable: window mostly black
  11943  Wacom Tablet Y-axe gets inverted on click in ArtRage 2.5
  11948  TF2 and Portal do not render correctly with nvidia-drivers-169.x and above
  12059  Help window cannot be closed
  12133  Desktop directory is invalid
  12144  Endnote demo crashes on launch in gdiplus
  12255  Static sound effects with Syberia 2
  12309  energyXT gui rendering brings the system down to its knees.
  12421  Digsby beta crashes during login (needs lots of gdiplus functions)
  12447  MSN Messenger 7.0 crash while loading the Contact list
  12861  Gtk+ demo (gtk-demo.exe) doesn't work
  13214  No icons on control buttons with Audacity 1.2.6
  13520  Facewound crosshair does not render
  13634  dogfood: geany not usable at all
  13728  Crash when running Oblivion installation program
  13745  Installing DirectX breaks "gold" VB6 heavy application
  14188  utorrent - it disconnects fast leaching peers with Error 10022
  14281  Richedit's EM_SETTEXTEX handler doesn't notice \urtf as valid RTF sequence
  14353  problem with displaying digits in the bookkeeping proram "Mala Ksiegowosc Rzeczpospolitej"
  14422  AutoCAD 2005, Adobe Photoshop CS3 crash on unimplemented function gdiplus.dll.GdipGetFamily
  14642  mIRC 6.33 hang up then IRC channel topic has ISO-8859-2 char
  14674  Wine WordPad fails to correctly open CP1251 RTF documents with russian letter "ya"
  14732  WINE Wordpad crashes horizontally resizing certain RTF documents
  14744  Burning Sea: draw regression under alpha UI elements
  14773  Adobe Photoshop CS3 crashes at startup on unimplemented function gdiplus.dll.GdipGetFontHeight, GdipGetFontStyle
  14800  directx-dinput problem in PES2008
  14913  Dawn of war, transperent characters  become invisable
  14986  Rome Total War v1.5 Gold crashs if buttons that highlight on mouse hover
  15009  Black & White 2 crash on start up since 0.9.44
  15066  FedExShipManager installer crashes in msi
  15077  Myth II 1.6 fails with Wine 1.1.3 (regression from 1.1.2)
  15096  This user account does not have sufficient rights to install
  15138  Spore crashes after the first stage of life
  15210  MIDI-OX installer crashes
  15215  Microsoft Office 2007: Attempting to update IME dictionary => crash (dogfood)
  15279  Saxo Trader installer crashes into unimplemented msi functoims
  15281  PROFILE_Load and friends doesn't handle ini files with CR-only line endings
  15298  Highway Pursuit crashes with a X Error
  15313  Leela: graphics do not show (win32/GDI?)
  15332  Compiling on PC-BSD with -Werror fails in dlls/mscms/handle.c
  15334  richedit: cursor doesn't change when over a scrollbar
  15335  Regedit: char format, different type arg errors
  15344  reaper sequencer crashes
  15347  Lexware: Installation fails with "Systemprüfung konnte nicht erfolgreich abgeschlossen werden"
  15366  Starcraft cant find CD
  15378  mshtml/tests: dom.c fails in gcc 3.3/CFLAGS="-Werror"
  15387  VB6 Format error in wine 1.1.4
  15391  "--without-opengl" configure option doesn't compile anymore
  15413  dualcad crashes into msvcrt
  15416  Garena : division by zero in comctl32
  15488  IFC Trade Terminal crash on unimplemented function dwmapi.dll.DwmExtendFrameIntoClientArea
  15507  winex11.drv regression causes ClocX 1.5 beta 2 installer window to be hidden

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

Changes since 1.1.5:

Alexander Morozov (5):
      ntoskrnl.exe: Initialize StackSize field of DEVICE_OBJECT structure.
      include: Add some definitions.
      include: Add usb.h, usb100.h, usb200.h and usbdlib.h.
      ntoskrnl.exe: Implement some functions.
      ntoskrnl.exe: Fix trace typo.

Alexander Nicolaysen Sørnes (3):
      regedit: Fix char escaping for registry export.
      regedit: Fix some fprintf arguments.
      netapi32: Improve NetUserGetLocalGroups stub.

Alexandre Julliard (22):
      configure: Always use -fno-builtin if supported, since it's needed for scanf too.
      ntdll/tests: Fix a few test failures on NT4.
      user32/tests: Fix some more message test failures.
      comctl32/tests: Fix a couple of message test failures.
      winex11: Fix SetLayeredWindowAttributes when called on a thread that doesn't have any window.
      regedit: Fix file exports in ASCII format.
      configure: Make sure opengl is not built with --without-opengl is specified.
      user32/tests: Fix more message test failures on NT4 and XP.
      user32/tests: Fix the winstation tests on NT4.
      user32/tests: Fix some input test failures.
      user32/tests: Fix the listbox tests on Win9x and NT4.
      gdiplus: Fix a string buffer overflow.
      advapi32: Always pass a valid argv pointer to a service even if there are no arguments.
      oleaut32: Fix a couple of interface registrations to match Windows.
      inetcomm: Add missing license header.
      ntdll: Preserve the 2K block size returned for CDROMs.
      msvcrt: Pass the command interpreter as exe name from _wpopen.
      server: Follow symlink even with OBJ_OPENLINK unless it is the last element of the path.
      ws2_32: Allow arbitrary-sized iovecs again in WSASendTo and WSARecvFrom.
      msi/tests: Clean up the binary.dat file.
      widl: Add support for attributes on enum, struct and union definitions.
      stdole2: Add some missing attributes and fix some typos.

Alistair Leslie-Hughes (9):
      mshtml: Implement IDispatch for IHTMLDOMNode2.
      mshtml: Implement IDispatch for IHTMLDOMNode.
      mshtml: Implement IDispatch for IHTMLElementCollection.
      mshtml: Implement IDispatch for IHTMLDOMChildrenCollection.
      mshtml: Implement IHTMLBodyElement put_background.
      msxml3: Correct cast.
      gdiplus: Stub GdipRecordMetafileFileName and GdipRecordMetafileFileNameI.
      msxml3: Add IXMLHTTPRequest support.
      mshtml: Implement IHTMLStyle put/get borderWidth.

Andrew Nguyen (1):
      wine.inf: Add entry for fake wintab32.dll.

Andrew Talbot (12):
      comdlg32: Sign-compare warnings fix.
      comctl32: Sign-compare warnings fix.
      credui: Sign-compare warnings fix.
      crypt32: Sign-compare warnings fix.
      crypt32: Sign-compare warnings fix.
      dbghelp: Sign-compare warnings fix.
      dbghelp: Sign-compare warnings fix.
      ddraw: Sign-compare warnings fix.
      dinput: Sign-compare warnings fix.
      ddraw: Sign-compare warning fix.
      dsound: Sign-compare warnings fix.
      gdi32: Sign-compare warnings fix.

Andrey Turkin (7):
      ntdll: Add stubbed implementations for NtQueryEaFile and NtSetEaFile.
      regedit: Ignore spaces in regedit files.
      dwmapi: Add a few stub implementations.
      kernel32: Add ExitProcess wrapper to please Shrinker.
      wordpad: Fix some unicode bugs.
      wordpad: Convert some ANSI calls to Unicode.
      wordpad: Fix some compile-time warnings.

Aric Stewart (19):
      imm32: ImmConfigureIME should return 0 when the type is IME_CONFIG_REGISTERWORD and the data is NULL.
      mlang/tests: IMultiLanguage2_GetRfc1766FromLcid can return S_FALSE on partial name matching so deal with this properly.
      mlang/tests: Some versions of native mlang return E_FAIL when source string is NULL and a source length is supplied.
      mlang/tests: GetLastError may not be set if Japanese conversions fail with S_FAIL so do not require that to skip the Japanese tests.
      mlang/tests: Skip testing a codepage returning the buggy, legacy unicodeFEFF charset (only appears to exist on windows 2008).
      mlang/tests: windows 2008's version of mlang E_FAILs when you pass in a rgelt in IEnumCodePage::Next.
      mlang: Correct use of uninitialized rfcstr value (Coverity 796).
      user32/tests: GetMenuItemCount returns an INT which can be -1 (Coverity 543).
      user32/tests: GetMenuItemCount returns INT so check for -1 (Coverity 542).
      ole32: Handle GetMenuItemCount returning -1 by changing UINT to INT (Coverity 228).
      version: Check for out of memory in VerInstallFileA/W conversion (Coverity 635).
      x11drv: ime: In the update functions if we get a null string with a len report this and fix len to be 0 (Coverity 656 and 655).
      winealsa: Don't dereference a potentially NULL value in the WARN statement (Coverity 93).
      quartz: Check hr so we are not incrementing a NULL (Coverity 106).
      wineoss: Don't dereference a potentially NULL value in the WARN statement (Coverity 93).
      d3d8: Initialize IDirect3DDevice8 *device to NULL in case of immediate cleanup (Coverity 795).
      oleaut32: In variants check bOverflow to make sure not to accidently overun static buffers in an overflow case (Coverity 313).
      browseui: Update AutoComplete Multi to have a stub implemntation of CLSID_ACListISF and IID_IACList2.
      mlang/tests: Make sure a given codepage has 'abc' before depending on that conversion to detect if a codepage is convertable.

Austin English (3):
      mscms: Undefine HIWORD to avoid a conflict.
      mshtml/tests: Fix gcc warnings.
      ntdll: Quiet a noisy fixme.

Christian Costa (8):
      d3dxof: Rewrite check_TOKEN and parse_TOKEN_* to work properly and be more logical.
      d3dxof: Implement IDirectXFileDataImpl_GetNextObject.
      d3dxof: Do not print an error for interfaces that can be queried to retrieve the type of the object.
      d3dxof: Implement IDirectXFileDataReference.
      d3dxof: Allow omission of comma which separates array elements.
      d3dxof: Enumerate only 2 levels of objects obtained from a reference.
      d3dxof: Store number of subojects for all top level objects.
      d3dxof: Enable referencing of named subobjects too.

Damjan Jovanovic (1):
      oleaut32: Fix double negative sign regression in VarFormat.

Detlef Riekenberg (6):
      jscript/tests: Fix a typo in ok().
      oleaut32: Remove redundant NULL check before SysFreeString.
      msxml3: Remove redundant NULL check before SysFreeString.
      msi: Remove redundant NULL check before SysFreeString.
      shdocvw: Remove redundant NULL check before SysFreeString.
      shdocvw: Set the default homepage.

Dimitrie O. Paun (1):
      user32: Fix a noisy FIXME.

Dmitry Timoshkov (13):
      gdi32: Add a test for PS_NULL pen being equal to NULL_PEN stock object.
      gdi32: Make the PS_NULL test pass under Wine.
      wine.inf: Correct the Pacific SA Standard Time entry.
      gdi32: Do not skip the font metrics update after the DC transform change.
      winex11.drv: Add support for _NET_WORKAREA.
      user32: Print the expected and received rectangles.
      gdi32: Make test_font_metrics require the font being selected into the DC.
      gdi32: Add a test for a font being selected into 2 DCs with different transformations.
      gdi32: Allow a rounding error in the text justification test.
      winex11.drv: Use the monitor work area to decide whether a window should be made managed.
      gdi32: Remove the code which bypasses the DC transformation checks.
      gdi32: Revert incorrect fix introduced in a5d288f08c08dc19d217093fdf8622605c92a4e0.
      winmm: The buffer provided by an application is valid only in the mmioOpen(FOURCC_MEM) case.

Dylan Smith (21):
      richedit: Removed space in front of function signature.
      richedit: Fixed test failure that happend on older builds of riched20.dll.
      richedit: Fixed test failing on windows version with larger font sizes.
      richedit: Make sure border properties are saved for undo/redo.
      richedit: Prevent font or colour buffer overflow on stream out.
      richedit: Prevent assertion failure when streaming out nested tables.
      richedit: Added code to stream out table border properties.
      richedit: Fixed a bug preventing streaming out nested table properties.
      richedit: Made sure table row gap/offset is copied on append row.
      richedit: Print hex string for strcmp test failing on Windows 95, 98 & NT4.
      richedit: Swapped the expected and destination buffers in a test.
      richedit: Avoided testing for undocumented behaviour causing test to fail.
      richedit: Removed invalid assertion.
      richedit: Unsigned cast char to avoid EOF equality.
      richedit: Use RTF reader for text starting with {\urtf.
      richedit: ES_AUTOHSCROLL window style disables word wrapping.
      user32: Converted rcScrollBar to screen coordinates.
      richedit: Show arrow cursor over scrollbar.
      runtest: More helpful error when top of wine directory isn't found.
      runtest: Modified the default program so that it might find the test program.
      runtest: Let the test program handle the lack of a test name.

Eric Pouech (21):
      dbghelp: Added stubs for add symbol functions.
      dbghelp: Added the latest stubs.
      dbghelp: Added stub for SymSetScopeFromAddr.
      dbghelp,winedump: Added support for symbol 0x113a.
      dbghelp,winedump: Added support for symbol 0x1012.
      winedump: Added support for dumping long long constants.
      winedump: Dump a bit more of information from procedures.
      winedump: Add preliminary dumping of 0x1136 and 0x1137 symbols.
      dbghelp: Silence symbol 0x1139.
      dbghelp,winedump: Added support for 0x113d symbol.
      dbghelp,winedump: Added support for symbol 0x113c.
      dbghelp,winedump: Added support for symbol symbol.
      winedump: Improved a bit the MS Tool V3 description.
      dbghelp: Now fully reading the leafs as variant for constants.
      dbghelp: Added support for real80 (aka long double) in inner codeview types.
      winedump: Now dumping codeview source line information.
      winedump: First stab at dumping the "new" line information out of pdb files.
      dbghelp: Rewrote the linetab access so that we don't need to allocate intermediate information.
      dbghelp: Add support for the newest line number information in pdb files.
      msvcrt: Implemented wcsncpy_s.
      msvcrt: Implemented splitpath_s.

Erik Inge Bolsø (1):
      kernel32: Fix PROFILE_Load to handle mac line endings.

Francois Gouget (10):
      kernel32/tests: Fix compilation on systems that don't support nameless unions.
      jscript: Remove spaces before '\n' in Wine traces.
      jscript: Add a trailing '\n' to a Wine trace.
      secur32: Fix compilation with GNU TLS 1.0.16.
      make_opengl: Avoid the deprecated '$#' construct.
      comctl32/tests: FreeMRUList(NULL) crashes on Win98 OSR0.
      comctl32/tests: Don't crash if adding the tooltip failed.
      mshtml/tests: Add a trailing '\n' to an ok() call.
      cryptdlg: Fix compilation on systems that don't support nameless unions.
      Assorted spelling fixes.

Gerald Pfeifer (1):
      cryptnet: Include stdarg.h.

Hans Leidekker (13):
      rpcrt4: Add stub implementations for RpcMgmtInqStats and RpcMgmtStatsVectorFree.
      winhttp: Implement WinHttpCreateUrl.
      winhttp: Add tests for WinHttpCreateUrl.
      wininet: Support setting username and password through options.
      shlwapi: Fix PathIsValidChar tests that fail on some versions of Windows.
      winhttp: Skip notifications that may arrive out of order.
      include: Define IRangeList, IIMAPCallback and IIMAPTransport.
      inetcomm: Add a stub implementation of IIMAPTransport.
      wldap32: Return an error when ldap_parse_sort_control or ldap_parse_vlv_control is called with NULL control array.
      wldap32: Add tests for ldap_parse_sort_control and make them pass.
      wininet: Option INTERNET_OPTION_CALLBACK is not settable.
      wininet: Avoid a crash on certain buffer size queries in HTTP_HttpQueryInfoW.
      usp10: Store glyph mappings and widths in the script cache.

Henri Verbeet (44):
      wined3d: Make sure update_minfilter and update_magfilter are initialized.
      wined3d: Destroy FBO entries in the context.
      wined3d: Fix a memory leak.
      wined3d: Don't try to draw with unsupported attribute data types.
      wined3d: Get rid of the wantsDepthStencilBuffer in IWineD3DSwapChainImpl.
      wined3d: Add/update the D3DPRESENTFLAG constants.
      wined3d: Skip copying the depth stencil if it's discarded.
      wined3d: Merge pshader_hw_map2gl() and vshader_hw_map2gl().
      wined3d: Use shader_glsl_log() in some more places.
      secur32: Skip schannel tests if schannel is unavailable.
      secur32: Require gnutls for schannel.
      secur32: Basic implementation of schannel AcquireCredentialsHandle/FreeCredentialsHandle.
      secur32: Allocate schannel client credentials.
      secur32: Allow gnutls debug output to be shown.
      wined3d: Move part of the shader instruction table to the backend.
      wined3d: atifs_shader_backend doesn't exist anymore.
      wined3d: Make some more ARB program functions private to the backend.
      wined3d: Make some more GLSL functions private to the backend.
      wined3d: Remove the "Wine 1.0 safety path".
      wined3d: Split SetGlTextureDesc() up.
      wined3d: Set the texture name at surface creation.
      wined3d: Properly handle the offset for compressed surfaces in IWineD3DDeviceImpl_UpdateSurface().
      wined3d: If a stage isn't mapped to a texture unit, we can't set default coordinates either.
      wined3d: Handle texture coordinates the same way we handle other vertex attributes.
      wined3d: Enable lights on the correct swapchain.
      secur32: Use ~0UL instead of -1 for invalid schannel handles.
      secur32: Improve error handling for gnutls_certificate_allocate_credentials().
      secur32: Forward schannel InitializeSecurityContextA to InitializeSecurityContextW.
      d3d9: Use more reasonable texture dimensions.
      gdi32: Call AbortProc from StartDoc instead of EndPage.
      comdlg32: Add a test for AbortProc handling.
      wined3d: Print an error when drawStridedSlow() is called with 0 idxSize and non-NULL idxData (CID 509).
      wined3d: Remove a redundant initialization of cfgs in WineD3D_ChoosePixelFormat.
      wined3d: Cleanup CreateAdditionalSwapChain error handling a bit (LLVM/Clang).
      wined3d: Assign the correct "levels" variable (LLVM/Clang).
      wined3d: Remove a redundant initialization of cfgs in CheckDepthStencilCapability (LLVM/Clang).
      wined3d: Get rid of some redundant assignments (LLVM/Clang).
      wined3d: Set the correct pow2Matrix for cube textures when NPOT textures are supported.
      wined3d: Don't do GL calls without a context.
      wined3d: Correct some swizzles and write masks in arb_program_shader.
      wined3d: Make sure some variables are always initialized.
      wined3d: Declare diffuseColor and specularColor inside their respective blocks (LLVM/Clang).
      wined3d: Pass the correct RECT to LoadLocation() in LockRect().
      ddraw: Remove a few more redundant inits (LLVM/Clang).

Huw Davies (9):
      inetcomm: Start of IMimeMessage_SetOption.
      inetcomm: Start of IMimeBody_SetOption.
      inetcomm: Charset name comparison should be case insensitive.
      inetcomm: Content-Disposition can have parameters.
      inetcomm: Implement IMimeBody_IsType(IBT_EMPTY).
      inetcomm: Add wrapper functions MimeOleFindCharset and MimeOleGetDefaultCharset.
      include: Add a missing WINAPI.
      rpcrt4: Actually set an unmarshalled object ptr to NULL when a NULL pointer id is received.
      ole32: Remove an unneeded WINAPI and remove some useless comments.

Jacek Caban (151):
      mshtml: Fixed dynamic properties allocation.
      jscript: Added string to number conversion implementation.
      jscript: Added Array.push implementation.
      jscript: Added Array.join implementation.
      jscript: Added Array.toString implementation.
      jscript: Added Number constructor implementation.
      jscript: Added Number.toString implementation.
      jscript: Added Number function implementation.
      jscript: Added Array.sort implementation.
      jscript: Fixed array literal length calculation.
      jscript: Added Array.concat implementation.
      jscript: Added Object default value implementation.
      jscript: for..in is not error if in expression is not an object.
      jscript: Added Array default value implementation.
      jscript: Fixed typo in to_integer.
      jscript: Added String.substring implementation.
      jscript: Added String.toString implementation.
      jscript: Added String.valueOf implementation.
      jscript: Added String.slice implementation.
      jscript: Added String.charCodeAt implementation.
      jscript: Added parseInt implementation.
      jscript: Remove no longer used jsdisp_set_prototype.
      jscript: Added String constructor implementation.
      jscript: Added String default value implementation.
      jscript: Added String.concat implementation.
      jscript: Added String function implementation.
      jscript: Added Math.min implementation.
      jscript: Added Math.round implementation.
      jscript: Added Math.abs implementation.
      jscript: Added Math.max implementation.
      jscript: Added Math.pow implementation.
      jscript: Added Math.ceil implementation.
      jscript: Don't call IDispatch as constructor.
      jscript: Added Function.toString implementation.
      jscript: Added Function default value implementation.
      jscript: Added RegExp contruction implementation.
      jscript: Fixed a typo.
      jscript: Added VT_R8 to string conversion implementation.
      jscript: Added Number default value implementation.
      jscript: Added object to number conversion implementation.
      jscript: Split regexp_match function.
      jscript: Added String.replace implementation.
      jscript: Added String.match implementation for non-regexp arguments.
      jscript: Added String.split implementation.
      mshtml: Use ActiveScript for JavaScript in file protocol documents.
      mshtml: Fixed tests timeout.
      shdocvw: Fixed tests on IE5.
      urlmon: Fixed file protocol tests on win9x.
      mshtml: Fixed tests on IE7.
      urlmon: Fixed potential null dereference.
      mshtml.idl: Added IHTMLTableRow declaration.
      mshtml.idl: Added DispHTMLTable declaration.
      mshtml.idl: Added DispHTMLTableRow declaration.
      mshtml: Added IHTMLTableRow stub implementation.
      mshtml: Added IDispatchEx support to HTMLTableRow.
      mshtml: Added IDispatchEx support to IHTMLTable.
      mshtml: Don't use IHTMLControlElement in IDispatchEx implementations.
      mshtml: Move IHTMLElementCollection to separated file.
      mshtml: Use create_collection_from_nodelist in IHTMLElement::get_children implementation.
      mshtml: Use create_all_collection in IHTMLElement::get_all implementation.
      mshtml: Store nsIDOMHTMLTableElement in HTMLTable.
      mshtml: Added IHTMLTable::get_rows implementation.
      mshtml: Added IHTMLTableRow::get_cells implementation.
      mshtml: Ignore IDispatchJS in QueryInterface.
      jscript: Optimize GetDispID usage.
      jscript: Allocate variables when entering execution context.
      jscript: Don't clear uninitialized variable.
      jscript: Added Date constructor object implementation.
      jscript: Added IDispatchEx::GeleteMemberByDispID implementation.
      jscript: Added delete expression for EXPRVAL_IDREF implementation.
      mshtml.idl: Added IHTMLStyle2 interface declaration.
      mshtml: Added IHTMStyle2 stub implementation.
      mshtml: Added IHTMLStyle2 to IDispatchEx support.
      mshtml: Added IHTMLElement2::get_currentStyle implementation.
      jscript: Don't initialize variables without initialiser to undefined in variable_list_eval.
      jscript: Fixed conflict in Block statement that caused problems with empty blocks.
      jscript: Fixed backslash handling in regular expressions.
      jscript: Added possibility to run test scripts from file.
      mshtml.idl: Added DispHTMLCurrentStyle dispinterface declaration.
      mshtml: Added IDispatchEx support to HTMLCurrentStyle.
      mshtml: Moved HTMLStyle to separated header file.
      mshtml: Use IDs instead of strings in HTMLStyle implementation.
      mshtml: Store nsIDOMCSSStyleDeclaration in HTMLCurrentStyle.
      mshtml: Added IHTMLCurrentStyle::get_display implementation.
      mshtml: Release nsstyle when destroying HTMLStyle.
      mshtml: Added IHTMLStyle::[get|put]_border implementation.
      mshtml: Added IHTMLStyle::[get|put]_left implementation.
      mshtml: Added IHTMLStyle::[get|put]_cursor implementation.
      mshtml: Added IHTMLStyle::[put|get]_top implementation.
      mshtml: Added IHTMLStyle::[get|put]_verticalAlign implementation.
      mshtml: Added IHTMLStyle::[get|put]_height implementation.
      mshtml: Added IHTMLStyle2::[get|put]_position.
      mshtml: Added INVOKE_FUNC support to InvokeEx.
      mshtml: Fixed handing non-element nodes in IHTMLElementCollection.
      mshtml: Added DispHTMLIFrame dispinterface declaration.
      msi: Added MsiInstallMissingComponentW stub implementation.
      jscript: Added String.indexOf implementation.
      jscript: Added a few missing allocation checks (Coverity).
      jscript: Fixed compare function check in Array.sort (Coverity).
      jscript: Fixed copy&paste bug in disp_propget.
      jscript: Fixed list literal length calculation.
      jscript: Added Array.pop implementation.
      jscript: Fixed numeric escapes unescaping.
      jscript: Added encodeURI implementation.
      jscript: Added String.split implementation for non-regexp arguments.
      mshtml: Added IHTMLElement::get_offsetWidth implementation.
      mshtml: Added IHTMLElement3 stub implementation.
      mshtml: Added HTMLIFrame stub implementation.
      mshtml: Added IDispatchEx support for HTMLIFrame.
      mshtml: Added IHTMLStyle::[get|put]_zIndex implementation.
      mshtml: Added support for accessing style attributes by CSS syntax.
      mshtml: Added IHTMLStyle::[get|put]_textAlign implementation.
      mshtml: Added IHTMLStyle::[get|put]_filter implementation.
      mshtml: Store nsIDOMHTMLDocument in HTMLDocument.
      mshtml: Use stored nsdoc in handle_load.
      mshtml: Use stored nsdoc in get_compatMode.
      mshtml: Use stored nsdoc in createRange.
      mshtml: Use stored nsdoc in get_doc_string.
      mshtml: Use stored nsdoc in set_font_size.
      mshtml: Use stored nsdoc in exec_hyperlink.
      mshtml: Use stored nsdoc in createTextRange.
      mshtml: Use stored nsdoc in HTMLCurrentStyle_Create.
      mshtml: Use stored nsdoc in IHTMDocument2::get_all.
      mshtml: Use stored nsdoc in IHTMLDocument2::get_body.
      mshtml: Use stored nsdoc in IHTMLDocument2::put_title.
      mshtml: Use stored nsdoc in IHTMLDocument2::get_title.
      mshtml: Use stored nsdoc in IHTMLDocument2::write.
      mshtml: Use stored nsdoc in IHTMLDocument2::createElement.
      mshtml: Use stored nsdoc in IHTMLDocument2::get_styleSheets.
      mshtml: Use stored nsdoc in createTextNode.
      mshtml: Use stored nselem in get_documentElement.
      mshtml: Use stored nsdoc in IHTMLDocument3::getElementById.
      mshtml: Use stored nsdoc in prev_node.
      mshtml: Use stored nsdoc in IHTMLTxtRange::put_text.
      jscript: Added '%' expression implementation.
      jscript: Added '%=' expression implementation.
      mshtml: Use stored nsdoc in IHTMLTxtRange::expand.
      mshtml: Use stored nsdoc in exec_indent.
      mshtml: Use stored nsdoc in IHTMLElement::insertAdjacentHTML.
      mshtml: Use stored nsdoc in IHTMLElement::insertAdjacentText.
      mshtml: Use stored nsdoc in IHTMOptionElement::put_text.
      mshtml: Use stored nsdoc in IHTMLOptionElementFactory::create.
      mshtml: Get rid of setup_nswindow.
      mshtml: Forward IHTMLelement3::[get|put]_disabled to child object if possible.
      mshtml: Added IHTMLElement3::[get|put]_implementation.
      mshtml: Use IHTMLElement3 in IDispatchEx.
      mshtml: Added IHTMLSelectElement::[get|put]_disabled implementation.
      mshtml: Don't use IDispatchEx for timer callbacks.
      mshtml.idl: Added DispCEventObj declaration.
      mshtml: Added IDispatchEx support to HTMLEventObj.
      mshtml: Moved events declaration to separated file.

James Hawkins (31):
      comctl32: Fix several failing tests in win95.
      comctl32: Fix a failing test in win95.
      comctl32: Add a missing newline.
      crypt32: Fix several test failures in win98.
      ntdll: Fix a couple failing tests in NT4.
      oleaut32: Fix a failing test in win95.
      secur32: Fix a failing test in win95.
      comctl32: Fix a failing test in win9x.
      msi: Fix several test failures in win9x.
      crypt32: Fix several failing tests in win9x.
      comctl32: Fix a test on locales where default first day of week is not the max value.
      msi: Add a stub implementation of MsiDatabaseMerge.
      msi: Forward MsiDatabaseMergeA to MsiDatabaseMergeW.
      msi: Fix a test that fails in win95.
      comctl32: Only log system messages.
      comctl32: Fix several test failures in win2k.
      comctl32: Only log system messages.
      msi: Implement the DROP TABLE sql command.
      msi: Resolve file source paths dynamically, as the source directory can be changed.
      msi: Remove a break that kept other columns from getting the table name.
      msi: Remove the columns in reverse order.
      msi: Add tests for dropping tables with multiple columns.
      msi: Don't update the table columns if there are no more columns.
      msi: Remove a part of a debugging statement that was accidentally left in.
      msi: Add tests for converting record fields between strings and ints.
      msi: Add initial implementation of MsiDatabaseMerge, with tests.
      msi: Replace lengthy calls to MSI_DatabaseOpenView with MSI_OpenQuery.
      msi: Add a stub implementation of MsiDetermineApplicablePatches.
      msi: Add extra constraints on the formatting string of edit path text.
      msi: Initialize the count variable to zero.
      comctl32: Fix MCM_SETFIRSTDAYOFWEEK when the first day set is greater than max allowed.

Jan-Peter Nilsson (1):
      wininet: Fix HTTP_ProcessCookies only processing one cookie.

Jeff Zaroyko (2):
      hhctrl.ocx: Always set WS_OVERLAPPEDWINDOW.
      msvcrt: Avoid a NULL pointer deref in ctime.

John Klehm (3):
      wintab32: Improve tracing of LOGCONTEXT struct.
      wintab32: Handle negative output context range for y-axe.
      wintab32: Send notification when z-order changes.

Joris Huizer (1):
      version/tests: Corrected memset placement.

Juan Lang (40):
      cryptui: Implement CryptUIDlgViewCertificateA on top of CryptUIDlgViewCertificateW.
      cryptui: Build import lib.
      wintrust: Search all additional stores when building a chain, not just the first one.
      wintrust: Store the error status and confidence for each element in the chain.
      wintrust: Always initialize CERT_CHAIN_PARA's RequestedUsage.
      wintrust: Use helper function to allocate CRYPT_PROVIDER_DATA.
      wintrust: Use helper function to add the trust steps to execute.
      wintrust: Only do policy check if pointer is set.
      wintrust: Check that the end certificate in the chain isn't disallowed to match native behavior.
      wintrust: Support the CERT_CERTIFICATE_ACTION_VERIFY action.
      cryptdlg: Implement CertViewPropertiesA on top of CertViewPropertiesW.
      cryptdlg: Implement CertViewPropertiesW on top of CryptUIDlgViewCertificateW.
      cryptdlg: Implement CertTrustInit.
      cryptdlg: Implement CertTrustFinalPolicy.
      include: Add definition of CRYPTUI_DISABLE_ISSUERSTATEMENT.
      wintrust: Map cert trust error status to a windows error.
      wintrust: Use helper function for setting confidence in SoftpubCheckCert.
      wintrust: Only set the error on the root element of the chain.
      secur32: Fix test failure with neither gnutls nor ntlm_auth available.
      inetmib1: Skip tests if a portion of inetmib1 isn't implemented.
      wintrust: Add stub for WTHelperGetKnownUsages.
      wintrust: Add tests for WTHelperGetKnownUsages.
      wintrust: Implement WTHelperGetKnownUsages.
      wintrust: Implement OpenPersonalTrustDBDialog.
      wininet: Trace the cache file entry's local file name rather than the passed-in cache entry info's local file name, as the caller may have passed a NULL pointer.
      wininet: Don't call URL_LocalFileNameToPathA when asked for a unicode string and URL_LocalFileNameToPathW fails.
      wininet: Fix trace typo.
      cryptnet: Don't access URL cache entry before it's been read.
      cryptnet: Set cache expiration time of objects that have an expiration time to the object's expiration time, rather than relying on the HTTP Expires header.
      wintrust: Implement CryptSIPGetSignedDataMsg for .cat files.
      crypt32: Implement CryptSIPRetrieveSubjectGuid for .cat files.
      wintrust: Don't hardcode supported OIDs, let CryptDecodeObject handle it directly.
      crypt32: Fix test failures on NT4.
      crypt32: Fix some chain failures on Win9x/NT4.
      crypt32: Remove an error that no longer fails.
      crypt32: Fix error handling for cyclic chains.
      wintrust: Fix test failures on Win9x.
      inetmib1: Fix some test failures on Win9x/NT4.
      inetmib1: Fix remaining failure on Win9x/NT4.
      crypt32: Fix some test failures on Win9x.

Kai Blin (2):
      secur32: Make GetComputerObjectName(A|W) tests work on win2k3 domains.
      dplayx: Set tests to "interactive" to avoid timing out on all machines.

Kirill K. Smirnov (1):
      oleaut32: Add tests for metafiles, make them pass under Wine.

Kjell Rune Skaaraas (1):
      wined3d: Implement IWineD3DResourceImpl_GetPriority and IWineD3DResourceImpl_SetPriority for resource management.

Konstantin Kondratyuk (2):
      fonts: Add afii61352 into tahoma.sfd.
      fonts: Add afii61352 into tahomabd.sfd.

Lei Zhang (11):
      winspool: Check the return results from schedule_* functions.
      gdiplus: Allocate enough space for BITMAPINFO in GdipCreateTextureIA.
      gdiplus: Free memory on a failure.
      gdiplus: Allocate enough space for BITMAPINFO in GdipBitmapLockBits.
      gdiplus: Allocate enough space for BITMAPINFO in GdipBitmapUnlockBits.
      gdiplus: Allocate enough space for BITMAPINFO in GdipLoadImageFromStream.
      comctl32: Avoid a divide by zero in listview.
      regedit: Use W version of TreeView_GetItem.
      regedit: Check return values, don't request unneeded value which always fails.
      regedit: Make branch export behavior work more like native regedit.
      regedit: Pass VK_DELETE messages to Listview/Treeview child windows.

Louis Lenders (2):
      shdocvw: Create default App Paths key for iexplore.exe.
      msi: Add stub for MsiSetExternalUIRecord.

Maarten Lankhorst (7):
      quartz: Implement IMediaPosition::put_CurrentPosition.
      quartz: Add missing calls to EndFlush.
      quartz: Don't abort starting for unconnected pin in avi splitter.
      quartz: Return VFW_E_WRONG_STATE in file source if flushing.
      quartz: Requeue in pullpin if request for data timed out.
      dsound: Fix volume and panning for primary buffer.
      winealsa.drv: Don't hang on last few bytes not played.

Marcus Meissner (6):
      jscript: Fixed crash in run test.
      jscript: Fix number conversion in non-English locales.
      msi/tests: Fix explicit C:\\Program Files\\ references.
      msi: Fix potential uninitialized use of substg.
      gdiplus: Also handle 32bpp bitmaps.
      advapi32: Check for NULL ptr.

Michael Karcher (12):
      msxml3/tests: Clean up test_removeChild.
      msxml3: removeChild can only delete direct children.
      msxml3: Fail a bit earlier on removeChild(...,NULL,...).
      msxml3: Simplify IXMLDOMNode::removeChild.
      msxml3: Parameter validation for IXMLDOMNode::replaceChild and tests.
      msxml3/tests: Valgrind fix.
      msxml3: Basic implementation of IXMLDOMNode::replaceChild.
      msxml3: replaceNode accepts IXMLDOMElement instead of IXMLDOMNode.
      msxml3: Handle all variant types in IXMLDOMDocument::createNode.
      msxml3: Revert "Simplify IXMLDOMNode::removeChild".
      msxml3: _domtext->element is in fact a IXMLDOMNode.
      msxml3: Text node should not aggregate element.

Michael Stefaniuc (28):
      oleaut32/tests: Remove redundant NULL check before SysFreeString (Smatch).
      jscript: Remove redundant NULL check before SysFreeString (Smatch).
      msxml3/tests: Remove redundant NULL check before SysFreeString (Smatch).
      oleaut32: Remove redundant NULL check before SysFreeString (Smatch).
      shlwapi/tests: Remove redundant NULL check before SysFreeString (Smatch).
      oleaut32/tests: Fix printf format warning.
      shell32: Use FAILED instead of !SUCCEEDED.
      ole32: Use the right FAILED/SUCCEEDED macro instead of negating the opposite.
      qmgr: Use FAILED instead of !SUCCEEDED.
      quartz: Use the right FAILED/SUCCEEDED macro instead of negating the opposite.
      ddraw/tests: Use FAILED instead of !SUCCEEDED.
      urlmon/tests: Use FAILED instead of !SUCCEEDED.
      mshtml/tests: Use FAILED instead of !SUCCEEDED.
      d3d9/tests: Use FAILED instead of !SUCCEEDED.
      shlwapi: Use FAILED instead of !SUCCEEDED.
      dplayx: Use SUCCEEDED instead of !FAILED.
      qcap: Use the right FAILED/SUCCEEDED macro instead of negating the opposite.
      shdocvw: Use FAILED instead of !SUCCEEDED.
      comctl32: Use FAILED instead of !SUCCEEDED.
      dxdiagn: Use FAILED instead of !SUCCEEDED.
      d3dxof: Use FAILED instead of !SUCCEEDED.
      winefile: Use FAILED instead of !SUCCEEDED.
      msxml3/tests: Use SUCCEEDED instead of !FAILED.
      itss/tests: Use FAILED instead of !SUCCEEDED.
      winecfg: Use FAILED instead of !SUCCEEDED.
      msi: Use the right FAILED/SUCCEEDED macro instead of negating the opposite.
      oleaut32: Use FAILED instead of !SUCCEEDED.
      shell32/tests: Use FAILED instead of !SUCCEEDED.

Muneyuki Noguchi (22):
      regedit: Use "MS Shell Dlg" 9 in Japanese resources.
      wineboot: Use "MS Shell Dlg" 9 in Japanese resources.
      winefile: Use "MS Shell Dlg" 9 in Japanese resources.
      taskmgr: Use "MS Shell Dlg" 9 in Japanese resources.
      winecfg: Use "MS Shell Dlg" 9 in Japanese resources.
      wordpad: Use "MS Shell Dlg" 9 in Japanese resources.
      winhlp32: Use "MS Shell Dlg" 9 in Japanese resources.
      notepad: Use "MS Shell Dlg" 9 in Japanese resources.
      avifil32: Use "MS Shell Dlg" 9 in Japanese resources.
      setupapi: Use "MS Shell Dlg" 9 in Japanese resources.
      shell32: Use "MS Shell Dlg" 9 in Japanese resources.
      user32: Use "MS Shell Dlg" 9 in Japanese resources.
      wineps.drv: Use "MS Shell Dlg" 9 in Japanese resources.
      wininet: Use "MS Shell Dlg" 9 in Japanese resources.
      comctl32: Use "MS Shell Dlg" 9 in Japanese resources.
      msacm32: Use "MS Shell Dlg" 9 in Japanese resources.
      oledlg: Use "MS Shell Dlg" 9 in Japanese resources.
      serialui: Use "MS Shell Dlg" 9 in Japanese resources.
      shlwapi: Use "MS Shell Dlg" 9 in Japanese resources.
      write: Add Japanese resources.
      reg: Add Japanese resources.
      mshtml: Add Japanese resources.

Nikolay Sivov (7):
      gdiplus: Stub for GdipSetPathGradientBlend.
      gdiplus: Implement GdipGetTextureTransform with test.
      gdiplus: Implemented GdipSetTextureTransform with tests.
      gdiplus: Implemented GdipResetTextureTransform.
      gdiplus: Implemented GdipSetClipRect/GdipSetClipRectI.
      gdiplus: Implemented GdipSetClipPath.
      gdiplus: Stubs for GdipIsVisiblePoint/GdipIsVisiblePointI.

Paul Vriens (39):
      kernel32/tests: Use skip instead of trace.
      kernel32/tests: Skip some tests on win9x.
      kernel32/tests: Fix tests on NT4.
      kernel32/tests: Make sure we can remove a test directory.
      kernel32/tests: Add extra tests for SetCurrentDirectory.
      ddraw/tests: Fix a test on a Win98 box.
      dsound/tests: Fix failure on Win9x and NT4.
      userenv/tests: Don't crash on NT4.
      ntdll/tests: Use skip and add a FreeLibrary.
      ntdll/tests: Show that we are skipping tests.
      ntdll/tests: Show that we are skipping tests.
      imm32/tests: Skip tests when IME support is not implemented.
      kernel32/tests: Add a skip.
      kernel32/tests: Add a skip.
      comctl32/tests: Don't crash on some win9x boxes.
      gdi32/tests: Fix a few failures on win9x.
      kernel32/tests: Fix the remaining errors on win95.
      kernel32/tests: Fix some failures on win9x.
      kernel32/tests: Add some skips to fix failures on WinMe.
      kernel32/tests: We need the return value.
      kernel32/tests: Fix failures on WinMe.
      user32/tests: Run tests on win95 again.
      user32/tests: Fix failures on W2K and below.
      kernel32/tests: Add a missing newline.
      advapi2/tests: Compare instead of assign.
      inetmib1/tests: Compare instead of assign.
      msxml3/tests: Compare instead of assign.
      shell32/tests: Compare instead of assign.
      gdi32/tests: Skip some tests on Win9x/WinMe.
      shlwapi/tests: Don't crash on NT4.
      wininet/tests: Don't crash on W2K and below.
      lz32/tests: Change a trace into a skip.
      ole32/tests: Fix two failures on NT4.
      shell32/tests: Fix a failure on NT4.
      wintrust/tests: Vista/W2K8 have some extra struct members.
      user32/tests: Don't crash on NT4.
      winmm/tests: Fix the failures on Win9x and WinMe.
      winmm/tests: Fix some failures on Vista and W2K8.
      spoolss/tests: Fix a failure on Vista/W2K8.

Philip Nilsson (1):
      configure: Add i486-mingw to the cross-compiler prefixes.

Piotr Caban (9):
      msxml3: Change order of interface recognition and fix typo.
      msxml3: Fix xmlnode_get_xml to work properly with XML_DOCUMENT_NODE.
      msxml3/test: Add test for ISAXXMLReader_parse (passing XMLDOMDocument as argument).
      msxml: Partial implementation of ISAXXMLReader_putProperty.
      msxml: Fix implementation of ISAXContentHandler_characters.
      msxml: Rewrite ISAXContentHandler_characters.
      msxml: Fix parsing <.../> elements.
      msxml: Added ISAXLexicalHandler_comment event.
      msxml: Added CDATA related events handling.

Reece Dunn (1):
      kernel32: Be more verbose when reporting the sync test failures.

Rob Shearman (58):
      include: Add DShellFolderViewEvents to shldisp.idl.
      rpcrt4: Don't call VirtualFree with MEM_RELEASE and non-zero size.
      msvcrt: Fix mutual exclusion over logical or is always a non-zero constant.
      msvcrt: Fix testing zero-valued expression with bitwise and in find_best_locale_proc.
      msvcmaker: Define USE_COMPILER_EXCEPTIONS and HAVE_SPAWNVP.
      msvcmaker: Fix the arguments passed to winebuild to generate the .def file.
      msvcmaker: Fix the generated filename for the spec file for modules with extensions other than .dll.
      msvcmaker: Fix generated imports for Wine modules and link with delayed imports.
      msvcmaker: Factor out some common settings.
      msvcmaker: Add HAVE_* defines for some types present in the MSVC build environment.
      msvcmaker: Update the HAVE_* defines for headers in the generated config.h file.
      msvcmaker: Remove the defining of __ASM_SHORT and __ASM_STRING in the generated config.h file.
      msvcmaker: Update the function list for which HAVE_* defines are written into config.h.
      msvcmaker: Add support for building wine.lib.
      msvcmaker: Fix invocation of winebuild to generate compatible .def files.
      msvcmaker: Generate .h files from .idl files specified in IDL_H_SRCS makefile rules.
      msvcmaker: Generate include project and make every wine module depend on it.
      msvcmaker: Fix detection of static libraries.
      msvcmaker: Define _USE_MATH_DEFINES so that M_PI and other constants are defined when including <math.h>.
      urlmon: Fix race in protocol tests.
      ole32: Create a dummy window for use in the drag and drop API tests.
      ole32: Fix clipboard test failures on some versions of Windows.
      winebuild: Declare fatal_error and fatal_perror as non-returning functions.
      uxtheme: SetPropW returns a BOOL not an HRESULT.
      shlwapi: Use an error code instead of -1 for signalling prefix not being found in URL_GuessScheme.
      d3d9: Fix incorrect ordering of brackets in IDirect3DVertexShader9Impl_GetDevice.
      avifil32: Fix type of variable used to store the result of ICCompress in AVIFILE_EncodeFrame.
      oledlg: Fix the type of ret in UIINSERTOBJECTDLG_PopulateObjectTypes.
      avifil32: Fix treating the return values of mmio* functions as HRESULTs instead of MMRESULTs.
      d3d8: Fix incorrect ordering of brackets in IDirect3DVertexShader8Impl_GetDevice.
      comcat: Fix mixing of HRESULT and LSTATUS types in COMCAT_CLSID_IEnumGUID_Next, COMCAT_IEnumCATEGORYINFO_Next and COMCAT_CATID_IEnumGUID_Next.
      advapi32: Output the last error when services tests fail.
      cabinet: Check buffer size before copying in NONEfdi_decomp.
      include: Define DD_OK to S_OK instead of 0.
      include: Wrap uses of u_* types in ws2tcpip.h with WS() macro.
      winhttp: Fix compilation with MinGW/MSVC.
      urlmon: Compare HRESULT value explicitly against S_OK instead of using an implicit != 0 comparison.
      wininet: Compare HRESULT values explicitly against S_OK instead of using an implicit != 0 comparison.
      winedos: Compare HRESULT value explicitly against S_OK instead of using an implicit != 0 comparison.
      quartz: Don't use strlenW in array size declaration.
      quartz: Fix placement of WINAPI attribute in fnFoundSeek typedef.
      wininet: Make WININET_AllocHandle 64-bit safe by using the correct type in the sizeof expression.
      include: Generate error codes with correct type in urlmon.idl.
      oleaut32: Make the code in copy_to_variant and copy_from_variant more portable.
      wininet: Add tests for InternetTimeFromSystemTimeW with insufficient buffer.
      wininet: Fix behaviour of InternetTimeFromSystemTimeA/W when a buffer that is too small is passed in.
      wininet: Move internet time tests from http.c to internet.c.
      Add configure check for dirent.h and readdir.
      d3d8/9: Use WINED3D_OK instead of D3D_OK in vertexshader.c.
      wininet: Return error codes explicitly from URLCache functions instead of returning a BOOL and storing the error code in the last error value.
      wininet: Fix GetUrlCacheEntryInfoA/W when a NULL lpCacheEntryInfo parameter is passed in.
      wininet: Add tests for passing invalid parameters into InternetTimeFromSystemTimeA/W.
      wininet: Fix behaviour of InternetTimeFromSystemTimeA/W when dealing with invalid parameters.
      wininet: Validate parameters passed to RetrieveUrlCacheEntryInfoA/W.
      wininet: Get rid of rc variable in InternetReadFile_test.
      wininet: Fix crash when calling HttpQueryInfoA/W(HTTP_QUERY_RAW_HEADERS) before any response has been received from a server.
      msvcmaker: Don't generate project files for DLLs that can't be compiled with MSVC.
      msvcmaker: Don't automatically add a define for the DLL name.

Roderick Colenbrander (7):
      wined3d: Re-add a comment which got lost.
      wined3d: UpdateSurface should take into account the offset from the source rectangle.
      opengl32: Don't run wgl tests on old gl drivers.
      opengl32: Add some driver traces to the tests.
      opengl32: Remove some tests which cause issues on win9x.
      opengl32: Merge recent opengl extensions and prepare for opengl 3.0.
      opengl32: Add a test case for WGL_ARB_create_context/opengl3.

Stefan Dösinger (1):
      wined3d: Initialize standalone surface parameters.

Stefan Leichter (1):
      winscard: Add stubs for SCardAddReaderToGroupA/W.

Ulrich Czekalla (1):
      shell32: Revert c1f2824429286dd60fac723611b801e67eb745b1. It caused poor performance.

Vincent Povirk (2):
      shell32/tests: Accept delays in getting ABN_POSCHANGED notifications.
      user32: Handle undocumented WM_POPUPSYSTEMMENU message.

Vitaliy Margolen (3):
      user32/tests: Use empty_message_queue with timeouts.
      user32/tests: Make it easier to identify failed tests.
      user32/tests: Move shell test to the end - killing explorer affects lots of tests.

Vitaly Lipatov (1):
      include/ddk: Fix include path and include guard name.

--
Alexandre Julliard
julliard@winehq.org
