Prev Next

CPL_NEWINQUIRE

The CPL_NEWINQUIRE message is sent to the CPlApplet function of a Control Panel application to request information about a dialog box that the application supports.

For better performance, most applications should ignore CPL_NEWINQUIRE and process the CPL_INQUIRE message instead. The CPL_NEWINQUIRE message is useful only for applications that need to change their icon or display strings based on the state of the computer.

CPL_NEWINQUIRE 

uAppNum = (UINT) lParam1;         // application number 

lpncpli = (LPNEWCPLINFO) lParam2; // structure for appl. info. 

 

Parameters

uAppNum
Value of lParam1. Specifies the dialog box number. This number must be in the range zero through one less than the value returned in response to the CPL_GETCOUNT message (CPL_GETCOUNT - 1).
lpncpli
Value of lParam2. Specifies the address of a NEWCPLINFO structure. The Control Panel application should fill this structure with information about the dialog box.

Return Values

If the CPlApplet function processes this message successfully, it should return zero.

Remarks

The Control Panel sends the CPL_NEWINQUIRE message once for each dialog box supported by your application. The Control Panel also sends a CPL_INQUIRE message for each dialog box. These messages are sent immediately after the CPL_GETCOUNT message. However, the system does not guarantee the order in which the CPL_INQUIRE and CPL_NEWINQUIRE messages are sent.

You can perform initialization for the dialog box when you receive CPL_INQUIRE. If you must allocate memory, do so in response to the CPL_INIT message.
The CPL_NEWINQUIRE message was introduced in Windows version 3.1 as a replacement for CPL_INQUIRE. However, CPL_INQUIRE is the preferred message for Windows 95 and Windows NT version 4.0. This is because CPL_NEWINQUIRE returns information in a form that the system cannot cache. Consequently, applications that process CPL_NEWINQUIRE must be loaded each time the Control Panel needs the information, resulting in a significant reduction in performance.

The only applications that should use CPL_NEWINQUIRE are those that need to change their icon or display strings based on the state of the computer. In this case, your CPL_INQUIRE handler should specify the CPL_DYNAMIC_RES value for the idIcon, idName, or idInfo members of the CPLINFO structure, rather than specifying a valid resource identifier. This causes the Control Panel to send the CPL_NEWINQUIRE message each time it needs the icon and display strings, allowing you to specify information based on the current state of the computer. Of course, this is significantly slower than using cached information.

See Also

CPL_GETCOUNT, CPL_INIT, CPL_INQUIRE, CPlApplet, CPLINFO, NEWCPLINFO