The docs for IMFMediaEngineEx::GetResourceCharacteristics are confusing. Does it return a "bitwise OR of zero or more flags"? Or discrete values? For example, does 3 mean "live" + "seekable"? Or "pauseable"? Or does pauseable imply live + seekable?
It looks like a design bug.
And while you are at it, how about creating an enum for the values?