Share via


IStartMenuPinnedList::RemoveFromList メソッド (shobjidl.h)

Windows Vista: [スタート ] メニュー固定リストから項目を削除します。これは、[ スタート ] メニューの左上の位置にあるリストです。

Windows 7: [スタート ] メニューのピン留めされたリストから項目を削除し、タスク バーから項目のピン留めを解除します。

Windows 8: タスク バーから項目のピン留めを解除しますが、スタート画面から項目は削除されません。 Start からプログラムで項目を削除することはできません。ユーザーによって固定解除されるか、プログラムのアンインストールの一部として削除されるだけです。

構文

HRESULT RemoveFromList(
  [in] IShellItem *pitem
);

パラメーター

[in] pitem

種類: IShellItem*

固定解除する項目を表す IShellItem オブジェクトへのポインター。

戻り値

種類: HRESULT

  • ピン留めされたアイテムやタスク バーの一覧からアイテムが正常に削除された場合にS_OKを返します。
  • アイテムがまったくピン留めされていない場合は、S_OKを返します。
  • それ以外の場合は標準エラー コードを返します。

解説

インストールされているショートカットのいずれかがピン留めされているかどうかをアプリケーションで認識できないため、システムから削除されるアプリケーション ショートカットでこのメソッドを呼び出す必要があります。 これには、インストール中にデスクトップに配置されたショートカットと、[ スタート ] メニューの [すべてのプログラム ] リストに追加されたショートカットが含まれます。

すべてのアプリケーションで、アンインストール プロセス中にピン留めされたアイテムをクリーンするには、この方法を使用することをお勧めします。 アプリケーション ショートカットのピン留めを解除する必要はありませんが、信頼性を高くすることを強くお勧めします。

このメソッドは 、pitem で表される元のショートカットを削除しません。 [ スタート ] メニューやタスク バーからピン留めされた表現が削除されます。 このメソッドを使用して項目が削除 (ピン留め解除) されると、アプリケーションは元のショートカットを削除できます。

項目が [スタート ] メニューとタスク バーの両方にピン留めされている場合、このメソッドを 1 回呼び出すと、両方の場所から削除されます。

メモ アプリケーションで Windows インストーラー (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