Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Can't instantiate COM component in C# - error 80070002

I'm attempting to instantiate a Windows Media Player COM object on my machine:

Guid mediaPlayerClassId = new Guid("47ac3c2f-7033-4d47-ae81-9c94e566c4cc");
Type mediaPlayerType = Type.GetTypeFromCLSID(mediaPlayerClassId);
Activator.CreateInstance(mediaPlayerType); // <-- this line throws

When executing that last line, I get the following error:

System.IO.FileNotFoundException was caught
  Message="Retrieving the COM class factory for component with CLSID {47AC3C2F-7033-4D47-AE81-9C94E566C4CC} failed due to the following error: 80070002."
  Source="mscorlib"
  StackTrace:
       at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck)
       at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache)
       at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache)
       at System.Activator.CreateInstance(Type type, Boolean nonPublic)
       at System.Activator.CreateInstance(Type type)
       at MyStuff.PreviewFile(String filePath) in F:\Trunk\PreviewHandlerHosting\PreviewHandlerHost.cs:line 60
  InnerException: 

This same code works on other developer machines and end user machines. For some reason, it only fails on my machine. What could be the cause?

like image 659
Judah Gabriel Himango Avatar asked Jan 24 '23 12:01

Judah Gabriel Himango


2 Answers

80070002 is a File Not Found error.

My guess is your machine is missing a dependency. Try running the com component through depends.exe to see if you have all of the required libraries installed.

like image 192
Reed Copsey Avatar answered Jan 26 '23 00:01

Reed Copsey


Well, 0x80070002 means File not found, so I'd check to see whether the DLL pointed to in the COM registration actually exists on your machine

like image 21
Ana Betts Avatar answered Jan 26 '23 02:01

Ana Betts