The Wine development release 1.3.21 is now available.

What's new in this release (see below for details):
  - Support for installation rollbacks in MSI.
  - 8- and 16-bit bitmap formats in the DIB engine.
  - Fixes in the XInput2 mouse support.
  - Better support for text shaping in Uniscribe.
  - Improvements to the Item common dialog.
  - More MSVC runtime functions.
  - Various bug fixes.

The source is available from the following locations:

  http://ibiblio.org/pub/linux/system/emulators/wine/wine-1.3.21.tar.bz2
  http://prdownloads.sourceforge.net/wine/wine-1.3.21.tar.bz2

Binary packages for various distributions will be available from:

  http://www.winehq.org/download

You will find documentation on http://www.winehq.org/documentation

You can also get the current source directly from the git
repository. Check http://www.winehq.org/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.3.21:

   2547  word perfect 12 trial fails to install
   5016  SonEd program misses the scrollbars (and a few other things)
   5158  Foobar2000 fails to write ID3v2 frame to file
   5761  wcmd double-transforms Unicode filenames
   6971  Mouse "escapes" window or is confined to an area in the full screen program NO HACKS PLEASE
  12084  Project Nomads: game can't grab mouse
  14758  drakensang can not create render surface
  14864  Google Lively, Chrome installers require native msxml3
  15106  Google Chrome installed but with interface and connection issues.
  15178  Google Chrome shows some images/videos flipped vertically
  15190  Google Chrome status bar renders improperly
  15527  Lineage2: only black screenshots. IWineD3DSurfaceImpl_LoadTexture: Operation not supported for scratch textures
  15833  TreeView control don't save item's state
  15896  Exp Elite: Runtime Error '445': Object does not support this action
  16453  Google Chrome outer installer can't download inner installer
  17319  ImageList_DrawIndirect ILS_ALPHA needed
  17489  JigsawADay.com puzzle applications do not display a window
  18142  Rainmeter skins do not display
  18588  VRTool works too slow in Wine
  18642  Silverlight About Window reports wrong App version
  18868  Volvo - The Game: extremely slow install
  19058  foobar2000: the window is messed up
  19137  Missing or malfunctions textures LineageII C5
  20002  Garmin Training Center 3.45 Installer button disappear
  20128  MS .Net Framework 4.0 installer needs native msxml3
  20221  Pressing "Details..." button causes nothing in Nullsoft Install System
  20233  Installer seems to hang (NFS Undercover, Fifa 10, ...)
  20671  google chrome can't log in to gmail
  20801  2gis city module cannot install
  21555  Foobar2000 crashes when trying to "open containing folder" of a file (needs SHELL32.dll.SHOpenFolderAndSelectItems stub)
  23061  Installation of wordviewer 2003 (11.6506.6505) SP1 patch(es) failes
  23312  Photo! Editor crashes because of importing gdiplus by ordinal
  23568  Foobar2000: Cannot play audio files
  23852  Gothic 3: Intro plays only with native quartz
  23917  Dragon NaturallySpeaking 11 Standard does not install
  24074  configure: printf: Argument list too long
  24141  OpenGL Camera Demo - Part 3 crashes on unimplemented msvcr100.dll file/locking API (_lock_file, _unlock_file, _fseeki64, __pctype_func fix)
  24607  Google Chrome installer fails
  24845  Tropico 3 demo crashes on startup
  24906  AntiVir installer doesn't show information on the first screen
  25228  Office 2007 apps (word, excel, powerpoint) refuse to start when previous unclean shutdown was detected and Winver is set >= Vista (missing Application Recovery and Restart API stubs)
  25592  Internet Explorer 7/8 x64 installers crash: unimplemented function msvcrt.dll._local_unwind
  25864  Crashes while editing tags in Foobar2000
  25969  Lords of the Realm 2 crash after intro video
  26048  cmd tests show some uninitialized value errors under valgrind
  26392  Builtin IE won't display some jpeg images
  26828  VOIP Buster 4.07 (build 629) : Unhandled Page Fault on starting application
  26933  Iexplore relative links not work ok
  26945  X-Lite 3.0 crashes during init
  27008  Lucent Heart: crashes on start
  27033  crash while installing usb-over-network-client.msi
  27081  Assassin's Creed: Brotherhood crashes once gameplay starts
  27107  Corel Ventura 10 - the impossibility to install software
  27114  LTspice IV installer freezes after installation completes
  27134  osu!: Video memory lack error and crash.
  27136  Oblivion: Mouse clicks or mouse hoovering don't work
  27147  Mass Effect 2 demo: cursor is offset
  27149  Clones demo installer crashes
  27152  Lemony Snickets installs in the wrong location (C:\Activision rather than C:Program files\Activison)
  27170  Prey wants hostname.exe
  27172  Some msvcrt string functions incorrectly return status from 'safe' versions causing multiple apps to fail (corel draw 12 ...)
  27175  Desperados demo freezes in a matter of seconds
  27209  Builtin IE fails to load some pages, floods err:wininet:HTTP_ReceiveRequestData No data reported!
  27287  Chrome (game) crashes on launch

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

