Struttura SCOPEDATAITEM (mmc.h)
La struttura SCOPEDATAITEM specifica gli elementi da inserire nel riquadro dell'ambito.
Sintassi
typedef struct _SCOPEDATAITEM {
DWORD mask;
LPOLESTR displayname;
int nImage;
int nOpenImage;
UINT nState;
int cChildren;
LPARAM lParam;
HSCOPEITEM relativeID;
HSCOPEITEM ID;
} SCOPEDATAITEM;
Members
mask
Valore che specifica una matrice di flag che indicano quali membri della struttura contengono dati validi. Quando questa struttura viene utilizzata nel metodo IConsoleNameSpace2::GetItem , indica gli attributi dell'elemento da recuperare. Questo membro può essere uno dei valori seguenti.
SDI_STR (0x00002)
Il membro displayname della struttura è valido. SDI_STR è supportato solo quando si specifica un valore per il membro displayname . MMC non archivia il valore per il membro displayname e non può essere recuperato chiamando il metodo IConsoleNamespace2::GetItem .
SDI_IMAGE (0x00004)
Il membro nImage della struttura è valido o deve essere compilato.
SDI_OPENIMAGE (0x00008)
Il membro nOpenImage della struttura è valido o deve essere compilato.
SDI_STATE (0x00010)
Il membro nState della struttura è valido o deve essere compilato.
SDI_PARAM (0x00020)
Il membro lParam della struttura è valido o deve essere compilato.
SDI_CHILDREN (0x00040)
Il membro cChildren della struttura è valido o deve essere compilato.
SDI_PARENT (0x00000000)
Usare solo quando si inseriscono elementi nel riquadro dell'ambito. Il membro relativeID della struttura è HSCOPEITEM dell'elemento padre. L'elemento viene inserito come ultimo elemento figlio dell'elemento a cui fa riferimento il relativoID.
SDI_PREVIOUS (0x10000000)
Usare solo quando si inseriscono elementi nel riquadro dell'ambito. Il membro relativeID della struttura è HSCOPEITEM dell'elemento di pari livello precedente.
SDI_NEXT (0x20000000)
Usare solo quando si inseriscono elementi nel riquadro dell'ambito. Il membro relativeID della struttura è HSCOPEITEM dell'elemento di pari livello successivo.
SDI_FIRST (0x08000000)
Usare solo quando si inseriscono elementi nel riquadro dell'ambito. Il membro relativeID della struttura è HSCOPEITEM dell'elemento padre. L'elemento viene inserito come primo elemento figlio dell'elemento a cui fa riferimento il relativoID.
displayname
MMC_CALLBACK valore o puntatore a una stringa con terminazione Null, che dipende dalla modalità di utilizzo della struttura.
- Quando un elemento viene inserito utilizzando IConsoleNameSpace2::InsertItem, questo membro deve essere impostato su MMC_CALLBACK.
- Quando il nome di un elemento inserito dallo snap-in viene modificato tramite IConsoleNameSpace2::SetItem, questo membro deve essere impostato su MMC_CALLBACK.
- Quando il nome del nodo statico (un elemento inserito dalla console) viene modificato, questo membro può essere impostato su MMC_CALLBACK oppure essere un puntatore alla stringa con terminazione Null che contiene il testo dell'elemento.
MMC_TEXTCALLBACK è stato introdotto in MMC versione 1.2.
nImage
Indice dell'immagine virtuale nell'elenco di immagini quando l'elemento è nello stato non selezionato. Tenere presente che l'indice dell'immagine virtuale viene mappato internamente all'indice effettivo. Questo membro può essere specificato anche come elemento di callback: MMC_CALLBACK o MMC_IMAGECALLBACK. Il MMC_IMAGECALLBACK è una versione corretta del tipo (nessun cast necessario) di MMC_CALLBACK.
MMC_IMAGECALLBACK è stato introdotto in MMC versione 1.2.
nOpenImage
Indice dell'immagine virtuale nell'elenco di immagini quando l'elemento si trova nello stato selezionato. Tenere presente che l'indice dell'immagine virtuale viene mappato internamente all'indice effettivo. L'elemento è simile a una cartella in Microsoft Windows Explorer. L'icona è relativa a una cartella aperta.
nState
Valore che specifica la maschera di stato per l'elemento. Per IConsoleNameSpace2::GetItem, questo membro restituisce MMC_SCOPE_ITEM_STATE_EXPANDEDONCE se l'elemento è stato espanso almeno una volta o 0 (zero) se l'elemento non è stato espanso.
Questo membro viene ignorato per IConsoleNameSpace2::InsertItem e IConsoleNameSpace2::SetItem.
cChildren
Valore che specifica il numero di elementi enumerati.
Quando uno snap-in inserisce un elemento di ambito, deve impostare il campo cChildren su 0 (zero) e impostare il flag SDI_CHILDREN se vengono soddisfatte entrambe le condizioni seguenti:
- Lo snap-in non include elementi figlio da aggiungere sotto l'elemento inserito.
- Lo snap-in non abilita dinamicamente gli snap-in di estensione dello spazio dei nomi per questo elemento.
Se le condizioni cambiano in un secondo momento, lo snap-in può modificare il campo cChildren usando IConsoleNameSpace2::SetItem.
Se è necessario un periodo di tempo significativo per determinare il numero di elementi figlio, lo snap-in deve usare un'ipotesi migliore al momento dell'inserimento e fare in modo che la determinazione effettiva su un altro thread in modo che l'interfaccia utente MMC non venga bloccata. IConsoleNameSpace2::SetItem può essere usato per correggere l'impostazione, se necessario.
Quando MMC rileva un elemento di ambito con un conteggio cChildren pari a 0 (zero), verifica la presenza di estensioni dello spazio dei nomi abilitate in modo statico per l'elemento dall'utente o dall'interfaccia IRequiredExtensions . Se nessuno è abilitato, il segno più (+) viene rimosso dall'elemento.
Dopo l'espansione di un elemento, lo stato del segno più è determinato dal numero effettivo di elementi figlio presenti.
lParam
Valore che specifica un valore a 32 bit fornito dall'utente da associare all'elemento. Questo elemento, detto anche cookie, è il valore passato come primo parametro a IComponentData::QueryDataObject.
relativeID
Identificatore univoco dell'elemento fornito dalla console. Un elemento viene inserito in una posizione relativa all'elemento specificato da questo membro. Le impostazioni della maschera determinano la posizione relativa.
Per determinare la modalità di interpretazione di relativeID , specificare una delle costanti seguenti come membro mask .
SDI_PARENT
relativeID è L'oggetto HSCOPEITEM dell'elemento padre. L'elemento viene inserito come ultimo elemento figlio dell'elemento padre. Il valore di SDI_PARENT indica che è un no-op, perché per impostazione predefinita, l'ID elemento padre è relativeID.
SDI_PREVIOUS
relativeID è HSCOPEITEM dell'elemento di pari livello precedente.
SDI_NEXT
relativeID è L'oggetto HSCOPEITEM dell'elemento di pari livello successivo.
SDI_FIRST
Uguale a SDI_PARENT, ad eccezione dell'elemento viene inserito come primo elemento figlio.
ID
Valore che specifica un identificatore univoco fornito dalla console per l'elemento dell'ambito. Questo valore viene usato per identificare un elemento nel riquadro ambito delle chiamate ad alcuni dei metodi di interfaccia IConsole2 e IConsoleNameSpace2 .
Dopo che lo snap-in inserisce correttamente un elemento nel riquadro dell'ambito (tramite IConsoleNameSpace2::InsertItem), il membro ID della struttura SCOPEDATAITEM contiene l'handle HSCOPEITEM dell'elemento appena inserito. Questo handle è l'identificatore univoco per l'elemento dell'ambito.
Per un nodo statico, MMC inserisce un elemento nel riquadro ambito dello snap-in. MMC passa quindi L'oggetto HSCOPEITEM del nodo statico allo snap-in come parametro param nella notifica di MMCN_EXPAND .
Tenere presente che gli snap-in devono archiviare HSCOPEITEM di ogni elemento inserito e usarlo in un secondo momento per modificare l'elemento usando i metodi delle interfacce IConsole2 e IConsoleNameSpace2 .
Commenti
Non è valido inserire un elemento come elemento di pari livello del nodo statico. Se uno snap-in imposta il membro relativeID su HSCOPEITEM del nodo statico, imposta i flag SDI_PREVIOUS o SDI_NEXT e quindi chiama IConsoleNameSpace2::InsertItem, MMC restituisce E_INVALIDARG.
Requisiti
Client minimo supportato | Windows Vista |
Server minimo supportato | Windows Server 2008 |
Intestazione | mmc.h |
Vedi anche
IComponentData::GetDisplayInfo