Condividi tramite


COleServerDoc::OnExecOleCmd

Il framework chiama la funzione per eseguire una guida specificata per la visualizzazione o il comando per il comando.

virtual HRESULT OnExecOleCmd( 
   const GUID* pguidCmdGroup, 
   DWORD nCmdID, 
   DWORD nCmdExecOpt, 
   VARIANTARG* pvarargIn, 
   VARIANTARG* pvarargOut 
);

Parametri

  • pguidCmdGroup
    Un puntatore a un GUID che identificano un insieme di controlli. Può essere NULL per indicare il gruppo di controlli predefinito.

  • nCmdID
    Comando da eseguire. Deve appartenere al gruppo identificato da pguidCmdGroup.

  • nCmdExecOut
    La modalità l'oggetto deve eseguire il comando, uno o più dei seguenti valori dell'enumerazione OLECMDEXECOPT :

  •    OLECMDEXECOPT_DODEFAULT

  •    OLECMDEXECOPT_PROMPTUSER

  •    OLECMDEXECOPT_DONTPROMPTUSER

  •    OLECMDEXECOPT_SHOWHELP

  • pvarargIn
    Puntatore a VARIANTARG contenente gli argomenti per il comando. Può essere NULL.

  • pvarargOut
    Puntatore a VARIANTARG per ricevere valori restituiti di output del comando. Può essere NULL.

Valore restituito

Restituisce S_OK caso di esito positivo; in caso contrario, uno dei seguenti codici di errore:

Valore

Descrizione

E_UNEXPECTED

L'errore non si è verificato

E_FAIL

Si è verificato l'errore

E_NOTIMPL

Indica che la libreria MFC deve tentare di convertire e inviare il comando

OLECMDERR_E_UNKNOWNGROUP

pguidCmdGroup èNULL ma non specifica un gruppo di controlli riconosciuto

OLECMDERR_E_NOTSUPPORTED

nCmdID non viene riconosciuto come un comando valido nel gruppo pguidCmdGroup

OLECMDERR_DISABLED

Il comando identificato da nCmdID è disabilitato e non può essere eseguito

OLECMDERR_NOHELP

Il chiamante richiesto la guida sul comando identificato da nCmdID ma nessuna guida è disponibile

OLECMDERR_CANCELED

l'utente ha annullato l'esecuzione

Note

COleCmdUI può essere utilizzato per attivare, aggiornare e impostare altre proprietà dei controlli dell'interfaccia utente di DocObject. Dopo che i controlli vengono inizializzati, è possibile eseguirli con OnExecOleCmd.

Il framework chiama la funzione prima di tentare di convertire e inviare un comando di documenti OLE. Non è necessario eseguire l'override della funzione per gestire i controlli documento OLE standard, ma è necessario fornire un override a questa funzione per gestire i propri controlli personalizzati o i controlli di handle che accettano parametri o restituire i risultati.

La maggior parte dei controlli non accetta argomenti o i valori restituiti. Per la maggior parte dei comandi il chiamante può passare NULLoggetti per pvarargIn e pvarargOut. Per i controlli che prevedono valori di input, il chiamante può dichiarare e inizializzare una variabile VARIANTARG e passare un puntatore alla variabile in pvarargIn. Per i controlli che richiedono un singolo valore, l'argomento può essere memorizzato direttamente in VARIANTARG ed essere passato alla funzione. Gli argomenti devono più essere compressi in VARIANTARG utilizzando uno dei tipi supportati (come IDispatch e SAFEARRAY ).

Analogamente, se un comando restituisce gli argomenti il chiamante deve dichiarare VARIANTARG, per inizializzarla a VT_EMPTYe passare il relativo indirizzo in pvarargOut. Se un comando restituisce un valore, l'oggetto può archiviare il valore direttamente in pvarargOut. I valori a l input devono trovarsi in qualche modo appropriato compressa per VARIANTARG.

L'implementazione della classe base di questa funzione verificherà le strutture OLE_COMMAND_MAP associate alla destinazione comando e tentare di inviare il comando a un gestore appropriato. Funzionamento di implementazione della classe base solo con i controlli che non accetta argomenti e valori restituiti. Se è necessario gestire i controlli che accettano argomenti o i valori restituiti, è necessario eseguire l'override di questi funzione e utilizzare i parametri pvarargOut e pvarargIn manualmente.

Requisiti

Header: afxole.h

Vedere anche

Riferimenti

Classe COleServerDoc

Grafico delle gerarchie

Classe COleCmdUI