次の方法で共有


永続化インターフェイス

あらゆる種類の永続的な状態を持つオブジェクトは、コントロールの状態を保存する方法について最も柔軟な選択肢をコンテナーに提供するために、少なくとも 1 つの IPersist* インターフェイス、できれば複数のインターフェイスを実装する必要があります。

コントロールに永続的な状態がある場合は、少なくとも IPersistStream または IPersistStreamInit を実装する必要があります (2 つは相互に排他的であり、ほとんどの部分で一緒に実装しないでください)。 後者は、コントロールが既存の永続的な状態から再読み込みされるのではなく、新しく作成された日時を知りたい場合に使用されます (IPersistStream には新しい機能が作成されていません)。 いずれかのインターフェイスが存在することは、コントロールが永続的な状態を保存してストリーム (つまり IStream のインスタンス) に読み込むことができることを示します。

次の表に示す 2 つのストリーム ベースのインターフェイス以外の IPersist* インターフェイスは、展開可能な IStream 以外の場所への永続化をサポートするために必要に応じて提供できます。

永続化インターフェイスのサポートに対応するために、コンポーネント カテゴリのセットが識別されます。「コンポーネント カテゴリ」を参照してください。

インターフェイス 使用方法
IPersistMemory
オブジェクトは、その状態を保存し、固定長のシーケンシャル バイト配列 (メモリ内) に読み込むことができます。
IPersistStorage
オブジェクトは、状態を保存して IStorage インスタンスに読み込むことができます。 他の複合ドキュメント オブジェクト (コントロール非対応コンテナーへの挿入用) として挿入可能としてマークされるコントロールは、このインターフェイスをサポートする必要があります。
IPersistPropertyBag
オブジェクトは、コンテナーが実装する IPropertyBag に書き込まれた個々のプロパティとして状態を保存して読み込むことができます。 これは、一部のコンテナーの [テキストとして保存] 機能に使用されます。
IPersistMoniker
オブジェクトは、モニカーによって名前付けされた場所に状態を保存して読み込むことができます。 このコントロールは IMoniker::BindToStorage を呼び出して、IStorageIStreamILockBytesIDataObject など、必要なストレージ インターフェイスを取得します。

IPersistPropertyBag のサポートは省略可能ですが、Visual Basic などのテキストとして保存機能を備えたコンテナーの最適化として強くお勧めします。

IPersistStream::GetSizeMaxIPersistStreamInit::GetSizeMaxIPersistMemory::GetSizeMax を除き、各インターフェイスのすべてのメソッドを完全に実装する必要があります。

コントロール