WineHQ

Wine Announcement

The Wine development release 7.7 is now available.

What's new in this release:
  - More progress on the PE conversion of the X11 and OSS drivers.
  - Support for UTF-8 as default Ansi codepage.
  - Theming support for control panel applets.
  - Various bug fixes.

The source is available from the following locations:

  https://dl.winehq.org/wine/source/7.x/wine-7.7.tar.xz
  http://mirrors.ibiblio.org/wine/source/7.x/wine-7.7.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.7 (total 11):

   6682  IrfanView's 4.44 Help -> About window is missing a picture on the left
  24574  RAR Password Recovery Magic initial (registration) window is empty and doesn't allow any interaction
  45916  x64dbg fails to load debuggee, needs ThreadScheduler_ScheduleTask
  52223  activeCodePage utf-8 in application manifest not respected
  52640  Steam does not display anything when using the Vulkan renderer (stack overflow from official Vulkan loader calling into dxgi)
  52679  Anno 1602 / 1602 A.D. graphics too dark / black
  52703  64-bit Irfanview crashes on startup
  52763  ConEmu doesn't work with winver > Win8.1
  52787  Invalid function prototype for "RegisterUserApiHook" when compiling for C++
  52809  steamwebhelper.exe crashes repeatedly since 2aa4673f32
  52825  Capella help crashes with Error "qtwebengingeprocess has serious errors"

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

Changes since 7.6:

Alex Henrie (1):
      kernel32: Fix percentage calculation in GetSystemPowerStatus.

Alexandre Julliard (31):
      ntdll: Move some duplicated locale definitions to a common header.
      ntdll: Move more codepage conversion functions to the common header.
      ntdll: Use the standard CPTABLEINFO structure for the Unix codepage.
      ntdll: Support UTF-8 codepage in string conversion functions.
      kernelbase: Use RtlMultiByteToUnicodeN in IsChar* functions.
      kernelbase: Avoid redundant locale lookups in GetLocaleInfoA().
      kernelbase: Support UTF-7/8 codepages in get_codepage_table().
      kernelbase: Support UTF-8 as default Ansi codepage in MultiByteToWideChar().
      kernelbase: Support UTF-8 as default Ansi codepage in WideCharToMultiByte().
      ntdll: Default to UTF-8 codepage at startup.
      ntdll: Export a few more codepage functions from ntdll.so.
      win32u: Use the ntdll functions for codepage conversions.
      win32u: Use character sizes in the codepage conversion functions.
      win32u: Use CPTABLEINFO to store the Ansi/OEM codepages.
      win32u: Support UTF-8 as the default Ansi codepage.
      msvcrt: Fix mbcs initialization for UTF-8 codepage.
      ntdll: Initialize the system locale on the Unix side.
      kernelbase: Move codepage initialization to ntdll.
      ntdll: Add support for 2019 and 2020 WindowsSettings namespaces.
      ntdll: Support overriding the codepage from the manifest.
      ole32: Fix sign expansion of codepage values.
      user32: Pass a valid length to RtlUnicodeToMultiByteN/RtlMultiByteToUnicodeN.
      user32/tests: Fix some tests that break in UTF-8 codepage.
      gdi32: Support UTF-8 codepage in TranslateCharsetInfo().
      winedump: Add support for dumping locale.nls.
      include: Avoid Windows types in CodeView structure definitions.
      winedump: Fix some incorrect uses of Unix 'long' type.
      winedump: Avoid using DWORD in private definitions.
      winedump: Remove unused variables.
      winedump: Enable compilation with long types.
      winedump: Build with nameless unions/structs.

Alexandros Frantzis (1):
      win32u: Avoid iterating over a NULL window list when broadcasting.

Alistair Leslie-Hughes (1):
      msado15: Return valid object in Recordset::Clone.

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

Austin English (1):
      dbghelp: Downgrade a FIXME to a WARN.

Bernhard Kölbl (8):
      windows.media.speech/tests: Fix some uses after release.
      windows.media.speech/tests: Make waits non infinite.
      windows.media.speech/tests: Remove some tests.
      windows.media.speech/tests: Remove an unnecessary variable.
      windows.media.speech/tests: Add tests to check if IAsyncInfo_Close is non blocking.
      windows.media.speech: Partially implement IAsyncOperation.
      windows.media.speech: Implement concurrency in IAsyncOperation.
      windows.media.speech: Add ISpeechRecognitionCompilationResult.

