Question and Answer Database FAQ2449C.txt Control Panel App from Builder Category :VCL Platform :All Product :C++Builder 3.x Question: How exactly does one produce Control Panel Application using Borland C++ Builder Standard??? Answer: A control panel extension is nothing more than a normal DLL, which offers a 'CPlApplet' function. The Control Panel will call this function to tell your extension what to do. So, create a new DLL app (File/New../DLL). Add a form to it. save the project as CPLExtension, and the form as CPLExtensionForm. Compile it. Then use the following code in the DLL source file: #include#include // Control Panel applet definitions #pragma hdrstop USERES("CPLExtension.res"); USEFORM("CPLExtensionForm.cpp", Form1); // This is the form HINSTANCE OurInstance; int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*) { // Remember our instance, so we can get to our DLL resources if (reason==DLL_PROCESS_ATTACH) OurInstance=hinst; return 1; } // The Control Panel will do all calling through this function extern "C" int __stdcall __declspec(dllexport) CPlApplet(HWND HwControlPanel,int Msg,int lParam1,int lParam2) { switch (Msg) { case CPL_INIT: // Return "succesful initialization" return true; case CPL_GETCOUNT: // This DLL contains 1 applet return 1; case CPL_NEWINQUIRE: { // Control Panel asks for display information NEWCPLINFO *Info=(NEWCPLINFO *)lParam2; ZeroMemory(Info,sizeof(NEWCPLINFO)); Info->dwSize=sizeof(NEWCPLINFO); // Icon is specified under Options/Project/Applications, as usual Info->hIcon=LoadIcon(HInstance,"MAINICON"); strcpy(Info->szName,"Exception's Example Applet"); strcpy(Info->szInfo,"Exception's Example Control Panel" " Applet — exception@mailcity.com"); return 0; } case CPL_DBLCLK: // Time to show our form!!! try { Application->Initialize(); Application->CreateForm(__classid(TForm1), &Form1); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } return 0; } } Compile it to a DLL, rename it to the CPL extension, and place it in your windows system directory, and start Control Panel (Settings...). If you double click it, you'll see your form. You can use all your VCL thingys on the extension's form (buttons, edit components, images, etc). Notes for CBuilder3: You will need to use ImageEditor (or your favorite resource bulilder) to create a resource file with an icon called MAINICON, and use the project manager to add the resource to the project. You can use the Project | Options | Application dialog for setting the extension to 'cpl'. 7/2/98 10:32:32 AM
Last Modified: 01-SEP-99