Vibhav Pant (@vibhavp) commented about dlls/wintypes/map.c:
- FIXME( "iface %p, class_name %p stub!\n", iface, class_name );
- return E_NOTIMPL;
+}
+static HRESULT WINAPI iterator_GetTrustLevel( IIterator_IKeyValuePair_HSTRING_IInspectable *iface, TrustLevel *trust_level ) +{
- FIXME( "iface %p, trust_level %p stub!\n", iface, trust_level );
- return E_NOTIMPL;
+}
+static HRESULT WINAPI iterator_get_Current( IIterator_IKeyValuePair_HSTRING_IInspectable *iface, IKeyValuePair_HSTRING_IInspectable **value ) +{
- struct iterator *impl = impl_from_IIterator_IKeyValuePair_HSTRING_IInspectable( iface );
- struct map_view *view = impl_from_IMapView_HSTRING_IInspectable( impl->view );
- TRACE( "iface %p, value %p\n", iface, value );
- return pair_create( view->iids.pair, view->entries + impl->index, value );
Shouldn't we check if `impl->index` is still within bounds? Also, the documentation mentions that `_get_Current()` may return `E_CHANGED_STATE` if map entries have changed, I assume the PropertySet iterators never return that?