다음을 통해 공유


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

개체가 컨테이너에 의해 전달된 모든 스토리지 개체를 해제하고 HandsOff 모드로 전환하도록 지시합니다.

구문

HRESULT HandsOffStorage();

반환 값

이 메서드는 개체가 HandsOff 모드에 성공적으로 진입했음을 나타내는 S_OK 반환합니다.

설명

이 메서드를 사용하면 개체가 보유하고 있는 스토리지 개체를 해제하고 후속 IPersistStorage::SaveCompleted 호출까지 HandsOff 모드로 전환됩니다. HandsOff 모드에서 개체는 아무 작업도 수행할 수 없으며 작동하는 유일한 작업은 닫기 작업입니다.

컨테이너 애플리케이션은 일반적으로 전체 저장 또는 메모리 부족 전체 저장 작업 중에 이 메서드를 호출하여 개체가 현재 스토리지에 대한 모든 포인터를 강제로 해제합니다. 이러한 시나리오에서는 OleSave 또는 IPersistStorage::Save 호출한 후 HandsOffStorage 호출이 수행되어 개체가 HandsOffAfterSave 모드로 전환됩니다. 컨테이너 애플리케이션이 전체 저장의 일부로 현재 파일을 삭제하거나 IRootStorage::SwitchToFile 메서드를 메모리 부족 저장의 일부로 호출할 수 있도록 이 메서드를 호출해야 합니다.

또한 컨테이너 애플리케이션은 개체가 표준 모드일 때 이 메서드를 호출하여 개체를 HandsOffFromNormal 모드로 전환합니다.

구성 요소 개체가 HandsOffAfterSave 또는 HandsOffFromNormal 모드에 있는 동안 개체에 대한 대부분의 작업이 실패합니다. 따라서 컨테이너는 가능한 한 빨리 개체를 정상 모드로 복원해야 합니다. 컨테이너 애플리케이션은 새 스토리지 개체의 구성 요소 개체에 스토리지 포인터를 다시 전달하는 IPersistStorage::SaveCompleted 메서드를 호출하여 이 작업을 수행합니다.

구현자에 대한 참고 사항

이 메서드는 중첩된 스트림 및 스토리지에 대한 포인터를 포함하여 현재 스토리지 개체에 대한 모든 포인터를 해제해야 합니다. 개체에 중첩된 개체가 포함된 경우 컨테이너 애플리케이션은 로드되거나 실행되는 중첩된 개체에 대해 이 메서드를 재귀적으로 호출해야 합니다.

요구 사항

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

추가 정보

IPersistStorage

OleSave