このトピックは次のように構成されています。
動詞メソッドを選択する
静的動詞メソッドのいずれかを使用してショートカット メニューを実装することを強くお勧めします。
静的動詞メソッド
静的動詞は実装する最も簡単な動詞ですが、引き続き豊富な機能を提供します。 常にニーズに合った最も簡単なショートカット メニュー方法を選択してください。
| 静的動詞 | 説明 |
|---|---|
| コマンド ライン パラメーターを使用した CreateProcess | これは、静的動詞を実装する最も簡単で最も使い慣れた手段です。 プロセスは、 CreateProcess 関数の呼び出しによって呼び出され、選択したファイルと、コマンド ラインとして渡される省略可能なパラメーターが含まれます。 これにより、ファイルまたはフォルダーが開きます。 この方法には、次の制限があります。
|
| DropTarget/IDropTarget | COM ベースの動詞のアクティブ化は、インプロセスまたはアウトプロセスのアクティブ化をサポートすることを意味します。 DropTarget/IDropTarget では、 IDropTarget インターフェイスがローカル サーバーによって実装されている場合に、既に実行中のハンドラーの再利用もサポートされます。 また、マーシャリングされたデータ オブジェクトを介して項目を完全に表現し、呼び出し元のサイト チェーンへの参照を提供して、 QueryService を介して呼び出し元と対話できるようにします。 |
| Windows 7 以降: IExecuteCommand | 最も直接的な実装方法。 これは COM ベースの呼び出しメソッド (DropTarget など) であるため、このインターフェイスはインプロセスおよびアウトプロセスのアクティブ化をサポートします。 動詞は、IExecuteCommand と IObjectWithSelection を実装し、必要に応じて IInitializeCommand をします。 項目はシェル項目配列として直接渡され、呼び出しポイントやキーボードの状態など、呼び出し側からのパラメーターの多くを動詞の実装で使用できます。 |
| Windows 7 以降:ExplorerCommand/ IExplorerCommand | IExplorerCommandProvider を介してコマンド モジュール コマンドを提供するデータ ソースで、これらのコマンドをショートカット メニューの動詞として使用できるようにします。 このインターフェイスはインプロセス アクティブ化のみをサポートするため、コマンドとショートカット メニュー間で実装を共有する必要があるシェル データ ソースで使用することをお勧めします。 |
Note
IExplorerCommand は、静的動詞と動的動詞の間のハイブリッドです。 IExplorerCommand は Windows Vista で宣言されましたが、ショートカット メニューに動詞を実装する機能は Windows 7 の新機能です。
ファイル関連付け属性の IDropTarget およびシェル クエリの詳細については、「 Perceived 型とアプリケーションの登録」を参照してください。
優先される動的動詞メソッド
次の動的動詞メソッドが推奨されます。
| 動詞の種類 | 説明 |
|---|---|
| 静的動詞 (前の表に記載) + 高度なクエリ構文 (AQS) | この選択は、動的な動詞の可視性を取得します。 |
| Windows 7 以降: IExplorerCommand | この選択により、Windows エクスプローラーのコマンド モジュールに表示される動詞とエクスプローラー コマンドの一般的な実装が可能になります。 |
| Windows 7 以降: IExplorerCommandState + 静的動詞 | この選択では、動的な動詞の可視性も取得されます。 これは、特定の静的動詞を表示する必要がある場合に、単純なインプロセス ハンドラーを使用して計算するハイブリッド モデルです。 これは、動的な動作を実現し、インプロセス ロジックの公開を最小限に抑えるために、すべての静的動詞実装メソッドに適用できます。 IExplorerCommandState には、バックグラウンド スレッドで実行する利点があり、UI のハングを回避できます。 IContextMenuよりもかなり簡単です。 |
推奨されていない動的動詞メソッド
IContextMenu は最も強力ですが、実装する最も複雑なメソッドでもあります。 これは、呼び出し元のスレッドで実行されるインプロセス COM オブジェクトに基づいています。このオブジェクトは、通常は Windows Explorer ですが、項目をホストする任意のアプリケーションにすることができます。 IContextMenu では、動詞の表示、順序付け、カスタム描画がサポートされています。 これらの機能の一部は、コマンドに関連付けるアイコンや、可視性を処理する IExplorerCommand などの静的動詞機能に追加されています。
ファイルの種類の動的動詞を登録して、ファイルの種類のショートカット メニューを拡張する必要がある場合は、「 動的動詞を使用してショートカット メニューをカスタマイズするに関するページに記載されている手順に従ってください。
ショートカット メニューを拡張する
動詞メソッドを選択した後、ファイルの種類の静的動詞を登録することで、ファイルの種類のショートカット メニューを拡張できます。 詳細については、「 コンテキスト メニュー ハンドラーの作成」を参照してください。
オペレーティング システムによる動詞メソッドのサポート
オペレーティング システムによる動詞呼び出しメソッドのサポートを次の表に示します。
| Verb メソッド | Windows XP | Windows Vista | Windows 7 以降 |
|---|---|---|---|
| CreateProcess | x | X | x |
| DDE | x | X | x |
| DropTarget | x | X | x |
| ExecuteCommand | x | x | |
| ExplorerCommand | x | ||
| ExplorerCommandState | x |
関連トピック