123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- //-----------------------------------------------------------------
- // SchemaDef.h - defines needed to build a Theme Manager schema
- // file
- //-----------------------------------------------------------------
- #ifndef SCHEMA_STRINGS // FIRST PASS of this hdr file
- //-----------------------------------------------------------------
- #ifndef SCHEMADEF_H
- #define SCHEMADEF_H
- //-----------------------------------------------------------------
- #define SCHEMADEF_VERSION 1 // defines the exported func(s) implemented
- //-----------------------------------------------------------------
- struct TMPROPINFO
- {
- LPCWSTR pszName;
- SHORT sEnumVal;
- BYTE bPrimVal;
- };
- //-----------------------------------------------------------------
- struct TMSCHEMAINFO
- {
- DWORD dwSize; // size of this struct
- int iSchemaDefVersion; // version number from this file
- int iThemeMgrVersion; // version number from "thschema.h"
- int iPropCount; // # of entries in prop table
- const struct TMPROPINFO *pPropTable; // ptr to prop table
- };
- //---------------------------------------------------------------------------
- #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 // SCHEMADEF_H
- //---------------------------------------------------------------------------
- #else // SECOND PASS of this hdr file
- //---------------------------------------------------------------------------
- #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
- //-----------------------------------------------------------------
|