The Wine development release 1.1.1 is now available.

What's new in this release (see below for details):
  - Fixes for Photoshop CS3 and Office 2007 installers.
  - More progress on gdiplus.
  - Support for Unicode files in regedit.
  - Improved video playback.
  - Many Richedit fixes and improvements.
  - Various bug fixes.

The source is available from the following locations:

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

   1968  gunbound: Can't connect to server (fixme:wininet:InternetSetOptionW)
   2781  MSI/InstallShield: starting app generates 'please report' error, and doesn't start
   3812  Installer stops at start of installation
   4536  c2man mangles "DllAllocSplMem" to "dll AllocSplMem"
   5010  multiselect in regedit doesn't work correctly
   5074  Crash in Decl2005.exe
   5335  Ecco Pro hangs when accessing "2nd-level" dialogs
   5565  staruml crashes on startup
   5788  Giants Citizen Kabuto full and demos infinite loop
   5931  The Marmot Project's client TheTurtle crashes
   6159  DeviceLock installer crashes in NdrSendReceive()
   7447  Call  to unimplemented function shell32.dll.SHGetIconOverlayIndexA
   7508  Activesync 4.2 partially crashes on startup
   7545  TestComplete 5.1 won't start, complains about service
   7787  InstallShield crashes trying to open temporary file
   8208  Flanker 2.5 fails to launch
   8745  openwatcom debugger hits unimplemented function vdmdbg.dll.VDMEnumProcessWOW
   9200  Dogfights crashes on launch due to Unimplimented DLL function WinHttpOpen
   9385  Ulead PhotoStudio 11 installer crashes
   9604  JCreator: unimplemented interface in msxml
   9634  unimplemented function compobj.dll.COCREATEGUID
   9723  Fileplanet Comrade installer fails to download a file
   9775  Syberia 2, Max Payne 1 & 2 - Screenshots and thumbnails broken
   9854  Crestron Toolbox crashes
  10171  make test fails in wine-0.9.47-458-ga8df7fd in oleaut32
  10316  .net apps that use OleDB won't run
  10445  winhelp.exe problem displaying help file, related to LF / CR-LF end-of-line issue?
  10485  Oblivion gameplay slows to an unplayable level when it rains
  10623  Visual C++ 5 doesn't know who registered it
  10906  Thinstall openoffice demo aborts on unimplemented advapi.QueryServiceConfig2A
  11033  unimplemented function gdiplus.dll.GdipGetGenericFontFamilySansSerif
  11298  Impossible to accept licence in Assault Heroes demo
  11705  Eve Premium 49635 doesn't render correctly the outside Station
  11889  Beyond Good&Evil installer crashes during installshield wizard preparation
  12111  Bruker TopSpin: Cannot install due to an unknown administrator username
  12541  Test Drive: Unlimited fails to start
  12586  Counterstrike source crashes when connecting to a server
  12749  Box symbol displayed in text (regression)
  13077  Wine Crash with RUNTIME ERROR 216
  13097  Graphics corruption in Hard Truck Apocalypse
  13141  No blackground music in Black Moon Chrinicles
  13218  Unimplemented function gdiplus.dll.GdipFlush
  13224  Download from the web no longer works with Picasa
  13238  oleaut32 typelib.ok fails in Opensolaris
  13374  ComboBoxEx list get selected on mouse button down and release
  13538  netapi/access test doesn't delete testuser home directories after the test
  13574  Can not close help window - no close button [x]
  13599  Can't install Autocad 2005
  13873  winhlp32+server hang when I don't want to find the .hlp file myself
  13952  voipcheap client:Call  to unimplemented function gdiplus.dll.GdipCloneImage
  14029  Context menus do not work in Wrye Bash
  14053  Winamp 5.53 fails to start due to a loader crash
  14109  cannot download gecko with wine iexplore
  14161  quartz regressions - crash in PullPin_Thread_Process & more
  14221  bonjour service (mdnsresponder) crash in winsock/iphlpapi
  14226  Fileplanet Comrade installer can't create app xml file (xpath query result handling)
  14234  WC Prophecy and SO crash in both software and D3D modes
  14260  etax 2008 software cannot complete (has err:ole:CoGetClassObject error)
  14261  Black rectangle covers most of the screen in Psychonauts when using FBO

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

Changes since 1.1.0:

Adam Petaccia (30):
      gdiplus: Improve accuracy in calculating point sizes.
      gdiplus: Correct spec entry for GdipFlush.
      gdiplus: Stub GdipCloneImage.
      gdiplus: Test GdipCloneImage.
      gdiplus: Valgrind: fix warnings about using uninitialized memory, and leaking memory.
      gdiplus: test_fontfamily: Don't use a pointer-to-pointer construct.
      gdiplus: test_getgenerics: Don't use a pointer-to-pointer construct.
      gdiplus: Stub GdipCloneFontFamily.
      gdiplus: Implement GdipCloneFontFamily.
      gdiplus: Stub GdipGetLineSpacing.
      gdiplus: Stub GdipGetEmHeight.
      gdiplus: Stub GdipGetCellAscent.
      gdiplus: Stub GdipGetCellDescent.
      gdiplus: Stub GdipGetFontHeightGivenDPI.
      gdiplus: Use a better framework for filling out FontFamilies.
      gdiplus: Tests for FontFamily properties.
      gdiplus: Implement GdipGetCellAscent.
      gdiplus: Implement GdipGetCellDescent.
      gdiplus: Implement GdipGetEmHeight.
      gdiplus: Stub GdipStringFormatGetGenericDefault.
      gdiplus: Implement GdipGetStringFormatFlags.
      gdiplus: GdipMeasureString: .spec file fix.
      gdiplus: Stub GdipGetStringFormatMeasurableCharacterRangeCount.
      gdiplus: Stub GdipSetStringFormatMeasurableCharacterRanges.
      gdiplus: Stub GdipMeasureCharacterRanges.
      gdiplus: Stub GdipFillRegion.
      gdiplus: Test for CharacterRange.
      gdiplus: Add more tests for regions and paths.
      gdiplus: Add a test for a floating-point triangle.
      gdiplus: Add another helper macro to deal with magic numbers.

