共用方式為


IStartMenuPinnedList::RemoveFromList 方法 (shobjidl.h)

Windows Vista:從 [ 開始] 功能表釘選清單中移除專案,這是 [ 開始 ] 功能表左上方位置的清單。

Windows 7:從 [ 開始] 功能表釘選清單中移除專案,並從工作列取消釘選項目。

Windows 8:從工作列取消釘選項目,但不會從 [開始] 畫面移除該專案。 無法以程式設計方式從 [開始] 移除專案;他們只能由使用者取消釘選,或移除作為程式卸載的一部分。

語法

HRESULT RemoveFromList(
  [in] IShellItem *pitem
);

參數

[in] pitem

類型: IShellItem*

IShellItem物件的指標,代表要取消釘選的專案。

傳回值

類型: HRESULT

  • 如果已成功從釘選的專案和/或工作列清單中移除專案,則傳回S_OK。
  • 如果專案完全未釘選,則傳回S_OK。
  • 否則會傳回標準錯誤碼。

備註

因為應用程式無法知道是否已釘選任何已安裝的快捷方式,所以應該在任何要從系統移除的應用程式快捷方式上呼叫這個方法。 這包括在安裝期間放置在桌面上的快捷方式,以及新增至 [ 開始 ] 功能表的 [ 所有程式] 清單的快捷方式。

建議所有應用程式在卸載程式期間使用這個方法來清除其釘選的專案。 不需要取消釘選應用程式快捷方式,但強烈建議進行可靠性。

這個方法不會移除 pitem所代表的原始快捷方式。 它會從 [ 開始] 功能表和/或工作列移除其釘選的標記法。 一旦透過此方法移除專案 (取消釘選) ,應用程式就可以刪除原始快捷方式。

如果專案同時釘選到 [ 開始] 功能表和工作列,則一次呼叫此方法會將它從這兩個位置移除。

注意 如果您的應用程式使用 Windows Installer (MSI) 架構來執行卸載,則不需要明確呼叫此方法;MSI 會呼叫 以取消釘選快捷方式。
 

範例

此範例示範 如何使用 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();

規格需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 shobjidl.h
Dll Shell32.dll