Fixes Dark and Darker's Anti-Cheat "TavernWorker"; Original issue thread on Proton's repo [#2016590](https://github.com/ValveSoftware/Proton/issues/8208).
From the issue thread: Glaring issue seems to be the inability to load past the main menu in Dark and Darker without getting a pop-up that says "Tavern is not working! Please restart your game.", resulting in a forced exit.
I've marked this as Draft as I am not entirely sure returning the `NTSTATUS` of `NtWriteVirtualMemory` is the proper solution here (I have not found any other working solutions so-far). Returning the `NTSTATUS` of `NtQueryVirtualMemory` seems to not achieve working results, however I am not an expert by any means.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/6761
The implementation is backed by a smaller `IWinePropertySetImpl` interface for core operations (insertion, lookup, removal, iteration), which currently uses an `rb_tree` to store `HSTRING`-`IInspectable *` value pairs.
If needed, the `IWinePropertySetImpl` implementation can be later swapped out with a hash table for performance reasons, as `PropertySet` does not have an enumeration order guarantee, at least according to the MSDN docs.
--
v15: wintypes: Add stubs for IKeyValuePair<HSTRING, IInspectable *>.
wintypes: Add stubs for IIterator<IKeyValuePair<HSTRING, IInspectable *>>.
wintypes: Add stubs for IMapView<HSTRING, IInspectable *>.
wintypes: Add IIterable<IKeyValuePair<HSTRING, IInspectable *>> stubs to PropertySet implementation
wintypes: Add IObservableMap<HSTRING, IInspectable *> and stubs to PropertySet implementation.
wintypes: Add IMap<HSTRING, IInspectable *> stubs to PropertySet implementation.
https://gitlab.winehq.org/wine/wine/-/merge_requests/6766