477 lines
25 KiB

The Wine development release 7.9 is now available.
What's new in this release:
- Preliminary work towards PE conversion of macOS driver.
- A number of fixes for test failures on Windows.
- Various bug fixes.
The source is available from the following locations:
Binary packages for various distributions will be available from:
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.9 (total 35):
14841 ntdll:file tests are flaky
19183 "make test" still fails on d3d9/tests/visual.c
28220 kernel32/process.ok: test fails when redirected
28508 user32:monitor tests fail occasionally
34782 crypt32/chain tests crash with gcc-4.8.1 (win64)
39346 Lego Rock Raiders crashes on startup (d3drm_device_init doesn't handle device version 3 case)
45959 Editpad Lite 7 GUI not rendered correctly
45960 Editpad Lite 7 displays empty boxes instead of text in some menus
49285 PNotesPortable crashes inside WritePrivateProfileStructW
50462 Ulead Photo Explorer 8.5 crashes on startup (needs {4a2286e0-7bef-11ce-9bd9-0000e202599c} CLSID_CMpegAudioCodec)
51104 mf:mf crashes on Windows + AMD/NVidia
51283 d3d8:device breaks evr:evr on w7u-2qxl
51297 d3d8:visual & d3d9:visual, test_sample_mask() fails on Nvidia (cw-gtx560)
51298 d3d8:visual: lighting_test() fails on Windows 10 >= 2004
51376 Wine causes PC to lock or crash wine when loading more than 1 VST addon into WaveLab 6
51612 Stellaris launcher (Paradox) does not launch
51680 nsi:nsi test_ip_neighbour() fails on unreachable link local entry
51783 The ieframe:webbrowser output is too big in Wine
51827 d3dx10_34:d3dx10 crashes on all versions of Windows
52686 DateAdd not implemented
52751 `winetricks nocrashdialog` no longer works properly with Wine 7.5(but works with 7.4)
52761 mscoree:mscoree test fails without a display or console
52821 Cxbx Reloaded needs unimplemented function msvcp140_atomic_wait.dll.__std_atomic_wait_direct
52848 Mavis Beacon Teaches Typing 15: Typed characters not spaced correctly
52874 win32u change prevents chromium from starting
52892 The 64-bit ntdll:thread fails on w7pro64 and w864
52908 mf:mf - The 64-bit test_wma_decoder() fails on 64-bit Debian 11 + Intel
52914 mf:mf - The 64-bit test_h264_decoder() fails on 64-bit Debian 11 + Intel GPU
52937 msvcr110:msvcr110 fails on Windows with the UTF-8 codepage
52961 crypt32:str - test_CertGetNameString() fails on Windows 7
52969 mshtml:script fails on up-to-date Windows 8.1 machines
52970 kernelbase:process breaks lz32:lzexpand_main on Windows 1809+
52975 VTFEdit fails to start: err:module:LdrInitializeThunk "MSVCP80.dll" failed to initialize, aborting
53004 63ce060 causes a white border line in winecfg
53015 winscp bookmark adding error
Changes since 7.8:
Alexandre Julliard (2):
kernelbase: Move get_language_sort() to avoid forward declarations.
kernelbase: Cache the sortid for each locale.
Alistair Leslie-Hughes (7):
d3drm: Support IDirect3D3 when creating device.
include: Add TF_TMF/TMAW defines.
dwmapi: Clear DWM_TIMING_INFO structure before returning.
d3drm: IDirect3DRMMeshBuilder2 Get/SetQuality.
d3drm: IDirect3DRMTexture3 Get/SetDecalOrigin.
d3drm: IDirect3DRMTexture3 Get/SetColors.
d3drm: IDirect3DRMTexture3 Get/SetShades.
Andrew Eikum (5):
mfplat: Allow NULL length pointer in IMFAttributes::GetAllocatedString.
mfplat: Consolidate stream and file IMFByteStream vtables.
mfplat: Simplify IMFByteStream async Read/Write methods.
mfplat: Consolidate stream and file IMFByteStream Read/Write callback vtables.
mfplat/tests: Add tests for IMFByteStream position.
Anton Baskanov (5):
include: Add IMpegAudioDecoder definition.
winegstreamer: Add IMpegAudioDecoder stub to MPEG audio decoder.
winegstreamer: Register MPEG audio decoder.
quartz/tests: Add tests for MPEG audio decoder sample timestamps.
winegstreamer: Set sample timestamps in MPEG audio decoder.
Bernhard Kölbl (11):
windows.media.speech: Add a missing trace to async_operation_create.
windows.media.speech/tests: Make the IAsyncInfo_Close block test more consistent.
windows.media.speech/tests: Remove some unreliable ref checks.
windows.media.speech/tests: Add a test for IAsyncOperation_get_Completed.
windows.media.speech: Rename async_operation to async_inspectable.
windows.media.speech/tests: Remove a inconsistent ref check.
windows.media.speech: Rename impl_from_IAsyncInfo to async_inspectable_impl_from_IAsyncInfo.
windows.media.speech/tests: Retype AsyncOperationCompletedHandler to IInspectable.
windows.media.speech/tests: Add await helper for IAsyncOperation.
windows.media.speech/tests: Make use of a helper function for IAsyncInfo checking.
windows.media.speech/tests: Add some recognition tests.
Brendan Shanks (10):
ntdll/tests: Fix thread test failure on Windows.
include: Add WINE_ALLOC_SIZE attribute to CoTaskMemRealloc().
include: Add WINE_ALLOC_SIZE attribute to RtlReAllocateHeap().
include: Add WINE_ALLOC_SIZE attribute to ExAllocatePool functions.
include: Add WINE_ALLOC_SIZE attribute to MmAllocate functions.
include: Add __WINE_MALLOC attribute and use it for allocation functions.
include: Add __WINE_DEALLOC attribute and use it for allocation functions.
crypt32/tests: Fix mismatched deallocation function.
ntdll: Use 32-bit stack in alloc_fs_sel().
ntdll: Avoid truncating pointer to 32-bits in get_cpu_area().
Charles Davis (6):
configure: Check for struct icmpstat.
nsiproxy.sys: Implement IPv6 icmpstats get_all_parameters on Mac OS and BSD.
nsiproxy.sys: Implement IPv6 ipstats get_all_parameters on Mac OS and BSD.
d3d11/tests: Test logic op.
d3d11: Implement ID3D11Device1::CreateBlendState1().
ntdll: Implement idle time query for Mac OS.
Connor McAdams (2):
oleacc/tests: Add tests for retrieving an IAccessible contained within a Dynamic Annotation wrapper.
oleacc: Add support for retrieving an HWND from accNavigate to WindowFromAccessibleObject.
Dmitry Timoshkov (2):
d2d1: Implement ID2D1DeviceContext::CreateImageBrush().
d2d1/tests: Add some tests for ID2D1DeviceContext::CreateImageBrush().
Drew Ronneberg (1):
ole32: Remove obsolete -D_OLE32_ from Makefile.in.
Eric Pouech (12):
winepulse.drv: Use correct integral type.
winepulse.drv: Enable compilation with long types.
winecoreaudio: Enable compilation with long types.
capi2032: Enable compilation with long types.
winspool: Enable compilation with long types.
winevulkan: Enable compilation with long types.
winedbg: Introduce struct data_model to describe the various models for base types.
winedbg: Add 'set' command to change data model.
dbghelp: Let symt_basic be trans-module and nameless.
dbghelp: Fix conversion of dwarf's basic types into dbghelp's basic types.
dbghelp: Set correct basic types definition.
include: Use Mingw64's __uuidof when present.
Fabian Maurer (1):
kernel32: Prevent null pointer dereference in WritePrivateProfileStructW.
François Gouget (4):
shell32: Shelllink: Make the create_lnk() failure messages unique.
comctl32/tests: Use winetest_push_context() in tooltip:test_customdraw().
mstask/tests: Ignore the compare_trigger_state() return value.
mstask/tests: Fix the compare_trigger_state() failure lines.
Gabriel Ivăncescu (8):
mshtml/tests: Fix Number toLocaleString test on updated Win 8.1.
jscript: Handle detached scope objects 'this' in all calls.
jscript: Pass undefined 'this' instead of null in ES5 mode.
mshtml: Expose IHTMLDOMImplementation2 members in IE9+ modes.
mshtml: Implement HTMLDOMAttribute2's name property.
mshtml: Implement window.cancelAnimationFrame.
mshtml/tests: Add test for clearing timers with id zero.
mshtml: Convert varAsync to bool if needed.
Georg Lehmann (3):
winevulkan: Prevent infinite recursion in make_vulkan.
winevulkan: Update to VK spec version 1.3.213.
winevulkan: Update to VK spec version 1.3.214.
Gijs Vermeulen (1):
shell32/tests: Use 'shellpath' as tmpfile name in PathResolve tests.
Hans Leidekker (1):
msi/tests: Fix an intermittent test failure.
Henri Verbeet (2):
maintainers: Update the Direct3D section.
maintainers: Update the Direct2D section.
Huw D. M. Davies (1):
winecoreaudio: Remove DWORDs from the midi syscall interface.
Jacek Caban (35):
win32u: Move default WM_GETICON implementation from user32.
win32u: Move default WM_PAINT implementation from user32.
win32u: Move more default window commands from user32.
win32u: Move default WM_ERASEBKGND implementation from user32.
win32u: Move default WM_WINDOWPOSCHANGING implementation from user32.
win32u: Handle sys color brushes in fill_rect.
user32: Remove no longer used WINPOS_WindowFromPoint.
winemac: Directly use ntdll in setup_options.
winemac: Directly use ntdll for querying display settings.
winemac: Directly use ntdll to write display settings.
winemac: Directly use ntdll for display device mutex.
winemac: Directly use ntdll in get_display_device_reg_key.
winemac: Directly use ntdll for registry access in init_original_display_mode.
winemac: Directly use ntdll for registry access in write_display_settings.
winemac: Directly use ntdll for registry access in create_original_display_mode_descriptor.
winemac: Directly use ntdll for registry access in copy_system_cursor_name.
winemac: Use pthread for display locking.
winemac: Use pthread for GDI device locking.
winemac: Use pthread for keyboard list locking.
winemac: Use pthread for cursor cache locking.
winemac: Use pthread for synchronization in opengl.c.
winemac: Use pthread for window data locking.
winemac: Use pthread_once for wine_vk_init.
win32u: Move NtUserSetWindowPlacement implementation from user32.
win32u: Move NtUserSetInternalWindowPos implementation from user32.
win32u: Export NtUserGetWindowPlacement.
win32u: Move desktop window proc implementation from user32.
win32u: Introduce DesktopWindowProc driver entry point.
winex11: Implement DesktopWindowProc driver entry point.
winemac: Implement DesktopWindowProc driver entry point.
winemac: Directly use win32u for GDI functions in image.c.
winemac: Directly use win32u for GDI functions in mouse.c.
winemac: Directly use win32u for GDI functions in opengl.c.
winemac: Directly use win32u for GDI functions in surface.c.
winemac: Directly use win32u for GDI functions in window.c.
Jactry Zeng (4):
include: Add MIL/DWM HRESULT codes.
dbghelp: Use RtlGetVersion() for system version detection instead.
dwmapi: Use RtlGetVersion() for system version detection instead.
dwmapi: Partially implement DwmGetCompositionTimingInfo().
James McDonnell (2):
include: Add ID2D1PathGeometry1 definition.
d2d1: Add a stub for ID2D1PathGeometry1.
Jan Sikorski (2):
wined3d: Reduce the size of staging BO's for texture uploads.
wined3d: Don't do a full cleanup when waiting for a command buffer.
Jinoh Kang (1):
wineusb.sys: Remove erroneous call to LeaveCriticalSection() in add_usb_device.
Julian Klemann (1):
ws2_32: Add stub for SIO_ENABLE_CIRCULAR_QUEUEING in WSAIoctl().
Louis Lenders (1):
msvcr80: Update manifest resource.
Martin Storsjö (3):
ntdll: Fix a typo in a log message for arm unwind data.
ntdll: Fix accidentally used 64 bit types in signal_arm.c.
msvcrt: Hook up __C_specific_handler and __jump_unwind for arm.
Matteo Bruni (7):
d3dx9/tests: Test D3DXAssembleShader() with both terminated and not terminated include data.
d3dcompiler/asm: Parse negative numbers with a whitespace after the sign.
d3dx9/mesh: Make use of more proper types.
d3dx9/mesh: Split skin header and weights parse functions.
d3dx9/shader: Use more proper integer types.
d3dx9/xfile: Don't unnecessarily use long integer type.
d3dx9: Build without -DWINE_NO_LONG_TYPES.
Nikolay Sivov (26):
mf/session: Do not request more samples when SA sample becomes available.
mfplat/sample: Fix use-after-free of a critical section.
evr/sample: Avoid a race condition when releasing a tracked sample.
evr/sample: Use explicit critical section for release handling.
kernelbase/tests: Close mapping in MapViewOfFile3 test.
mfplat: Allow NULL size pointer in IMFAttributes::GetAllocatedBlob().
d3drm/tests: Build without -DWINE_NO_LONG_TYPES.
mfreadwrite/reader: Allocate output samples on read requests.
vbscript: Implement DateSerial().
mfreadwrite/reader: Propagate resource sharing mode to the sample allocator.
include: Move minidump types to a separate header.
winedump: Output minidump streams in order they appear in the file.
winedump: Cleanup minidump output helpers.
winedump: Add support for dumping handle data stream from minidumps.
winedump: Add support for ThreadInfoListStream stream.
vbscript: Implement DateAdd().
winedump: Add support for dumping UnloadedModuleListStream.
vbscript: Implement Weekday().
vbscript: Handle null arguments in DateSerial().
dwrite/opentype: Fix GPOS PairSet array offset.
ntdll/tests: Add a bit more tests for VM functions.
kernel32/tests: Extend VirtualAllocEx() tests.
kernelbase/tests: Add some VirtualAlloc2() tests.
kernelbase: Fix VirtualAlloc2() when called with NULL process handle.
ntdll/tests: Add a basic test for MEM_RESERVE_PLACEHOLDER.
kernelbase: Add SetThreadInformation().
Paul Gofman (18):
crypt32/tests: Handle CERT_NAME_SEARCH_ALL_NAMES_FLAG being unsupported before Win8.
ntdll: Fix allocation size in grow_logical_proc_ex_buf().
ntdll: Move init_cpu_info() below create_logical_proc_info().
ntdll: Refactor logical processor info manipulation functions.
ntdll: Collect logical processor info at process start.
rsaenh: Use CRT memory allocators.
rsaenh: Handle uneven hash data updates sizes for CALG_MAC.
rsaenh: Factor out block_encrypt() function.
rsaenh: Store key state in hash data for _MAC hash algorithm.
rsaenh: Factor out alloc_key() function.
rsaenh: Allow importing bigger RC2 keys.
rsaenh: Output FIXME when HMAC hash algorithm is not found.
nsiproxy.sys: Update interface table only if find_entry_from_{luid|index} fails.
nsiproxy.sys: Finish search once found in convert_luid_to_unix_name().
nsiproxy.sys: Update interface table only if LUID is not found in convert_luid_to_unix_name().
nsiproxy.sys: Update interface table only if LUID is not found in convert_unix_name_to_luid().
nsi: Allocate a small buffer at once in NsiAllocateAndGetTable().
iphlpapi: Don't request unused dynamic interface data.
Pedro Perdigão (2):
user32/tests: Test an out-of-order RECT in RedrawWindow().
win32u: Allow an out-of-order RECT in RedrawWindow().
Philip Allison (1):
uiautomationcore: Fix header compatibility with C++.
Piotr Caban (5):
msvcr110/tests: Fix setlocale test failure on systems with UTF-8 locales enabled.
msvcrt: Reject UTF-8 locales in setlocale function.
oleacc: Store test IAccessible data in structure.
oleacc: Add IAccessible refcount tests.
msvcr120: Add missing _StructuredTaskCollection destructor spec file entry.
Robert Wilhelm (1):
vbscript: Implement CDate().
Rémi Bernon (83):
winegstreamer: Move MFT registration list out of static scope.
winegstreamer: Register the video processor transform.
mf/tests: Tweak topology loader tests results based on the video processor presence.
mf/tests: Update a broken IMFMediaSink_AddStreamSink result check.
dinput/tests: Wait for the expected report to actually be pending.
windows.gaming.input: AddRef on the returned async handler in get_Completed.
windows.gaming.input: Reset spare CS pointer before deleting it.
windows.gaming.input: Use case insensitive compare when looking for devices.
windows.gaming.input: Register Windows.Gaming.Input.ForceFeedback classes.
windows.gaming.input: Implement stub ConstantForceEffect runtimeclass factory.
ntdll: Lock heap critical section outside of HEAP_IsRealArena.
ntdll: Split HEAP_IsRealArena to heap_validate and heap_validate_ptr.
ntdll: Split RtlAllocateHeap to a separate heap_allocate helper.
ntdll: Split RtlFreeHeap to a separate heap_free helper.
ntdll: Split RtlReAllocateHeap to a separate heap_reallocate helper.
ntdll: Split RtlSizeHeap to a separate heap_size helper.
ntdll: Introduce new block metadata access helpers.
ntdll: Use block size helpers in heap_size.
ntdll: Cleanup HEAP_FindSubHeap and rename it to find_subheap.
ntdll: Check subheap sizes for consistency before using them.
ntdll: Rewrite RtlWalkHeap and enumerate large blocks.
dinput/tests: Increase async bool handler wait timeout.
windows.gaming.input: Implement and instantiate ConstantForceEffect runtimeclass stubs.
windows.gaming.input: Implement IForceFeedbackEffect interface for ConstantForceEffect.
windows.gaming.input: Add a type parameter to force_feedback_effect_create.
windows.gaming.input: Implement IForceFeedbackMotor_LoadEffectAsync.
windows.gaming.input: Implement IForceFeedbackMotor_TryUnloadEffectAsync.
ntdll: Use heap_validate_ptr in validate_block_pointer.
ntdll: Simplify validate_block_pointer.
ntdll: Simplify validate_large_arena.
ntdll: Simplify validate_used_block.
ntdll: Simplify validate_free_block.
hidclass.sys: Clear the buffer passed to IOCTL_HID_GET_DEVICE_DESCRIPTOR.
winexinput.sys: Clear the buffer passed to IOCTL_HID_GET_DEVICE_DESCRIPTOR.
dinput: Store the user_format field inline in struct dinput_device.
dinput: Return an HRESULT from hid_joystick_device_try_open.
dinput: Rename This to device in dinput_device_alloc.
ntdll: Remove unused QUIET/NOISY constants and parameters.
ntdll: Use block helpers to iterate blocks in heap_validate.
ntdll: Use next_block helper to iterate in heap_set_debug_flags.
ntdll: Check that ptr is in committed blocks in find_subheap.
ntdll: Use next_block helper in heap_reallocate.
dinput/tests: Add some Windows.Gaming.Input.ForceFeedback.PeriodicForceEffect tests.
dinput/tests: Add some Windows.Gaming.Input.ForceFeedback.RampForceEffect tests.
dinput/tests: Add some Windows.Gaming.Input.ForceFeedback.ConditionForceEffect tests.
windows.gaming.input: Implement Windows.Gaming.Input.RampForceEffect runtimeclass.
windows.gaming.input: Implement Windows.Gaming.Input.PeriodicForceEffect runtimeclass.
windows.gaming.input: Implement Windows.Gaming.Input.ConditionForceEffect runtimeclass.
mf/tests: Move WMA decoder aggregation tests from wmadmod.
wmadmod: Remove unnecessary DLL.
ntdll: Increase heap large block min size for sizeof(void *) == 8.
ntdll: Fail to allocate large blocks if heap isn't growable.
ntdll: Simplify the fallback case in heap_reallocate.
ntdll: Create free block after updating the size in HEAP_ShrinkBlock.
ntdll: Cleanup HEAP_ShrinkBlock and rename it to shrink_used_block.
ntdll: Update block unused_bytes in shrink_used_block.
dinput/tests: Remove IAsyncOperation reference count checks.
windows.gaming.input: Always assume at least two force feedback axes.
windows.gaming.input: Implement IForceFeedbackEffect_(get|put)_Gain.
windows.gaming.input: Implement IConstantForceEffect_SetParameters(WithEnvelope).
windows.gaming.input: Implement IRampForceEffect_SetParameters(WithEnvelope).
windows.gaming.input: Implement IPeriodicForceEffect_SetParameters(WithEnvelope).
windows.gaming.input: Implement IConditionForceEffect_SetParameters.
dinput: Make sure converted direction values are always positive.
ntdll: Ignore back pointer when validating free block pattern.
ntdll: Use block helpers in subheap_notify_free_all.
ntdll: Rename local variables in heap_reallocate.
ntdll: Rename local variables in heap_allocate.
ntdll: Rename HEAP_FindFreeBlock size parameter.
ntdll: Use block size helpers in heap_reallocate.
winebus.sys: Add support for PID effect gain.
windows.gaming.input: Implement IForceFeedbackEffect_(Start|Stop).
windows.gaming.input: Implement IForceFeedbackEffect_get_State.
windows.gaming.input: Ignore IDirectInputDevice8_GetDeviceState failures.
kernel32/tests: Mark activatableClass wrong xmlns test as broken on w1064v1909.
combase: Use CRT memory allocation functions.
combase: Lookup activatable class library in the activation context.
ntdll: Mask block flags when computing HEAP_InsertFreeBlock size.
ntdll: Set ARENA_FLAG_FREE flag in HEAP_CreateFreeBlock.
ntdll: Move the main subheap after the free lists.
ntdll: Return an entry pointer when looking for a free list.
ntdll: Remove entries from the free list in HEAP_FindFreeBlock.
ntdll: Cleanup HEAP_FindFreeBlock and rename it to find_free_block.
Stefan Dösinger (7):
wined3d: Move clear box clipping to cpu_blitter_clear.
wined3d: Separate mapping from data writing in surface_cpu_blt_colour_fill.
wined3d: Prepare wined3d_format_convert_from_float for > 32bpp formats.
wined3d: Add support for sysmem-clearing float32 formats.
wined3d: Support CPU clear of float16 formats.
wined3d: Mark some d3d9 formats as normalized formats.
wined3d: Make normalized format handling more generic in wined3d_format_convert_from_float.
Sven Baars (1):
d3dx10/tests: Disable a PreloadGlyphs test for d3dx10_34.
Torge Matthies (5):
ntdll: Use correct output buffer size in RtlpNtEnumerateSubKey.
ntdll: Calculate buffer sizes from registry structs correctly.
win32u: Calculate buffer sizes from registry structs correctly.
win32u: Query basic instead of full key information to get the LastWriteTime.
msvcr120: Add tests for _StructuredTaskCollection.
Zebediah Figura (18):
xslt: Use win32config.h from the correct directory.
wineusb.sys: Mark transfer_cb() as LIBUSB_CALL.
wineusb.sys: Avoid hard-coding ID string lengths.
wineusb.sys: Trace the type in query_id().
wineusb.sys: Expose composite device interfaces.
wined3d: Trace bind flags in wined3d_texture_init().
include: Constify the RAWINPUTDEVICE pointer parameter to RegisterRawInputDevices().
shlwapi/tests: Fix a test failure with the UTF-8 code page.
dinput: Store the device_format field inline in struct dinput_device.
dinput: Factor out the dinput_device_init() call into dinput7_CreateDeviceEx().
dinput: Rename dinput_device_init() to dinput_device_init_device_format().
dinput: Return E_OUTOFMEMORY on allocation failure in hid_joystick_create_device().
dinput: Allocate the dinput_device structure in the caller to dinput_device_alloc().
dinput: Pass a single GUID pointer to hid_joystick_device_open().
dinput: Pass the device instance directly to hid_joystick_device_(try_)open.
quartz/systemclock: Use timeGetTime() to retrieve the current time.
maintainers: Add a GStreamer section.
maintainers: Add a Windows Media Format section.
Zhiyi Zhang (10):
maintainers: Add myself to some sections.
win32u: Fix a memory leak.
include: Add D3DKMTQueryVideoMemoryInfo() definition.
gdi32/tests: Add D3DKMTQueryVideoMemoryInfo() tests.
winex11.drv: Open a Vulkan device for D3DKMTOpenAdapterFromLuid().
gdi32: Implement D3DKMTQueryVideoMemoryInfo().
wined3d: Move kernel mode adapter handle from wined3d_output to wined3d_adapter.
dxgi: Implement dxgi_adapter_QueryVideoMemoryInfo() with D3DKMTQueryVideoMemoryInfo().
wined3d: Fill fake adapter video memory usage.
dxgi/tests: Test adapter video memory budget notification.
Ziqing Hui (6):
d2d1: Add stubs for ID2D1EffectContext.
d2d1: Implement ID2D1EffectContext_GetDpi().
d2d1: Implement LoadVertexShader().
include: Add defines for D2D1_PROPERTY_BINDING.
d2d1/tests: Introduce create_factory().
uuid: Add d2d1effectauthor.h.
Alexandre Julliard