Changes since 1.3.20:

Adam Martinson (3):
      msxml3/domdoc: Properly handle character encoding in doparse().
      msxml3/domdoc: Add support for VT_ARRAY|VT_UI1 in domdoc_load().
      ole32/tests: IDropTarget::QueryInterface() shouldn't be called.

Akihiro Sagawa (3):
      winedbg: Add Japanese resource.
      winecfg: Update Japanese translation.
      po: Update Japanese translation.

Alexander Morozov (1):
      mshtml/tests: Fix a typo.

Alexandre Julliard (50):
      msvcrt: Add support for __ptr64 attribute in symbol demangling.
      msvcrt: Add support for template operators in symbol demangling.
      msvcrt: Add support for function namespaces in symbol demangling.
      winex11: Don't wait for the foreground window to start clipping in ClipCursor.
      winex11: Warp the pointer when clipping, but ignore the resulting events.
      winex11: Filter out motion events resulting from setting the clip window.
      wined3d: Get rid of the haveHardwareCursor flag.
      wined3d: Only update the cursor position the first time we display it.
      wined3d: Always create the software cursor.
      wined3d: Switch to the software cursor when the position diverges from the hardware one.
      msvcrt: Implement _local_unwind for x86_64.
      msvcrt: Implement _seh_longjmp_unwind4 for i386.
      oleaut32: Reallocate in BSTR_UserUnmarshal to avoid changing the pointer if the string didn't change.
      oleaut32/tests: Remove some unnecessary constants.
      quartz: Make sure the preferred allocator pointer is initialized.
      services: Add a helper function to send a command to the service.
      services: Load some timeout parameters from the registry.
      services: Add a timeout to all pipe communications with the service process.
      ole32: Don't continue to wait for a local server if the process has terminated.
      include: Declare gethostname for Windows builds.
      crypt32/tests: Get rid of the iTunes chain that no longer validates.
      makefiles: Avoid creating an intermediate rc file for test binaries.
      makefiles: Create the binary resources for winetest from the top-level makefile.
      winetest: Get rid of the dist rules.
      include: Undefine the nameless union/struct macros to avoid conflicts with mingw.
      winsta: Add stubs for WinStationQueryInformationA/W.
      server: Grab the current pointer to avoid referencing it after it could become invalid.
      makefiles: Create test resource files directly from the test build directory.
      widl: Only return a buffer size for fixed-size arrays.
      widl: Don't call the buffer sizer routine when the size is known already.
      widl: Call marshalling routines directly also for user-marshalled types accessed through a ref pointer.
      widl: Return the buffer size of the object pointed by a ref pointer for all types.
      widl: Also compute buffer size for non-ref pointers.
      include: Add compatibility macros for non-widl compilers.
      makefiles: Set the module name in stripped modules to the non-stripped name.
      widl: Allow using fixed size arrays as strings.
      widl: Set the correct stack size for parameters in the proc format string.
      configure: Make sure the winetest directory exists before building tests.
      winebuild: Fix the creation of temp files in /tmp.
      libport: Don't clear the buffer on failure in mkstemps.
      ole32: Delete the transacted storage scratch file on release.
      shdocvw: Delete the temporary storage file on release.
      msi: Remove the temp files after the storage files are closed.
      kernel32: Fix a couple of handle leaks.
      kernel32/tests: Delete some temporary files.
      widl: Move the check for already processed types into the type-specific functions.
      widl: Add support for top-level conformances.
      widl: Output a list of binding routines in client files.
      usp10/tests: Load GetGlyphIndicesW dynamically.
      msvcp90: Add an msvcp-specific size_t to avoid casts in traces.

Alistair Leslie-Hughes (1):
      gdi32: Add support in DeviceCaps CURVECAPS, LINECAPS, POLYGONALCAPS for EnhMetafiles.

Andrew Eikum (2):
      mmdevapi: IMMDeviceEnumerator::GetDevice should fail on unknown device ids.
      winealsa.drv: Implement device enumeration.

