Compartir a través de


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.

Nota Si la aplicación usa el marco de Windows Installer (MSI) para realizar la desinstalación, no es necesario llamar explícitamente a este método; MSI realizará la llamada para desanclar los accesos directos automáticamente.
 

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