Функция CoReleaseMarshalData (combaseapi.h)
Уничтожает ранее маршалированные пакеты данных.
Синтаксис
HRESULT CoReleaseMarshalData(
[in] LPSTREAM pStm
);
Параметры
[in] pStm
Указатель на поток, содержащий пакет данных, который требуется уничтожить. См. раздел IStream.
Возвращаемое значение
Эта функция может возвращать стандартные возвращаемые значения E_FAIL, E_INVALIDARG, E_OUTOFMEMORY и E_UNEXPECTED, а также следующие значения.
Код возврата | Описание |
---|---|
|
Пакет данных был успешно уничтожен. |
|
Ошибка, связанная с параметром pStm . |
|
Функция CoInitialize или OleInitialize не была вызвана в текущем потоке до вызова этой функции. |
Комментарии
Примечание по безопасности. Вызов этого метода с недоверенными данными представляет угрозу безопасности. Вызывайте этот метод только для надежных данных.
- Функция считывает CLSID из потока.
- Если используется реализация маршалинга COM по умолчанию, функция получает указатель IMarshal на экземпляр стандартного unmarshaler. Если используется настраиваемое маршалинг, функция создает прокси-сервер, вызывая функцию CoCreateInstance , передавая идентификатор CLSID, который он считывает из потока, и запрашивает указатель интерфейса IMarshal к только что созданному прокси-серверу.
- Используя любой указатель интерфейса IMarshal , который он получил, функция вызывает IMarshal::ReleaseMarshalData.
- Предпринята попытка отменить удаление пакета данных, но она не удалась.
- Пакет маршалированных данных был удален из глобальной таблицы.
Обратите внимание, что не нужно вызывать CoReleaseMarshalData после успешного вызова функции CoUnmarshalInterface . эта функция освобождает данные маршалирования в рамках обработки, которую она выполняет.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows 2000 Профессиональная [классические приложения | Приложения UWP] |
Минимальная версия сервера | Windows 2000 Server [классические приложения | Приложения UWP] |
Целевая платформа | Windows |
Header | combaseapi.h (включая Objbase.h) |
Библиотека | Ole32.lib |
DLL | Ole32.dll |