Identifing error: 0x800442B6, occurs when attempting to use COM component

126 views Asked by At

On one particular computer I get an error that I don't get on any other computer when I attempt to create an instance of a COM object using .NET.

I don't get the error when I use the same COM component through VBA in Excel on this computer.

I've searched for the error but have not found anything. I mean nothing, crickets, I'm in space screaming and no one can hear me...

I've written a couple of console applications that use different versions of the .NET framework and always get back the same error code.

Full error:

System.Runtime.InteropServices.COMException (0x800442B6): Creating an instance of the COM component with CLSID {2B763B2C-9F4C-4A65-8F47-338CB685D759} from the IClassFactory failed due to the following error: 800442b6 Exception from HRESULT: 0x800442B6. at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark) at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
at System.Activator.CreateInstance(Type type, Boolean nonPublic) at System.Activator.CreateInstance(Type type)

Thanks!

2

There are 2 answers

0
turnip_cyberveggie On BEST ANSWER

Mr. Passant was correct. A bit of pushing on the vendor of the COM component resulted in obtaining the meaning of the error which helped me resolve the issue. Perhaps Mr. Passant would like to provide an answer that I could mark as correct to give him credit. Thanks!

1
noseratio On

You can try the following:

  • Add the code to log the time-stamp of the error.
  • Then run Process Monitor, run your application and study the log which surrounds that moment of time.
  • Filter the Process Monitor's output the way you only see the API calls which have failed.

While it's unlikely that you'd literally see 800442B6 in the Process Monitor log, it still may give you an idea on which chain of the Win32 API calls has led to the error. Most likely, it will be a failed file I/O or Registry API. Compare the log to that of the machine where your app runs successfully.