Удаленный COM-вызов в обход Microsoft RPC
От: Slant Россия  
Дата: 10.10.01 13:50
Оценка:
Subj.: возможно ли такое?

Более конкретно — мне нужно (по ряду причин) производить удаленные создание и (далее) вызов объектов COM, не используя стандартных средств, таких, как DCOMCFG и дальнейший CoCreateInstance/CoCreateInstanceEx через
Microsoft RPC. Однако я не хочу полностью реализовывать marshaling (т.е. полностью писать proxy и stub для каждой функции каждого интерфейса, заниматься вручную упаковкой параметров и т.д.). Интерфейсы у меня,естественно, описаны на IDL, поэтому эта самая упаковка/распаковка параметров в том или ином виде запрограммирована MIDL'ом, вопрос в том, как ее вызвать:

— для клиента — "попросив" записать все, например, в предоставленный мной IStream (который дальше передается моим собственным транспортом на другую машину);

— для сервера — "попросив" распаковать полученные данные и вызвать реальный объект через реальный интерфейс. (Ну и, естественно, все то же — при возврате из функции.)

P.S. Потребуется еще позаботиться о правильной передаче указателей на интерфейсы при удаленных вызовах, но это — меньшая из проблем: достаточно реализовать интерфейс IMarshal в каждом объекте, причем реализация эта будет довольно простой и почти одинаковой для разных объектов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.