Condividi tramite


Metodo IOleCommandTarget::Exec (docobj.h)

Esegue il comando specificato o visualizza la Guida per il comando .

Sintassi

HRESULT Exec(
  [in]      const GUID *pguidCmdGroup,
  [in]      DWORD      nCmdID,
  [in]      DWORD      nCmdexecopt,
  [in]      VARIANT    *pvaIn,
  [in, out] VARIANT    *pvaOut
);

Parametri

[in] pguidCmdGroup

Identificatore univoco del gruppo di comandi; può essere NULL per specificare il gruppo standard.

[in] nCmdID

Comando da eseguire. Questo comando deve appartenere al gruppo specificato con pguidCmdGroup.

[in] nCmdexecopt

Specifica come l'oggetto deve eseguire il comando. I valori possibili vengono ricavati dalle enumerazioni OLECMDEXECOPT e OLECMDID_WINDOWSTATE_FLAG .

[in] pvaIn

Puntatore a una struttura VARIANTARG contenente argomenti di input. Questo parametro può essere NULL.

[in, out] pvaOut

Puntatore a una struttura VARIANTARG per ricevere l'output del comando. Questo parametro può essere NULL.

Valore restituito

Questo metodo restituisce S_OK se l'operazione ha esito positivo. Gli altri valori restituiti possibili includono i seguenti:

Codice restituito Descrizione
OLECMDERR_E_UNKNOWNGROUP
Il parametro pguidCmdGroup non è NULL , ma non specifica un gruppo di comandi riconosciuto.
OLECMDERR_E_NOTSUPPORTED
Il parametro nCmdID non è un comando valido nel gruppo identificato da pguidCmdGroup.
OLECMDERR_E_DISABLED
Il comando identificato da nCmdID è attualmente disabilitato e non può essere eseguito.
OLECMDERR_E_NOHELP
Il chiamante ha chiesto assistenza sul comando identificato da nCmdID, ma non è disponibile alcuna guida.
OLECMDERR_E_CANCELED
L'utente ha annullato l'esecuzione del comando.

Commenti

L'elenco di argomenti di input e output di un comando e il modo in cui vengono inseriti nel pacchetto è univoco per ogni comando. Tali informazioni devono essere documentate con la specifica del gruppo di comandi. Vedere la descrizione di OLECMDID_ZOOM nell'enumerazione OLECMDID . In assenza di informazioni specifiche, si presuppone che il comando non accetta argomenti e non abbia alcun valore restituito.

Note ai chiamanti

I parametri pguidCmdGroup e nCmdID identificano in modo univoco il comando da richiamare. Il parametro nCmdExecOpt specifica l'azione esatta da eseguire. Per altri dettagli, vedere l'enumerazione OLECMDEXECOPT .

La maggior parte dei comandi non accetta argomenti né valori restituiti. Per tali comandi, il chiamante può passare NULL in pvaIn e pvaOut. Per i comandi che prevedono uno o più valori di input, il chiamante può dichiarare e inizializzare una variabile VARIANTARG e passare un puntatore a tale variabile in pvaIn. Se l'input del comando è un singolo valore, l'argomento può essere archiviato direttamente nella struttura VARIANTARG e passato alla funzione. Se il comando prevede più argomenti, tali argomenti devono essere inseriti nel pacchetto in modo appropriato all'interno di VARIANTARG, usando uno dei tipi supportati, ad esempio IDispatch o SAFEARRAY.

Se un comando restituisce uno o più argomenti, il chiamante deve dichiarare un valore VARIANTARG, inizializzarlo in VT_EMPTY e passarne l'indirizzo in pvaOut. Se il comando restituisce un singolo valore, l'oggetto può archiviare tale valore direttamente in pvaOut. Se il comando ha più valori di output, verranno inseriti in un pacchetto in qualche modo appropriati per VARIANTARG.

Poiché pvaIn e pvOut sono entrambi allocati dal chiamante, le variabili dello stack sono consentite sia per il chiamante che per l'oggetto che riceve la chiamata. Per i comandi che accettano zero o un argomento nell'input e restituiscono zero o un valore, non è necessaria alcuna allocazione di memoria aggiuntiva. La maggior parte dei tipi supportati da VARIANTARG non richiede l'allocazione di memoria. Le eccezioni includono SAFEARRAY e BSTR.

Note per gli implementatori

Una destinazione del comando deve implementare questa funzione; E_NOTIMPL non è un valore restituito valido.

Requisiti

   
Client minimo supportato Windows 2000 Professional [solo app desktop]
Server minimo supportato Windows 2000 Server [solo app desktop]
Piattaforma di destinazione Windows
Intestazione docobj.h

Vedi anche

Iolecommandtarget

OLECMDEXECOPT