There's maybe an easier way to not use SaveDocument() as html, but it demands you to have MS Word. The advantage is that it would also work for powerserver WEB:
https://www.codeproject.com/Tips/493346/RTF-TO-HTML
This can probably be coded using only OLE, straight from powerbuilder without the use of activeX and C# code.
The only thing that I have to figure out, is what it does with pasted images or images present in signatures. Does it treat them all in the same way? It's important to know how the images are being saved, since you have to add them as invisible attachments (meaning files temporarily on disk), when sending the email. So far that's the only and simplest way I've got it to work, also depending a lot on which email client the receiving site has.
The current richtext in powerbuilder does have a way to handle pasted images, but according to where you pasted it from, the rtf content is different. For example, I'm able to deal with images pasted from windows' snipping tool, but it all changes when pasting from for example "Paint" and it complicates my code too much. (What I try to do is to replace embedded images with a link to a file of the image).
Also, the "new" richtext control of powerbuilder seems to deal a lot better with pasted images, but since that's the only good thing about it, we cannot use it and would still have the problem of dealing differently with images, depending on how / from where they were pasted. I suspect I'll still have that problem, even when exporting using ms word :(
I'll give it a try once finished with the activex. I prefer to be independent of MS Office, though we already have a dependency for our clients on office, since we send the email using Outlook.