Назначаю ли я другой или один и тот же идентификатор класса 32-разрядной и 64-разрядной версиям одного и того же IFilter?
Вопрос
Я внедрил свой собственный Microsoft Search IFilter.Мне нужны две его версии - 32-разрядная и 64-разрядная для их развертывания в соответствующих системах.
В случае IFilters для любого расширения файла я могу зарегистрировать только один идентификатор класса IFilter.Это означает, что я могу использовать только одну версию в любой системе.Таким образом, наличие двух идентификаторов класса кажется бесполезным - это только усложняет автоматическую установку.
Использую ли я один и тот же идентификатор COM-класса для обоих или использую разные идентификаторы классов?
Решение 2
В итоге мы повторно использовали один и тот же идентификатор класса для обеих версий - поскольку 32-разрядные программы в Windows 64 видят свою собственную копию HKCR, конфликта нет, и один и тот же идентификатор класса сопоставляется нужному исполняемому файлу как в 32-разрядных, так и в 64-разрядных программах.COM-сервер использует ATL, и использование того же идентификатора класса значительно упростило сценарий регистрации .rgs.
Другие советы
Всегда используйте другой CLSID.Не используйте повторно COM CLSID.Вы можете заставить их обоих использовать один и тот же IID, но всегда разный CLSID.