Windows2000/private/ntos/w32/ntuser/tools/usrbench/ab.h
2020-09-30 17:12:32 +02:00

73 lines
872 B
C

// ab.h
// Input:
// A1: A or W: Ansi, Wide
// A2: A or W
// macros: (where x is 1 or 2)
// IFx(ansi,wide)
// AWx: adds suffix (A or W)
// Lx(a) makes widechar
#if !defined(A1) || !defined(A2)
#error A1 and A2 must be defined as A or W
#endif
#ifdef AW1
#undef AW1
#undef AW2
#undef IF1
#undef IF2
#undef L1
#undef L2
#undef FAW
#endif
#ifndef CONCAT
#define CONCAT(a,b) a##b
#endif
#if A1
#define IF1(a,w) w
#define AW1(x) x##W
#define L1(x) CONCAT(L, x)
#else
#define IF1(a,w) a
#define AW1(x) x##A
#define L1(x) x
#endif
#if A2
#define IF2(a,w) w
#define AW2(x) x##W
#define L2(x) CONCAT(L, x)
#else
#define IF2(a,w) a
#define AW2(x) x##A
#define L2(x) x
#endif
#if A1
#if A2
#define FAW(x) x##WW
#else
#define FAW(x) x##WA
#endif
#else
#if A2
#define FAW(x) x##AW
#else
#define FAW(x) x##AA
#endif
#endif