Andrew Nguyen (19):
      taskmgr: Remove all TCHAR macro usage in tab page code.
      taskmgr: Remove all TCHAR macro usage in graph drawing code.
      taskmgr: Remove all TCHAR macro usage in affinity dialog code.
      taskmgr: Remove all TCHAR macro usage in priority handling code.
      taskmgr: Remove all TCHAR macro usage in process termination code.
      taskmgr: Remove all TCHAR macro usage in debug handling code.
      taskmgr: Remove all TCHAR macro usage in miscellaneous menu code.
      taskmgr: Remove all TCHAR macro usage in miscellaneous UI code.
      taskmgr: Remove all TCHAR macro usage in main taskmgr code.
      taskmgr: Remove all TCHAR macro usage in debug channel dialog code.
      advapi32: Add stubs for GetNamedSecurityInfoExA/W.
      kernel32: Suppress constness warnings for tigetstr parameter.
      mmdevapi: Remove a stray semicolon in macro definition.
      windowscodecs: Trace the correct expected value in some seek test failure strings.
      advapi32/tests: Use a matching enumeration value for the trustee form member.
      winedbg: Convert the CRLF newline to LF newline when reading interactive input.
      winedbg: Eliminate a possible memory leak in input_fetch_entire_line.
      include: Revise the Winsock include in windows.h to match the Windows SDK.
      hostname: Add an implementation of the hostname display utility.

André Hentschel (9):
      mscoree/tests: Add tests for CreateConfigStream.
      ntdll: Improved ARM little endianess detection.
      mscoree/tests: Fix for the results in CreateConfigStream tests.
      user32/tests: Add tests for FlashWindowEx.
      oleaut32: Update OaBuildVersion.
      setupapi: Add stubs for CM_Get_Device_ID_List_SizeA/W.
      tools: Add setupapi and cfgmgr to synchronize spec files automatically.
      cfgmgr32: Update specfile.
      ws2_32/tests: Add test for SIOCATMARK.

Aric Stewart (26):
      usp10: Correct a few fallback conditions in Syriac shaping.
      usp10/tests: Add ScriptShapeOpenType tests mirroring ScriptShape tests.
      usp10: Correct default fCanGlyphAlone value.
      usp10/test: Rewrite test_ScriptShapeOpenType to be more expandable.
      usp10: Make use of MS_MAKE_TAG instead of numeric constants.
      usp10: Correct lookahead offset in Coverage-based Chaining Context Glyph Substitution.
      usp10: If a feature changes a glyph reapply the feature to the new glyph.
      usp10: Framework for determing glyph properties after shaping.
      usp10: Add default glyph properties proc.
      usp10: Use the font GDEF table to update glyph properties.
      usp10: Update LogClust from glyph properties.
      usp10: Determine glyph properties after shaping for Arabic.
      usp10: Determine glyph properties after shaping for Thai and other SE asian scrpts.
      usp10: Determine glyph properties after shaping for scripts with no justification.
      usp10/tests: Update test_ScriptShapeOpenType framework to shape in a given font.
      usp10: Add Hebrew shaping test.
      usp10: Add Arabic shaping test.
      usp10: Add Thai shaping test.
      usp10/tests: Add Syriac shaping test.
      usp10/test: Add Thaana shaping test.
      usp10/test: Add Phags-pa shaping test.
      usp10/test: Add Lao shaping test.
      usp10/test: Make sure to only trace on _test_shape_ok number of glyphs if font is not valid.
      usp10: Determine glyph properties after shaping for Tibetan script.
      usp10/test: Add Tibetan shaping test.
      usp10: Zero Width Joiners and Non-Joiners should, like spaces, not split runs.

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

Austin English (6):
      shell32: Add a stub for SHOpenFolderAndSelectItems.
      winsta: Add a stub dll.
      regapi: Add a stub dll.
      kernel32: Add a stub for ApplicationRecoveryFinished.
      kernel32: Add a stub for ApplicationRecoveryInProgress.
      kernel32: Add a stub for RegisterApplicationRecoveryCallback.

Damjan Jovanovic (1):
      winemenubuilder: Extract icons from NE binaries too.

Dan Kegel (4):
      cmd: del /a: move parsing of attributes to helper function, use bitmasks.
      cmd: del /a: test deleting readonly files, with fix.
      cmd: Add simple test for %errorlevel%.
      cmd: Don't read past end of thisVar in WCMD_expand_envvar (valgrind).

