Crear páginas de propiedades para el componente
Un objeto notify crea páginas de propiedades personalizadas después de que el subsistema de configuración de red llame al método INetCfgComponentPropertyUi::MergePropPages del objeto de notificación. Las páginas de propiedades personalizadas se pueden combinar en el conjunto predeterminado de páginas de la hoja de propiedades del componente mediante el método MergePropPages . MergePropPages devolverá el número adecuado de páginas predeterminadas en las que se pueden combinar las páginas personalizadas.
Para crear páginas de propiedades personalizadas, MergePropPages llama a la función Com CoTaskMemAlloc para asignar memoria para identificadores a estructuras PROPSHEETPAGE. Cada uno de estos identificadores representa una página de propiedades que se va a crear. Si CoTaskMemAlloc asigna correctamente la memoria para los identificadores, MergePropPages declarará y rellenará las estructuras PROPSHEETPAGE para cada página de propiedades. Una vez que MergePropPages rellena estas estructuras, llama a la función CreatePropertySheetPage de Win32 para cada página de propiedades. En esta llamada, MergePropPages pasa la dirección de la estructura PROPSHEETPAGE que se va a crear.
También se debe implementar una función de devolución de llamada de cuadro de diálogo para cada página de propiedades que crea MergePropPages . Una función de devolución de llamada de cuadro de diálogo procesa los mensajes que el sistema operativo envía a la página de propiedades asociada a esa función de cuadro de diálogo. Para asociar una página de propiedades a una función de cuadro de diálogo, MergePropPages debe apuntar el miembro pfnDlgProc de cada estructura PROPSHEETPAGE para cada página a la función de cuadro de diálogo de la página.
Una función de cuadro de diálogo procesa los mensajes siguientes:
El mensaje WM_INITDIALOG, que se envía a la función de cuadro de diálogo inmediatamente antes de que el sistema operativo muestre su página de propiedades asociada. Las funciones de cuadro de diálogo suelen usar este mensaje para inicializar la página de propiedades y para realizar tareas que afecten a la apariencia de la página de propiedades.
Mensaje WM_NOTIFY, que se envía a la función de cuadro de diálogo después de que se produzca un evento en la página de propiedades. Otra información enviada con este mensaje identifica qué evento se ha producido. Esta información de evento se encuentra en un puntero a una estructura NMHDR. La información que NMHDR puede contener para una hoja de propiedades incluye, por ejemplo:
Evento PSN_APPLY, que indica que un usuario hace clic en Aceptar, Cerrar o Aplicar en la página de propiedades. Si el usuario hace clic en Aceptar, Cerrar o Aplicar, la función de cuadro de diálogo puede llamar a la macro PropSheet_Changed para informar a la hoja de propiedades de que la información de la página ha cambiado. En esta llamada, la función de cuadro de diálogo pasa identificadores a la hoja de propiedades y a la página. La función de cuadro de diálogo puede llamar a la función GetParent de Win32 y pasar el identificador a la página para recuperar el identificador de la hoja de propiedades.
Una vez que la función de cuadro de diálogo notifica al cambio la hoja de propiedades, el subsistema de configuración de red llama al método INetCfgComponentPropertyUi::ValidateProperties para comprobar la validez de todos los cambios. Si todos los cambios son válidos, el subsistema llama al método INetCfgComponentPropertyUi::ApplyProperties del objeto de notificación para que todos los cambios surtan efecto. El subsistema de configuración de red llama a ApplyProperties antes de que el sistema operativo cierre el cuadro de diálogo.
El método ApplyProperties se puede implementar para recuperar información que el usuario escribe y establecer la información en los miembros de datos del objeto de notificación.
El evento PSN_RESET, que indica que el sistema operativo está a punto de destruir una página de propiedades. Un usuario podría hacer clic en Cancelar en la página de propiedades para iniciar esta acción. Si el usuario hace clic en Cancelar, el subsistema de configuración de red llama al método INetCfgComponentPropertyUi::CancelProperties para que se ignoren todos los cambios. El subsistema de configuración de red llama a CancelProperties antes de cerrar el cuadro de diálogo.
El evento PSN_KILLACTIVE, que indica que una página de propiedades está a punto de estar inactiva. Este evento se produce cuando un usuario activa otra página o hace clic en Aceptar.
Las funciones de devolución de llamada de página de propiedades también se pueden implementar para cada página de propiedades que crea MergePropPages. Una función de devolución de llamada de página de propiedades realiza operaciones de inicialización y limpieza para la página. Para asociar una página de propiedades a una función de devolución de llamada de página de propiedades, MergePropPages debe apuntar el miembro pfnCallback de cada estructura PROPSHEETPAGE para cada página a la función de devolución de llamada de página de propiedades de esa página.
Consulte la documentación de Microsoft Windows SDK para obtener más información sobre:
crear páginas de propiedades y estructuras, funciones y notificaciones para páginas de propiedades
procedimientos, mensajes y estructuras de devolución de llamada de cuadro de diálogo