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 回呼び出すと、両方の場所から削除されます。
例
この例では、 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 |