On Tue Apr 9 22:57:09 2024 +0000, Jacek Caban wrote:
There is a whole range of solutions between checking for class ID in dispex functions and per-property vtbl. By following your logic, from dispex.c point of view, you may have at most two types of properties: internal or external. Representing that distinction doesn't need a per-property vtbl. Looking at it from a different perspective, we already handle multiple types of properties represented by `prop_type_t`. One way of thinking about external properties is that it's another type on that list, except there is no `dispex_prop_t` to store it, so it's a meaning of NULL prop instead. (Maybe we'd even want to optionally offer storage for external implementations, for example for overrides, in which case we may even want `dispex_prop_t` entry for that.)
Right, but that doesn't really help when we don't allocate them at all. The other issue is how to deal with the mshtml objects (well, not related to mshtml itself, just happens for those object types). I'll comment on that below.