Не называйте CoCreateInstance CLSID_FilterGraph ... это бессмысленно. CoCreateInstance CLSID_CreateCaptureGraph2 и опубликуйте код, который вы используете в CoCreateInstance, и любое возвращенное вами значение HRESULT.
Следующий код «должен» работать:
ICaptureGraphBuilder2* pCapture = NULL;
HRESULT hr = CoCreateInstance( CLSID_CaptureGraphBuilder, NULL, CLSCTX_INPROC_SERVER, IID_ICaptureGraphBuilder2, (void**) &pCapture) ;
Если он не ищет HRESULT, возвращенный за час, и скажите нам, что это такое (или посмотрите сами).
Кроме недопустимых параметров, единственное, что может вас здесь подвести, это то, что класс не зарегистрирован. Если это так, то это в значительной степени неправильно ... это не должно быть возможным.