Hatena::Groupwindowsmobile-dev

WindowsMobileのはなし

|

2009-08-19

コード部分の背景が茶色で見にくいので白にしてみた。

| 16:25 | コード部分の背景が茶色で見にくいので白にしてみた。 - WindowsMobileのはなし を含むブックマーク はてなブックマーク - コード部分の背景が茶色で見にくいので白にしてみた。 - WindowsMobileのはなし

コード部分の背景が茶色で見にくいので白にしてみた。多少は読みやすくなったかな

データ接続の状態が変化した際に通知を受け取る

| 16:20 | データ接続の状態が変化した際に通知を受け取る - WindowsMobileのはなし を含むブックマーク はてなブックマーク - データ接続の状態が変化した際に通知を受け取る - WindowsMobileのはなし

データ接続が有効になったのをトリガになにか動作をさせたいとき、スレッドで監視せずともOSからメッセージを投げてもらって状態の変化を知ることができます。

これにはConnectionManagerAPIに含まれる、ConnMgrRegisterForStatusChangeNotificationAPIを利用することで可能です。

このAPIを実行するとデータ接続の状態が変化した際にOSRegisterWindowMessage(CONNMGR_STATUS_CHANGE_NOTIFICATION_MSG)戻り値をSendMessageしてきます。変化した状態がWPARAMに含まれています。この状態を示す値はconnmgr.hに含まれていて、CONNMGR_STATUS_*といった形で定義されています。

というわけで以下、使い方を含めたサンプル。いつものようにウィンドウの生成などは省いてます。

続きを読む

TanyaTanya2012/04/29 13:53Yeah, that's the teickt, sir or ma'am

vzquwwwjkxavzquwwwjkxa2012/04/29 18:18NYWFfq <a href="http://ptcsccjiyffi.com/">ptcsccjiyffi</a>

