Window message list for tracing.
Use macro for structures to prevent mismatching IDs to strings.
Message map functions.
Add NOEXCEPT, namespace.  Add interface header.  Consider fixing naked for loops.