COleServerDoc::OnExecOleCmd
架構會呼叫這個函式來執行指定的命令或顯示命令的說明。
virtual HRESULT OnExecOleCmd(
const GUID* pguidCmdGroup,
DWORD nCmdID,
DWORD nCmdExecOpt,
VARIANTARG* pvarargIn,
VARIANTARG* pvarargOut
);
參數
pguidCmdGroup
out 識別一組命令的 GUID 的指標。 可以是表示預設命令群組的 NULL 。nCmdID
要執行的命令。 必須在 pguidCmdGroup所識別的群組中。nCmdExecOut
這個物件應該執行命令,一或多個從 OLECMDEXECOPT 列舉型別的下列值:OLECMDEXECOPT_DODEFAULT
OLECMDEXECOPT_PROMPTUSER
OLECMDEXECOPT_DONTPROMPTUSER
OLECMDEXECOPT_SHOWHELP
pvarargIn
out 包含命令的 VARIANTARG 的指標輸入引數。 可以是 NULL。pvarargOut
out 接收從命令的輸出傳回值的 VARIANTARG 的指標。 可以是 NULL。
傳回值
傳回,如果失敗, S_OK 否則,下列錯誤碼之一:
值 |
描述 |
---|---|
E_UNEXPECTED |
發生無法預期的錯誤。 |
E_FAIL |
發生錯誤。 |
E_NOTIMPL |
指出 MFC 應該嘗試轉換和分派命令 |
OLECMDERR_E_UNKNOWNGROUP |
pguidCmdGroup 是非NULL ,但未指定可辨認的命令群組 |
OLECMDERR_E_NOTSUPPORTED |
nCmdID 在群組中 pguidCmdGroup辨認為有效的命令 |
OLECMDERR_DISABLED |
nCmdID 判斷的命令停用且無法執行 |
OLECMDERR_NOHELP |
在這個命令的說明由 nCmdID ,但不可用於要求的呼叫端可以 |
OLECMDERR_CANCELED |
使用者已取消執行 |
備註
COleCmdUI 可用來啟用更新,並將 DocObject 使用者介面命令的其他屬性。 在命令初始化之後,您就可以執行這些 OnExecOleCmd。
架構會在嘗試轉換和分派一個 OLE 文件順序呼叫函式。 您不需要覆寫這個函式處理標準 OLE 文件順序,不過,您必須覆寫這個函式將您想管理您的自訂命令或處理接受參數或傳回結果的順序。
大部分命令不接受引數或傳回值。 對於大部分命令呼叫端可以 pvarargIn 和 pvarargOut的 NULLs。 對於伺服器中指定值的順序,呼叫端可以宣告及初始化 VARIANTARG 變數和傳遞指標在 pvarargIn的變數。 對於需要單一值的命令引數,直接在 VARIANTARG 可以儲存和傳遞至函式。 必須在 VARIANTARG 換行多引數使用其中一個支援的型別 (例如 IDispatch 和 SAFEARRAY )。
同樣地,,如果命令傳回引數呼叫端必須宣告 VARIANTARG,初始化至 VT_EMPTY和為其在 pvarargOut的位址。 如果命令傳回單一值,物件直接在 pvarargOut可以儲存該值。 多個輸出值必須以某種方式是封裝的適當 VARIANTARG的。
這個函式的基底類別實作會查核 OLE_COMMAND_MAP 結構與命令目標和嘗試傳送命令至適當的處理常式。 基底類別實作只與不接受引數或傳回值的順序一起使用。 如果您需要管理接受引數或傳回值的命令,您必須覆寫這個函式以及 pvarargIn 和 pvarargOut 參數一起使用。
需求
Header: afxole.h