It's worth mentioning that Microsoft's Managed DirectX doesn't use COM interop. They have a library with a simpler C interface that talks to the kernel portion of DirectX that the drivers plug into and the MDX library uses that - it's almost completely seperate from the DirectX that C++ developers use. Richard