Has anyone managed to successfully implement a WMS DataSourcePlugin in C#? I want to stream WMV/WMA content from a database via a C# API and this seemed like the only way to do it. There is a note on the MSDN site that this can only be done with C++ but it's a set of COM interfaces so I don't see how WMS would know the difference. Any feedback on alternatives would also be appreciated. I've checked out VLC but don't want to GPL our app and am not sure if it would even work for this. I've also checked out Darwin but it doesn't look like it will stream WMV/WMA content.
I had to redefine some of the COM wrappers in C# to get it to properly pass out parameters between managed and unmanaged code. I believe that I've (almost) fully rewritten the sample implementation from C++ to C#, but am still unable to stream a file from disk in a test implementation.
If it's any help, I can provide the output of my (custom) log file for the IWMSMediaContainer object when I attempt playback. In summary, in the GetTransferParameters-Read cycle, it reads the file header, then reads the first 128 bytes, then jumps to the end of the file, then back to the beginning, then exits without really playing anything. I wonder if I'm getting the return values for GetTransferParameters wrong but i can't see any problem there.