Маршаллинг от COM к COM+
От: Мельников Дмитрий Сергеевич Россия  
Дата: 01.02.02 07:16
Оценка:
Кто нибудь занимался маршаллингом интерфейсов? Как передать указатель локального COM серверному COM+ объекту?

Насколько я понимаю последовательность при маршаллинге следующая
CreateSteamOnHGlobal
CoMarshalInterface
GetHGlobalFromStream
полученный HGLOBAL как раз и передают. Для этого у того объекта, которому передают указатель на интерфейс, создают скажем метод Method1([in] HGLOBAL gl) и уже внутри этого метода производится unmarshalling.

Все это прекасно работает при передаче указателя на интерфейс от COM к COM. Но при передаче указателя от COM к COM+ возникает проблема. При компиляции в библиотеке типов параметр типа HGLOBAL меняется на wireHGLOBAL, что представляет собой указатель на union _userHGLOBAL, которая содержит в себе еще одну структуру с непроизносимым названием. Так вот как с этим бороться? Что это за структуры такие? В MSDN об этом почти не упоминается. Зачем все так усложнять? Может надо как-то по другому маршаллить?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.