您的位置:首页 > 其它

关于windows mobile 今日插件开发的记录

2009-11-24 17:56 253 查看
今日插件,可以看成一个DLL 的应用程序(对,应用程序!可以有界面,可以干任何事)。

只是系统规定了两个接口(240和241),必须带240这个接口就OK了。

今日插件完全依靠注册表活动。如果你的今日插件写成死循环了(我真的写死过,不停的蹦框。。。 最后我恢复出厂设置了。),可以修改注册表键值(HKEY_LOCAL_MACHINE/Software/Microsoft/Today/Items// 你自己的插件DLL )来干掉它。

微软给了例子! 自己找一下MyToday。

微软的注册方法:

1.拷贝到系统目录: WINDOWS//... ::CopyFile(lpszTodayFilePath, ... , FALSE);

2.安装 “今日插件”: ::RegCreateKeyEx();

// 注册插件
iTemp = 0;
::RegSetValueEx(hOpenKey, _T("Flags"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
::RegSetValueEx(hOpenKey, _T("Options"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
iTemp = 1;
::RegSetValueEx(hOpenKey, _T("Enabled"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
::RegSetValueEx(hOpenKey, _T("Order"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
iTemp = 2;
::RegSetValueEx(hOpenKey, _T("Selectability"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
iTemp = 4;
::RegSetValueEx(hOpenKey, _T("Type"), 0, REG_DWORD, (BYTE*)&iTemp, sizeof(iTemp));
::RegSetValueEx(hOpenKey, _T("DLL"), 0, REG_SZ, (BYTE*)HANDMAP_TODAY_COPY, sizeof(TCHAR) * _tcslen(lpszTodayFilePath));

3.给今日发送系统消息注册运行: ::SendMessage(HWND_BROADCAST, WM_WININICHANGE, (WPARAM)0xF2, 0);

说一下今日插件的几个注册表键值:

1. Enabled : 负责显示,还是不显示,不显示的话可以去今日里添加项。

2. Order:在今日里的顺序。

3.Selectability:这个有意思分为:0,1,2。1是系统托管,但收不到外部手动点击的消息. 2是消息下放到控件。推荐使用2,因为自己清楚该干什么。

卸载很简单: 只要删除DLL,注册表删掉就可以了。

关于插件的消息驱动:

自己用远程SPY看一下消息的流程吧。

选中的时候: WM_USER + 244 -> WM_PAINT ->WM_ERASEBKGND

选别的的时候: WM_USER + 246 -> WM_USER + 245 -> WM_PAINT ->WM_ERASEBKGND

其中:

WM_TODAYCUSTOM_RECEIVEDSELECTION: // 选择进入 WM_USER + 244

WM_TODAYCUSTOM_LOSTSELECTION: // 退出 WM_USER + 245

WM_TODAYCUSTOM_QUERYREFRESHCACHE // 这个东西一直在跑,应该几秒钟一次 WM_USER + 243

WM_LBUTTONDOWN: // 鼠标按下 这里可以发送::PostMessage(::GetParent(hWnd), TODAYM_TOOKSELECTION, (WPARAM)hWnd, 0); 来控制绘制界面-这个很重要!

绘制靠自己,想怎么干就怎么干

g_bSelecte 可以控制选中和为选中的状态。

获得高亮色:

DWORD bkcr = SendMessage(g_hWndParent, TODAYM_GETCOLOR, (WPARAM)TODAYCOLOR_HIGHLIGHT, NULL);

就这样吧!忘东西太快自己做个记录。

.

.

.

.

PS:火爆大头菜的秘诀就是不洗菜
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: