共用方式為


IXpsOMObjectFactory::CreatePackageWriterOnFile 方法 (xpsobjectmodel.h)

開啟檔案,以將 XPS OM 的內容寫入 XPS 套件。

語法

HRESULT CreatePackageWriterOnFile(
  [in]          LPCWSTR                   fileName,
  [in]          LPSECURITY_ATTRIBUTES     securityAttributes,
  [in]          DWORD                     flagsAndAttributes,
  [in]          BOOL                      optimizeMarkupSize,
  [in]          XPS_INTERLEAVING          interleaving,
  [in]          IOpcPartUri               *documentSequencePartName,
  [in]          IXpsOMCoreProperties      *coreProperties,
  [in]          IXpsOMImageResource       *packageThumbnail,
  [in]          IXpsOMPrintTicketResource *documentSequencePrintTicket,
  [in]          IOpcPartUri               *discardControlPartName,
  [out, retval] IXpsOMPackageWriter       **packageWriter
);

參數

[in] fileName

要建立的檔名。

[in] securityAttributes

SECURITY_ATTRIBUTES 結構,其中包含兩個個別但相關的成員:

  • lpSecurityDescriptor:選擇性的安全性描述元
  • bInheritHandle:布爾值,決定子進程是否可以繼承傳回的句柄
如果 lpSecurityDescriptorNULL,則會將與傳回句柄相關聯的檔案或裝置指派為預設的安全性描述元。

如需 securityAttributes 的詳細資訊,請參閱 CreateFile

[in] flagsAndAttributes

指定要建立之檔案的設定和屬性。 對於大部分檔案,可以使用 FILE_ATTRIBUTE_NORMAL 值。

如需此參數的詳細資訊,請參閱 CreateFile

[in] optimizeMarkupSize

布爾值,指出當 XPS OM 的內容寫入 XPS 套件時,檔標記是否會針對大小進行優化。

意義
封裝寫入器會嘗試優化標記的大小下限。
封裝寫入器不會嘗試執行任何優化。

[in] interleaving

指定將 XPS OM 的內容寫入檔案時是否交錯。

[in] documentSequencePartName

IOpcPartUri 介面,其中包含新檔案中文件順序的部分名稱。

[in] coreProperties

IXpsOMCoreProperties 介面,其中包含要提供給新檔案的核心文件屬性。 此參數可以設定為 NULL

[in] packageThumbnail

IXpsOMImageResource 介面,其中包含要指派給新檔案的縮圖影像。 此參數可以設定為 NULL

[in] documentSequencePrintTicket

IXpsOMPrintTicketResource 介面,其中包含要指派給新檔案的套件層級列印票證。 此參數可以設定為 NULL

[in] discardControlPartName

IOpcPartUri 介面,其中包含捨棄控件元件的名稱。 此參數可以設定為 NULL

[out, retval] packageWriter

這個方法所建立之新 IXpsOMPackageWriter 介面的指標。

傳回值

方法會傳回 HRESULT。 可能的值包括下列數據表中的值,但不限於這些值。 如需此表格中未列出的 XPS 檔 API 傳回值的相關信息,請參閱 XPS 檔錯誤

傳回碼 描述
S_OK
此方法已成功。
E_POINTER
filenamedocumentSequencePartNamepackageWriterNULL
XPS_E_NO_CUSTOM_OBJECTS
corePropertiesdocumentSequencePrintTicketpackageThumbnail 不會指向辨識的介面實作。 不支援 XPS 檔 API 介面的自定義實作。
 

這個方法會呼叫 封裝 API。 如需封裝 API 傳回值的相關信息,請參閱 封裝錯誤

備註

檔案隨即開啟並初始化,然後會使用傳回的 IXpsOMPackageWriter 介面來寫入內容類型、套件關聯性、核心屬性、檔順序資源和文件順序關聯性。

如果 documentSequencePrintTicket 設定為 NULL ,且 交錯 的值 是XPS_INTERLEAVING_ON,這個方法會建立空白的作業層級列印票證,並將關聯性新增至空白列印票證。 這是為了提供更有效率的串流耗用量來完成封裝。

如果 documentSequencePrintTicket 設定為 NULL ,且 錯的值 XPS_INTERLEAVING_OFF,則不會建立空白的列印票證。

規格需求

需求
最低支援的用戶端 適用於 Windows Vista 的 Windows 7、Windows Vista SP2 和平臺更新 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 R2、Windows Server 2008 SP2 和 Platform Update for Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 xpsobjectmodel.h

另請參閱

CreateFile

IXpsOMCoreProperties

IXpsOMImageResource

IXpsOMObjectFactory

IXpsOMPackageWriter

IXpsOMPrintTicketResource

封裝錯誤

SECURITY_ATTRIBUTES

XML Paper Specification

XPS 檔案錯誤