永続オブジェクト インターフェイス
永続オブジェクトは、1 つ以上の永続オブジェクト インターフェイスを実装します。 クライアントは永続的なオブジェクト インターフェイスを使用して、状態を格納するタイミングと場所をオブジェクトに伝えます。 すべての永続オブジェクト インターフェイスは IPersist から派生するため、永続オブジェクト インターフェイスを実装するオブジェクトも IPersist を実装します。
現在、次の永続オブジェクト インターフェイスが定義されています。
- IPersistStream
- IPersistStreamInit
- IPersistStorage
- IPersistFile
- IPersistMoniker
- IPersistMemory
- IPersistPropertyBag
実装者は、オブジェクトの使用方法に応じて、オブジェクトがサポートする永続オブジェクト インターフェイスを選択します。 永続オブジェクト インターフェイスをサポートしないことにより、実装者は事実上、「このオブジェクトの状態を永続的に保存することはできません」と言っていることになります。1 つまたは複数の永続オブジェクト インターフェイスをサポートすることにより、実装者は事実上、「このオブジェクトの状態を 1 つまたは複数のデータ ストア メディアに永続的に保存できる」と言っていることになります。
たとえば、次の表には、さまざまな永続オブジェクト インターフェイスのサポートを可能にするいくつかのオブジェクト タイプがリストされています。
カテゴリ | 一般的にサポートされる永続的なオブジェクト インターフェイス |
---|---|
モニカー |
IPersistStream |
OLE 埋め込み可能オブジェクト |
IPersistStorage、IPersistFile |
ActiveX コントロール |
IPersistStreamInit、IPersistStorage、IPersistMemory, IPersistPropertyBag, IPersistMoniker |
ActiveX ドキュメント オブジェクト |
IPersistStorage、IPersistFile |
クライアント実装者は、クライアントが使用できる永続オブジェクト インターフェイスを選択することもできます。 通常、クライアントが使用するインターフェイスは、クライアントが独自のデータを格納できる場所によって決まります。 フラット ファイルにのみデータを格納できるクライアントは、おそらく IPersistStreamInit、IPersistMoniker、および IPersistPropertyBag のみを使用します。 (IPersistStreamInit は、ほとんどのアプリケーションで IPersistStream を置き換えることができます。なぜなら、その定義が含まれており、初期化メソッドが追加されるためです)。構造化ストレージ ファイルにデータを保存できるクライアントは、さらに IPersistStorage を使用します。