WineHQ

Wine Announcement

The Wine development release 7.21 is now available.

What's new in this release:
  - OpenGL library converted to PE.
  - Support for multi-architecture PE builds.
  - More preparation work for Vulkan 32-on-64 support.
  - Support for creating import libraries without dlltool.
  - Locale data updates.
  - Various bug fixes.

The source is available at:

  https://dl.winehq.org/wine/source/7.x/wine-7.21.tar.xz

Binary packages for various distributions will be available from:

  https://www.winehq.org/download

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

You can also get the current source directly from the git
repository. Check https://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 7.21 (total 25):

 - #29974  StarBurn 13 crashes on disabling skins
 - #51418  fotoBiz X - Fatal error on startup
 - #51779  Visual Studio msvsmon fails to bind server socket in child processes
 - #52467  Kaseya Live Connect 9.5.0.28 management software sub-component crashes
 - #53081  Retina Mode broken since 7f7f9fa22c5cbe629e79a54257d5bd21403e80db
 - #53100  Euphoria: freezes every second while controllers are plugged in
 - #53153  SetWindowPos() incorrectly computes exposure region of parent window with WS_EX_COMPOSITED
 - #53484  dxgi:dxgi times out on the debiant VM
 - #53590  GetFileInformationByHandleEx() not fully implemented causing boost::directory_iterator failures with boost v1.79 and newer
 - #53606  First intro stops on last frame in multiple games (Darksiders Genesis, The Medium)
 - #53617  Imaris fails at exit with error, and keeps a process running.
 - #53631  Multiple 64-bit applications have issues with dialogs (DipTrace, foobar2000 installer)
 - #53676  vbscript can not exec_script - invalid number of arguments for Randomize
 - #53738  Cherry MIDI sequencer cannot read files with a path including CJK characters
 - #53749  Hotel Giant 2: black screen after changing resolution or enabling anti-aliasing
 - #53768  Winfile crashes due to unimplemented user32.dll.DragObject
 - #53798  Port Royale 2: incomplete text rendering
 - #53849  Apiset DLLs broken in non-PE builds
 - #53856  Wine 7.20 installs some windows files to the wrong location
 - #53859  Hades shows black screen at Vulkan mode
 - #53861  Non-PE builds fail after "makefiles: Add support for multiple PE architectures."
 - #53872  Adobe Reader XI crash opening settings in Protected Mode
 - #53879  Gothic 1 doesn't launch (msdbi.dll failed to initialize)
 - #53888  vbscript does not allow Mid on non VT_BSTR
 - #53893  ws2_32:sock - test_WSASocket() gets an unexpected raw protocol name in French on Windows

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

Changes since 7.20:

Alex Henrie (13):
      include: Include minidumpapiset.h in imagehlp.h.
      msvcrt: Change return type of _splitpath_s to errno_t.
      include: Add _splitpath_s.
      msvcrt: Change return type of freopen_s to errno_t.
      include: Add freopen_s.
      msvcrt: Change return type of wcsncat_s to errno_t.
      include: Add wcsncat_s.
      cmd: Remove inapplicable comment from WCMD_getfileowner.
      cmd: Use the wcsrev function instead of reimplementing it.
      include: Add sdkddkver.h.
      uuid: Add propkey.h.
      include: Define PROPSHEETPAGE[AW]_V[1-4].
      mscoree: Use standard C functions for memory allocation in assembly.c.

