But it was still ambiguous as I explained.
If you mean the "zoom" example, I'd appreciate for some details. That one should already use `IHTMLCSSStyleDeclaration` interface, not `IHTMLStyle*` ones.
But since we pass the mshtml-internal tid (called iid in args) which is opaque to jscript, I don't really see why this is better than passing the `func_info_t` directly? Well IMO passing the pair is already more complex and requires more lookups, more args, etc, but that's just me.
`get_dispex_from_this` is one thing, going through the interface take cares of that. For that part, you could just replace the argument in my branch.
But we should also somehow make sure that the hook is safe to call. By binding function info to the exact object instance, we guarantee that it's safe to call `impl_from_*` from hooks. If you accept any function info as an input, you need to somehow validate that it's safe to call it. Something like moving QI earlier would only partially mitigate that. I'm open to other approaches, but unless I'm missing something, there is no such validation in your current branch.
It seems to me that things like 1ffeaa446613 come from some variation of solution to that problem. Maybe it was needed in earlier version, but it shouldn't be needed with "this" being resolved on jscript side. It's no longer arbitrary when it's used for a `IJSDispatchHost` call. I would suggest to try removing it.