2012.04.05
无法解决的难题:
SHGetFileInfo(pszPath, NULL, &shinfo, sizeof(shinfo), SHGFI_ICON);
无法取得图标组、无法取得指定大小的Icon。
2012.04.06
Windows 桌面添加右键菜单项“更改壁纸”
Shell Extension 为 Explorer 进程创建 ATL COM Object DLL,调用 ContextMenu 扩展处理器。
实现 IShellExtInit 接口 Initialize()。
实现 IContextMenu 接口: QueryContextMenu()、GetCommandString()、InvokeCommand()。
注册 Shell 扩展: ATL 自动生成注册 COM DLL 服务器的代码,添加注册表项。
HKCR
{
NoRemove Directory
{
NoRemove ShellEx
{
NoRemove ContextMenuHandlers
{
360DesktopExt = s '{EAA5320C-FA1A-4c00-863C-1AA6143AB870}'
}
}
}
NoRemove Directory
{
NoRemove Background
{
NoRemove ShellEx
{
NoRemove ContextMenuHandlers
{
360DesktopExt = s '{EAA5320C-FA1A-4c00-863C-1AA6143AB870}'
}
}
}
}
}传递命令行参数启动进程。
解析命令行参数。
2012.04.07
判断 360Desktop 进程是否启动,SendMessageTimeout 进程间通信。