Enumeração STGC (wtypes.h)
As constantes de enumeração STGC especificam as condições para executar a operação de confirmação nos métodos IStorage::Commit e IStream::Commit .
Syntax
typedef enum tagSTGC {
STGC_DEFAULT = 0,
STGC_OVERWRITE = 1,
STGC_ONLYIFCURRENT = 2,
STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE = 4,
STGC_CONSOLIDATE = 8
} STGC;
Constantes
STGC_DEFAULT Valor: 0 Você pode especificar essa condição com STGC_CONSOLIDATE ou alguma combinação dos outros três sinalizadores nesta lista de elementos. Use esse valor para aumentar a legibilidade do código. |
STGC_OVERWRITE Valor: 1 A operação de confirmação pode substituir os dados existentes para reduzir os requisitos gerais de espaço. Esse valor não é recomendado para uso típico porque não é tão robusto quanto o valor padrão. Nesse caso, é possível que a operação de confirmação falhe depois que os dados antigos forem substituídos, mas antes que os novos dados sejam completamente confirmados. Em seguida, nem a versão antiga nem a nova versão do objeto de armazenamento estarão intactas. Você pode usar esse valor nos seguintes casos:
Lembre-se de que a operação de confirmação verifica se há espaço adequado antes que ocorra qualquer substituição. Portanto, mesmo com esse valor especificado, se a operação de confirmação falhar devido aos requisitos de espaço, os dados antigos serão seguros. No entanto, é possível que a perda de dados ocorra com o valor de STGC_OVERWRITE especificado se a operação de confirmação falhar por qualquer motivo diferente da falta de espaço em disco. |
STGC_ONLYIFCURRENT Valor: 2 Impede que vários usuários de um objeto de armazenamento substituam as alterações uns dos outros. A operação de confirmação ocorrerá somente se não houver alterações no objeto de armazenamento salvo porque o usuário o abriu mais recentemente. Portanto, a versão salva do objeto de armazenamento é a mesma versão que o usuário está editando. Se outros usuários alterarem o objeto de armazenamento, a operação de confirmação falhará e retornará o valor STG_E_NOTCURRENT. Para substituir esse comportamento, chame o método IStorage::Commit ou IStream::Commit novamente usando o valor STGC_DEFAULT . |
STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE Valor: 4 Confirma as alterações em um cache de disco write-behind, mas não salva o cache no disco. Em um cache de disco write-behind, a operação que grava no disco realmente grava em um cache de disco, aumentando o desempenho. O cache é eventualmente gravado no disco, mas geralmente não até que a operação de gravação já tenha retornado. O aumento de desempenho ocorre às custas de um risco aumentado de perda de dados se ocorrer um problema antes que o cache seja salvo e os dados no cache sejam perdidos. Se você não especificar esse valor, a confirmação de alterações em objetos de armazenamento no nível raiz será robusta mesmo se um cache de disco for usado. O processo de confirmação em duas fases garante que os dados sejam armazenados no disco e não apenas no cache de disco. |
STGC_CONSOLIDATE Valor: 8 Windows 2000 e Windows XP: indica que um armazenamento deve ser consolidado depois de confirmado, resultando em um arquivo menor no disco. Esse sinalizador é válido somente no objeto de armazenamento mais externo que foi aberto no modo transacionado. Não é válido para fluxos. O sinalizador STGC_CONSOLIDATE pode ser combinado com qualquer outro sinalizador STGC. |
Comentários
Você pode especificar STGC_DEFAULT ou alguma combinação de STGC_OVERWRITE, STGC_ONLYIFCURRENT e STGC_DANGEROUSLYCOMMITMERELYTODISKCACHE para operações de confirmação normais. Você pode especificar STGC_CONSOLIDATE com qualquer outro sinalizador STGC.
Normalmente, use STGC_ONLYIFCURRENT para proteger o objeto de armazenamento em casos em que mais de um usuário pode editar o objeto simultaneamente.
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 | wtypes.h |