Internet 快捷方式

Internet 快捷方式对象用于创建 Internet 网站的桌面快捷方式。 与文件系统中项的快捷方式一样,Internet 快捷方式采用桌面图标的形式。 当用户单击图标时,浏览器将启动并显示与快捷方式关联的网站。

将讨论以下主题。

创建 Internet 快捷方式

可以使用 WebBrowser 控件或页面的 URL 创建 Internet 快捷方式。

从 WebBrowser 控件创建 Internet 快捷方式

如果应用程序托管 WebBrowser 控件,则可以使用 Internet 快捷方式对象按以下方式创建快捷方式。

  1. 使用CLSID_InternetShortcut的 CLSID) 类标识符 (CoCreateInstance 创建 Internet 快捷方式对象的实例。
  2. 将指向 WebBrowser 的 IUnknown 接口的指针传递给具有 IObjectWithSite::SetSite 的 Internet 快捷方式对象。
  3. 如果要创建 WebBrowser 控件正在查看的页面的快捷方式,请调用 Internet 快捷方式对象的 IPersistFile::Save 方法。

将在 IPersistFile::Save 中指定的位置创建快捷方式。 此位置使 WebBrowser 控件能够还原其状态,其中包括将正确的文档加载到框架集的任务。

从 URL 创建 Internet 快捷方式

如果具有要链接到的页面的 URL,还可以创建 Internet 快捷方式。

  1. 使用 clSID CLSID_InternetShortcut 创建具有 CoCreateInstance 的 Internet 快捷方式对象的实例。
  2. 使用 IUniformResourceLocator::SetURL 方法在快捷方式中设置 URL。
  3. 使用 IPersistFile::Save 方法将快捷方式文件保存到所需位置。

访问属性存储

Internet 快捷方式对象包含几个属性,可使用以下过程通过对象的 IPropertySetStorage 接口访问这些属性。

  1. 使用 IID_IPropertySetStorage调用 QueryInterface 来获取 IPropertySetStorage 接口。
  2. 使用 FMTID_Intshcut 或 FMTID_InternetSite 调用 IPropertySetStorage::Open 来访问 Internet 快捷方式属性存储集,以获取 IPropertyStorage 接口。
  3. 通过传递相应的属性 ID,使用 IPropertyStorage::ReadMultiple 读取属性存储信息。

使用 4.70 或更高版本的 Shell32.dll,还可以通过将 pidl 参数设置为 来调用 IShellFolder::BindToStorage 来检索 IPropertySetStorage 接口。URL 文件和 riid 参数设置为 IID_IPropertySetStorage。

可以为FMTID_Intshcut请求以下属性 ID。

PROPID 变体类型 说明
PID_IS_URL VT_LPWSTR 快捷方式指向的 URL
PID_IS_NAME VT_LPWSTR Internet 快捷方式的名称
PID_IS_WORKINGDIR VT_LPWSTR 快捷方式的工作目录
PID_IS_HOTKEY VT_UI2 快捷方式的热键
PID_IS_SHOWCMD VT_I4 显示快捷方式的命令
PID_IS_ICONINDEX VT_I4 图标的索引
PID_IS_ICONFILE VT_LPWSTR 包含图标的文件
PID_IS_WHATSNEW VT_LPWSTR 新增功能文本
PID_IS_AUTHOR VT_LPWSTR 作者
PID_IS_DESCRIPTION VT_LPWSTR 网站的说明文本
PID_IS_COMMENT VT_LPWSTR 用户批注的注释
PID_IS_ROAMED VT_BOOL 首次漫游快捷方式时为 True

 

可以为FMTID_InternetSite请求以下属性 ID。

PROPID 变体类型 说明
PID_INTSITE_WHATSNEW VT_LPWSTR 新增功能文本
PID_INTSITE_AUTHOR VT_LPWSTR 作者
PID_INTSITE_LASTVISIT VT_FILETIME 上次访问站点的时间
PID_INTSITE_LASTMOD VT_FILETIME 上次修改网站的时间
PID_INTSITE_VISITCOUNT VT_UI4 用户访问的次数
PID_INTSITE_DESCRIPTION VT_LPWSTR 网站的说明文本
PID_INTSITE_COMMENT VT_LPWSTR 用户批注注释
PID_INTSITE_FLAGS VT_UI4 指示使用PIDISF_标志 (如下)
PID_INTSITE_CONTENTLEN 空值 目前不支持
PID_INTSITE_CONTENTCODE 空值 目前不支持
PID_INTSITE_RECURSE 空值 目前不支持
PID_INTSITE_WATCH 空值 目前不支持
PID_INTSITE_SUBSCRIPTION VT_UI8 订阅管理器的 SUBSCRIPTIONCOOKIE 值
PID_INTSITE_URL VT_LPWSTR 快捷方式指向的 URL
PID_INTSITE_TITLE VT_LPWSTR 标题
PID_INTSITE_CODEPAGE VT_UI4 文档的代码页
PID_INTSITE_TRACKING 空值 目前不支持
PID_INTSITE_ICONINDEX VT_I4 图标的索引
PID_INTSITE_ICONFILE VT_LPWSTR 包含图标的文件
PID_INTSITE_ROAMED VT_UI4 条目因漫游而添加

 

下面是 Internet 站点标志。

标志 描述
PIDISF_RECENTLYCHANGED 指示最近更改了网站
PIDISF_CACHEDSTICKY 目前不支持
PIDISF_CACHEIMAGES 目前不支持
PIDISF_FOLLOWALLLINKS 目前不支持

 

以下值用于 Internet 漫游历史记录。

PID_INTSITE_ROAMED 的值 说明
值未设置或PIDISR_UP_TO_DATE 此缓存项尚未通过漫游进行修改。
PIDISR_NEEDS_ADD 此缓存项是通过漫游添加到缓存的。 在条目的处理完成后设置PIDISR_UP_TO_DATE。
PIDISR_NEEDS_UPDATE 此缓存条目已存在于本地计算机上,但它是通过漫游进行更新的。 在条目的处理完成后设置PIDISR_UP_TO_DATE。
PIDISR_NEEDS_DELETE 漫游检测到应删除此缓存条目。 例如,用户可能已清除其浏览器历史记录。 使用 DeleteUrlCacheEntry 删除条目。

 

接口

Internet 快捷方式对象公开了许多接口。

OLE 接口

Shell 接口

函数

有几个实用工具函数可与 Internet 快捷方式对象一起使用。

Internet 快捷方式实用工具函数