David Hedberg (15):
      comdlg32: Change some trace statements to dump strings.
      comdlg32: Fix reference counting when querying services.
      comdlg32: Support some events in the item dialog.
      comdlg32: Add IOleWindow implementation to the Item Dialog.
      comdlg32: Implement SetDefaultFilename.
      comdlg32: Improve handling of file extension changes in the Item Dialog.
      comdlg32/tests: Fix some copypaste errors.
      comdlg32: Add IFileDialogCustomize interface stub.
      comdlg32: Add a container for custom controls.
      comdlg32: Support adding custom controls to the item dialog.
      comdlg32: Layout the customized controls.
      comdlg32: Implement some functions for modifying custom controls.
      comdlg32: Implement support for custom control subitems.
      comdlg32: Add support for custom control events.
      comdlg32: Take linebreaks into account when resizing custom controls.

Dylan Smith (15):
      d3dx9: Implement ID3DXMesh::Optimize using OptimizeInplace.
      d3dx9/tests: Fix a normal comparison for triangles with zero area.
      d3dxof: Remove assumption of 4 bytes pointers for LPSTR value.
      d3dx9: Implement D3DXFrameDestroy.
      d3dx9/tests: Correct ok messages to be consistent with their test.
      include: Replace a THIS, with THIS_ for a method with parameters.
      ddraw: Avoid clearing some memory unnecessarily.
      ddraw: Don't interpret end padding as dwCaps2 for x64.
      ddraw: Keep a function declaration within the include guard.
      d3dx9: Implement D3DXLoadMeshHierarchy for only loading frames.
      d3dx9: Add support for loading basic meshes.
      d3dx9: Add support for loading mesh normals from X files.
      d3dxof: Removed function declarations with no definitions.
      d3dxof: COM cleanup in main.c.
      d3dxof: COM cleanup in d3dxof.c.

Erich Hoover (5):
      quartz: Return IMediaSeeking interface for Parser OutputPin.
      quartz: Return IMediaSeeking interface for Parser PullPin.
      quartz: Release outstanding samples in PullPin::PauseProcessing.
      quartz: Make sure pin state cannot change while a flush is in progress.
      quartz: Create and hold onto a preferred allocator for IAsyncReader::RequestAllocator.

Francois Gouget (15):
      ddraw/tests: Fix compilation on systems that don't support nameless unions.
      user32: Use MSGBOX_IDICON throughout instead of sometimes using stc1 and sometimes 1088.
      usp10/tests: Add a '\n' to an ok() call.
      winefile: Standardize the 'Arrange Icons' menu label.
      oleview: Fix ellipsis usage in the menu and button labels.
      progman: Fix ellipsis usage in the menu and button labels.
      taskmgr: Remove unused button labels.
      user32: Use macros for the resource IDs instead of numeric literals.
      msvcrt: Add a trailing '\n' to an ERR() call.
      hostname: Make display_computer_name() static.
      include: Add a set of parameter documentation macros to help compile windows applications.
      include: Add some __RPC_XXX macros to help compile code using midl-generated headers.
      gdi32: Move MFDRV_{ExtEscape,GetDeviceCaps}() up and make them static.
      usp10/tests: Make enumFontProc() static.
      comdlg32/tests: Make ensure_zero_events_() static.

Frédéric Delanoy (5):
      po: Update French translation.
      d3d10core: dxgi_format_from_wined3dformat should return DXGI_FORMAT enum values in all cases.
      po: Update French translation.
      po: Update French translation.
      wrc: Fix spelling/grammar in manpage.

Gerald Pfeifer (7):
      wineoss.drv: Cope with system which lack SNDCTL_DSP_HALT.
      iphlpapi: Make addrLen unsigned in getInterfacePhysicalByName.
      imaadp32.acm: Remove ADPCM_drvOpen which is only a stub.
      comctl32/tests: Add casts to avoid comparison of different int types.
      imm32: Simplify CopyCompClauseIMEtoClient and callees by shedding an unused parameter.
      inetmib1: Remove unused parameter pPduType from mapStructEntryToValue.
      winedbg: Disable some dead code in expr_eval.

