Our product contains a VC++ ATL in-proc COM server with two COM-exposed classes - ClassA and ClassB. This COM server is added into an Install Shield 2008 installer package and "COM Extract at Build" property is set for the component.
ClassA and ClassB are exposed in exactly identical manner by the component - there's an .rgs file for each, both .rgs files are compiled into the component resources and CAtlModule::UpdateRegistryFromResourceS() is invoked for both of them.
However when we run regsvr32 on the COM server both classes are exposed to the registry correctly but when we run installation of the package only one of them is exposed by Install Shield.
How does Install Shield discover which changes to the registry it is to make? What should we check to detect the source of the problem?