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.
-- v13: wintypes: Implement IMapView methods get_Size, HasKey, Lookup, Split for PropertySet. wintypes: Invoke MapChanged event handlers from PropertSet on entry removal and Clear(). wintypes: Invoke MapChanged event handlers from PropertySet on insertion. wintypes: Implement get_Current() for the IIterator implementation obtained from PropertySet. wintypes: Implement IIterator methods MoveNext() and get_HasCurrent() for PropertySet. wintypes: Implement IMap methods HasKey, get_Count, Remove, GetView for PropertySet.
This merge request has too many patches to be relayed via email. Please visit the URL below to see the contents of the merge request. https://gitlab.winehq.org/wine/wine/-/merge_requests/6766