Compartilhar via


Estrutura SCOPEDATAITEM (mmc.h)

A estrutura SCOPEDATAITEM especifica os itens a serem inseridos no painel de escopo.

Sintaxe

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

Membros

mask

Um valor que especifica uma matriz de sinalizadores que indicam quais membros da estrutura contêm dados válidos. Quando essa estrutura é usada no método IConsoleNameSpace2::GetItem , ela indica os atributos de item a serem recuperados. Esse membro pode ser um dos valores a seguir.

SDI_STR (0x00002)

O membro displayname da estrutura é válido. SDI_STR só tem suporte quando você especifica um valor para o membro displayname . O MMC não armazena o valor para o membro displayname e não pode ser recuperado chamando o método IConsoleNamespace2::GetItem .

SDI_IMAGE (0x00004)

O membro nImage da estrutura é válido ou deve ser preenchido.

SDI_OPENIMAGE (0x00008)

O membro nOpenImage da estrutura é válido ou deve ser preenchido.

SDI_STATE (0x00010)

O membro nState da estrutura é válido ou deve ser preenchido.

SDI_PARAM (0x00020)

O membro lParam da estrutura é válido ou deve ser preenchido.

SDI_CHILDREN (0x00040)

O membro cChildren da estrutura é válido ou deve ser preenchido.

SDI_PARENT (0x00000000)

Use somente ao inserir itens no painel de escopo. O membro relativeID da estrutura é o HSCOPEITEM do pai. O item é inserido como o último filho do item referido por relativeID.

SDI_PREVIOUS (0x10000000)

Use somente ao inserir itens no painel de escopo. O membro relativeID da estrutura é o HSCOPEITEM do irmão anterior.

SDI_NEXT (0x20000000)

Use somente ao inserir itens no painel de escopo. O membro relativeID da estrutura é o HSCOPEITEM do próximo irmão.

SDI_FIRST (0x08000000)

Use somente ao inserir itens no painel de escopo. O membro relativeID da estrutura é o HSCOPEITEM do pai. O item é inserido como o primeiro filho do item referido por relativeID.

displayname

MMC_CALLBACK valor ou um ponteiro para uma cadeia de caracteres terminada em nulo, que depende de como a estrutura está sendo usada.

  • Quando um item é inserido usando IConsoleNameSpace2::InsertItem, esse membro deve ser definido como MMC_CALLBACK.
  • Quando o nome de um item inserido pelo snap-in é alterado usando IConsoleNameSpace2::SetItem, esse membro deve ser definido como MMC_CALLBACK.
  • Quando o nome do nó estático (um item que o console insere) é alterado, esse membro pode ser definido como MMC_CALLBACK ou ser um ponteiro para a cadeia de caracteres terminada em nulo que contém o texto do item.
Lembre-se de que o snap-in pode usar MMC_TEXTCALLBACK em vez de MMC_CALLBACK. O valor MMC_TEXTCALLBACK é uma versão correta do tipo (nenhuma conversão necessária) do MMC_CALLBACK.

MMC_TEXTCALLBACK é introduzido no MMC versão 1.2.

nImage

Índice de imagem virtual na lista de imagens quando o item está no estado não selecionado. Lembre-se de que o índice de imagem virtual é mapeado internamente para o índice real. Esse membro também pode ser especificado como um item de retorno de chamada: MMC_CALLBACK ou MMC_IMAGECALLBACK. O MMC_IMAGECALLBACK é uma versão correta do tipo (nenhuma conversão necessária) do MMC_CALLBACK.

MMC_IMAGECALLBACK é introduzido no MMC versão 1.2.

nOpenImage

Índice de imagem virtual na lista de imagens quando o item está no estado selecionado. Lembre-se de que o índice de imagem virtual é mapeado internamente para o índice real. O item é como uma pasta no Microsoft Windows Explorer. O ícone é para uma pasta aberta.

nState

Um valor que especifica a máscara de estado do item. Para IConsoleNameSpace2::GetItem, esse membro retornará MMC_SCOPE_ITEM_STATE_EXPANDEDONCE se o item tiver sido expandido pelo menos uma vez ou 0 (zero) se o item não tiver sido expandido.

