次の方法で共有


OleConvertOLESTREAMToIStorage 関数 (ole2.h)

OleConvertOLESTREAMToIStorage 関数は、プレゼンテーション データを指定せずに、指定したオブジェクトを OLE 1 ストレージ モデルから OLE 2 構造化ストレージ オブジェクトに変換します。

メモ これは、いくつかの互換性関数の 1 つです。
 

構文

HRESULT OleConvertOLESTREAMToIStorage(
  [in]  LPOLESTREAM          lpolestream,
  [out] LPSTORAGE            pstg,
  [in]  const DVTARGETDEVICE *ptd
);

パラメーター

[in] lpolestream

OLE 1 ストレージ形式のオブジェクトの永続的な表現を含むストリームへのポインター。

[out] pstg

OLE 2 構造化ストレージ オブジェクトの IStorage インターフェイスへのポインター。

[in] ptd

OLE 1 オブジェクトがレンダリングされるターゲット デバイスを指定する DVTARGETDEVICE 構造体へのポインター。

戻り値

この関数は、次に加えて、標準の戻り値 E_INVALIDARGをサポートしています。

注釈

この関数は、OLE 1 オブジェクトを OLE 2 構造化ストレージ オブジェクトに変換します。 新しいバージョンのオブジェクト アプリケーションで OLE 2 がサポートされている場合に、OLE 1 オブジェクトを OLE 2 オブジェクトに更新するには、この関数を使用します。

エントリでは、oleLoadFromStream 関数呼び出しの場合と同様に、lpolestm パラメーターを作成して配置する必要があります。 終了時、 lpolestm パラメーターは OleLoadFromStream 関数の終了時と同じように配置され、 pstg パラメーターには OLE 2 ストレージ オブジェクトのコミットされていない永続的表現が含まれます。

プレゼンテーションにネイティブ データを使用する OLE 1 オブジェクトの場合、 OleConvertOLESTREAMToIStorage 関数は CONVERT10_S_NO_PRESENTATIONを返します。 この戻り値を受け取った場合、呼び出し元は IOleObject::Update を呼び出してプレゼンテーション データを取得し、ストレージに書き込むことができるようにする必要があります。

OLE の既定のキャッシュ リソースを使用せず、変換リソースを使用するアプリケーションでは、変換するプレゼンテーション データを指定できる代替関数 OleConvertOLESTREAMToIStorageEx を使用できます。 OleConvertOLESTREAMToIStorageEx 関数では、OLESTREAM 構造体から読み取られたプレゼンテーション データが渡され、新しく作成された OLE 2 ストレージ オブジェクトにプレゼンテーション ストリームが含まれていません。

次の手順では、 OleConvertOLESTREAMToIStorage を使用した変換プロセスについて説明します。

OLE 1 オブジェクトを OLE 2 ストレージ オブジェクトに変換する

  1. StgCreateDocfile 関数 (...、&pstg) を呼び出して、ルート IStorage オブジェクトを作成します。
  2. OLE 1 ファイルを開きます ( OpenFile または別の OLE 1 手法を使用)。
  3. OLE オブジェクトが見つかるまで、ファイルを読み取るための OLE 1 プロシージャを使用して、ファイルから読み取ります。
  4. 手順 1 で作成したルート IStorage から IStorage オブジェクトを割り当てます。
    pstg->lpVtbl->CreateStorage(...&pStgChild); 
    hRes = OleConvertIStorageToOLESTREAM(polestm, pStgChild); 
    hRes = OleLoad(pStgChild, &IID_IOleObject, pClientSite, ppvObj);
    
  5. ファイルが完全に読み取られるまで手順 3 を繰り返します。

要件

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

こちらもご覧ください

CoIsOle1Class

DVTARGETDEVICE

OleConvertIStorageToOLESTREAM

OleConvertIStorageToOLESTREAMEx

OleConvertOLESTREAMToIStorageEx

STGMEDIUM

Tymed