Condividi tramite


Metodo IExtendContextMenu::AddMenuItems (mmc.h)

Il metodo IExtendContextMenu::AddMenuItems consente a uno snap-in di aggiungere elementi a un menu di scelta rapida.

Sintassi

HRESULT AddMenuItems(
  [in]      LPDATAOBJECT          piDataObject,
  [in]      LPCONTEXTMENUCALLBACK piCallback,
  [in, out] long                  *pInsertionAllowed
);

Parametri

[in] piDataObject

Puntatore all'interfaccia IDataObject nell'oggetto dati del menu a cui vengono aggiunti elementi.

[in] piCallback

Puntatore a un IContextMenuCallback che può aggiungere elementi al menu di scelta rapida.

[in, out] pInsertionAllowed

Valore che identifica i punti di inserimento delle voci di menu definiti da MMC che possono essere usati. Questa può essere una combinazione dei flag seguenti:

CCM_INSERTIONALLOWED_TOP

Gli elementi possono essere inseriti nella parte superiore di un menu di scelta rapida.

CCM_INSERTIONALLOWED_NEW

Gli elementi possono essere inseriti nel sottomenu Nuovo.

CCM_INSERTIONALLOWED_TASK

Gli elementi possono essere inseriti nel sottomenu Tutte le attività.

CCM_INSERTIONALLOWED_VIEW

Gli elementi possono essere inseriti nel menu di visualizzazione della barra degli strumenti o nel sottomenu Visualizza del menu di scelta rapida del riquadro dei risultati.

Valore restituito

Questo metodo può restituire uno di questi valori.

Commenti

Un'implementazione di IExtendContextMenu::AddMenuItems legge in genere il tipo di nodo e qualsiasi altro parametro richiesto chiamando IDataObject::GetDataHere in piDataObject, quindi aggiunge le voci di menu di scelta rapida appropriate chiamando IContextMenuCallback::AddItem su piCallback .

Lo snap-in deve controllare i flag pInsertionsAllowed per l'autorizzazione prima di tentare di aggiungere voci di menu nei punti di inserimento definiti da MMC. Ad esempio, uno snap-in non deve aggiungere voci di menu a CCM_INSERTIONPOINTID_PRIMARY_NEW o CCM_INSERTIONPOINTID_3RDPARTY_NEW a meno che non sia impostato il flag di CCM_INSERTIONALLOWED_NEW.

I flag pInsertionsAllowed consentono le due funzionalità seguenti:

Se l'utente seleziona un elemento di ambito e quindi visualizza il relativo menu di scelta rapida, MMC darà sia l'implementazione IComponentData che IComponentData (che possiede la visualizzazione corrente) l'opportunità di aggiungere voci di menu. MMC chiama il metodo IExtendContextMenu::AddMenuItems implementato dall'implementazione IComponent dello snap-in per consentire allo snap-in di aggiungere voci di menu al menu View . MMC chiama il metodo IExtendContextMenu::AddMenuItems implementato dallo snap-in IComponentData per consentire allo snap-in di aggiungere voci di menu a tutti gli altri menu. Solo l'implementazione IComponent dello snap-in può aggiungere elementi al menu Visualizza .

Se l'utente visualizza un menu di scelta rapida della voce di ambito senza prima selezionare l'elemento di ambito, MMC assegna solo l'implementazione IComponentData dello snap-in l'opportunità di aggiungere voci di menu a tutti i menu, ad eccezione del menu Visualizza . Di conseguenza, il menu Visualizza viene visualizzato solo per un elemento di ambito se l'utente seleziona prima un elemento.

Note ai chiamanti

Il metodo AddMenuItems non deve chiamare AddRef nel puntatore piDataObject o nel puntatore piCallback, né deve chiamare i metodi di tali interfacce dopo la restituzione. Invece, deve effettuare tutte le chiamate necessarie ai metodi di tali interfacce prima di restituire. Se uno di questi elementi è selezionato, verrà restituito il puntatore a IDataObject in IExtendContextMenu::Command, quindi non mantenere questo puntatore dopo che questo metodo restituisce. Non si riceverà una notifica se il menu viene ignorato senza alcuna opzione selezionata. Inoltre, non eseguire query per interfacce alternative da piCallback perché il metodo IContextMenuCallback::AddItem deve essere sufficiente.

Requisiti

Requisito Valore
Client minimo supportato Windows Vista
Server minimo supportato Windows Server 2008
Piattaforma di destinazione Windows
Intestazione mmc.h

Vedi anche

CONTEXTMENUITEM

IContextMenuCallback

Idataobject

IExtendContextMenu

Uso dei menu di scelta rapida