Здравствуйте, Плескатель Устены, Вы писали:
ПУ>не совсем верно. IDispatchImpl да работает через TLB но не использует при этом Реест. Регистрация TLB в Реестре нужна для "стандартного" маршалинга (который в случае inprocess отсутствует) и для discovery фунций праметров в языках типа Visual Basic
"var obj = ...; var data = obj.GetData();" не требует никакого "стандартного" маршалинга, потому что, кроме IDispatch, скрипт ничего не запрашивает, а уж для IDispatch система и так знает, как его маршаллить. TLB нужна обработчику методов IDispatch, чтобы распознавать имена и адресовать вызовы в виртуальные методы дуального интерфейса. А эту TLB IDispatchImpl берёт именно что из Реестра. Так что проблема в реализации интерфейса IDispatch в ATL.