# HLID

The HLID enumeration constants identify the logical positions of a hyperlink identifier in the hyperlink navigation stack. These constants are used in the IHlinkBrowseContext interface.

    typedef enum tagHLID
    {
        HLID_PREVIOUS,
        HLID_NEXT,
        HLID_CURRENT,
        HLID_STACKBOTTOM,
        HLID_STACKTOP
    } HLID;

Elements

HLID_PREVIOUS
  The hyperlink prior to the current one. If the current hyperlink is the first or only hyperlink in the navigation stack, or if there are no hyperlinks in the navigation stack, there is no previous hyperlink, and methods such as IHlinkBrowseContext::GetHlink will return NULL and E_FAIL when passed this value.
HLID_NEXT
  The hyperlink after the current one. If the current hyperlink is the last or only hyperlink in the navigation stack, or if there are no hyperlinks in the navigation stack, there is no next hyperlink, and methods such as IHlinkBrowseContext::GetHlink will return NULL and E_FAIL when passed this value.
HLID_CURRENT
  The current hyperlink. A browsing tool might offer a command to reload the current page, or to re-center the user interface around the beginning portion of the current hyperlink destination, or to restart animation, sound, or other activity by re-navigating to the current hyperlink.
HLID_STACKBOTTOM
  The very first hyperlink in the navigation stack. If there are no hyperlinks in the navigation stack, there is no stack-bottom hyperlink, and methods such as IHlinkBrowseContext::GetHlink will return NULL and E_FAIL when passed this value.
HLID_STACKTOP
  The very last hyperlink in the navigation stack. If there are no hyperlinks in the navigation stack, there is no stack-top hyperlink, and methods such as IHlinkBrowseContext::GetHlink will return NULL and E_FAIL when passed this value.

Remarks

For convenience and performance, individual hyperlink objects are often identified in a navigation stack like a browse context or a history/favorites list using a ULONG hyperlink identifier or HLID rather than an IHlink interface pointer. This prevents unnecessary passing of interface pointers across process boundaries in common user-interface scenarios, such as building a drop-down menu or scrollable list of the history, or when testing the current location in the navigation stack to enable Go Back and Go Forward.

See Also

HLQF, IHlinkBrowseContext::GetHlink, IHlinkBrowseContext::QueryHlink, IHlinkBrowseContext::SetCurrentHlink