The Wine development release 1.1.22 is now available.

What's new in this release (see below for details):
  - More improvements to OLE copy/paste.
  - Beginnings of x86_64 exception handling.
  - Direct3D locking fixes.
  - ARB shaders improvements.
  - Better OpenGL pixel format support.
  - Various bug fixes.

The source is available from the following locations:

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

   7084  Installers/wine fail(s) to extract icons for menu links
   7326  Some apps complain "DDE requires ddeml.dll"; just need a link
   8349  Lords of the Realm 2 installer fails to complete
   8680  Poker Heaven creashes on exit
   9366  QuickTimePlayer 7.2.0.240 aborts on unimplemented function gdiplus.dll.GdipCreateRegion
  10072  Half Life 2 Reflections reversed on real world reflections option
  10449  Broken Cross Disk Manager: Crash at start, needs gdiplus.dll.GdipCreateHBITMAPFromBitmap
  10788  Windows Movie Maker needs gdiplus.dll.GdipCreateBitmapFromHICON
  12251  Gamma on screen is brighter after application exits
  12440  Screen/Graphics corruption in Sammy's Science House
  12450  Adobe Acrobat Pro 6 & 7 / Acrobat Reader 6 & 7 -- "Detect and Repair" does nothing (MsiReinstallProduct)
  12585  Unhandled pagefault in Return to Castle Wolfenstein
  13040  SkyMap Pro: Tip of the Day is a blank window.
  13137  inetcpl crashes due to unimplemented function wininet.dll.GetDiskInfoA
  13182  Ultraedit v14.00+3 cannot be configured anymore
  13201  Microsoft Pinball Arcade jittery animations
  13243  Trackmania (Nations) Forever doesn't sometimes work with 3d-glasses
  13366  Scarface fails to start due to "unhandled page fault"
  13642  dogfood: InterPoker on Linux crashes
  13736  Detection of nvidia geforce 9x00 video memory isn't implemented
  15468  polygon vertex problems on assassin's creed characters
  15762  .desktop files are created in ~, not in ~/Desktop
  15923  make test fails in monthcal.c
  16021  Provide vista-style symlinks for the profiles directory
  16072  DesignaKnit 7 fails to run
  16123  WINE and Office progs running in background when they shouldn't be
  16363  Google Chrome window is rendered totally black.
  16620  Office 2003 cannot install Service Pack 3
  16686  Wine's wordpad doesn't allow setting font?
  16769  MSN Messenger 7.0 Don't redraw the chat window correctly
  16901  bejeweled and bejeweled twist use 100% cpu
  16926  Mathematica 7 Player complains "could not establish a connection to the kernel"
  17305  PCMark 05 crashes on  unimplemented d3dx9_25.dll.D3DXGetImageInfoFromFileInMemory
  17470  IP Softphone 2050 doesn't start
  17629  unimplemented function setupapi.dll.CM_Locate_DevNode_ExA
  17687  vlc 0.9.8a segfaults on launch
  17983  WiX fails with builtin msi.dll
  17993  winamp's installer shows corrupted checkbox buttons
  18044  System Font Linking fails with MS Shell Dlg
  18080  Clipboard (Ctrl+V) no longer works in Word 2003/2007
  18188  Everest Poker and Casino exit silently with builtin gdiplus
  18246  Adobe Updater: crashes when installing updates
  18274  Xenocode Virtual Appliance Runtime Error 0xD0000022
  18349  Incorrect font rendering in Japanese locale
  18395  Garrys mod crashes when joining.
  18453  hs950 firmware installer crashes on exit with unimplemented function SETUPAPI.dll.SetupUninstallOEMInfA
  18515  Deleting the last entry in the overrides tab in winecfg is not shown correctly
  18537  Child windows jump when clicked and dragged by title bar
  18555  Dotnet power profile fixmes cause irritation in bash/dash

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

Changes since 1.1.21:

