I'm going to approve this, though I know @julliard doesn't like these global headers very much, leaving the decision to him.
FWIW I think this is not only going to be useful for that macro, but also that it could be interesting to share more between WinRT modules like for instance all the w.f.collections implementations, the async objects, etc...
I was thinking about having something like the strmbase library for WinRT, but I wasn't sure if we could find another way to have a shared header, other than having it in the public global headers.