I had a somewhat related problem registering a program to handle the MAPI "Send Mail" command, and here are the Registry changes that fixed it for me.
I was trying to make Opera Mail my default email program. It was already registered to handle URLs with the mailto
scheme, but I still couldn't use File > Save & Send > Send Using E-mail > Send as Attachment in Office programs without getting the error message you mentioned. Sadly, when I tried to use Default Programs > Set Default Programs from the Control Protocol to associate Opera Mail with MAP Send Mail, Opera Mail did not appear in the programs list. It's not a Metro application, but some registry entries must be missing.
To solve this, I edited the SOFTWARE\Clients\Mail
keys in the Registry:
HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\OperaMail
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\OperaMail]
@="OperaMail"
"DLLPath"="C:\\Programs\\Internet\\Opera Mail\\mapi\\OperaMAPI.dll"
"LocalizedString"="OperaMail"
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\OperaMail\DefaultIcon]
@="C:\\Programs\\Internet\\Opera Mail\\OperaMail.exe,3"
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\OperaMail\InstallInfo]
"ShowIconsCommand"="\"C:\\Programs\\Internet\\Opera Mail\\OperaMail.exe\" /ShowIconsCommand"
"HideIconsCommand"="\"C:\\Programs\\Internet\\Opera Mail\\OperaMail.exe\" /HideIconsCommand"
"ReinstallCommand"="\"C:\\Programs\\Internet\\Opera Mail\\OperaMail.exe\" /ReInstallMailer"
"IconsVisible"=dword:00000001
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\OperaMail\Protocols]
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\OperaMail\Protocols\mailto]
@="URL:MailTo Protocol"
"EditFlags"=dword:00000002
"URL Protocol"=""
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\OperaMail\Protocols\mailto\DefaultIcon]
@="C:\\Programs\\Internet\\Opera Mail\\OperaMail.exe,3"
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\OperaMail\Protocols\mailto\shell]
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\OperaMail\Protocols\mailto\shell\open]
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\OperaMail\Protocols\mailto\shell\open\command]
@="\"C:\\Programs\\Internet\\Opera Mail\\OperaMail.exe\" \"%1\""
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\OperaMail\shell]
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\OperaMail\shell\open]
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\OperaMail\shell\open\command]
@="\"C:\\Programs\\Internet\\Opera Mail\\OperaMail.exe\" /Mail"
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\OperaMail\shell\properties]
[HKEY_LOCAL_MACHINE\SOFTWARE\Clients\Mail\OperaMail\shell\properties\command]
@="\"C:\\Programs\\Internet\\Opera Mail\\OperaMail.exe\" opera:config#Mail"
These already existed on my computer, I'm just including them here for completeness. I'm sure not all of these keys are necessary to get MAPI Send Mail associated correctly.
HKEY_CURRENT_USER\Software\Clients\Mail
This was the actual solution for me. Despite having all the programs correctly registered, the wrong one was selected, and the UI did not let me choose the correct one. I was finally able to choose the correct association by editing my user hive.
Windows Registry Editor Version 5.00
[HKEY_CURRENT_USER\Software\Clients\Mail]
@="OperaMail"
As usual, the user value overrides the machine value, which is why this was required.