다음을 통해 공유


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에 도입됨)

추가 정보

STGMEDIUM