Здравствуйте Vopilka, Вы писали:
V>у меня есть 2 COM сервера dll и EXE.(ATL) V>они живут в разных процессах. V>в EXE сервер передается интерфейс объекта назовем его pTEST, находящегося в dll(в другом процессе). V>в EXE сервере мне нужен интерфейс перечисления этого TEST, и я через вызов метода get_newEnum, в котором создается объект перечисленияс помощью V> CComObject< CComEnum<IEnumVARIANT,&IID_IEnumVARIANT,VARIANT,_Copy<VARIANT> > > V>и т д и возвращаю этот самый pEnum.
V>Дальше идут вызовы pEnum->Next(...) и т д V>и как раз эти методы не хотят вызыватся — дают ошибку "the Value of ESP was properly saved accross a function call..."
Как описано в .idl свойство _NewEnum, через которое возвращается IEnumVARIANT? Стандартно оно описывается как возвращающее IUnknown, думаю и у тебя также написано
А после того как в клиенте ты получил интерфейсный указатель, ты явно запросил IEnumVARIANT, или просто скастировал указатель? В этом как раз и может быть проблема.
V>У меня есть только одна версия происходящего — это происходит из-за того что вызов идет через границу процесса, а на IEnumVariant нету Proxy/Stub объекта, потому что в пределах одного процесса все работает нормально.