次の方法で共有


OleLoad 関数 (ole2.h)

指定したストレージ オブジェクト内に入れ子になったオブジェクトをメモリに読み込みます。

構文

HRESULT OleLoad(
  [in]  LPSTORAGE       pStg,
  [in]  REFIID          riid,
  [in]  LPOLECLIENTSITE pClientSite,
  [out] LPVOID          *ppvObj
);

パラメーター

[in] pStg

指定したオブジェクトを読み込むストレージ オブジェクトの IStorage インターフェイスへのポインター。

[in] riid

呼び出し元が読み込まれた後にオブジェクトと通信するために使用するインターフェイスの識別子への参照。

[in] pClientSite

読み込まれるクライアント サイト オブジェクトの IOleClientSite インターフェイスへのポインター。

[out] ppvObj

riid で要求されたインターフェイス ポインターを受け取るポインター変数のアドレス。 正常に戻ると、*ppvObj には、新しく読み込まれたオブジェクトに要求されたインターフェイス ポインターが含まれます。

戻り値

この関数は、成功したS_OKを返します。 その他の使用可能な値は次のとおりです。

リターン コード 説明
E_NOINTERFACE
オブジェクトは、指定されたインターフェイスをサポートしていません。
 

さらに、この関数は 、IPersistStorage::Load メソッドによって返されるエラー値のいずれかを返すことができます。

解説

OLE コンテナーは、この関数を呼び出してオブジェクトをメモリに読み込みます。 OleLoad 関数を呼び出すとき、コンテナー アプリケーションは、入れ子になったオブジェクトが格納されている開いているストレージ オブジェクトへのポインターを渡します。 通常、読み込まれる入れ子になったオブジェクトは、コンテナーのルート ストレージ オブジェクトに対する子ストレージ オブジェクトです。 オブジェクトと共に格納されている OLE 情報を使用して、オブジェクト ハンドラー (通常は既定のハンドラー) はオブジェクトの読み込みを試みます。 OleLoad 関数が完了すると、オブジェクトは、オブジェクト アプリケーションが実行されていない状態で読み込まれた状態であると言われます。

一部のアプリケーションでは、オブジェクトのすべてのネイティブ データが読み込まれます。 コンテナーは、多くの場合、必要になるまで、含まれているオブジェクトの読み込みを延期します。 たとえば、オブジェクトがビューにスクロールされ、描画する必要があるまで、読み込む必要はありません。

OleLoad 関数は、次の手順を実行します。

  • 必要に応じて、オブジェクトの自動変換を実行します ( OleDoAutoConvert 関数を参照)。
  • IStorage::Stat メソッドを呼び出して、開いているストレージ オブジェクトから CLSID を取得します。
  • CoCreateInstance 関数を呼び出して、ハンドラーのインスタンスを作成します。 ハンドラー コードが使用できない場合は、既定のハンドラーが使用されます ( 「OleCreateDefaultHandler 関数」を参照)。
  • pClientSite パラメーターを指定して IOleObject::SetClientSite メソッドを呼び出して、クライアント サイトのオブジェクトに通知します。
  • IPersistStorage インターフェイスの QueryInterface メソッドを呼び出します。 成功した場合は、オブジェクトに対して IPersistStorage::Load メソッドが呼び出されます。
  • riid パラメーターによって識別されるインターフェイスを照会して返します。

要件

   
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー ole2.h
Library Ole32.lib
[DLL] Ole32.dll