The Wine development release 1.1.25 is now available.

What's new in this release (see below for details):
  - A ton of translation updates.
  - Support for various Unicode file encodings in Notepad.
  - Improved memory management, especially for OpenGL.
  - Desktop menus now cleaned up automatically.
  - Beginnings of a windowscodecs DLL implementation.
  - Various bug fixes.

The source is available from the following locations:

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

   5720  addr_to_linear Failed to linearize address, etc.
   7229  Using sound in WoW causes a lockup
   7949  Quicktest Pro 8.2 fails to start up
   8690  Display Error with CyclingPeaks WKO
   9256  S.T.A.L.K.E.R. - Major slowdown near anomalies or in high RAD areas
   9944  Cannot active Microsoft Office 2003 Over the telephone
  10277  Uninstalling software does not remove them from Programs menu
  10688  PSP 7.0 installation blows up
  11223  uTorrent 1.8 alpha not working - GetBestInterfaceEx problem
  11492  Perfect world entering world wait infinite
  12492  Farcry on steam does not start
  12615  EVE Online: Space textures are replaced with some other things from video-memory
  13130  Sound in Nightlong only working every couple of starts
  13204  winealsa.drv makes incorrect assumptions about hardware
  13335  Wine virtual memory exhaustion causing OpenGL crashes / slowdowns
  13706  Mankind encounters a page fault on startup
  14000  Everquest2 - unable to find a suitable iPixel Format with ATI
  14012  CodeWright crashes
  14182  Warcraft III: The Frozen Throne installer crashes
  14239  Sonos Desktop Controller: Crashes clicking in the Music Library list
  14555  Tool-tip glitch in The Curse of Monkey Island
  14794  Crash when starting Yahoo Messenger 8
  15484  Respondus Lockdown browser fails to launch
  15534  Dragon NaturallySpeaking 10 crashes occasionally with seh error
  15742  eMule: Missing text in the information box
  16386  FAR crashes with Unimplemented KERNEL32.dll.GetConsoleAliasW
  16827  Secret Maryo Chronicles: Won't install.
  16864  Rendering of main character is wrong
  17253  Luka: exits soon after start
  17318  winemenubuilder fails to create proper menu structure
  17618  winecfg does not set drive type correctly for Local Hard Disk choice
  17706  EVE Premium and Geforce 6200: FPS drops to 0 during Warp
  18006  Mp3tag: Crash when using Tag Sources feature
  18192  Notepad can only save in current locale encoding, should be able to save in unicode
  18208  crypt32.dll.CryptRegisterOIDInfo needed for Microsoft Font Validator (installer)
  18412  Lord of the Rings Online, image upside down and more
  18583  Free Realms crashes with unimplemented D3DXGetDeclVertexSize
  18688  Ventrilo crashes on startup
  18806  3Dmark 2006
  18831  Lord of the Rings Online: Mines of Moria post-processing misplaces objects
  18893  Oblivion installation crashed with an uncought exception
  18953  UFO Aftermath installer exits with error
  18956  Intel Xorg: no more 3D since default OffscreenRenderingMode is fbo
  18980  Canon's CONSOLE Image Control & Storage Software fails on administrator privs check
  18984  Free&Easy Font Viewer crashes on startup
  19002  Postal 2 - graphics problems
  19009  Crosstests don't compile with CROSSCC="ccache i586-mingw32msvc-gcc"
  19014  Casino Club crashes when typing in login-box
  19022  BibleStudyPro: text does not display on screen
  19024  No WM_MEASUREITEM received on LV creation (LVS_OWNERDRAWFIXED)
  19045  winecfg: drive list is not refreshed in winecfg, no more disk label
  19050  PE explorer shows access violations when started
  19055  Various apps quit with "bad file descriptor" error
  19065  3dmark06: shader doesn't compile with arb shader backend
  19069  Nestopia crashes
  19071  Reg.exe doesn't error out on invalid input (appinstall)
  19079  Add multiple files dialog does not work.
  19094  Regression on OS X, may not be able to load dll
  19096  iexplore's gecko installer broken
  19119  Quice.exe program no longer starts
  19126  VS 2005 SP1 installation failure

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

Changes since 1.1.24:

Alexander Nicolaysen Sørnes (4):
      appwiz.cpl: Update Norwegian Bokmål translation.
      shell32: Update Norwegian Bokmål translation.
      regedit: Update Norwegian Bokmål translation.
      wordpad: Update Norwegian Bokmål translation.

Alexander Scott-Johns (7):
      rtutils: Add stub dll.
      rtutils: Add stub TraceRegisterExW and TraceRegisterExA.
      notepad: Fix trying to open non-existent files with the command line.
      notepad: Improve encoding detection when opening files.
      notepad: Remember the encoding of files when they are opened, and use the same encoding when saving.
      notepad: Allow user to choose which encoding to open and save files in.
      notepad: Detect if saving will lose information.

