IStartMenuPinnedList::RemoveFromList 方法 (shobjidl.h)
Windows Vista:从 “开始 ”菜单固定列表中删除项,该列表是“ 开始” 菜单左上角的列表。
Windows 7:从 “开始 ”菜单固定列表中删除某个项,并从任务栏中取消固定该项目。
Windows 8:取消固定任务栏中的项目,但不从“开始”屏幕中删除该项目。 无法以编程方式从“开始”菜单中删除项;它们只能由用户取消固定,或作为程序卸载的一部分删除。
语法
HRESULT RemoveFromList(
[in] IShellItem *pitem
);
参数
[in] pitem
类型: IShellItem*
指向 IShellItem 对象的指针,该对象表示要取消固定的项。
返回值
类型: HRESULT
- 如果已从固定项列表和/或任务栏成功删除项,则返回S_OK。
- 如果项根本没有固定,则返回S_OK。
- 否则返回标准错误代码。
注解
由于应用程序无法知道其安装的任何快捷方式是否已固定,因此应在从系统中删除的任何应用程序快捷方式上调用此方法。 这包括在安装期间放置在桌面上的快捷方式,以及添加到 “开始” 菜单 的“所有程序” 列表的快捷方式。
建议所有应用程序在卸载过程中使用此方法清理其固定项。 不需要取消固定应用程序快捷方式,但出于可靠性考虑,强烈建议取消固定应用程序快捷方式。
此方法不会删除 pitem 表示的原始快捷方式。 它会从 “开始 ”菜单和/或任务栏中删除固定的表示形式。 通过此方法删除项 (取消固定) 后,应用程序可以删除原始快捷方式。
如果某个项固定到 “开始” 菜单和任务栏,则对此方法的一次调用会将其从两个位置删除。
注意 如果应用程序使用 Windows Installer (MSI) 框架来执行卸载,则无需显式调用此方法;MSI 将调用 以取消固定快捷方式。
示例
此示例演示如何使用 IStartMenuPinnedList::RemoveFromList。
HRESULT hr = CoInitializeEx(NULL,COINIT_APARTMENTTHREADED);
if (SUCCEEDED(hr))
{
IShellItem *pitem;
hr = SHCreateItemFromParsingName(TEXT("Path to the shortcut"),
NULL,
IID_PPV_ARGS(&pitem));
//
// Do setup work here to remove the link, including the unpinning
// of the item.
//
if (SUCCEEDED(hr))
{
IStartMenuPinnedList *pStartMenuPinnedList;
hr = CoCreateInstance(CLSID_StartMenuPin,
NULL,
CLSCTX_INPROC_SERVER,
IID_PPV_ARGS(&pStartMenuPinnedList));
if (SUCCEEDED(hr))
{
hr = pStartMenuPinnedList->RemoveFromList(pitem);
pStartMenuPinnedList->Release();
}
pitem->Release();
}
}
CoUnitialize();
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | shobjidl.h |
DLL | Shell32.dll |