다음을 통해 공유


영구 개체 인터페이스

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

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

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

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

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

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

영구 개체 초기화