text: /**
   * This file has no copyright assigned and is placed in the Public Domain.
   * This file is part of the w64 mingw-runtime package.
   * No warranty is given; refer to the file DISCLAIMER.PD within this package.
   */
  #ifndef SCHEMA_STRINGS
  
  #ifndef SCHEMADEF_H
  #define SCHEMADEF_H
  
  #define SCHEMADEF_VERSION 1
  
  struct TMPROPINFO {
    LPCWSTR pszName;
    SHORT sEnumVal;
    BYTE bPrimVal;
  };
  
  struct TMSCHEMAINFO {
    DWORD dwSize;
    int iSchemaDefVersion;
    int iThemeMgrVersion;
    int iPropCount;
    const struct TMPROPINFO *pPropTable;
  };
  
  #define BEGIN_TM_SCHEMA(name)
  #define BEGIN_TM_PROPS() enum PropValues { DummyProp = 49,
  #define BEGIN_TM_ENUM(name) enum name {
  #define BEGIN_TM_CLASS_PARTS(name) enum name##PARTS { name##PartFiller0,
  #define BEGIN_TM_PART_STATES(name) enum name##STATES { name##StateFiller0,
  
  #define TM_PROP(val,prefix,name,primval) prefix##_##name = val,
  #define TM_ENUM(val,prefix,name) prefix##_##name = val,
  #define TM_PART(val,prefix,name) prefix##_##name = val,
  #define TM_STATE(val,prefix,name) prefix##_##name = val,
  
  #define END_TM_CLASS_PARTS() };
  #define END_TM_PART_STATES() };
  #define END_TM_PROPS() };
  #define END_TM_ENUM() };
  #define END_TM_SCHEMA(name)
  #endif
  #else
  
  #undef BEGIN_TM_SCHEMA
  #undef BEGIN_TM_PROPS
  #undef BEGIN_TM_ENUM
  #undef BEGIN_TM_CLASS_PARTS
  #undef BEGIN_TM_PART_STATES
  #undef TM_PROP
  #undef TM_PART
  #undef TM_STATE
  #undef TM_ENUM
  #undef END_TM_CLASS_PARTS
  #undef END_TM_PART_STATES
  #undef END_TM_PROPS
  #undef END_TM_ENUM
  #undef END_TM_SCHEMA
  
  #define BEGIN_TM_SCHEMA(name) static const TMPROPINFO name[] = {
  #define BEGIN_TM_PROPS()
  #define BEGIN_TM_ENUM(name) {L#name,TMT_ENUMDEF,TMT_ENUMDEF},
  #define BEGIN_TM_CLASS_PARTS(name) {L#name L"PARTS",TMT_ENUMDEF,TMT_ENUMDEF},
  #define BEGIN_TM_PART_STATES(name) {L#name L"STATES",TMT_ENUMDEF,TMT_ENUMDEF},
  
  #define TM_PROP(val,prefix,name,primval) {L#name,prefix##_##name,TMT_##primval},
  #define TM_PART(val,prefix,name) {L#name,prefix##_##name,TMT_ENUMVAL},
  #define TM_STATE(val,prefix,name) {L#name,prefix##_##name,TMT_ENUMVAL},
  #define TM_ENUM(val,prefix,name) {L#name,prefix##_##name,TMT_ENUMVAL},
  
  #define END_TM_CLASS_PARTS()
  #define END_TM_PART_STATES()
  #define END_TM_PROPS()
  #define END_TM_ENUM()
  #define END_TM_SCHEMA(name) }; static const TMSCHEMAINFO *GetSchemaInfo() { static TMSCHEMAINFO si = {sizeof(si)}; si.iSchemaDefVersion = SCHEMADEF_VERSION; si.iThemeMgrVersion = THEMEMGR_VERSION; si.iPropCount = sizeof(name)/sizeof(name[0]); si.pPropTable = name; return &si; }
  #endif
  