Hans Leidekker (27):
      msi: Improve tracing in the FindRelatedProducts action.
      msi: Search all installation contexts in the FindRelatedProducts action.
      Revert "msi: Avoid loading cabinet streams more than once.".
      msi: Make sure that the target root directory has a trailing backslash.
      msi: Don't resolve child folders if the target path doesn't change in MsiSetTargetPath.
      msi: Factor out common code from MsiEnumComponentCostsW.
      msi: Recursively create the destination directory in the MoveFiles action.
      msi: Avoid a double free.
      msi: Implement the DisableRollback standard action.
      msi: Implement MsiGetMode(MSIRUNMODE_ROLLBACKENABLED).
      msi: Schedule rollback for standard actions.
      msi: Execute the rollback script if the installation failed.
      msi: Move patch related functions to a separate file.
      msi: Improve the BindImage action stub.
      msi: Improve the stub for MsiGetMode(MSIRUNMODE_ADVERTISE).
      msi: Fix the folder actions to revert components to the installed state during rollback.
      msi: Fix the file actions to revert components to the installed state during rollback.
      msi: Fix the registry actions to revert components to the installed state during rollback.
      msi: Fix the class actions to revert features to the installed state during rollback.
      msi: Fix the service actions to revert components to the installed state during rollback.
      msi: Fix the ODBC actions to revert components to the installed state during rollback.
      msi: Fix the font actions to revert components to the installed state during rollback.
      msi: Fix the assembly actions to revert components to the installed state during rollback.
      msi: Fix the remaining actions to revert features and components to the installed state during rollback.
      msi: Fix updating the component reference count during rollback.
      msi: Don't schedule rollback actions during rollback.
      msi: Support rollback of failed uninstalls.

Henri Verbeet (20):
      wined3d: Remove state management methods from the IWineD3DDevice interface.
      wined3d: Remove COM from the device implementation.
      wined3d: Get rid of the IWineD3DDevice typedefs.
      wined3d: Get rid of the renderbuffer_entry_t typedef.
      wined3d: Get rid of the glsl_program_key_t typedef.
      wined3d: Get rid of the IWineD3DDeviceParent interface.
      wined3d: Make wined3d.h a normal header file again.
      wined3d: Introduce a separate structure for framebuffer state.
      wined3d: Get rid of the mostly unused SRGB_BOTH enum value.
      wined3d: Use the requested sRGB mode in texture3d_preload().
      ddraw/tests: Add a test for mode settings calls with different coop levels.
      ddraw: Don't touch the window during mode setting if we're not in exclusive mode.
      d3d8/tests: Fix the depth clamping test.
      ddraw/tests: Fix the depth clamping test.
      d3d9/tests: Fix the depth clamping test.
      wined3d: Rename IWineD3DDeviceImpl_FindTexUnitMap() to device_update_tex_unit_map().
      wined3d: Check for unhandled resource usage flags.
      wined3d: Mask out writes to unused render targets.
      d3d9/tests: Add a test for unwritten pixel shader outputs.
      wined3d: Get rid of an unintentional variable.

Huw Davies (12):
      gdi32: Implement PaintRgn().
      gdi32/tests: Add tests for PaintRgn and simple RTL behaviour.
      gdi32/tests: Make the 32 bpp brush tests sensitive to a nibble swap in the 4 bpp case.
      gdi32: Add support for 16 bpp dibs.
      gdi32: Add conversion routines to the primitive functions.
      gdi32/tests: Add tests for 16 bpp brushes.
      gdi32/tests: Add tests for non-standard BI_BITFIELD dibs.
      gdi32: Add support for colour tables.
      gdi32: Add support for 8 bpp dibs.
      gdi32/tests: Add tests for 8 bpp dibs.
      gdi32: Add support for 8 bpp brushes.
      gdi32/tests: Add tests for 8bpp brushes.

Hwang YunSong (2):
      po: Update Korean translation.
      po: Update Korean translation.

Igor Paliychuk (1):
      msvcrt: _CxxThrowException is stdcall, not cdecl.

Jacek Caban (21):
      mshtml: Move document binding to the new document binding list in on_start_nsrequest.
      mshtml: Handle aborts synchronously in nsChannelBSC_stop_binding.
      mshtml: Pass E_ABORT as binding results of bindings without IBinding in abort_document_bindings.
      kernel32: Moved device-related stubs from psapi to kernel32.
      kernel32: Moved EnumPageFiles[AW] implementation to kernel32.
      kernel32: Moved GetWsChanges and InitializeProcessForWsWatch implementations to kernel32.
      kernel32: Moved GetPerformanceInfo implementation to kernel32.
      wininet: Moved getting cookie from known host to separated function.
      wininet: Use get_cookie directly in HTTP_InsertCookies.
      wininet: Use set_cookie directly in HTTP_ProcessCookies.
      wininet: Correctly handle closed socket in HTTP_ReceiveRequestData.
      wininet: Added connection closing tests.
      ntoskrnl.exe: Added ObReferenceObjectByHandle stub.
      urlmon: Avoid multiple InternetQueryDataAvailable calls in pending state.
      urlmon: Avoid LPWSTR to LPCWSTR cast.
      shdocvw: Use task destructors for releasing task params.
      shdocvw: Store task list in DocHost object instead of using LPARAM.
      shdocvw: Abort pending tasks on DocHost destruction.
      shdocvw: Abort pending navigation task when adding a new one.
      mshtml: Added IHTMLScreen::get_availHeight implementation.
      mshtml: Added IHTMLScreen::get_availWidth implementation.

