Compartir a través de


Estructura SCOPEDATAITEM (mmc.h)

La estructura SCOPEDATAITEM especifica los elementos que se van a insertar en el panel de ámbito.

Sintaxis

typedef struct _SCOPEDATAITEM {
  DWORD      mask;
  LPOLESTR   displayname;
  int        nImage;
  int        nOpenImage;
  UINT       nState;
  int        cChildren;
  LPARAM     lParam;
  HSCOPEITEM relativeID;
  HSCOPEITEM ID;
} SCOPEDATAITEM;

Members

mask

Valor que especifica una matriz de marcas que indican qué miembros de la estructura contienen datos válidos. Cuando esta estructura se usa en el método IConsoleNameSpace2::GetItem , indica los atributos de elemento que se van a recuperar. Este miembro puede ser uno de los valores siguientes.

SDI_STR (0x00002)

El miembro displayname de la estructura es válido. SDI_STR solo se admite cuando se especifica un valor para el miembro displayname . MMC no almacena el valor del miembro displayname y no se puede recuperar llamando al método IConsoleNamespace2::GetItem .

SDI_IMAGE (0x00004)

El miembro nImage de la estructura es válido o debe rellenarse.

SDI_OPENIMAGE (0x00008)

El miembro nOpenImage de la estructura es válido o debe rellenarse.

SDI_STATE (0x00010)

El miembro nState de la estructura es válido o debe rellenarse.

SDI_PARAM (0x00020)

El miembro lParam de la estructura es válido o debe rellenarse.

SDI_CHILDREN (0x00040)

El miembro cChildren de la estructura es válido o debe rellenarse.

SDI_PARENT (0x00000000)

Use solo al insertar elementos en el panel de ámbito. El miembro relativeID de la estructura es el HSCOPEITEM del elemento primario. El elemento se inserta como el último elemento secundario del elemento al que hace referencia relativeID.

SDI_PREVIOUS (0x10000000)

Use solo al insertar elementos en el panel de ámbito. El miembro relativeID de la estructura es el HSCOPEITEM del elemento del mismo nivel anterior.

SDI_NEXT (0x20000000)

Use solo al insertar elementos en el panel de ámbito. El miembro relativeID de la estructura es el HSCOPEITEM del siguiente elemento del mismo nivel.

SDI_FIRST (0x08000000)

Use solo al insertar elementos en el panel de ámbito. El miembro relativeID de la estructura es el HSCOPEITEM del elemento primario. El elemento se inserta como el primer elemento secundario del elemento al que hace referencia relativeID.

displayname

MMC_CALLBACK valor o puntero a una cadena terminada en NULL, que depende de cómo se use la estructura.

  • Cuando se inserta un elemento mediante IConsoleNameSpace2::InsertItem, este miembro debe establecerse en MMC_CALLBACK.
  • Cuando se cambia el nombre de un elemento insertado por el complemento mediante IConsoleNameSpace2::SetItem, este miembro debe establecerse en MMC_CALLBACK.
  • Cuando se cambia el nombre del nodo estático (un elemento que inserta la consola), este miembro se puede establecer en MMC_CALLBACK o ser un puntero a la cadena terminada en null que contiene el texto del elemento.
Tenga en cuenta que el complemento puede usar MMC_TEXTCALLBACK en lugar de MMC_CALLBACK. El valor de MMC_TEXTCALLBACK es una versión correcta del tipo (sin necesidad de conversión) de MMC_CALLBACK.

MMC_TEXTCALLBACK se introduce en MMC versión 1.2.

nImage

Índice de imagen virtual en la lista de imágenes cuando el elemento está en estado no seleccionado. Tenga en cuenta que el índice de imagen virtual se asigna internamente al índice real. Este miembro también se puede especificar como un elemento de devolución de llamada: MMC_CALLBACK o MMC_IMAGECALLBACK. El MMC_IMAGECALLBACK es una versión correcta del tipo (sin necesidad de conversión) de MMC_CALLBACK.

MMC_IMAGECALLBACK se introduce en MMC versión 1.2.

nOpenImage

Índice de imagen virtual en la lista de imágenes cuando el elemento está en estado seleccionado. Tenga en cuenta que el índice de imagen virtual se asigna internamente al índice real. El elemento es como una carpeta en el Explorador de Microsoft Windows. El icono es para una carpeta abierta.

nState

