Getting the factory COM class for a component with CLSID {...} failed due to the following error: 80040154

I use DirectShowLib and SampleGrabber to capture video frames of an AVI file. I accomplish this using a graph builder and a couple of filters. Everything worked fine, I was able to initialize the graph and filters.

Then I added the code to get some video information such as Dimension, Frame rate etc. For this I used IMediaDet. But when I try to initialize it:

Type t = Type.GetTypeFromCLSID(new Guid("65BD0710-24D2-4ff7-9324-ED2E5D3ABAFA")); IMediaDet mediaDet = (IMediaDet)Activator.CreateInstance(t); 

Activator.CreateInstance(t) throws an exception:

Fetching a factory COM class for a component with CLSID {65BD0710-24D2-4FF7-9324-ED2E5D3ABAFA} failed due to the following error: 80040154.

I do not think that his problem is with the assembly, since the filters and graph builder are initialized perfectly. Anyone have any idea, or is there any other API that I can use to collect AVI file data such as sizes, frame rate, video length?

+1
source share
2 answers

I think you were mistaken in the manual. It is close to the one supported by qedit.dll, 65BD0711-24D2-4FF7-9324-ED2E5D3ABAFA, you are disabled by one digit.

+1
source

0x80040154 - the class is not registered - usually this means one of two things: the CLSID is wrong or the DLL / EXE that implements this class is not registered (correctly) on the computer.

You can check the registry under HKCR / CLSID to see if it is actually registered on the computer.

0
source

All Articles