1 The Wine development release 7.7 is now available.
3 What's new in this release:
4 - More progress on the PE conversion of the X11 and OSS drivers.
5 - Support for UTF-8 as default Ansi codepage.
6 - Theming support for control panel applets.
9 The source is available from the following locations:
11 https://dl.winehq.org/wine/source/7.x/wine-7.7.tar.xz
12 http://mirrors.ibiblio.org/wine/source/7.x/wine-7.7.tar.xz
14 Binary packages for various distributions will be available from:
16 https://www.winehq.org/download
18 You will find documentation on https://www.winehq.org/documentation
20 You can also get the current source directly from the git
21 repository. Check https://www.winehq.org/git for details.
23 Wine is available thanks to the work of many people. See the file
24 AUTHORS in the distribution for the complete list.
26 ----------------------------------------------------------------
28 Bugs fixed in 7.7 (total 11):
30 6682 IrfanView's 4.44 Help -> About window is missing a picture on the left
31 24574 RAR Password Recovery Magic initial (registration) window is empty and doesn't allow any interaction
32 45916 x64dbg fails to load debuggee, needs ThreadScheduler_ScheduleTask
33 52223 activeCodePage utf-8 in application manifest not respected
34 52640 Steam does not display anything when using the Vulkan renderer (stack overflow from official Vulkan loader calling into dxgi)
35 52679 Anno 1602 / 1602 A.D. graphics too dark / black
36 52703 64-bit Irfanview crashes on startup
37 52763 ConEmu doesn't work with winver > Win8.1
38 52787 Invalid function prototype for "RegisterUserApiHook" when compiling for C++
39 52809 steamwebhelper.exe crashes repeatedly since 2aa4673f32
40 52825 Capella help crashes with Error "qtwebengingeprocess has serious errors"
42 ----------------------------------------------------------------
47 kernel32: Fix percentage calculation in GetSystemPowerStatus.
49 Alexandre Julliard (31):
50 ntdll: Move some duplicated locale definitions to a common header.
51 ntdll: Move more codepage conversion functions to the common header.
52 ntdll: Use the standard CPTABLEINFO structure for the Unix codepage.
53 ntdll: Support UTF-8 codepage in string conversion functions.
54 kernelbase: Use RtlMultiByteToUnicodeN in IsChar* functions.
55 kernelbase: Avoid redundant locale lookups in GetLocaleInfoA().
56 kernelbase: Support UTF-7/8 codepages in get_codepage_table().
57 kernelbase: Support UTF-8 as default Ansi codepage in MultiByteToWideChar().
58 kernelbase: Support UTF-8 as default Ansi codepage in WideCharToMultiByte().
59 ntdll: Default to UTF-8 codepage at startup.
60 ntdll: Export a few more codepage functions from ntdll.so.
61 win32u: Use the ntdll functions for codepage conversions.
62 win32u: Use character sizes in the codepage conversion functions.
63 win32u: Use CPTABLEINFO to store the Ansi/OEM codepages.
64 win32u: Support UTF-8 as the default Ansi codepage.
65 msvcrt: Fix mbcs initialization for UTF-8 codepage.
66 ntdll: Initialize the system locale on the Unix side.
67 kernelbase: Move codepage initialization to ntdll.
68 ntdll: Add support for 2019 and 2020 WindowsSettings namespaces.
69 ntdll: Support overriding the codepage from the manifest.
70 ole32: Fix sign expansion of codepage values.
71 user32: Pass a valid length to RtlUnicodeToMultiByteN/RtlMultiByteToUnicodeN.
72 user32/tests: Fix some tests that break in UTF-8 codepage.
73 gdi32: Support UTF-8 codepage in TranslateCharsetInfo().
74 winedump: Add support for dumping locale.nls.
75 include: Avoid Windows types in CodeView structure definitions.
76 winedump: Fix some incorrect uses of Unix 'long' type.
77 winedump: Avoid using DWORD in private definitions.
78 winedump: Remove unused variables.
79 winedump: Enable compilation with long types.
80 winedump: Build with nameless unions/structs.
82 Alexandros Frantzis (1):
83 win32u: Avoid iterating over a NULL window list when broadcasting.
85 Alistair Leslie-Hughes (1):
86 msado15: Return valid object in Recordset::Clone.
89 po: Update Lithuanian translation.
92 dbghelp: Downgrade a FIXME to a WARN.
95 windows.media.speech/tests: Fix some uses after release.
96 windows.media.speech/tests: Make waits non infinite.
97 windows.media.speech/tests: Remove some tests.
98 windows.media.speech/tests: Remove an unnecessary variable.
99 windows.media.speech/tests: Add tests to check if IAsyncInfo_Close is non blocking.
100 windows.media.speech: Partially implement IAsyncOperation.
101 windows.media.speech: Implement concurrency in IAsyncOperation.
102 windows.media.speech: Add ISpeechRecognitionCompilationResult.
105 include: Add IArcadeStick interface in windows.gaming.input.idl.
106 include: Add Windows.Gaming.Input.FlightStick runtimeclass declaration.
109 wow64cpu: Use different JMP instruction to work around Rosetta bug.
110 ntdll/tests: Test that threads have unique TEBs.
113 webservices: Set proper minor version for .NET Message Framing Protocol.
114 webservices/tests: Add some tests for session dictionary size.
115 webservices/tests: Add test for binary encoding nested structure handling.
116 webservices: Don't advance binary encoding reader if record type doesn't match.
117 webservices: Check for channel state in WsReceiveMessage.
118 webservices: Properly handle max session dictionary size channel property.
119 webservices: Respect session dictionary size limits on send dictionary.
120 webservices: Respect session dictionary size limits on receive dictionary.
123 include: Add some math declarations.
126 combase: Use I64 width modifier for 64-bit integers.
127 rtqwork: Trace 64-bit integers with I64 width modifier.
128 rpcrt4: Don't cast ptrdiff_t to ULONG in traces, use %I instead.
129 ntdll/tests: Simplify printf for 64 bit integers.
130 wininet/tests: Simplify printf for 64 bit integers.
131 winedbg: Simplify printf for 64 bit integers.
132 oleaut32/tests: Simplify test by using long long constants.
133 oleaut32/tests: Simplify printf for 64 bit integers.
134 kernel32/tests: Add more CreateProcess console management tests.
135 server: Use negative values for console pseudo handles.
136 kernelbase: Provide a pseudo console environment for initial CUI processes not tied to a Unix tty.
137 windowscodecs/tests: Simplify printf for 64 bit integers.
138 d3dxof: Don't cast ptrdiff_t to ULONG in traces, use %I instead.
139 d3dx10: Fix long type warnings.
140 start: Remove workaround for /exec without console.
141 kernel32/tests: Make the console tests pass if current console is shell-no-window.
142 kernel32/tests: Adapt duplicate console handle test to non-Win7 handles.
145 gdiplus: Accept newer version in OpenType header.
146 windowscodecs: pceltFetched is optional in IWICEnumMetadataItem.
149 po: Update Dutch translation.
152 conhost: Fix the spelling of a couple of comments.
153 winegstreamer: Fix the spelling of a comment.
154 crypt32/tests: Fix the spelling of an ok() message.
155 riched20/tests: Fix the spelling of a comment.
157 Gabriel Ivăncescu (26):
158 urlmon: Add basic implementation of MapBrowserEmulationModeToUserAgent.
159 mshtml: Always return the custom user agent if it has been set.
160 urlmon: Return the currently set user agent when 'version' is invalid.
161 jscript: Handle PROP_IDX in jsdisp_get_own_property.
162 jscript: Make idx props enumerable.
163 jscript: Throw proper error when invoking non-method builtin.
164 jscript: Accept DISPATCH_PROPERTYPUTREF for jsdisps.
165 mshtml/tests: Add initial tests for NULL Dispatch objects in scripts.
166 jscript: Treat NULL disps as actual null values in html mode.
167 jscript: Defer lookup to the actual locals for function statements.
168 mshtml: Implement enumerator for HTMLStyleSheetsCollection.
169 mshtml: Implement enumerator for HTMLRectCollection.
170 mshtml: Implement enumerator for HTMLFormElement.
171 mshtml: Implement enumerator for HTMLSelectElement.
172 mshtml: Move some static functions up.
173 mshtml: Implement enumerator for HTMLAttributeCollection.
174 jscript: Handle NULL return pointers in all constructors.
175 jscript: Move Set below Map.
176 jscript: Iterate through the map in a helper function.
177 jscript: Set a map entry using a helper function.
178 jscript: Pass the Map object to the callback when iterating.
179 jscript: Support passing 'this' context to the Map callback when iterating.
180 jscript: Compare numbers in a Map bitwise for equality.
181 jscript: Implement Set on top of Map.
182 jscript: Use proper error description for invalid Set 'this'.
183 jscript: Initialize hres in String constructor.
185 Giovanni Mascellani (2):
186 mfreadwrite/reader: Make the stream sample allocator callback own a reference to the source reader.
187 mfreadwrite/reader: Unset sample allocator callbacks while destroying the source reader.
190 crypt32/tests: Get rid of workarounds for old Windows versions.
191 webservices: Always set channel state to WS_CHANNEL_STATE_FAULTED when a send or receive operation failed.
194 regedit: Use wide character string literals in childwnd.c.
195 regedit: Use wide character string literals in edit.c.
196 regedit: Use wide character string literals in framewnd.c.
197 regedit: Use wide character string literals in hexedit.c.
198 regedit: Use wide character string literals in listview.c.
199 regedit: Use wide character string literals in regedit.c.
200 regedit: Use wide character string literals in treeview.c.
201 regedit: Use wide character string literals in main.c.
202 regedit: Use wide character string literals in regproc.c.
203 regedit: Mark WCHAR szFrameClass static.
204 regedit: Mark WCHAR szTitle static.
205 regedit: Remove unused WCHAR szHexEditClass from main header.
206 conhost: Save default font's pitch and family on first run.
208 Huw D. M. Davies (55):
209 wineoss: Explicitly store the channel count in the client.
210 wineoss: Dynamically size the devnode array.
211 wineoss: Use the global lock to lock the session.
212 wineoss: Introduce a stream structure.
213 wineoss: Move is_format_supported to the unixlib.
214 wineoss: Don't cache the oss_audioinfo in the client.
215 wineoss: Move the stream creation to AudioClient_Initialize().
216 wineoss: Move get_mix_format to the unixlib.
217 wineoss: Use the stream ptr to indicate the init state.
218 wineoss: Store the mute state in the stream.
219 wineoss: Use the sessions lock to lock the client's data.
220 wineoss: Use a pthread mutex for the stream lock.
221 wineoss: Use NtAllocateVirtualMemory() to alloc the buffers returned to the user.
222 wineoss: Move create_stream and release_stream to the unixlib.
223 wineoss: Move get_buffer_size to the unixlib.
224 wineoss: Move get_latency to the unixlib.
225 wineoss: Move get_current_padding to the unixlib.
226 wineoss: Store the period in 100ns units.
227 wineoss: Move timer_loop to the unixlib.
228 wineoss: Move start to the unixlib.
229 wineoss: Move stop to the unixlib.
230 wineoss: Move reset to the unixlib.
231 wineoss: Move set_event_handle to the unixlib.
232 wineoss: Move get_render_buffer to the unixlib.
233 wineoss: Move release_render_buffer to the unixlib.
234 wineoss: Move get_capture_buffer to the unixlib.
235 wineoss: Move release_capture_buffer to the unixlib.
236 wineoss: Move get_next_packet_size to the unixlib.
237 wineoss: Move get_frequency to the unixlib.
238 wineoss: Move get_position to the unixlib.
239 wineoss: Move is_started to the unixlib.
240 wineoss: Move set_volumes to the unixlib.
241 wineoss: Remove some unused members.
242 wineoss: Remove preprocessor checks for SNDCTL_SEQ_NRMIDIS.
243 wineoss: Move midi_init to the unixlib.
244 winealsa: Wait for the notify buffer to empty, rather than dropping an event.
245 wineoss: Store the sequencer fd in the driver struct.
246 wineoss: Add a temporary syscall to open and close the seq fd.
247 wineoss: Add a temporary midi_out_fm_patch syscall.
248 wineoss: Add a temporary midi_out_fm_reset syscall.
249 wineoss: Move MODM_OPEN and MODM_CLOSE to the unixlib.
250 wineoss: Use separate functions to handle MODM_DATA for FM synths and ports.
251 wineoss: Move MODM_DATA to the unixlib.
252 wineoss: Move MODM_LONGDATA to the unixlib.
253 wineoss: Move MODM_PREPARE and MODM_UNPREPARE to the unixlib.
254 winepulse: Use UINT64 handles to represent the stream.
255 winepulse: Return offsets rather than ptrs to the strings.
256 winepulse: Limit Wow64 buffer allocations to 32-bit addresses.
257 winepulse: Implement Wow64 entry points in the Unix library.
258 winealsa: Pass a client ptr to the callback instead of a stream.
259 winealsa: Use UINT64 handles to represent the stream.
260 winealsa: Return offsets rather than ptrs to the strings.
261 winealsa: Limit Wow64 buffer allocations to 32-bit addresses.
262 winealsa: Implement Wow64 mmdevapi entry points in the Unix libraray.
263 winealsa: Implement Wow64 midi entry points in the Unix library.
266 winex11: Directly use ntdll for registry access in setup_options.
267 winex11: Directly use ntdll for registry access in create_xcursor_system_cursor.
268 winex11: Directly use ntdll for registry access in X11DRV_GetICMProfile.
269 winex11: Directly use ntdll for registry access in get_display_device_reg_key.
270 winex11: Directly use ntdll for registry access in read_registry_settings.
271 winex11: Directly use ntdll for registry access in write_registry_settings.
272 win32u: Implement NtGdiGetDCDword.
273 win32u: Implement NtGdiGetDCPoint.
274 winex11: Directly use win32u for GDI functions in bitblt.c.
275 winex11: Directly use win32u for GDI functions in window.c.
276 winex11: Directly use win32u for GDI functions in graphics.c.
277 winex11: Directly use win32u for GDI functions in palette.c.
278 winex11: Directly use win32u for GDI functions in xrender.c.
279 winex11: Directly use win32u for GDI functions in more places.
280 kernelbase: Add support for CREATE_NO_WINDOW flag in CreateProcess.
281 win32u: Introduce inline helpers for NtUserCallNoParam calls.
282 win32u: Use NtUserCallHwndParam for MirrorRgn implementation.
283 win32u: Introduce inline helpers for NtUserCallOneParam calls.
284 win32u: Remove no longer needed NtUserCallOneParam exports.
285 win32u: Introduce inline helpers for NtUserCallTwoParam calls.
286 win32u: Introduce inline helpers for NtUserCallHwnd calls.
287 win32u: Introduce inline helpers for NtUserCallHwndParam calls.
288 winex11: Remove no longer needed helpers.
289 winex11: Directly use win32u for user functions in window.c.
290 user32: Get rid of __wine_set_pixel_format.
291 win32u: Move NtUserExcludeUpdateRgn implementation from user32.
292 win32u: Move NtUserChildWindowFromPointEx implementation from user32.
293 win32u: Move EnableWindow implementation from user32.
294 win32u: Introduce NtUserMapWindowPoints.
295 win32u: Move NtUserClientToScreen implementation from user32.
296 win32u: Introduce NtUserGetMessagePos.
297 winex11: Directly use win32u for user functions in mouse.c.
298 winex11: Directly use win32u for user functions in opengl.c.
299 winex11: Directly use win32u for user functions in settings.c.
300 winex11: Directly use win32u for user functions in event.c.
301 winex11: Directly use win32u in more places.
302 win32u: Move NtUserTranslateMessage implementation from user32.
303 win32u: Move CreatePopupMenu implementation from user32.
304 win32u: Move NtUserCheckMenuItem implementation from user32.
305 win32u: Move NtUserEnableMenuItem implementation from user32.
306 win32u: Move DrawMenuBar implementation from user32.
307 win32u: Move ShowOwnedPopups implementation from user32.
308 win32u: Move more WM_SYSCOMMAND handling from user32.
309 win32u: Use winuser.h inline rect helpers.
310 ntdll: Provide RtlInitUnicodeString for unixlibs.
311 win32u: Use RtlInitUnicodeString from ntdll.so.
312 winex11: Use pthread for surface locking.
313 winex11: Use pthread for keyboard lock.
314 winex11: Use pthread for synchronization in opengl.c.
315 winex11: Use pthread for palette locking.
316 winex11: Use pthread for settings locking.
317 winex11: Use pthread for synchronization in vulkan.c.
318 winex11: Use pthread for win data locking.
319 winex11: Use pthread for D3DKMT locking.
320 winex11: Use pthread for error handler locking.
321 winex11: Use pthread for xrandr locking.
322 winex11: Use pthread for xrender locking.
323 winex11: Use NtUserBuildHwndList for has_owned_popup implementation.
324 winex11: Use build_hwnd_list for X11DRV_DisplayDevices_Update implementation.
325 winex11: Use pthread_once in create_x11_physdev.
326 win32u: Expose public parts of user_thread_info in ntuser.h.
327 winex11: Use NtUserGetThreadInfo to access thread data.
328 winex11: Use TEB to store driver thread data.
329 winex11: Directly use ntdll in display_device_init mutex.
330 win32u: Move NtUserFindWindowEx implementation from user32.
331 win32u: Move NtUserSetMenuContextHelpId implementation from user32.
332 win32u: Move NtUserGetMenuItemRect implementation from user32.
333 win32u: Move NtUserSetMenu implemenetation from user32.
334 win32u: Move GetMenuInfo implementation from user32.
335 win32u: Move is_window_rect_full_screen implementation from winex11.
336 winex11: Use Unix environment variable in remove_startup_notification.
337 win32u: Move NtUserThunkedMenuInfo implementation from user32.
338 win32u: Move NtUserSetMenuDefaultItem implementation from user32.
339 win32u: Move NtUserSetClipboardViewer implementation from user32.
340 win32u: Move NtUserChangeClipboardChain implementation from user32.
341 win32u: Move EnumClipboardFormats implementation from user32.
342 winex11: Use a simple sdbm hash implementation in X11DRV_GetICMProfile.
343 winex11: Directly use ntdll in X11DRV_GetICMProfile.
346 include: Remove duplicate definitions of UOI_* macros.
349 po: Update German translation.
352 d3dxof/tests: Remove redundant skips after ok() calls.
355 include: Add CMSMPEGDecoderMFT coclass.
356 include: Add CLSID_MSVPxDecoder declaration.
359 evr/mixer: Implement GetAvailableVideoProcessorModes().
360 evr/mixer: Implement GetVideoProcessorCaps().
361 hlink: Use CRT allocation functions.
362 hlink: Return requested interface when creating IHlinkBrowseContext instance.
363 hlink: Return requested interface when creating IHlink instance.
364 hlink: Return correct requested interface from HlinkCreateFromMoniker().
365 hlink: Return requested interface from HlinkCreateFromString().
366 mfplat: Fix alignment used by audio buffers created with MFCreateMediaBufferFromMediaType().
367 wbemprox: Use CRT memory allocation functions.
368 wbemprox: Remove string duplication helper.
369 evr: Add IAMFilterMiscFlags interface.
370 d3dxof: Build without -DWINE_NO_LONG_TYPES.
371 d3dx10: Build without -DWINE_NO_LONG_TYPES.
372 ddrawex: Build without -DWINE_NO_LONG_TYPES.
373 ddrawex/tests: Build without -DWINE_NO_LONG_TYPES.
374 ddrawex/tests: Simplify refcount helper.
375 d3dxof/tests: Build without -DWINE_NO_LONG_TYPES.
376 d3dxof/tests: Simplify refcount helper.
377 ddraw: Build without -DWINE_NO_LONG_TYPES.
378 xmllite/tests: Use wide string literals.
379 gdi32: Use NtUserGetSysColor() directly.
380 dwrite/tests: Use safe table access helpers for GetFontSignature().
381 dwrite/tests: Fix context text.
382 wusa: Remove string duplication helper.
383 ddraw: Improve tracing format for unsigned fields.
386 msvcp140: Implement _Copy_file().
387 kernelbase: Reset last error on success in CopyFileExW().
388 ntdll: Increase kernel stack size.
389 ntdll: Remove unused PTHREAD_STACK_MIN definition.
390 crypt32: Support CERT_QUERY_OBJECT_BLOB in CRYPT_QueryEmbeddedMessageObject().
393 user32: Use SWP_NOACTIVATE flag when resizing etched static control.
394 user32/tests: Remove duplicated SS_*RECT static control tests.
397 kernel32/tests: Add invalid pointer heap validation tests.
398 kernel32/tests: Add some GetProcessHeaps tests.
399 kernel32/tests: Add some HeapWalk tests.
400 kernel32/tests: Cleanup and add Heap(Query|Set)Information tests.
401 kernel32/tests: Add some HeapWalk tests for the LFH frontend.
402 kernel32/tests: Tweak tests results for w7pro64.
403 kernel32/tests: Reduce the number of GlobalAlloc size tests.
404 ntdll: Use a dedicated member for shared heap flag.
405 ntdll: Fix main heap struct layout and flags members.
406 kernelbase: Allocate global memory handle table dynamically.
407 include: Add Windows.Gaming.Input.RacingWheel runtimeclass declaration.
408 include: Remove nested namespaces in windows.gaming.input.forcefeedback.idl.
409 include: Add Windows.Gaming.Input.ForceFeedback.IForceFeedbackEffect interface declaration.
410 dinput/tests: Add tests for joystick with many axes and units.
411 dinput/tests: Add some IRawGameController_get_ForceFeedbackMotors tests.
412 dinput/tests: Queue IRP when the expect ret_status is STATUS_PENDING.
413 dinput/tests: Add more IForceFeedbackMotor and IAsyncOperation_boolean tests.
414 windows.gaming.input: Introduce Windows.Gaming.Input.RacingWheel activation factory.
415 windows.gaming.input: Implement IRacingWheelStatics interface for RacingWheel.
416 windows.gaming.input: Implement ICustomGameControllerFactory interface for RacingWheel.
417 windows.gaming.input: Implement IRacingWheelStatics2 interface for RacingWheel.
418 windows.gaming.input: Implement RacingWheel runtimeclass stub.
419 dinput/tests: Add some RacingWheel runtimeclass tests.
422 winex11.drv: Do not assign reserved virtual key 0xE0 to key codes.
424 Zebediah Figura (27):
425 winegstreamer: Use WG_MAJOR_TYPE_UNKNOWN to mark a stream that should not be forced into a certain format.
426 winegstreamer: Explicitly disable streams in start_pipeline().
427 winegstreamer: Explicitly disable streams in parser_init_stream().
428 winegstreamer: Enable wg_parser streams on creation.
429 ntdll/tests: Add some tests for NtQueryDirectoryObject().
430 ntdll: Do not write the "context" parameter of NtQueryDirectoryObject on failure.
431 ntdll: Do not write the "ret_size" parameter of NtQueryDirectoryObject on failure.
432 server: Return STATUS_BUFFER_TOO_SMALL instead of STATUS_BUFFER_OVERFLOW from get_directory_entry.
433 kernelbase: Set user_lcid to the user locale, not the system locale.
434 ntdll: Return the required length from NtQueryDirectoryObject().
435 ntdll: Don't return STATUS_BUFFER_OVERFLOW if the buffer is too small to hold one entry.
436 ntdll: Write a null terminator in NtQueryDirectoryObject.
438 include: Add videoacc.idl.
439 quartz/tests: Test more VMR7 interfaces in all modes.
440 quartz/tests: Check for IAMVideoAccelerator.
441 quartz/vmr9: Stub IAMVideoAccelerator.
442 wined3d: Factor out context_gl_apply_texture_draw_state().
443 wined3d: Make wined3d_context_gl_set_draw_buffer() static.
444 user.exe: Implement SetSystemTimer() using SetTimer().
445 user32: Toggle the caret based on the timer ID in DispatchMessage().
446 user32: Update mouse tracking information based on the timer ID in DispatchMessage().
447 win32u: Remove the "proc" parameter to NtUserSetSystemTimer().
448 win32u: Do not call the lparam for WM_SYSTIMER messages.
449 user32: Do not call the lparam for WM_SYSTIMER messages.
450 setupapi: Avoid leaking subKey in SETUPDI_AddDeviceInterfaces().
451 ddraw/tests: Use winetest_push_context() in test_viewport().
454 include: Avoid a C++ keyword for RegisterUserApiHook().
455 kernel32/tests: Check against INVALID_HANDLE_VALUE for CreateActCtxW() return values.
456 kernel32/tests: Add more CreateActCtx() tests.
457 shell32: Activate context at ID 123 before loading control panel applets.
458 rundll32: Activate context at ID 123 before calling library functions.
459 appwiz.cpl: Enable visual styles.
460 inetcpl.cpl: Enable visual styles.
461 joy.cpl: Enable visual styles.
462 ieframe: Enable visual styles.
463 user32/tests: Avoid unnecessary display mode changes.
464 user32/tests: Test NUMCOLORS for display DCs.
465 win32u: Return -1 for NUMCOLORS with 8-bit display DCs.
466 include: Add windows.foundation.metadata.idl.
467 wintypes: Add stub dll.
470 d2d1/tests: Add tests for GetImageLocalBounds().
471 d2d1: Implement GetImageLocalBounds() for bitmap.
472 d2d1/tests: Add tests for context unit mode.
473 d2d1: Implement GetUnitMode().
474 d2d1: Implement SetUnitMode().