Para mostrar correctamente el contenido de un objeto de complemento, debe enumerar los elementos secundarios del objeto, si existen. Es el mejor lugar para esta modificación en el método de notificación de la clase de snap-in de datos (en este debate, CSnapNameData ).
&Notanbsp; La clase complemento de datos se deriva de CSnapInItemImpl.
De forma predeterminada, el Asistente para objetos ATL crea un controlador para esta notificación. En este controlador, es necesario modificar las existentes switch declaración para manejar la MMCN_EXPAND y MMCN_SHOW notificaciones.
El MMCN_EXPAND notificación se envía cuando la carpeta del complemento objeto necesita ser expandido o contraído. En este caso, sólo se deben enumerar los elementos de panel de alcance. Esta enumeración se hace en la case declaración de notificación MMCN_EXPAND.
Para insertar los elementos de panel de alcance, primero recuperar la IConsoleNameSpace de interfaz para el objeto de complemento y, a continuación, llame el método InsertItem . El siguiente código muestra la recuperación de las interfaces necesarias
CComQIPtrlt; IConsoleNameSpace,
& IID_IConsoleNameSpace > spConsoleNameSpace(pConsole);
/ / TODO: enumerar los elementos de panel de alcance con una función definida por el usuario
El MMCN_SHOW notificación se envía cuando un elemento está seleccionado o de-selected por primera vez. Esta enumeración se hace en la case declaración de notificación MMCN_SHOW . A diferencia de la notificación de MMCN_EXPAND , debe enumerar los elementos de panel de resultado y los elementos de panel de alcance.
En primer lugar, enumerar los elementos de alcance por recuperar la IConsoleNameSpace interfaz para el complemento de objeto y entonces llamada la método InsertItem . Después de haber enumerado los elementos del panel de alcance, hacer de la misma para el resultado elementos de panel por recuperar la IResultData interfaz y hacer una llamada a InsertItem.
CComQIPtrlt; IConsoleNameSpace,
& IID_IConsoleNameSpace > spConsoleNameSpace(pConsole);
/ / TODO: enumerar los elementos de panel de alcance con una función definida por el usuario
CComQIPtr < IResultData & IID_IResultData > spResultData(pConsole);
/ / TODO: enumerar los elementos de panel de resultado con una función definida por el usuario