Biswapriyo Nath (2):
      include: Add IArcadeStick interface in windows.gaming.input.idl.
      include: Add Windows.Gaming.Input.FlightStick runtimeclass declaration.

Brendan Shanks (2):
      wow64cpu: Use different JMP instruction to work around Rosetta bug.
      ntdll/tests: Test that threads have unique TEBs.

Connor McAdams (8):
      webservices: Set proper minor version for .NET Message Framing Protocol.
      webservices/tests: Add some tests for session dictionary size.
      webservices/tests: Add test for binary encoding nested structure handling.
      webservices: Don't advance binary encoding reader if record type doesn't match.
      webservices: Check for channel state in WsReceiveMessage.
      webservices: Properly handle max session dictionary size channel property.
      webservices: Respect session dictionary size limits on send dictionary.
      webservices: Respect session dictionary size limits on receive dictionary.

Daniel Lehman (1):
      include: Add some math declarations.

Eric Pouech (17):
      combase: Use I64 width modifier for 64-bit integers.
      rtqwork: Trace 64-bit integers with I64 width modifier.
      rpcrt4: Don't cast ptrdiff_t to ULONG in traces, use %I instead.
      ntdll/tests: Simplify printf for 64 bit integers.
      wininet/tests: Simplify printf for 64 bit integers.
      winedbg: Simplify printf for 64 bit integers.
      oleaut32/tests: Simplify test by using long long constants.
      oleaut32/tests: Simplify printf for 64 bit integers.
      kernel32/tests: Add more CreateProcess console management tests.
      server: Use negative values for console pseudo handles.
      kernelbase: Provide a pseudo console environment for initial CUI processes not tied to a Unix tty.
      windowscodecs/tests: Simplify printf for 64 bit integers.
      d3dxof: Don't cast ptrdiff_t to ULONG in traces, use %I instead.
      d3dx10: Fix long type warnings.
      start: Remove workaround for /exec without console.
      kernel32/tests: Make the console tests pass if current console is shell-no-window.
      kernel32/tests: Adapt duplicate console handle test to non-Win7 handles.

Esme Povirk (2):
      gdiplus: Accept newer version in OpenType header.
      windowscodecs: pceltFetched is optional in IWICEnumMetadataItem.

Floris Renaud (1):
      po: Update Dutch translation.

François Gouget (4):
      conhost: Fix the spelling of a couple of comments.
      winegstreamer: Fix the spelling of a comment.
      crypt32/tests: Fix the spelling of an ok() message.
      riched20/tests: Fix the spelling of a comment.

Gabriel Ivăncescu (26):
      urlmon: Add basic implementation of MapBrowserEmulationModeToUserAgent.
      mshtml: Always return the custom user agent if it has been set.
      urlmon: Return the currently set user agent when 'version' is invalid.
      jscript: Handle PROP_IDX in jsdisp_get_own_property.
      jscript: Make idx props enumerable.
      jscript: Throw proper error when invoking non-method builtin.
      jscript: Accept DISPATCH_PROPERTYPUTREF for jsdisps.
      mshtml/tests: Add initial tests for NULL Dispatch objects in scripts.
      jscript: Treat NULL disps as actual null values in html mode.
      jscript: Defer lookup to the actual locals for function statements.
      mshtml: Implement enumerator for HTMLStyleSheetsCollection.
      mshtml: Implement enumerator for HTMLRectCollection.
      mshtml: Implement enumerator for HTMLFormElement.
      mshtml: Implement enumerator for HTMLSelectElement.
      mshtml: Move some static functions up.
      mshtml: Implement enumerator for HTMLAttributeCollection.
      jscript: Handle NULL return pointers in all constructors.
      jscript: Move Set below Map.
      jscript: Iterate through the map in a helper function.
      jscript: Set a map entry using a helper function.
      jscript: Pass the Map object to the callback when iterating.
      jscript: Support passing 'this' context to the Map callback when iterating.
      jscript: Compare numbers in a Map bitwise for equality.
      jscript: Implement Set on top of Map.
      jscript: Use proper error description for invalid Set 'this'.
      jscript: Initialize hres in String constructor.

