Поделиться через


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

См. также

Ссылки

Класс COleServerDoc

Диаграмма иерархии

Класс COleCmdUI