6 # define SCHEMADEF_VERSION (1)
18 int iSchemaDefVersion
;
21 const struct TMPROPINFO
* pPropTable
;
24 # define BEGIN_TM_SCHEMA(NAME__)
25 # define BEGIN_TM_PROPS() enum PropValues { DummyProp = 49,
26 # define BEGIN_TM_ENUM(NAME__) enum NAME__ {
28 # define BEGIN_TM_CLASS_PARTS(NAME__) \
29 enum NAME__##PARTS { NAME__##PartFiller0,
31 # define BEGIN_TM_PART_STATES(NAME__) \
32 enum NAME__##STATES { NAME__##StateFiller0,
35 # define TM_PROP(VAL__, PREFIX__, NAME__, PRIMVAL__) \
36 PREFIX__##_##NAME__ = VAL__,
38 # define TM_ENUM(VAL__, PREFIX__, NAME__) PREFIX__##_##NAME__ = VAL__,
39 # define TM_PART(VAL__, PREFIX__, NAME__) PREFIX__##_##NAME__ = VAL__,
40 # define TM_STATE(VAL__, PREFIX__, NAME__) PREFIX__##_##NAME__ = VAL__,
42 # define END_TM_CLASS_PARTS() };
43 # define END_TM_PART_STATES() };
44 # define END_TM_PROPS() };
45 # define END_TM_ENUM() };
46 # define END_TM_SCHEMA(NAME__)
52 # undef BEGIN_TM_SCHEMA
53 # undef BEGIN_TM_PROPS
55 # undef BEGIN_TM_CLASS_PARTS
56 # undef BEGIN_TM_PART_STATES
61 # undef END_TM_CLASS_PARTS
62 # undef END_TM_PART_STATES
67 # define BEGIN_TM_SCHEMA(NAME__) static const TMPROPINFO NAME__[] = {
68 # define BEGIN_TM_PROPS()
69 # define BEGIN_TM_ENUM(NAME__) { L#NAME__, TMT_ENUMDEF, TMT_ENUMDEF },
71 # define BEGIN_TM_CLASS_PARTS(NAME__) \
72 { L#NAME__ L"PARTS", TMT_ENUMDEF, TMT_ENUMDEF },
74 # define BEGIN_TM_PART_STATES(NAME__) \
75 { L#NAME__ L"STATES", TMT_ENUMDEF, TMT_ENUMDEF },
78 # define TM_PROP(VAL__, PREFIX__, NAME__, PRIMVAL__) \
79 { L#NAME__, PREFIX__##_##NAME__, TMT_##PRIMVAL__ },
81 # define TM_PART(VAL__, PREFIX__, NAME__) \
82 { L#NAME__, PREFIX__##_##NAME__, TMT_ENUMVAL },
84 # define TM_STATE(VAL__, PREFIX__, NAME__) \
85 { L#NAME__, PREFIX__##_##NAME__, TMT_ENUMVAL },
87 # define TM_ENUM(VAL__, PREFIX__, NAME__) \
88 { L#NAME__, PREFIX__##_##NAME__, TMT_ENUMVAL },
91 # define END_TM_CLASS_PARTS()
92 # define END_TM_PART_STATES()
93 # define END_TM_PROPS()
94 # define END_TM_ENUM()
95 # define END_TM_SCHEMA(NAME__) \
98 static const TMSCHEMAINFO * GetSchemaInfo(void) \
100 static TMSCHEMAINFO si = { sizeof(si) }; \
101 si.iSchemaDefVersion = SCHEMADEF_VERSION; \
102 si.iThemeMgrVersion = THEMEMGR_VERSION; \
103 si.iPropCount = sizeof(NAME__) / sizeof(NAME__[0]); \
104 si.pPropTable = NAME__; \