Я даю вам свой опыт, даже если это может не относиться непосредственно к вашему конкретному случаю.
В Windows 7 на 64-битной версии у меня есть исполняемый файл, скомпилированный с x64, и dll, скомпилированный на 32-битном.1004 * COM-объект живет внутри dll.
exe (запущенный "обычным" пользователем) создает COM-объект (на том же компьютере), запрашивая IUnknown
, и создание успешно.Затем исполняемый файл запрашивает другой интерфейс через QueryInterface
, и он завершается неудачно с E_ACCESSDENIED
.
Если я запустил исполняемый файл "как администратор", то QueryInterface
вернется с S_OK
.
Я больше не расследовал, я подозреваю, что есть некоторая политика в отношении 32-битного - 64-битного взаимодействия.