2002-02-02 どうせだったら [長年日記]
■ どうせだったら
本体のHTMLもIInternetProtocol経由でロードするようにしてしまえ、ということで、適当にcidを振ってそのcidにNavigate2したところ、なぜか正しく表示できない。
ちゃんと、IInternetProtocol::Startが呼ばれて普通にReadが呼ばれて最後まで読まれるんだけれど、Terminateが呼ばれず、ブラウザ側の表示もエラーということになってしまう。Invalid Syntax Errorらしい。なぜだ?
エラーになってわかったのだけれど、res://...もIInternetProtocolの方に要求されるということがわかったので、ハンドルするために、StartからINET_E_USE_DEFAULT_PROTOCOLHANDLERを返したらURLMON.DLLの中でクラッシュする。とりあえず無視することに。
■ もう一個テスト
同じContent-Idに対するリンクが二つ以上HTMLに入っていた場合、二回IInternetProtocolが要求されるのか?
普通に小さいイメージを二回参照してもブラウザ側でキャッシュするようで呼ばれない。大きいとどうなるかはまだ未検証。なんでもキャッシュしてくれるんだったら、一回呼び出されたコンテンツは保持しているメモリを開放してしまえるので調子が良いんだけれど。