Método IStartMenuPinnedList::RemoveFromList (shobjidl.h)

Windows Vista: remove um item da lista fixada do menu Iniciar , que é a lista na posição superior esquerda do menu Iniciar .

Windows 7: remove um item da lista fixada do menu Iniciar e desafixa o item da barra de tarefas.

Windows 8: desafixa o item da barra de tarefas, mas não remove o item da tela inicial. Os itens não podem ser removidos programaticamente de Iniciar; eles só podem ser desafixados pelo usuário ou removidos como parte da desinstalação de um programa.

Sintaxe

HRESULT RemoveFromList(
  [in] IShellItem *pitem
);

Parâmetros

[in] pitem

Tipo: IShellItem*

Um ponteiro para um objeto IShellItem que representa o item a ser desafixada.

Valor retornado

Tipo: HRESULT

  • Retorna S_OK se o item foi removido com êxito da lista de itens fixados e/ou da barra de tarefas.
  • Retorna S_OK se o item não foi fixado.
  • Retorna um código de erro padrão caso contrário.

Comentários

Como um aplicativo não pode saber se algum de seus atalhos instalados foi fixado, esse método deve ser chamado em qualquer atalho de aplicativo que esteja sendo removido do sistema. Isso inclui atalhos colocados na área de trabalho durante a instalação e aqueles adicionados à lista Todos os Programas do menu Iniciar.

É recomendável que todos os aplicativos usem esse método para limpo seus itens fixados durante o processo de desinstalação. Não é necessário desafixar o atalho do aplicativo, mas é altamente recomendável para confiabilidade.

Esse método não remove o atalho original representado por pitem. Ele remove sua representação fixada do menu Iniciar e/ou da barra de tarefas. Depois que um item for removido (desafixado) por meio desse método, o aplicativo poderá excluir o atalho original.

Se um item for fixado no menu Iniciar e na barra de tarefas, uma chamada para esse método o removerá de ambos os locais.

Nota Se o aplicativo estiver usando a estrutura do WINDOWS Installer (MSI) para executar a desinstalação, você não precisará chamar esse método explicitamente; A MSI fará a chamada para desafixar os atalhos para você.
 

Exemplos

Este exemplo demonstra o 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 com suporte Windows Vista [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2008 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shobjidl.h
DLL Shell32.dll