See commit message for differences from V1.
I'd like to send a smaller patch, but I feel like this functionality is pretty irreducible. The method bodies all have to be modified by the time you add an alternate destination.
Didn't touch encoding property: "The encoding property has no effect for BSTR or DOM output" [1]
[1] https://docs.microsoft.com/en-us/previous-versions/windows/desktop/ms764660(...)
thanks, Jefferson