Alexander Dorofeyev (18):
      Revert "quartz: Only enumerate renderers if bRender is set in filtermapper.".
      quartz/tests: Add test for EnumMatchingFilters.
      quartz: Fix calculating wide string size.
      quartz: Fix registry key creation.
      quartz: Improve removal of registry data in Filtermapper unregister methods.
      devenum: Move locating category key to function, use it ParseDisplayName.
      devenum: Register legacy am filters in CreateClassEnumerator.
      quartz: Fix string buffer overflow.
      quartz/tests: Add test for IFilterMapper_RegisterFilter.
      quartz: Improve variant handling in FilterMapper_EnumMatchingFilters.
      quartz: Fix interface leak in EnumMonikerImpl_Release.
      quartz: Fix memory leaks in IEnumRegFiltersImpl_Release.
      quartz: Fix memory leaks in FM2_DeleteRegFilter.
      quartz: Fix memleak in FilterMapper2_RegisterFilter.
      quartz: Fix memory leak in FilterMapper_RegisterFilter.
      quartz: Fix memory leak and behavior on errors in FilterMapper_EnumMatchingFilters.
      quartz: Do not try renderers first. Use a single enumeration pass.
      quartz/tests: Add test for filter priority in IFilterGraph2_Render.

Alexander Morozov (5):
      wininet/tests: Additional HTTP header tests.
      wininet/tests: Add HTTP 1.1 test.
      wininet: Remove unneeded variable.
      wininet: Add support of INTERNET_FLAG_NO_CACHE_WRITE.
      wininet: Add port number to Host HTTP header.

Alexander Nicolaysen Sørnes (13):
      shell32: Update Norwegian Bokmål translation.
      winecfg: Update Norwegian Bokmål translation.
      winhlp32: Update Norwegian Bokmål translation.
      regedit: Convert import delete handling to unicode.
      regedit: Use unicode for all key deletion.
      regedit: Use RegSetValueExW when importing data.
      regedit: Convert the rest of setValue to Unicode.
      regedit: Convert openKey to Unicode.
      regedit: Convert remaining registry import code to Unicode.
      regedit: Add support for importing Unicode files.
      regedit: Use strchrW instead of custom code in Unicode file import.
      regedit: Fix comment handling in Unicode file import.
      regedit: Null-terminate buffer in Unicode file import.

Alexandre Julliard (49):
      Fix a few %ll printf formats.
      ntdll: Add some sanity checks for invalid relocation blocks.
      wpp: config.h and wine/port.h should be included first.
      ntdll: Only recompose Unicode on Mac OS when using utf-8.
      ntdll: Don't bother to check the file name against the mask if stat() succeeded.
      Revert "wpp: config.h and wine/port.h should be included first."
      widl: Add some support for unencapsulated unions that need a conformance descriptor.
      services.exe: Pass the service name as first argument when auto-starting services.
      winex11: Get rid of the XKB initialisation workaround now that we no longer use XInitThreads.
      winex11: Check for XKB extension on the GDI display too.
      user32: Split the SetWindowPos driver backend in WindowPosChanging/Changed.
      iphlpapi: Fix the return value of GetPerAdapterInfo, with tests.
      oleaut32: Include the system jpeg and png headers before the Windows headers.
      exception.h: Make the RtlUnwind wrapper available separately.
      rpc.h: Use the correct exception definitions when USE_COMPILER_EXCEPTIONS is set.
      widl: Add support for exception handling in the generated server code.
      widl: Add support for exception handling in the generated proxy code.
      makedep: Add dependencies on wine/exception.h for widl-generated files.
      kernel32: Use a proper structure for thunks instead of an array of WORDs.
      ntdll: Split the signal setup into process-wide and thread-specific routines.
      server: Set the visible rect in the set_window_pos request again.
      rpcrt4: Use interlocked functions to increment/decrement ref counts.
      widl: Fix a couple of uninitialized variable compiler warnings.
      Makefile: Use 'git ls-files' instead of the deprecated 'git-ls-files' form.
      Add noinput directive to all lex files to avoid a compiler warning.
      gdiplus: Store the family name directly in the GpFontFamily structure.
      winealsa.drv: Don't trace deprecated parameters.
      user32: Properly update position after dragging an iconic window.
      msvcrt/tests: Fix register constraints on thiscall wrappers.
      include: Remove duplicate definition in winhttp.h.
      include: Don't define uuids in amvideo.idl as that conflicts with uuids.h
      tests: Don't depend on the static uuid libraries in the tests.
      d3d8: Don't depend on the dxerr8 static library in the tests.
      d3d9: Don't depend on the dxerr9 static library in the tests.
      dinput: Don't depend on the dxerr8 static library in the tests.
      dsound: Don't depend on the dxerr8 static library in the tests.
      ntdll: Always restore the %gs register from the saved value in thread data.
      wine/test.h: Don't allow to use config.h in tests.
      msxml3/tests: Fix test cleanup.
      make_makefiles: Add more wildcard patterns in .gitignore.
      make_makefiles: Add rules for cross-compiling all import libs from the dlls directory.
      Maketest.rules: Use the cross-compiled import libraries for crosstest instead of the MinGW ones.
      kernel32: Set the stdin/stdout file descriptors to match the specified Win32 handles when possible.
      winetest: Use Win32 APIs exclusively for file I/O and output redirection.
      regedit: Fixed the GetWideString and GetMultiByteString functions to work with null-terminated strings.
      ntdll: Add some workarounds for Solaris signal handling breakages.
      server: Better handling of errors when accessing the /proc control files on Solaris.
      gdiplus/tests: Don't test returned value if the call failed.
      winealsa: Fix some unsigned comparison < 0 warnings.

