COleServerDoc::OnExecOleCmd

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

Index