[Now Supported on Windows NT]
解决一个shell链接。系统搜索shell链接对象,并更新shell链接路径及其标识符列表(如有必要)。
HRESULT STDMETHODCALLTYPE解决(
ISHELLLINK FAR *【pShlLnk】, | |
HWND 【HWND】, | |
DWORD 【FFLAGS】 | |
); |
参数
【pShlLnk】
指向IShellLink界面。在C ++中,此参数是隐式的。
【HWND】
处理shell用作对话框的父窗口的窗口。如果需要在解决shell链接时提示用户获取更多信息,则shell会显示该对话框。
【FFLAGS】
动作标志此参数可以是以下值的组合:
SLR_ANY_MATCH | 解决链接,如果系统需要用户的信息,则显示一个对话框。 |
SLR_NO_UI | 如果shell无法解析shell链接,则防止shell显示对话框。指定此标志时,【FFLAGS】的高位字指定超时持续时间(以毫秒为单位)。如果链接在超时时间内无法解析,该函数将返回。如果高位字设置为零,超时时间默认为3000毫秒(3秒)。 |
SLR_UPDATE | 引导shell更新链接的路径和链接对象已更改的标识符列表。如果使用此值,则无需调用IPersistFile::IsDirty方法来确定链接对象是否已更改。 |
返回值
如果成功返回NOERROR,否则返回OLE定义的错误值。
备注
调用此方法时,系统将检索与当前链接对象关联的路径,并搜索该路径中的对象。如果系统找到对象,它会解析链接。如果系统找不到对象,它会在相同的目录中找到具有相同文件创建时间和属性但具有不同名称的对象。此类型的搜索可解析到已重命名的对象的链接。
如果系统仍然找不到链接对象,它将搜索当前目录的子目录。它对目录树进行递归搜索,寻找具有相同名称或创建时间的匹配。如果之后找不到匹配项,shell将显示一个对话框,提示用户找到一个位置。应用程序可以通过在调用此方法时指定SLR_NO_UI值来抑制对话框。
也可以看看