Alexandre Julliard (51):
      winebuild: Add possibility to generate a global resource file without running it through windres.
      wrc: Add support for loading multiple input files at once.
      configure: Improve extraction of the target name from the CROSSCC definition.
      crypt32: Fix a couple of assumptions about structure layout.
      configure: Add a check for broken 16-bit compile with Xcode 3.x.
      winebuild: Enforce header size alignment when outputting resources.
      wrc: Use an EOF rule instead of lex_destroy for compatibility with prediluvian flex versions.
      winedbg: Don't display the crash dialog for winedevice.exe, it only confuses users.
      configure: Rename the shared heap segment to avoid a Mac OS linker bug with 16-char names.
      dbghelp: Fix detection of special Wine segments.
      configure: Add a wrapper macro for .cfi pseudo-ops in assembly code.
      msvcrt: Add call frame annotations in x86 assembly code.
      rpcrt4: Add call frame annotations in x86 assembly code.
      user32: Add call frame annotations in x86 assembly code.
      winedos: Add call frame annotations in x86 assembly code.
      libwine: Add call frame annotations in x86 assembly code.
      ntdll: Add call frame annotations in x86 assembly code.
      kernel32: Add call frame annotations in x86 assembly code.
      msi: The dialog units are based on a 12-point font size, despite the documentation.
      winex11: Try to use the correct window rectangle as far as possible at XCreateWindow time.
      ntdll: Compute the free lists address at run-time instead of playing with alignment and padding.
      ntdll: Don't try to decommit a heap past its initial commit size.
      ntdll: Release some address space after the process initialization is done.
      loader: Reserve some more memory to cover the native ole32 addresses.
      server: Use sys/inotify.h if it exists instead of hardcoding the system calls.
      wrc: Clean up command line parsing for multiple files support.
      winegcc: Pass all option flags to winebuild before non-options filenames.
      ntdll: Disable releasing the address space on Mac OS since dyld doesn't support this.
      winebuild: Don't try to output 32-bit resources when building a 16-bit wrapper dll.
      ntdll: Large heap blocks don't need to be 64k aligned.
      ntdll: Go back to growing the heap in smaller increments once we start running out of address space.
      winemenubuilder: Use spawnvp() instead of system() to launch the xdg update scripts.
      oleaut32: Properly release cache DCs instead of trying to delete them.
      ntdll: Avoid the close-on-exec race with recvmsg() on kernels that support this.
      ntdll: Avoid the close-on-exec race with pipe() on kernels that support pipe2().
      kernel32: Avoid the close-on-exec race with pipe() on kernels that support pipe2().
      secur32: Avoid the close-on-exec race with pipe() on kernels that support pipe2().
      gdiplus: Don't return garbage from the GdipCreateHBITMAPFromBitmap stub.
      preloader: Reserve addresses only up to 0x68000000, that should be enough for ole32.
      makefiles: Remove the no longer used SPEC_SRCS variable from 16-bit makefiles.
      widl: Skip the existing correlation descriptor on unencapsulated unions when generating a different one.
      widl: Struct alignment should be the largest alignment of all the struct members.
      widl: Take into account structure field alignment when computing offsets.
      widl: An ENUM16 is 32-bit wide in memory.
      make_makefiles: Automatically update the source lists in the individual makefiles.
      makefiles: Regenerate the source lists using make_makefiles.
      rpcrt4: Replace long and unsigned long by more appropriate types.
      oleaut32: Replace long and unsigned long by more appropriate types.
      ole32/tests: Fix the HMETAFILE_UserSize prototype.
      ntdll: Fix the formatting of the get_token_groups request for 64-bit.
      kernel32: Compile .mc files to resources as independent files.

Anders Jonsson (1):
      crypt32: Add CryptRegisterOIDInfo stub.

Andrew Eikum (5):
      gdiplus/tests: Fix resource leaks in several tests.
      gdiplus/tests: Add tests for GdipDrawCurve2.
      gdiplus/tests: Add tests for GdipDrawCurveI.
      gdiplus/tests: Add tests for GdipDrawCurve2I.
      gdiplus: Implement GdipDrawCurve3 and GdipDrawCurve3I.

Andrew Nguyen (4):
      reg: Report an error when an unknown operation is specified.
      reg: Fix behavior when specifying the help flag.
      reg: Correct the sense of return values for registry operations.
      reg: Support the /h flag as a synonymous help flag.

Andrew Talbot (2):
      cryptnet: Constify some variables.
      cryptui: Constify some variables.

André Hentschel (9):
      documentation: README.de spelling fixes.
      taskmgr: Add German translation.
      taskmgr: Update German translation.
      appwiz: Add function for installer button.
      taskmgr: Update German translation.
      appwiz: A nicer icon for appwiz.
      taskmgr: Update German translation.
      wineconsole: Improve German translation.
      notepad: Update German translation.

