IPersistStorage::Load メソッド (objidl.h)
オブジェクトを既存のストレージから読み込みます。
構文
HRESULT Load(
[in] IStorage *pStg
);
パラメーター
[in] pStg
オブジェクトの読み込み元となる既存のストレージへの IStorage ポインター。
戻り値
このメソッドは、次の値を返すことができます。
リターン コード | 説明 |
---|---|
|
メソッドは正常に完了しました。 |
|
オブジェクトは、IPersistStorage::Load メソッドまたは IPersistStorage::InitNew メソッドの以前の呼び出しによって既に初期化されています。 |
|
メモリ不足のため、オブジェクトが読み込まれていませんでした。 |
|
メモリ不足以外の何らかの理由により、オブジェクトが読み込まれていませんでした。 |
注釈
このメソッドは、既存のストレージからオブジェクトを初期化します。 このメソッドがコンテナー アプリケーションによって呼び出された場合、オブジェクトは読み込まれた状態になります。 既定のハンドラーによって呼び出された場合、このメソッドは オブジェクトを実行中の状態にします。
既定のハンドラーまたはオブジェクト自体は、オブジェクトの読み込み中または実行中に IStorage ポインターを保持できます。
呼び出し元へのメモ
IPersistStorage::Load を直接呼び出すのではなく、通常、OleLoad ヘルパー関数を呼び出すと、次の処理が行われます。- オブジェクト クラスの初期化されていないインスタンスを作成します。
- IPersistStorage インターフェイスの新しいインスタンスに対してクエリを実行します。
- Load を呼び出して、既存のストレージから オブジェクトを初期化します。
コンテナーは、オブジェクトに対する後の操作で使用するために 、IPersistStorage ポインターをキャッシュする必要があります。
実装者へのメモ
実装では、オブジェクトを読み込むには、次の手順を実行する必要があります。- ストレージ オブジェクトでオブジェクトのストリームを開き、オブジェクトの内部データ構造に必要なデータを読み取ります。
- オブジェクトの ダーティ フラグをクリアします。
- AddRef メソッドを呼び出し、渡された をストレージ ポインターにキャッシュします。
- 開いたままにして、オブジェクトがこのストレージに自身を保存するために必要なストリームまたはストレージへのポインターをキャッシュします。
- オブジェクトに必要なその他の既定の初期化を実行します。
このメソッドの実装では、IPersistStorage::InitNew メソッドまたは IPersistStorage::Load メソッドの呼び出しが既に初期化された後に受け取った場合は、CO_E_ALREADYINITIALIZED エラー コードを返す必要があります。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | objidl.h |