Share via


IPersistStorage::SaveCompleted 메서드(objidl.h)

개체가 스토리지 개체에 쓸 수 있음을 알 수 있습니다. 이렇게 하려면 개체가 NoScribble 모드(스토리지 개체에 쓰지 않아야 하는 모드)에서 표준 모드(가능한 경우)로 되돌리기 수 있음을 알립니다. 개체는 IPersistStorage::Save 호출을 받으면 NoScribble 모드로 전환됩니다.

구문

HRESULT SaveCompleted(
  [in] IStorage *pStgNew
);

매개 변수

[in] pStgNew

저장하기 전에 스토리지 개체와 다른 경우 새 스토리지 개체에 대한 IStorage 포인터입니다. 저장 작업 중에 현재 스토리지 개체가 변경되지 않으면 이 포인터는 NULL 일 수 있습니다. 개체가 HandsOff 모드인 경우 이 매개 변수는 NULL이 아니어야 합니다.

반환 값

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

반환 코드 Description
S_OK
메서드가 완료되었습니다.
E_OUTOFMEMORY
개체는 메모리 부족으로 인해 HandsOff 모드 또는 NoScribble 모드에 남아 있습니다. 일반적으로 이 오류는 개체가 pStgNew에서 필요한 스트림 및 스토리지 개체를 열 수 없을 때 발생합니다.
E_INVALIDARG
pStgNew 매개 변수가 잘못되었습니다. 일반적으로 이 오류는 개체가 HandsOff 모드에 있을 때 pStgNewNULL 인 경우에 발생합니다.
E_UNEXPECTED
개체가 기본 모드에 있으며 IPersistStorage::Save 또는 IPersistStorage::HandsOffStorage에 대한 이전 호출이 없었습니다.

설명

이 메서드는 기본 모드로 되돌리기 수 있으며 스토리지 개체에 다시 한 번 쓸 수 있음을 개체에 알 수 있습니다. 개체가 NoScribble 모드 또는 HandsOff 모드를 종료합니다.

개체가 HandsOff 모드에서 되돌리는 경우 pStgNew 매개 변수는 NULL이 아닌 매개 변수여야 합니다. HandsOffFromNormal 모드에서 이 매개 변수는 IPersistStorage::HandsOffStorage 메서드에 의해 해지된 스토리지 개체를 대체하는 새 스토리지 개체입니다. 스토리지 개체의 데이터는 해지된 스토리지 개체의 데이터 복사본입니다. HandsOffAfterSave 모드에서 데이터는 가장 최근에 저장된 데이터와 동일합니다. 해지된 스토리지 개체의 데이터와 동일하지 않습니다.

개체가 NoScribble 모드에서 되돌리는 경우 pStgNew 매개 변수는 NULL 또는 NULL이 아닌 매개 변수일 수 있습니다. NULL이면 개체가 스토리지 개체에 다시 한 번 액세스할 수 있습니다. NULL이 아닌 경우 구성 요소 개체는 해당 HandsOffStorage 메서드에 대한 호출 수신을 시뮬레이션해야 합니다. 구성 요소 개체가 이 호출을 시뮬레이션할 수 없는 경우 해당 컨테이너는 실제로 HandsOffStorage 메서드를 호출할 준비를 해야 합니다.

이 메서드는 로드되거나 실행 중인 중첩된 개체를 재귀적으로 호출해야 합니다.

이 메서드가 오류 코드를 반환하면 개체가 표준 모드로 반환되지 않습니다. 따라서 컨테이너 개체는 다른 저장 전략을 시도할 수 있습니다.

요구 사항

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

추가 정보

IPersistStorage