# CreateCOMObject doesn't work on home edition

I can call an application named "PinPoint.Plate" with Visual Basic, Python and Mathematica version 8 but not with version 9. I can still call Excel though. How can I fix this? This is what I did:

Needs["NETLink"]
InstallNET[];
p = CreateCOMObject["PinPoint.Plate"]


gives the error:

 (* CreateCOMObject::netexcptn: A .NET exception occurred: System.Runtime.InteropServices.COMException (0x80040154): Retrieving the COM class factory for component with CLSID {9B7024E3-BD35-11D2-8EE4-0080C70A9C3D} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
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)
at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache)
at System.Activator.CreateInstance(Type type, Boolean nonPublic)

-
for starters, put a semi between the Needs and the InstallNET. –  Andreas Lauschke Mar 29 '13 at 20:40
I guess it could have to do with the .NET version that is used. Version 9 uses .NET 4.0 while Version 8 seems to use 2.x according to ShowNETConsole. I guess that somehow you need to ensure that PinPoint.Plate is registered in such a way that the .NET version used by mathematica sees it. I'm no .NET expert and don't know PinPoint.Plate, so I don't have an idea how to achieve that... –  Albert Retey Mar 30 '13 at 10:33

Needs["NETLink"];

Generally, the only time you need to worry about bit-ness issues is when you are calling non-.NET code, such as a 32-bit DLL via DefineDLLFunction or, as here, a 32-bit COM object.