Alistair Leslie-Hughes (8):
      gdi32: Stop crash in font tests.
      msxml3: Added support to create an Attribute in createNode.
      msxml3: Use libxml macros to get the length of a set.
      msxml3: Added checks for invalid arguments in queryresult.
      msxml3: Added checks for invalid arguments in nodelist.
      msxml3: Added tests to check for invalid arguments.
      oleview: Fixed crash with loading typelib information.
      shlwapi: Fix tests under w2k8.

Andre Wisplinghoff (1):
      regedit: Implement deleting multiple values.

Andrew Talbot (29):
      infosoft: Remove unneeded address-of operator from function name.
      ole32: Remove unneeded address-of operators from function name.
      quartz: Remove unneeded address-of operators from function names.
      shell32: Remove unneeded address-of operators from function names.
      user32: Remove unneeded address-of operators from function names.
      wined3d: Remove unneeded address-of operators from function names.
      winedos: Remove unneeded address-of operator from function name.
      avifil32: Remove unneeded address-of operators from array names.
      comctl32: Remove unneeded address-of operators from array names.
      advapi32: Remove unneeded address-of operator from array name.
      wined3d: Remove const qualifier from output pointers.
      comdlg32: Remove unneeded address-of operator from array name.
      crypt32: Remove unneeded address-of operator from array name.
      dinput: Remove unneeded address-of operators from array names.
      dmband: Remove unneeded address-of operators from array names.
      dmime: Remove unneeded address-of operators from array names.
      dmstyle: Remove unneeded address-of operators from array names.
      dplayx: Remove unneeded address-of operator from array name.
      gdi32: Remove unneeded address-of operator from array name.
      gdiplus: Remove unneeded address-of operator from array name.
      hhctrl.ocx: Remove unneeded address-of operator from array name.
      hlink: Remove unneeded address-of operators from array names.
      kernel32: Remove unneeded address-of operators from array names.
      localspl: Remove unneeded address-of operators from array names.
      mscms: Remove unneeded address-of operator from array name.
      msi: Remove unneeded address-of operators from array names.
      ntdll: Remove unneeded address-of operators from array names.
      ole32: Remove unneeded address-of operators from array names.
      oleaut32: Remove unneeded address-of operators from array names.

Aric Stewart (2):
      coreaudio: Make sure Port_SendToMessageThread is not NULL before calling CFMessagePortSendRequest.
      winex11: Allow for sane SCIM im processing by processing some filtered KeyRelease events.

Austin English (1):
      crypt32: Fix a couple of test failures on Vista.

Dan Hipschman (3):
      include: Fix type redefinitions in IDL files.
      widl: Implement type redefinition checks.
      widl: Factor a small part of the grammar.

Daniel Remenak (1):
      shell32: Fix crash regression in browse for folder dialog.

Detlef Riekenberg (8):
      spoolss: Add a stub for WaitForSpoolerInitialization.
      spoolss: Add a stub for IsLocalCall.
      spoolss: Implement InitializeRouter.
      localspl: Implement fpEnumMonitors.
      winspool: Use the backend for EnumMonitors.
      setupapi/tests: Avoid a crash on Win9x.
      winspool: Move more parameter-checks for EnumMonitorsW to localspl.
      winspool: Move DeleteMonitorW to the backend.