Giovanni Mascellani (2):
      mfreadwrite/reader: Make the stream sample allocator callback own a reference to the source reader.
      mfreadwrite/reader: Unset sample allocator callbacks while destroying the source reader.

Hans Leidekker (2):
      crypt32/tests: Get rid of workarounds for old Windows versions.
      webservices: Always set channel state to WS_CHANNEL_STATE_FAULTED when a send or receive operation failed.

Hugh McMaster (13):
      regedit: Use wide character string literals in childwnd.c.
      regedit: Use wide character string literals in edit.c.
      regedit: Use wide character string literals in framewnd.c.
      regedit: Use wide character string literals in hexedit.c.
      regedit: Use wide character string literals in listview.c.
      regedit: Use wide character string literals in regedit.c.
      regedit: Use wide character string literals in treeview.c.
      regedit: Use wide character string literals in main.c.
      regedit: Use wide character string literals in regproc.c.
      regedit: Mark WCHAR szFrameClass static.
      regedit: Mark WCHAR szTitle static.
      regedit: Remove unused WCHAR szHexEditClass from main header.
      conhost: Save default font's pitch and family on first run.

Huw D. M. Davies (55):
      wineoss: Explicitly store the channel count in the client.
      wineoss: Dynamically size the devnode array.
      wineoss: Use the global lock to lock the session.
      wineoss: Introduce a stream structure.
      wineoss: Move is_format_supported to the unixlib.
      wineoss: Don't cache the oss_audioinfo in the client.
      wineoss: Move the stream creation to AudioClient_Initialize().
      wineoss: Move get_mix_format to the unixlib.
      wineoss: Use the stream ptr to indicate the init state.
      wineoss: Store the mute state in the stream.
      wineoss: Use the sessions lock to lock the client's data.
      wineoss: Use a pthread mutex for the stream lock.
      wineoss: Use NtAllocateVirtualMemory() to alloc the buffers returned to the user.
      wineoss: Move create_stream and release_stream to the unixlib.
      wineoss: Move get_buffer_size to the unixlib.
      wineoss: Move get_latency to the unixlib.
      wineoss: Move get_current_padding to the unixlib.
      wineoss: Store the period in 100ns units.
      wineoss: Move timer_loop to the unixlib.
      wineoss: Move start to the unixlib.
      wineoss: Move stop to the unixlib.
      wineoss: Move reset to the unixlib.
      wineoss: Move set_event_handle to the unixlib.
      wineoss: Move get_render_buffer to the unixlib.
      wineoss: Move release_render_buffer to the unixlib.
      wineoss: Move get_capture_buffer to the unixlib.
      wineoss: Move release_capture_buffer to the unixlib.
      wineoss: Move get_next_packet_size to the unixlib.
      wineoss: Move get_frequency to the unixlib.
      wineoss: Move get_position to the unixlib.
      wineoss: Move is_started to the unixlib.
      wineoss: Move set_volumes to the unixlib.
      wineoss: Remove some unused members.
      wineoss: Remove preprocessor checks for SNDCTL_SEQ_NRMIDIS.
      wineoss: Move midi_init to the unixlib.
      winealsa: Wait for the notify buffer to empty, rather than dropping an event.
      wineoss: Store the sequencer fd in the driver struct.
      wineoss: Add a temporary syscall to open and close the seq fd.
      wineoss: Add a temporary midi_out_fm_patch syscall.
      wineoss: Add a temporary midi_out_fm_reset syscall.
      wineoss: Move MODM_OPEN and MODM_CLOSE to the unixlib.
      wineoss: Use separate functions to handle MODM_DATA for FM synths and ports.
      wineoss: Move MODM_DATA to the unixlib.
      wineoss: Move MODM_LONGDATA to the unixlib.
      wineoss: Move MODM_PREPARE and MODM_UNPREPARE to the unixlib.
      winepulse: Use UINT64 handles to represent the stream.
      winepulse: Return offsets rather than ptrs to the strings.
      winepulse: Limit Wow64 buffer allocations to 32-bit addresses.
      winepulse: Implement Wow64 entry points in the Unix library.
      winealsa: Pass a client ptr to the callback instead of a stream.
      winealsa: Use UINT64 handles to represent the stream.
      winealsa: Return offsets rather than ptrs to the strings.
      winealsa: Limit Wow64 buffer allocations to 32-bit addresses.
      winealsa: Implement Wow64 mmdevapi entry points in the Unix libraray.
      winealsa: Implement Wow64 midi entry points in the Unix library.

