Método IStorage::OpenStorage (objidl.h)
O método OpenStorage abre um objeto de armazenamento existente com o nome especificado no modo de acesso especificado.
Sintaxe
HRESULT OpenStorage(
[in] const OLECHAR *pwcsName,
[in] IStorage *pstgPriority,
[in] DWORD grfMode,
[in] SNB snbExclude,
[in] DWORD reserved,
[out] IStorage **ppstg
);
Parâmetros
[in] pwcsName
Um ponteiro para uma cadeia de caracteres Unicode terminada em nulo largo que contém o nome do objeto de armazenamento 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. Ele será ignorado se pstgPriority não for NULL.
[in] pstgPriority
Deve ser NULL. Um valor não NULL retornará STG_E_INVALIDPARAMETER.
[in] grfMode
Especifica o modo de acesso a ser usado ao abrir o objeto de armazenamento. Para obter descrições dos valores possíveis, consulte Constantes STGM. Outros modos escolhidos devem pelo menos especificar STGM_SHARE_EXCLUSIVE ao chamar esse método.
[in] snbExclude
Deve ser NULL. Um valor não NULL retornará STG_E_INVALIDPARAMETER.
[in] reserved
Reservado para uso futuro; deve ser zero.
[out] ppstg
Quando bem-sucedido, ponteiro para o local de um ponteiro IStorage para o objeto de armazenamento aberto. Esse parâmetro será definido como NULL se ocorrer um erro.
Retornar valor
Esse método pode retornar um desses valores.
Código de retorno | Descrição |
---|---|
S_OK | O objeto de armazenamento foi aberto com êxito. |
E_PENDING | Somente armazenamento assíncrono: parte ou todos os dados do armazenamento estão indisponíveis no momento. |
STG_E_ACCESSDENIED | Não há permissões suficientes para abrir o objeto de armazenamento. |
STG_E_FILENOTFOUND | O objeto de armazenamento com o nome especificado não existe. |
STG_E_INSUFFICIENTMEMORY | O objeto de armazenamento 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 . |
STG_E_INVALIDNAME | Não é um valor válido para pwcsName. |
STG_E_INVALIDPOINTER | O ponteiro especificado para o objeto de armazenamento 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 objeto de armazenamento não foi criado porque há muitos arquivos abertos. |
STG_S_CONVERTED | O fluxo existente com o nome especificado foi substituído por um novo objeto de armazenamento que contém um único fluxo chamado CONTENTS. No modo direto, o novo armazenamento é gravado imediatamente no disco. No modo transacionado, o novo armazenamento é gravado em um armazenamento temporário na memória e, posteriormente, gravado no disco quando ele é confirmado. |
Comentários
Se o parâmetro pstgPriority for NULL, ele será ignorado. Se o parâmetro pstgPriority não for NULL, ele será um ponteiro IStorage para uma abertura anterior de um elemento do objeto de armazenamento, geralmente um que foi aberto no modo de prioridade. O objeto de armazenamento deve ser fechado e reaberto de acordo com grfMode. Quando o método IStorage::OpenStorage retorna, pstgPriority não é mais válido. Use o valor fornecido no parâmetro ppstg .
Os objetos de armazenamento podem ser abertos com STGM_DELETEONRELEASE, caso em que o objeto é destruído quando recebe sua versão final. Isso é útil para criar objetos de armazenamento temporários.
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 |