Поделиться через


Функция CoGetStdMarshalEx (combaseapi.h)

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

Синтаксис

HRESULT CoGetStdMarshalEx(
  [in]  LPUNKNOWN pUnkOuter,
  [in]  DWORD     smexflags,
  [out] LPUNKNOWN *ppUnkInner
);

Параметры

[in] pUnkOuter

Указатель на управляющую точку IUnknown.

[in] smexflags

Одно из двух значений, указывающих, находится ли объединенный стандартный маршалер на стороне клиента или на стороне сервера. Эти флаги определяются в перечислении STDMSHLFLAGS .

Значение Значение
SMEXF_SERVER
0x01
Указывает на серверный агрегированный стандартный маршалер.
SMEXF_HANDLER
0x0
Указывает на стандартный маршалер на стороне клиента (обработчик).

[out] ppUnkInner

При успешном возвращении адрес указателя на интерфейс IUnknown в созданном стандартном маршалере агрегированного типа. При возникновении ошибки это значение равно NULL.

Возвращаемое значение

Эта функция возвращает S_OK.

Комментарии

Сервер вызывает CoGetStdMarshalEx , передавая флаг SMEXF_SERVER. При этом создается стандартный маршалер на стороне сервера (известный как диспетчер заглушки). Обработчик вызывает CoGetStdMarshalEx , передавая флаг SMEXF_HANDLER. При этом создается стандартный маршалер на стороне клиента (известный как диспетчер прокси-сервера). Обратите внимание, что при вызове этой функции обработчик должен передать исходный элемент управления unknown, который был передан обработчику при создании обработчика. Это будет система, реализованная для управления неизвестными. Если не передать правильный IUnknown , возвращается ошибка. При успешном выполнении возвращаемый объект ppUnkInner является управляющий неизвестным внутренним объектом. Сервер и обработчик должны хранить этот указатель и могут использовать его для вызова IUnknown::QueryInterface для интерфейса IMarshal .

Требования

   
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header combaseapi.h (включая Objbase.h)
Библиотека Ole32.lib
DLL Ole32.dll

См. также раздел

ИМаршал

IStdMarshalInfo

Упрощенный обработчик Client-Side