Besides the Microsoft SDK documentation, the information needed to program DirectShow applications is limited. This web site supplies many of the most useful references for programming these applications in C#. In order to continue this tradition, I have created a help file (.chm) that contains ten tutorials that illustrate how DirectShow applications can be written in C#.
In general, the resources for programming DirectShow applications are scarce. In the past few months, I have written many tutorials that illustrate how to perform many common tasks in DirectShow with C#. I have put all these tutorials in one .chm file and provided access to all the source code samples from it. Moreover, the CodeProject web site has a nice messaging system to support the users of the code provided on this site, which should make these tutorials even more useful.
Using the code
I have provided a Visual Studio project file for each tutorial, and I have also included a .cmd file to compile it from the command line. Sometimes, these .cmd files contain references that need to be changed to reflect your local settings. I have mentioned these in the tutorial "readme.txt" file. Some tutorials will only run on 32-bit machines.
Points of Interest
The tutorials show how a simple multimedia player, a simple capture, a jukebox, and an append utility application can be written. Moreover, we have implemented versions of the Picture-In-a-Picture, custom allocator/presenter, custom image compositor samples from the DirectShow SDK in C#. And we have implemented the functionality of the EzRbg24 filter in C#.
Limitations and known issues
As mentioned previously, some samples will only work correctly on 32-bit machines. Moreover, I don't claim that these are optimal solutions. Many years ago, when I was teaching a VC++/MFC class, one student asked me where I was taking the code that I was using during the lectures. I replied that I had two directories with more than eighty samples in each of them, that I had written over a while. I was just picking some of these and brushed them up a little before presenting them and asking the students to modify or extend them (during the lectures or for assignments). I give these samples in the same spirit; but I'm still a long way from having more than hundred and sixty samples to chose from ;-)