Jacek Caban (78):
      winex11: Directly use ntdll for registry access in setup_options.
      winex11: Directly use ntdll for registry access in create_xcursor_system_cursor.
      winex11: Directly use ntdll for registry access in X11DRV_GetICMProfile.
      winex11: Directly use ntdll for registry access in get_display_device_reg_key.
      winex11: Directly use ntdll for registry access in read_registry_settings.
      winex11: Directly use ntdll for registry access in write_registry_settings.
      win32u: Implement NtGdiGetDCDword.
      win32u: Implement NtGdiGetDCPoint.
      winex11: Directly use win32u for GDI functions in bitblt.c.
      winex11: Directly use win32u for GDI functions in window.c.
      winex11: Directly use win32u for GDI functions in graphics.c.
      winex11: Directly use win32u for GDI functions in palette.c.
      winex11: Directly use win32u for GDI functions in xrender.c.
      winex11: Directly use win32u for GDI functions in more places.
      kernelbase: Add support for CREATE_NO_WINDOW flag in CreateProcess.
      win32u: Introduce inline helpers for NtUserCallNoParam calls.
      win32u: Use NtUserCallHwndParam for MirrorRgn implementation.
      win32u: Introduce inline helpers for NtUserCallOneParam calls.
      win32u: Remove no longer needed NtUserCallOneParam exports.
      win32u: Introduce inline helpers for NtUserCallTwoParam calls.
      win32u: Introduce inline helpers for NtUserCallHwnd calls.
      win32u: Introduce inline helpers for NtUserCallHwndParam calls.
      winex11: Remove no longer needed helpers.
      winex11: Directly use win32u for user functions in window.c.
      user32: Get rid of __wine_set_pixel_format.
      win32u: Move NtUserExcludeUpdateRgn implementation from user32.
      win32u: Move NtUserChildWindowFromPointEx implementation from user32.
      win32u: Move EnableWindow implementation from user32.
      win32u: Introduce NtUserMapWindowPoints.
      win32u: Move NtUserClientToScreen implementation from user32.
      win32u: Introduce NtUserGetMessagePos.
      winex11: Directly use win32u for user functions in mouse.c.
      winex11: Directly use win32u for user functions in opengl.c.
      winex11: Directly use win32u for user functions in settings.c.
      winex11: Directly use win32u for user functions in event.c.
      winex11: Directly use win32u in more places.
      win32u: Move NtUserTranslateMessage implementation from user32.
      win32u: Move CreatePopupMenu implementation from user32.
      win32u: Move NtUserCheckMenuItem implementation from user32.
      win32u: Move NtUserEnableMenuItem implementation from user32.
      win32u: Move DrawMenuBar implementation from user32.
      win32u: Move ShowOwnedPopups implementation from user32.
      win32u: Move more WM_SYSCOMMAND handling from user32.
      win32u: Use winuser.h inline rect helpers.
      ntdll: Provide RtlInitUnicodeString for unixlibs.
      win32u: Use RtlInitUnicodeString from ntdll.so.
      winex11: Use pthread for surface locking.
      winex11: Use pthread for keyboard lock.
      winex11: Use pthread for synchronization in opengl.c.
      winex11: Use pthread for palette locking.
      winex11: Use pthread for settings locking.
      winex11: Use pthread for synchronization in vulkan.c.
      winex11: Use pthread for win data locking.
      winex11: Use pthread for D3DKMT locking.
      winex11: Use pthread for error handler locking.
      winex11: Use pthread for xrandr locking.
      winex11: Use pthread for xrender locking.
      winex11: Use NtUserBuildHwndList for has_owned_popup implementation.
      winex11: Use build_hwnd_list for X11DRV_DisplayDevices_Update implementation.
      winex11: Use pthread_once in create_x11_physdev.
      win32u: Expose public parts of user_thread_info in ntuser.h.
      winex11: Use NtUserGetThreadInfo to access thread data.
      winex11: Use TEB to store driver thread data.
      winex11: Directly use ntdll in display_device_init mutex.
      win32u: Move NtUserFindWindowEx implementation from user32.
      win32u: Move NtUserSetMenuContextHelpId implementation from user32.
      win32u: Move NtUserGetMenuItemRect implementation from user32.
      win32u: Move NtUserSetMenu implemenetation from user32.
      win32u: Move GetMenuInfo implementation from user32.
      win32u: Move is_window_rect_full_screen implementation from winex11.
      winex11: Use Unix environment variable in remove_startup_notification.
      win32u: Move NtUserThunkedMenuInfo implementation from user32.
      win32u: Move NtUserSetMenuDefaultItem implementation from user32.
      win32u: Move NtUserSetClipboardViewer implementation from user32.
      win32u: Move NtUserChangeClipboardChain implementation from user32.
      win32u: Move EnumClipboardFormats implementation from user32.
      winex11: Use a simple sdbm hash implementation in X11DRV_GetICMProfile.
      winex11: Directly use ntdll in X11DRV_GetICMProfile.

