開啟包含 XPS 套件的串流,並回傳實例化的 XPS 文件物件樹。
語法
HRESULT CreatePackageFromStream(
[in] IStream *stream,
[in] BOOL reuseObjects,
[out, retval] IXpsOMPackage **package
);
參數
[in] stream
包含 XPS 套件的串流。
[in] reuseObjects
布林值表示軟體嘗試透過共享所有屬性與子物件相同的物件來優化文件物件樹。
| 價值觀 | Meaning |
|---|---|
|
軟體會嘗試優化物件樹。 |
|
軟體不會嘗試優化物件樹。 |
[out, retval] package
指向新 IXpsOMPackage 介面的指標,該介面包含產生的 XPS 文件物件樹。
返回值
這個方法會傳回 HRESULT。 可能的值包括但不限於下表中的值。 如需此表格中未列出之 XPS 檔 API 傳回值的相關資訊,請參閱 XPS 檔錯誤。
| 回傳碼 | Description |
|---|---|
|
此方法已成功。 |
|
串流或套件為 NULL。 |
此方法呼叫 Packaging API。 關於 Packaging API 回傳值的資訊,請參見 Packaging Errors。
備註
此方法不會驗證從串流載入 XPS OM 物件時,任何基於串流的資源內容。 相反地,應用程式必須在使用這些資源前進行驗證。
此方法不會將文件頁面反序列化;它只將 XPS 套件反序列化到頁面參考部分。 實際頁面可依需求反序列化,透過呼叫 IXpsOMPageReference::GetPage 方法。 由於呼叫 GetPage 時頁面並未被反序列化,因此此方法可能會回傳 S_OK,或在嘗試載入 XPS 套件中有問題的頁面時,回傳錯誤。
如果你在讀入 XPS 套件後立即寫入 XPS OM,原始內容可能會遺失或被更改。
以下表格列出了可能發生的一些變更:
| 文件功能 | 行動 |
|---|---|
| 數位簽章 | 從文件中移除 |
| DiscardControl 部分 | 從文件中移除 |
| 外國文件部分 | 從文件中移除 |
| 固定頁面標記 | 修改自原作 |
| 資源字典標記 | 若設定了優化旗標,則從原始內容修改 |
關於在程式中使用 IXpsOMPackage 介面的資訊,請參見「建立空白 XPS OM」。
需求
| Requirement | 價值觀 |
|---|---|
| 最低支援的用戶端 | Windows 7、Windows Vista 搭配 SP2 及 Windows Vista 平台更新 [桌面應用程式 |UWP 應用程式] |
| 支援的最低伺服器 | Windows Server 2008 R2、Windows Server 2008 搭配 SP2 及 Windows Server 2008 平台更新 [桌面應用程式 |UWP 應用程式] |
| 目標平臺 | 窗戶 |
| Header | xpsobjectmodel.h |