Metodo IStorage::OpenStream (objidl.h)

Il metodo OpenStream apre un oggetto flusso esistente all'interno di questo oggetto di archiviazione nella modalità di accesso specificata.

Sintassi

HRESULT OpenStream(
  [in]  const OLECHAR *pwcsName,
  [in]  void          *reserved1,
  [in]  DWORD         grfMode,
  [in]  DWORD         reserved2,
  [out] IStream       **ppstm
);

Parametri

[in] pwcsName

Puntatore a una stringa Unicode con terminazione Null a caratteri wide contenente il nome del flusso da aprire. I caratteri da 000 a 01f, che fungono da primo carattere del nome del flusso/archivio, sono riservati all'OLE. Si tratta di una limitazione del file composto, non della restrizione di un archivio strutturato.

[in] reserved1

Riservato per uso futuro; deve essere NULL.

[in] grfMode

Specifica la modalità di accesso da assegnare al flusso aperto. Per altre informazioni e descrizioni dei valori possibili, vedere Costanti STGM. Le altre modalità scelte devono almeno specificare STGM_SHARE_EXCLUSIVE quando si chiama questo metodo nell'implementazione del file composto.

[in] reserved2

Riservato per utilizzi futuri; deve essere zero.

[out] ppstm

Puntatore alla variabile del puntatore IStream che riceve il puntatore dell'interfaccia all'oggetto flusso appena aperto. Se si verifica un errore, *ppstm deve essere impostato su NULL.

Valore restituito

Questo metodo può restituire uno di questi valori.

Codice restituito Descrizione
S_OK Il flusso è stato aperto correttamente.
E_PENDING Solo archiviazione asincrona: parte o tutti i dati del flusso non sono attualmente disponibili.
STG_E_ACCESSDENIED Autorizzazioni non sufficienti per aprire il flusso.
STG_E_FILENOTFOUND Il flusso con il nome specificato non esiste.
STG_E_INSUFFICIENTMEMORY Il flusso non è stato aperto a causa di una mancanza di memoria.
STG_E_INVALIDFLAG Il valore specificato per il parametro grfMode non è un valore di costanti STGM valido.
STG_E_INVALIDFUNCTION La combinazione specificata di flag nel parametro grfMode non è supportata; ad esempio, quando questo metodo viene chiamato senza il flag STGM_SHARE_EXCLUSIVE.
STG_E_INVALIDNAME Valore non valido per pwcsName.
STG_E_INVALIDPOINTER Il puntatore specificato per l'oggetto flusso non è valido.
STG_E_INVALIDPARAMETER Uno dei parametri non è valido.
STG_E_REVERTED L'oggetto di archiviazione è stato invalidato da un'operazione di ripristino sopra di essa nell'albero delle transazioni.
STG_E_TOOMANYOPENFILES Il flusso non è stato aperto perché sono presenti troppi file aperti.

Commenti

IStorage::OpenStream apre un oggetto flusso esistente all'interno di questo oggetto di archiviazione nella modalità di accesso specificata in grfMode. Esistono restrizioni sulle autorizzazioni che possono essere concesse in grfMode. Ad esempio, le autorizzazioni per questo oggetto di archiviazione limitano le autorizzazioni per i flussi. In generale, le restrizioni di accesso per i flussi devono essere più rigide rispetto a quelle nelle risorse di archiviazione padre. I flussi di file composti devono essere aperti con STGM_SHARE_EXCLUSIVE.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione objidl.h
Libreria Uuid.lib
DLL Ole32.dll

Vedi anche

IStorage - Implementazione di file composti

IStorage::CreateStream

IStream