使用IShellLink来控制快捷方式文件
编号:QA000083
建立日期: 1998年11月8日 最后修改日期:1998年11月8日
所属类别:
Hu Minghu:
我在编程中想用IShellLink来控制快捷方式文件以进行一些操作,但我将VC 5.0中的HELP中的示例代码进行编译竟不能通过,因此一直没学到,请您给我讲一下IShellLink的详细用法好吗,谢谢!
回答:
这个问题的具体步骤是这样的:
首先,使用
CoInitialize(NULL);
hres = CoCreateInstance(CLSID_ShellLink, NULL, CLSCTX_INPROC_SERVER, IID_IShellLink, (LPVOID*) &psl);
建立一个IShellLink对象,然后使用
hres = psl->QueryInterface( IID_IPersistFile, (LPVOID *) &ppf);
建立一个IPersistFile对象,这个对象来进行真正的文件操作。在设置了所有属性后,最后hres = ppf->Save(<LinkPath in WideChar>, TRUE);,就完成了。
这里需要注意两点:必须确保你的文件同ole32.lib链接,否则无法通过VC++的编译;在程序中,一定要先调用CoInitialize,否则无法建立IShellLink对象。
这里我提供一个完整的VC++ 5.0的例子:
linktest.zip。在这个例子中我只实现了几个最基本的快捷方式的属性,而其它大多数属性请参见VC++的Help。
如果要得到快捷文件的属性,则先应调用IPersistFile对象的Load,然后调用IShellLink以获得各种属性。
此问题由李海回答。
| |
|
|
| |
|
|