Aric Stewart (30):
      browseui: Add Japanese translation.
      mshtml: Update Japanese resources.
      user32: Update Japanese resources.
      msctf: Define ITfCompartment.
      msctf: Implement ITfCompartment::GetValue.
      msctf: Implement ITfCompartment::SetValue.
      msctf: Implement ITfCompartmentMgr::GetCompartment.
      msctf: ITfCompartmentMgr tests.
      msctf: Define ITfSource for Compartments.
      msctf: Implement ITfCompartmentEventSink.
      wininet: Improve HTTP status 100 handling.
      wininet: Semi-stub for quering Http INTERNET_OPTION_SECURITY_FLAGS.
      wintrust: Stub WTHelperCertCheckValidSignature.
      msctf: Implement ITfContext::GetStatus.
      msctf: ITfContext::GetDocumentMgr should AddRef the DocumentMgr.
      msctf: Context initialization happens before OnPushContext sink.
      msctf/tests: Verify to make sure OnPopContext happens before context is removed from stack.
      wintrust: GetSignedMsgFromCabFile looks for signinfo at the beginning of the cab.
      msctf: Correct registry key from "Enabled" to "Enable".
      msctf/tests: Release the ITfDocumentMgr received on GetFocus.
      msctf: Semi-stub implementation of ITfInputProcessorProfiles::GetLanguageList.
      shell32: Handle shell: urls internal in ParseDisplayName instead of passing them to shdocvw.
      shell32: Implement SHCreateShellFolderView (ordinal 256).
      msctf: Implement ITfInputProcessorProfiles::GetDefaultLanguageProfile.
      msctf: Implement ITfInputProcessorProfiles::SetDefaultLanguageProfile.
      msctf: Add api definitions for TF_CreateThreadMgr and TF_GetThreadMgr.
      msctf: Implement TF_CreateInputProcessorProfiles.
      msctf: Implement ITfDocumentMgr::EnumContexts.
      wordpad: Update Japanese resource.
      notepad: Update Japanese resource.

Aurimas Fišeras (44):
      mpr: Add Lithuanian translation.
      localspl: Add Lithuanian translation.
      iccvid: Add Lithuanian translation.
      localui: Add Lithuanian translation.
      msrle32: Add Lithuanian translation.
      msi: Add Lithuanian translation.
      msvfw32: Add Lithuanian translation.
      msvidc32: Add Lithuanian translation.
      oleaut32: Add Lithuanian translation.
      sane.ds: Add Lithuanian translation.
      serialui: Add Lithuanian translation.
      taskmgr: Make all static text translatable.
      setupapi: Add Lithuanian translation.
      shlwapi: Add Lithuanian translation.
      taskmgr: Make status bar text translatable.
      avifil32: Add Lithuanian translation.
      taskmgr: Make column headers in processes tab translatable.
      oledlg: Add Lithuanian translation.
      clock: Add Lithuanian translation.
      taskmgr: Make MessageBoxes translatable.
      taskmgr: Add Lithuanian translation.
      taskmgr: Add missing resource.
      appwiz.cpl: Update Lithuanian translation.
      cryptdlg: Add Lithuanian translation.
      taskmgr: Make remaining strings translatable.
      shdoclc: Add Lithuanian translation.
      wldap32: Add Lithuanian translation.
      notepad: Improve Lithuanian translation.
      wordpad: Add Lithuanian translation.
      winhlp32: Add Lithuanian translation.
      net: Add Lithuanian translation.
      cmdlgtst: Add Lithuanian translation.
      write: Add Lithuanian translation.
      xcopy: Add Lithuanian translation.
      winefile: Add Lithuanian translation.
      view: Add Lithuanian translation.
      comdlg32: Improve Lithuanian translation.
      progman: Add Lithuanian translation.
      wineconsole: Add Lithuanian translation.
      oleview: Add Lithuanian translation.
      winmm: Add Lithuanian translation.
      notepad: Update Lithuanian translation.
      cmd: Add Lithuanian translation.
      winecfg: Improve Lithuanian translation.

Austin English (6):
      shdocvw: Handle DISPID_AMBIENT_DLCONTROL case.
      wined3d: Fix a compiler warning.
      winedbg: Return 0 if --help is specified.
      winecfg: Fix cd detection for FreeBSD.
      winex11: Make sure GetKeyNameText gets the correct length to return.
      drmclien: Add stub dll.

Damjan Jovanovic (5):
      winemenubuilder: Generate new menus in the right directory.
      winemenubuilder: Allow multiple options.
      wine.inf: Run winemenubuilder to delete menus on startup.
      winemenubuilder: Only generate associations for the "open" verb.
      winemenubuilder: Distinguish menu icons from association icons.

Davide Pizzetti (5):
      progman: Update Italian translation.
      winemine: Update Italian translation.
      regedit: Update Italian translation.
      winhlp32: Update Italian translation.
      cmdlgtst: Update Italian translation.

Detlef Riekenberg (9):
      winex11: Get rid of glext.h in remaining locations.
      urlmon: Implement ZoneManager_GetZoneAttributes.
      urlmon/tests: Add tests for ZoneManager_GetZoneAttributes.
      browseui: Add a stub for DllInstall.
      advapi32: Check the output pointer first in RegOpenKey, with test.
      advapi32/tests: Remove unneeded SetLastError.
      shlwapi: Last parameter in SHUnicodeToAnsiCP is an int.
      urlmon: Implement the ZoneEnumerator.
      urlmon/tests: Add tests for the ZoneEnumerator.

Dmitry Timoshkov (2):
      mlang: Make it possible to build the mlang test with PSDK.
      user32: Add a test for BM_SETSTYLE, make it pass under Wine.