Alexandre Julliard (33):
      user32/tests: Fix the LB_DELETESTRING for older Windows versions.
      user32/tests: Add more systematic support for ignoring certain messages.
      include: Fix the C_ASSERT macro for the latest gcc.
      user32/tests: Add an optional message for Win95.
      wininet: Centralize detection of chunked mode and add a flag for it in the http request structure.
      wininet: Add a read-ahead buffer to allow InternetQueryDataAvailable to return the right values in chunked mode.
      wininet/tests: Add a test for reading chunked data.
      wininet: Get rid of the SSL-specific read-ahead buffer.
      mlang: Return the correct count  in IMLangFontLink_GetStrCodePages when aborting early.
      shlwapi: Add a partial stub for IConnectionPoint_InvokeWithCancel.
      ntdll: Added a stub for RtlUnwindEx on x86_64.
      ntdll: Initial implementation of RtlVirtualUnwind on x86_64.
      ntdll/tests: Added some test cases for RtlVirtualUnwind.
      ntdll: Free old memory block when reallocating to a large block.
      ntdll: Tweak the file mapping permission checks some more, with tests.
      ntdll/tests: Add more tests for RtlVirtualUnwind.
      ntdll: Add support for some function epilogs in RtlVirtualUnwind.
      ntdll: Add test cases for the returned frame value in RtlVirtualUnwind.
      msvcrt/tests: Use the _winver etc. variables instead of the __p_ functions that don't exist on 64-bit.
      winmm: Fix some Win64 pointer truncations issues.
      msacm32.drv: Fix some Win64 pointer truncations issues.
      oleaut32: Add support for registering 64-bit typelibs.
      oleaut32/tests: Fix some pointer sizes in typelib tests for 64-bit.
      oleaut32/tests: Fix the tmarshal test on 64-bit.
      widl: Add support for writing 64-bit format typelibs.
      widl: Add support for standard target options to allow building the right typelib kind when cross-compiling.
      oleaut32/tests: Fix some pointer sizes in typelib tests for 64-bit.
      kernel32: Add missing terminator on %wc format conversion.
      shell32: Remove unnecessary linefeeds in traces.
      ntdll: Implemented RtlLookupFunctionEntry for x86_64.
      ntdll: Initial support for dispatching exceptions to stack handlers on x86_64.
      ntdll: Implement __C_specific_handler for x86_64.
      ntdll: Implement RtlUnwindEx for x86_64.

Anders Jonsson (3):
      notepad: Update Swedish translation.
      regedit: Update Swedish translation.
      mshtml: Update Swedish translation.

Andrew Nguyen (11):
      kernel32/tests: Correctly skip tests when the Unicode directory functions are not available.
      kernel32/tests: Correctly skip tests when the Unicode drive functions are not available.
      kernel32/tests: Correctly skip when the Unicode file functions are not available.
      kernel32/tests: Correctly skip when Unicode locale functions are not available.
      kernel32/tests: Correctly skip when GetTempPathW is not available.
      kernel32/tests: Correctly skip when Unicode thread functions are not available.
      kernel32: Don't validate the command line parameter of CreateProcessW.
      kernel32: Correct the last error of CreateProcessW with an empty application name string.
      kernel32: Correct the last error of CreateProcessW with an empty command line string.
      kernel32/tests: Use named constants for a drive test.
      kernel32/tests: Correctly skip when the Unicode communications functions are not available.

André Hentschel (1):
      winemaker: Read the includes of a dsp project file.

Aric Stewart (19):
      msctf: Implement ITfKeystrokeMgr::AdviseKeyEventSink.
      msctf: Implement ITfKeystrokeMgr::UnadviseKeyEventSink.
      msctf: Implement ITfKeystrokeMgr::GetForeground.
      msctf: Implement ITfSource interface for ITfInputProcessorProfiles.
      msctf: Support advising ITfLanguageProfileNotifySink in ITfInputProcessorProfiles.
      msctf: Map out currently missing interfaces.
      msctf: Define ITfEditSession implemented by TextServices.
      msctf: TfContext intitalization and uninitialization on Push and Pop.
      msctf/tests: Test TextService requesting an EditSession.
      msctf: Starting implementation of ITfContext::RequestEditSession and ITextStoreACPSink::OnLockGranted.
      advapi32: Handle well qualified names in LookupAccountNameW for account names.
      msctf: Add stub implementation of ITfRange.
      msctf: Implement ITfRange::GetContext.
      msctf: Beginning of TfEditCookie definition and usage.
      msctf: Generate TfEditCookies for edit sessions.
      msctf: Correct order of dwFlag checking to properly be able to set a ReadWrite lock.
      msctf: Beginning implementation of ITfContext::GetStart.
      msctf: Beginning implementation of ITfContext::GetEnd.
      msctf: Beginning implementation of ITfContext::GetSelection.

Aurimas Fišeras (1):
      notepad: Update Lithuanian translation.