Alexandre Julliard (34):
      makefiles: Add support for multiple PE architectures.
      makedep: Always generate a fake module for the native architecture.
      ntdll: Fix trace formats for 64-bit values on ARM64.
      wow64: Load dependencies of 64-bit modules only from the 64-bit system directory.
      msvcrt: Use WINAPIV calling convention for variadic functions.
      xml2: Use WINAPIV calling convention for variadic functions.
      xslt: Use WINAPIV calling convention for variadic functions.
      ntdll: Reimplement KeUserModeCallback in assembly on i386.
      ntdll: Reimplement KeUserModeCallback in assembly on x86_64.
      ntdll: Reimplement KeUserModeCallback in assembly on ARM.
      ntdll: Reimplement KeUserModeCallback in assembly on ARM64.
      faudio: Import upstream release 22.11.
      png: Import upstream release 1.6.38.
      zlib: Import upstream release 1.2.13.
      lcms2: Import upstream release 2.14.
      xml2: Import upstream release 2.10.3.
      xslt: Import upstream release 1.1.37.
      nls: Update locale data to CLDR version 42.
      kernelbase: Update timezone data to version 2022f.
      win32u: Always use the full union for sysparams entries.
      ntdll: Don't inline NtCurrentTeb() in Unix libraries.
      openal32: Remove dll.
      ntdll: Use a pthread key for the TEB on all platforms.
      ntdll: Move the initialization of the thread register into signal_start_thread().
      ntdll: Use a separate function pointer for the TEB hack on ARM64.
      ntdll: Use a proper Unix syscall for load_so_dll().
      ntdll: Use a proper Unix syscall for init_builtin_dll().
      ntdll: Use a proper Unix syscall for unwind_builtin_dll().
      ntdll: Use a proper Unix syscall for RtlGetSystemTimePrecise().
      Revert "light.msstyles: Add nonclient metrics.".
      ntdll: Add a Wine-specific process info class for the LDT copy.
      makedep: Remove support for "hybrid" Unix libraries.
      winegcc: Remove support for "hybrid" Unix libraries.
      winebuild: Remove support for "hybrid" Unix libraries.

Anton Baskanov (6):
      quartz/tests: Add tests for MPEG layer-3 decoder IEnumMediaTypes.
      winegstreamer: Add a skeleton MPEG layer-3 decoder filter.
      quartz/tests: Add tests for MPEG layer-3 decoder accepted media types.
      winegstreamer: Reject incompatible input media types in MPEG layer-3 decoder.
      quartz/tests: Add tests for MPEG layer-3 decoder sink connection.
      winegstreamer: Reject incompatible output types in MPEG layer-3 decoder.

Arkadiusz Hiler (1):
      cmd/tests: Make sure for /f doesn't loop infinitely on NULs.

Bartosz Kosiorek (19):
      msvcrt: Add _fprintf_l implementation.
      msvcrt: Add _fprintf_p implementation.
      msvcrt: Add _fprintf_p_l implementation.
      msvcrt: Add _fprintf_s_l implementation.
      msvcrt: Add _fwprintf_p implementation.
      msvcrt: Add _fwprintf_p_l implementation.
      msvcrt: Add _fwprintf_s_l implementation.
      msvcrt: Add _scprintf_l implementation.
      msvcrt: Add _scprintf_p implementation.
      msvcrt: Add _scprintf_p_l implementation.
      msvcrt: Add _swprintf_p_l implementation.
      msvcp90: Add _Cin_func implementation.
      msvcp90: Add _Wcin_func implementation.
      msvcp90: Add _Cout_func implementation.
      msvcp90: Add _Clog_func implementation.
      msvcp90: Add _Cerr_func implementation.
      msvcp90: Add _Wcout_func implementation.
      msvcp90: Add _Wclog_func implementation.
      msvcp90: Add _Wcerr_func implementation.

Bernhard Kölbl (3):
      mf/tests: Test for copier node in topology using evr.
      mf: Assume same up and downstream media type for copier creation.
      mf: Set media types for output nodes in the media session.

Brendan Shanks (12):
      ntdll: Print correct thread rename trace if non-pseudo-handle to current thread is used.
      winemac: Remove pre-Mac OS X 10.8 workarounds.
      ntdll: Set the QoS class of the main Wine thread on macOS.
      ntdll: Add a Wine-specific THREADINFOCLASS to set just the native thread name.
      ntdll: Add native thread renaming for exception method.
      dsound: Set name of internal threads.
      winepulse: Set name of internal threads.
      winealsa: Set name of internal threads.
      ntdll: Fix runtime availability check for pthread_attr_set_qos_class_np.
      ntdll: Suppress deprecation warnings when calling MPTaskIsPreemptive().
      ntdll: Stop using deprecated kIOMasterPortDefault constant.
      winemac.drv: Stop using deprecated kIOMasterPortDefault constant.

Connor McAdams (7):
      uiautomationcore: Add UiaNavigate stub.
      uiautomationcore: Add parent link check to prepare_uia_node().
      uiautomationcore: Add helper function for returning a new node from an IWineUiaProvider.
      uiautomationcore: Implement ConditionType_True parent navigation for HUIANODEs.
      uiautomationcore: Partially implement ConditionType_True sibling navigation for HUIANODEs.
      uiautomationcore: Implement ConditionType_True child navigation for HUIANODEs.
      uiautomationcore: Add support for navigating between sibling node providers of a parent HUIANODE.

