2005-06-13 [長年日記]

Pocket PCのHTMLコントロール

Windows CEには2.0の頃からHTMLコントロールがありますが、これはDISPLAYCLASSというウィンドウクラス名でウィンドウを作ると使うことができます。このコントロールについては、HTML ビューア コントロールを使用し C++ で開発する方法に基本的な使い方が説明されています。

CE 3.0以降ではこのコントロールにWindowsのブラウザコントロールに近いインターフェイスを付加してあるようです*1。HTMLコントロールとしての使い方はほとんど変わっていないようですが、HTML Controlに説明があります。

新しいAPIの説明は、HTML Control APIにありますが、URLモニカ周りのインターフェイスはWindowsとほぼ互換があるようです。なので、IInternetSessionにネームスペースを登録してIInternetProtocol経由でデータを送り込んだりすることも可能なように見えます。ブラウザ周りのインターフェイスの説明は、Pocket Internet Explorer Browser APIに説明があります。こちらはIWebBrowser2とは互換性がないようですが、似たようなインターフェイスになっています。

IWebBrowser2に相当するIBrowser(2|3)?はWC_HTMLというウィンドウクラスを使って作成したHTMLコントロールに対してDTM_BROWSERDISPATCHというメッセージを送ると取得できるようです。しかし、Windowsでブラウザコントロールを使う場合には、コントロールのホスト側でIObjectWithSiteとIServiceProviderを実装することによりIInternetSecurityManagerの実装を渡すことができるのですが、Pocket PCのブラウザコントロールの場合どうやって渡すことができるのかがよくわかりません。HTMLコントロール自体がコントロールのホストになっているのではないかと思われるので取得できそうな気がするのですが、そのようなメッセージはなさそうです。

このあたりのインターフェイスを使わなくても、DTM_ADDTEXTWでテキストを設定して、いくつかの通知メッセージを処理すれば良いような気もします。セキュリティに関しては、プラットフォームによって機能が異なりそうなのがいやな感じですが、DTM_ENABLESCRIPTINGやIBrowser2::put_ScriptingEnabledやIBrowser3::put_ActiveXEnabledあたりでスクリプトとActiveXを禁止しておけばある程度安全に使えるのかもしれません。

*1  本当のところは、新しいブラウザコントロールに古いHTMLコントロールとの互換性を付けたのだと思いますけど

本日のツッコミ(全13件) [ツッコミを入れる]
# H.Aoyama (2005-06-14 10:27)