Juan Lang (1):
      setupapi: Always initialize output parameter to avoid crash in buggy applications.

Jörg Höhle (5):
      include: Use SEGPTR for 16bit string pointers in MCI_*_PARMS16.
      msvfw32: Force lower-case 'vidc/vids/audc' etc. when opening new driver.
      winmm: Process MCI_DGV_INFO which is larger than MCI_INFO.
      mmsystem: Fix some MCI mappings.
      mmsystem: MCI_UnMapMsg16To32W need not return a value.

Ken Thomases (1):
      gdi32: Fix leak of FullName of replaced font face.

Lauri Kenttä (1):
      winemenubuilder: Avoid warning about uninitialized value (clang).

Lucas Fialho Zawacki (4):
      include: Added some dinput8 DIPROP definitions.
      include: Added dinput8 DIKEYBOARD_* key definitions correspondent to the DIK_* already present in the header.
      include: Added dinput8 DIMOUSE_* definitions.
      include: Added DI*_ANY action constants.

Marcus Meissner (83):
      comctl32: Mark internal symbols as hidden visibility.
      appwiz: Mark internal symbols as hidden.
      ddrawex: Mark internal symbols as hidden and vtables as static.
      comdlg32: Mark internal symbols as hidden visibility.
      d3d10core: Mark a struct as static.
      d3drm: Mark internal symbols as hidden.
      cryptui: Mark internal symbols as static.
      atl: Mark hInst variable as hidden.
      d3dx9_36: Mark internal symbols as hidden.
      dmband: Mark internal symbols with hidden visibility.
      dmusic: Mark internal symbols as hidden.
      dmsynth: Mark internal symbols with hidden visibility.
      devenum: Mark internal symbols as hidden.
      dmcompos: Mark internal symbols with hidden visibility.
      dmime: Mark internal symbols with hidden visibility.
      dmloader: Mark internal symbols with hidden visibility.
      dmscript: Mark internal symbols with hidden visibility.
      dmstyle: Mark internal symbols with hidden visibility.
      gdiplus: Mark image_format_dimensions as static.
      dxdiagn: Mark internal symbols with hidden visibility.
      dinput: Mark internal symbols with hidden visibility.
      gameux: Mark internal symbols with hidden visibility.
      dpnet: Mark internals symbols with hidden visibility.
      dswave: Mark internal symbols with hidden visibility.
      explorerframe: Mark internal symbols with hidden visibility.
      dnsapi: Mark internal symbols with hidden visibility.
      fusion: Mark internal symbols with hidden visibility.
      dplayx: Mark internal symbols with hidden visibility.
      msi: Check comp for NULL from msi_get_loaded_component (Coverity).
      itss: Mark internal symbols with hidden visibility.
      imagehlp: Mark internal variable as hidden visibility.
      infosoft: Mark internal symbol with hidden visibility.
      hhctrl.ocx: Mark internal symbols with hidden visibility.
      iphlapi: Mark internal symbols with hidden visibility.
      inetcpl: Mark internal variable with hidden visibility.
      inkobj: Mark internal variable with hidden visibility and hinstance as stattic.
      hnetcfg: Mark internal symbols with hidden visibility.
      hlink: Mark internal symbols with hidden visibility.
      mscoree: Mark internal symbols with hidden visibility and some vtables as static.
      msacm32: Mark internal symbols with hidden visibility.
      mountmgr.sys: Mark internal symbols with hidden visibility.
      mciqtz: Mark one variable as static.
      mciavi32: Mark internal symbols with hidden visibility.
      mapi32: Mark internal symbols with hidden visibility.
      localspl: Mark internal symbols with hidden visibility.
      mmdevapi: Mark internal symbols with hidden visibility.
      gphoto2.ds: Mark a variable with hidden visibility.
      mpr: Mark internal symbols with hidden visibility.
      oledlg: Mark internal variables with hidden visibility.
      oledb32: Mark internal symbol with hidden visibility.
      ntprint: Mark hInstance as static.
      objsel: Mark internal symbols with hidden visibility.
      netapi32: Mark internal symbols with hidden visibility.
      mstask: Mark internal symbol with hidden visibility.
      msimtf: Mark internal symbol as hidden.
      msctf: Mark internal symbols with hidden visibility.
      setupapi: Mark internal symbols with hidden visibility.
      sane.ds: Mark internal symbols with hidden visibility.
      rsaenh: First part of marking internal symbols with hidden visibility.
      riched20: Mark internal symbols with hidden visibility.
      quartz: Mark internal symbols with hidden visibility.
      qmgr: Mark internal symbols with hidden visibility.
      qedit: Mark internal symbols with hidden visibilitiy.
      qcap: Mark internal symbols with hidden visibility.
      printui: Mark hInstance as static.
      openal32: Mark internal variable as static.
      winex11.drv: Mark internal symbols with hidden visibility.
      wineps.drv: Mark internal symbols with hidden visibility.
      winealsa.drv: Mark internal symbols with hidden visibility.
      wiaservc: Mark internal symbols with hidden visibility.
      wbemprox: Mark one internal function with hidden visibility.
      uxtheme: Mark internal symbols with hidden visibility.
      usp10: Mark internal symbols with hidden visibility.
      spoolss: Mark internal symbols with hidden visibility.
      version: Merge all 3 C source files into one.
      wininet: Mark internal symbols with hidden visibility.
      wmiutils: Mark internal symbols with hidden visibility.
      msvfw32: Mark MSVFW32_hModule with hidden visibility.
      wintab32: Mark internal symbols with hidden visibility.
      wldap32: Mark internal symbols with hidden visibility.
      wuapi: Mark internal symbols with hidden visibility.
      winspool.drv: Mark internal symbols with hidden visibility.
      ntdll: Mark FILE_umask with hidden visibility.

