我已经构建了一个自定义的DirectShow过滤器,实现了CSource。
class Myfilter : public CSource
{
~MyFilter(){ delete everything;}
}
当我在GraphStudio中使用这个过滤器时,我可以正确地删除它,析构函数也被正确调用。
当我通过COM实例化创建我的过滤器时,我不能再使用delete删除它。
IBaseFilter *pFilter = NULL;
HRESULT hr = CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&pFilter));
如果删除pFilter,将不会调用析构函数。
我如何为我的过滤器调用自定义析构函数?