Dylan Smith (30):
      richedit: Clicking below end of text now selects closest character.
      richedit: Calculate tab positions relative to end of selection bar.
      richedit: Added missing DestroyWindow in a test.
      richedit: Fixed simulated keyboard events on tests.
      comctl32: Added tests to show a ComboBoxEx bug caused by incorrect focus change.
      comctl32: Fix for ComboBoxEx bug caused by focus change.
      wordpad: Properly save window rect on closing Min/Maximized windows.
      user32: Increased area for scrolling via mouse drag outside scrollbar.
      richedit: Made sure the caret position is stored when moving up/down.
      richedit: Fixed the selection bar width.
      richedit: Made sure word selection selects only one word.
      richedit: Fixed double click issues by sharing code with single click.
      richedit: Fixed Valgrind error related to undoing.
      richedit: Fixed drag and shift selection for words and lines.
      richedit: Implemented paragraph selection.
      richedit: Implemented triple click selection.
      richedit: Hide cursor when text is selected.
      richedit: Removed unused variable bCaretShown in ME_TextEditor.
      richedit: PFE_TABLE flag is now used instead of private bTable value.
      richedit: Set the default paragraph format consistently.
      richedit: Fixed 2 minor paragraph format effect errors.
      richedit: Prevented cursor flicker while moving over selection bar.
      richedit: Added more conditional cursor changes.
      richedit: Removed redundant wrapping code.
      richedit: Tabs cause lines to wrap but not end of paragraph run.
      richedit: Fixed position of runs in some situations during wrapping.
      richedit: Handle overflow of only spaces on first line of paragraph.
      richedit: Tabs are now highlighted and underlined.
      richedit: Prevented underlining the end of paragraph character.
      richedit: Use system colour for highlighting after v2.0.

Eric Pouech (4):
      winhelp: Start implementing a prop sheet for all lookup needs.
      winhelp: Let CtrlC do something useful thanks to richedit.
      winhelp: Removed the topics button, and forward search and topics to the same prop sheet.
      winhelp: Remove the search button, hook the index button to the Finder, and add a new summary button to go back to main page.

Francois Gouget (9):
      winex11: Load the XVidMode extension (libXxf86vm) when available.
      winhlp32: Remove spaces before '...'.
      msxml3/tests: Add a trailing '\n' to ok() calls.
      gdiplus/tests: Spelling fix.
      rpcss: Add a trailing '\n' to a Wine trace.
      wined3d: Move float_32_to_16() to surface_base.c which is the only place where it's used, and because it needs port.h for isinf().
      Assorted spelling fixes.
      gdiplus: Add/fix the trailing '\n' to Wine traces.
      configure: On Solaris liblber needs libsocket.

Gerald Pfeifer (5):
      iphlpapi: Include <netinet/in_systm.h> if present.
      comctl32: Fix signedness of two variables.
      comctl32: Simplify functions by shedding off unused parameters.
      winecfg: Fix signedness of variable in enumerate_valuesW().
      comctl32: Some simplifications.

H. Verbeet (14):
      wined3d: Invert "upsidedown" in fb_copy_to_texture_direct() and fb_copy_to_texture_hwstretch() rather than BltOverride().
      wined3d: Move setting a palette up a couple of lines in BltOverride().
      wined3d: Use ModifyLocation() to force a reload on color key change.
      wined3d: Specify the GLSL language version our shaders are written to.
      wined3d: Get rid of a redundant local variable.
      wined3d: Extract an attach_depth_stencil_fbo() function.
      wined3d: Make sure the FBO doesn't have any depth attachments in color_fill_fbo() and stretch_rect_fbo().
      wined3d: Use dst_fbo to do the depth blit.
      wined3d: Track depth stencil location per-surface.
      wined3d: Store the current GLSL program in the backend's private data.
      wined3d: Store the glsl program lookup table in the backend's private data.
      wined3d: Destroy depth_blt resources in the backend's destructor.
      wined3d: Don't call shader_select() in depth_blt().
      wined3d: Destroy the shader backend after the stateblock.

Hans Leidekker (8):
      wininet: Add a test for InternetCanonicalizeUrl.
      wininet: Avoid a crash on an invalid handle in InternetQueryOption.
      wininet: More win64 compatibility fixes.
      wininet: Don't assume URL is null-terminated in InternetCrackUrlW.
      wininet: Allocate buffers in InternetCrackUrlA.
      wininet: Only reconnect when redirected to an external site.
      msi: Correct spec file entry for MsiGetFileVersion{A, W}.
      shlwapi: Add a couple of tests for UrlUnescape.

Huw Davies (12):
      gdiplus: Fix a typo in the parameter validation check.
      gdiplus: Add stubs for a few region functions.
      gdiplus: Add some region tests.
      gdiplus: Add some more region stubs.
      gdiplus: Add a test to show that bitmap fonts aren't used for fontfamilies.
      user32: sizeof DDEPOKE and DDEDATA is six, which is probably not what is expected, so use offsetof instead.
      gdiplus: Add some tests for regions with paths and update a comment.
      gdiplus: Add some defines for the magic values.
      gdiplus: Add stubs for GdipTransformPoints[I].
      gdiplus: Implement GdipCreateMetafileFromWmfFile.
      gdiplus: Stubs for GdipIsVisiblePathPoint[I].
      gdiplus: Partial implementation of GdipCreateBitmapFromGdiDib.

Hwang YunSong(황윤성) (5):
      winecfg: Updated Korean resource.
      shell32: Updated Korean resource.
      taskmgr: Updated Korean resource.
      winhlp32: Updated Korean resource.
      winhlp32: Updated Korean resource.