Eric Pouech (10):
      dbghelp: When loading ELF public information, handle the cases when we don't get an address.
      dbghelp: Factorize symbol insertion into module by address table.
      dbghelp: when (re)building the per module symbol table (lookup by address), no longer iterate over the hash table.
      dbghelp: Simplify the resort operation (module address table) by using binary insertion instead of resorting the whole array.
      winhlp32: Fixed some cases where winhlp32 didn't shutdown as expected.
      winedbg: Print array size when looking at its type.
      winedbg: Correctly print type for functions without parameters.
      dbghelp: When the CU is compiled with GCC, deal with some GCC extensions.
      dbghelp: Added reference for MSVC 8.
      winedump: Added reference for MSVC 8.

Eric van Beurden (2):
      wininet: Add a terminating empty line to the headers if necessary.
      wininet: Check for failed heap allocations.

Francois Gouget (17):
      msvfw32: Move MSVIDEO_SendMessage() up and make it and MSVIDEO_GetHicPtr() static.
      ole32: Reorder some stubmanager functions to avoid forward declarations.
      ole32: Make stub_manager_int_addref() static.
      Assorted spelling fixes.
      comctl32: Make MapIdSearchCompare() static.
      gdi32/tests: Fix the trailing '\n' of a few ok() calls.
      wined3d: Add a trailing '\n' to a FIXME() trace.
      clock: Use SUBLANG_NEUTRAL for Romanian.
      setupapi: Ellipses should be preceded by a space in Slovenian.
      notepad: Ellipses should be preceded by a space in Slovenian.
      gdi32/tests: Make test_GetTextMetrics2() static.
      windowscodecs: Make the QueryInterface() functions static.
      advapi32/tests: Add a trailing '\n' to ok() calls.
      makedep: Add support for multiple object file extensions.
      crosstest: Fix the crosstest dependencies.
      taskmgr: Remove spaces before '\n's.
      windowscodecs: Add a trailing '\n' to FIXME() traces.

Frédéric Delanoy (12):
      wldap32: Fixed French translation.
      cmdlgtst: Fixed French translation.
      taskmgr: Some fixes to French translation/display.
      appwiz.cpl: Updated French translation.
      shell32: Updated French translation.
      cryptui: Add French translation.
      winedbg: Add French translation.
      comdlg32: Improve French translation.
      crypt32: Update French translation.
      gphoto2.ds: Update French translation.
      hhctrl.ocx: Update French translation.
      msi: Update French translation.

Gerald Pfeifer (6):
      ddraw: Fix error checking in IDirect3DExecuteBufferImpl_Execute().
      ddraw: Fix two bounds checks.
      dsound/tests: Fix two broken conditions.
      d3d9/tests: Fix three incorrect logic conditions.
      wined3d: Fix logical condition in find_clip_texcoord().
      d3d9: Fix variable type in reset_enum_callback().

Hans Leidekker (20):
      ntdll: Don't return success from the NtQueryEvent stub.
      wininet: Don't delete the cache file when closing a request.
      crypt32: Add a partial implementation of CertCreateContext.
      include: Add definition of IObjContext.
      ole32: Implement CoGetContextToken.
      ole32: Add tests for CoGetContextToken.
      wininet: Improve the PrivacyGet/SetZonePreferenceW stubs.
      mlang: Implement IMLangFontLink2_CodePageToScriptID.
      mlang: Implement IMLangFontLink2_GetFontUnicodeRanges.
      msi: Support opening transform databases.
      hhctrl.ocx: Don't leak the CHM filename.
      hhctrl.ocx: Remove some dead code.
      hhctrl.ocx: Try the Windows help directory if the specified file does not exist.
      mlang: Implement IMultiLanguage2_IsCodePageInstallable.
      mlang: Add a test for IMultiLanguage2_IsCodePageInstallable.
      winebrowser: Support file URLs with a query or an anchor.
      fusion/tests: Initialize a variable.
      iphlpapi/tests: Initialize a variable.
      wintrust/tests: Initialize a variable.
      ole32: Use existing MTA in CoGetContextToken and CoGetObjectContext.

