The Wine development release 4.9 is now available. What's new in this release (see below for details): - Initial support for installing Plug and Play drivers. - Support for building 16-bit modules in PE format. - A lot of code moved to the new KernelBase DLL. - Various game controller fixes. - Use higher performance system clocks if available. - Various bug fixes. The source is available from the following locations: https://dl.winehq.org/wine/source/4.x/wine-4.9.tar.xz http://mirrors.ibiblio.org/wine/source/4.x/wine-4.9.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 4.9 (total 24): 27185 Futuremark PC Mark 7 (.NET 4.0 app) fails to run with Wine-Mono (mscoree:get_runtime Unrecognized version L"v4.0.20926") 34764 .NET Framework 3.5 SP1 based WPF applications crash on direct access of MIL (Media Integration Layer) to internal bitmap struct/class impl (depends on exact layout) 36764 Rogue Squadron 3D 1.3: Unable to setup controller in-game 36981 Flexera InstallShield 20.x based installers crash in NdrProxyInitialize (Samsung Kies 3, Designspark 6.1, Exelis ENVI 5.x) 41657 CoolQ 5.x reports network error on startup due to msscript:ScriptControl_Eval stub 43738 "MegaTagmension Blanc + Neptune VS Zombies" - Character models don't render 46406 TreePad X Enterprise (single user) 12GB v7.17.0: Garbled Text When Creating or Editing a Node/Tree Name 46655 Adobe Photoshop CC 2015.5: Tabs show completely black 46682 TopoEdit crashes with unimplemented function mf.dll.MFCreateAudioRendererActivate 46849 Vietcong: taking handmap causes crash (ProcessVertices) 47044 64-bit MRAC Anti-Cheat (My.Com Warface) kernel service fails in driver entry point due to missing 'ntoskrnl.exe.{ExAcquireFastMutex,ExReleaseFastMutex}' 47085 Spellforce 3 has misplaced text in main menu 47178 Grand Prix Legends: Service papycpu2 doesn't load 47183 Grand Prix Legends: Only the first two axes are recognized 47185 `winetricks -q msxml3` hangs 47188 Gamepad input no longer works (regression) 47190 Custom protocol handler CF doesn't support aggregation 47209 Gamepad input no longer works again (regression) 47214 Oracle Java runtime 8.211 online installer crashes in WoW64 47219 "winetricks -q ie8" hangs 47222 World of Tanks 1.5.0 launcher 'WotLauncher.exe' (0.3.x) crashes with Wine-Staging 4.7 47226 Incorrect crash information displayed for unimplemented function stubs when 64-bit Wine builtins are cross-compiled in PE format (Mingw-w64, MS x64 calling convention) 47238 Osmos refuses to start with built-in msvcp90 47249 CM_Set_Class_Registry_Property should use PCVOID for buffer parameter ---------------------------------------------------------------- Changes since 4.8: Akihiro Sagawa (10): advapi32/tests: Add basic RegLoadMUIString tests. advapi32: Support the base directory parameter in RegLoadMUIString. advapi32: Improve parameter sanity checks in RegLoadMUIString. advapi32: Improve load_string to return error code. advapi32: Remove useless RegLoadMUIStringA implementation. advapi32: Return required buffer size in RegLoadMUIString. kernel32: Add traces to time zone functions. advapi32/tests: Add RegLoadMUIString tests with REG_MUI_STRING_TRUNCATE flag. advapi32: Factor out load_mui_string(). advapi32: Implement REG_MUI_STRING_TRUNCATE flag. Alexandre Julliard (70): include: Move inline assembly definitions to a new wine/asm.h header. winecrt0: Store the appropriate longjmp() function in the exception frame. winecrt0: Reimplement __wine_rtl_unwind() as a proper asm function. winecrt0: Don't build unneeded code for Windows platforms. configure: Rename WINE_CROSSTEST to WINE_CROSS_PE. configure: Don't allow using config.h when cross-compiling. dinput/tests: Remove duplicate const. dinput8/tests: Remove duplicate const. winebus.sys: Avoid ssize_t. msvcp80: Fix the spec entries of the num_put_char/short/wchar functions. msvcr: Fix the _NonReentrantPPLLock__Scoped_lock_ctor() spec entries. msvcr: Fix the event_wait() spec entries. vssapi: Fix the VSSAPI_CVssWriter_Initialize() spec entry. include: Define fastcall assembly wrappers globally. include: Define thiscall assembly wrappers globally. riched20: Declare thiscall functions as __thiscall. winebuild: Support Windows-style name mangling for fastcall functions. include: Use the __fastcall attribute directly for the Windows build. include: Use the __thiscall attribute directly for the Mingw build. include: Pass function name directly to the __ASM_STDCALL macro. winegcc: Use -static-libgcc for the Windows build. msvcp90: Use the standard -mno-cygwin build flag. msvcp100: Use the standard -mno-cygwin build flag. msvcp110: Use the standard -mno-cygwin build flag. msvcp120: Use the standard -mno-cygwin build flag. msvcp140: Use the standard -mno-cygwin build flag. vcruntime140: Use the standard -mno-cygwin build flag. msvcp60: Use the standard -mno-cygwin build flag. msvcp70: Use the standard -mno-cygwin build flag. msvcp71: Use the standard -mno-cygwin build flag. msvcp80: Use the standard -mno-cygwin build flag. msvcirt: Use the standard -mno-cygwin build flag. msvcrt20: Use the standard -mno-cygwin build flag. msvcrt40: Use the standard -mno-cygwin build flag. makefiles: Remove the check for msvcr* imports. msvcrt: Update arguments for some forwarded functions. cabarc: Remove duplicate defines. cabinet/tests: Remove duplicate defines. winebuild: Support relay debugging for PE builtin dlls. makefiles: Don't depend on cross import library if not necessary. makefiles: Use -fshort-wchar when building with msvcrt. winebuild: Don't change %fs and %gs when calling 16-bit register functions. winebuild: Store wine_ldt_copy pointer in the NE header at load time. include: Don't allow using wine/library.h with msvcrt. ntdll: Set LDR_WINE_INTERNAL flag also for PE builtins. winebuild: Use cdecl calling convention for stub exceptions. winebuild: Add 16-bit support for PE builds. makefiles: Support cross-compilation of 16-bit libraries. setupapi: Extract the 16-bit fake dll from the 32-bit PE one. winedump: Print fake dll information also for NE files. msvcrt: Add the static object files to all the msvcrt import libraries. user.exe: Avoid using libwine functions. toolhelp: Avoid using libwine functions. rundll.exe: Build with msvcrt. winhelp.exe: Build with msvcrt. winoldap.mod: Build with msvcrt. make_unicode: Add a wctype table in kernel32 for GetStringTypeW(). make_unicode: Store the C2_* values directly in the kernel32 wctype table. make_unicode: Use a two-level table for the kernel32 wctype table. make_unicode: Generate a separate table for BiDi direction type in usp10. make_unicode: Store the full BiDi direction type in the table. make_unicode: Avoid including wine/unicode.h in generated files. dwrite: Use the same BiDi direction table as usp10. gdi32: Use the same BiDi direction table as usp10. make_unicode: Remove duplicate DECLSPEC_HIDDEN. ntdll: Don't pass DLL_WINE_PREATTACH to the TLS callbacks. setupapi/tests: Avoid size_t in traces. quartz/tests: Add braces to avoid a clang warning. ucrtbase: Move the vsnprintf() wrapper function to the ucrtbase import library. makefiles: Add install dependency for PE builtins. Alistair Leslie-Hughes (6): dinput: Allow enumeration of joysticks with DirectX 3. dinput: Handle setting DIPROP_CALIBRATIONMODE mode in generic implementation. wineqtdecoder: Fix compile on MacOS. dinput: Improve returned flags in Mouse GetObjectInfo. dinput: Support DIDEVICEINSTANCE_DX3 for keyboard GetDeviceInfo. include: Add helicopter Direct Input defines. Andreas Maier (2): jscript: Implement Enumerator object. jscript/tests: Add more Enumerator tests. Andrew Eikum (4): winebus.sys: Fix report length calculation. winebus.sys: Add missing padding between hatswitch and constant. hid: Fix usage value mask. msvcrt: Implement fma and fmaf. André Hentschel (1): include: Fix ASM_CFI definition. Aurimas Fišeras (1): po: Update Lithuanian translation. Dmitry Timoshkov (11): windowscodecs: Improve compatibility of IMILBitmap interface. windowscodecs: Add support for IMILBitmapScaler interface. windowscodecs/tests: Add some tests for IMILBitmap and IMILBitmapScaler interfaces. windowscodecs: Correct IWICBitmapScaler::CopyPixels() error for not initialized case. windowscodecs: Simplify some IMILBitmapScaler forwarders. urlmon: Add support for PARSE_UNESCAPE to CoInternetParseUrl. urlmon: Add ShouldShowIntranetWarningSecband stub. urlmon: Add GetIUriPriv stub. urlmon: Add CoInternetGetBrowserProfile stub. urlmon/tests: Add a test for ProtocolCF_CreateInstance not supporting aggregation. urlmon: If ProtocolCF_CreateInstance doesn't support aggregation retry without it. Ethan Lee (1): xaudio2: Use new features from FAudio 19.06 (but keep compatibility for <=19.05). Fabian Maurer (2): gdi32: CreatePolyPolygonRgn() returns an empty region when the area is empty. setupapi: Correct function parameter for CM_Set_Class_Registry_PropertyA/W. Gijs Vermeulen (1): crypt32/tests: Fix some memory leaks (Valgrind). Hans Leidekker (1): ntdll: Fix breakpoint exception address on 64-bit Linux. Henri Verbeet (35): wined3d: Pass a wined3d_context_gl structure to context_update_tex_unit_map(). wined3d: Pass a wined3d_context_gl structure to draw_primitive_immediate_mode(). wined3d: Move the texture unit map from struct wined3d_context to struct wined3d_context_gl. wined3d: Move the "blit_vbo" field from struct wined3d_context to struct wined3d_context_gl. wined3d: Move the occlusion query fields from struct wined3d_context to struct wined3d_context_gl. wined3d: Move the fence fields from struct wined3d_context to struct wined3d_context_gl. wined3d: Move the timestamp query fields from struct wined3d_context to struct wined3d_context_gl. wined3d: Move the stream-output statistics query fields from struct wined3d_context to struct wined3d_context_gl. wined3d: Move the pipeline statistics query fields from struct wined3d_context to struct wined3d_context_gl. wined3d: Pass a wined3d_context_gl structure to context_apply_clear_state(). wined3d: Pass a wined3d_context_gl structure to context_apply_fbo_state_blit(). wined3d: Pass a wined3d_context_gl structure to context_check_fbo_status(). wined3d: Pass a wined3d_context_gl structure to context_set_draw_buffer(). wined3d: Pass a wined3d_context_gl structure to context_texture_update(). wined3d: Pass a wined3d_context_gl structure to context_bind_fbo(). wined3d: Pass a wined3d_context_gl structure to context_destroy_fbo(). wined3d: Pass a wined3d_context_gl structure to context_reuse_fbo_entry(). wined3d: Pass a wined3d_context_gl structure to context_destroy_fbo_entry(). wined3d: Pass a wined3d_context_gl structure to context_find_fbo_entry(). wined3d: Use context_acquire() in wined3d_swapchain_cs_init(). wined3d: Pass a wined3d_context_gl structure to context_apply_fbo_entry(). wined3d: Pass a wined3d_context_gl structure to context_apply_fbo_state(). wined3d: Pass a wined3d_context_gl structure to context_queue_fbo_entry_destruction(). wined3d: Pass a wined3d_context_gl structure to context_apply_compute_state(). wined3d: Use wined3d_texture_get_level_box() in wined3d_device_update_texture(). wined3d: Move the FBO fields from struct wined3d_context to struct wined3d_context_gl. wined3d: Pass a wined3d_context_gl structure to context_get_offscreen_gl_buffer(). wined3d: Pass a wined3d_context_gl structure to wined3d_context_gl_restore_pixel_format(). wined3d: Pass a wined3d_context_gl structure to context_set_pixel_format(). wined3d: Use wined3d_texture_get_level_box() in texture2d_load_texture(). wined3d: Pass a wined3d_context_gl structure to context_set_gl_context(). wined3d: Pass a wined3d_context_gl structure to context_update_window(). wined3d: Pass a wined3d_context_gl structure to context_enter(). wined3d: Pass a wined3d_context_gl structure to context_get_rt_size(). wined3d: Use wined3d_texture_get_level_box() in wined3d_texture_create(). Huw D. M. Davies (11): configure: Don't define HAVE_CLOCK_GETTIME on macOS. ntdll: Implement RtlGetSystemTimePrecise(). kernel32: Implement GetSystemTimePreciseAsFileTime() using RtlGetSystemTimePrecise(). ntdll: Use CLOCK_REALTIME_COARSE for NtQuerySystemTime() if it has sufficient resolution. kernel32: Replace macros with inline helpers. kernel32: Simplify TIME_CompTimeZoneID() by passing time as LONGLONG. kernel32: Simplify is_not_current(). kernel32: Forward GetSystemTimeAsFileTime() to NtQuerySystemTime(). ntdll: Mark monotonic_counter() as inline. ntdll: Extend NtGetTickCount() to return 64-bits. Forward kernel32 functions to it. explorer: Set the default driver to mac,x11 in all cases. Isira Seneviratne (1): po: Update Sinhala translation. Jacek Caban (12): ntoskrnl.exe: Implement ExAcquireFastMutex and ExReleaseFastMutex. ntoskrnl.exe: Implement PsGetProcessInheritedFromUniqueProcessId. ntddk.h: Add a few more declarations. urlmon/tests: Make ParseUrl call tests more strict. jscript: Allow calling eval function from external code. ntoskrnl.exe: Implement PsGetThreadProcessId. mshtml: Fix window size in IOleDocumentView::SetRect implementation. mshtml: Return rect relative to parent window in IOleDocumentView::GetRect. mshtml: Implement IOleInPlaceObjectWindowless::SetObjectRects. ntdll: Introduce wait_async helper. server: Store pending flag in async object. server: Always block overlapped device requests until driver dispatches them. Jactry Zeng (1): msscript: Partially implement IScriptControl::Eval(). Jimi Huotari (1): winegstreamer: Fix spelling of 'initialized' in a TRACE(). Józef Kucia (1): setupapi: Avoid debugstr buffer overflow. Lauri Kenttä (1): po: Update Finnish translation. Marcus Meissner (1): setupapi: Fix size to MultiByteToWideChar(). Martin Storsjo (2): msvcrt: Hook up _setjmpex for arm64 as well. ntdll: Avoid truncating a nonzero exit code to zero in unix. Matteo Bruni (15): wined3d: Avoid a GCC 8 warning. d3d9: Always allow read and write map access to non-DEFAULT buffers. d3d8: Always allow read and write map access to non-DEFAULT buffers. wined3d: Pass a wined3d_context_gl structure to context_load_numbered_arrays(). wined3d: Pass a wined3d_context_gl structure to context_update_stream_sources(). wined3d: Avoid some redundant glVertexAttrib4f() calls. wined3d: Add ARB_TEXTURE_MIRROR_CLAMP_TO_EDGE to core_extensions[]. winecfg: Don't mark glu32 as builtin-only. wined3d: Always report support for ZBIAS and MIPMAPLODBIAS raster caps in the Vulkan backend. wined3d: Report WINED3DPRASTERCAPS_MIPMAPLODBIAS only when supported. wined3d: Assign 9_x feature levels more accurately. d3d8: Check the WINED3DPRASTERCAPS_DEPTHBIAS cap bit to report D3DPRASTERCAPS_ZBIAS. ddraw: Check the WINED3DPRASTERCAPS_DEPTHBIAS cap bit to report D3DPRASTERCAPS_ZBIAS. wined3d: Get rid of WINED3DPRASTERCAPS_ZBIAS. wined3d: Report WINED3DPMISCCAPS_MRTINDEPENDENTBITDEPTHS when possible. Michael Stefaniuc (3): mfplat: Print the debug strings and not the pointers. msctf: Remove useless cast to self. kernel32/tests: Use the ARRAY_SIZE() macro. Nikolay Sivov (50): mf: Add stubs to create audio renderer sink. mf: Add support for async commands for media session. dwrite/layout: Use a helper to update layout metrics. dwrite/layout: Use array allocation helper for typography features. dwrite/font: Use existing helper for CreateFontFace(). dwrite/layout: Fix layout metrics width for whitespace-only lines. dwrite/layout: Use interface pointer in text format method traces. dwrite: Improve returned design glyph metrics. dwrite: Use array allocation helper to manage family entries. dwrite: Use array allocation helper to manage collection entries. dwrite: Use array allocation helper for in-memory loader. dwrite/analyzer: Use array allocation helper for fallback builder. dwrite: Use array allocation helper for strings object. dwrite/layout: Use array allocation helper for line metrics. dwrite/tests: Fix a typo in test message. kernelbase: Duplicate some path handling functions from shlwapi. mf/session: Add stubs for playback rate API. mf: Create presentation clock on session creation. xaudio2: Fix 32-bit build. kernelbase: Duplicate more path API from shlwapi. kernelbase: Add QISearch(). kernelbase: Duplicate some of strings functions from shlwapi. mfplat: Handle null destination for GetItem(). mf: Slightly improve topoloader Load(). kernelbase: Use a helper to get character C1 type. kernelbase: Add string handling functions from user32. kernelbase: Add LoadString() exports. kernelbase: Add some more string handling functions from shlwapi. mfplat: Return properties for system time source. mfplat: Create system clock instance per system time source. kernelbase: Add remaining string handling functions from shlwapi. mf: Add sample grabber sink stub. mf: Add IMFMediaTypeHandler stub for grabber stream. mf: Add clock state sink stub for grabber. mf: Add events support for grabber stream. mf: Add events support for grabber sink. comctl32/tooltips: Add a helper to free tool text. comctl32/tooltips: Add a helper to set tool text. comctl32/tooltips: Remove redundant condition. kernelbase: Add most of path API from shlwapi. mferror: Add some more error messages. kernelbase: Add some URL API functions from shlwapi. kernelbase: Remove helpers that are no longer necessary. kernelbase: Add more URL API functions from shlwapi. kernelbase: Add remaining path functions. kernelbase: Add GetAcceptLanguages(). kernelbase: Add remaining URL functions. kernelbase: Add SHLoadIndirectString(). kernelbase: Add some registry helpers from shlwapi. mfplat: Add timestamp support for system time source. Paul Gofman (13): ddraw/tests: Test lighting with ambient light and material in ddraw1. ddraw: Fix setting current viewport for ddraw1. ddraw: Enable lighting only if material is set in d3d_execute_buffer_execute(). wined3d: Move validate_material_colour_source() to wined3d_private.h. wined3d: Factor out compute_normal_matrix() function. wined3d: Factor out wined3d_get_material_colour_source() function. wined3d: Use the correct colour sources in process_vertices_strided(). wined3d: Move multiply_vector_matrix() to wined3d_private.h. wined3d: Implement lighting with directional lights in process_vertices_strided(). ddraw/tests: Backport test_specular_lighting() for ddraw1. wined3d: Implement point lights in process_vertices_strided(). wined3d: Implement spot lights in process_vertices_strided(). wined3d: Implement parallel point lights in process_vertices_strided(). Philip Rebohle (1): d3dcompiler: Accept a stat chunk size of 28 for reflection. Piotr Caban (13): hid: Change format of preparsed data. hidclass.sys: Remove no longer used features list. hidclass.sys: Support descriptors with over 10 individual usages in feature. hid: Set button values in HidP_SetUsages function. hid: Fix error handling in HidP_SetUsages. hidclass.sys: Limit written data to the actual report size. winebus.sys: Fix typo in endpoint name. winebus.sys: Correctly set HID device input number in device endpoint path. winebus.sys: Restore IG_ substring in gamepads endpoint path. kernel32: Add more CompareStringW tests. libwine: Add helper function to compare character weights. libwine: Decompose characters before comparing in wine_compare_string. libwine: Ignore 0 weights as described in Unicode collation algorithm. Roman Stingler (3): include: Added some process creation Flags. kernel32: Added some Numa stubs. kernel32: Add stub WerUnregisterRuntimeExceptionModule. Sven Baars (1): comctl32: Always free the tooltip text before setting it (Valgrind). Tim Schumacher (3): services: Allow reading binary registry values as DWORDs. joy.cpl: Check if effect is allocated before releasing it. joy.cpl: Fix high CPU load in FF test window. Zebediah Figura (90): quartz: Make Parser_OutputPin_BreakConnect() a local helper. winegstreamer: Make GSTOutPin_BreakConnect() a local helper. wineqtdecoder: Make QTOutPin_BreakConnect() a local helper. strmbase: Get rid of the "pfnBreakConnect" field from BaseOutputPinFuncTable. setupapi: Handle an empty string for the source file in SetupQueueCopySection(). strmbase: Remove function pointers from the IEnumPinsImpl structure. wineqtdecoder: Fix implementation of QT_GetPin(). strmbase: Determine the pin count using the GetPin() callback. strmbase: Get rid of the "pfnGetPinCount" callback. winegstreamer: Use CONTAINING_RECORD instead of casting. strmbase: Use heap_alloc_zero() in enum_pins_create(). strmbase: Don't store the media type list locally. strmbase: Get rid of the ENUMMEDIADETAILS structure. strmbase: Return void from BaseFilter_Init(). strmbase: Get rid of the "filterVtbl" parameter to TransformFilter_Construct(). strmbase: Factor out strmbase_renderer_cleanup(). quartz/videorenderer: Use strmbase_renderer_cleanup(). quartz/vmr9: Use strmbase_renderer_cleanup(). quartz/dsoundrender: Use strmbase_renderer_cleanup(). qedit/nullrenderer: Use strmbase_renderer_cleanup(). strmbase: Get rid of BaseRendererImpl_Release(). setupapi: Implement SetupDiGetDeviceInstallParams(). setupapi: Implement SetupDiSetDeviceInstallParams(). setupapi/tests: Add some basic tests for SetupDi{Get, Set}DeviceInstallParams(). setupapi: Implement SetupDiGetActualSectionToInstallA(). setupapi: Define the correct platform extensions for each architecture. setupapi/tests: Add tests for SetupDiGetActualSectionToInstall(). setupapi: Return the section name in SetupDiGetActualSectionToInstall() even if it doesn't exist. quartz: Use CONTAINING_RECORD instead of casting. qedit/samplegrabber: Correctly delegate IUnknown methods on the IMemInputPin interface. amstream: Reimplement IMediaStreamFilter::EnumPins(). amstream: Reimplement IBaseFilter methods in the media stream filter. setupapi/tests: Add some tests for SetupInstallFile(). setupapi: Retrieve the default destination path in SetupInstallFile(). setupapi: Clear the Win32 error if no copy was necessary. setupapi: Don't fail a queued copy if no copy was necessary. quartz/tests: Add some tests for IMediaSeeking on the filter graph. qcap/tests: Clean up test_AviMux_QueryInterface(). qcap/tests: Add some tests for IMediaSeeking on the AVI mux filter. strmbase/transform: Don't expose IMediaSeeking from the filter. strmbase/transform: Don't expose IMediaPosition from the filter. strmbase/transform: Don't expose IQualityControl from the filter. quartz/filtergraph: Don't require IAMFilterMiscFlags when performing seek operations. mshtml: Fix a copy-paste error. mshtml: Avoid passing invalid memory to DispCallFunc(). msxml3: Load the version 1 typelib before trying to access it. setupapi: Add an initial implementation of SetupDiBuildDriverInfoList(). setupapi: Check for compatible platforms in SetupDiBuildDriverInfoList(). setupapi: Implement directory search in SetupDiBuildDriverInfoList(). setupapi: Implement SetupDiEnumDriverInfo(). setupapi/tests: Add tests for building and enumerating driver lists. setupapi: Add a semi-stub implementation of SetupDiSelectBestCompatDrv(). widl: Fix proxy vtbl generation in -Oi mode. rpcrt4: Fail with CO_E_OBJNOTCONNECTED when trying to call methods on a disconnected proxy. rpcrt4: Factor out get_handle_desc_size(). rpcrt4: Handle exceptions in a larger portion of NdrClientCall(). rpcrt4: Use a FINALLY block to clean up in do_ndr_client_call(). quartz/tests: Add some tests for IFilterGraph::SetDefaultSyncSource(). quartz/filtergraph: Don't require IAMFilterMiscFlags in IFilterGraph::SetDefaultSyncSource(). quartz/videorenderer: Don't expose IAMFilterMiscFlags. quartz/dsoundrender: Don't expose IAMFilterMiscFlags. qedit/nullrenderer: Don't expose IAMFilterMiscFlags. strmbase: Rename BaseFilter_Destroy() to strmbase_filter_cleanup(). strmbase: Return void from strmbase_filter_cleanup(). evr: Use strmbase_filter_cleanup(). strmbase/transform: Use BaseFilter_Destroy(). qcap/avimux: Use BaseFilter_Destroy(). setupapi: Implement SetupDiRegisterCoDeviceInstallers(). setupapi: Add a basic implementation of SetupDiCallClassInstaller(). setupapi: Implement custom class installers in SetupDiCallClassInstaller(). setupapi: Call DIF_DESTROYPRIVATEDATA when deleting a device. setupapi: Implement class co-installers in SetupDiCallClassInstaller(). setupapi: Implement device-specific co-installers in SetupDiCallClassInstaller(). qcap/smartteefilter: Use strmbase_filter_cleanup(). qcap/avico: Use strmbase_filter_cleanup(). qcap/audiorecord: Use strmbase_filter_cleanup(). qedit/samplegrabber: Use strmbase_filter_cleanup(). quartz/parser: Use strmbase_filter_cleanup(). setupapi: Implement SetupDiInstallDriverFiles(). setupapi: Process interface sections in SetupDiInstallDriverFiles(). setupapi: Implement SetupDiInstallDeviceInterfaces(). strmbase: Use an unsigned int for the GetPin() callback. strmbase: Rename pfnGetPin to filter_get_pin. strmbase: Remove unnecessary calling convention from the filter_get_pin() callback. strmbase: Reimplement BaseFilterImpl_Release() using a destructor callback. quartz/filesource: Use BaseFilterImpl_Release(). setupapi/tests: Clean up and expand tests for SetupCopyOEMInf(). setupapi: Check all INF files in SetupCopyOEMInf(). setupapi: Always fill output parameters in SetupCopyOEMInfA(). setupapi: Fix error handling in SetupInstallServicesFromInfSection(). Zhiyi Zhang (7): gdi32/tests: Add D3DKMTOpenAdapterFromGdiDisplayName tests. gdi32/tests: Add D3DKMTOpenAdapterFromHdc tests. gdi32/tests: Add D3DKMTCloseAdapter tests. gdi32/tests: Add D3DKMTCreateDevice tests. gdi32/tests: Add D3DKMTDestroyDevice tests. gdi32/tests: Add D3DKMTCheckVidPnExclusiveOwnership tests. gdi32/tests: Add D3DKMTSetVidPnSourceOwner tests. -- Alexandre Julliard julliard@winehq.org