« 非メインフォームを常に最前面ウィンドウに | メイン | WebBrowser Controlでイベントに反応する »

2005年12月03日

mixi Alert 開発日誌:: WebBrowser Controlを使う

    

文章中の一部の文字をクリックしたらリンク先をブラウザで開くってことがやりたいというのと、HTMLでの整形を考えてWebBrowser Controlの使用を考える。
C++ BuilderだとTCppWebBrowserを使えば、少し楽が出来るようだ。
単に特定のページを表示するだけであれば、CppWebBrowser->Navigate(L"url");とすれば出る。
でも、やりたいのはメモリ上にある文字の表示。

IEコンポーネントの使い方 そのほかのTipsの『about:blank のページに動的にページを入れ込みたい』にメモリ上のデータを表示する方法が書いてある。
C++だとBSTRやVARIANTは、_bstr_tや_variant_tを使った方が楽。
SAFEARRAYはCComSafeArrayを使った方が楽そうだが、C++Builderだとヘッダーがなかった。
それはともかく、ほぼこの通りにしたら出た。
リンクページでは、whileで読み込み待ちをしているが、DocumentCompleteを使った方が良い思われので、そうした。
IHTMLDocument2はCppWebBrowser->Document->QueryInterface( IID_IHTMLDocument2, (void**)&pDoc );として取得した。
でも、この方法よりもIStreamを使う方法の方が良さそうだ。
vectorやstringをラップしたIStreamクラスを作った方が手軽に書き換えられそう。(どっちも大差ないか?)



投稿者 Takenori : 2005年12月03日 23:23




comments powered by Disqus
Total : Today : Yesterday : なかのひと