IEnumVARIANT и граница процесса
От: Vopilka  
Дата: 28.11.01 19:28
Оценка:
Я в первый раз в этом форуме,и хочу обратится за помощью(все когда-то бывает в первый раз:) )
Надеюсь новеньких не бьете?:)))

у меня есть 2 COM сервера dll и EXE.(ATL)
они живут в разных процессах.
в EXE сервер передается интерфейс объекта назовем его pTEST, находящегося в dll(в другом процессе).
в EXE сервере мне нужен интерфейс перечисления этого TEST, и я через вызов метода get_newEnum, в котором создается объект перечисленияс помощью
CComObject< CComEnum<IEnumVARIANT,&IID_IEnumVARIANT,VARIANT,_Copy<VARIANT> > >
и т д и возвращаю этот самый pEnum.

Дальше идут вызовы pEnum->Next(...) и т д
и как раз эти методы не хотят вызыватся — дают ошибку "the Value of ESP was properly saved accross a function call..."
У меня есть только одна версия происходящего — это происходит из-за того что вызов идет через границу процесса, а на IEnumVariant нету Proxy/Stub объекта, потому что в пределах одного процесса все работает нормально.

Можно ли как-то это исправить кроме как создавать спец. отдельный класс перчисления в dll и в get_newEnum создавать именно его, а внутри этого классая уже перенаправлять вызовы на объект созданный с помощью CComEnum....
или может проблема в чем то другом?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.