Where does the Windows XP control panel get the value for the "Comments" field from? I'm writing an EXE control panel application, and it doesn't appear from the documentation that you can provide a value for that field.
3 Answers
When Control Panel loads a .dll (or .cpl) file, it calls the CPlApplet function to get information such as the number of Control Panel items the file hosts, as well as information about each item.
When Windows first loads the Control Panel item, it retrieves the address of the CPlApplet function and subsequently uses that address to call the function and pass it messages. It might send the following messages.
You need to handle CPL_INQUIRE Message and fill the CPLINFO Structure.
typedef struct tagCPLINFO {
int idIcon;
int idName;
int idInfo;
LONG_PTR lpData;
} CPLINFO;
idInfo
is the resource identifier of the string containing the description. You cannot simply set this thing by filling in some registry key.
Edit: Ok, my bad, this is an old solution.

- 3,730
- 3
- 37
- 61
-
Yes, this was working before when we installed by copying a .cpl file to system32. We converted to an EXE file in the Program Files area for a variety of reasons, and I wondered if we could get this back. – Ben Straub Jun 15 '10 at 17:18
Registering an Executable File (exe) as a Control Panel Applet on Windows Vista using Windows Installer XML (WIX) at Link
[previous answer]
See the Executable Control Panel Item Registration of Registering Control Panel Items at http://msdn.microsoft.com/en-us/library/cc144195(VS.85).aspx
Specifically, you want InfoTip
, which is the comments.
Registering Control Panel Items
Control Panel items must be registered in order to appear in the Control Panel window. If the Control Panel item is implemented as part of a .exe file then it is registered as a command object. Registration differs if the item is implemented as a .dll file that exports the CPlApplet function.

- 21,988
- 13
- 81
- 109

- 21,470
- 7
- 78
- 106
-
Unfortunately, this doesn't work. The contents of that field appear in the tooltip if you hover over the applet. – Ben Straub Jun 17 '10 at 19:24
-
It turns out your original hint was the answer. I had the InfoTip set to "@(path),(index)", and setting it to "@(path),-(index)" made it work. I'm giving you the bounty because you had the right answer first. Thanks! – Ben Straub Jun 21 '10 at 16:15
-
This string is retrieved from the HKCR\CLSID{guid}\InfoTip registry value. How to whack the registry into shape is explained very well in this MSDN Library article, not much I can add to that.

- 922,412
- 146
- 1,693
- 2,536