Esse membro é ignorado para IConsoleNameSpace2::InsertItem e IConsoleNameSpace2::SetItem.

cChildren

Um valor que especifica o número de itens enumerados.

Quando um snap-in insere um item de escopo, ele deve definir o campo cChildren como 0 (zero) e definir o sinalizador SDI_CHILDREN se ambas as seguintes condições forem atendidas:

  • O snap-in não tem itens filho a serem adicionados sob o item inserido.
  • O snap-in não habilita dinamicamente nenhum snap-in de extensão de namespace para este item.
Caso contrário, ao inserir um item de escopo, o campo cChildren deverá ser definido como 1 (um) ou não definido.

Se as condições forem alteradas posteriormente, o snap-in poderá modificar o campo cChildren usando IConsoleNameSpace2::SetItem.

Se levar um tempo significativo para determinar o número de filhos, o snap-in deverá usar uma melhor suposição no momento da inserção e fazer a determinação real em outro thread para que a interface do usuário do MMC não seja bloqueada. IConsoleNameSpace2::SetItem pode ser usado para corrigir a configuração, se necessário.

Quando o MMC detecta um item de escopo com uma contagem cChildren de 0 (zero), ele verifica se há extensões de namespace que foram habilitadas estaticamente para o item pelo usuário ou pela interface IRequiredExtensions . Se nenhum estiver habilitado, o sinal de adição (+) será removido do item.

Depois que um item é expandido, o estado do sinal de adição é determinado pelo número real de itens filho presentes.

lParam

Um valor que especifica um valor de 32 bits fornecido pelo usuário a ser associado ao item. Esse item, também chamado de cookie, é o valor passado como o primeiro parâmetro para IComponentData::QueryDataObject.

relativeID

Um identificador de item exclusivo fornecido pelo console. Um item é inserido em uma posição relativa ao item especificado por esse membro. As configurações de máscara determinam a posição relativa.

Para determinar como relativeID é interpretado, especifique uma das seguintes constantes como o membro da máscara .

SDI_PARENT

relativeID é o HSCOPEITEM do pai. O item é inserido como o último filho do item pai. O valor de SDI_PARENT indica que é uma no-op, pois, por padrão, a ID do item pai é relativeID.

SDI_PREVIOUS

relativeID é o HSCOPEITEM do irmão anterior.

SDI_NEXT

relativeID é o HSCOPEITEM do próximo irmão.

SDI_FIRST

O mesmo que SDI_PARENT, exceto que o item é inserido como o primeiro filho.

ID

Um valor que especifica um identificador exclusivo fornecido pelo console para o item de escopo. Esse valor é usado para identificar um item no painel de escopo de chamadas para alguns dos métodos de interface IConsole2 e IConsoleNameSpace2 .

Depois que o snap-in insere com êxito um item no painel de escopo (usando IConsoleNameSpace2::InsertItem), o membro da ID da estrutura SCOPEDATAITEM contém o identificador HSCOPEITEM do item recém-inserido. Esse identificador é o identificador exclusivo do item de escopo.

Para um nó estático, o MMC insere um item no painel de escopo do snap-in. Em seguida, o MMC passa o HSCOPEITEM do nó estático para o snap-in como o parâmetro param na notificação MMCN_EXPAND .

Lembre-se de que os snap-ins devem armazenar o HSCOPEITEM de cada item inserido e usá-lo posteriormente para manipular o item usando os métodos das interfaces IConsole2 e IConsoleNameSpace2 .

Comentários

Não é válido inserir um item como um irmão do nó estático. Se um snap-in definir o membro relativeID como o HSCOPEITEM do nó estático, definir o SDI_PREVIOUS ou SDI_NEXT sinalizadores e chamar IConsoleNameSpace2::InsertItem, o MMC retornará E_INVALIDARG.

Requisitos

   
Cliente mínimo com suporte Windows Vista
Servidor mínimo com suporte Windows Server 2008
Cabeçalho mmc.h

Confira também

Icomponentdata

IComponentData::GetDisplayInfo

IConsoleNameSpace2::GetItem

IConsoleNameSpace2::InsertItem

IConsoleNameSpace2::SetItem