IAppxFactory3::CreatePackageReader2 方法 (appxpackaging.h)
重要
某些資訊與發行前版本產品有關,在發行前版本產品可能經過大幅修改。 Microsoft未就此處提供的資訊提供任何明示或默示擔保。
從 IStream提供的內容建立唯讀套件讀取器,並搭配選擇性參數來指定封裝的預期摘要。 此方法不會驗證數字簽名。
語法
HRESULT CreatePackageReader2(
[in] IStream *inputStream,
[in,optional] LPCWSTR expectedDigest,
[out] IAppxPackageReader **packageReader
);
參數
[in] inputStream
傳遞封裝以供讀取的輸入數據流。 數據流必須支援 ISequentialStream::Read、IStream::Seek,以及 IStream::Stat。如果這些方法失敗,則其錯誤碼可能會傳遞至此方法並傳回。
[in,optional] expectedDigest
包含預期摘要的 LPCWSTR,這是封裝檔案的哈希表示法。
[out] packageReader
已建立的封裝讀取器。
傳回值
如果方法成功,則會傳回 S_OK。 否則,它會傳回錯誤碼,其中包含但不限於下表中的錯誤碼。
傳回碼 | 描述 |
---|---|
APPX_E_INTERLEAVING_NOT_ALLOWED | inputStream 所傳遞的 ZIP 檔案是交錯的 OPC 套件。 |
APPX_E_RELATIONSHIPS_NOT_ALLOWED | inputStream 所傳遞的 OPC 套件 包含 OPC 套件/元件關聯性。 |
APPX_E_MISSING_REQUIRED_FILE | inputStream 所傳遞的 OPC 套件 沒有指令清單、區塊對應,或 CI 目錄存在時簽章檔案。 |
APPX_E_INVALID_MANIFEST | 套件指令清單無效。 |
APPX_E_INVALID_BLOCKMAP | 套件區塊對應無效、ZIP 中央目錄中的檔案清單不符合區塊對應中的檔案清單,或 ZIP 中央目錄中所列的檔案大小不符合區塊對應中所列的檔案和區塊大小。 |
APPX_E_DIGEST_MISMATCH | 對象的摘要與 expectedDigest中提供的摘要不符。 |
言論
CreatePackageReader2 方法會立即透過數據流擷取應用程式套件的使用量元素,並驗證其內容。 只有當 OPC 套件和所有使用量元素(包括 ZIP 中央目錄、指令清單、[Content_Types].xml和區塊對應)有效時,此方法才會成功。
呼叫 IAppxDigestProvider::GetDigest,以取得 expecteDigest 參數的摘要字串。
例子
如需範例,請參閱 快速入門:擷取應用程式套件內容 和 快速入門:讀取應用程式套件指令清單資訊。
要求
要求 | 價值 |
---|---|
標頭 | appxpackaging.h |