Jacek Caban (20):
      oleaut32: Added test showing need to QueryInterface on dual  interface in ITypeInfo::Invoke.
      mshtml: Added VT_BSTR support to IHTMLWindow3::setTimeout.
      mshtml: Forward IHTMLWindow2::setInterval to IHTMLWindow3.
      mshtml: Added IHTMLWindow3::setInterval implementation.
      mshtml: Added IHTMLWindow2::clearTimeout implementation.
      mshtml: Added IHTMLWindow2::clearInterval implementation.
      mshtml: Added IHTMLWindow::get_window implementation.
      mshtml: Added IHTMLWindow2::get_self implementation.
      mshtml: Added support for DOCHOSTUIFLAG_SCROLL_NO DOCHOSTINFO flag.
      mshtml: DispatchEx's QueryInterface implementation clean up.
      mshtml: Silence common invalid QueryInterface FIXME.
      mshtml: Added IHTMLImgElement::[get|put]_alt implementation.
      mshtml: Added IHTMLStyle::[get|put]_width implementation.
      mshtml: Return NULL in window object's GetNameSpaceParent.
      mshtml: Ignore fdexNameImplicit flag.
      mshtml: Silence common invalid FIXME.
      mshtml: Set doc to NULL in NSContainer_Release.
      mshtml: Don't mix nsresult with HRESULT.
      shlwapi: Fixed UrlCanonicalizeW for URLs without slashes after scheme.
      shlwapi: Fixed handling mk protocol URLs in UrlCombineW.

James Hawkins (55):
      comctl32: Remove an assumption that causes test failures if default icon spacing is not 43x43.
      oleaut32: Trace the failing VarCmp result.
      advapi32: Fix a test failure on a non-admin XP system.
      ole32: Fix a test failure in win9x.
      lz32: Fix a test failure in win9x.
      kernel32: Fix a test failure in win9x.
      kernel32: Fix a few test failures in win9x.
      kernel32: Fix a few test failures in win9x.
      kernel32: Don't test for HARDDISK and RAMDISK on win9x.
      advpack: Run the files test in a temporary directory.
      advpack: Run the install test in a temporary directory.
      advpack: Fix several test failures in win9x.
      comctl32: Clean up and fix a few failing tests in win9x.
      comctl32: Fix two failing tests in win9x.
      gdi32: Fix a failing test in win95.
      urlmon: Fix a few test failures.
      fusion: Add initial implementation of IAssemblyName.
      fusion: Add tests for IAssemblyName.
      fusion: Add tests for IAssemblyCache::QueryAssemblyInfo.
      mshtml: Fix a test failure in win2k.
      setupapi: Fix a test that is failing in multiple platforms.
      shell32: Fix a test that fails in win2k.
      user32: Fix a few failing tests in win2k.
      wininet: Fix a failing test in win2k.
      oleaut32: Fix a test that fails on all platforms up to and including win2k.
      rpcrt4: Fix a few failing tests in win2k.
      msi: Test the special _Storages table.
      fusion: pwzFilePath is an out parameter, so don't trace its contents.
      advapi32: Fix a failing test in win2k.
      ddraw: Fix a failing test for broken drivers.
      ddraw: Fix a failing test for broken drivers.
      dsound: Fix a failing test for broken drivers.
      kernel32: Fix test failures because of a broken ReplaceFile in win2k.
      advapi32: Send in an empty string to RegSetValueEx to avoid a test failure in win95.
      d3d9: Fix a test that fails with broken drivers.
      rpcrt4: Fix a failing test in win2k.
      gdi32: Fix two tests that fail for all platforms.
      ntdll: Skip the byte swap test in win2k.
      rpcrt4: Fix a test that fails in win2k3.
      d3d9: Fix a failing test for broken drivers.
      ole32: Fix a few failing tests in win2k.
      comctl32: Properly set and store the default icon spacing.
      msi: Properly add a storage to the database and verify its contents.
      msi: Add handling for the special _Storages table.
      msi: Parse the MSIDBOPEN_PATCHFILE flag.
      msi: Consolidate the MsiGetSourcePath tests and add more tests.
      msi: Only use the long filename when resolving the source path.
      msi: Consolidate and add more SourceDir tests.
      oleaut32: Fix a few failing tests in win9x.
      fusion: Implement GetCachePath.
      mlang: Reimplement ConvertINetMultiByteToUnicode.
      mlang: Add tests for ConvertINetMultiByteToUnicode.
      mlang: Encode all the way to the NULL terminator.
      msi: Add tests for opening a package from a database.
      msi: Only copy the resulting string if the RegistryValue call succeeded.

Jeff Latimer (1):
      usp10/tests: Remove incorrect tests.

Jeff Smith (2):
      gdiplus: Remove duplicate forward declaration of class GpGraphics.
      gdiplus: Fix spec definition of GdipCreateBitmapFromHBITMAP.

Jeremy White (1):
      configure: On Solaris, libpng requires libm.

John Klehm (1):
      dsound: Accept DSERR_INVALIDCALL for CreateSoundBuffer failure.

Jon Griffiths (17):
      include/basetsd.h: Ignore cpu checks whn __midl is defined.
      oleaut32: Use users default LCID for type libraries.
      oleaut32: ICreateTypeLib2_SetLcid sets both LCID's.
      oleaut32: Null doc string params return E_INVALIDARG.
      oleaut32: Implement ICreateTypeLib2_SetHelpContext.
      c2man: Don't mangle 'dll' when its part of another word.
      oleaut32/test: Fix valgrind leaks.
      oleaut32: Fix memcpy overlapping ranges in SysReAllocStringLen.
      wsock32: Forward TransmitFile to the implementation in mswsock.
      msvcr71: Forward __pctype_func.
      Fix minor comment typos.
      oleaut32: Don't read past the digits array in VARIANT_FormatNumber.
      oleaut32: Implement ICreateTypeLib2::SetHelpStringContext/SetHelpStringDll.
      msvcrt: Implement ___setlc_active_func/___unguarded_readlc_active_add_func.
      msvcrt: Tests for [w]makepath.
      msvcrt: Make tests for [w]makepath pass.
      include: Avoid TEXT() in sddl component tags, hide them when building Wine.