Henri Verbeet (50):
      wined3d: Simplify the transformed position fixup a bit.
      wined3d: Move the num_untracked_materials lookup out of the main drawing loop.
      wined3d: Get rid of DEBUG_SINGLE_MODE.
      wined3d: Get rid of some asserts.
      wined3d: Add an rtInternal fallback for WINED3DFMT_R16G16_UNORM.
      d3d9/tests: Release the vertex buffer in test_null_stream().
      d3d9/tests: Release the query in test_occlusion_query_states().
      d3d9/tests: Make sure the device is released properly.
      d3d8/tests: Make sure the device is released properly.
      wined3d: Fix a comment.
      wined3d: Add some missing GL locking documentation to arb_program_shader.c.
      wined3d: Use a proper structure for "loop_control".
      wined3d: Avoid a redundant copy.
      wined3d: Eliminate a redundant local variable in get_loop_control_const().
      wined3d: Allow the existence of other shader types in get_loop_control_const().
      wined3d: Make sure we have an active GL context in delete_opengl_contexts().
      wined3d: Make sure we have an active GL context in buffer_PreLoad().
      wined3d: Make context_resource_released() responsible for activating a different GL context.
      wined3d: Make sure we have an active GL context in context_resource_released().
      wined3d: Make sure we have an active GL context in IWineD3DDeviceImpl_SetCursorProperties().
      wined3d: Make sure queries have an active GL context.
      wined3d: Make sure we have an active GL context in IWineD3DSurfaceImpl_UnLoad().
      wined3d: Make sure we have an active GL context before calling surface_remove_pbo().
      wined3d: Make sure we have an active GL context before calling d3dfmt_p8_upload_palette().
      wined3d: Document GL context dependencies.
      wined3d: Add some missing GL locking to init_format_fbo_compat_info().
      wined3d: Prevent GL calls from DestroyContext() if we failed to make the GL context current.
      wined3d: Always check the result of wglMakeCurrent().
      d3d: Add a test for releasing the device after destroying the window.
      wined3d: Add a WARN to IWineD3DDeviceImpl_SetFrontBackBuffers() about potentially being called without a GL context.
      wined3d: Remove shader_is_version_token().
      wined3d: Pass the shader type to shader_record_register_usage().
      wined3d: Remove some redundant pshader checks.
      wined3d: Use dst_param.reg.idx to index reg_maps->texcoord_mask.
      wined3d: Consolidate "color0_mov" handling a bit.
      wined3d: Replace "pshader" checks with explicit type checks in shader_get_registers_used().
      wined3d: Recognize geometry shaders in shader_trace_init().
      wined3d: Try to activate the original context for queries.
      wined3d: Move the driver_quirk structure to directx.c.
      wined3d: Use flags for driver quirks.
      wined3d: Make sure the rtInternal format is supported.
      wined3d: Check if formats support blending when attached to an FBO.
      wined3d: Clear the last device in WineD3D_CreateFakeGLContext().
      wined3d: Don't reuse random GL contexts during initialization.
      wined3d: Get rid of the silly refcount for the "fake" GL context.
      wined3d: Use a proper structure for storing initial GL context information.
      wined3d: Get rid of wined3d_fake_gl_context_cs.
      d3d9/tests: Add a small test for having multiple device active at the same time.
      wined3d: Don't abuse blending to disable color writes in surface_depth_blt().
      wined3d: Don't accept NULL as a valid result from glGetString().

Hib Eris (4):
      msi/tests: Add tests for order of tables.
      msi: Insert new tables in correct _Tables location.
      msi: Release msi_custom_action_info when no longer needed.
      msi: Release more msi_custom_action_info when no longer needed.

Huw Davies (20):
      gdi32: CBM_INIT is a flag.
      ole32: Since OleCreateLinkFromData is a stub we should return S_FALSE from OleQueryLinkFromData.
      ole32: Add support for retrieving enhanced metafiles.
      ole32/tests: Add a test for enhanced metafile retrieval.
      gdi32: Implement SetVirtualResolution.
      gdi32: Add tests for SetVirtualResolution.
      gdi32: Implement GetTransform for the other valid transform types.
      gdi32: Add tests for GetTransform.
      configure: Remove reference to obsolete ftnames.h.
      ole32: Implement OleCreateEmbeddingHelper.
      gdi32: Use the unicode version of CreateMetaFile.
      gdi32: Remove obviously incorrect calls to SetMapMode.
      gdi32: Store the original emf as a sequence of MFCOMMENT records.
      gdi32: Add tests for the GetWinMetaFileBits MFCOMMENT record.
      gdi32/tests: Add a test for the MFCOMMENT record's size.
      gdi32/tests: Dump the correct metafile if the test fails.
      gdi32: Write the map mode and window size records after the mfcomment.
      gdi32: Add tests for the map mode and window size records.
      gdi32/tests: Add some traces and fix a few comments.
      gdi32/tests: Fix tests on win9x and winMe.

Hwang YunSong (5):
      start: Updated Korean resource.
      winecfg: Updated Korean resource.
      appwiz.cpl: Updated Korean resource.
      taskmgr: Updated Korean resource.
      kernel32: Updated winerr_kor.mc.

Jacek Caban (14):
      mshtml.idl: Added DispHTMLLocation and DispHTMLNavigation dispinterfaces.
      mshtml: Fixed tests on IE8 and change Wine behavior to IE8.
      urlmon.idl: Added IBindStatusCallbackEx declaration.
      urlmon: Fixed tests on IE8.
      urlmon: Query for IHtmlNegotiate[2] interfaces when needed.
      urlmon: Don't depend on QueryService returning NULL on failure.
      urlmon: Set user agent registry.
      urlmon: Added UrlMkSetSessionOption(URLMON_OPTION_USERAGENT) implementation.
      urlmon: Added UrlMkSetSessionOption(URLMON_OPTION_USERAGENT) implementation.
      urlmon: Added user agent tests.
      urlmon: Added ObtainUserAgentString implementation.
      urlmon: Added IBindStatusCallbackEx tests (also fixes some IE8 failures).
      urlmon: Use GetBinfInfoEx in GetBindInfo implementation if possible.
      urlmon: Added IBindStatusCallbackEx implementation.

Jaime Rave (2):
      notepad: Update Spanish translation.
      regedit: Spanish translation updated.

Joel Holdsworth (3):
      user32/tests: Added tests for DrawIcon and DrawIconEx.
      user32: Added DrawIcon alpha blending support.
      user32: Added DrawIconEx alpha blending support.

