I want t play a video in a Window in my C# application. Looking aroundthe Internet I've found some info on how to use DirectX to accomplish that. But I've also come across comments that DirectX is deprecated, meaning that it's no longer recommended as the way to play videos.

So, what IS the recommended way to play videos in a C# application windows?

In particular I need to intercept each frame of the video before it actually gets displayed.

Are you bound to using WinForms? WPF has some nice components that will let you play videos. They actually run on DirectX underneath.

I don't think it's DirectX that's depracated, simply the managed framework for it in .NET. If you want to use DirectX still, try something like SharpDX
The toolkit is maintained quite well and is relatively up to date.