Share via


Metodo IAppxFile::GetStream (appxpackaging.h)

Ottiene un flusso di sola lettura che contiene il contenuto non compresso del file.

Sintassi

HRESULT GetStream(
  [out, retval] IStream **stream
);

Parametri

[out, retval] stream

Tipo: IStream**

Flusso di sola lettura che contiene il contenuto non compresso del file.

Valore restituito

Tipo: HRESULT

Se il metodo ha esito positivo, restituisce S_OK.

[Irreversibile] Codici di errore OPC (0x8051xxxx) se l'intestazione o il descrittore di dati del file locale del file non è valido. Questo errore fa sì che l'intero consumer ZIP OPC entri in uno stato non valido, non è possibile accedere ad altri file dall'oggetto IAppxPackageReader dopo questo errore.

HRESULT_FROM_WIN32(ERROR_CRC) (0x80070017) se il flusso è stato letto in precedenza e il relativo CRC non è valido.

Valore restituito dai metodi IStream Read e CopyTo restituiti

[Irreversibile] HRESULT_FROM_WIN32(ERROR_CRC) (0x80070017) se l'intero flusso è stato letto e il relativo CRC non è valido

APPX_E_CORRUPT_CONTENT (0x80080206) se il contenuto del file non può essere decompresso (a causa del danneggiamento del file ZIP)

HRESULT_FROM_WIN32(ERROR_INVALID_DATA) (0x8007000d) se un blocco nel file non può essere letto completamente o le dimensioni del blocco sono impreviste

APPX_E_BLOCK_HASH_INVALID (0x80080207) se il contenuto dei blocchi di questo file non è coerente con il relativo hash nella mappa blocchi

Commenti

Il flusso restituito è di sola lettura e clonabile.

La convalida dei file di payload è "differita". Nella prima chiamata al metodo GetStream del file, l'intestazione del file locale e il descrittore di dati dell'elemento zip corrispondente vengono convalidati e potrebbero causare l'esito negativo di GetStream . Le chiamate successive a GetStream nello stesso file non ripetono queste convalide. Il checksum CRC dell'elemento del file ZIP viene convalidato solo se il flusso viene letto interamente in ordine sequenziale.

Le istanze di IStream restituite per i file di payload sono ottimizzate per l'accesso sequenziale. Anche se l'accesso casuale al flusso è supportato, l'accesso casuale potrebbe essere più lento e più intensivo della CPU. È consigliabile una sola lettura sequenziale di questi flussi quando possibile. La lettura dello stesso intervallo più volte è supportata ma non consigliata per le prestazioni; prendere in considerazione la memorizzazione nella cache di tali intervalli se lo scenario di utilizzo richiede.

Requisiti

Requisito Valore
Client minimo supportato Windows 8 [solo app desktop]
Server minimo supportato Windows Server 2012 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione appxpackaging.h

Vedi anche

IAppxFile

IAppxPackageReader