65.9K
CodeProject is changing. Read more.
Home

"Taskbar and Start Menu Properties Dialog" showing made easy

starIcon
emptyStarIcon
starIcon
emptyStarIconemptyStarIconemptyStarIcon

1.89/5 (8 votes)

Sep 13, 2006

CPOL
viewsIcon

37882

This article shows you ways to run Control Panel applets from VC++, even those that don't have a cpl extension file.

Sample Image - taskbarProperties.jpg

Background

In one of the newsgroups, a guy asked about how to show the Taskbar and Start Menu properties dialog in VC++. I am going to show here the ways in which several different Control Panel applets can be run from VC++.

Running from Run box

Running an applet from the "Run" box is easy' just type "control desk.cpl" and press OK. It will show you the Desktop properties dialog box.

Running from VC++

Running an applet from your code is also easy:

ShellExecute( this->m_hWnd, NULL, "desk.cpl", NULL, NULL, 0);

Then what is the problem

The problem with showing the "Taskbar and Start Menu Properties" applet is this that you can't find a "cpl" file which shows this dialog.

Solution

For help, I searched MSDN which says "you can show this dialog with any scripting language". But what about VC++? Here is how to show this dialog the IDispatch way.

CString ss = ("TrayProperties");
BSTR szMember = ss.AllocSysString();
DISPID dispid;
COleDispatchDriver disp;
disp.CreateDispatch("Shell.Application");
disp.m_lpDispatch->GetIDsOfNames(IID_NULL,&szMember,1,LOCALE_USER_DEFAULT,&dispid);
disp.InvokeHelper(dispid, DISPATCH_METHOD, NULL,NULL,NULL); 
SysFreeString( szMember);

Never forget to initialize and uninitialize COM.