Michael Stefaniuc (10):
      riched20: COM cleanup for the ITextSelection iface.
      msxml3: COM cleanup for factory.c.
      riched20: COM cleanup for the IOleClientSite iface.
      riched20: Finish the COM cleanup in richole.c.
      shell32: COM cleanup for the IShellView2 iface.
      shell32: Finish the COM cleanup in shlview.c.
      shell32: COM cleanup for the IShellLinkA iface.
      shell32: Finish the COM cleanup in shelllink.c.
      shell32: COM cleanup for shfldr_printers.c.
      shell32/tests: COM cleanup in ebrowser.c.

Mike Kaplinskiy (1):
      iphlpapi: Set the overlapped status to pending as well as returning ERROR_IO_PENDING.

Nikolay Sivov (10):
      comctl32/treeview: Always return state from TVM_GETITEM handler.
      comctl32/treeview: Store item state supplied from TVN_GETDISPINFO handler.
      comctl32/treeview: Properly update image state index when TVS_CHECKBOXES is switched on.
      comctl32/treeview: Get rid of wine prefixed names.
      comctl32/tests: Some tests for TVM_GETNEXTITEM and item toggle.
      explorerframe: Get rid of interface pointer casts.
      comctl32/treeview: Always draw a '+' for TVIS_EXPANDPARTIAL state.
      comctl32/treeview: Item text should be vertically aligned.
      comctl32/treeview: Correctly draw cut items.
      comctl32/treeview: TVM_EXPAND with TVE_TOGGLE action shouldn't always notify as it does on user input.

Owen Rudge (1):
      user32: Add separate sysmenu for MDI child windows.

Piotr Caban (37):
      msvcrt: Fix return values in strlwr and strupr functions.
      msvcrt: Fix return values in wcstombs and wcsrtombs functions.
      msvcrt: Allocate ioinfo tables dynamically.
      msvcrt: Allocate FILE tables dynamically.
      msvcrt: Improved _getmaxstdio and _setmaxstdio implementation.
      msvcrt: Added _lock_file/_unlock_file implementation.
      msvcrt: Make printf functions thread safe.
      msvcrt: Make scanf functions thread safe.
      msvcrt: Fix __pctype_func implementation.
      msvcrt: Free locks after freeing io data.
      msvcrt: Make fflush function thread safe.
      msvcrt: Make fclose thread safe.
      msvcrt: Make _filbuf thread safe.
      msvcrt: Make _flsbuf thread safe.
      msvcrt: Make setvbuf thread safe.
      msvcrt: Make ungetc and ungetwc thread safe.
      msvcrt: Make FILE->_flag reading functions thread safe.
      msvcrt: Make FILE position related functions thread safe.
      msvcrt: Make FILE reading functions thread safe.
      msvcrt: Make FILE writing functions thread safe.
      msvcrt: Close thread handle when _beginthread is used.
      msvcrt: Reorder fields of __thread_data structure.
      msvcrt: Use _create_locale instead of setlocale during initialization.
      msvcrt: Use get_locinfo instead of get_locale.
      msvcrt: Change the way locale information is stored in __thread_data.
      msvcrt: Change the way how localtime/gmtime buffer is stored in __thread_data.
      msvcrt: Improved tmpnam/wtmpnam implementation.
      msvcrt: Added _getptd implementation.
      msvcr90/tests: Don't check if msvcr90 functions exists.
      msvcrt: Added _get_unexpected implementation.
      msvcr90/tests: Added _getptd tests.
      msvcrt: Improved locale initialization.
      msvcp90: Added ios_base class stub.
      msvcp90/tests: Don't check if msvcp90 functions exists in misc tests.
      msvcp90/tests: Don't check if msvcp90 functions exists in string tests.
      msvcp90: Added basic_ios<char> class stub.
      msvcp90: Added _Mutex class implementation.

