у клиента иллюзию, что все
Это создает у клиента иллюзию, что все интерфейсы выставляются одним СОМ-объектом. На рис. 5.4 показаны отношения между администратором заместителей, интерфейсными заместителями и заглушкой.
Как показано на рис. 5.4, заместитель связывается с заглушкой через третий объект, называемый каналом. Канал — это поддерживаемая СОМ обертка вокруг слоя RPC на этапе выполнения. Канал выставляет интерфейс IRpcChannelBuffer
[ uuid(D5F56B60-593B-101A-B569-08002B2DBF7A), local, object ] interface IRpcChannelBuffer : IUnknown { // programmatic representation of ORPC message // программное представление сообщения ORPC typedef struct tagRPCOLEMESSAGE { void *reserved1; unsigned long dataRepresentation; // endian/ebcdic // endian /расширенный двоично-десятичный код // для обмена информацией void *Buffer; // payload goes here // полезная нагрузка идет сюда ULONG cbBuffer; // length of payload // длина полезной нагрузки ULONG iMethod; // which method? // чей метод? void *reserved2[5]; ULONG rpcFlags; } RPCOLEMESSAGE;
// allocate a transmission buffer // выделяем буфер для передачи HRESULT GetBuffer([inl RPCOLEMESSAGE *pMessage, [in] REFIID riid); // send an ORPC request and receive an ORPC response // посылаем ORPC-запрос и получаем ORPC-ответ HRESULT SendReceive([in,out] RPCOLEMESSAGE *pMessage, [out] ULONG *pStatus); // deallocate a transmission buffer // освобождаем буфер передачи HRESULT FreeBuffer([in] RPCOLEMESSAGE *pMessage); // get distance to destination for CoMarshalInterface // получаем расстояние до адресата для CoMarshalInterface HRESULT GetDestCtx([out] DWORD *pdwDestCtx, [out] void **ppvDestCtx); // check for explicit disconnects // проверяем явные отсоединения HRESULT IsConnected(void); }
Интерфейсные заместители используют метод SendReceive этого интерфейса, чтобы заставить канал послать блок запросов ORPC и получить блок ответов ORPC.
Интерфейсные заместители и заглушки являются обычными внутрипроцессными объектами СОМ, которые создаются администраторами соответственно заместителей и заглушек с использованием обычной СОМ-технологии активизации.
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий