永続オブジェクト インターフェイス

永続オブジェクトは、1 つ以上の永続オブジェクト インターフェイスを実装します。 クライアントは永続的なオブジェクト インターフェイスを使用して、状態を格納するタイミングと場所をオブジェクトに伝えます。 すべての永続オブジェクト インターフェイスは IPersist から派生するため、永続オブジェクト インターフェイスを実装するオブジェクトも IPersist を実装します。

現在、次の永続オブジェクト インターフェイスが定義されています。

実装者は、オブジェクトの使用方法に応じて、オブジェクトがサポートする永続オブジェクト インターフェイスを選択します。 永続オブジェクト インターフェイスをサポートしないことにより、実装者は事実上、「このオブジェクトの状態を永続的に保存することはできません」と言っていることになります。1 つまたは複数の永続オブジェクト インターフェイスをサポートすることにより、実装者は事実上、「このオブジェクトの状態を 1 つまたは複数のデータ ストア メディアに永続的に保存できる」と言っていることになります。

たとえば、次の表には、さまざまな永続オブジェクト インターフェイスのサポートを可能にするいくつかのオブジェクト タイプがリストされています。

カテゴリ 一般的にサポートされる永続的なオブジェクト インターフェイス
モニカー
IPersistStream
OLE 埋め込み可能オブジェクト
IPersistStorageIPersistFile
ActiveX コントロール
IPersistStreamInitIPersistStorage、IPersistMemory, IPersistPropertyBag, IPersistMoniker
ActiveX ドキュメント オブジェクト
IPersistStorageIPersistFile

クライアント実装者は、クライアントが使用できる永続オブジェクト インターフェイスを選択することもできます。 通常、クライアントが使用するインターフェイスは、クライアントが独自のデータを格納できる場所によって決まります。 フラット ファイルにのみデータを格納できるクライアントは、おそらく IPersistStreamInitIPersistMoniker、および IPersistPropertyBag のみを使用します。 (IPersistStreamInit は、ほとんどのアプリケーションで IPersistStream を置き換えることができます。なぜなら、その定義が含まれており、初期化メソッドが追加されるためです)。構造化ストレージ ファイルにデータを保存できるクライアントは、さらに IPersistStorage を使用します。

永続オブジェクトの初期化