I hope that even though my reply is late, you'll benefit from it's content.
If you change your build target from 64bit to 32bit, it should function properly.
Microsoft decided to create a separate location to maintain 32 bit registry keys on 64 bit systems. Likely, your COM object lives in this section of your registry. Programs built using a 64 bit target will not have access to the 32 bit part of your registry and therefore cannot see the relevant entry. Changing your build target to 32 bit should make that section of the registry available to your application. (http://support.microsoft.com/kb/305097)
The answer to the question "How do I get my 64 bit application to interact with my 32 bit COM components?" is not an easy question to answer but here's some guidance:
http://blog.mattmags.com/2007/06/30/accessing-32-bit-dlls-from-64-bit-code/