Austin English (7):
      secur32/tests: Sign compare fixes.
      d3dxof/tests: Sign compare fix.
      hlink/tests: Sign compare fix.
      msvcrt/tests: Sign compare fixes.
      imm32/tests: Sign compare fix.
      ntdll: Change a noisy FIXME to a WARN.
      powerprof: Remove a noisy FIXME.

Damjan Jovanovic (3):
      oleaut32: fix a rounding bug in VarFormat.
      oleaut32: Strip trailing decimal zeroes when rounding a number in VarFormat.
      oleaut32: Add a failing VarFormat test showing that wine wrongly truncates decimals with large negative exponents instead of rounding.

Detlef Riekenberg (1):
      wininet/tests: Remove a duplicate test.

Dmitry Timoshkov (5):
      sfnt2fnt: Take into account external leading when calculating the font point size.
      winedump: Add an ability to dump font files.
      system.sfd: Make lower case latin letters in 18 pixel Japanese bitmap font not bold.
      user32: Invalidate a being removed listbox item before deleting it as it's been done before d2ecb1194102b6d7e6078556f80e58c70ca39c23.
      dbghelp: All parameters of MiniDumpReadDumpStream() except base are optional.

Eric Pouech (2):
      msvfw32: Clearly separate the 16-bit code out of the rest by wrapping 16-bit message functions in thunks.
      msvideo16: Make msvideo16 a separate 16-bit module.

Francois Gouget (37):
      winhlp32: Use Win32 APIs instead of strdup().
      msctf/tests: Reorder the code to avoid forward declarations.
      msctf/tests: Make some functions static.
      setupapi: VcpEnumFiles() is implemented so export it.
      dsound/tests: Replace malloc() with HeapAlloc().
      lz32/tests: Replace malloc() with HeapAlloc().
      ntdll/tests: Replace malloc() with HeapAlloc().
      shell32/tests: Replace malloc() with HeapAlloc().
      winecfg: Use Win32 APIs instead of strdup().
      ddraw/tests: Replace malloc() with HeapAlloc().
      wined3d: Make surface_force_reload() static.
      iphlpapi: Make getInterfacePhysicalByName() static.
      d3dx8/tests: Make compare_vec3() static.
      rpcrt4: Make RPCRT4_NextHttpHeaderField() and RPCRT4_default_receive_fragment() static.
      ntdll: virtual_free_system_view() is not used anymore so remove it.
      riched20: ME_MakeString() is unused so remove it.
      dplayx: NS_GetOtherMagic() is not used, so remove it.
      dplayx: Reorder the code to avoid forward declarations.
      fusion: assembly_get_architecture() is unused so remove it.
      fusion: CompareAssemblyIdentity() and GetAssemblyIdentityFromFile() are unused stubs and don't belong in fusion.dll. So remove them.
      comctl32/tests: Make flush_sequence() static.
      winedbg: Replace realloc() with HeapReAlloc().
      setupapi: Remove some dead code: VCP_VirtnodeDelete() and VCP_RenameFiles().
      setupapi: VcpFlush() and vsmString{Compare,Find}() are unused so remove them.
      shell32: Make AboutDlgProc() and SHELL_execute() static.
      winapi_test: Simplify the code that builds the list of headers to process.
      dplayx: cbDelete{Groups,Player}Elem() are unused so remove them.
      winetest: Rename xmalloc() & co to heap_xxx() to not imply they are based on malloc(), and add heap_free().
      winetest: Replace malloc() & co with HeapAlloc().
      advapi32/tests: Replace realloc() with HeapReAlloc().
      gphoto2.ds: Use Win32 APIs instead of strdup().
      mstask/tests: Replace realloc() with HeapReAlloc().
      oleaut32/tests: Replace realloc() with HeapReAlloc().
      userenv/tests: Replace realloc() with HeapReAlloc().
      msi/tests: Use win_skip() to skip over unimplemented functionality.
      shell32: Add the SHCreateDirectoryEx() macro.
      msctf: Fix an error message.

Frans Kool (1):
      winedbg: Add Dutch translations.

Gerald Pfeifer (3):
      cryptui: Remove double assignment in import_store_dlg_proc().
      msi: Initialize variable in MSI_ApplyPatchW.
      libwine: Remove redundant prototype for wine_call_on_stack().

Guy Albertelli (1):
      kernel32/tests: Add more tests for GetVolumeNameForVolumeMountPointA.

