IPersistStream::Save 메서드(objidl.h)
개체를 지정된 스트림에 저장합니다.
구문
HRESULT Save(
[in] IStream *pStm,
[in] BOOL fClearDirty
);
매개 변수
[in] pStm
개체를 저장해야 하는 스트림에 대한 IStream 포인터입니다.
[in] fClearDirty
저장이 완료되면 변경 플래그를 지울지 여부를 나타냅니다. TRUE이면 플래그를 지워야 합니다. FALSE이면 플래그가 변경되지 않은 상태로 유지되어야 합니다.
반환 값
이 메서드는 다음 값을 반환할 수 있습니다.
반환 코드 | 설명 |
---|---|
|
메서드가 완료되었습니다. |
|
개체가 스트림에 자신을 저장할 수 없습니다. 예를 들어 이 오류는 개체에 스트림으로 직렬화할 수 없거나 ISequentialStream::Write 호출이 STG_E_CANTSAVE 반환된 다른 개체를 포함하고 있음을 나타낼 수 있습니다. |
|
스토리지 디바이스에 남은 공간이 없으므로 개체를 저장할 수 없습니다. |
설명
IPersistStream::Save는 개체를 지정된 스트림에 저장하고 개체가 더티 플래그를 다시 설정해야 하는지 여부를 나타냅니다.
검색 포인터는 개체가 데이터 쓰기를 시작해야 하는 스트림의 위치에 배치됩니다. 개체는 ISequentialStream::Write 메서드를 호출하여 데이터를 작성합니다.
종료 시 개체 데이터를 바로 지나서 검색 포인터를 배치해야 합니다. 오류가 반환되면 검색 포인터의 위치가 정의되지 않습니다.
발신자에게 참고 사항
IPersistStream::Save를 직접 호출하는 대신 일반적으로 다음을 수행하는 OleSaveToStream 도우미 함수를 호출합니다.- GetClassID를 호출하여 개체의 CLSID를 가져옵니다.
- WriteClassStm 함수를 호출하여 개체의 CLSID를 스트림에 씁니다.
- IPersistStream::Save를 호출합니다.
IPersistStream의 OLE 제공 구현은 동일한 패턴을 따릅니다.
구현자에 대한 참고 사항
IPersistStream::Save 메서드는 CLSID를 스트림에 쓰지 않습니다. 호출자는 CLSID를 작성합니다.IPersistStream::Save 메서드는 스트림에서 읽고, 쓰고, 검색할 수 있습니다. 그러나 항목에 대한 검색 포인터 앞에 있는 스트림의 위치를 검색해서는 안됩니다.
URL 모니커 노트
URL 모니커를 스트림에 저장합니다. URL 모니커의 이진 형식은 유니코드의 URL 문자열입니다(전체 또는 부분 URL 문자열일 수 있습니다. 자세한 내용은 CreateURLMonikerEx 참조). 이는 ULONG 문자 수와 그 뒤에 많은 유니코드 문자로 표시됩니다.요구 사항
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | objidl.h |