Juan Lang (11):
      inetmib1: Make table searching function into a generic helper.
      inetmib1: Support the MIB2 UDP table.
      inetmib1: Don't prefer the native version, it doesn't do much anyway.
      inetmib1: Free memory when DLL is unloaded.
      cryptui: Add header.
      cryptdlg: Add header.
      cryptdlg: Include cryptdlg.h.
      cryptdlg: Implement DllRegisterServer/DllUnregisterServer.
      richedit: Only send update events in 1.0 emulation mode if the event mask specifies it.
      inetmib1: Fix test failures on some systems.
      wintrust: Use path in WIN_TRUST_SUBJECT_FILE structure rather than assuming a path is passed in place of WINTRUST_DATA's pFile member.

Kai Blin (2):
      netapi32: Make sure NetUserGetInfo can find the current user.
      ws2_32: Prevent segfault in trace for NULL AddressString.

Maarten Lankhorst (25):
      wined3d: Fix a deadlock that may occur during initialization.
      quartz: Fix return values in directsound renderer.
      quartz: Fix return value for video renderer.
      quartz: Make CLSID_AudioRender an alias for CLSID_DSoundRender.
      quartz: Set filesource initial state to stopped.
      quartz: Implement state transitions in directsound renderer, and block on pause.
      quartz: Implement state transitions in video renderer.
      quartz: Fix tiny bug in IGraphBuilder_Render.
      quartz: Make sure transform filter commits allocator.
      quartz: Only call begin process functions in transform filter when stopped.
      quartz: Fix parser/pullpin to only care about the state transition stopped<->playing.
      quartz: Fix deadlock with transform filter.
      quartz: Add rewrite of avi splitter.
      quartz: Add tests for avi splitter.
      quartz: Always set current position again.
      quartz: Fix end of stream handling.
      quartz: Fix deadlocks in dsound renderer.
      quartz: Make parser start even if some of the pins aren't connected.
      quartz: Make filtergraph quieter.
      quartz: Call run before pausing in transform filter.
      ntdll: Use module for path to activation context.
      quartz: End the flush downstream first before restarting playback in pullpin.
      quartz: Make the file source rotate around the 'first' sample, to prevent starvation of a single stream.
      devenum: Call VariantInit instead of VariantClear.
      includes: Add video mixing renderer header.

Massimo Del Fedele (1):
      opengl32: glGetString() should return NULL on NULL context.

Michael Karcher (7):
      crypt32: ComparePublicKeyInfo must ignore the leading zero.
      crypt32: Remove duplicate MS test root key.
      gdi32: Fix double->fixpoint conversion in freetype.c.
      gdi32: Fix palette of 1bpp DIB in GetDIBits.
      winex11: Fix GetDIBits of 1 bit DDBs.
      winex11: Made local constant static.
      Add support for compatibility mode in WineEngCreateFontInstance.

Michael Stefaniuc (4):
      gdiplus: Remove redundant NULL check before GdipFree (Smatch).
      riched20: Fix typo.
      quartz: Compare a file handle to INVALID_HANDLE_VALUE and not NULL.
      quartz: Add missing LeaveCriticalSection on error path (Smatch).

Mikołaj Zalewski (12):
      browseui: progressdlg: don't leak the event.
      shell32: RunFileDlg: the function should be Unicode on NT.
      shell32: RunFileDlg: use symbolic constants for control IDs and use correct hInstance when creating it.
      shell32: RunFileDlg: allow the user to cancel the Browse dialog, remove some unneeded parameters.
      shell32: RunFileDlg: make the error messages easier to understand for the user.
      shell32: RunFileDlg: move strings to resources.
      shell32: RunFileDlg: use the parameters.
      taskmgr: Move Run dialog caption to resources, use the standard text.
      shlwapi: UrlCanonicalize should strip all the characters <= 32 from the end of the string.
      shell32: Make new style Browse For Folders dialog resizable.
      shell32: RunFileDlg: Allow custom icons.
      taskmgr: Use own icon in Run dialog.

Nikolay Sivov (23):
      gdiplus: Fix uninitialized value jump and a leak in GdipAddPathPolygon test.
      gdiplus: GdipGetPathLastPoint implementation.
      gdiplus: GdipGetPathGradientWrapMode implementation.
      gdiplus: Implemented GdipCreateTextureIAI using float args version.
      gdiplus: Implemented GdipDrawBeziers.
      gdiplus: Implementation of GdipPathIterEnumerate.
      gdiplus: Added file for PathIterator testing.
      gdiplus: Construction/desctruction tests for PathIterator.
      gdiplus: Implemented GdipPathIterHasCurve with tests.
      gdiplus: Remove unnecessary cast from GdipAddPathRectangle.
      gdiplus: GdipPathIterNextMarker implementation with tests.
      gdiplus: Implementation of GdipPathIterGetSubpathCount with tests.
      gdiplus: Check arguments in GdipPathIterNextSubpath.
      gdiplus: GdipGetLineWrapMode implementation.
      gdiplus: GdipIsMatrixInvertible implementation with tests.
      gdiplus: GdipInvertMatrix implementation with tests.
      gdiplus: Implemented GdipShearMatrix with tests.
      gdiplus: Semi-stub for GdipCreateLineBrushFromRectWithAngle.
      gdiplus: Implemeted GdipDrawClosedCurve2 and GdipDrawClosedCurve2I.
      gdiplus: Implemented GdipDrawClosedCurve and GdipDrawClosedCurveI.
      gdiplus: GdipFillRegion actually belongs to Graphics.
      gdiplus: Implemented GdipSetPenDashCap197819.
      gdiplus: Implemented GdipGetPenDashCount.

