Функция CoGetStdMarshalEx (combaseapi.h)
Создает агрегированный стандартный маршалер для использования с упрощенными обработчиками на стороне клиента.
Синтаксис
HRESULT CoGetStdMarshalEx(
[in] LPUNKNOWN pUnkOuter,
[in] DWORD smexflags,
[out] LPUNKNOWN *ppUnkInner
);
Параметры
[in] pUnkOuter
Указатель на управляющую точку IUnknown.
[in] smexflags
Одно из двух значений, указывающих, находится ли объединенный стандартный маршалер на стороне клиента или на стороне сервера. Эти флаги определяются в перечислении STDMSHLFLAGS .
Значение | Значение |
---|---|
|
Указывает на серверный агрегированный стандартный маршалер. |
|
Указывает на стандартный маршалер на стороне клиента (обработчик). |
[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 |