IContextMenuSite::D oContextMenuPopup メソッド (shobjidl_core.h)
[DoContextMenuPopup は Windows Server 2003 の時点で使用できなくなりました。
ショートカット メニューを作成して表示し、そのメニューの項目の選択を追跡し、選択したコマンドを呼び出します。
構文
HRESULT DoContextMenuPopup(
[in] IUnknown *punkContextMenu,
[in] UINT fFlags,
[in] POINT pt
);
パラメーター
[in] punkContextMenu
種類: IUnknown*
ショートカット メニューの IUnknown 実装へのポインター。
[in] fFlags
型: UINT
ショートカット メニューを変更する方法を指定する省略可能なフラグ。 このパラメーターは、次の値の任意の組み合わせに設定できます。 下位ワードの残りのビットは、システムによって予約されます。 高次ワードは、コンテキスト固有の通信に使用できます。 CMF_RESERVED値を使用して、下位の単語をマスクできます。
CMF_NORMAL (0x00000000)
0x00000000。 通常の操作を示します。 ショートカット メニュー拡張機能、名前空間拡張機能、またはドラッグ アンド ドロップ ハンドラーでは、すべてのメニュー項目を追加できます。
CMF_DEFAULTONLY (0x00000001)
0x00000001。 このフラグは、ユーザーが既定のアクション (通常はダブルクリック) をアクティブ化するときに設定されます。 このフラグは、メニューの既定の項目を変更しない場合に何も追加しないショートカット メニュー拡張機能のヒントを提供します。 この値が指定されている場合は、ショートカット メニュー拡張機能またはドラッグ アンド ドロップ ハンドラーでメニュー項目を追加しないでください。 名前空間拡張機能では、既定の項目 (存在する場合) のみを追加する必要があります。
CMF_VERBSONLY (0x00000002)
0x00000002。 このフラグは、ショートカット メニューがショートカット オブジェクト用の場合に設定されます。 ショートカット メニュー ハンドラーは、この値を無視する必要があります。
CMF_EXPLORE (0x00000004)
0x00000004。 このフラグは、Windows エクスプローラー ツリー ウィンドウが存在する場合に設定されます。
CMF_NOVERBS (0x00000008)
0x00000008。 このフラグは、[送信] メニューに表示される項目 に 設定されます。 ショートカット メニュー ハンドラーは、この値を無視する必要があります。
CMF_CANRENAME (0x00000010)
0x00000010。 このフラグは、呼び出し元のアプリケーションが項目の名前変更をサポートしている場合に設定されます。 ショートカット メニュー拡張機能またはドラッグ アンド ドロップ ハンドラーは、このフラグを無視する必要があります。 名前空間拡張機能は、必要に応じてメニューに名前変更項目を追加する必要があります。
CMF_NODEFAULT (0x00000020)
0x00000020。 このフラグは、メニューの項目が既定値として設定されていない場合に設定されます。 ドラッグ アンド ドロップ ハンドラーでは、このフラグを無視する必要があります。 名前空間拡張機能では、どのメニュー項目も既定値に設定しないでください。
CMF_INCLUDESTATIC (0x00000040)
この値は使用できません。
Windows Server 2003 および Windows XP: 0x00000040。 このフラグは、静的メニューを構築するときに設定されます。 ブラウザーのみがこのフラグを使用する必要があります。 その他のショートカット メニュー拡張機能はすべて、このフラグを無視する必要があります。
CMF_ITEMMENU (0x00000080)
0x00000080。 このフラグは、呼び出し元のアプリケーションが (ビューの背景ではなく) ビュー内の項目でコンテキスト メニューを呼び出すときに設定されます。
Windows Server 2003 および Windows XP: この値は使用できません。
CMF_EXTENDEDVERBS (0x00000100)
0x00000100。 このフラグは、呼び出し元のアプリケーションが拡張動詞を必要とするときに設定されます。 通常の動詞は、ユーザーがオブジェクトを右クリックしたときに表示されます。 拡張動詞を表示するには、Shift キーを押しながら右クリックする必要があります。
CMF_DISABLEDVERBS (0x00000200)
0x00000200。 このフラグは、呼び出し元のアプリケーションが、レガシ メニューなど、無効になっている動詞を呼び出す場合に設定されます。
Windows Server 2003 および Windows XP: この値は使用できません。
CMF_ASYNCVERBSTATE (0x00000400)
0x00000400。 動詞の状態を非同期的に評価できる場合、このフラグが設定されます。
Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値は使用できません。
CMF_OPTIMIZEFORINVOKE (0x00000800)
0x00000800。 正規動詞名を介した動詞の呼び出しをサポートしていないコンテキスト メニュー ハンドラーに、 IContextMenu::QueryContextMenu 実装でその処理をバイパスするように通知します。
Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値は使用できません。
CMF_SYNCCASCADEMENU (0x00001000)
0x00001000。
Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値は使用できません。
CMF_DONOTPICKDEFAULT (0x00002000)
0x00001000。 動詞が明示的に指定されていない場合は、その代わりに既定の動詞を使用しないでください。
Windows Server 2008、Windows Vista、Windows Server 2003、Windows XP: この値は使用できません。
CMF_RESERVED (0xffff0000)
0xffff0000。 このフラグは、使用すべきでないすべてのビットを指定するビットマスクです。 これはマスクとしてのみ使用されます。 これをパラメーター値として渡さないでください。
[in] pt
種類: POINT
ショートカット メニューを表示する場所。 このポイントは、メニューの左上隅の位置を画面座標で指定します。
戻り値
型: HRESULT
このメソッドは、成功すると S_OK を返します。 そうでない場合は、HRESULT エラー コードを返します。
要件
サポートされている最小のクライアント | Windows XP (デスクトップ アプリのみ) |
サポートされている最小のサーバー | サポートなし |
対象プラットフォーム | Windows |
ヘッダー | shobjidl_core.h (Shobjidl.h を含む) |
[DLL] | Shell32.dll (バージョン 5.0 以降) |