Назначаю ли я другой или один и тот же идентификатор класса 32-разрядной и 64-разрядной версиям одного и того же IFilter?

StackOverflow https://stackoverflow.com/questions/1687061

Вопрос

Я внедрил свой собственный Microsoft Search IFilter.Мне нужны две его версии - 32-разрядная и 64-разрядная для их развертывания в соответствующих системах.

В случае IFilters для любого расширения файла я могу зарегистрировать только один идентификатор класса IFilter.Это означает, что я могу использовать только одну версию в любой системе.Таким образом, наличие двух идентификаторов класса кажется бесполезным - это только усложняет автоматическую установку.

Использую ли я один и тот же идентификатор COM-класса для обоих или использую разные идентификаторы классов?

Это было полезно?

Решение 2

В итоге мы повторно использовали один и тот же идентификатор класса для обеих версий - поскольку 32-разрядные программы в Windows 64 видят свою собственную копию HKCR, конфликта нет, и один и тот же идентификатор класса сопоставляется нужному исполняемому файлу как в 32-разрядных, так и в 64-разрядных программах.COM-сервер использует ATL, и использование того же идентификатора класса значительно упростило сценарий регистрации .rgs.

Другие советы

Всегда используйте другой CLSID.Не используйте повторно COM CLSID.Вы можете заставить их обоих использовать один и тот же IID, но всегда разный CLSID.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top