I am heat/harvesting a self-registering DirectShow DLL, that registers filters in their own ClassID/Typelib locations, but I'm also registering Audio DMOs and Video Capture filters in the devenum's Video Capture location in the registry. My DLL necessarily calls AMovieDllRegisterServer and CLSID_FilterMapper's RegisterFilter( ), both of which I think ensure some default CLSID's are in the registry, which Heat (correctly) detects as needing to be necessary to the registry, but the fragment heat creates in the wxs file is ... I guess ... wrong.
and this causes the registry value
HKEY_CLASSES_ROOT\CLSID{860BB310-5D01-11D0-BD3B-00A0C911CE86}
to necessarily be there (although this is not my video capture filter), but it puts my video capture filter's CLSID under that key, in:
HKEY_CLASSES_ROOT\CLSID{860BB310-5D01-11D0-BD3B-00A0C911CE86}\Instance{44A8B5C7-13B6-4211-BD40-35B629D9E6DF}
which causes this harvested heat code to be generated:
I am heat/harvesting a self-registering DirectShow DLL, that registers filters in their own ClassID/Typelib locations, but I'm also registering Audio DMOs and Video Capture filters in the devenum's Video Capture location in the registry. My DLL necessarily calls AMovieDllRegisterServer and CLSID_FilterMapper's RegisterFilter( ), both of which I think ensure some default CLSID's are in the registry, which Heat (correctly) detects as needing to be necessary to the registry, but the fragment heat creates in the wxs file is ... I guess ... wrong.
here's the DirectShow C++ code fragment:
and this causes the registry value HKEY_CLASSES_ROOT\CLSID{860BB310-5D01-11D0-BD3B-00A0C911CE86} to necessarily be there (although this is not my video capture filter), but it puts my video capture filter's CLSID under that key, in: HKEY_CLASSES_ROOT\CLSID{860BB310-5D01-11D0-BD3B-00A0C911CE86}\Instance{44A8B5C7-13B6-4211-BD40-35B629D9E6DF}
which causes this harvested heat code to be generated: