Compartir a través de


Información sobre TZDEFINITION persistente en una secuencia para confirmar una propiedad binaria

Las propiedades de zona horaria PidLidAppointmentTimeZoneDefinitionEndDisplay, PidLidAppointmentTimeZoneDefinitionRecur y PidLidAppointmentTimeZoneDefinitionStartDisplay son propiedades con nombre binario, cada una de las cuales contiene una secuencia que se asigna al formato persistente de una estructura TZDEFINITION .

En este tema se describe un pequeño formato endian que se puede usar al conservar TZDEFINITION en una secuencia para confirmar en una de las tres propiedades binarias. Use el mismo formato endian en un analizador para interpretar un valor de secuencia obtenido de una de estas propiedades.

BYTE  bMajorVersion;    // breaking change
BYTE  bMinorVersion;    // extensibility
WORD  cbHeader;         // size of following data until TZREG sub structure
WORD  wFlags;
if (TZDEFINITION_FLAG_VALID_GUID)
   GUID  guid;                // guid
if (TZDEFINITION_FLAG_VALID_KEYNAME)     
    WORD   cchKeyName;        // does not include null char
    WCHAR  rgchKeyName;       // not null terminated
    WORD  cRules;             // number of rules
// for each rule
   BYTE        bMajorVersion;         // breaking change
   BYTE        bMinorVersion;         // extensibility
   WORD        cbRule;                // size of following data
   WORD        wFlags;                // flags
   SYSTEMTIME  stStart;               // GMT when this rule starts
// Following are the fields of the TZREG sub structure
   long        lBias;                // offset from GMT
   long        lStandardBias;        // offset from bias during standard time
   long        lDaylightBias;        // offset from bias during daylight time
   SYSTEMTIME  stStandardDate;       // time to switch to standard time
   SYSTEMTIME  stDaylightDate;       // time to switch to daylight time

El número de versión principal se usa para realizar un cambio importante. Los clientes que no estén familiarizados con el número de versión principal deben tratar la propiedad como si no estuviera allí. Los clientes que escriben la estructura deben especificar la constante TZ_BIN_VERSION_MAJOR.

El número de versión secundaria se usa para la extensibilidad. Los clientes que no están familiarizados con el número de versión secundaria deben leer los datos que entienden y omitir los datos que se pueden anexar a cada regla o a la secuencia general. Los clientes que escriben la estructura deben especificar la constante TZ_BIN_VERSION_MINOR.

Si un analizador no entiende la versión principal del encabezado, no debe leer el resto de la estructura y comportarse como si faltasen los datos. Si un analizador no entiende la versión secundaria del encabezado, debe usar cbHeader para omitir las partes que no comprende y avanzar para leer las partes de la secuencia que comprende.

El valor de wFlags siempre es TZDEFINITION_FLAG_VALID_KEYNAME. El nombre de clave tiene un tamaño máximo de MAX_PATH.

Si un analizador no reconoce la versión principal de una regla, el cliente debe omitir la regla y usar cbRule para avanzar a la siguiente regla. Si un analizador no reconoce la versión secundaria de una regla, el cliente solo debe analizar las partes de la regla que comprende.

Al conservar una estructura TZDEFINITION en una secuencia, un analizador no debe intentar escribir información que no comprenda.

El número máximo de reglas es 1024.

Tenga en cuenta que la estructura TZREG se conserva aquí de forma diferente a cuando se conserva solo, por lo que no se puede usar el mismo código para analizarla.

Vea también