Jörg Höhle (3):
      winedos: Provide trailing \ now required by GetVolumeInformation.
      winecfg: Provide trailing \ now required by GetVolumeInformation.
      kernel32: Avoid unprotected sprintf on registry/user-supplied format string.

Ken Sharp (1):
      gdiplus: Add GdipIsVisibleRegionPointI stub.

Louis Lenders (2):
      kernel32/nls: Add system message 2221 to winerr_enu.mc.
      advapi32: Add a few tests for GetSidSubAuthority and SetLastError correctly.

Maksim Kuleshov (1):
      wininet: Fix sockets leak in FTP_Connect.

Matej Spindler (8):
      mshtml: Update Slovenian translation.
      appwiz.cpl: Update Slovenian translation.
      notepad: Update Slovenian translation.
      reg: Update Slovenian translation.
      regedit: Update Slovenian translation.
      shell32: Update Slovenian translation.
      setupapi: Update Slovenian translation.
      wordpad: Update Slovenian translation.

Michael Stefaniuc (70):
      appwiz.cpl: Fix the Romanian translation.
      user32: Remove unreachable code: break after return (Smatch).
      browseui: Build language resource files separately.
      iccvid: Build language resource files separately.
      oleacc: Build language resource files separately.
      crypt32: Build language resource files separately.
      mpr: Build language resource files separately.
      msrle32: Build language resource files separately.
      uninstaller: Build language resource files separately.
      oleaut32: Build language resource files separately.
      cryptdlg: Build language resource files separately.
      wldap32: Build language resource files separately.
      wineconsole: Build language resource files separately.
      winedbg: Include the local resource header last.
      winedbg: Build language resource files separately.
      hhctrl.ocx: Build language resource files separately.
      gphoto2.ds: Build language resource files separately.
      mshtml: Build language resource files separately.
      hhctrl.ocx: Fix a memory leak on an error path (Smatch).
      notepad: Fix the Finnish translation.
      oleaut32: Fix a small error in a comment.
      msvidc32: Build language resource files separately.
      sane.ds: Build language resource files separately.
      cmd: Build language resource files separately.
      regedit: Build language resource files separately.
      wineboot: Build language resource files separately.
      winecfg: Build language resource files separately.
      write: Build language resource files separately.
      appwiz.cpl: Build language resource files separately.
      localui: Build language resource files separately.
      xcopy: Build language resource files separately.
      net: Build language resource files separately.
      reg: Build language resource files separately.
      localspl: Build language resource files separately.
      taskmgr: Build language resource files separately.
      start: Build language resource files separately.
      shdoclc: Build language resource files separately.
      cmdlgtst: Build language resource files separately.
      wordpad: Build language resource files separately.
      msi: Build language resource files separately.
      winemine: Build language resource files separately.
      msvfw32: Build language resource files separately.
      view: Build language resource files separately.
      credui: Build language resource files separately.
      oledlg: Build language resource files separately.
      winhlp32: Build language resource files separately.
      notepad: Build language resource files separately.
      comctl32: Build language resource files separately.
      shlwapi: Build language resource files separately.
      shell32: Build language resource files separately.
      cryptui: Build language resource files separately.
      avifil32: Build language resource files separately.
      serialui: Build language resource files separately.
      setupapi: Build language resource files separately.
      oleview: Build language resource files separately.
      winefile: Build language resource files separately.
      comdlg32: Build language resource files separately.
      shdocvw: Import the version.rc into the main rc file.
      wineps.drv: Include a local header last.
      wineps.drv: Build language resource files separately.
      winmm: Build language resource files separately.
      progman: Build language resource files separately.
      winspool.drv: Build language resource files separately.
      msacm32: Build language resource files separately.
      wininet: Build language resource files separately.
      cards: Build the version.rc file separately.
      ole32: Import the content of version.rc into the main rc file.
      msiexec: Import the version.rc into the main rc file.
      urlmon: Import the version.rc into the main rc file.
      user32: Build language resource files separately.

Nicolas Le Cam (5):
      user32/tests: Ignore WM_TIMECHANGE message.
      shell32/tests: Fix a typo.
      shell32/tests: Use win_skip() instead of skip() and trace().
      cabinet/tests: Avoid use of lstrlenA when not needed.
      cabinet/tests: Split an incorrect test in two valid ones.

Nikolay Sivov (22):
      comctl32/listview: Implement LVM_CANCELEDITLABEL with tests.
      comctl32/listview: Implement LVM_ISITEMVISIBLE.
      comctl32/listview: Basic LVM_MAPINDEXTOID tests.
      comctl32/listview: Implement LVM_MAPIDTOINDEX/LVM_MAPINDEXTOID.
      comctl32/header: Add support for HDS_FLAT style.
      comctl32/listview: Fix a test failure on 4.7x.
      comctl32/listview: XP SP3 comctl32 V6 test workaround.
      comctl32/listview: Test for parent sequence when creating with LVS_OWNERDRAWFIXED.
      comctl32/listview: Notify parent with WM_MEASUREITEM on control creation.
      comctl32/listview: Invalidate list after WM_MEASUREITEM notification.
      comctl32/listview: Initialize string pointers on notification conversion routine.
      comctl32/toolbar: Move initialization to WM_NCREATE handler.
      comctl32/toolbar: Move parameter cast to WinProc level, some code cleanup.
      comctl32/progress: Implement PBM_GETBARCOLOR, add some todo entries.
      comctl32/progress: Implement PBM_GETBKCOLOR.
      comctl32/rebar: Update Rebar structure.
      comctl32/rebar: Use proper structure size in tests and parameter checks.
      comctl32/listview: Improve hittesting a bit.
      comctl32/header: Always release item down state on WM_LBUTTONUP.
      comctl32/listview: Fix select rectangle calculation for empty text items.
      comctl32/listview: Remove parent creation test. It's unrelated to ListView.
      oleacc: Add ObjectFromLresult stub.

