1. filter和pin既不是包容,也不是聚合。可以看成pin是filter的组成部分,是一种包含关系;pin不可能独立于filter存在。 pin一般都是在filter内部、由filter来负责创建的。这一点你可以参考baseclasses中的CTransformFilter或CTransInPlaceFilter。 在filter内部直接使用pin对象指针和使用pin接口指针都是可以的,但一般直接使用pin对象指针。pin接口指针一般是供filter以上的调用者使用的。 "在graph里面使用com对象指针还是接口指针好些? "-不太明白你的意思。如果一个接口同时被filter graph和某个filter实现,一般使用filter graph上的接口,比如IVideoWindow接口,filter graph和video renderer都实现了这个接口,但应用程序大多数情况下应该使用filter graph上的IVideoWindow接口。
2. filter类和pin类,有些是接口函数,有些则不是。你可以查看各个接口的定义情况,来区分哪些是接口函数,哪些是filter类/pin类自定义的函数。 |