Jinoh Kang (1):
      include: Remove duplicate definitions of UOI_* macros.

Julian Rüger (1):
      po: Update German translation.

Matteo Bruni (1):
      d3dxof/tests: Remove redundant skips after ok() calls.

Mohamad Al-Jaf (2):
      include: Add CMSMPEGDecoderMFT coclass.
      include: Add CLSID_MSVPxDecoder declaration.

Nikolay Sivov (25):
      evr/mixer: Implement GetAvailableVideoProcessorModes().
      evr/mixer: Implement GetVideoProcessorCaps().
      hlink: Use CRT allocation functions.
      hlink: Return requested interface when creating IHlinkBrowseContext instance.
      hlink: Return requested interface when creating IHlink instance.
      hlink: Return correct requested interface from HlinkCreateFromMoniker().
      hlink: Return requested interface from HlinkCreateFromString().
      mfplat: Fix alignment used by audio buffers created with MFCreateMediaBufferFromMediaType().
      wbemprox: Use CRT memory allocation functions.
      wbemprox: Remove string duplication helper.
      evr: Add IAMFilterMiscFlags interface.
      d3dxof: Build without -DWINE_NO_LONG_TYPES.
      d3dx10: Build without -DWINE_NO_LONG_TYPES.
      ddrawex: Build without -DWINE_NO_LONG_TYPES.
      ddrawex/tests: Build without -DWINE_NO_LONG_TYPES.
      ddrawex/tests: Simplify refcount helper.
      d3dxof/tests: Build without -DWINE_NO_LONG_TYPES.
      d3dxof/tests: Simplify refcount helper.
      ddraw: Build without -DWINE_NO_LONG_TYPES.
      xmllite/tests: Use wide string literals.
      gdi32: Use NtUserGetSysColor() directly.
      dwrite/tests: Use safe table access helpers for GetFontSignature().
      dwrite/tests: Fix context text.
      wusa: Remove string duplication helper.
      ddraw: Improve tracing format for unsigned fields.

Paul Gofman (5):
      msvcp140: Implement _Copy_file().
      kernelbase: Reset last error on success in CopyFileExW().
      ntdll: Increase kernel stack size.
      ntdll: Remove unused PTHREAD_STACK_MIN definition.
      crypt32: Support CERT_QUERY_OBJECT_BLOB in CRYPT_QueryEmbeddedMessageObject().

Rafał Harabień (2):
      user32: Use SWP_NOACTIVATE flag when resizing etched static control.
      user32/tests: Remove duplicated SS_*RECT static control tests.

