Fix XML message export and gate legacy EML option behind a setting#974
Merged
stephenegriffin merged 5 commits intoJun 15, 2026
Merged
Conversation
Contributor
Author
|
@microsoft-github-policy-service agree company="Microsoft" |
db589a4 to
271ab3a
Compare
stephenegriffin
requested changes
Jun 12, 2026
stephenegriffin
left a comment
Member
There was a problem hiding this comment.
also - you need to fix whatever's broke in the arm build
271ab3a to
f134b8b
Compare
* Save Message To File: rename "Text file" dropdown label to "XML file (saves all properties of message to an XML file)" so the option matches the format it actually produces. * Fix invalid XML output from every XML exporter (property pane, dumpStore, profile, contents-table dump, MrMAPI). The files are written as UTF-16 LE (MyOpenFile uses "w, ccs=UNICODE", which emits a UTF-16 LE BOM), but g_szXMLHeader declared encoding="iso-8859-1", causing every conformant XML parser to reject the file. Updated the shared header constant to declare encoding="UTF-16". * Remove the dead "EML file (using PR_INTERNET_CONTENT)" export option and its SaveToEML implementation. The PR_INTERNET_CONTENT path has not produced usable EML on any modern store for years. * Add an "Enable legacy features" registry/Options toggle (default off). When off, the remaining IConverterSession-based EML export option is hidden from the Save Message To File dropdown. The export code path is preserved so administrators can re-enable it without a rebuild. * Refactor the exporter dropdown -> exportType mapping from a positional static_cast to a switch on GetDropDownValue so the enum no longer has to track dropdown ordering. This is what makes the gated-row behavior above safe.
f134b8b to
3652fdd
Compare
stephenegriffin
previously approved these changes
Jun 12, 2026
stephenegriffin
previously approved these changes
Jun 15, 2026
stephenegriffin
approved these changes
Jun 15, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Save Message To File: rename "Text file" dropdown label to "XML file (saves all properties of message to an XML file)" so the option matches the format it actually produces.
Fix invalid XML output from every XML exporter (property pane, dumpStore, profile, contents-table dump, MrMAPI). The files are written as UTF-16 LE (MyOpenFile uses "w, ccs=UNICODE", which emits a UTF-16 LE BOM), but g_szXMLHeader declared encoding="iso-8859-1", causing every conformant XML parser to reject the file. Updated the shared header constant to declare encoding="UTF-16".
Remove the dead "EML file (using PR_INTERNET_CONTENT)" export option and its SaveToEML implementation. The PR_INTERNET_CONTENT path has not produced usable EML on any modern store for years.
Add an "Enable legacy features" registry/Options toggle (default off). When off, the remaining IConverterSession-based EML export option is hidden from the Save Message To File dropdown. The export code path is preserved so administrators can re-enable it without a rebuild.
Refactor the exporter dropdown -> exportType mapping from a positional static_cast to a switch on GetDropDownValue so the enum no longer has to track dropdown ordering. This is what makes the gated-row behavior above safe.