Hans Leidekker (6):
      setupapi: Add stub implementations of SetupUninstallOEMInfA/W.
      setupapi: Add stub implementations of CM_Get_Device_Interface_List_Size_ExA/W.
      wininet: Implement GetDiskInfoA.
      wininet: Add a stub implementation of IncrementUrlCacheHeaderData.
      kernel32: Add support for %ws and %wc format specifiers to FormatMessageA/W.
      kernel32: Add tests for FormatMessageA/W.

Henri Verbeet (25):
      wined3d: Use the output signature to map SM4 pixel shader outputs to the appropriate register.
      d3d10core: Improve the shader input/output signature parsing code.
      d3d10core: Parse pixelshader output signatures and pass them to CreatePixelShader().
      d3d10core: Release the wined3d shader when the d3d10 pixel shader is destroyed.
      d3d10core: Implement ID3D10Device::PSSetShader().
      wined3d: Pass a struct wined3d_shader_register to shader_arb_get_register_name().
      wined3d: Pass a struct wined3d_shader_register to shader_dump_register().
      wined3d: Pass a struct wined3d_shader_register to shader_record_register_usage().
      wined3d: Print the correct limit in a WARN().
      wined3d: Don't create more than WINED3D_MAX_FBO_ENTRIES FBO entries.
      wined3d: Directly call basetexture_apply_state_changes().
      wined3d: Add missing GL locking to fragment_pipeline.enable_extension() implementations.
      wined3d: Add missing GL locking to shader_backend_t.shader_free_private() implementations.
      wined3d: Add missing GL locking to state table calls.
      wined3d: Add missing GL locking to shader_backend_t.shader_select() calls.
      wined3d: Add missing GL locking to delete_glsl_program_entry() calls.
      wined3d: Add missing GL locking to calls to FBO functions.
      wined3d: Add missing GL locking to set_blit_dimension() calls.
      wined3d: Add missing GL locking to IWineD3DDeviceImpl_Uninit3D().
      wined3d: Add missing GL locking to test_pbo_functionality().
      wined3d: Add missing GL locking to d3dfmt_p8_upload_palette().
      wined3d: Add missing GL locking to ffp_blit_set() and ffp_blit_unset().
      wined3d: Add missing GL locking to check_fbo_compat().
      wined3d: Document functions that depend on the caller to do GL locking.
      wined3d: Remove some unused defines.

Huw Davies (28):
      ole32/tests: Make the size tests for the WdtpInterfacePointer marshaller more restrictive.
      ole32/tests: Add tests to show the WdtpInterfacePointer marshal data looks like the result of CoMarshalInterface.
      include: Correct a typo.
      ole32: Add proxies and stubs for GetData and GetDataHere.
      ole32: Add proxies and stubs for Read and Write.
      ole32: Add proxies and stubs for Seek and CopyTo.
      ole32: Add proxies and stubs for OpenStream and EnumElements.
      ole32: Add proxies and stubs for ReadAt and WriteAt.
      ole32: Add proxies and stubs for FillAppend and FillAt.
      msctf/tests: Fix a compiler warning.
      ole32/tests: Show that it's the loword of the separate flag parameter that determines the marshalling context.
      ole32: Implement the WdtpInterfacePointer marshal functions.
      ole32/tests: Add tests for STGMEDIUM marshalling with a non-NULL pUnkForRelease.
      ole32: Add support for marshalling pUnkForRelease.
      ole32/tests: Add tests for TYMED_ISTREAM marshalling.
      ole32: Implement TYMED_ISTREAM marshalling.
      ole32: Implement TYMED_ISTORAGE marshalling.
      ole32/tests: Remove assumptions about the size of marshalled data.
      ole32/tests: Cope with an alignment hole between the two marshalled interfaces.
      ole32: Beginnings of OleCreateFromDataEx.
      ole32: Add support for retrieving data from IPersistStorage.
      ole32: Add support for retrieving the data from CF_EMBEDDEDOBJECT.
      ole32: Use OleCreateFromDataEx to implement OleCreateFromData.
      ntdll/tests: Mark RtlUnicodeStringToInteger("", 16) as broken for nt4.
      ole32/tests: Exercise the HGLOBAL marshaller over a range of block sizes.
      ole32/tests: Use the current stream position to determine the marshal data size.
      ole32: Fix remote HMETAFILEPICT marshalling on 64 bit systems.
      ole32: Explicitly add the three ULONGs from the METAFILEPICT struct to allow for padding in the 64-bit version.

