Exception from HRESULT: 0x80004002 (E_NOINTERFACE)

9

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 ...

c#
exception
com
vb6
asked on Stack Overflow Mar 20, 2012 by Michael • edited Mar 20, 2012 by JimmyPena

3 Answers

5

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

answered on Stack Overflow Oct 7, 2013 by Saddam Mohsen
4

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

[STAThread]
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
0

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