Método IStorage::OpenStream (objidl.h)

O método OpenStream abre um objeto de fluxo existente dentro desse objeto de armazenamento no modo de acesso especificado.

Sintaxe

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

Parâmetros

[in] pwcsName

Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo largo que contém o nome do fluxo a ser aberto. Os caracteres de 000 a 01f, que servem como o primeiro caractere do nome do fluxo/armazenamento, são reservados para uso pelo OLE. Essa é uma restrição de arquivo composto, não uma restrição de armazenamento estruturado.

[in] reserved1

Reservado para uso futuro; deve ser NULL.

[in] grfMode

Especifica o modo de acesso a ser atribuído ao fluxo aberto. Para obter mais informações e descrições de valores possíveis, consulte Constantes STGM. Outros modos escolhidos devem pelo menos especificar STGM_SHARE_EXCLUSIVE ao chamar esse método na implementação de arquivo composto.

[in] reserved2

Reservado para uso futuro; deve ser zero.

[out] ppstm

Um ponteiro para a variável de ponteiro IStream que recebe o ponteiro de interface para o objeto de fluxo recém-aberto. Se ocorrer um erro, *ppstm deverá ser definido como NULL.

Retornar valor

Esse método pode retornar um desses valores.

Código de retorno Descrição
S_OK O fluxo foi aberto com êxito.
E_PENDING Somente armazenamento assíncrono: parte ou todos os dados de fluxo não estão disponíveis no momento.
STG_E_ACCESSDENIED Não há permissões suficientes para abrir o fluxo.
STG_E_FILENOTFOUND O fluxo com o nome especificado não existe.
STG_E_INSUFFICIENTMEMORY O fluxo não foi aberto devido à falta de memória.
STG_E_INVALIDFLAG O valor especificado para o parâmetro grfMode não é um valor válido de constantes STGM .
STG_E_INVALIDFUNCTION Não há suporte para a combinação especificada de sinalizadores no parâmetro grfMode ; por exemplo, quando esse método é chamado sem o sinalizador STGM_SHARE_EXCLUSIVE.
STG_E_INVALIDNAME Valor inválido para pwcsName.
STG_E_INVALIDPOINTER O ponteiro especificado para o objeto de fluxo não era válido.
STG_E_INVALIDPARAMETER Um dos parâmetros não era válido.
STG_E_REVERTED O objeto de armazenamento foi invalidado por uma operação de reverter acima dele na árvore de transações.
STG_E_TOOMANYOPENFILES O fluxo não foi aberto porque há muitos arquivos abertos.

Comentários

IStorage::OpenStream abre um objeto de fluxo existente dentro desse objeto de armazenamento no modo de acesso especificado em grfMode. Há restrições sobre as permissões que podem ser dadas em grfMode. Por exemplo, as permissões nesse objeto de armazenamento restringem as permissões em seus fluxos. Em geral, as restrições de acesso em fluxos precisam ser mais rigorosas do que aquelas em seus armazenamentos pai. Os fluxos de arquivo composto devem ser abertos com STGM_SHARE_EXCLUSIVE.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows 2000 Server [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho objidl.h
Biblioteca Uuid.lib
DLL Ole32.dll

Confira também

IStorage – Implementação de arquivo composto

IStorage::CreateStream

Istream