Ilya Shpigor (1):
      msi: Subscribe to SetProgress event on adding progress bar control to dialog.

Jacek Caban (27):
      urlmon: Cache the binding notif window.
      urlmon: Added support for PI_APARTMENTTHREADED to BindProtocol::Switch.
      urlmon: Added support for PI_APARTMENTTHREADED to BindProtocol::ReportProgress.
      urlmon: Added PI_APARTMENTTHREADED support to BindProtocol::ReportProgress.
      urlmon: Added PI_APARTMENTTHREADED support to BindProtocol::ReportResult.
      urlmon: Use PI_APARTMENTTHREADED in Binding object.
      urlmon: Return E_FAIL in Binding::Switch implementation.
      urlmon: Get rid of no longer needed thread checking in Binding object's ReportData and ReportResult implementation.
      urlmon: Get rid of no longer needed thread checking in Binding::ReportProgress.
      urlmon: Get rid of no longer needed values in Binding object.
      urlmon: Moved notif window handling to bindprot.c.
      mshtml: Handle aCount < buf_size case correctly in nsIInputStream::Read implementation.
      urlmon: Added PI_MIMEVERIFICATION support.
      urlmon: Added PI_MIMEVERIFICATION tests.
      urlmon: Use PI_MIMEVERIFICATION in Binding object.
      urlmon: Added GetBindString(BINDSTRING_URL) implementation.
      urlmon: Added BINDSTATUS_LOADINGMIMEHANDLER and BINDSTATUS_LOADINGMIMEHANDLER support to Binding object.
      urlmon: Use internal IInternetProtocol protocol for communication with pluggable protocol in BindProtocol.
      urlmon: Fixed buffer size argument in Read call.
      urlmon: Move MIME availability handling to separated function.
      urlmon: Use protocol_handler in Switch implementation.
      urlmon: Use common name for IInternetProtocol and IInternetProtocolSink vtbls.
      urlmon: Added support for MIME filters.
      urlmon: Added MIME filter handling in BindProtocol tests.
      urlmon: Added IUriContainer declaration.
      urlmon: Fixed buffer size calculation.
      urlmon: Fixed tests on Windows.

Joris Huizer (2):
      pdh: Return correct error on allocation failure.
      msctf: ITfContext::RequestEditSession: dwLockFlags logic corrected.

Juan Lang (5):
      inetmib1/tests: Trace the SNMP error code and index rather than GetLastError on failure.
      inetmib1: Fix memory leaks.
      inetmib1: Make sure the successor to an item doesn't have an identical key as it, to prevent infinite loops in table enumeration.
      inetmib1: Don't query the same OID twice if it returns SNMP_ERRORSTATUS_NOSUCHNAME the first time.
      inetmib1: Rename a poorly named variable.

Kai Blin (1):
      secur32: Don't try to use ntlm_auth --use-cred-cache.

Lionel Debroux (1):
      kernel32: Fix doc header for SetThreadIdealProcessor.

Luke Benstead (1):
      ddraw: Add tests for DirectDrawSurface reference counting.

Marcus Meissner (2):
      urlmon: Separate NULL ptr check (Coverity 924).
      wininet: lpwhr cannot be NULL (Coverity 927).

Michael Stefaniuc (9):
      msvideo.dll16: Add missing unlock on an error path (Smatch).
      msctf: Allocate memory only right before it's needed.
      notepad: Use the more specific MAKEINTRESOURCEW macro.
      notepad: Use the explicit W-form of the functions.
      notepad: The UNICODE define isn't needed anymore; remove it.
      notepad: Fix the Romanian translation.
      Fix typo in Romanian translation basă => bază.
      urlmon: Move 'inline' right after the storage specifier.
      msctf: Use FAILED instead of !SUCCEDED.

Nicolas Le Cam (2):
      wininet/tests: Temporize async HttpSendRequestEx test to avoid timeouts.
      wininet/tests: Fix test when automatically detect network settings is on.

