source: Daodan/MSYS2/mingw32/i686-w64-mingw32/include/schemadef.h@ 1170

Last change on this file since 1170 was 1166, checked in by rossy, 3 years ago

Daodan: Replace MinGW build env with an up-to-date MSYS2 env

File size: 2.4 KB
Line 
1/**
2 * This file has no copyright assigned and is placed in the Public Domain.
3 * This file is part of the mingw-w64 runtime package.
4 * No warranty is given; refer to the file DISCLAIMER.PD within this package.
5 */
6#ifndef SCHEMA_STRINGS
7
8#ifndef SCHEMADEF_H
9#define SCHEMADEF_H
10
11#define SCHEMADEF_VERSION 1
12
13struct TMPROPINFO {
14 LPCWSTR pszName;
15 SHORT sEnumVal;
16 BYTE bPrimVal;
17};
18
19struct TMSCHEMAINFO {
20 DWORD dwSize;
21 int iSchemaDefVersion;
22 int iThemeMgrVersion;
23 int iPropCount;
24 const struct TMPROPINFO *pPropTable;
25};
26
27#define BEGIN_TM_SCHEMA(name)
28#define BEGIN_TM_PROPS() enum PropValues { DummyProp = 49,
29#define BEGIN_TM_ENUM(name) enum name {
30#define BEGIN_TM_CLASS_PARTS(name) enum name##PARTS { name##PartFiller0,
31#define BEGIN_TM_PART_STATES(name) enum name##STATES { name##StateFiller0,
32
33#define TM_PROP(val,prefix,name,primval) prefix##_##name = val,
34#define TM_ENUM(val,prefix,name) prefix##_##name = val,
35#define TM_PART(val,prefix,name) prefix##_##name = val,
36#define TM_STATE(val,prefix,name) prefix##_##name = val,
37
38#define END_TM_CLASS_PARTS() };
39#define END_TM_PART_STATES() };
40#define END_TM_PROPS() };
41#define END_TM_ENUM() };
42#define END_TM_SCHEMA(name)
43#endif
44#else
45
46#undef BEGIN_TM_SCHEMA
47#undef BEGIN_TM_PROPS
48#undef BEGIN_TM_ENUM
49#undef BEGIN_TM_CLASS_PARTS
50#undef BEGIN_TM_PART_STATES
51#undef TM_PROP
52#undef TM_PART
53#undef TM_STATE
54#undef TM_ENUM
55#undef END_TM_CLASS_PARTS
56#undef END_TM_PART_STATES
57#undef END_TM_PROPS
58#undef END_TM_ENUM
59#undef END_TM_SCHEMA
60
61#define BEGIN_TM_SCHEMA(name) static const TMPROPINFO name[] = {
62#define BEGIN_TM_PROPS()
63#define BEGIN_TM_ENUM(name) {L#name,TMT_ENUMDEF,TMT_ENUMDEF},
64#define BEGIN_TM_CLASS_PARTS(name) {L#name L"PARTS",TMT_ENUMDEF,TMT_ENUMDEF},
65#define BEGIN_TM_PART_STATES(name) {L#name L"STATES",TMT_ENUMDEF,TMT_ENUMDEF},
66
67#define TM_PROP(val,prefix,name,primval) {L#name,prefix##_##name,TMT_##primval},
68#define TM_PART(val,prefix,name) {L#name,prefix##_##name,TMT_ENUMVAL},
69#define TM_STATE(val,prefix,name) {L#name,prefix##_##name,TMT_ENUMVAL},
70#define TM_ENUM(val,prefix,name) {L#name,prefix##_##name,TMT_ENUMVAL},
71
72#define END_TM_CLASS_PARTS()
73#define END_TM_PART_STATES()
74#define END_TM_PROPS()
75#define END_TM_ENUM()
76#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; }
77#endif
Note: See TracBrowser for help on using the repository browser.