다음을 통해 공유


영구 개체 인터페이스

영구 개체는 하나 이상의 영구 개체 인터페이스를 구현합니다. 클라이언트는 영구 개체 인터페이스를 사용하여 상태를 저장할 시기와 위치를 해당 개체에 알릴 수 있습니다. 모든 영구 개체 인터페이스는 IPersist에서 파생되므로 영구 개체 인터페이스를 구현하는 모든 개체도 IPersist를 구현합니다.

현재 정의된 영구 개체 인터페이스는 다음과 같습니다.

구현자는 개체를 사용하는 방법에 따라 개체가 지원하는 영구 개체 인터페이스를 선택합니다. 영구 개체 인터페이스를 지원하지 않음으로써 구현자는 "이 개체의 상태를 영구적으로 저장할 수 없다"고 효과적으로 말합니다. 하나 이상의 영구 개체 인터페이스를 지원함으로써 구현자는 "이 개체의 상태는 하나 이상의 데이터 저장소 매체에 영구적으로 저장될 수 있다"고 효과적으로 말합니다.

예를 들어 다음 표에는 다양한 영구 개체 인터페이스를 지원할 수 있는 여러 개체 형식이 나와 있습니다.

범주 영구 개체 인터페이스는 일반적으로 지원됩니다.
모니커
IPersistStream
OLE 포함 개체
IPersistStorage, IPersistFile
ActiveX 컨트롤
IPersistStreamInit, IPersistStorage, IPersistMemory, IPersistPropertyBag, IPersistMoniker
ActiveX 문서 개체
IPersistStorage, IPersistFile

클라이언트 구현자는 클라이언트에서 사용할 수 있는 영구 개체 인터페이스를 선택할 수도 있습니다. 클라이언트에서 사용하는 인터페이스는 일반적으로 클라이언트가 자체 데이터를 저장할 수 있는 위치에 따라 결정됩니다. 플랫 파일에만 데이터를 저장할 수 있는 클라이언트는 IPersistStreamInit, IPersistMoniker 및 IPersistPropertyBag만 사용할 수 있습니다. (IPersistStreamInit 는 해당 정의를 포함하고 초기화 메서드를 추가하므로 대부분의 애플리케이션에서 IPersistStream 을 대체할 수 있습니다.) 또한 데이터를 구조적 스토리지 파일에 저장할 수 있는 클라이언트는 IPersistStorage를 사용합니다.

영구 개체 초기화