COleServerDoc::OnExecOleCmd
L'infrastructure appelle cette fonction pour exécuter une commande spécifiée ou pour afficher l'aide de la commande.
virtual HRESULT OnExecOleCmd(
const GUID* pguidCmdGroup,
DWORD nCmdID,
DWORD nCmdExecOpt,
VARIANTARG* pvarargIn,
VARIANTARG* pvarargOut
);
Paramètres
pguidCmdGroup
Un pointeur vers un GUID qui identifie un jeu de commandes. Peut être NULL pour indiquer le groupe de commandes par défaut.nCmdID
Commande à exécuter. Doit être au groupe identifié par pguidCmdGroup.nCmdExecOut
La méthode de l'objet doit exécuter la commande, une ou plusieurs des valeurs suivantes de l'énumération d' OLECMDEXECOPT :OLECMDEXECOPT_DODEFAULT
OLECMDEXECOPT_PROMPTUSER
OLECMDEXECOPT_DONTPROMPTUSER
OLECMDEXECOPT_SHOWHELP
pvarargIn
Pointeur vers VARIANTARG contenant les arguments d'entrée pour la commande. Peut être NULL.pvarargOut
Pointeur vers VARIANTARG pour accepter les valeurs de retour de sortie de la commande. Peut être NULL.
Valeur de retour
Retourne S_OK si l'opération a réussi ; sinon, l'un des codes d'erreur suivante :
Valeur |
Description |
---|---|
E_UNEXPECTED |
Erreur inattendue rencontrée |
E_FAIL |
Erreur rencontrée |
E_NOTIMPL |
Indique MFC elle-même doit essayer de convertir et distribuer la commande |
OLECMDERR_E_UNKNOWNGROUP |
pguidCmdGroup estNULL non mais ne spécifie pas un groupe de commandes identifié |
OLECMDERR_E_NOTSUPPORTED |
nCmdID n'est pas reconnu comme une commande valide dans pguidCmdGroupde groupe |
OLECMDERR_DISABLED |
La commande identifiée par nCmdID est désactivé et ne peut pas être exécutée |
OLECMDERR_NOHELP |
L'appelant demande l'aide de la commande identifiée par nCmdID mais aucune aide est disponible |
OLECMDERR_CANCELED |
L'utilisateur a annulé l'opération |
Notes
COleCmdUI peut être utilisé pour activer, mettre à jour, et définir d'autres propriétés des commandes d'interface utilisateur de DocObject. Une fois les commandes soient initialisées, vous pouvez les exécuter à OnExecOleCmd.
L'infrastructure appelle la fonction avant d'essayer de convertir et OLE distribuer une commande de document. Vous n'avez pas besoin de substituer cette fonction pour gérer de commandes OLE standard de document, mais vous devez fournir une substitution à cette fonction si vous souhaitez gérer vos propres commandes personnalisées ou gérer des commandes qui acceptent des paramètres ou des résultats.
La plupart des commandes ne prennent pas d'arguments ou des valeurs de retour. Pour la majorité de commandes l'appelant peut passer NULLs pour pvarargIn et pvarargOut. Pour les commandes qui attendent des valeurs d'entrée, l'appelant peut déclarer et initialiser une variable de VARIANTARG et passez un pointeur à la variable dans pvarargIn. Pour les commandes qui requièrent une valeur unique, l'argument peut être stocké directement dans VARIANTARG et être passé à la fonction. Plusieurs arguments doivent être empaquetés dans VARIANTARG l'un des types pris en charge (par exemple IDispatch et SAFEARRAY ).
De même, si une commande retourne les arguments supposé que l'appelant déclare VARIANTARG, l'initialise à VT_EMPTY, et passe son adresse dans pvarargOut. Si une commande retourne une valeur unique, l'objet peut stocker que valeur directement dans pvarargOut. Les valeurs à plusieurs sorties doivent être d'une certaine façon appropriée empaqueté pour VARIANTARG.
L'implémentation de la classe de base de cette fonction marchera les structures d' OLE_COMMAND_MAP associées à la cible de la commande et le test pour distribuer la commande à un gestionnaire approprié. L'implémentation de la classe de base fonctionne uniquement avec les commandes qui n'acceptent pas d'arguments ou des valeurs de retour. Si vous devez gérer les commandes qui acceptent des arguments ou des valeurs de retour, vous devez substituer ces fonctions et utiliser des paramètres d' pvarargIn et d' pvarargOut vous-même.
Configuration requise
Header: afxole.h