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 les 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é non-e doivent être utilisées à cet effet.
PROPSETFLAG_NONSIMPLE
1
Si elle est spécifiée, 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 peuvent être traités uniquement 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 du nouveau jeu de propriétés sont stockées dans Unicode. Le degré de contrôle fourni par cette valeur est nécessaire afin que les clients utilisant les interfaces liées aux propriétés puissent interagir avec des ensembles 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 à une propriété définie par les méthodes IPropertyStorage le modifient. Toutefois, par défaut, les modifications sont mises en mémoire tampon dans un cache de jeu de propriétés interne et sont ensuite écrites dans le jeu de propriétés lorsque la méthode IPropertyStorage::Commit est appelée.
La définition PROPSETFLAG_UNBUFFERED réduit 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 de modifications directement empêchera 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 apportées au 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 à 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 seront récupérées lorsque le stockage traité est validé.
PROPSETFLAG_CASE_SENSITIVE
8
Si spécifié, les noms de propriétés respectent la casse. Les noms de propriétés sensibles à la casse ne sont possibles que dans le format de sérialisation de l’ensemble de propriétés version 1. Pour plus d’informations, consultez Sérialisation du jeu de propriétés.

Remarques

Ces valeurs peuvent être définies et vérifiées à l’aide d’opérations au niveau du bit qui déterminent comment 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 ensembles 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 quand elles sont stockées et converties en valeurs de chaîne multioctets lors de la récupération. 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 converties en chaînes multioctets lorsqu’elles sont stockées et converties en Unicode lors de la récupération, toutes à 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