procesamiento de mensajes de Panel de control
La función de devolución de llamada CPlApplet procesa todos los mensajes enviados a un elemento de Panel de control por Windows. Los mensajes enviados a la función están en un orden específico. Por el mismo token, el .cpl elemento requiere que los mensajes se procesen de forma específica.
En primer lugar, la función CPlApplet recibe el mensaje CPL_INIT cuando Windows carga por primera vez el elemento de Panel de control. La función debe llevar a cabo cualquier inicialización, como asignar memoria y devolver un valor distinto de cero. Si CPlApplet no puede completar la inicialización, debe devolver cero, dirigir Windows para finalizar la comunicación y liberar el archivo DLL.
A continuación, si el mensaje de CPL_INIT se realizó correctamente, Windows envía el mensaje CPL_GETCOUNT. A continuación, la función debe devolver el número de elementos de Panel de control admitidos por el archivo .dll.
A continuación, la función CPlApplet recibe un mensaje de CPL_INQUIRE y un mensaje de CPL_NEWINQUIRE para cada elemento de Panel de control compatible con el archivo .dll. La función rellena una estructura CPLINFO o NEWCPLINFO con información sobre el elemento, como su nombre, icono y una cadena descriptiva. La mayoría de las aplicaciones deben procesar el mensaje CPL_INQUIRE e ignorar el mensaje CPL_NEWINQUIRE. El mensaje CPL_INQUIRE proporciona información en un formulario que Windows puede almacenar en caché, lo que da como resultado un rendimiento mucho mejor. El mensaje de CPL_NEWINQUIRE solo se usa si necesita cambiar el icono del elemento o mostrar cadenas en función del estado del equipo. Panel de control elementos que usan CPL_NEWINQUIRE no se pueden encontrar mediante una búsqueda de menú Inicio en Windows Vista porque se basa en el almacenamiento en caché.
La función CPlApplet recibe un mensaje de CPL_DBLCLK como una notificación de que el usuario ha elegido el icono que representa el elemento Panel de control. La función puede recibir este mensaje cualquier número de veces. El mensaje incluye el identificador de elemento y el puntero lpData devuelto en la estructura CPLINFO o NEWCPLINFO de la llamada a CPL_INQUIRE o CPL_NEWINQUIRE. La función debe mostrar el cuadro de diálogo correspondiente y procesar la entrada posterior del usuario.
Además de CPL_DBLCLK, se puede enviar el mensaje de CPL_STARTWPARMS si se invoca un elemento de Panel de control con parámetros de entrada, como desde un símbolo del sistema o desde otro programa. El mensaje incluye el identificador de elemento junto con la cadena de parámetro adicional.
Antes de que finalice la aplicación de control, CPlApplet recibe el mensaje CPL_STOP una vez por cada elemento de Panel de control compatible con el archivo .dll. El mensaje incluye el identificador del elemento de Panel de control y el puntero lpData devuelto en la estructura CPLINFO o NEWCPLINFO de la llamada a CPL_INQUIRE o CPL_NEWINQUIRE. La función debe liberar cualquier memoria que haya asignado para el cuadro de diálogo especificado.
Después del último mensaje de CPL_STOP, CPlApplet recibe un mensaje de CPL_EXIT. La función debe liberar toda la memoria asignada restante y anular el registro de las clases de ventana privada que pueda haber registrado. Inmediatamente después de que la función vuelva de este mensaje, Windows libera el elemento Panel de control llamando a la función FreeLibrary.
Temas relacionados
-
Crear vínculos de tareas que se pueden buscar para un elemento de Panel de control
-
Acceso a la Panel de control en modo seguro en Windows Vista