代码改变世界

WM自定义桌面"今日插件"

2009-06-06 16:33  老羽  阅读(2147)  评论(5编辑  收藏  举报

在PPC、Mobile5、Mobile6中,自定义桌面快捷方式是通过“今日插件”完成的。近日我研究了“今日插件”的开发过程,和大家一起分享我的心得。

1.今日插件必须以C++标准动态链接库完成,并且必须包含导出函数InitializeCustomItem。声明如下:

HWND APIENTRY InitializeCustomItem(TODAYLISTITEM *ptli, HWND hWndParent)

此方法中完成的工作,类似c++ sdk开发win32窗体的过程。

2.导出函数InitializeCustomItem的序号必须定义为240,所以必须利用def文件声明,我在测试过程中,因为没有定义序号,一直没有实现功能。估计操作系统是按序号调用此dll的方法。def文件如下:

EXPORTS
    InitializeCustomItem @ 240 NONAME

 

3. 完成dll编写后 ,需要注册表中注册:参考以下格式:

[HKEY_LOCAL_MACHINE\Software\Microsoft\Today\Items\Topevery.TodayPlus]
"Options"=dword:00000000
"Type"=dword:00000004
"DLL"="\\Program Files\\Topevery\\Topevery.TodayPlus.Addin.dll"
"Name"="Topevery.TodayPlus"

注册表的内容和 函数InitializeCustomItem中的参数TODAYLISTITEM *ptli对应,你会发现TODAYLISTITEM 结构体的东西就是注册表的内容;

4.今日插件相关的消息:以WM_TODAYCUSTOM_开头的常量

5.参考文章:

6.代码不提供了,实际上,看完了上面说的2篇参考文章,绝对不会有任何问题了。