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. |