Purpose The goal of this project is to allow programmers who create managed applications (c#, vb.net, etc) to use the interfaces in the Windows Media Format sdk and the waveIn*, waveOut*, mixer* and MMIO* methods. If you are not a programmer, there is nothing in this project that you are going to find useful.

If you have questions, comments, or just want to offer encouragement, post a message to this project's forum at http://sourceforge.net/forum/forum.php?forum_id=829805.

Downloads including samples, library, and the complete source code are at http://sourceforge.net/project/showfiles.php?group_id=229696.

Note: While the samples are public domain, the library is licensed under LGPL.

Related libraries can be found at:



V1.1 is now available! - 16 December 2008

You can get the latest library and samples here.

What we did

We added support for the mixer* methods from here, and fixed some 64 bit issues.

There is also a new sample (GenerateLa) showing how to generate tones.

What we didn't

Back when we finished off v1.0, I was hoping that it would be possible to add support for the IWMDRM* interfaces as well. Unfortunately, it turns out this isn't going to be possible. The problem breaks down into 2 parts: Technical and legal.

In general, to use DRM, you call WMCreateReader to create a reader, then QI (or use the c# cast operator) to get an IWMDRMReader interface. Sounds simple enough. However, the QI call will FAIL, unless you have linked in a special .lib file that you have to specifically request from MS. In order to get this library, you have to sign a special agreement saying (among other things) that you promise to link the lib into your .exe file

For c# programmers, this presents 2 problems. First, you can't link in a library to your .exe, since .Net doesn't work that way. And second, without the source code (or a detailed description of what the code in that .Lib file does), there isn't any way to reproduce the functionality in c#.

So, in summary, unless MS changes their licensing AND provides docs/source for what's in that library, there isn't any way to do WMF's DRM from c#. For most people, this may not be an issue. I just hate being told I can't do something.

As a side note, DRM content *can* be played from c# in Vista using Media Foundation.

What's next

At this point, there don't appear to be any more IWM* interfaces that can be tested. And none of the other winmm.dll methods are of interest (to me, at least).  Such being the case, other than maintenance (bug fixes, etc), I guess there's nothing more to do here, other than maybe another sample or two.

If you have any thoughts or suggestions about what else should be in the library, please share them here.


V1.0 is Done! 23 September 2008

Version 1.0 has been released, and is now available in the download area.

All tests written. -- 22 September 2008

All tests are written, the docs are created, and the sample have been prepared. We should be ready to release in a day or two.

Work continues. -- 22 August 2008

We have been working our way thru the definitions. At present, we are roughly 50% of the way thru the 105 definitions. Still no completion date, but hopefully soon.

Work on v1.0 has begun! -- 4 June 2008

We have rough definitions for all the interfaces and have started writing tests. As of this time we don't have an expected release date for v1.0, but we will post updates as we go.

Get Windows Media .NET at SourceForge.net. Fast, secure and Free Open Source software downloads