Valor que especifica la máscara de estado del elemento. Para IConsoleNameSpace2::GetItem, este miembro devuelve MMC_SCOPE_ITEM_STATE_EXPANDEDONCE si el elemento se ha expandido al menos una vez o 0 (cero) si el elemento no se ha expandido.

Este miembro se omite para IConsoleNameSpace2::InsertItem e IConsoleNameSpace2::SetItem.

cChildren

Valor que especifica el número de elementos enumerados.

Cuando un complemento inserta un elemento de ámbito, debe establecer el campo cChildren en 0 (cero) y establecer la marca SDI_CHILDREN si se cumplen las dos condiciones siguientes:

  • El complemento no tiene ningún elemento secundario para agregar en el elemento insertado.
  • El complemento no habilita dinámicamente ningún complemento de extensión de espacio de nombres para este elemento.
De lo contrario, al insertar un elemento de ámbito, el campo cChildren debe establecerse en 1 (uno) o no establecer en absoluto.

Si las condiciones cambian más adelante, el complemento puede modificar el campo cChildren mediante IConsoleNameSpace2::SetItem.

Si se tarda mucho tiempo en determinar el número de elementos secundarios, el complemento debe usar una mejor estimación en el momento de la inserción y realizar la determinación real en otro subproceso para que la interfaz de usuario de MMC no se bloquee. IConsoleNameSpace2::SetItem se puede usar para corregir la configuración si es necesario.

Cuando MMC detecta un elemento de ámbito con un recuento de cChildren de 0 (cero), comprueba si hay extensiones de espacio de nombres que el usuario ha habilitado estáticamente para el elemento o la interfaz IRequiredExtensions . Si ninguno está habilitado, el signo más (+) se quita del elemento.

Una vez expandido un elemento, el estado del signo más viene determinado por el número real de elementos secundarios presentes.

lParam

Valor que especifica un valor de 32 bits proporcionado por el usuario que se va a asociar al elemento. Este elemento, también denominado cookie, es el valor que se pasa como primer parámetro a IComponentData::QueryDataObject.

relativeID

Identificador de elemento único proporcionado por la consola. Un elemento se inserta en una posición relativa al elemento que especifica este miembro. La configuración de máscara determina la posición relativa.

Para determinar cómo se interpreta relativeID , especifique una de las siguientes constantes como miembro de máscara .

SDI_PARENT

relativeID es el HSCOPEITEM del elemento primario. El elemento se inserta como el último elemento secundario del elemento primario. El valor de SDI_PARENT indica que es una operación no operativa, porque de forma predeterminada, el identificador del elemento primario es relativeID.

SDI_PREVIOUS

relativeID es el HSCOPEITEM del mismo nivel anterior.

SDI_NEXT

relativeID es el HSCOPEITEM del siguiente elemento del mismo nivel.

SDI_FIRST

Igual que SDI_PARENT, excepto que el elemento se inserta como primer elemento secundario.

ID

Valor que especifica un identificador único proporcionado por la consola para el elemento de ámbito. Este valor se usa para identificar un elemento en el panel de ámbito de las llamadas a algunos de los métodos de interfaz IConsole2 e IConsoleNameSpace2 .

Después de que el complemento inserte correctamente un elemento en el panel de ámbito (mediante IConsoleNameSpace2::InsertItem), el miembro ID de la estructura SCOPEDATAITEM contiene el identificador HSCOPEITEM del elemento recién insertado. Este identificador es el identificador único del elemento de ámbito.

Para un nodo estático, MMC inserta un elemento en el panel de ámbito del complemento. A continuación, MMC pasa el HSCOPEITEM del nodo estático al complemento como parámetro param en la notificación de MMCN_EXPAND .

Tenga en cuenta que los complementos deben almacenar el HSCOPEITEM de cada elemento insertado y usarlo más adelante para manipular el elemento mediante los métodos de las interfaces IConsole2 e IConsoleNameSpace2 .

Comentarios

No es válido insertar un elemento como elemento relacionado del nodo estático. Si un complemento establece el miembro relativeID en el HSCOPEITEM del nodo estático, establece las marcas SDI_PREVIOUS o SDI_NEXT y, a continuación, llama a IConsoleNameSpace2::InsertItem, MMC devuelve E_INVALIDARG.

Requisitos

   
Cliente mínimo compatible Windows Vista
Servidor mínimo compatible Windows Server 2008
Encabezado mmc.h

Consulte también

IComponentData

IComponentData::GetDisplayInfo

IConsoleNameSpace2::GetItem

IConsoleNameSpace2::InsertItem

IConsoleNameSpace2::SetItem