Exception from HRESULT: 0x80004002 (E_NOINTERFACE)


I'm in charge of the maintenance of a C# application (VS 2005). This C# applications calls a dll ("mydll.dll"). I needed to make a few changes on the dll in question.

I have the file "mydll.vbp" that was written in Visual Basic 6.0. I made my changes in Visual Studio and, then, "made "mydll"" from the Visual Basic interface.

The problem is that, now, at each time I try to instance a class from "mydll.dll" in debbuger mode in C#, I have the following "InvalidCastException"

Unable to cast COM object of type mydll.ClassFrommydll to interface type mydll._ClassFrommydll'. This operation failed because the QueryInterface call on the COM component for the interface with IID '{384FB79F-B636-4655-9441-8222692AB8AE}' failed due to the following error: No such interface supported (Exception from HRESULT: 0x80004002 (E_NOINTERFACE)).

I tried to re-reference the dll in question ... but that does not change anything.

Any idea on what it could come from ?

Many many thanks to all of yopu who can help. Have been stuck with this problem for days now. Start to feel the pressure ...

asked on Stack Overflow Mar 20, 2012 by Michael • edited Mar 20, 2012 by JimmyPena

3 Answers


mark the main class [STAThread] and your problem will be solved

answered on Stack Overflow Oct 7, 2013 by Saddam Mohsen

I ran into this exact problem using the IBM Dll's.

static void Main(string[] args)

Fixed the issue for me with all COM interfaces being usable and the exception cleared

answered on Stack Overflow Dec 11, 2018 by Ashetynw

Remove all GUIDs and "ComVisible" attributes from the class, then switch the [assembly: ComVisible(true)] attribute in the AssemblyInfo-File to 'true'.

answered on Stack Overflow Mar 20, 2012 by Rumplin

User contributions licensed under CC BY-SA 3.0