The intention is to have ICreateTypeLib2_fnDeleteTypeInfo() fully implemented such that Cashbooks can run on Linux. I believe this should fix a number of other Windows apps that lean heavily on oleaut32.dll as well.
--
v4: dlls/oleaut32: Mostly mirror fnFindName impl in typelib.c
dlls/oleaut32: Use common and correct identifiers in typelib.c
https://gitlab.winehq.org/wine/wine/-/merge_requests/7203
* * *
BTW I did try to create tests to make sure we connect collection the same way Windows does it. Problem is `GUID_ConnectToDLSCollection` is not gettable. Then I tried to create a `IDirectMusicPerformance` implementation and intercept `DownloadInstrument`. Interestingly Windows `IDirectMusicSegment::Download` doesn't call `DownloadInstrument` at all, instead it downloads instruments through a private, undocumented interface. So there seems to be no way to test this.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/7230
Startup and lock counts in native Windows are separate, and the lock count does not decrease when an async result is freed if the platform has been started.
--
v3: rtworkq: Do not unlock the platform when async result objects are freed if the platform is started.
rtworkq: Introduce a platform startup count.
rtworkq/tests: Test work queue.
mfplat/tests: Test platform startup and lock counts.
mfplat/tests: Test mixing of MF platform functions with their Rtwq equivalents.
mfplat/tests: Introduce a helper to check the platform lock count.
mfplat/tests: Release callback2 in test_event_queue().
https://gitlab.winehq.org/wine/wine/-/merge_requests/7174
The Windows Bluetooth stack uses private IOCTLs in order to set the [discoverability](https://learn.microsoft.com/en-us/windows/win32/api/blueto… and [connectability](https://learn.microsoft.com/en-us/windows/win32/api/bluetoo… status of a local radio, and to start/stop the device inquiry procedure. This MR introduces 3 wine-specific IOCTL codes for the same purposes, as most applications seem to the Win32 API itself for these operations:
* IOCTL_WINBTH_RADIO_SET_FLAG
* IOCTL_WINEBTH_RADIO_START_DISCOVERY
* IOCTL_WINEBTH_RADIO_STOP_DISCOVERY
--
v6: winebth.sys: Call bluez_watcher_close as part of bluetooth_shutdown.
winebth.sys: Implement IOCTL_WINEBTH_RADIO_STOP_DISCOVERY.
winebth.sys: Implement IOCTL_WINEBTH_RADIO_START_DISCOVERY.
winebth.sys: Implement IOCTL_WINEBTH_RADIO_SET_FLAG.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7216
The intention is to have ICreateTypeLib2_fnDeleteTypeInfo() fully implemented such that Cashbooks can run on Linux. I believe this should fix a number of other Windows apps that lean heavily on oleaut32.dll as well.
--
v3: dlls/oleaut32: Implement SetHelpStringContext()
dlls/oleaut32: Add DeleteTypeInfo() base-cases in typelib.c
dlls/oleaut32: Allow TLB_get_typeinfo_by_name() to also return the index
dlls/oleaut32: Disambiguate pIndex in typelib.c
dlls/oleaut32: Avoid possible infinite loops and invalid mem access
dlls/oleaut32: Simplify SLTG_DoRefs() readability
dlls/oleaut32: Consistently use TLB_REF_NOT_FOUND
dlls/oleaut32: Consistently use lstrcmpiW() while looking for names
dlls/oleaut32: Simplify loop in ITypeLib2_Constructor_MSFT()
https://gitlab.winehq.org/wine/wine/-/merge_requests/7203
In cases where MF is already shut down, simply forwarding MFShutdown() to
RtwqShutdown() will corrupt the Rtwq lock count if async result objects
still exist, because they hold a lock. JR East Train Simulator does this.
--
v2: mf: Release the sample if stream sink processing fails.
https://gitlab.winehq.org/wine/wine/-/merge_requests/7174