Dmitry Timoshkov (1):
      uxtheme: Protect CloseThemeData() from invalid input.

Eric Pouech (13):
      dbghelp: No longer pass inline site's address upon creation.
      dbghelp: Store address range as FAM in symt_inlinesite.
      dbghelp: Use addr_range for storing symt_function address and size.
      dbghelp: Get rid of symt_inlinesite by merging it inside symt_function.
      user32: Fix rounding issue in edit tests for char pos messages.
      conhost/tests: Fix some conditions on tty test termination.
      rpcrt4: Fix unexpected exception in ndr_marshal tests.
      shell32/tests: Improve timeout detection in shlexec tests.
      dbghelp: Added missing DECLSPEC_HIDDEN attribute.
      dbghelp: Introduce a helper for module lookup.
      dbghelp: Support loading modules from Wine's multi-arch build tree.
      cmd: Use CRT file I/O function inside 'for /F' handling.
      riched20: Fix failing test in UTF8 locales.

Etaash Mathamsetty (1):
      ntoskrnl.exe: Implement KeInitializeGuardedMutex.

Evan Tang (4):
      kernel32: Null-terminate the atom names passed to NtAddAtom.
      riched20: Move test class creation to a helper function.
      riched20: Add test for EN_CHANGE events during window creation.
      riched20: Don't emit EN_CHANGE events during window creation.

Fabian Maurer (6):
      wbemproxy/tests: Prevent double free (Coverity).
      shell32: Prevent double free (Coverity).
      win32u: Prevent use after free (Coverity).
      ntdll/tests: Fix uninitialized read in ok (Coverity).
      sapi: Prevent resource leak (Coverity).
      msvcrt/tests: Fix typo (Coverity).

Gabriel Ivăncescu (12):
      mshtml/tests: Handle broken localStorage on native.
      mshtml: Implement isContentEditable for HTML elements.
      mshtml: Improve locale stub for KeyboardEvent.
      mshtml: Return E_ABORT if wine-gecko's OnDataAvailable aborts the binding.
      mshtml: Don't include fragment in storage event's url prop.
      mshtml: Implement HTMLLocation_put_hash.
      mshtml: Implement document.importNode.
      mshtml: Use nsIDOMDocument instead of nsIDOMHTMLDocument where possible.
      jscript: Convert filetime to date properly using unsigned division.
      include: Add IDOMParser interface, dispinterface, and coclass.
      include: Add CLSID_XHTMLDocument and CLSID_SVGDocument.
      mshtml: Add SVG and XHTML document information to the registry.

Georg Lehmann (4):
      winevulkan: Update to VK spec version 1.3.233.
      winevulkan: VkDeviceAddress needs alignment.
      winevulkan: Fix handling bitmasks in needs_alignment.
      winevulkan: Fix handling enums in needs_alignment.

Hans Leidekker (5):
      rsaenh: Pass exact size to BCryptFinishHash().
      bcrypt: Use get_object() in more places.
      bcrypt: Validate hash output length.
      netprofm: Store a list manager pointer in the network object instead of creating a new list manager.
      netprofm: Use CRT allocation functions.

