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 |