Does QueryCapability really initialize the decoder? Can you get a frame out of it? I guess it never occurred to me to try.
I was OK with this for the other implementations because I figured it'd be easy enough to invalidate the decoder after successfully calling Initialize, if that turned out to be a problem.