ReleaseStgMedium 함수(ole2.h)
지정된 스토리지 매체를 해제합니다.
구문
void ReleaseStgMedium(
LPSTGMEDIUM unnamedParam1
);
매개 변수
unnamedParam1
반환 값
없음
설명
ReleaseStgMedium 함수는 적절한 메서드 또는 함수를 호출하여 지정된 스토리지 매체를 해제합니다. 스토리지 중간 구조가 IDataObject::GetData 또는 IDataObject::SetData 와 같은 매개 변수인 데이터 전송 작업 중에 이 함수 를 사용합니다. 이 구조는 스토리지 매체의 유형을 식별하는 것 외에도 더 이상 필요하지 않을 때 스토리지 매체를 해제하기 위한 적절한 Release 메서드를 지정합니다.
호출된 사람이 매체를 할당하고 호출자에게 반환할 수 있는 IDataObject::GetData와 같이 코드의 한 본문에서 다른 본문으로 STGMEDIUM을 전달하는 것이 일반적입니다. ReleaseStgMedium 은 코드의 수신 본문이 매체를 소유하는지 또는 매체의 원래 공급자가 여전히 소유하고 있는지 여부에 대한 유연성을 허용합니다. 이 경우 수신 코드는 공급자에게 매체를 해제할 수 있음을 알려야 합니다.
매체의 원래 공급자가 매체를 해제할 책임이 있는 경우 공급자는 ReleaseStgMedium을 호출하여 medium 및 적절한 IUnknown 포인터를 punkForRelease 구조체 멤버로 지정합니다. 해제되는 스토리지 매체의 유형에 따라 다음 작업 중 하나가 수행된 다음 지정된 IUnknown 포인터에서 IUnknown::Release 메서드를 호출합니다.
중간 | ReleaseStgMedium 작업 |
---|---|
TYMED_HGLOBAL | 없음 |
TYMED_GDI | 없음 |
TYMED_ENHMF | 없음 |
TYMED_MFPICT | 없음 |
TYMED_FILE | 표준 메모리 관리 메커니즘을 사용하여 파일 이름 문자열을 해제합니다. |
TYMED_ISTREAM | IStream::Release를 호출합니다. |
TYMED_ISTORAGE | IStorage::Release를 호출합니다. |
공급자는 medium의 수신기가 punkForRelease 구조체 멤버에 대해 NULL을 지정하여 매체를 해제할 책임이 있음을 나타냅니다. 그런 다음 수신기는 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 |
헤더 | ole2.h |
라이브러리 | Ole32.lib |
DLL | Ole32.dll |
API 세트 | ext-ms-win-com-ole32-l1-1-3(Windows 10 버전 10.0.10240에 도입됨) |