Здравствуйте, Marty, Вы писали:
M>Уверен, что можно красиво и не слишком сложно переделать без макросов
Ну попробуйте, например, это:
#define PlaceKsId(Base,End) {Base##_##End, #End}
struct KsIdDesc {
unsigned int Id;
char const * IdName;
};
KsIdDesc const KsIdTable [] = {
PlaceKsId (KSPROPERTY_AUDIO, LATENCY),
PlaceKsId (KSPROPERTY_AUDIO, COPY_PROTECTION),
PlaceKsId (KSPROPERTY_AUDIO, CHANNEL_CONFIG),
...
};
Это таблица преобразования индекса в стандартный идентификатор (KSPROPERTY_AUDIO_LATENCY и т.п.). У меня подобных таблиц до черта.