Jacek Caban (@jacek) commented about dlls/mshtml/mshtml_private.h:
HRESULT (*next_dispid)(DispatchEx*,DISPID,DISPID*); HRESULT (*get_prop_desc)(DispatchEx*,DISPID,struct property_info*);
- /* Used when the object has props it has to fill prior to enumeration, or if it's volatile to not cache it (return S_FALSE then) */
- HRESULT (*fill_props)(DispatchEx*);
This seems weird to have both this and `next_dispid`. Is the plan to replace it entirely? Otherwise, why not do the filling in `next_dispid(DISPID_STARTENUM)` instead?
Also, I think you're missing some volatile objects, AFAIR some containers with indexed properties have mutable length. For sake of this commit, you could probably just check if the object has `next_dispid`. For a more precise distinction, we could have a flag in the object descriptor.