Owen Rudge (1):
      shell32: Check registry entry for cpl files (in standard control panel).

Paul Vriens (1):
      quartz/tests: Make tests run on everything lower then Vista.

Peter Oberndorfer (4):
      msvcrt: Add a test for scanf %p.
      msvcrt: Implement %p for scanf.
      ntdll: Add broken() to two test cases.
      opengl32: Fix a typo (wglShaderLists -> wglShareLists).

Piotr Caban (27):
      msxml3: Added IXMLDOMElement_getAttributeNode test.
      msxml3: Added IXMLDOMElement_getAttributeNode implementation.
      msxml3/tests: Better error messages formatting.
      msxml3/tests: Fix error messages.
      msxml3: Added stub implementation for SAXXMLReader interface.
      msxml3: Added ISAXMLReader_getContentHandler implementation.
      msxml3: Added ISAXXMLReader_putContentHandler implementation.
      msxml3: Added ISAXMLReader_getContentHandler implementation.
      msxml3: Added ISAXMLReader_putErrorHandler implementation.
      msxml3: Added ISAXXMLReader_getErrorHandler implementation.
      msxml3/test: Added ISAXXMLReader test.
      msxml3: Use IXMLDOMNode_get_nodeType in xmlnode_appendChild.
      msxml3: Implemented domdoc_put_documentElement.
      msxml3: Make bsc heap based object.
      msxml3: Store IBinding in bsc.
      msxml3: Store current bsc in domdoc.
      msxml3: Use OnDataAvailable for reading stream.
      msxml3: Return better bindf in GetBindInfo.
      msxml3: Split DOMDocument_create.
      msxml3: Implemented xmlnode_get_ownerDocument.
      msxml3: Added test of files generated by IXMLDOMDocument_save.
      msxml3: Skip the first XML declaration in file generated by domdoc_save.
      msxml3/tests: Added more tests to ISAXXMLReader_putContentHandler and ISAXXMLReader_getContentHandler, added todo test for ISAXXMLReader_parse.
      msxml3: oldChild in xmlnode_removeChild may be NULL.
      msxml3: Fixed xmlnode_removeChild.
      msxml3: Fixed ISAXXMLReader_getContentHandler and ISAXXMLReader_getErrorHandler when second argument is NULL.
      msxml3/tests: Added test for getContentHandler with NULL argument.

Reece Dunn (1):
      comctl32: Add support for drawing themed group boxes.

Rob Shearman (20):
      oleaut32: Implement the 0x08 flag in SLTG_DoVars.
      oleaut32: Load string constants correctly from SLTG typelibs.
      oleaut32: Dump symbolic names for VT_LPSTR and VT_LPWSTR in dump_TypeDesc.
      include: Add uuid to interfaces in pstore.idl.
      include: Add uuids to interfaces in amvideo.idl.
      include: Add uuids to interfaces in sensevts.idl.
      rpcrt4: Add a comment in NdrSendReceive explaining why we change the BufferLength.
      rpcrt4: Reset the BufferLength to the used part of the buffer in NdrProxySendReceive.
      widl: Increment the buffer offset by 8 for embedded pointers inside varying arrays in varying structures.
      widl: Check that the structure has been defined in check_remoting_args.
      widl: Consolidate top-level parameter conformance/variance expression writing into a separate function.
      rpcrt4: Support calculating the size in memory of range types embedded in complex types.
      rpcrt4: Fix NdrComplexArrayUnmarshall and NdrComplexStructUnmarshall to reuse memory for embedded pointers.
      rpcrt4: The conformant array offset in complex structs should be signed.
      rpcrt4: Implement memory sizing for pointers in complex types.
      rpcrt4: Don't reserve space in the buffer for reference pointers embedded in complex types.
      include: Remove unused file wine/rpcss_shared.h.
      widl: Rename find_type_helper, find_type and find_type2 to find_type, find_type_error and find_type_error2 respectively.
      widl: Remove some unnecessary calls to duptype.
      rpcrt4: Clear the memory of embedded complex types in ComplexUnmarshall when fMustAlloc is TRUE to avoid passing uninitialised memory to the unmarshaller.

Roy Shea (2):
      wintrust/test: Verify array length before calling memcmp in test.
      include: Add header for mstask.

Sinitsin Ivan (2):
      mshtml: Add HTMLWindow_scrollTo implementation.
      mshtml:	Add HTMLWindow_scrollBy implementation.

