Constantes PROPSETFLAG

Les constantes PROPSETFLAG définissent les caractéristiques d’un jeu de propriétés. Les valeurs, répertoriées dans le tableau suivant, sont utilisées dans le paramètre grfFlags des méthodes IPropertySetStorage , la fonction StgCreatePropStg et la fonction StgOpenPropStg .

Constante/valeur Description
PROPSETFLAG_DEFAULT
0
Si elle n’est pas spécifiée, par défaut, seules des valeurs de propriété simples peuvent être écrites dans le jeu de propriétés. L’utilisation de valeurs de propriété simples empêche les jeux de propriétés d’être traités dans le fichier composé et les implémentations autonomes d’IPropertySetStorage. Les valeurs de propriété autres que e doivent être utilisées à cet effet.
PROPSETFLAG_NONSIMPLE
1
Si elles sont spécifiées, les valeurs de propriété non simples peuvent être écrites dans le jeu de propriétés et le jeu de propriétés est enregistré dans un objet de stockage. Les valeurs de propriété non simples incluent celles avec un VARTYPE de VT_STORAGE, VT_STREAM, VT_STORED_OBJECT ou VT_STREAMED_OBJECT. Si cet indicateur n’est pas spécifié, les types non simples ne peuvent pas être écrits dans le jeu de propriétés. Dans le fichier composé et les implémentations autonomes, les jeux de propriétés ne peuvent être traités que si PROPSETFLAG_NONSIMPLE est spécifié.
PROPSETFLAG_ANSI
2
Si elle est spécifiée, toutes les valeurs de chaîne du jeu de propriétés qui ne sont pas explicitement Unicode, c’est-à-dire celles autres que VT_LPWSTR, sont stockées avec la page de code ANSI système actuelle. Pour plus d’informations, consultez GetACP. L’utilisation de cette valeur n’est pas recommandée. Pour plus d'informations, consultez la section Notes.
Si cette valeur est absente, les valeurs de chaîne dans le nouvel ensemble de propriétés sont stockées dans Unicode. Le degré de contrôle fourni par cette valeur est nécessaire pour que les clients qui utilisent les interfaces liées aux propriétés puissent interagir avec des jeux de propriétés standard tels que les informations récapitulatives OLE2, qui peuvent exister dans la page de code ANSI.
PROPSETFLAG_UNBUFFERED
4
Utilisé uniquement avec les fonctions StgCreatePropStg et StgOpenPropStg ; autrement dit, dans les implémentations autonomes des interfaces de jeu de propriétés. Si elles sont spécifiées dans ces fonctions, les modifications apportées au jeu de propriétés ne sont pas mises en mémoire tampon. Au lieu de cela, les modifications sont toujours écrites directement dans le jeu de propriétés. Les appels à des méthodes IPropertyStorage d’un jeu de propriétés le modifient. Toutefois, par défaut, les modifications sont mises en mémoire tampon dans un cache de jeu de propriétés internes et sont ensuite écrites dans le jeu de propriétés lorsque la méthode IPropertyStorage::Commit est appelée.
La définition de PROPSETFLAG_UNBUFFERED diminue les performances, car la mémoire tampon interne du jeu de propriétés est automatiquement vidée après chaque modification apportée au jeu de propriétés. Toutefois, l’écriture directe des modifications évitera les problèmes de coordination. Par exemple, si l’objet de stockage est ouvert en mode transactionné et que le jeu de propriétés est mis en mémoire tampon. Ensuite, si vous appelez la méthode IStorage::Commit sur l’objet de stockage, les modifications du jeu de propriétés ne seront pas récupérées dans le cadre de la transaction, car elles se trouvent dans une mémoire tampon qui n’a pas encore été vidée. Vous devez appeler IPropertyStorage::Commit avant d’appeler IStorage::Commit pour vider la mémoire tampon du jeu de propriétés avant de valider les modifications apportées au stockage. En guise d’alternative à la réalisation de deux appels, vous pouvez définir PROPSETFLAG_UNBUFFERED afin que les modifications soient toujours écrites directement dans le jeu de propriétés et ne soient jamais mises en mémoire tampon dans le cache interne du jeu de propriétés. Ensuite, les modifications sont récupérées lorsque le stockage traité est validée.
PROPSETFLAG_CASE_SENSITIVE
8
S’ils sont spécifiés, les noms de propriétés respectent la casse. Les noms de propriétés respectant la casse ne sont possibles que dans le format de sérialisation du jeu de propriétés version 1. Pour plus d’informations, consultez Sérialisation du jeu de propriétés.

Notes

Ces valeurs peuvent être définies et vérifiées à l’aide d’opérations au niveau du bit qui déterminent la façon dont les jeux de propriétés sont créés et ouverts. Les jeux de propriétés sont créés à l’aide de la méthode IPropertySetStorage::Create ou de la fonction StgCreatePropStg . Ils sont ouverts à l’aide de la méthode IPropertySetStorage::Open ou de la fonction StgOpenPropStg .

Il est recommandé de créer des jeux de propriétés en unicode en ne définissant pas l’indicateur PROPSETFLAG_ANSI dans le paramètre grfFlags . Il est également recommandé d’éviter d’utiliser des valeurs VT_LPSTR et d’utiliser des valeurs VT_LPWSTR à la place. Lorsque la page de code du jeu de propriétés est Unicode, VT_LPSTR valeurs de chaîne sont converties en Unicode lorsqu’elles sont stockées et converties en valeurs de chaîne multioctets une fois récupérées. Lorsque la page de code du jeu de propriétés n’est pas Unicode, les noms de propriétés, les chaînes VT_BSTR et les valeurs de propriété non simples sont convertis en chaînes multioctets lorsqu’ils sont stockés et convertis en Unicode une fois récupérés, le tout à l’aide de la page de code ANSI système actuelle.

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge
Windows 2000 Server [applications de bureau uniquement]
En-tête
Propidl.h

Voir aussi

FmtIdToPropStgName

IPropertySetStorage::Create

IPropertySetStorage::Open

PropStgNameToFmtId

StgCreatePropSetStg

StgCreatePropStg

StgOpenPropStg