Direct3D interface are actually COM C++ interfaces... And you will probably use Com pointers or C++ class wrappers for COM pointers to handle them..
Figured out COM for the most part anyway. Not easy at all. Next question is about Pipeline and the minimum requirements for rendering. I've been struggling with this for over a year now. HLSL ->(float, POS, COLOR), but I've never actually got Direct3D to render(SUCCEEDED); Direct2D renders ok though, UI etc.