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.