Stefan Dösinger (52):
      wined3d: RENDERTARGET | AUTOGENMIPMAP are compatible.
      wined3d: Update the blit ortho on size changes.
      wined3d: Use CTXUSAGE_RESOURCELOAD for fb->texture reads.
      wined3d: Delay render target activation.
      wined3d: Restore the gamma when destroying the swapchain.
      wined3d: Correct an off-by-one error in constant dirtification.
      wined3d: Remove an unneeded atifs hack.
      wined3d: Start the state splitup.
      wined3d: Implement the state merger and start to use it.
      wined3d: Make the stream source application a regular state function.
      wined3d: Move stream source and vshader to misc and vertex pipeline tables.
      wined3d: Move material application to the vertex pipeline.
      wined3d: Move the frontfacing state to the misc state table.
      wined3d: Move clipplanes to vertex states.
      wined3d: Move the scissor rect to the misc states.
      wined3d: Move lights to the vertex pipeline states.
      wined3d: Move shader constants to the misc states.
      wined3d: Move the viewport to the vertex and misc pipeline states.
      wined3d: indexbuffer -> misc.
      wined3d: Move transforms to the vertex code.
      wined3d: Move texture transform flag stuff to the vertex pipeline states.
      wined3d: Create fragment processing state templates and select one.
      wined3d: Communicate the atifs functions via the fragment pipeline impl.
      wined3d: Remove the DLL load init function.
      wined3d: Remove the state table from the shader backend.
      wined3d: Move Fixed function pipeline states to the new fragment structure.
      wined3d: Initialize the state table before filling it.
      wined3d: Move pixelshader application to the fragment pipeline.
      wined3d: Move WINED3DRS_ANTIALIAS to the misc states.
      wined3d: Textureperspective->misc states.
      wined3d: Move a few more states to the misc pipeline.
      wined3d: Move wrapu to the misc states.
      wined3d: Alpha states -> misc pipeline states.
      wined3d: WINED3DRS_LASTPIXEL -> misc states.
      wined3d: Move a few more states to the misc states.
      wined3d: Move fog to the vertex states.
      wined3d: Move more fog stuff to the vertex states.
      wined3d: Move the bordercolor to the fragment states.
      wined3d: WINED3DRS_ZBIAS -> misc states.
      wined3d: Move a few more odd states to the misc state table.
      wined3d: Stencil states -> misc table.
      wined3d: texturefactor-> fragment states.
      wined3d: Wrapping states -> misc.
      wined3d: WINED3DRS_SRGBWRITEENABLE->fragment.
      wined3d: A few more vertex states.
      wined3d: A few more junk misc states.
      wined3d: Point size vertex states.
      wined3d: One more psize state.
      Wined3d: Move the last states.
      wined3d: Samplers -> misc states.
      wined3d: Move shader_fragment_enable to the fragment pipeline implementation.
      wined3d: Set ffp caps in the ffp backend, not the shader backend.

Stefan Leichter (2):
      rasapi32: Added some tests for RasEnumDevicesA (based on a patch by Austin English),
      rasapi32: Added some more tests for RasEnumDevicesA, fix Wine not to crash on the tests.

Tobias Jakobi (3):
      d3d8: Add testcase for IDirect3DDevice8::CreateImageSurface.
      d3d8: Fix IDirect3DDevice8::CreateImageSurface pool type.
      d3d9: Remove faulty comment from CreateOffscreenPlainSurface.

Vijay Kiran Kamuju (1):
      vdmdbg: Add stub for VDMEnumProcessWOW.

Vincent Povirk (2):
      comctl32: Add test for disabling owner of modal property sheets.
      comctl32: Disable owner of modal property sheets before creating the dialog.

Vitaliy Margolen (5):
      dinput: Add more traces. Prevent some traces from dereferencing NULL pointer.
      dinput: Stop and unload effect when freeing it.
      dinput: Use Wine list for effects list.
      dinput: Freed effect should remove itself from the parent's list of effects. Add tests.
      dinput: Set force feedback actuator flag for X and Y axes.

Vladimir Pankratov (5):
      winecfg: Update Russian translation.
      winhlp32: Update Russian translation.
      taskmgr: Changed about form to standard shell32.
      README: Add Russian translation.
      shell32: Update Russian translation.

Zac Brown (14):
      ntdll: Implement checking for control characters in RtlIsTextUnicode.
      include: Add more #define's for winhttp options.
      winhttp.h: Add WinHTTP error codes.
      winhttp: Add stub implementation for WinHttpConnect.
      winhttp: Add stub implementation for WinHttpOpenRequest and fix function declaration.
      winhttp: Add stub implementation for WinHttpSendRequest.
      winhttp: Add stub implementation for WinHttpQueryOption.
      winhttp: Add stub implementation for WinHttpQueryDataAvailable.
      winhttp: Add stub implementation for WinHttpReceiveResponse.
      winhttp: Add stub implementation for WinHttpSetOption.
      winhttp: Add stub implementation for WinHttpReadData.
      winhttp: Add stub implementation for WinHttpCloseHandle.
      wininet/tests: Change some traces to skips in tests.
      include/winhttp.h: Add WinHttp status codes.

Zachary Brown (1):
      winhttp: Build an import library.

Zhangrong Huang (2):
      secur32: Allow loading external schannel.dll.
      msxml3/test: Fix a typo in test node_to_string().

--
Alexandre Julliard
julliard@winehq.org