Jacek Caban (41):
      winevulkan: Support optional dispatch handles.
      winevulkan: Assert Unix call result in generated thunks.
      winevulkan: Assert Unix call result in private thunks.
      winevulkan: Don't check thunk_type in VkParam.needs_unwrapping.
      winevulkan: Don't store conversion functions in VkParam.
      winevulkan: Introduce needs_host_type helper function.
      winevulkan: Remove unneeded needs_conversion() calls.
      winevulkan: Store returnedonly attribute in VkVariable.
      winevulkan: Pass direction to needs_conversion helpers.
      winevulkan: Move get_conversions implementation to VkVariable.
      winevulkan: Remove no longer used Direction.INPUT_OUTPUT.
      winevulkan: Pass type as uint32_t to wine_vk_unwrap_handle.
      winevulkan: Support output array conversion in _generate_array_conversion_func.
      winevulkan: Drop "static_array" from conversion function names.
      winevulkan: Use separated classes for struct and array conversions.
      winevulkan: Use struct conversion functions for array conversion implementations.
      winevulkan: Don't declare host types for structs that don't need it.
      winevulkan: Skip unsupported functions in a few more places.
      mshtml: Always use navigate_fragment for fragment-only navigation in navigate_uri.
      winevulkan: Move find_next_struct implementation to vulkan_private.h.
      winevulkan: Convert struct chains in struct conversion functions.
      winevulkan: Avoid unneeded copies in struct conversion functions.
      winevulkan: Support output dynamic array conversion.
      winevulkan: Always fill output in fill_luid_property.
      winevulkan: Store parent in VkVariable.
      winevulkan: Support pointer dynamic array lengths.
      winevulkan: Use generated thunks for vkGetImageSparseMemoryRequirements(2) conversion.
      winevulkan: Use const types in conversion function declarations.
      winevulkan: Convert struct chain conversions for all structs that need it.
      winevulkan: Use generated thunks for VkPipelineCreationFeedback conversion.
      winevulkan: Support conversion of optional parameters.
      winevulkan: Fix handling unions in needs_alignment().
      winevulkan: Preserve const in array conversion output types.
      winevulkan: Add support for pointer array conversion.
      winevulkan: Use local params struct declarations for 32-bit thunks.
      winevulkan: Fix host aliases declaration.
      winevulkan: Use local structs declarations for 32-bit conversion functions.
      winevulkan: Get rid of *_host types.
      winevulkan: Remove no longer used make_vulkan functions.
      winevulkan: Move needs_unwrapping implementation to VkVariable.
      winevulkan: Don't generate private thunk prototypes for PE-only functions.

Jinoh Kang (7):
      server: Correctly expose composited parent window and its child on position change.
      server: Redraw composited window child when its z-order changes.
      server: Don't invalidate the newly exposed child region on the parent if it doesn't clip children.
      ntdll: Move CFI helper macros out of signal_x86_64.c.
      ntdll: Add CFI unwind info to __wine_syscall_dispatcher (i386).
      comctl32/tests: Flush events before testing edit control SetFocus() messages.
      comctl32/tests: Flush events before testing edit control IME messages.

Martin Storsjö (5):
      winegcc: Prefer -Wl,--pdb=<file> over -Wl,-pdb,<file>.
      ntdll: Add ARM EHABI unwind instructions in assembly functions.
      ntdll: Implement ARM EHABI unwinding.
      ntdll: Write ret_len with the right size in user_mode_callback_return on arm64.
      ntdll: Readd the missed initialization of the thread register on arm.

Mohamad Al-Jaf (2):
      setx: Add stub program.
      certutil: Add stub program.

Nikolay Sivov (9):
      mf/session: Add support for MESessionScrubSampleComplete event.
      vbscript: Implement PRNG functions.
      comctl32/edit: Check for control destruction on notification return.
      user32/edit: Check for control destruction on notification return.
      vbscript: Fix a typo in Right() argument type check.
      vbscript: Improve invalid argument checks in Right().
      vbscript: Improve argument type handling in Mid().
      d2d1/tests: Use correct flags constants with D3D11CreateDevice().
      vbscript: Add support for argument list in ReDim.

Paul Gofman (28):
      ws2_32/tests: Add tests for SO_EXCLUSIVEADDRUSE.
      ws2_32: Track SO_EXCLUSIVEADDRUSE option value.
      server: Make SO_REUSEADDR and SO_EXCLUSIVEADDRUSE mutually exclusive.
      server: Use struct bound_addr as a key to bound_addresses_tree.
      server: Set error in check_addr_usage().
      server: Use htonl() with INADDR_ANY in ipv4addr_from_v6().
      server: Do not translate loopback addr in ipv4addr_from_v6().
      server: Support SO_EXCLUSIVEADDRUSE socket option.
      http.sys: Use SO_EXCLUSIVEADDRUSE on listening socket.
      include: Add windows.gaming.ui.idl.
      windows.gaming.ui.gamebar: Add stub DLL.
      windows.gaming.ui.gamebar: Add IGameBarStatics interface.
      mf: Handle timer time behind clock time in present_clock_schedule_timer().
      mf/samplegrabber: Process samples in paused state in ignore_clock mode.
      mf/samplegrabber: Handle samples receieved in paused state.
      secure32/tests: Add tests for ApplyControlToken (schannel).
      secur32: Allocate buffer for either ISC_REQ_ALLOCATE_MEMORY or NULL output in schan_InitializeSecurityContextW().
      secur32: Add semi-stub for ApplyControlToken (schannel).
      secur32: Implement ApplyControlToken for SCHANNEL_SHUTDOWN.
      ws2_32/tests: Don't test protocol name in test_WSASocket().
      ntdll: Pass limit instead of zero_bits to map_view().
      ntdll: Factor out allocate_virtual_memory().
      ntdll: Support HighestEndingAddress in NtAllocateVirtualMemoryEx().
      ntdll/tests: Add tests for memory address requirements.
      wow64: Support MEM_ADDRESS_REQUIREMENTS in wow64_NtAllocateVirtualMemoryEx().
      wow64: Set HighestEndingAddress in wow64_NtAllocateVirtualMemoryEx() if it is absent.
      ntdll: Pass alignemnt mask to map_view().
      ntdll: Support specified alignment in NtAllocateVirtualMemoryEx().

