// Windows/PropVariantUtils.h #ifndef __PROP_VARIANT_UTILS_H #define __PROP_VARIANT_UTILS_H #include "Common/MyString.h" #include "PropVariant.h" struct CUInt32PCharPair { UInt32 Value; const char *Name; }; void StringToProp(const AString &s, NWindows::NCOM::CPropVariant &prop); void PairToProp(const CUInt32PCharPair *pairs, unsigned num, UInt32 value, NWindows::NCOM::CPropVariant &prop); AString FlagsToString(const CUInt32PCharPair *pairs, unsigned num, UInt32 flags); void FlagsToProp(const CUInt32PCharPair *pairs, unsigned num, UInt32 flags, NWindows::NCOM::CPropVariant &prop); AString TypeToString(const char *table[], unsigned num, UInt32 value); void TypeToProp(const char *table[], unsigned num, UInt32 value, NWindows::NCOM::CPropVariant &prop); #define PAIR_TO_PROP(pairs, value, prop) PairToProp(pairs, sizeof(pairs) / sizeof(pairs[0]), value, prop) #define FLAGS_TO_PROP(pairs, value, prop) FlagsToProp(pairs, sizeof(pairs) / sizeof(pairs[0]), value, prop) #define TYPE_TO_PROP(table, value, prop) TypeToProp(table, sizeof(table) / sizeof(table[0]), value, prop) #endif