ShellLinkObject.Resolve method

Looks for the target of a Shell link, even if the target has been moved or renamed.


iRetVal = ShellLinkObject.Resolve(


fFlags [in]

Type: Integer

Flags that specify the action to be taken. This can be a combination of the following values:


Do not display a dialog box if the link cannot be resolved. When this flag is set, the high-order word of fFlags specifies a time-out duration, in milliseconds. The method returns if the link cannot be resolved within the time-out duration. If the high-order word is set to zero, the time-out duration defaults to 3000 milliseconds (3 seconds).


If the link has changed, update its path and list of identifiers.


Do not update the link information.


Do not execute the search heuristics.


Do not use distributed link tracking.


Disable distributed link tracking. By default, distributed link tracking tracks removable media across multiple devices based on the volume name. It also uses the UNC path to track remote file systems whose drive letter has changed. Setting this flag disables both types of tracking.


Call the Windows Installer.


This method is essentially identical in functionality to Resolve. For further discussion of link resolution, see the Remarks section of that page.


The following example shows the proper usage of this method for JScript, VBScript, and Visual Basic.


<script language="JScript">
    function fnShellLinkObjectResolveJ()
        var objShell = new ActiveXObject("shell.application");
        var objFolder;
        var ssfPROGRAMS = 2;
        objFolder = objShell.NameSpace(ssfPROGRAMS);
        if (objFolder != null)
            var objFolderItem;
            objFolderItem = objFolder.ParseName("Internet Explorer.lnk");
            if (objFolderItem != null)
                var objShellLink;
                objShellLink = objFolderItem.GetLink;
                if (objShellLink != null)


<script language="VBScript">
    function fnShellLinkObjectResolveVB()
        dim objShell
        dim objFolder
        dim ssfPROGRAMS
        ssfPROGRAMS = 2
        set objShell = CreateObject("shell.application")
        set objFolder = objShell.NameSpace(ssfPROGRAMS)
            if (not objFolder is nothing) then
                dim objFolderItem
                set objFolderItem = objFolder.ParseName("Internet Explorer.lnk")
                    if (not objFolderItem is nothing) then
                        dim objShellLink
                        set objShellLink = objFolderItem.GetLink
                            if (not objShellLink is nothing) then
                            end if
                        set objShellLink = nothing
                    end if
                set objFolderItem = nothing
            end if
        set objFolder = nothing
        set objShell = nothing
    end function

Visual Basic:

Private Sub fnShellLinkObjectResolveVB()
    Dim objShell  As Shell
    Dim objFolder As Folder
    Set objShell = New Shell
    Set objFolder = objShell.NameSpace(ssfPROGRAMS)
        If (Not objFolder Is Nothing) Then
            Dim objFolderItem As FolderItem
            Set objFolderItem = objFolder.ParseName("Internet Explorer.lnk")
                If (Not objFolderItem Is Nothing) Then
                    Dim objShellLink As ShellLinkObject
                    Set objShellLink = objFolderItem.GetLink
                        If (Not objShellLink Is Nothing) Then
                            objShellLink.Resolve (1)
                        End If
                    Set objShellLink = Nothing
                End If
            Set objFolderItem = Nothing
        End If
    Set objFolder = Nothing
    Set objShell = Nothing
End Sub


Minimum supported client

Windows 2000 Professional with SP3 [desktop apps only]

Minimum supported server

Windows 2000 Server [desktop apps only]






Shell32.dll (version 5.0 or later)