I sent this now because it is mostly boilerplate, with some small non-invasive patches at the end. First patch is basically all stubs except forwards from IHTMLEventObj2 getters (so it doesn't break current behavior).
-- v3: mshtml/tests: Fix VariantClear on uninitialized variable. mshtml: Implement `url` prop for StorageEvent objs. mshtml: Send proper legacy storage event with actual url. mshtml: Don't expose "restricted" members. mshtml: Expose the other IHTMLEventObj* interfaces.