ツッコミを入れられる程じゃないんですが,PPCネタという事で.<br>最近,ようやく PocketPC を買いました(というか,初代 iPAQ がずいぶん前に壊れてから Palm に逃げていた). Dell の AXIM X50v です. 2スロット(SD,CF)あるし,無線LANも標準なので,今まで QMAIL環境を構築するのに苦労していた部分は良くなる気がしています. ですが,まだ環境生成そのものに成功してないみたいです(SSL通信部分がまだいい加減な状態). もうちっとちゃんと整備して使える様にしたいです..<br><br>すんません,内容がありませんでした(^^ゞ<br>PPC のテスターになれるかも,という宣言かな?という事で. お邪魔しました.

# snak (2005-06-14 17:34)

いいですね>Axim。電源を切るとファイルハンドルが閉じられてしまうという例のSDカードの問題はAximにはないんでしょうか。Pocket PC版は微妙に問題があるのですが、デバッグしませんか?^^;

# H.Aoyama (2005-06-15 05:50)

問題を正確に把握してないのでナンともなんですが(^^ゞ,今とりあえず QMAIL3 あげっぱなしで電源断 → 電源ON で再度メール表示してみたところ,ちゃんと出てきました. こんな確認方法でいいんでしたっけ? なんか「これっ!」というパターンが有ったら教えて下さい. 試してみますので.<br>但し,IMAPS 環境しかない(POP 系はない)です.

# snak (2005-06-16 05:23)

起動->あるフォルダを開く->そのフォルダ中のメッセージを開く->閉じる->電源を切る->電源を入れる->[File]-[Save]で起きなければ大丈夫じゃないかなと思います。が、最近のバージョンで割とマメにファイルハンドルをリリースするようにしたので、これじゃ起こらないかもしれません…いい方法があったらまた書きます。<br><br>ちなみに、ツールバーの絵が表示されないという件は発生しますか?<br><http://q3.snak.org/bts/guest.cgi?project=Q3&action=view_report&id=894>

# H.Aoyama (2005-06-17 08:03)

[Save] のアクション後って,何もメッセージが出なければ OK,でいいでしょうか? どこに何がセーブされたかイマイチ不明(^^ゞでして.<br><br>因みに,ツールバーは,きちんと下に表示されていました. これでよいのですよね?

# snak (2005-06-17 08:27)

どうもです。エラーのメッセージボックスが出なければ大丈夫です。<br>ツールバーはだめだと背景が透けちゃうみたいです。毎回発生するわけではないらしいところがまた悩ましいところです。

# yama (2005-06-18 19:42)

突然、横からすいません。m(__)mこれまでA-55V,A-60,jornada690,720とHPCでQMAILシリーズにお世話になってきたyamaと申します。最近私もついに(というか諦めて...)PocketPCの購入に踏み切りました。AXIM X50vです。で、SE_VGAでReal VGA<br>化しても使用できるというのをバグトラックID811で読んで試してみたのですが...メニューしか表示されない状況です。具体的には以下のスクリーンショットのようになってしまいます。対策は何かございますでしょうか?<br><a href="http://f.hatena.ne.jp/consadole/20050619022559">スクリーンショット

# yama (2005-06-19 18:53)

2126入れて再度試してみました。<br>Real VGA下で立ち上がりました。m(__)m<br>が、ツールバーが表示されません。<br>また、メールも開けたり開けなかったりする感じです。メールview画面が開けないです、何かの拍子に開ける場合もあるのですがReplyしようとするとedit画面がやはり開かないです。いずれの場合も上下のメニューは切り替わってるようです。<br>Real VGA下で動作してくれると非常にありがたいのですが...m(__)m

# snak (2005-06-20 02:38)

いくつか確認なのですが、Real VGA化しない場合には表示されているのでしょうか?それから、Pocket PC 2003版(SE版でない)で動きは変わるでしょうか?

# yama (2005-06-20 05:49)

コメントありがとうございます。m(__)m<br>・Real VGA化しない場合は、全て正常に表示されております。<br>・Pocket PC 2003版(SE版でない)に関しては今晩、確認してご報告いたします。<br>よろしくお願い致します。

# trr (2005-06-20 15:49)

2130入れました。<br>RealVGAするとツールバーが表示されません。<br>メッセージを開くとメッセージが表示されるべき場所が灰色で表示されます。<br>そのままメニューから Hide Toolbar を実行するとメッセージが表示されます。<br>ツールバーは表示されないのですがRealVGAでは無いときに表示されないのと異なり、ツールバーの領域自体が存在しません。<br>つまりメニューのすぐ上がプレビューになっていました。

# yama (2005-06-20 18:42)

2130で動作確認したところ、Real VGA下でも全て正常に動作、表示できることを確認しました。2126では、trrさんが書かれている感じのような動作でした。各画面ともHide Toolbar で全て正常に動作するような感じでした。trrさんは、一度、メールボックスフォルダー内の\profiles\の中の各*.xmlファイルを削除して再度試すといかがでしょう?<br><br>Real VGA + Land Scape + Bluetooth Keyboard でかなり、HPC環境に近くなりました。(^^)<br>ありがとうございました。今後もよろしくお願いいたします。<br><br>※SE版の2130で正常に動作しましたのでPocket PC 2003版(SE版でない)に関してはチェックしておりません。もし必要でしたらチェックいたしますが、意味はございますでしょうか?

# trr (2005-06-21 05:58)

qmail.xml だけ削除して起動し直すと RealVGA でもきれいに表示されるようになりました。<br>ご指摘ありがとうございました>yamaさん


トップ «前の日記(2005-06-12) 最新 次の日記(2005-06-14)»