Piotr Caban (5):
      wineps.drv: Add DrvDocumentPropertySheets implementation.
      winspool.drv: Use DrvDocumentPropertySheets driver entry in DocumentProperties.
      wineps.drv: Remove DrvDocumentProperties entry point.
      msvcrt: Fix errno set on read from write-only file.
      msvcrt: Fix errno set on write to read-only file.

Rémi Bernon (64):
      win32u: Add a BOOL force parameter to update_display_cache.
      win32u: Force update display cache after NtUserChangeDisplaySettingsEx.
      win32u: Add primary adapter name parameter to ChangeDisplaySettings.
      winemac.drv: Use the primary adapter name instead of calling back win32u.
      win32u: Add is_primary parameter to GetCurrentDisplaySettings.
      winex11.drv: Use the primary adapter info instead of calling back win32u.
      winmm: Use a separate last_check for joyGetDevCapsW and joyGetPosEx.
      winmm: Add missing void parameter in function definition.
      winebus.sys: Ignore SDL events for devices which aren't started.
      win32u: Lock display devices while applying display settings.
      win32u: Write display settings to the registry in apply_display_settings.
      win32u: Read mode from the registry if GetCurrentDisplaySettings fails.
      winebuild: Split get_link_name into a separate get_abi_name helper.
      winebuild: Use asm_name to add underscore prefix in asm_globl.
      winebuild: Split output_static_lib into output_(import|static)_lib.
      opengl32: Create a unixlib interface for GL functions.
      opengl32: Use the unixlib for glGet(String|Integerv).
      opengl32: Move the null functions to unix_thunks.c.
      opengl32: Use the unixlib interface for EXT functions.
      opengl32: Use the unixlib interface for WGL functions.
      opengl32: Avoid using internal functions in wglUseFontBitmaps.
      opengl32: Avoid using internal functions in wglUseFontOutlines.
      opengl32: Introduce a new NtUserCallOpenGLDebugMessageCallback callback.
      opengl32: Move some WGL functions to unix_wgl.c.
      opengl32: Use the unixlib interface for more WGL functions.
      winebuild: Avoid calling asm_name twice in function arguments.
      comctl32/tests: Remove a now succeeding todo_wine.
      xaudio2_7/tests: Mark tests failing randomly as flaky.
      mf: Always enumerate branch source types for transform nodes.
      mf: Add some topology source node checks in IMFMediaSession_SetTopology.
      gitlab: Add a 2s wait between macOS build iterations.
      opengl32: Introduce new disabled_extensions_index helper.
      opengl32: Move extension filtering helpers to unix_wgl.c.
      opengl32: Move glGetStringi extension filtering to unix_wgl.c.
      opengl32: Move glGetString extension filtering to unix_wgl.c.
      opengl32: Move glGetIntegerv extension filtering to unix_wgl.c.
      opengl32: Move function / extension registry mapping to unix_thunks.c.
      opengl32: Move wglGetProcAddress extension filtering to unix_wgl.c.
      winebuild: Introduce a new --without-dlltool winebuild flag.
      winebuild: Implement import lib generation without dlltool.
      winebuild: Enable unwind tables by default in PE files.
      winebuild: Implement delay import lib generation without dlltool.
      winebuild: Fix import hint value for symbols imported by name.
      winebuild: Put the delay import descriptor in data section.
      winegstreamer: Introduce new wm_stream_allocate_sample helper.
      winegstreamer: Split the wm_reader_get_stream_sample helper.
      winegstreamer: Allow wg_parser_stream_get_buffer to wait on all streams.
      winegstreamer: Return no buffer when wg_parser stream is disabled.
      winegstreamer: Merge wm_reader_get_stream_sample with GetNextSample.
      opengl32: Avoid calling back the wglMakeCurrent win32 thunk.
      opengl32: Use glReserved1[0] and glReserved1[1] for draw and read DCs.
      opengl32: Split opengl_ext.h into private.h and unix_private.h.
      opengl32: Avoid recursively entering WGL critical section.
      opengl32: Use ntdll registry functions to read disabled extensions.
      opengl32: Build with msvcrt.
      opengl32: Use msvcrt allocation functions.
      opengl32: Use RtlSetLastWin32Error instead of SetLastError.
      kernel32/tests: Test more Global/Local functions with invalid pointers.
      kernel32/tests: Test (Global|Local)Handle with heap allocated pointers.
      ntdll: Introduce a new heap block_set_flags helper.
      ntdll: Store the user flags in the heap block flags.
      ntdll: Check block user flags in RtlSetUserValueHeap.
      ntdll: Check block user flags in RtlGetUserInfoHeap.
      ntdll: Implement RtlSetUserFlagsHeap.