Nikolay Sivov (36):
      comctl32/listview: Make ListView_* macros match PSDK.
      comctl32/listview: Remove superfluous forward declarations.
      comctl32/listview: Select all items with LVM_SETITEMSTATE is blocked in LVS_SINGLESEL.
      comctl32/listview: Don't redraw focus rectangle on column scroll.
      comctl32/listview: Add LVN_INCREMENTALSEARCH definitions.
      comctl32/header: Make Header_* macros match PSDK.
      comctl32/listview: A couple of tests for changing item attributes.
      comctl32/listview: Use neutral LVITEM in ListView_SetItemState macro.
      comctl32/listview: Don't check for state changes we are not aware to store (with some tests).
      comctl32/tab: Fix TabCtrl_* macros.
      comctl32/treeview: Fix TreeView_* macros.
      comctl32/animate: Fix Animate_* macros.
      comctl32/header: Retrieve control data only once at WinProc call.
      comctl32/header: Move parameter cast to WinProc where possible.
      comctl32/header: Use cached colors instead of querying them again.
      comtl32/listview: Cache Header control window GWL_STYLE.
      comctl32/treeview: Use cached colors instead of GetSysColor in TreeView.
      comctl32/tests: Don't use magic numbers for ListView exstyles.
      comctl32/ipaddress: Use cached colors instead of GetSysColor for IPAddress control.
      comctl32/monthcal: Use cached colors instead of GetSysColor for MonthCal.
      comctl32/rebar: Use cached colors instead of GetSysColor for Rebar.
      comctl32/status: Use cached colors instead of GetSysColor for Status.
      comctl32/toolbar: Retrieve control data once at WinProc.
      comctl32/toolbar: Remove superfluous forward declarations.
      comctl32/toolbar: Use already cached control window style.
      comctl32/toolbar: No need to use GetSysColor directly.
      comctl32/comboex: Use cached colors for ComboEx.
      comctl32/tab: Use cached colors for Tab.
      comctl32/syslink: Use cached colors for SysLink.
      comctl32/tooltips: Use cached colors for ToolTips.
      comctl32/listview: Handle mouse selections more accurately.
      comctl32/listview: Fix hittesting for LVS_REPORT subitems.
      comctl32/listview: Don't use uninitialized value.
      comctl32/tests: A basic test for ListView WM_SETREDRAW.
      comctl32/listview: Update focus rectangle properly.
      comctl32/tests: A bunch of ListView hittest tests.

Paul TBBle Hampson (1):
      gdi32: Autopopulate FontLinks when autopopulating FontSubstitutes.

Paul Vriens (18):
      notepad: Fix the Dutch translations.
      comdlg32: Improve the Dutch find and replace dialogs.
      shell32: Improve the Dutch 'about' message box.
      wininet/tests: Fix some test failures with IE8 on W2K3.
      mshtml/tests: Fix some test failures with IE8.
      shdocvw/tests: Fix a test failure with IE8.
      user32/tests: Fix test failures on Win9x/WinME.
      wininet/tests: Fix some test failures on systems with IE6 or older.
      inetcomm: Prevent possible dereferences (Coverity).
      setupapi/tests: Fix remaining failures on Win9x.
      setupapi: Fix passing a NULL parameter (Coverity).
      wine.inf: Set the correct initial service pack information.
      ntdll: Fix a typo.
      kernel32/tests: Fix some test failures on Win9x/WinME.
      wintrust/tests: Add a basic CryptCATOpen test.
      urlmon/tests: Fix some test failures on IE8.
      gdi32/tests: Fix a test failure on Win9x/WinME.
      kernel32/tests: Fix test failure on older W2K boxes.

Rein Klazes (1):
      win87em.dll16: Remove a unnecessary floating point instruction that can cause invalid operation exceptions.

Ricardo Filipe (2):
      setupapi: Add stubs for CM_Locate_DevNode_ExA/W.
      cfgmgr32: Forward CM_Locate_DevNode_ExA/W calls to setupapi.

Rico Schüller (2):
      wined3d: Add UnregisterClass() on DLL_PROCESS_DETACH.
      winedbg: Do not print more than 9 characters from pThread->name.

Robert Key (2):
      wined3d: Fix ATI HD4800 being reported as ATI 9500.
      wined3d: Remove HD 4800 "2048MB for X2 versions" comment.

