選擇靜態或動態快捷方式功能表方法
本主題的組織方式如下:
選擇 Verb 方法
強烈建議您使用其中一個靜態動詞方法實作快捷方式功能表。
靜態動詞方法
靜態動詞是實作的最簡單動詞,但仍提供豐富的功能。 一律選擇最簡單符合您需求的快捷方式功能表方法。
靜態動詞 | 描述 |
---|---|
使用命令行參數 CreateProcess | 這是實作靜態動詞的最簡單且最熟悉的方法。 進程是透過呼叫 CreateProcess 函式來叫用,其中包含選取的檔案,以及傳遞為命令行的任何選擇性參數。 這會開啟檔案或資料夾。 此方法有下列限制:
|
DropTarget/IDropTarget | 以 COM 為基礎的動詞啟用表示支援內部程式或跨程式啟用。 當本機伺服器實作 IDropTarget 介面時,DropTarget/IDropTarget 也支援重複使用已經執行中的處理程式。 它也透過封送處理的數據物件完美地表達專案,並提供叫用網站鏈結的參考,讓您可以透過 QueryService與叫用者互動。 |
Windows 7 和更新版本: IExecuteCommand | 最直接的實作方法。 因為這是以 COM 為基礎的叫用方法(例如 DropTarget),此介面支援內部程式和跨程式啟用。 動詞會實作 IExecuteCommand 和 IObjectWithSelection,並選擇性地實作 IInitializeCommand。 專案會直接傳遞為Shell專案數位,而叫用程式中的更多參數可供動詞實作使用,包括叫用點、鍵盤狀態等等。 |
Windows 7 和更新版本:ExplorerCommand/ IExplorerCommand | 啟用透過 IExplorerCommandProvider 提供其命令模組命令的數據源,以在快捷方式功能表上將這些命令當做動詞命令。 由於此介面僅支援同進程啟用,因此建議由需要共用命令與快捷功能表之間實作的Shell數據源使用。 |
注意
IExplorerCommand 是靜態和動態動詞之間的混合式。 IExplorerCommand 已在 Windows Vista 中宣告,但其在快捷方式功能表中實作動詞的能力是 Windows 7 的新功能。
如需檔案關聯屬性之 IDropTarget 和 Shell 查詢的詳細資訊,請參閱感知的類型和應用程式註冊。
慣用的動態動詞方法
慣用下列動態動詞方法:
動詞類型 | 描述 |
---|---|
靜態動詞 (列於上表) + 進階查詢語法 (AQS) | 此選項會取得動態動詞可見性。 |
Windows 7 和更新版本: IExplorerCommand | 此選項可讓您在 Windows 檔案總管的命令模組中顯示的動詞和總管命令,進行一般實作。 |
Windows 7 和更新版本: IExplorerCommandState + 靜態動詞 | 這個選擇也會取得動態動詞可見性。 這是混合式模型,其中會使用簡單的進程內處理程式來計算是否應該顯示指定的靜態動詞。 這可以套用至所有靜態動詞實作方法,以達到動態行為,並將進程內邏輯的曝光降到最低。 IExplorerCommandState 有在背景線程上執行的優點,因此可避免UI停止回應。 它比 IContextMenu 簡單得多。 |
不建議使用動態動詞方法
IContextMenu 是最強大的,也是最複雜的實作方法。 它是以進程內 COM 物件為基礎,這些物件會在呼叫端的線程上執行,這通常是 Windows 檔案總管,但可以是裝載專案的任何應用程式。 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 |
相關主題