Santino Mazza (2):
      user32/tests: Test for MB_SYSTEMMODAL.
      user32/msgbox: Implement MB_SYSTEMMODAL.

Sebastián Aedo (2):
      netprofm: Add INetwork_GetNetworkConnections test.
      netprofm: Implement network_GetNetworkConnections.

Stefan Dösinger (1):
      ntdll: Fix building on Mojave / Xcode 11.3.1.

Tarcísio Ladeia de Oliveira (1):
      gdi32/tests: Fix assertion message.

Tim Clem (3):
      wow64: Truncate too-large regions from NtQueryVirtualMemory(MemoryBasicInformation).
      wow64: Return error from NtQueryVirtualMemory(MemoryRegionInformation) for a too-large address.
      wow64: Truncate too-large regions from NtQueryVirtualMemory(MemoryRegionInformation).

Torge Matthies (1):
      ntdll: Fix incorrectly sized mov in user_mode_callback_return.

Zebediah Figura (12):
      winevulkan: Do not pass win32 allocation callbacks directly to the Unix side.
      winecoreaudio: Disable thread DllMain() calls.
      winecoreaudio: Clean up the timer queue handle in DllMain().
      wined3d: Factor out creating the window state thread.
      wined3d: Set the window state thread description only if it's actually a new thread.
      d3d8/tests: Test drawing from a managed texture after Reset().
      d3d9/tests: Test drawing from a managed texture after Reset().
      wined3d: Factor out a mark_managed_resource_dirty() helper.
      wined3d: Add a dirty rect to managed textures when resetting.
      wined3d: Always invalidate ~map_binding in texture write maps.
      d3d8: Build without -DWINE_NO_LONG_TYPES.
      d3d9: Build without -DWINE_NO_LONG_TYPES.

Zhiyi Zhang (15):
      comctl32/button: Initialize dtFlags in PB_Paint().
      win32u: Skip detached monitors in is_window_rect_full_screen().
      winex11.drv: Initialize escape.drawable in X11DRV_GetDC().
      winecfg: Use SM_CYSIZE to set and get caption height.
      winecfg: Adjust top-level window rectangles after theme changes.
      user32: Hook drawing menu buttons.
      uxtheme: Support drawing themed menu buttons.
      user32/tests: Test creating a fullscreen window spanning multiple monitors.
      winex11.drv: Support _NET_WM_FULLSCREEN_MONITORS.
      d2d1/tests: Add hwnd render target pixel format tests.
      d2d1: Use D2D1_ALPHA_MODE_IGNORE if D2D1_ALPHA_MODE_UNKNOWN is used for creating hwnd render targets.
      uxtheme: Reference count theme classes.
      uxtheme: Use atomic functions for reference counting.
      light.msstyles: Add nonclient metrics.
      user32: Use NtUserSetWindowLongPtr() in set_dialog_proc().

Ziqing Hui (4):
      usp10/tests: Add CJK shaping test.
      usp10/tests: Add Hiragana shaping test.
      usp10/tests: Add Katakana shaping test.
      gdi32/uniscribe: Add fallback font for Kana and CJK script.

wuliande (1):
      msvcp90: Make _Condition_variable_* function pointers static.