Método IStartMenuPinnedList::RemoveFromList (shobjidl.h)
Windows Vista: quita un elemento de la lista anclada del menú Inicio , que es la lista en la posición superior izquierda del menú Inicio .
Windows 7: quita un elemento de la lista anclada del menú Inicio y desancla el elemento de la barra de tareas.
Windows 8: desancla el elemento de la barra de tareas, pero no quita el elemento de la pantalla Inicio. Los elementos no se pueden quitar mediante programación de Start; Solo el usuario puede desanclarlos o quitarlos como parte de la desinstalación de un programa.
Sintaxis
HRESULT RemoveFromList(
[in] IShellItem *pitem
);
Parámetros
[in] pitem
Tipo: IShellItem*
Puntero a un objeto IShellItem que representa el elemento que se va a desanclar.
Valor devuelto
Tipo: HRESULT
- Devuelve S_OK si el elemento se quitó correctamente de la lista de elementos anclados o de la barra de tareas.
- Devuelve S_OK si el elemento no está anclado en absoluto.
- Devuelve un código de error estándar de lo contrario.
Comentarios
Dado que una aplicación no puede saber si alguno de sus accesos directos instalados se ha anclado, se debe llamar a este método en cualquier acceso directo de la aplicación que se quite del sistema. Esto incluye accesos directos colocados en el escritorio durante la instalación y los agregados a la lista Todos los programas del menú Inicio.
Se recomienda que todas las aplicaciones usen este método para limpiar sus elementos anclados durante su proceso de desinstalación. No es necesario anular el acceso directo de la aplicación, pero se recomienda encarecidamente para la confiabilidad.
Este método no quita el acceso directo original representado por pitem. Quita su representación anclada del menú Inicio o de la barra de tareas. Una vez que se ha quitado un elemento (desanclar) a través de este método, la aplicación puede eliminar el acceso directo original.
Si un elemento está anclado tanto al menú Inicio como a la barra de tareas, una llamada a este método la quita de ambas ubicaciones.
Ejemplos
En este ejemplo se muestra el uso de 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();
Requisitos
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | shobjidl.h |
Archivo DLL | Shell32.dll |