Anything doable with good old VC++/COM is possible with any .NET language, through P/Invoke. According to the start page of the latest MSDN documentation (the one for VS 2003), you can create application with .NET using DirectX 9. I haven?t investigated further.
This was first published in June 2003