Compartilhar via


Constantes PROPSETFLAG

As constantes PROPSETFLAG definem características de um conjunto de propriedades. Os valores, listados na tabela a seguir, são usados no parâmetro grfFlags dos métodosIPropertySetStorage , na função StgCreatePropStg e na função StgOpenPropStg .

Constante/valor Descrição
PROPSETFLAG_DEFAULT
0
Se não for especificado, por padrão, somente valores de propriedade simples poderão ser gravados no conjunto de propriedades. O uso de valores de propriedade simples impede que conjuntos de propriedades sejam transacionados no arquivo composto e implementações autônomas de IPropertySetStorage. Os valores de propriedade não e devem ser usados para essa finalidade.
PROPSETFLAG_NONSIMPLE
1
Se especificado, os valores de propriedade não simples podem ser gravados no conjunto de propriedades e o conjunto de propriedades é salvo em um objeto de armazenamento. Os valores de propriedade não simples incluem aqueles com um VARTYPE de VT_STORAGE, VT_STREAM, VT_STORED_OBJECT ou VT_STREAMED_OBJECT. Se esse sinalizador não for especificado, os tipos não simples não poderão ser gravados no conjunto de propriedades. No arquivo composto e nas implementações autônomas, os conjuntos de propriedades só poderão ser transacionados se PROPSETFLAG_NONSIMPLE for especificado.
PROPSETFLAG_ANSI
2
Se especificado, todos os valores de cadeia de caracteres no conjunto de propriedades que não são explicitamente Unicode, ou seja, aqueles que não sejam VT_LPWSTR, são armazenados com a página de código ANSI do sistema atual. Para obter mais informações, consulte GetACP. O uso desse valor não é recomendado. Para obter mais informações, consulte Comentários.
Se esse valor estiver ausente, os valores de cadeia de caracteres no novo conjunto de propriedades serão armazenados em Unicode. O grau de controle que esse valor fornece é necessário para que os clientes que usam as interfaces relacionadas à propriedade possam interoperar com conjuntos de propriedades padrão, como as informações de resumo OLE2, que podem existir na página de código ANSI.
PROPSETFLAG_UNBUFFERED
4
Usado somente com as funções StgCreatePropStg e StgOpenPropStg ; ou seja, nas implementações autônomas de interfaces de conjunto de propriedades. Se especificado nessas funções, as alterações no conjunto de propriedades não serão armazenadas em buffer. Em vez disso, as alterações são sempre gravadas diretamente no conjunto de propriedades. As chamadas para um conjunto de propriedades dos métodos IPropertyStorage serão alteradas. No entanto, por padrão, as alterações são armazenadas em buffer em um cache de conjunto de propriedades interno e são gravadas posteriormente no conjunto de propriedades quando o método IPropertyStorage::Commit é chamado.
Definir PROPSETFLAG_UNBUFFERED diminui o desempenho porque o buffer interno do conjunto de propriedades é liberado automaticamente após cada alteração no conjunto de propriedades. No entanto, gravar alterações diretamente evitará problemas de coordenação. Por exemplo, se o objeto de armazenamento for aberto no modo transacionado e o conjunto de propriedades estiver armazenado em buffer. Em seguida, se você chamar o método IStorage::Commit no objeto de armazenamento, as alterações do conjunto de propriedades não serão coletadas como parte da transação, pois elas estão em um buffer que ainda não foi liberado. Você deve chamar IPropertyStorage::Commit antes de chamar IStorage::Commit para liberar o buffer do conjunto de propriedades antes de confirmar alterações no armazenamento. Como alternativa para fazer duas chamadas, você pode definir PROPSETFLAG_UNBUFFERED para que as alterações sejam sempre gravadas diretamente no conjunto de propriedades e nunca sejam armazenadas em buffer no cache interno do conjunto de propriedades. Em seguida, as alterações serão coletadas quando o armazenamento transacionado for confirmado.
PROPSETFLAG_CASE_SENSITIVE
8
Se especificado, os nomes de propriedade diferenciam maiúsculas de minúsculas. Os nomes de propriedades que diferenciam maiúsculas de minúsculas só são possíveis no formato de serialização do conjunto de propriedades da versão 1. Para obter mais informações, consulte Serialização do conjunto de propriedades.

Comentários

Esses valores podem ser definidos e verificados usando operações bit a bit que determinam como os conjuntos de propriedades são criados e abertos. Os conjuntos de propriedades são criados usando o método IPropertySetStorage::Create ou a função StgCreatePropStg . Eles são abertos usando o método IPropertySetStorage::Open ou a função StgOpenPropStg .

É recomendável que os conjuntos de propriedades sejam criados como Unicode não definindo o sinalizador PROPSETFLAG_ANSI no parâmetro grfFlags . Também é recomendável que você evite usar valores VT_LPSTR e use VT_LPWSTR valores. Quando a página de código do conjunto de propriedades é Unicode, VT_LPSTR valores de cadeia de caracteres são convertidos em Unicode quando armazenados e convertidos novamente em valores de cadeia de caracteres multibyte quando recuperados. Quando a página de código do conjunto de propriedades não é Unicode, nomes de propriedade, cadeias de caracteres de VT_BSTR e valores de propriedade não simples são convertidos em cadeias de caracteres multibyte quando armazenados e convertidos novamente em Unicode quando recuperados, todos usando a página de código ANSI do sistema atual.

Requisitos

Requisito Valor
Cliente mínimo com suporte
Windows 2000 Professional [somente aplicativos da área de trabalho]
Servidor mínimo com suporte
Windows 2000 Server [somente aplicativos da área de trabalho]
Cabeçalho
Propidl.h

Confira também

FmtIdToPropStgName

IPropertySetStorage::Create

IPropertySetStorage::Open

PropStgNameToFmtId

StgCreatePropSetStg

StgCreatePropStg

StgOpenPropStg