Share via


IContextMenu::InvokeCommand 方法 (shobjidl_core.h)

執行與快捷方式功能表項相關聯的命令。

語法

HRESULT InvokeCommand(
  CMINVOKECOMMANDINFO *pici
);

參數

pici

類型: LPCMINVOKECOMMANDINFO

CMINVOKECOMMANDINFOCMINVOKECOMMANDINFOEX 結構的指標,其中包含命令的特定資訊。

傳回值

類型: HRESULT

如果此方法成功,則會傳回 S_OK。 否則,它會傳回 HRESULT 錯誤碼。

備註

IContextMenu 介面是由數個 Shell 延伸模組處理程式和命名空間延伸模組所匯出。 它用來將命令新增至快捷方式功能表。 當使用者選取處理程式或命名空間延伸模組新增至快捷方式功能表的其中一個命令時,Shell 會呼叫該命令的 InvokeCommand 方法。 命令可由其功能表標識符位移來指定,定義在呼叫 IContextMenu::QueryContextMenu 時,或其相關聯的動詞。 應用程式可以直接叫用此方法,方法是取得物件的 IContextMenu 介面指標。 應用程式也可以藉由呼叫 ShellExecute 或 ShellExecuteEx指定命名空間延伸模組或處理程式所支援的動詞,間接叫用此方法。

使用者附註

雖然 pici 參數在 Shlobj.h 中宣告為 CMINVOKECOMMANDINFO 結構,但您可以使用 CMINVOKECOMMANDINFO 或 CMINVOKECOMMANDINFOEX 任一個都適用於 ANSI 字串,但您必須針對 Unicode 字串使用 CMINVOKECOMMANDINFOEX 結構。

實作者的注意事項

檢查 picicbSize 成員,以判斷傳入哪個結構 (CMINVOKECOMMANDINFOCMINVOKECOMMANDINFOEX) 。 如果它是 CMINVOKECOMMANDINFOEX 結構, 且 fMask 成員已設定 CMIC_MASK_UNICODE 旗標,您必須將 pici 轉換成 CMINVOKECOMMANDINFOEX ,才能使用結構最後五個成員中包含的 Unicode 資訊。

如果動詞是由標準動詞名稱指定,或操作功能表處理程式無法辨識命令標識碼,它必須傳回失敗 (E_FAIL) ,以便動詞可以傳遞至可能實作它的其他操作功能表處理程式。

從 Windows Vista 起,只要在 CMINVOKECOMMANDINFOCMINVOKECOMMANDINFOEX 結構的 fMask 成員中設定CMIC_MASK_ASYNCOK旗標,就不足以以異步方式叫用命令。 您也必須在呼叫線程上設定線程參考,如 管理線程參考中所述。

規格需求

需求
最低支援的用戶端 Windows XP [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 shobjidl_core.h (包括 Shobjidl.h)
Dll Shell32.dll (4.0 版或更新版本)

另請參閱

IContextMenu