zjzrhgpwlqzjzrhgpwlq2012/04/30 17:35NBSiBa , [url=http://tpnhruenjswv.com/]tpnhruenjswv[/url], [link=http://monuxqnmvapc.com/]monuxqnmvapc[/link], http://wgbyycgqahbu.com/

cedejgoeocedejgoeo2012/04/30 22:496d0ZDC <a href="http://fpyaijwjmpnt.com/">fpyaijwjmpnt</a>

cpqqmlrhwicpqqmlrhwi2012/05/02 15:05nSHbQ9 , [url=http://aidnnjvrphxk.com/]aidnnjvrphxk[/url], [link=http://tbgvsyrmdkwl.com/]tbgvsyrmdkwl[/link], http://rzhmvircmxgl.com/

2009-08-03

インストール時にインストール先選択画面を出さないCAB

| 02:39 | インストール時にインストール先選択画面を出さないCAB - WindowsMobileのはなし を含むブックマーク はてなブックマーク - インストール時にインストール先選択画面を出さないCAB - WindowsMobileのはなし

VisualStudioを使ってインストール時にインストール先選択画面を出さないCABを作る方法。

  • まず普通にスマートデバイスCABプロジェクトでプロジェクトを作る。
  • つぎにできあがったプロジェクトファイル(*.vddproj)をテキストエディタで開く
  • 中に"Property" = "8:%InstallDir%" ってところがあるので付近("{xxxx...}:_xxxx"{ ... "Property" = "8:%InstallDir%" ... })を削除して保存
  • プロジェクトを開き直す

以上、これであとはインストール先をWindowsフォルダとかに決め打ちで作っていけば選択画面のでないCABファイルのできあがり。

Todayとか外部メモリに入れて欲しくないアプリはこうすると良いかも。

ChianaChiana2011/08/20 21:50Alright alright alright that's ecaxlty what I needed!

cisutpxcisutpx2011/08/22 22:40PjQUxE <a href="http://hhddtrtuzjrf.com/">hhddtrtuzjrf</a>

odcyrjlpxxodcyrjlpxx2011/08/24 02:546fOpmJ , [url=http://hozhpnxvxzbp.com/]hozhpnxvxzbp[/url], [link=http://jaquwoicfemj.com/]jaquwoicfemj[/link], http://netjnxmzjhmq.com/

qjuxgefdwznqjuxgefdwzn2011/08/26 01:01gO9OsK <a href="http://aetexouegkhp.com/">aetexouegkhp</a>

cnhryyhbcnhryyhb2011/08/31 17:43teotgy , [url=http://qcztmmrlzopg.com/]qcztmmrlzopg[/url], [link=http://hhjqdbwhehaa.com/]hhjqdbwhehaa[/link], http://ingbasvabhwm.com/

GluschenkoGluschenko2013/06/09 16:26That's a posting full of inishgt!

hwsgrwhwsgrw2013/06/11 10:29utfTQA <a href="http://xeuicrmrvjcs.com/">xeuicrmrvjcs</a>

fifxbfhkdfifxbfhkd2013/06/13 21:22kKAF0w <a href="http://xtywchicsnbc.com/">xtywchicsnbc</a>

bufoucubufoucu2013/06/14 04:33To4Tsg , [url=http://zdyfcllbzpts.com/]zdyfcllbzpts[/url], [link=http://ftmksvtwexsc.com/]ftmksvtwexsc[/link], http://oiuulkpwfsry.com/

yegddeyyfhsyegddeyyfhs2013/06/14 04:33bIUYky , [url=http://lrtgwkuutpwa.com/]lrtgwkuutpwa[/url], [link=http://pvxrhyzwifne.com/]pvxrhyzwifne[/link], http://rrojjxqkmpsl.com/

2009-08-01 このエントリーを含むブックマーク

PCWindowsだとLoadImage()とかExtractIcon()とか使うとファイルから読み込めるのにWindowsMobileではファイルからアイコンを読む機能が削除されてるのです。こまったものです。アイコンは全部リソースから読めばいいだろ。ということでしょうか。

アイコンファイルも結局はマスク付きのDIBと見なせるのでとりあえずローダを作りました。よければ使って下さい。できるだけ引数のサイズと合わせようと努力します。色数は画面の色数と同じやつをできるだけ優先します。画面の色数と同じのが無かった場合、色数とサイズを大きい方からよさそうなサイズを探します。

もっとこうすればいい、とかあったらどんどん突っ込んで欲しいです。あと、アイコンの探し方も結構というかだいぶてきとーなので、改変して使ってもらってもぜんぜんおっけーです。おいらの書いた部分はNYSLということにしておきます。

追記1:構造体定義わすれてた
追記2:remove_ifしたあとeraseするの忘れてた
追記3:remove_ifしたあとのeraseをみすってた
追記4:hMappingをCloseHandleしてなかった
追記5:一部のアイコンを正しく読み込めなかったので修正
追記6:そもそもマスク画像の読み込みがおかしかったのを修正。修正しすぎでごめんなさい
追記7:Stride(1lineあたりのバイト数)の計算でたまに問題がある式だったのを修正。ほんと修正しすぎごめんなさい

以下コード

続きを読む

tmyttmyt2009/08/02 19:57なんだかたまにアイコンが化けるケースが。早く直したいところ

tmyttmyt2009/08/03 01:19マスク画像の読み込みみすってたやん。ということで修正した。

JenelleJenelle2011/08/20 10:26Many many quatliy points there.

bkldfankxagbkldfankxag2011/08/20 23:11PGHNa4 <a href="http://tsfdnmnstjtq.com/">tsfdnmnstjtq</a>

wfshipewfshipe2011/08/24 01:43z0Rpil , [url=http://xfajdakahbio.com/]xfajdakahbio[/url], [link=http://ggetoektrlln.com/]ggetoektrlln[/link], http://rthmwkwqtdgx.com/

hpybjhaohpybjhao2011/08/26 00:505RH6yT <a href="http://hfxztyghnubm.com/">hfxztyghnubm</a>

pflgzjvdtumpflgzjvdtum2011/08/31 18:02s6Srl4 , [url=http://nygjswxtlqzs.com/]nygjswxtlqzs[/url], [link=http://mrjmrdgwwnqg.com/]mrjmrdgwwnqg[/link], http://mpzxbeanrvmm.com/

RositaRosita2013/04/24 12:34Pleasing you should think of smohteing like that

iaeuxbniaeuxbn2013/04/25 06:1949rNT6 <a href="http://rsxskitqdwku.com/">rsxskitqdwku</a>

tvkfrmnyztvkfrmnyz2013/04/27 17:28260Zsc <a href="http://yxqqjpaeojlm.com/">yxqqjpaeojlm</a>

tuejgojtuejgoj2013/04/27 17:28uAhCRJ <a href="http://isbxouwbkwac.com/">isbxouwbkwac</a>

loljtjmvrololjtjmvro2013/04/28 01:26fXGRuv , [url=http://oplifzhtppjw.com/]oplifzhtppjw[/url], [link=http://npneittxyaei.com/]npneittxyaei[/link], http://vmnnuhkpdety.com/

2009-07-29

ImmEnableIMEすると不安定になる?

| 13:58 | ImmEnableIMEすると不安定になる? - WindowsMobileのはなし を含むブックマーク はてなブックマーク - ImmEnableIMEすると不安定になる? - WindowsMobileのはなし

ImmEnableIMEを利用したTodayアプリIME Enabler作りましたが、これを使ってるとshell32.exeがフリーズすることが多いような気がします。

プラシーボ効果というやつでしょうか。もしうちでもおかしくなるよ!とかそんなのありましたらばんばん突っ込んでいただけるとありがたいです。

RahulRahul2012/11/03 19:42What a pleasure to find someone who identifies the isuses so clearly

MeeMee2012/11/03 19:42Full of salient pionts. Don't stop believing or writing!

zitujrabuzitujrabu2012/11/05 14:57zh5e1h , [url=http://xyjfanrlhmct.com/]xyjfanrlhmct[/url], [link=http://pswhxtnkhmey.com/]pswhxtnkhmey[/link], http://grlguchvzjqt.com/

jetaxtqijetaxtqi2012/11/08 00:10auciSV <a href="http://dswcpztknkdo.com/">dswcpztknkdo</a>

2009-07-22

ImmEnableIME

| 00:45 | ImmEnableIME - WindowsMobileのはなし を含むブックマーク はてなブックマーク - ImmEnableIME - WindowsMobileのはなし

日本のTodayアプリの夜明けかと思った。

そんな瞬間だった。

Todayアプリは日本語が使えない。たぶんこれが常識でした。もしかすると違ったのかもしれませんが。

少なくとも、設定画面で日本語が使えないので別アプリを呼び出したり、Todayの入力エリアに日本語が入力できないので別アプリを呼び出して入力エリアにかぶせて表示したり、そんな泥臭いことまみれでした。

いろいろ調べてたところTodayで日本語が入力できないことに関して言及している方がおられました。

ImmDisableIME(..

...プロセス内の1つのスレッドまたはすべてのスレッドIME を無効にします。

この辺か?スレッドIME が無効になっているのですか。

関数自体は CE には対応してないん。

CE も同一の概念で作ってるのかなこの辺は。うーむ。

汝の隣人のブログを愛せよ | LOVELOG

ここの記事ではこの関数はCEに対応していない。と書かれていますが、MSDNによるとそんなことはありませんでした。

Requirements

Windows Mobile Windows Mobile Version 5.0 and later

ImmDisableIME

しかしMSDNにはDisableするAPIしか掲載されておらず、VisualStudioのインテリセンスもDisableしか表示しません。EnableにするAPIは存在しないのかと思っていました。

が、しかし、WindowsCE系列のOSはほぼすべてのAPIがcoredll.dllに入っています。このDLLエクスポートしている関数の一覧をid:ch3cooh393が作ってくれています。この一覧のなかにImmEnableIMEというのがありました。

しかし非公開APIなので使い方はわかりませんが、とりあえずGoogle検索をしたところ関数プロトタイプ

BOOL WINAPI ImmEnableIME(DWORD)

であることまではわかりました。

あとはこのDWORDへ何を渡せばいいか。ですが、まぁ途中の経緯はすっ飛ばして、とりあえず0を渡せばOKです。

このAPIDLL中で呼び出すとTodayのコンテキストで日本語入力をすることが可能になります。

C++から呼び出す場合はこんな感じですね

extern "C" BOOL ImmEnableIME(DWORD);
BOOL DllMain(HANDLE hinstDLL, DWORD dwReason, LPVOID lpvReserved){
	switch(dwReason){
		case DLL_PROCESS_ATTACH:
			ImmEnableIME(0);
			break;
		... 略 ...
	}
}

このAPIは誰かが呼べばOKで呼んだ誰かはアンロードされても大丈夫です。なので誰かわからないけど呼んでくれる人が必要ですが、みんな呼べばいいと思います。

非公開APIなので今後変更される可能性は大いにありますし、もしかすると今後使えなくなるかもしれません。

追記:DLL_PROCESS_ATTACHでEnableすると日本語入力できないタイミングが発生することがあるようです。(詳しくはこのエントリのコメント欄参照)各自日本語入力が必要になったタイミングでEnableして終わったらDisableする実装のほうがお行儀が良いのかも知れません。

とりあえずこんな感じで。

はじめましてはじめまして2009/08/02 02:08どうもはじめましてLIUNQAと申します。
情報ありがとうございます。
ImmEnableIME()試してみました。ただ、ImmEnableIME()を入れる場所
ですが、オプション画面を作成する直前にしてみました。
わたしだけかもしれませんが、DLL_PROCESS_ATTACHのタイミングだと
Today画面からオプション画面を呼出した後に、スタート-設定から
オプション画面を開くと日本語入力できないことがありました。
ご参考までに。

tmyttmyt2009/08/04 02:03こんばんは
DLL_PROCESS_ATTACHのタイミングだとTodayのオプションから呼ばれたときに日本語が通らないのですか。なるほど、それは検証していませんでした。
各自入力が必要になったときに関数をコールしていらなくなったらDiableするような実装の方がいいかもですね。ありがとうございます。

AdeAde2012/04/29 18:52So much info in so few words. Tostloy could learn a lot.

tdtlxshhtdtlxshh2012/04/30 13:07G16uZZ <a href="http://vnucznwpoqqp.com/">vnucznwpoqqp</a>

iogijofeiogijofe2012/04/30 17:31gTx2pq , [url=http://ifarjwkypshk.com/]ifarjwkypshk[/url], [link=http://tiansikzhfcl.com/]tiansikzhfcl[/link], http://wmqnvznprnpv.com/

cqcgoacqcgoa2012/05/02 10:57i4Vrdy <a href="http://nazasujpdyrh.com/">nazasujpdyrh</a>

sunspohkpmsunspohkpm2012/05/02 15:36tr8gFM , [url=http://rzkaxwpywlbt.com/]rzkaxwpywlbt[/url], [link=http://mhpoytihaydf.com/]mhpoytihaydf[/link], http://avbtvxwouvnm.com/

|