OleSave 함수(ole2.h)

트랜잭션 모드에서 열린 개체를 지정된 스토리지 개체에 저장합니다.

구문

HRESULT OleSave(
  [in] LPPERSISTSTORAGE pPS,
  [in] LPSTORAGE        pStg,
  [in] BOOL             fSameAsLoad
);

매개 변수

[in] pPS

저장할 개체의 IPersistStorage 인터페이스에 대한 포인터입니다.

[in] pStg

pPS에 표시된 개체를 저장할 대상 스토리지 개체의 IStorage 인터페이스에 대한 포인터입니다.

[in] fSameAsLoad

TRUEpStg 가 개체를 로드하거나 만든 것과 동일한 스토리지 개체임을 나타냅니다. FALSEpStg 가 다른 스토리지 개체에서 로드되거나 생성되었음을 나타냅니다.

반환 값

이 함수는 성공에 대한 S_OK 반환합니다. 다른 가능한 값은 다음과 같습니다.

반환 코드 설명
STGMEDIUM_E_FULL
디스크 공간이 부족하여 개체를 저장할 수 없습니다.

이 함수는 IPersistStorage::Save 메서드에서 반환하는 오류 값을 반환할 수도 있습니다.

설명

OleSave 도우미 함수는 개체가 트랜잭션 모드로 열려 있는 일반적인 상황을 처리한 다음, OLE 제공 복합 파일 구현을 사용하는 지정된 스토리지 개체에 저장됩니다. 트랜잭션 모드는 IStorage::Commit 또는 IStorage::Revert가 호출될 때까지 개체에 대한 변경 내용이 버퍼링됨을 의미합니다. 호출자는 IPersistStorageIStorage 인터페이스를 직접 호출하여 다른 상황을 처리할 수 있습니다.

OleSave 는 다음을 수행합니다.

  • IPersist::GetClassID 메서드를 호출하여 개체의 CLSID를 가져옵니다.
  • WriteClassStg 함수를 사용하여 CLSID를 스토리지 개체에 씁니다.
  • IPersistStorage::Save 메서드를 호출하여 개체를 저장합니다.
  • 저장에 오류가 없으면 입니다. 는 IStorage::Commit 메서드를 호출하여 변경 내용을 커밋합니다.
참고 정적 개체는 CONTENTS라는 스트림에 저장됩니다. 정적 메타파일 개체는 "배치 가능한 메타파일 형식"으로 저장되고 정적 DIB 데이터는 "DIB 파일 형식"으로 저장됩니다. 이러한 형식은 메타파일 및 DIB에 대한 OLE 표준으로 정의됩니다. IStream 인터페이스 또는 파일(즉, IDataObject::GetDataHere를 통해)을 사용하여 전송되는 모든 데이터는 이러한 형식이어야 합니다. 또한 기본 파일 형식이 메타파일 또는 DIB인 모든 개체는 이러한 표준 형식을 사용하여 해당 데이터를 CONTENTS 스트림에 작성해야 합니다.
 

요구 사항

요구 사항
지원되는 최소 클라이언트 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에 도입됨)

추가 정보

IPersistStorage

IStorage