You should use FormatMessage and positional arguments.
I considered recommending this, but decided against it, specifically because it's an idiosyncratic format and passes arguments in an idiosyncratic way, making it less accessible and harder to read, and then doesn't even reduce lines of code. Why is this better?