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.
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.
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::GetDisplayInfo