Using Control Panel Extensions

A control-panel extension is an OLE 2 server DLL. You must supply a device-information (INF) file that copies your DLL to the Windows \SYSTEM directory and creates two registry keys, one that defines the extension's globally unique identifier (GUID), and the other that declares the GUID as a control-panel extension. The INF file format and the registry keys are described in more detail later in this topic. For an example of a control-panel extension, including source files, see the CPLX directory in the Windows 95 DDK.

Some of the Control Panel applications in Windows 95 can be extended by adding property-sheet pages or by making interface changes in existing property-sheet pages. This is an alternative to developing an entirely new Control Panel. Using Control Panel extensions has the following advantages:

When no existing Control Panel addresses your needs, you can create your own Control Panel. (For example, this could be necessary for BIOS setup interfaces.) For information about creating your own Control Panel, see Control Panel Applications in the Win32® Programmer's Reference.

As mentioned earlier, not all of the Control Panel applications in Windows 95 can be extended by adding property-sheet pages or by making interface changes in existing property-sheet pages. The following table lists the standard Control Panels and describes their extensibility:

Control Panel Extensibility
Accessibility Not extensible.
Add New Hardware An application can add classes and devices to lists, using a .INF file.
Add/Remove Program Net administrators can add a list of central company software to be installed by setting a registry key and creating a data file on a common server. This procedure is documented in the Resource Kit.

The Install/Uninstall property sheet contains a list of software that can be uninstalled by Windows. An application that uses the uninstall utility of the InstallShield application will be included in this list. InstallShield is included with the Windows 95 SDK. For more information, see the InstallShield documentation.

Date/Time Not extensible.
Display An application can add property sheet pages, using the IShellPropSheetExt::AddPage interface and adding a Controls Folder\Display key to the registry.
Joystick Not extensible.
Keyboard Although the Speed page is replacable, it should not be necessary to do so. Replacing this page can affect the accuracy of existing Help files.

An application can add property sheet pages, using the IShellPropSheetExt::AddPage interface and adding a Controls Folder\Keyboard key to the registry.

Modems Not extensible.
Mouse Although the Motion and Button pages are replacable, it should not be necessary to do so. Replacing these pages can affect the accuracy of existing Help files.

An application can add property sheet pages, using the IShellPropSheetExt::AddPage interface and adding a Controls Folder\Mouse key to the registry.

Multimedia Not extensible.
Network Most network drivers and software can fully specify their installation requirements and files by using network .INF files. For more information about network .INF files, see Network Driver Installer in the DDK.
Passwords An application can add property sheet pages, using the IShellPropSheetExt::AddPage interface and adding a Controls Folder\Passwords key to the registry. For more information, see Passwords Control Panel in the Windows 95 Programming Guide.
PCMCIA Not extensible.
Power Management An application can add property sheet pages, using the IShellPropSheetExt::AddPage interface and adding a Controls Folder\Power key to the registry
Regional Settings Not extensible.
Sounds Not extensible.
System Not extensible.