Scelta di un metodo di menu di scelta rapida statico o dinamico
Questo argomento è organizzato come segue:
- Scegliere un metodo verbo
- Estendere un menu di scelta rapida
- Supporto per i metodi verbi in base al sistema operativo
- Argomenti correlati
Scegliere un metodo verbo
È consigliabile implementare un menu di scelta rapida usando uno dei metodi verbi statici.
Metodi verbi statici
I verbi statici sono i verbi più semplici da implementare, ma offrono comunque funzionalità avanzate. Scegli sempre il metodo di menu di scelta rapida più semplice che soddisfi le tue esigenze.
Verbo statico | Descrizione |
---|---|
CreateProcess con parametri della riga di comando | Questo è il mezzo più semplice e familiare per implementare un verbo statico. Un processo viene richiamato tramite una chiamata alla funzione CreateProcess con i file selezionati ed eventuali parametri facoltativi passati come riga di comando. Verrà aperto il file o la cartella. Questo metodo presenta le limitazioni seguenti:
|
DropTarget/IDropTarget | Un'attivazione verbo basata su COM significa che supporta l'attivazione in-proc o out-of-proc. DropTarget/IDropTarget supporta anche il riutilizzo di un gestore già in esecuzione quando l'interfaccia IDropTarget viene implementata da un server locale. Esprime perfettamente anche gli elementi tramite l'oggetto dati sottoposto a marshalling e fornisce un riferimento alla catena di siti chiamante in modo da poter interagire con il invoker tramite QueryService. |
Windows 7 e versioni successive: IExecuteCommand | Metodo di implementazione più diretto. Poiché si tratta di un metodo invoke basato su COM (ad esempio DropTarget), questa interfaccia supporta l'attivazione in-proc e out-of-proc. Il verbo implementa IExecuteCommand e IObjectWithSelection e facoltativamente IInitializeCommand. Gli elementi vengono passati direttamente come matrice di elementi della shell e altri parametri del invoker sono disponibili per l'implementazione del verbo, inclusi il punto invoke, lo stato della tastiera e così via. |
Windows 7 e versioni successive:ExplorerCommand/ IExplorerCommand | Abilita le origini dati che forniscono i comandi del modulo di comando tramite IExplorerCommandProvider per usare tali comandi come verbi in un menu di scelta rapida. Poiché questa interfaccia supporta solo l'attivazione in-process, è consigliabile usare origini dati shell che devono condividere l'implementazione tra comandi e menu di scelta rapida. |
Nota
IExplorerCommand è un ibrido tra un verbo statico e dinamico. IExplorerCommand è stato dichiarato in Windows Vista, ma la sua capacità di implementare un verbo in un menu di scelta rapida è una novità di Windows 7.
Per altre informazioni sulle query IDropTarget e Shell per gli attributi di associazione di file, vedere Tipi percepiti e registrazione dell'applicazione.
Metodi verbi dinamici preferiti
Sono preferibili i metodi verbi dinamici seguenti:
Tipo verbo | Descrizione |
---|---|
Verbo statico (elencato nella tabella precedente) + Sintassi query avanzata (AQS) | Questa scelta ottiene la visibilità del verbo dinamico. |
Windows 7 e versioni successive: IExplorerCommand | Questa scelta consente un'implementazione comune di verbi ed esplora comandi visualizzati nel modulo di comando in Esplora risorse. |
Windows 7 e versioni successive: IExplorerCommandState + verbo statico | Questa scelta ottiene anche la visibilità dei verbi dinamici. Si tratta di un modello ibrido in cui viene usato un semplice gestore in-process per calcolare se deve essere visualizzato un verbo statico specificato. Questa operazione può essere applicata a tutti i metodi di implementazione dei verbi statici per ottenere un comportamento dinamico e ridurre al minimo l'esposizione della logica in-process. IExplorerCommandState ha il vantaggio di essere in esecuzione su un thread in background, evitando così blocchi dell'interfaccia utente. È notevolmente più semplice di IContextMenu. |
Metodi verbi dinamici sconsigliati
IContextMenu è il metodo più potente ma anche il metodo più complicato da implementare. Si basa su oggetti COM in-process eseguiti sul thread del chiamante, che in genere Esplora risorse, ma possono essere qualsiasi applicazione che ospita gli elementi. IContextMenu supporta la visibilità, l'ordinamento e il disegno personalizzato. Alcune di queste funzionalità sono state aggiunte alle funzionalità dei verbi statici, ad esempio un'icona da associare a un comando e IExplorerCommand per gestire la visibilità.
Se è necessario estendere il menu di scelta rapida per un tipo di file registrando un verbo dinamico per il tipo di file, seguire le istruzioni fornite in Personalizzazione di un menu di scelta rapida tramite verbi dinamici.
Estendere un menu di scelta rapida
Dopo aver scelto un metodo verbo, è possibile estendere un menu di scelta rapida per un tipo di file registrando un verbo statico per il tipo di file. Per altre informazioni, vedere Creazione di gestori di menu di scelta rapida.
Supporto per i metodi verbi in base al sistema operativo
Il supporto per i metodi di chiamata verbo per sistema operativo è elencato nella tabella seguente.
Verb, metodo | Windows XP | Windows Vista | Windows 7 e versioni successive |
---|---|---|---|
CreateProcess | X | X | X |
DDE | X | X | X |
DropTarget | X | X | X |
ExecuteCommand | X | X | |
ExplorerCommand | X | ||
ExplorerCommandState | X |
Argomenti correlati
-
Procedure consigliate per i gestori di menu di scelta rapida e più verbi di selezione
-
Personalizzazione di un menu di scelta rapida tramite verbi dinamici