SCOPEDATAITEM-Struktur (mmc.h)
Die SCOPEDATAITEM-Struktur gibt Elemente an, die in den Bereichsbereich eingefügt werden sollen.
Syntax
typedef struct _SCOPEDATAITEM {
DWORD mask;
LPOLESTR displayname;
int nImage;
int nOpenImage;
UINT nState;
int cChildren;
LPARAM lParam;
HSCOPEITEM relativeID;
HSCOPEITEM ID;
} SCOPEDATAITEM;
Members
mask
Ein Wert, der ein Array von Flags angibt, die angeben, welche Member der Struktur gültige Daten enthalten. Wenn diese Struktur in der IConsoleNameSpace2::GetItem-Methode verwendet wird, gibt sie die abzurufenden Elementattribute an. Dieser Member kann einer der folgenden Werte sein.
SDI_STR (0x00002)
Das Displayname-Element der Struktur ist gültig. SDI_STR wird nur unterstützt, wenn Sie einen Wert für das displayname-Element angeben. MMC speichert den Wert für das displayname-Element nicht und kann nicht durch Aufrufen der IConsoleNamespace2::GetItem-Methode abgerufen werden.
SDI_IMAGE (0x00004)
Das nImage-Element der Struktur ist gültig oder muss ausgefüllt werden.
SDI_OPENIMAGE (0x00008)
Das Element nOpenImage der Struktur ist gültig oder muss ausgefüllt werden.
SDI_STATE (0x00010)
Das nState-Element der Struktur ist gültig oder muss ausgefüllt werden.
SDI_PARAM (0x00020)
Das lParam-Element der Struktur ist gültig oder muss ausgefüllt werden.
SDI_CHILDREN (0x00040)
Das cChildren-Element der Struktur ist gültig oder muss ausgefüllt werden.
SDI_PARENT (0x00000000)
Verwenden Sie nur beim Einfügen von Elementen in den Bereichsbereich. Das relativeID-Element der Struktur ist das HSCOPEITEM des übergeordneten Elements. Das Element wird als letztes untergeordnetes Element des Elements eingefügt, auf das von relativeID verwiesen wird.
SDI_PREVIOUS (0x10000000)
Verwenden Sie nur beim Einfügen von Elementen in den Bereichsbereich. Das relativeID-Element der Struktur ist das HSCOPEITEM des vorherigen gleichgeordneten Elements.
SDI_NEXT (0x20000000)
Verwenden Sie nur beim Einfügen von Elementen in den Bereichsbereich. Das relativeID-Element der Struktur ist das HSCOPEITEM der nächsten gleichgeordneten Struktur.
SDI_FIRST (0x08000000)
Verwenden Sie nur beim Einfügen von Elementen in den Bereichsbereich. Das relativeID-Element der Struktur ist das HSCOPEITEM des übergeordneten Elements. Das Element wird als erstes untergeordnetes Element des Elements eingefügt, auf das von relativeID verwiesen wird.
displayname
MMC_CALLBACK Wert oder einen Zeiger auf eine NULL-Zeichenfolge, die davon abhängt, wie die Struktur verwendet wird.
- Wenn ein Element mithilfe von IConsoleNameSpace2::InsertItem eingefügt wird, muss dieses Element auf MMC_CALLBACK festgelegt werden.
- Wenn der Name eines durch das Snap-In eingefügten Elements mithilfe von IConsoleNameSpace2::SetItem geändert wird, muss dieses Element auf MMC_CALLBACK festgelegt werden.
- Wenn der Name des statischen Knotens (ein Element, das von der Konsole eingefügt wird) geändert wird, kann dieser Member auf MMC_CALLBACK festgelegt werden oder ein Zeiger auf die null-beendete Zeichenfolge sein, die den Elementtext enthält.
MMC_TEXTCALLBACK wird in MMC Version 1.2 eingeführt.
nImage
Index des virtuellen Bilds in der Imageliste, wenn sich das Element im nicht ausgewählten Zustand befindet. Beachten Sie, dass der Index des virtuellen Images intern dem tatsächlichen Index zugeordnet wird. Dieses Element kann auch als Rückrufelement angegeben werden: MMC_CALLBACK oder MMC_IMAGECALLBACK. Die MMC_IMAGECALLBACK ist eine typgerechte (keine Umwandlung erforderlich) Version von MMC_CALLBACK.
MMC_IMAGECALLBACK wird in MMC Version 1.2 eingeführt.
nOpenImage
Index des virtuellen Bilds in der Bildliste, wenn sich das Element im ausgewählten Zustand befindet. Beachten Sie, dass der Index des virtuellen Images intern dem tatsächlichen Index zugeordnet wird. Das Element ähnelt einem Ordner in Microsoft Windows Explorer. Das Symbol ist für einen geöffneten Ordner.
nState
Ein Wert, der die Zustandsmaske für das Element angibt. Für IConsoleNameSpace2::GetItem gibt dieses Member MMC_SCOPE_ITEM_STATE_EXPANDEDONCE zurück, wenn das Element mindestens einmal erweitert wurde, oder 0 (null), wenn das Element nicht erweitert wurde.
Dieses Element wird für IConsoleNameSpace2::InsertItem und IConsoleNameSpace2::SetItem ignoriert.
cChildren
Ein Wert, der die Anzahl der aufgezählten Elemente angibt.
Wenn ein Snap-In ein Bereichselement einfügt, sollte das Feld cChildren auf 0 (null) festgelegt werden und das SDI_CHILDREN-Flag festlegen, wenn beide der folgenden Bedingungen erfüllt sind:
- Das Snap-In enthält keine untergeordneten Elemente, die unter dem eingefügten Element hinzugefügt werden können.
- Das Snap-In aktiviert keine Namespaceerweiterungs-Snap-Ins für dieses Element dynamisch.
Wenn sich die Bedingungen zu einem späteren Zeitpunkt ändern, kann das Snap-In das Feld cChildren mithilfe von IConsoleNameSpace2::SetItem ändern.
Wenn die Anzahl der untergeordneten Elemente viel Zeit in Anspruch nimmt, sollte das Snap-In zur Einfügezeit eine beste Schätzung verwenden und die tatsächliche Bestimmung für einen anderen Thread treffen, damit die MMC-Benutzeroberfläche nicht gesperrt wird. IConsoleNameSpace2::SetItem kann verwendet werden, um die Einstellung bei Bedarf zu korrigieren.
Wenn MMC ein Bereichselement mit einer cChildren-Anzahl von 0 (null) erkennt, sucht es nach Namespaceerweiterungen, die vom Benutzer oder der IRequiredExtensions-Schnittstelle statisch für das Element aktiviert wurden. Wenn keine aktiviert ist, wird das Pluszeichen (+) aus dem Element entfernt.
Nachdem ein Element erweitert wurde, wird der Zustand des Pluszeichens durch die tatsächliche Anzahl der vorhandenen untergeordneten Elemente bestimmt.
lParam
Ein Wert, der einen vom Benutzer bereitgestellten 32-Bit-Wert angibt, der dem Element zugeordnet werden soll. Dieses Element, auch als Cookie bezeichnet, ist der Wert, der als erster Parameter an IComponentData::QueryDataObject übergeben wird.
relativeID
Ein von der Konsole bereitgestellter eindeutiger Elementbezeichner. Ein Element wird an einer Position relativ zum Element eingefügt, das dieses Element angibt. Die Maskeneinstellungen bestimmen die relative Position.
Um zu bestimmen, wie relativeID interpretiert wird, geben Sie eine der folgenden Konstanten als Maskenelement an.
SDI_PARENT
relativeID ist das HSCOPEITEM des übergeordneten Elements. Das Element wird als letztes untergeordnetes Element des übergeordneten Elements eingefügt. Der Wert von SDI_PARENT gibt an, dass es sich um einen No-Op-Vorgang handelt, da die übergeordnete Element-ID standardmäßig relativeID ist.
SDI_PREVIOUS
relativeID ist das HSCOPEITEM des vorherigen gleichgeordneten Elements.
SDI_NEXT
relativeID ist das HSCOPEITEM des nächsten gleichgeordneten Elements.
SDI_FIRST
Identisch mit SDI_PARENT, mit dem Ausnahme, dass das Element als erstes untergeordnetes Element eingefügt wird.
ID
Ein Wert, der einen von der Konsole bereitgestellten eindeutigen Bezeichner für das Bereichselement angibt. Dieser Wert wird verwendet, um ein Element im Bereichsbereich von Aufrufen einiger der Schnittstellenmethoden IConsole2 und IConsoleNameSpace2 zu identifizieren.
Nachdem das Snap-In ein Element erfolgreich in den Bereich eingefügt hat (mithilfe von IConsoleNameSpace2::InsertItem), enthält das ID-Member der SCOPEDATAITEM-Struktur das HSCOPEITEM-Handle des neu eingefügten Elements. Dieses Handle ist der eindeutige Bezeichner für das Bereichselement.
Bei einem statischen Knoten fügt MMC ein Element in den Bereichsbereich des Snap-Ins ein. Dann übergibt MMC das HSCOPEITEM des statischen Knotens an das Snap-In als param-Parameter in der MMCN_EXPAND Benachrichtigung.
Beachten Sie, dass Snap-Ins das HSCOPEITEM jedes eingefügten Elements speichern und später verwenden sollten, um das Element mithilfe der Methoden der Schnittstellen IConsole2 und IConsoleNameSpace2 zu bearbeiten.
Hinweise
Es ist nicht zulässig, ein Element als gleichgeordnetes Element des statischen Knotens einzufügen. Wenn ein Snap-In das relativeID-Element auf das HSCOPEITEM des statischen Knotens festlegt, die SDI_PREVIOUS - oder SDI_NEXT-Flags festlegt und dann IConsoleNameSpace2::InsertItem aufruft, gibt MMC E_INVALIDARG zurück.
Anforderungen
Unterstützte Mindestversion (Client) | Windows Vista |
Unterstützte Mindestversion (Server) | Windows Server 2008 |
Kopfzeile | mmc.h |
Weitere Informationen
IComponentData::GetDisplayInfo