| /** | |
| * 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 |