Condividi tramite


Metodo IStartMenuPinnedList::RemoveFromList (shobjidl.h)

Windows Vista: rimuove un elemento dall'elenco di menu Start aggiunto, ovvero l'elenco nella posizione superiore sinistra del menu Start .

Windows 7: rimuove un elemento dall'elenco di menu Start aggiunto e rimuove l'elemento dalla barra delle applicazioni.

Windows 8: rimuove l'elemento dalla barra delle applicazioni, ma non rimuove l'elemento dalla schermata Start. Gli elementi non possono essere rimossi a livello di codice da Start; possono essere rimossi solo dall'utente o rimossi come parte della disinstallazione di un programma.

Sintassi

HRESULT RemoveFromList(
  [in] IShellItem *pitem
);

Parametri

[in] pitem

Tipo: IShellItem*

Puntatore a un oggetto IShellItem che rappresenta l'elemento da rimuovere.

Valore restituito

Tipo: HRESULT

  • Restituisce S_OK se l'elemento è stato rimosso correttamente dall'elenco di elementi aggiunti e/o dalla barra delle applicazioni.
  • Restituisce S_OK se l'elemento non è stato aggiunto.
  • Restituisce un codice di errore standard in caso contrario.

Commenti

Poiché un'applicazione non può sapere se sono stati aggiunti collegamenti installati, questo metodo deve essere chiamato su qualsiasi collegamento dell'applicazione rimosso dal sistema. Sono inclusi i collegamenti posizionati sul desktop durante l'installazione e quelli aggiunti all'elenco Tutti i programmi del menu Start.

È consigliabile usare questo metodo per pulire gli elementi aggiunti durante il processo di disinstallazione. L'annullamento del collegamento all'applicazione non è obbligatorio, ma è fortemente consigliato per l'affidabilità.

Questo metodo non rimuove il collegamento originale rappresentato da pitem. Rimuove la relativa rappresentazione aggiunta dal menu Start e/o dalla barra delle applicazioni. Dopo aver rimosso un elemento (rimosso) tramite questo metodo, l'applicazione può eliminare il collegamento originale.

Se un elemento viene aggiunto sia al menu Start che alla barra delle applicazioni, una chiamata a questo metodo la rimuove da entrambe le posizioni.

Nota Se l'applicazione usa il framework MSI (Windows Installer) per eseguire la disinstallazione, non è necessario chiamare in modo esplicito questo metodo; MSI eseguirà la chiamata per rimuovere i tasti di scelta rapida.
 

Esempio

In questo esempio viene illustrato l'uso di 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();

Requisiti

   
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shobjidl.h
DLL Shell32.dll