This would significantly reduce the maintenance burden for consumers of this library (particularly a11y). I think that I should fix this before moving on to non-a11y work, as this would eliminate a whole bunch of esoteric crap such as ArrayData and typelibs. This stems from some discoveries I made about how CoGetInterceptor works. In order to use OICF info, we need to do a few things: 1) Specify InterfaceHelperUser registry values; 2) Ensure that proxies are constructed via ole32!ComPs_NdrDllGetClassObject instead of rpcrt4!NdrDllGetClassObject.
A couple of challenges that make this project less than straightforward: 1) I don't think we should be setting InterfaceHelperUser registry values globally; this type of stuff should exist only within our own process; 2) We don't control all of the affected proxy DLLs that need alternate construction.