HRESULT OnExecOleCmd ( const GUID * pGroup, DWORD nCmdID DWORD nCmdExecOut, VARIANTARG * pvaIn VARIANTARG * pvaOut );
Возвращаемое значение
Возвращает S_OK в случае успеха; в противном случае — один из следующих кодов ошибок:
| Значение | Описание |
| E_UNEXPECTED | Произошла непредвиденная ошибка |
| E_FAIL | Произошла ошибка |
| E_NOTIMPL | Указывает MFC сам следует попытаться перевести и направить команду |
| OLECMDERR_E_UNKNOWNGROUP | pGroup является не -NULL но не указывать группы признанным команд |
| OLECMDERR_E_NOTSUPPORTED | nCmdID не распознается как допустимая команда в группу pGroup |
| OLECMDERR_DISABLED | Команда, определенных nCmdID отключена и не может быть выполнена |
| OLECMDERR_NOHELP | Абонент просил помочь в команде, определенных nCmdID , но не Справка доступна |
| OLECMDERR_CANCELED | Пользователь отменил исполнение |
Параметры
pGroup
Указатель на идентификатор GUID, определяющий набор команд. Может иметь значение NULL для указания группы команд по умолчанию.
nCmdID
Команда для выполнения. Должны быть в группе, pGroup.
nCmdExecOut
Как объект должен выполнить команду, один или несколько из следующих значений из перечисления OLECMDEXECOPT:
OLECMDEXECOPT_DODEFAULT
OLECMDEXECOPT_PROMPTUSER
OLECMDEXECOPT_DONTPROMPTUSER
OLECMDEXECOPT_SHOWHELP
pvaIn
Указатель VARIANTARG , содержащие входные аргументы команды. Может быть пустым.
pvaOut
Указатель на VARIANTARG для получения выходных данных возвращают значения из команды. Может быть пустым.
Примечания
Платформа вызывает эту функцию для выполнения указанной команды или отображение справки для команды.
COleCmdUI может использоваться для включения, обновлять и задать другие свойства команд интерфейса пользователя DocObject. После инициализации команды можно выполнять их с OnExecOleCmd.
Платформа вызывает функцию перед попыткой перевести и направить команду документ OLE. Вам не нужно переопределить эту функцию для обработки стандартных команд документа OLE, но переопределение этой функции необходимо указать, если вы хотите обрабатывать ваши собственные пользовательские команды или обрабатывать команды, которые принимают параметры или возвращать результаты.
Большинство команд не принимают аргументы и возвращаемые значения. Для большинства команд вызывающий объект можно передать NULLs для pvaIn и pvaOut. Для команд, которые ожидают входные значения вызывающий можно объявить и инициализировать переменную VARIANTARG и передать указатель на переменную в pvaIn. Для команд, которые требуют одно значение аргумент может храниться непосредственно в VARIANTARG и передан функции. Несколько аргументов должны быть упакованы в VARIANTARG с помощью одного из поддерживаемых типов (таких как IDispatch и SAFEARRAY ).
Аналогично если команда возвращает аргументы вызывающий ожидается будет объявить VARIANTARG, инициализировать его VT_EMPTYи передать его адрес в pvaOut. Если команда возвращает одно значение, объект может хранить это значение непосредственно в pvaOut. Несколько выходных значений должны быть упакованы в некотором роде для VARIANTARG.
Базового класса реализация этой функции будет ходить в OLE_COMMAND_MAP структуры, связанные с цели команды и попробуйте направить команду соответствующий обработчик. Реализация базового класса работает только с командами, которые не принимают аргументы и возвращаемые значения. Если вам нужно обрабатывать команды, которые принимают аргументы и возвращаемые значения, необходимо переопределить эту функцию и работать с параметрами pvaIn и pvaOut себя.
Обзор COleServerDoc | Члены класса | Иерархическая схема
См. также COleCmdUI