OleConvertOLESTREAMToIStorage 関数 (ole2.h)
OleConvertOLESTREAMToIStorage 関数は、プレゼンテーション データを指定せずに、指定したオブジェクトを OLE 1 ストレージ モデルから OLE 2 構造化ストレージ オブジェクトに変換します。
構文
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 ストレージ オブジェクトに変換する
- StgCreateDocfile 関数 (...、&pstg) を呼び出して、ルート IStorage オブジェクトを作成します。
- OLE 1 ファイルを開きます ( OpenFile または別の OLE 1 手法を使用)。
- OLE オブジェクトが見つかるまで、ファイルを読み取るための OLE 1 プロシージャを使用して、ファイルから読み取ります。
- 手順 1 で作成したルート IStorage から IStorage オブジェクトを割り当てます。
pstg->lpVtbl->CreateStorage(...&pStgChild); hRes = OleConvertIStorageToOLESTREAM(polestm, pStgChild); hRes = OleLoad(pStgChild, &IID_IOleObject, pClientSite, ppvObj);
- ファイルが完全に読み取られるまで手順 3 を繰り返します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | ole2.h |
Library | Ole32.lib |
[DLL] | Ole32.dll |
こちらもご覧ください
OleConvertIStorageToOLESTREAMEx