다음을 통해 공유


IPersistStreamInit::Save 메서드(ocidl.h)

개체를 지정된 스트림에 저장합니다.

구문

HRESULT Save(
  [in] LPSTREAM pStm,
  [in] BOOL     fClearDirty
);

매개 변수

[in] pStm

개체를 저장해야 하는 스트림에 대한 IStream 포인터입니다.

[in] fClearDirty

저장이 완료되면 변경 플래그를 지울지 여부를 나타냅니다. TRUE이면 플래그를 지워야 합니다. FALSE이면 플래그가 변경되지 않은 상태로 유지되어야 합니다.

반환 값

이 메서드는 다음 값을 반환할 수 있습니다.

반환 코드 설명
S_OK
메서드가 완료되었습니다.
STG_E_CANTSAVE
개체가 스트림에 자신을 저장할 수 없습니다. 예를 들어 이 오류는 개체에 스트림으로 직렬화할 수 없거나 ISequentialStream::Write 호출이 STG_E_CANTSAVE 반환된 다른 개체를 포함하고 있음을 나타낼 수 있습니다.
STG_E_MEDIUMFULL
스토리지 디바이스에 남은 공간이 없으므로 개체를 저장할 수 없습니다.

설명

IPersistStreamInit::Save는 개체를 지정된 스트림에 저장하고 개체가 더티 플래그를 다시 설정해야 하는지 여부를 나타냅니다.

검색 포인터는 개체가 데이터 쓰기를 시작해야 하는 스트림의 위치에 배치됩니다. 개체는 ISequentialStream::Write 메서드를 호출하여 데이터를 작성합니다.

종료 시 개체 데이터를 바로 지나서 검색 포인터를 배치해야 합니다. 오류가 반환되면 검색 포인터의 위치가 정의되지 않습니다.

구현자에 대한 참고 사항

IPersistStreamInit::Save 메서드는 CLSID를 스트림에 쓰지 않습니다. 호출자는 CLSID를 작성합니다.

IPersistStreamInit::Save 메서드는 스트림에서 읽고, 쓰고, 검색할 수 있습니다. 그러나 항목에 대한 검색 포인터 앞에 있는 스트림의 위치를 검색해서는 안됩니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 ocidl.h

추가 정보

IPersistStreamInit