This does break compatibility in a few subtle ways. For example, the native headers do not require COBJMACROS, and they include objbase.h. It's not clear to me that these differences matter, but if they do, we can add widl extensions to account for them.