次の方法で共有


IXpsOMObjectFactory::CreatePackageFromStream メソッド (xpsobjectmodel.h)

XPS パッケージを含むストリームを開き、インスタンス化された XPS ドキュメント オブジェクト ツリーを返します。

構文

HRESULT CreatePackageFromStream(
  [in]          IStream       *stream,
  [in]          BOOL          reuseObjects,
  [out, retval] IXpsOMPackage **package
);

パラメーター

[in] stream

XPS パッケージを含むストリーム。

[in] reuseObjects

ソフトウェアが、すべてのプロパティと子で同一のオブジェクトを共有することによってドキュメント オブジェクト ツリーの最適化を試みようとしていることを示すブール値。

意味
True
ソフトウェアはオブジェクト ツリーの最適化を試みます。
False
ソフトウェアはオブジェクト ツリーの最適化を試みません。

[out, retval] package

結果の XPS ドキュメント オブジェクト ツリーを含む新しい IXpsOMPackage インターフェイスへのポインター。

戻り値

このメソッドは HRESULT を返します。 使用可能な値には、次の表に含まれる値が含まれますが、これらに限定されません。 この表に記載されていない XPS ドキュメント API の戻り値については、「 XPS ドキュメント エラー」を参照してください。

リターン コード 説明
S_OK
メソッドが成功しました。
E_POINTER
ストリーム または パッケージNULL です
 

このメソッドは Packaging API を呼び出します。 Packaging API の戻り値の詳細については、「 パッケージ化エラー」を参照してください。

注釈

このメソッドは、ストリームから XPS OM のオブジェクトに読み込むストリーム ベースのリソースの内容を検証しません。 代わりに、アプリケーションでこれらのリソースを使用する前に、これらのリソースを検証する必要があります。

このメソッドは、ドキュメント ページを逆シリアル化しません。XPS パッケージをページ参照パーツに逆シリアル化するだけです。 実際のページは、 IXpsOMPageReference::GetPage メソッドを呼び出すことで、必要に応じて逆シリアル化できます。 GetPage の呼び出し時にページが逆シリアル化されないため、このメソッドは S_OKを返すか、XPS パッケージに問題のあるページを読み込もうとした場合にエラーを返す可能性があります。

XPS パッケージを読み取った直後に XPS OM を作成すると、元のコンテンツの一部が失われたり変更されたりする可能性があります。

このような場合に発生する可能性のある変更の一部を次の表に示します。

ドキュメント機能 アクション
デジタル署名 ドキュメントから削除されました
DiscardControl パーツ ドキュメントから削除されました
外部ドキュメント パーツ ドキュメントから削除されました
FixedPage マークアップ 元のファイルから変更
リソース ディクショナリ マークアップ 最適化フラグが設定されている場合に元のフラグから変更
 

プログラムで IXpsOMPackage インターフェイスを使用する方法については、「 空の XPS OM を作成する」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 7、Windows Vista SP2 と Windows Vista 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
サポートされている最小のサーバー Windows Server 2008 R2、Windows Server 2008 SP2 および Windows Server 2008 用プラットフォーム更新プログラム [デスクトップ アプリ |UWP アプリ]
対象プラットフォーム Windows
ヘッダー xpsobjectmodel.h

こちらもご覧ください

空の XPS OM を作成する

IXpsOMObjectFactory

IXpsOMPackage

パッケージ化エラー

XML Paper Specification

XPS ドキュメント エラー