Class not registered error in Windows 7 for ActiveX control
January 13, 2010 | In Development |I recently had cause to use an ActiveX control in a Windows Forms project. I was actually building a WPF application, that required a specific control that was ActiveX based. This is not a very pretty thing; I wrapped the control in a Windows Forms user control within a WPF User Control.
Anyhow, this worked fine on my XP machine but not on my Windows 7 machine. The solution would compile, but when I tried to instantiate the control I received the following error in Visual Studio:
Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))
On the line:
((System.ComponentModel.ISupportInitialize)(this.myControl)).EndInit();
The reason was that the Windows 7 machine is 64-bit, while the XP one was 32-bit. The projects in the solutions need to be built to target the x86 platform. This is an option on the project properties, found from:
Project -> Properties -> Build -> Platform Target