Paul Chitescu (9):
      winecfg: Fixed Romanian translation.
      winecfg: Reordered controls in the About dialog so labels can have accelerators.
      shell32: Completed Romanian translation, fixed minor typos.
      clock: Romanian translation.
      shell32: Add missing Romanian translation for IDS_SHLEXEC_NOASSOC.
      avifil32: Romanian translation.
      cryptdlg: Add Romanian translation.
      crypt32: Add Romanian translation.
      services.exe: When asked to search by display name skip NULL names.

Paul Vriens (23):
      urlmon/tests: Fix a test failure on Win95 by using more A-functions.
      include/activscp.idl: Add some defines.
      taskmgr: Fix Dutch translations.
      crypt32/tests: Fix some tests (logical || with non-zero constant).
      crypt32/tests: Fix a test (logical || with non-zero constant).
      d3d9/tests: Use color_match ((logical || with non-zero constant).
      user32/tests: Prevent some 'deadcode' (Coverity).
      taskmgr: Update Dutch translations.
      crypt32/tests: Fix a test failure on Win9x.
      crypt32/tests: Fix some test failures on Win9x.
      user32/tests: Prevent some 'deadcode' (Coverity).
      comctl32/tests: Fix test failures on comctl32 < 5.80.
      appwiz.cpl: Fix Dutch translations.
      comctl32/tests: Fix some test failures with comctl32 < 5.80.
      comctl32/tests: Fix test failures with comctl32 < 5.80.
      kernel32: Update Dutch translations.
      shell32: Fix Dutch translations.
      taskmgr: Fix Dutch translations.
      urlmon/tests: Don't check for out of memory (Coverity).
      oleaut32/tests: Fix test failures and crash on Win9x/WinME.
      ole32/tests: Fix some test failures on Win9x/WinME.
      mlang/tests: Prevent messing up the codepages on Win98.
      notepad: Add Dutch translations.

Piotr Caban (20):
      jscript: Added implementation of Date constructor with more then one argument.
      jscript: Added Date_getTimezoneOffset and fixed Date_get... functions.
      jscript: Fix typos in comments, add missing ones.
      jscript: Fixed Date_setMilliseconds implementation.
      jscript: Fix Date_setSeconds implementation.
      jscript: Fix Date_setMinutes implementation.
      jscript: Fix Date_setHours implementation.
      jscript: Added Date_setDate and Date_setUTCDate implementation.
      jscript: Added Date_setMonth and Date_setUTCMonth implementation.
      jscript: Added Date_setFullYear and Date_setUTCFullYear implementation.
      jscript: Added Date_toLocaleDateString implementation.
      jscript: Added Date_toLocaleTimeString implementation.
      jscript: Added Date_toTimeString implementation.
      jscript: Added Date_toDateString implementation.
      jscript: Added Date_toUTCString implementation.
      jscript: Added Date_toLocaleString implementation.
      jscript: Added Date_toString implementation.
      jscript: Added stub implementation of Date constructor properties.
      jscript: Added DateConstr_UTC implementation.
      jscript: Fix strings allocation.

Rein Klazes (5):
      gdi32/tests: Show that there is an upper limit to the width of a font that can be specified.
      comdlg32: Fix a problem with the returned value of a CDN_FILEOK notification.
      comdlg32: Fix resizing of the file dialog browser that keeps returning to its original size.
      comdlg32: Don't call ShowWindow for the custom dialog until all rearrangements of the file dialog have been done.
      comdlg32/tests: fix a few test failures on Vista and higher.

Stefan Dösinger (32):
      wined3d: Invalidate the srgb tex in surface::unload.
      d3d9: Add an aL indexing test.
      d3d9: Add a SGN test.
      wined3d: Reload the first 8 constants on a 1.x and != 1.x ps switch.
      wined3d: Implement MRTs in ARB.
      wined3d: XXXC CC doesn't work even with NV_FP2 on.
      wined3d: Make the ARB index offset work with emulated MOVA.
      wined3d: Enable Shader Model 2.0 in ARB.
      wined3d: Advertise SM 3.0 in ARB if the extensions are available.
      wined3d: GLSL 1.20 includes gl_FragData[] syntax.
      wined3d: Don't emulate clipplanes with ffp vp and fix a wrong if condition.
      wined3d: Add a function to control use of NV_vp2 clipplanes.
      wined3d: Find the clip texcoord before compiling.
      wined3d: Use a local parameter for the position fixup.
      wined3d: Fix pixelshader ifc.
      winebuild: Open resource files in binary mode.
      wined3d: Beware of double negations.
      wined3d: IFC requires GL_NV_fragment_program2.
      wined3d: POW and LOG operate on the absolute value.
      wined3d: Unclamp vertex colors for 3.0 shaders in ARB if needed.
      wined3d: Initialize the used clip planes even if no clip emulation is used.
      wined3d: Support writemasks on texkill in ARB.
      wined3d: Jump to the else branch if cond is false, not endif.
      wined3d: Honor WINED3DSPSM_NOT in ARB.
      wined3d: Only update the screen when the frontbuffer was changed.
      wined3d: Don't disable ARBfp if the replacement pipeline is used.
      wined3d: ARB*p is already on after a depth blit.
      wined3d: Implement function calls with NV exts.
      wined3d: Write the vshader footer in a separate function.
      wined3d: Add the vertex shader footer in the main function.
      wined3d: Add a NOP ret handler to GLSL.
      wined3d: Don't dirtify too many shader constants.

Stefan Leichter (1):
      oleaut32: Add two tests of function VarDateFromStr for German date format.

Tobias Jakobi (10):
      wined3d: Add ps_np2fixup_info structure.
      wined3d: Enable constant packing for NP2 texcoord fixup.
      wined3d: Force NP2 fixup constant reloading in shader_glsl_select.
      wined3d: Add ps_arb_max_local_constants.
      wined3d: Add arb_ps_np2fixup_info structure and improve structure packing for arb_ps_compiled_shader.
      wined3d: Add NP2 fixup code to shader_arb_generate_pshader.
      wined3d: Add NP2 fixup code to shader_hw_sample (ARB).
      wined3d: Implement shader_arb_load_np2fixup_constants.
      wined3d: Force NP2 constant reload in shader_arb_select.
      wined3d: Fix comments about NP2 fixup.

Tony Wasserka (16):
      d3dx9: Improve parameter validation in D3DXCreateFont and D3DXCreateFontIndirect.
      d3dx9: Implement ID3DXFont_GetDevice.
      d3dx9: Implement ID3DXFont_GetDesc.
      d3dx9: Implement ID3DXFont_GetDC.
      d3dx9: Implement ID3DXFont_GetTextMetrics.
      d3dx9: Add tests for basic ID3DXFont functions.
      d3dx9: Add a stub for D3DXLoadSurfaceFromFileInMemory.
      d3dx9: Implement D3DXLoadSurfaceFromFile.
      d3dx9: Implement D3DXLoadSurfaceFromResource.
      d3dx9: Add a stub for D3DXLoadSurfaceFromMemory.
      d3dx9: Implement D3DXLoadSurfaceFromSurface.
      d3dx9: Add tests for D3DXLoadSurfaceFromFile.
      d3dx9: Add tests for D3DXLoadSurfaceFromResource.
      d3dx9: Add tests for D3DXLoadSurfaceFromFileInMemory.
      d3dx9: Add tests for D3DXLoadSurfaceFromMemory.
      d3dx9: Add tests for D3DXLoadSurfaceFromSurface.

Vincent Povirk (26):
      ole32: Add support for rendering HENHMETAFILE clipboard objects.
      winex11.drv: Link the windows PNG format to the X image/png format.
      winex11.drv: Link the windows JFIF format to the X image/jpeg format.
      windowscodecs: Add stub implementation of IWICImagingFactory.
      windowscodecs: Add a stub decoder for the BMP format.
      include: Add some definitions to wincodec.idl.
      windowscodecs: Implement trivial methods for BMP decoder.
      windowscodecs: Implement Initialize method for BMP decoder.
      windowscodecs: Implement GetFrame for BMP decoder.
      windowscodecs: Implement GetSize for BMP decoder.
      windowscodecs: Implement GetResolution for BMP decoder.
      windowscodecs: Add test for BMP decoder.
      gdiplus: Implement horizontal alignment in GdipDrawString.
      gdiplus: Don't crash when a NULL format is passed to GdipDrawString.
      include: Define some WIC pixel format GUIDs.
      windowscodecs: Implement GetPixelFormat for BMP decoder.
      windowscodecs: Simplify the BMP GetSize code and fix for top-down dibs.
      windowscodecs: Implement CopyPixels for BMP decoder.
      windowscodecs: Implement QueryCapability for BMP decoder.
      include: Add definitions for IWICPalette.
      windowscodecs: Add stub implementation of IWICPalette.
      windowscodecs: Implement InitializeCustom and GetColors for palettes.
      windowscodecs: Implement GetColorCount and GetType for palettes.
      windowscodecs: Implement IsBlackWhite and IsGrayscale for palettes.
      windowscodecs: Implement HasAlpha for palettes.
      windowscodecs: Add test for IWICPalette.

Vitaliy Margolen (2):
      dxdiagn: Add fil_data.idl to describe IAMFilterData interface.
      dxdiagn: Use quartz's IFilterMapper to get DirectShow filter information instead of looking through private structures.

Vladimir Pankratov (1):
      shell32: Fix RunFileDialog to close after starting apps.

--
Alexandre Julliard
julliard@winehq.org
