Constantes PROPSETFLAG

Las constantes PROPSETFLAG definen las características de un conjunto de propiedades. Los valores enumerados en la tabla siguiente se usan en el parámetro grfFlags de métodos IPropertySetStorage , la función StgCreatePropStg y la función StgOpenPropStg .

Constante o valor Descripción
PROPSETFLAG_DEFAULT
0
Si no se especifica, de forma predeterminada solo se pueden escribir valores de propiedad simples en el conjunto de propiedades. El uso de valores de propiedad simples impide que los conjuntos de propiedades se realicen transacciones en el archivo compuesto y las implementaciones independientes de IPropertySetStorage. Los valores de propiedad que no son e se deben usar para este fin.
PROPSETFLAG_NONSIMPLE
1
Si se especifica, los valores de propiedad nomple se pueden escribir en el conjunto de propiedades y el conjunto de propiedades se guarda en un objeto de almacenamiento. Los valores de propiedad no simples incluyen aquellos con un VARTYPE de VT_STORAGE, VT_STREAM, VT_STORED_OBJECT o VT_STREAMED_OBJECT. Si no se especifica esta marca, no se pueden escribir tipos no simples en el conjunto de propiedades. En el archivo compuesto y las implementaciones independientes, los conjuntos de propiedades solo se pueden realizar transacciones si se especifica PROPSETFLAG_NONSIMPLE .
PROPSETFLAG_ANSI
2
Si se especifica, todos los valores de cadena del conjunto de propiedades que no son Unicode explícitamente, es decir, los que no sean VT_LPWSTR, se almacenan con la página de códigos ANSI del sistema actual. Para obtener más información, vea GetACP. No se recomienda el uso de este valor. Para obtener más información, vea la sección Comentarios.
Si este valor no está presente, los valores de cadena del nuevo conjunto de propiedades se almacenan en Unicode. El grado de control que proporciona este valor es necesario para que los clientes que usan las interfaces relacionadas con propiedades puedan interoperar con conjuntos de propiedades estándar, como la información de resumen OLE2, que puede existir en la página de códigos ANSI.
PROPSETFLAG_UNBUFFERED
4
Solo se usa con las funciones StgCreatePropStg y StgOpenPropStg ; es decir, en las implementaciones independientes de las interfaces de conjunto de propiedades. Si se especifica en estas funciones, los cambios realizados en el conjunto de propiedades no se almacenan en búfer. En su lugar, los cambios siempre se escriben directamente en el conjunto de propiedades. Las llamadas a un conjunto de propiedades IPropertyStorage métodos lo cambiarán. Sin embargo, de forma predeterminada, los cambios se almacenan en búfer en una caché interna del conjunto de propiedades y se escriben posteriormente en el conjunto de propiedades cuando se llama al método IPropertyStorage::Commit .
Establecer PROPSETFLAG_UNBUFFERED reduce el rendimiento porque el búfer interno del conjunto de propiedades se vacía automáticamente después de cada cambio en el conjunto de propiedades. Sin embargo, escribir cambios directamente impedirá problemas de coordinación. Por ejemplo, si el objeto de almacenamiento se abre en modo de transacción y el conjunto de propiedades se almacena en búfer. A continuación, si llama al método IStorage::Commit en el objeto de almacenamiento, los cambios del conjunto de propiedades no se recogerán como parte de la transacción, ya que están en un búfer que aún no se ha vaciado. Debe llamar a IPropertyStorage::Commit antes de llamar a IStorage::Commit para vaciar el búfer del conjunto de propiedades antes de confirmar los cambios en el almacenamiento. Como alternativa a realizar dos llamadas, puede establecer PROPSETFLAG_UNBUFFERED para que los cambios siempre se escriban directamente en el conjunto de propiedades y nunca se almacenen en búfer en la memoria caché interna del conjunto de propiedades. A continuación, los cambios se recogerán cuando se confirme el almacenamiento de transacciones.
PROPSETFLAG_CASE_SENSITIVE
8
Si se especifica, los nombres de propiedad distinguen mayúsculas de minúsculas. Los nombres de propiedad que distinguen mayúsculas de minúsculas solo son posibles en el formato de serialización del conjunto de propiedades de la versión 1. Para obtener más información, vea Serialización del conjunto de propiedades.

Comentarios

Estos valores se pueden establecer y comprobar mediante operaciones bit a bit que determinan cómo se crean y abren los conjuntos de propiedades. Los conjuntos de propiedades se crean mediante el método IPropertySetStorage::Create o la función StgCreatePropStg . Se abren mediante el método IPropertySetStorage::Open o la función StgOpenPropStg .

Se recomienda que los conjuntos de propiedades se creen como Unicode estableciendo la marca PROPSETFLAG_ANSI en el parámetro grfFlags . También se recomienda evitar el uso de valores de VT_LPSTR y usar VT_LPWSTR valores en su lugar. Cuando la página de códigos del conjunto de propiedades es Unicode, VT_LPSTR valores de cadena se convierten en Unicode cuando se almacenan y se convierten de nuevo en valores de cadena multibyte cuando se recuperan. Cuando la página de códigos del conjunto de propiedades no es Unicode, los nombres de propiedad, las cadenas VT_BSTR y los valores de propiedad nomple se convierten en cadenas multibyte cuando se almacenan y se convierten de nuevo en Unicode cuando se recuperan, todo ello mediante la página de códigos ANSI del sistema actual.

Requisitos

Requisito Value
Cliente mínimo compatible
Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible
Windows 2000 Server [solo aplicaciones de escritorio]
Encabezado
Propidl.h

Consulte también

FmtIdToPropStgName

IPropertySetStorage::Create

IPropertySetStorage::Open

PropStgNameToFmtId

StgCreatePropSetStg

StgCreatePropStg

StgOpenPropStg