Share via


IStartMenuPinnedList::RemoveFromList-Methode (shobjidl.h)

Windows Vista: Entfernt ein Element aus der angehefteten Liste des Startmenüs . Dies ist die Liste an der oberen linken Position des Startmenüs .

Windows 7: Entfernt ein Element aus der angehefteten Liste des Startmenüs und hebt das Element von der Taskleiste auf.

Windows 8: Löst das Element von der Taskleiste, entfernt das Element jedoch nicht aus dem Startbildschirm. Elemente können nicht programmgesteuert aus dem Start entfernt werden. sie können nur vom Benutzer entpinnt oder im Rahmen der Deinstallation eines Programms entfernt werden.

Syntax

HRESULT RemoveFromList(
  [in] IShellItem *pitem
);

Parameter

[in] pitem

Typ: IShellItem*

Ein Zeiger auf ein IShellItem-Objekt , das das zu lösende Element darstellt.

Rückgabewert

Typ: HRESULT

  • Gibt S_OK zurück, wenn das Element erfolgreich aus der Liste der angehefteten Elemente und/oder der Taskleiste entfernt wurde.
  • Gibt S_OK zurück, wenn das Element überhaupt nicht angeheftet wurde.
  • Gibt andernfalls einen Standardfehlercode zurück.

Hinweise

Da eine Anwendung nicht wissen kann, ob eine der installierten Tastenkombinationen angeheftet wurde, sollte diese Methode für jede Anwendungsverknüpfung aufgerufen werden, die aus dem System entfernt wird. Dies umfasst Tastenkombinationen, die während der Installation auf dem Desktop platziert werden, und verknüpfungen, die der Liste Alle Programme des Startmenüs hinzugefügt werden.

Es wird empfohlen, dass alle Anwendungen diese Methode verwenden, um die angehefteten Elemente während des Deinstallationsprozesses zu sauber. Das Lösen der Anwendungsverknüpfung ist nicht erforderlich, wird jedoch aus Gründen der Zuverlässigkeit dringend empfohlen.

Diese Methode entfernt nicht die ursprüngliche Verknüpfung, die durch Pitem dargestellt wird. Die angeheftete Darstellung wird aus dem Startmenü und/oder der Taskleiste entfernt. Nachdem ein Element durch diese Methode entfernt (entpinnt) wurde, kann die Anwendung die ursprüngliche Verknüpfung löschen.

Wenn ein Element sowohl an das Startmenü als auch an die Taskleiste angeheftet ist, wird es bei einem Aufruf dieser Methode von beiden Speicherorten entfernt.

Hinweis Wenn Ihre Anwendung das Windows Installer-Framework (MSI) verwendet, um die Deinstallation durchzuführen, müssen Sie diese Methode nicht explizit aufrufen. MSI führt den Aufruf aus, um die Tastenkombinationen für Sie zu lösen.
 

Beispiele

In diesem Beispiel wird die Verwendung von IStartMenuPinnedList::RemoveFromList veranschaulicht.


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();

Anforderungen

   
Unterstützte Mindestversion (Client) Windows Vista [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shobjidl.h
DLL Shell32.dll