HOWTO: Open an Instance of Windows Explorer in a System Folder

ID: Q191656

The information in this article applies to:

SUMMARY

You can enable your application to start an instance of Windows Explorer in a system folder, such as Control Panel or Recycle Bin, by passing the class ID of the folder as the filename in a call to ShellExecuteEx.

MORE INFORMATION

Under Windows CE, ShellExecuteEx does not support the SEE_MASK_IDLIST or SEE_MASK_INVOKEIDLIST flags. Therefore, you cannot use an LPITEMIDLIST that is obtained by calling SHGetSpecialFolderLocation to open Windows Explorer in a system folder.

Instead, use the following class ID of the system folder that you want to open when calling ShellExecuteEx:

   Control Panel - {000314FE-0000-0000-C000-000000000046}
   My Computer - {000214A0-0000-0000-C000-000000000046}
   Recycle Bin - {000214A1-0000-0000-C000-000000000046}
   Databases - {000214A4-0000-0000-C000-000000000046}

You can use the following function to open an instance of Windows Explorer in the Control Panel folder. Note that the CLSID must be enclosed in quotes.

   BOOL WINAPI OpenControlPanel ()
   {
      TCHAR szControlPanel[] = L"\"
                              {000314FE-0000-0000-C000-000000000046}\"";

      SHELLEXECUTEINFO sei = {0};
      sei.cbSize = sizeof (SHELLEXECUTEINFO);
      sei.lpVerb = L"Open";
      sei.lpFile = szControlPanel;
      sei.nShow = SW_SHOW;
      sei.hInstApp = hInstance;

      return ShellExecuteEx (&sei);
   }

Additional query words:
Keywords          : kbLib kbWinCE200 kbGrpShell 
Issue type        : kbhowto

Last Reviewed: August 22, 1998