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


Функция ReleaseStgMedium (ole2.h)

Освобождает указанный носитель хранилища.

Синтаксис

void ReleaseStgMedium(
       LPSTGMEDIUM unnamedParam1
);

Параметры

unnamedParam1

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

None

Remarks

Функция ReleaseStgMedium вызывает соответствующий метод или функцию для освобождения указанного носителя хранилища. Используйте эту функцию во время операций передачи данных, где структуры среды хранения являются параметрами, такими как IDataObject::GetData или IDataObject::SetData. Помимо определения типа носителя хранилища, эта структура определяет соответствующий метод выпуска для освобождения носителя хранилища, когда он больше не нужен.

StGMEDIUM обычно передается из одного текста кода в другой, например в IDataObject::GetData, в котором вызываемый может выделить среду и вернуть ее вызывающему объекту. ReleaseStgMedium обеспечивает гибкость в том, принадлежит ли принимающему тексту кода среду или же исходный поставщик среды по-прежнему владеет ею. В этом случае получающий код должен сообщить поставщику, что он может освободить среду.

Когда исходный поставщик среды отвечает за освобождение среды, поставщик вызывает ReleaseStgMedium, указывая среду и соответствующий указатель IUnknown в качестве элемента структуры punkForRelease . В зависимости от типа освобождаемого носителя хранилища выполняется одно из следующих действий, за которым следует вызов метода IUnknown::Release для указанного указателя IUnknown .

Средний Действие ReleaseStgMedium
TYMED_HGLOBAL Нет.
TYMED_GDI Нет.
TYMED_ENHMF Нет.
TYMED_MFPICT Нет.
TYMED_FILE Освобождает строку имени файла с помощью стандартных механизмов управления памятью.
TYMED_ISTREAM Вызывает IStream::Release.
TYMED_ISTORAGE Вызывает IStorage::Release.
 

Поставщик указывает, что получатель среды отвечает за освобождение среды, указывая значение NULL для элемента структуры punkForRelease . Затем получатель вызывает ReleaseStgMedium, который выполняет вызов, как описано в следующей таблице, в зависимости от типа освобождаемого носителя хранилища.

Средний Действие ReleaseStgMedium
TYMED_HGLOBAL Вызывает функцию GlobalFree для дескриптора.
TYMED_GDI Вызывает функцию DeleteObject для дескриптора.
TYMED_ENHMF Удаляет расширенный метафайл.
TYMED_MFPICT Содержащийся в нем hMF удаляется с помощью функции DeleteMetaFile ; затем сам дескриптор передается в GlobalFree.
TYMED_FILE Освобождает файл диска, удаляя его. Освобождает строку имени файла с помощью стандартных механизмов управления памятью.
TYMED_ISTREAM Вызывает IStream::Release.
TYMED_ISTORAGE Вызывает IStorage::Release.
 

В любом случае после вызова ReleaseStgMedium указанный носитель хранилища становится недопустимым и больше не может использоваться.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header ole2.h
Библиотека Ole32.lib
DLL Ole32.dll
Набор API ext-ms-win-com-ole32-l1-1-3 (появилось в Windows 10 версии 10.0.10240)

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

STGMEDIUM