Partager via


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

Voir aussi

Référence

COleServerDoc, classe

Graphique de la hiérarchie

COleCmdUI, classe