Compartilhar via


Método IPropertySetStorage::Open (propidl.h)

O método Open abre um conjunto de propriedades contido no objeto de armazenamento do conjunto de propriedades.

Sintaxe

HRESULT Open(
  [in]  REFFMTID         rfmtid,
  [in]  DWORD            grfMode,
  [out] IPropertyStorage **ppprstg
);

Parâmetros

[in] rfmtid

O FMTID (identificador de formato) da propriedade definida para ser aberta. Para obter mais informações sobre FMTIDs conhecidos e predefinidos no SDK da Plataforma, consulte Identificadores de formato predefinidos do conjunto de propriedades.

[in] grfMode

O modo de acesso no qual o conjunto de propriedades recém-criado deve ser aberto. Esses sinalizadores são retirados das constantes STGM. Os sinalizadores que podem ser usados e seus significados no contexto desse método são descritos na seção Comentários a seguir.

[out] ppprstg

Um ponteiro para a variável de ponteiro IPropertyStorage que recebe o ponteiro de interface para o subobjeto de armazenamento de propriedades solicitado.

Retornar valor

Esse método dá suporte ao valor de retorno padrão E_UNEXPECTED, além do seguinte:

Comentários

O modo no qual o conjunto de propriedades deve ser aberto é especificado no parâmetro grfMode. Esses sinalizadores são retirados de constantes STGM, mas, para esse método, os valores legais e seus significados são os seguintes (apenas determinadas combinações desses valores de sinalizador são legais).

Valor Significado
STGM_DIRECT Abre o conjunto de propriedades sem um nível adicional de aninhamento de transações. Esse é o padrão (o comportamento se nem STGM_DIRECT nem STGM_TRANSACTED for especificado).
STGM_TRANSACTED Abre o conjunto de propriedades com um nível adicional de aninhamento de transações (além da transação, se houver, nesse objeto de armazenamento do conjunto de propriedades). O modo transacionado está disponível apenas para conjuntos de propriedades não simplificados. As alterações no conjunto de propriedades devem ser confirmadas com uma chamada para IPropertyStorage::Commit antes de ficarem visíveis para a transação neste armazenamento do conjunto de propriedades.
STGM_READ Abre o conjunto de propriedades com acesso de leitura. A permissão de leitura é necessária no armazenamento do conjunto de propriedades.
STGM_WRITE Abre o conjunto de propriedades com acesso de gravação. Nem todas as implementações do IPropertyStorage dão suporte a esse modo.
STGM_READWRITE Abre o conjunto de propriedades com acesso de leitura e gravação. Lembre-se de que esse sinalizador não é o OR binário dos valores STGM_READ e STGM_WRITE.
STGM_SHARE_DENY_NONE As aberturas subsequentes do conjunto de propriedades desse armazenamento do conjunto de propriedades não são negadas ao acesso de leitura ou gravação. (Não disponível em todas as implementações.)
STGM_SHARE_DENY_READ As aberturas subsequentes do conjunto de propriedades desse armazenamento do conjunto de propriedades são negadas ao acesso de leitura. Não disponível em todas as implementações.
STGM_SHARE_DENY_WRITE As aberturas subsequentes do conjunto de propriedades desse armazenamento do conjunto de propriedades são negadas ao acesso de gravação. Esse valor normalmente é usado no modo transacionado para evitar fazer cópias desnecessárias de um objeto aberto por vários usuários. Ou seja, se STGM_TRANSACTED for especificado, mas esse valor não for especificado, um instantâneo será feito, quer haja aberturas subsequentes ou não. Assim, você pode melhorar o desempenho especificando esse valor. Não disponível em todas as implementações.
STGM_SHARE_EXCLUSIVE As aberturas subsequentes do conjunto de propriedades desse armazenamento do conjunto de propriedades não são possíveis. Lembre-se de que esse valor não é um OR binário simples dos elementos STGM_SHARE_DENY_READ e STGM_SHARE_DENY_WRITE.
 

Esse método está sujeito às restrições do IStorage::OpenStream subjacente (para conjuntos de propriedades simples) ou IStorage::OpenStorage (para conjuntos de propriedades não simples). Para obter mais informações sobre conjuntos de propriedades simples e não simples, consulte Armazenamento e objetos Stream para um conjunto de propriedades. Por exemplo, ao usar a Implementação de Arquivo Composto IPropertySetStorage, você deve especificar STGM_SHARE_EXCLUSIVE no parâmetro grfMode para IPropertySetStorage::Open. Por outro lado, se estiver usando a Implementação autônoma IPropertySetStorage, IPropertySetStorage::Open estará sujeito a restrições que se aplicam ao IStorage especificado pelo chamador.

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 propidl.h (inclua Objbase.h)
Biblioteca Uuid.lib
DLL Ole32.dll

Confira também

Exemplo de EnumAll

IPropertySetStorage

IPropertySetStorage::Create

PROPVARIANT

Amostras

Exemplo de WriteRead