IE(本体またはブラウズコンポーネント)にHTMLデータを表示させたい。そのための方法いろいろ。タブブラウザを作るとか、特に2chブラウザを作るとかするときに必要になりがち
- IWebBrowser2::Navigate2()を使う
- documentオブジェクトをIPersistStreamで初期化
-
- CreateStreamOnHGlobal()を使えばメモリー上からも文書を読み込める。datファイルからHTMLを作るときとかに便利
- HTTPヘッダも拡張子も無いので、IEの勝手な判断でソースが表示されてしまうケースがあった。
- ファイルから読むにはSHCreateStreamOnFileを使用
- CAxStreamOnXXX系クラスが使える?
- documentオブジェクトをIPersistMonikerで初期化
- IHTMLDocument2::write()
- IEが持っているオブジェクト参照を一端解放してから再レンダリングする模様。文書内のスクリプトとユーザーコードとのやりとりにwindow.externalプロパティを使っている場合、タイミングによってはwindow.externalがnull。http://www.csharphelp.com/board2/read.html?f=1&i=32994&t=32994&v=f参照。
- document.getElementByTagname("html").outerHTMLを設定
- HTML要素のouterHTMLプロパティはread-onlyなのでダメ。インターフェース定義にはput_outerHTMLはあるけれど、ダメ。