昨日考えた通りに実装してみたところいまいちうまくいかないところがあったので以下のようにしてみました。
これで大体うまくいっているように見えます。ドラフト時だけ評価されるマクロがなくなってしまいましたが、シチュエーション的にあまりなさそうなので良いかなということで。
Sleipnirが少しだけGeckoが使えるようになったり、LunascapeがGecko対応を表明したり、Gecko対応が最近の流れのようです。
試しに、QMAIL3でMozilla ActiveX Controlを使えるかどうか試してみました。といっても単に生成しているオブジェクトのProgIdを"Shell.Explorer"から"Mozilla.Browser"に変えてみただけです。
いきなりレスポンスが返ってこなかったので調べてみたところ、IWebBrowser::get_BusyがずっとVARIANT_TRUEを返してくるようので、ここをスキップしてみました。これで一応インスタンス化には成功したもののメールの表示はできません。どうもIOleClientSiteに設定したIServiceProviderを要求してこない様子です。なので、IInternetProtocol経由でコンテンツを渡している部分がまったく動作していません。これでは仕方がないのでこの部分はあきらめ、RSSで直接外部のURLを表示している部分を試してみました。こっちは一応外部サイトをQMAIL3の中で表示することができました。ただ、IHTMLDocument2::get_readyStateがE_NOTIMPLを返してきたりとまだまだ実装が追いついていないようです。IInternetSecurityManager周りも入っていないようですし、Gecko対応するなら直にGeckoのAPIを使ってホスティングする必要があるかもしれません*1。
*1 やらないですけど