Rico Schüller (7):
      d3dx9: Remove some checks for defines argument in D3DXCreateEffect* functions.
      d3dx9: Fix copy and paste mistake in ID3DXBaseEffect::GetPassDesc().
      d3dx9: Parse effect samplers.
      d3dx9: Pass the device directly to d3dx9_parse_data().
      d3d9/tests: Fix some ok() messages in the visual tests.
      d3dx9: Pass objects to functions instead of using the base effect in the parameter.
      d3dx9: Start effect state parsing.

Ričardas Barkauskas (1):
      dxgi: Fix GetDisplayModeList parameter handling.

Sergey Khodych (5):
      shdocvw: Don't use separate call of UrlApplySchemeW for default scheme.
      shlwapi: Don't copy valid scheme in UrlApplySchemeW.
      shlwapi: Implement URL_APPLY_GUESSFILE in UrlApplyScheme.
      shdocvw: Use UrlApplyScheme with URL_APPLY_GUESSFILE for local paths in create_moniker.
      shdocvw: Handle local paths in navigate_url.

Stefan Dösinger (24):
      wined3d: Consistently store format bitcounts in BYTEs.
      wined3d: Cast clipplane doubles to floats.
      wined3d: Fix data types in RxGx snorm-unorm conversion.
      wined3d: Heightscaled surfaces still have an integer size.
      wined3d: Fix a copypaste typo.
      wined3d: Make two variables unsigned.
      wined3d: Remove maxConcurrentLights from the device.
      d3d8: Add a float to DWORD cast.
      d3d8: Stream indices are WORDs.
      d3d8/tests: Use float literals.
      d3d9: Use a DWORD to read render states.
      d3d9: Disable the zero instance test.
      d3d9: Account for another different behavior in the viewport test.
      d3d9: Skip the YUV tests when the driver confuses the U and V channels.
      wined3d: Fix a few function definitions.
      d3d9: AMD drivers return D3D_OK when reading data from an unfinished query.
      d3d9: AMD cards don't clip transformed vertices.
      d3d9: Drop the fixed function varying test.
      wined3d: CMP supports _SAT.
      d3d: Make the INTZ test more reliable.
      d3d9: Use a pixel shader for the vs 3.0 input test.
      port: Add isinf and isnan implementations for Visual Studio.
      wined3d: Call frag_pipe->enable_extension under the GL lock.
      wined3d: Call context_apply_draw_buffers under the GL lock.

Thomas Mullaly (4):
      mshtml/tests: Added IDispatch event tests.
      mshtml/tests: Added more IDispatch event tests.
      mshtml: Added support for IDispatch Html document events.
      urlmon: Prevent putting garbage data into TRACE.

Vincent Povirk (13):
      gdiplus: Set export ordinals to match Windows 7.
      mscoree: Accept a NULL version in CorBindToRuntimeEx.
      mscoree: Return success from ICorRuntimeHost_Start stub.
      mscoree: Implement ICorRuntimeHost_GetDefaultDomain.
      gdiplus: Add basic metafile recording support.
      gdiplus: Add test for metafile enumeration.
      gdiplus: Remove is_emfplus field from test structure, as it's redundant.
      gdiplus: Implement GdipEnumerateMetafileSrcRectDestPoints.
      gdiplus: Add test for GdipGetDC on metafiles.
      gdiplus: Change the sign we use for origin.x in DrawDriverString.
      gdiplus: Implement DriverStringOptionsRealizedAdvance in software.
      user32: Add test for RegisterHotKey/UnregisterHotKey.
      user32: Add message test for hotkeys.

--
Alexandre Julliard
julliard@winehq.org
