Only support UTF-8 (since LLVM contains UTF-8 parsing support already, and the code even does that already) and Windows-1252 (where most code points has the same value in unicode). Keep the existing default as only allowing ASCII input.
Using the option type JoinedOrSeparate, since the real rc.exe handles options in this form, even if llvm-rc uses Separate for other similar existing options.
Rename the struct SearchParams to WriterParams since it's now used for more than just include paths.
Add a missing getResourceTypeName method to the BundleResource class, to fix error printing from within STRINGTABLE resources (used in tests).
Are you concerned about the name clash with the macro defined in the Windows headers? It seems like code that wants to include this header better make sure that it hasn't already included Windows headers (or that it has undefined the macros).