Here's the tested solution:
#define VER_X_ 0
#define VER_H_ 2
#define VER_M_ 0
#define VER_L_ 3
#define VERSION_N (VER_L_ + 0x10*VER_M_ + 0x100*VER_H_ + 0x1000*VER_X_)
// Device Strings
//
#define STRINGIFY_1(x) L#x
#define STRINGIFY(x) STRINGIFY_1(x)
#define PASTE(x, y) x##y
#define MAKEWIDE(x) PASTE(L,x)
#define SERIALNUMBER_STR MAKEWIDE(STRINGIFY(VER_H_)) L"." \
MAKEWIDE(STRINGIFY(VER_M_)) L"." \
MAKEWIDE(STRINGIFY(VER_L_))
Thanks to ouah
EDIT:
- Added parentheses according to pat.
- Ouah's remark was taken seriously. Solution adapted to suit MS: Added two PASTE & MAKEWIDE