准备
Windows 7 Beta已经公开发布了的,可从http://www.microsoft.com/windows/windows-7/beta- download.aspx下载。W7在任务栏上做了很大的改进,关于任务栏的新特性可以看一下 http://blogs.msdn.com/e7/archive/2008/11/20/happy-anniversary-windows-on-the-evolution-of- the-taskbar.aspx。如果要对Windows 7进行开发最好看一下白皮书,可以从 http://code.msdn.microsoft.com/PDC08WhitePapers/Release/ProjectReleases.aspx?ReleaseId=1797 下载。我们对任务栏进行开发会用到Windows 7 Taskbar Enhancements。这里我们主要实现在任务栏的图 标中显示进度(Overlay Icons and Progress Bars)。在实现过程中还可能需要用到Windows 7 SDK Beta。
开始
首先在Windows SDK中找到ShObjIdl.idl文件,如果没有安装SDK可以在文后下载。这是一个接口定义 语言文件,为了方便调用,我们可以将类似
1HRESULT SetProgressValue(
2 [in] HWND hwnd,
3 [in] ULONGLONG ullCompleted,
4 [in] ULONGLONG ullTotal);
这样的接口声明改为
1HRESULT SetProgressValue(
2 [in] long hwnd,
3 [in] ULONGLONG ullCompleted,
4 [in] ULONGLONG ullTotal);
也就是把HWND类型改成long。然后用midl将改过的idl文件生成二进制的tlb文件, ShObjTlb.tlb是生 成的文件,ShObjIdl.idl是原文件。
再用tlbimp将tlb文件生成托管dll文件。