schemadef.h

来自「这是VCF框架的代码」· C头文件 代码 · 共 94 行

H
94
字号
//-----------------------------------------------------------------//   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//-----------------------------------------------------------------

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?