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