Rémi Bernon (23):
      kernel32/tests: Add invalid pointer heap validation tests.
      kernel32/tests: Add some GetProcessHeaps tests.
      kernel32/tests: Add some HeapWalk tests.
      kernel32/tests: Cleanup and add Heap(Query|Set)Information tests.
      kernel32/tests: Add some HeapWalk tests for the LFH frontend.
      kernel32/tests: Tweak tests results for w7pro64.
      kernel32/tests: Reduce the number of GlobalAlloc size tests.
      ntdll: Use a dedicated member for shared heap flag.
      ntdll: Fix main heap struct layout and flags members.
      kernelbase: Allocate global memory handle table dynamically.
      include: Add Windows.Gaming.Input.RacingWheel runtimeclass declaration.
      include: Remove nested namespaces in windows.gaming.input.forcefeedback.idl.
      include: Add Windows.Gaming.Input.ForceFeedback.IForceFeedbackEffect interface declaration.
      dinput/tests: Add tests for joystick with many axes and units.
      dinput/tests: Add some IRawGameController_get_ForceFeedbackMotors tests.
      dinput/tests: Queue IRP when the expect ret_status is STATUS_PENDING.
      dinput/tests: Add more IForceFeedbackMotor and IAsyncOperation_boolean tests.
      windows.gaming.input: Introduce Windows.Gaming.Input.RacingWheel activation factory.
      windows.gaming.input: Implement IRacingWheelStatics interface for RacingWheel.
      windows.gaming.input: Implement ICustomGameControllerFactory interface for RacingWheel.
      windows.gaming.input: Implement IRacingWheelStatics2 interface for RacingWheel.
      windows.gaming.input: Implement RacingWheel runtimeclass stub.
      dinput/tests: Add some RacingWheel runtimeclass tests.

Timo Zuccarello (1):
      winex11.drv: Do not assign reserved virtual key 0xE0 to key codes.

Zebediah Figura (27):
      winegstreamer: Use WG_MAJOR_TYPE_UNKNOWN to mark a stream that should not be forced into a certain format.
      winegstreamer: Explicitly disable streams in start_pipeline().
      winegstreamer: Explicitly disable streams in parser_init_stream().
      winegstreamer: Enable wg_parser streams on creation.
      ntdll/tests: Add some tests for NtQueryDirectoryObject().
      ntdll: Do not write the "context" parameter of NtQueryDirectoryObject on failure.
      ntdll: Do not write the "ret_size" parameter of NtQueryDirectoryObject on failure.
      server: Return STATUS_BUFFER_TOO_SMALL instead of STATUS_BUFFER_OVERFLOW from get_directory_entry.
      kernelbase: Set user_lcid to the user locale, not the system locale.
      ntdll: Return the required length from NtQueryDirectoryObject().
      ntdll: Don't return STATUS_BUFFER_OVERFLOW if the buffer is too small to hold one entry.
      ntdll: Write a null terminator in NtQueryDirectoryObject.
      include: Add amva.h.
      include: Add videoacc.idl.
      quartz/tests: Test more VMR7 interfaces in all modes.
      quartz/tests: Check for IAMVideoAccelerator.
      quartz/vmr9: Stub IAMVideoAccelerator.
      wined3d: Factor out context_gl_apply_texture_draw_state().
      wined3d: Make wined3d_context_gl_set_draw_buffer() static.
      user.exe: Implement SetSystemTimer() using SetTimer().
      user32: Toggle the caret based on the timer ID in DispatchMessage().
      user32: Update mouse tracking information based on the timer ID in DispatchMessage().
      win32u: Remove the "proc" parameter to NtUserSetSystemTimer().
      win32u: Do not call the lparam for WM_SYSTIMER messages.
      user32: Do not call the lparam for WM_SYSTIMER messages.
      setupapi: Avoid leaking subKey in SETUPDI_AddDeviceInterfaces().
      ddraw/tests: Use winetest_push_context() in test_viewport().

Zhiyi Zhang (14):
      include: Avoid a C++ keyword for RegisterUserApiHook().
      kernel32/tests: Check against INVALID_HANDLE_VALUE for CreateActCtxW() return values.
      kernel32/tests: Add more CreateActCtx() tests.
      shell32: Activate context at ID 123 before loading control panel applets.
      rundll32: Activate context at ID 123 before calling library functions.
      appwiz.cpl: Enable visual styles.
      inetcpl.cpl: Enable visual styles.
      joy.cpl: Enable visual styles.
      ieframe: Enable visual styles.
      user32/tests: Avoid unnecessary display mode changes.
      user32/tests: Test NUMCOLORS for display DCs.
      win32u: Return -1 for NUMCOLORS with 8-bit display DCs.
      include: Add windows.foundation.metadata.idl.
      wintypes: Add stub dll.

Ziqing Hui (5):
      d2d1/tests: Add tests for GetImageLocalBounds().
      d2d1: Implement GetImageLocalBounds() for bitmap.
      d2d1/tests: Add tests for context unit mode.
      d2d1: Implement GetUnitMode().
      d2d1: Implement SetUnitMode().

--
Alexandre Julliard
[email protected]