Freigeben über


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.
Beachten Sie, dass das Snap-In MMC_TEXTCALLBACK anstelle von MMC_CALLBACK verwenden kann. Der MMC_TEXTCALLBACK Wert ist eine typgerechte (keine Umwandlung erforderlich) Version von MMC_CALLBACK.

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.
Andernfalls sollte das Feld cChildren beim Einfügen eines Bereichselements auf 1 (1) oder gar nicht festgelegt werden.

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

IComponentData::GetDisplayInfo

IConsoleNameSpace2::GetItem

IConsoleNameSpace2::InsertItem

IConsoleNameSpace2::SetItem