Como eu enumerar os itens de filho do objeto Snap-In?

Para exibir corretamente o conteúdo de um objeto de snap-in, você precisa enumerar os itens de filho do objeto, caso elas existam. O melhor lugar para esta modificação é no Notify Método da classe de dados snap-in (nesta discussão, CSnapNameData ).

&Notanbsp;  A classe de dados snap-in é derivada de CSnapInItemImpl.

Por padrão, o Assistente de objeto ATL cria um manipulador para esta notificação. Nesse manipulador, você precisará modificar o actual switch instrução para lidar com o MMCN_EXPAND e MMCN_SHOW notificações.

Manipulação a notificação MMCN_EXPAND

O MMCN_EXPAND notificação é enviada quando a pasta de snap-in do objeto precisa ser expandido ou contraído. Nesse caso, você só precisa enumerar os itens do painel de escopo. Essa enumeração é feita case instrução para a notificação MMCN_EXPAND.

Para inserir os itens de painel de escopo, primeiro recuperar o IConsoleNameSpace de interface para o objeto snap-in e, em seguida, chamar o método InsertItem . O código a seguir demonstra recuperação das interfaces necessárias

 CComQIPtrlt; IConsoleNameSpace,
& IID_IConsoleNameSpace > spConsoleNameSpace(pConsole);
/ / TODO: enumerar itens do painel de escopo com uma função definida pelo usuário

Manipulação a notificação MMCN_SHOW

O MMCN_SHOW notificação é enviada quando um item é selecionado ou de-selected pela primeira vez. Essa enumeração é feita case instrução para a notificação de MMCN_SHOW . Ao contrário da notificação de MMCN_EXPAND , você deve enumerar os itens do painel de resultados e os itens do painel de escopo.

Em primeiro lugar, enumerar os itens de escopo, recuperando o IConsoleNameSpace interface para o objeto snap-in e, em seguida, chamar o método InsertItem . Depois de ter enumerado os itens do painel de escopo, faça o mesmo com o resultado itens do painel de recuperando o interface IResultData e fazer uma chamada para InsertItem.

CComQIPtrlt; IConsoleNameSpace,
& IID_IConsoleNameSpace > spConsoleNameSpace(pConsole);
/ / TODO: enumerar itens do painel de escopo com uma função definida pelo usuário
CComQIPtr < IResultData & IID_IResultData > spResultData(pConsole);
/ / TODO: enumerar os itens do painel de resultados com uma função definida pelo usuário

Index