Функция 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) |