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 |