如何从激活的对象中获取激活对象?

How to get Activation Object from a activated object?

我有一个从 MediaSource 检索到的 IMFTransform 解码器,我想知道解码器的 CLSID 以检查它是否是预期的解码器。

但是 MFT_TRANSFORM_CLSID_Attribute 只能从其激活对象中获取。 Transform Attributes

如何取回该属性值或激活对象?

转换不需要公开他们的 CLSID 并且他们不必将他们放在首位。或者在某些情况下,它们可能有 CLSID,但同时无法使用 CoCreateInstance.

直接实例化

也就是说,没有办法让 transform 报告它的 CLSID 或从它的​​激活对象中恢复有效。当然,转换可能会实现一些众所周知的接口,如 IPerist 并在那里公开 CLSID 但这不是预期的事情:转换首先很少见,然后股票转换不提供这个。