Roderick Colenbrander (10):
      opengl32: Add a wglShareLists test.
      wgl: Duplicate some single buffered pixel formats for bitmap rendering and restrict bitmap rendering to these formats.
      wgl: Select bitmap capable formats when PFD_DRAW_TO_BITMAP is requested by the caller.
      wgl: Offer PFD_GENERIC_ACCELERATED on bitmap capable formats.
      wgl: Add WGL_SWAP_METHOD_ARB support.
      wgl: Make sure WGL_SUPPORT_GDI_ARB is only seen on formats on which we set it during startup (in get_formats).
      wgl: Make sure WGL_DRAW_TO_BITMAP_ARB is only seen on our duplicated bitmap-capable formats.
      wgl: Use local pixel format data for WGL_ACCELERATION_ARB.
      wgl: Set PFD_GENERIC_FORMAT on bitmap formats instead of PFD_GENERIC_ACCELERATED.
      wgl: Add a test for WGL_ACCELERATION_ARB and the PFD_GENERIC_* flags.

Stefan Dösinger (36):
      wined3d: Merge shader_arb_add_src_param and pshader_gen_input_modifier_line.
      wined3d: Get rid of the strcat in shader_arb_add_dst_param and make it shader_arb_get_dst_param.
      wined3d: Simplify shader_hw_map2gl.
      wined3d: Tidy up shader_hw_rsq_rcp.
      wined3d: Standardize pshader_hw_texkill.
      wined3d: Tidy up pshader_hw_tex.
      wined3d: Fix 1.4 pshader projection in ARB.
      wined3d: Separate Tx tempregs from Tx varyings in ARB.
      wined3d: Tidy up pshader_hw_cnd.
      wined3d: Tidy up pshader_hw_cmp.
      wined3d: Tidy up pshader_hw_dp2add.
      wined3d: Tidy up pshader_hw_texreg2rgb and friends.
      wined3d: Fix a few more hardcoded pixel shader registers.
      wined3d: Fix remaining incorrect dst register getters.
      wined3d: Centralize WINED3DSPDM_SATURATE handling.
      wined3d: Don't use TMP_COLOR unless srgb is enabled.
      wined3d: Use local constants for bump parameters.
      wined3d: Update the bump constants after a shader change.
      wined3d: Support clipplanes with GLSL.
      wined3d: Avoid declaring helper_const in vertex programs if possible.
      WineD3D: Support more constants in ARB shaders.
      wined3d: Only declare TMP_OUT in vertex shaders.
      wined3d: Get rid of TMP2 and some easy TMP register uses.
      wined3d: Get rid of TMP access in texm3x2*.
      wined3d: Get rid of TMP accesses in texm3x3* instructions.
      wined3d: Use CMP instead of SLT and SGE in sRGB correction.
      wined3d: Get rid of the TMP register in fragment shaders.
      wined3d: Fix srgb correction.
      wined3d: Implement mova rounding in arb.
      wined3d: Prepare for vec4 address registers in ARB.
      wined3d: Emulate the 4 component address register in ARB.
      wined3d: Support ABS and ABSNEG in ARB.
      wined3d: Add NV asm extension support to the ARB backend.
      wined3d: Support ABS and ABSNEG with NV extensions if available.
      wined3d: Support vec4 A0 with NV_vertex_program2_option.
      wined3d: Implement SGN in ARB.

Stefan Leichter (1):
      traffic: Stub for TcRegisterClient.

Tim Wright (1):
      qmgr: Change BITS_IBackgroundCopyJob_SetPriority to a stub.

Vincent Povirk (18):
      gdiplus: Add a trace to GdipDrawString.
      gdiplus: Add a trace to GdipMeasureString.
      gdiplus: Add string format traces.
      gdiplus: Populate the installed font collection.
      gdiplus: Stub GdipWidenPath.
      gdiplus: Stub GdipWarpPath.
      shell32: Handle NULL return icon parameters in SHDefExtractIcon.
      gdiplus: Implement GdipTransformPoints.
      gdiplus: Implement GdipTransformPointsI.
      ole32: Process sent and DDE messages in CoWaitForMultipleHandles.
      winex11.drv: Use the proper enum value for repeat.
      winex11.drv: Optimize AlphaBlend of 1x1 source bitmaps.
      gdiplus: Implement partially transparent solid fill brushes.
      shell32: Add test for SHCreateShellItem.
      shell32: Fail properly when no pidl is passed to SHCreateShellItem.
      shell32: Handle parent folders in SHCreateShellItem.
      shell32: Implement IShellItem_GetParent.
      shell32: Implement ShellItem_GetAttributes.

Vitaliy Margolen (3):
      dxdiagn: Rename szClsidCat and szClsidFilter to match native information.
      dxdiagn: Correct version format property.
      dxdiagn: DirectShowFilters should go under numbered sub-containers.

--
Alexandre Julliard
julliard@winehq.org
