热情软件屋

 

使用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以获得各种属性。

此问题由李海回答。

 
把这个问题推荐给朋友
   
   
您的意见类别
您的名字
您的电子邮件
您的建议(请尽可能详细)
 
 

版权所有 1997-2008 热情软件屋
如果您有任何建议和意见, 请给我发个电子邮件 askpro@china-askpro.com
Web Designed by ZebraStudio