COleServerDoc::OnExecOleCmd
Платформа вызывает функцию эта функция позволяет выполнять указанную справка команды или отображения для команды.
virtual HRESULT OnExecOleCmd(
const GUID* pguidCmdGroup,
DWORD nCmdID,
DWORD nCmdExecOpt,
VARIANTARG* pvarargIn,
VARIANTARG* pvarargOut
);
Параметры
pguidCmdGroup
Указатель на идентификатор GUID, определяющий набор команд.Может быть NULL для указания по умолчанию группу команды.nCmdID
Команда для выполнения.Находиться в группе, указанной pguidCmdGroup.nCmdExecOut
Способ объект должен выполнять команду, одно или несколько из следующих значений из перечисления OLECMDEXECOPT:OLECMDEXECOPT_DODEFAULT
OLECMDEXECOPT_PROMPTUSER
OLECMDEXECOPT_DONTPROMPTUSER
OLECMDEXECOPT_SHOWHELP
pvarargIn
Указатель на VARIANTARG, содержащий аргументы ввода для команды.Может быть NULL.pvarargOut
Указатель на 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 документа, но необходимо предоставить переопределение к этой функции если необходимо обработать собственные пользовательские команды или обрабатывать команды, которые принимают параметры или возвращаемые результаты.
Большинство команд не принимает аргументы и возвращаемые значения.Для большинства команд вызывающий может передать NULL s, pvarargIn и pvarargOut.Для команд, которые ожидают входные значения, вызывающая сторона может объявить и инициализировать переменную VARIANTARG и передать указатель на переменную в pvarargIn.Для команд, требующих одного значения аргумента можно сохранить непосредственно в VARIANTARG и передачи в функцию.Несколько аргументов необходимо упаковать в пределах VARIANTARG с помощью одного из поддерживаемых типов (например, IDispatch и SAFEARRAY ).
Аналогично, если команда возвращает аргументы, то предполагается, что объявляется VARIANTARG инициализирует его с VT_EMPTY и передает вызывающий его адрес в pvarargOut.Если команда возвращает одно значение, то объект может хранить, что значение непосредственно в pvarargOut.Несколько выходных значений необходимо упаковать каким-либо способом, подходящем для VARIANTARG.
Реализация базового класса этой функции структурами OLE_COMMAND_MAP погуляет, связанные с целевым объектом и попыткой команды для распределения команды к соответствующему обработчику.Реализация базового класса работает только с командами, которые не принимают аргументы или возвращаемые значения.Если необходимо обрабатывать команды, которые принимают аргументы или возвращаемых значений, необходимо самостоятельно переопределить эти функции и работа с параметрами pvarargIn и pvarargOut.
Требования
Header: afxole.h