I hope what I said make sense. Looking further in the newest version of DirectX, I found out that Microsoft stops providing a type library making it impossible to use it as a COM component. Which in my opinion makes sense since it is purely a C++ library. Therefore my recommendation of wrapping directly the C++ API you need from DirectX makes a lot of sense. The direct benefit is that your code should migrate easily from a version of DirectX to the next.