I created an Both threaded, ATL/COM object using VS 2003 in C++.

When I register the component on XP 32 bit machines, it correctly registers
in the registry.

However when the component is registered on 64 bit XP, the component does
not get fully registered properly. In particular, when I look at the
registry following its registration, it is completely missing the
Inprocserver32 subkey within its CLSID key. So instead of it being listed
there with ThreadingModel set to "Both" - there is no threading model
defined. As a result then the system does not treat my component as an
inproc dll. When registered on 32 bit XP this issue does not occur.

What can be causing this?

In case it matters, my component is being placed by the installer into the
\windows\syswow64 directory on the 64 bit machine. I have another component
in that directory and that one does correctly get its Inprocserver32 key
registered.

Thanks,

Mike