CMINVOKECOMMANDINFO 結構 (shobjidl_core.h)
包含 ICoNtextMenu::InvokeCommand 用來叫用快捷方式功能表命令所需的資訊。
語法
typedef struct _CMINVOKECOMMANDINFO {
DWORD cbSize;
DWORD fMask;
HWND hwnd;
LPCSTR lpVerb;
LPCSTR lpParameters;
LPCSTR lpDirectory;
int nShow;
DWORD dwHotKey;
HANDLE hIcon;
} CMINVOKECOMMANDINFO;
成員
cbSize
類型: DWORD
這個結構的大小,以位元組為單位。
fMask
類型: DWORD
零或下列一或多個旗標。
CMIC_MASK_HOTKEY
dwHotKey成員有效。
CMIC_MASK_ICON
hIcon成員有效。 從 Windows Vista 起,不會使用此旗標。
CMIC_MASK_FLAG_NO_UI
系統無法顯示使用者介面元素 (例如,執行命令時) 錯誤訊息。
CMIC_MASK_NO_CONSOLE
如果快捷方式功能表處理常式需要建立新的進程,它通常會建立新的主控台。 設定 CMIC_MASK_NO_CONSOLE 旗標會隱藏新主控台的建立。
CMIC_MASK_FLAG_SEP_VDM
只有在參考以 16 位 Windows 為基礎的應用程式時,此旗標才有效。 如果設定,則快捷方式指向的應用程式會在私人 Virtual DOS Machine (VDM) 中執行。 請參閱<備註>。
CMIC_MASK_ASYNCOK
等候 DDE 交談在傳回之前終止。
CMIC_MASK_NOASYNC
Windows Vista 和更新版本。 ICoNtextMenu::InvokeCommand的實作應該是同步的,不會在完成之前傳回。 由於建議您呼叫指定此旗標的應用程式,如果它們不熟悉叫用動詞的動詞實作,則無法保證會接受此要求。
CMIC_MASK_SHIFT_DOWN
按下 SHIFT 鍵。 請使用此選項,而不是輪詢自叫用動詞之後可能變更的鍵盤目前狀態。
CMIC_MASK_CONTROL_DOWN
按下 CTRL 鍵。 請使用此選項,而不是輪詢自叫用動詞之後可能變更的鍵盤目前狀態。
CMIC_MASK_FLAG_LOG_USAGE
指出 ICoNtextMenu::InvokeCommand 的實作可能會想要追蹤針對 [最近使用的檔] 功能表等功能所叫用的專案。
CMIC_MASK_NOZONECHECKS
請勿執列區域檢查。 此旗標可讓 ShellExecuteEx 略過 IAttachmentExecute所放置的區域檢查。
hwnd
類型: HWND
視窗的控制碼,該視窗是快捷方式功能表的擁有者。 延伸模組也可以使用此控制碼作為它所顯示之任何訊息方塊或對話方塊的擁有者。
lpVerb
類型: LPCSTR
Null 終止字串的位址,指定要執行之命令的語言獨立名稱。當應用程式啟動命令時,此成員通常是字串。 系統會為下列命令字串提供預先定義的常數值。
常數 | 命令字串 |
---|---|
CMDSTR_RUNAS | 「RunAs」 |
CMDSTR_PRINT | 「Print」 |
CMDSTR_PREVIEW | 「Preview」 |
CMDSTR_OPEN | 「Open」 |
這不是固定集;操作功能表處理常式可以發明新的標準動詞,而應用程式可以叫用它們。
如果標準動詞存在且功能表處理常式未實作標準動詞,它必須傳回失敗碼,讓下一個處理常式能夠處理這個動詞。 無法這樣做將會中斷系統中的功能,包括 ShellExecute。
或者,這個參數可以是 MAKEINTRESOURCE (offset) ,其中 offset 是命令要執行的功能表識別碼位移。實作可以使用 IS_INTRESOURCE 宏來偵測採用此替代專案。 當使用者選擇功能表命令時,Shell 會使用此替代方法。
lpParameters
類型: LPCSTR
選擇性字串,包含傳遞至 命令的參數。 此字串的格式取決於要叫用的命令。 此成員一律為 Shell 延伸模組所插入功能表項目的 Null 。
lpDirectory
類型: LPCSTR
選擇性的工作目錄名稱。 此成員一律為 Shell 延伸模組所插入功能表項目的 Null 。
nShow
類型: int
如果命令顯示視窗或啟動應用程式,一組要傳遞至 ShowWindow 函式的SW_值。
dwHotKey
類型: DWORD
選擇性的鍵盤快速鍵,可指派給命令所啟用的任何應用程式。 如果 fMask 參數未指定 CMIC_MASK_HOTKEY,則會忽略此成員。
hIcon
類型: HANDLE
用於命令所啟動之任何應用程式的圖示。 如果 fMask 成員未指定 CMIC_MASK_ICON,則會忽略此成員。
備註
雖然ICoNtextMenu::InvokeCommand宣告會指定pici參數的CMINVOKECOMMANDINFO結構,但它也可以接受CMINVOKECOMMANDINFOEX結構。 如果您要實作這個方法,您必須檢查 cbSize ,以判斷已傳遞哪一個結構。
規格需求
最低支援的用戶端 | Windows XP [僅限傳統型應用程式] |
最低支援的伺服器 | Windows 2000 Server [僅限傳統型應用程式] |
標頭 | shobjidl_core.h (包括 Shobjidl.h) |