COleServerDoc::OnExecOleCmd
El marco de trabajo llama a esta función para ejecutar una ayuda especificada del comando o de presentación para el comando.
virtual HRESULT OnExecOleCmd(
const GUID* pguidCmdGroup,
DWORD nCmdID,
DWORD nCmdExecOpt,
VARIANTARG* pvarargIn,
VARIANTARG* pvarargOut
);
Parámetros
pguidCmdGroup
Un puntero a un GUID que identifica un conjunto de comandos. Puede ser NULL para indicar al grupo de comandos predeterminado.nCmdID
Comando que se va a ejecutar. debe estar en el grupo identificado por pguidCmdGroup.nCmdExecOut
La forma el objeto debe ejecutar el comando, uno o más de los siguientes valores de enumeración de OLECMDEXECOPT :OLECMDEXECOPT_DODEFAULT
OLECMDEXECOPT_PROMPTUSER
OLECMDEXECOPT_DONTPROMPTUSER
OLECMDEXECOPT_SHOWHELP
pvarargIn
Puntero a VARIANTARG que contiene los argumentos de entrada para el comando. puede ser NULL.pvarargOut
Puntero a VARIANTARG para recibir los valores devueltos del resultado del comando. puede ser NULL.
Valor devuelto
devuelve S_OK si correctamente; si no, uno de los códigos de error siguientes:
Valor |
Descripción |
---|---|
E_UNEXPECTED |
error inesperado producido |
E_FAIL |
Error |
E_NOTIMPL |
Indica que MFC debería intentar traducir y enviar el comando |
OLECMDERR_E_UNKNOWNGROUP |
pguidCmdGroup no es null pero no especifica un grupo de comandos reconocido |
OLECMDERR_E_NOTSUPPORTED |
nCmdID no se reconoce como un comando válido en el grupo pguidCmdGroup |
OLECMDERR_DISABLED |
Está deshabilitado y no se puede ejecutar el comando identificado por nCmdID |
OLECMDERR_NOHELP |
El llamador le ayuda sobre el comando identificado por nCmdID pero ninguna ayuda está disponible |
OLECMDERR_CANCELED |
el usuario canceló la ejecución |
Comentarios
COleCmdUI se puede utilizar para habilitar, actualizar, y establecer otras propiedades de los comandos de la interfaz de usuario de DocObject. Después de que se inicializan los comandos, puede ejecutar con OnExecOleCmd.
El marco de trabajo llama a la función antes de intentar traducir y enviar un comando OLE del documento. No necesita reemplazar esta función para controlar los comandos de OLE estándar del documento, pero debe proporcionar un reemplazo a esta función si desea administrar para sus propios comandos personalizados o para controlar los comandos que aceptan parámetros o resultados devueltos.
La mayoría de los comandos no aceptan argumentos o valores devueltos. Para la mayoría de comandos el llamador puede pasar s para NULLpara pvarargIn y pvarargOut. Para los comandos que esperan valores de entrada, el llamador puede declarar e inicializar una variable de VARIANTARG y pasar un puntero a la variable en pvarargIn. Para los comandos que requieren un valor único, el argumento se puede almacenar directamente en VARIANTARG y pasar a la función. Varios argumentos deben empaquetar dentro de VARIANTARG utilizando uno de los tipos admitidos (como IDispatch y SAFEARRAY ).
De igual forma, si un comando devuelve argumentos el llamador es esperado declarar VARIANTARG, inicializarla a VT_EMPTY, y pasar su dirección en pvarargOut. Si un comando devuelve un valor único, el objeto puede almacenar ese valor en pvarargOut. Los valores de salida varios deben ser de alguna manera adecuados empaquetado para VARIANTARG.
La implementación de la clase base de esta función recorrerá estructuras de OLE_COMMAND_MAP asociado con el destino y el intento de comandos para enviar el comando un controlador adecuado. La implementación de la clase base sólo funciona con los comandos que no aceptan argumentos o valores devueltos. Si necesita controlar los comandos que aceptan argumentos o valores devueltos, debe invalidar esta función y trabajar con los parámetros de pvarargIn y de pvarargOut personalmente.
Requisitos
encabezado: afxole.h