Шаг 155.
Среда программирования Visual C++.
Архитектура СОМ. Маршалинг. Специальный маршалинг

    На этом шаге мы рассмотрим специальный маршалинг.

    В некоторых приложениях стандартный маршалинг не работает. В этом случае объект сервера может поддерживать специальный маршалинг.

    Для этого в своем сервере Вам придется реализовать интерфейс IMarshal. Использование специального маршалинга исключает стандартный маршалинг. При этом СОМ требует, чтобы сервер самостоятельно формировал пакет с данными для маршалинга и передавал его в контекст клиента. СОМ создает экземпляр указанного объектом обработчика, который получает пакет и действует в качестве интеллектуального представителя клиента, проводя для него демаршалинг.

    При этом взаимодействие через границы процесса происходит так же, как и в стандартном маршалинге. Клиент не заметит, что в данном случае применен специальный (или любой другой) маршалинг В общем случае маршалинг не создает проблем разработчикам СОМ-объектов. MIDL генерирует соответствующий код для стандартных СОМ-интерфейсов, а маршалер Automation обслуживает объекты с диспетчерскими интерфейсами. Однако в некоторых случаях появляется достаточно причин для поддержки в объекте специального маршалинга. Вот некоторые из них.

    Со следующего шага мы начнем рассматривать диспетчерские интерфейсы.




Предыдущий шаг Содержание Следующий шаг