5/24の記事の続きです。
今までWinInetのバグ対策について検討してきました。 一応、WinInet以外のHTTPライブラリを使うという手もあります。これについても検討しておきましょう。
WinInet以外のHTTPライブラリを列挙してみます。
(1) XMLHTTP
(2) WinHTTP
(3) ServerXMLHTTP
(4) 自作
ほとんどMicrosoft製ですね・・・。
(1)XMLHTTPですが、「ServerXMLHTTP に関してよく寄せられる質問 (FAQ)」によると、 どうやらWinInetをベースにしているようです。ということは、同じバグがあると思われます(確かめてはいませんが)。 よって、これを使っても問題は解決しないため、検討対象から除外します。
(2)WinHTTP (3)ServerXMLHTTPは、先ほどのページによると
ServerXMLHTTPはWinHTTPをベースにしているようです。ということはWinHTTPだけ検討すれば十分ですね。ServerXMLHTTPは検討対象から除外します。
WinHTTPは「WinHTTP - ユーティリティの紹介と Windows Vista での改善」でも紹介されていますが、
WinInetの代替となる新しいHTTPスタックということなので、これを使えばWinInetのバグは解決しそうです。素晴らしいですね。
しかし課題が2点。1点目は、Win98SEではWinHTTPを使えないということです。Heimdallrは、今まで労力をかけてWin98SEをサポートしてきました。
それをここで失ってしまうのはもったいないです。2点目の課題はプロキシ設定です。WinHTTPは、Internet Explorerのプロキシ設定とは
まったく別のプロキシ設定で動きます。
1点目の課題は、Win98SEはWinInetを使い、Win2000以降だけでWinHTTPを使うという手で解決できます。
しかし、2点目の課題が厳しすぎます。Internet Explorerのプロキシ設定は複雑であり、簡単に設定をコピーできません。
もしもHeimdallrがWinHTTPを採用すれば、プロキシ設定でトラブルが起きて大勢のユーザが困るでしょう。私はこういうことを望みません。
既存のユーザが居ない新しくアプリケーションを作るのでしたら、WinHTTPを使うんですけどね。
(4)自作についても同じことが言えます。プロキシ設定周りでトラブルが発生するでしょう。ついでに自作ではHTTPSをサポートできません。
というわけで、WinInet以外を使うと、ユーザはトラブルに悩まされそうな感じです。 というわけで、HeimdallrはWinInetと心中するべきだと思っております。やれやれ。
でも次にアプリケーションを作る機会があれば、WinHTTPを使いますよ!
もうWinInetはこりごりです。