【 tulaoshi.com - 编程语言 】
前不久,Inprise公司(原Borland公司)正式公布了Delphi 5.0版,其开发向导中支持了“控制面板程序(CPL)”框架的生成,利用它可以快速、方便地开发CPL程序。那么是否能在现有的Borland C++ Builder 中开发CPL程序呢?
CPL程序是动态链接库(DLL)的一种变形,只不过扩展名为.cpl、入口函数为CPlApplet()而不是DllEntryPoint()罢了(并不是不要DllEntryPoint(),不然不能编译)。我们只需在BCB4.0中选择“FileNew...”打开开发向导,选择“DLL”生成一个DLL框架,并在其中加入一个函数CPlApplet()就可以了。为了快速地说明问题,笔者先给出一个最简单的例子程序,然后再来解说。
#include vcl.h
#include cpl.h
#include cplext.h
#pragma hdrstop
USERES("my.res");//这是我加入的资源文件,其中有一个图标
extern"C" __declspec(dlleXPort) long CALLBACK __stdcall CPlApplet(HWND hwndCPL,UINT uMsg,LPARAM lParam1,LPARAM lParam2);
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void*)
{
return 1;
}
long CALLBACK __declspec(dllexport) __stdcall CPlApplet(HWND hwndCPL,UINT uMsg,LPARAM lParam1,LPARAM lParam2)
{
LPNEWCPLINFO mycpl;//LPNEWCPLINFO结构可在CPL.H头文件中查看
long result=0;
switch (uMsg)//判定传来的信息
{
case CPL_INIT:// 第一个信息,在控制面板调入时产生
result=1;
break;
case CPL_GETCOUNT://第二个信息,在控制面板调入时产生
result=1;
break;
case CPL_INQUIRE://第三个信息,当控制面板查询时产生
result=0;
break;
case CPL_NEWINQUIRE://第三个信息,当控制面板查询时产生
mycpl=LPNEWCPLINFO (lParam2);// 将lParam2中的指针传给mycpl
mycpl-dwSize=sizeof(NEWCPLINFO);
mycpl-dwFlags=0;//标志变量 一般设为0
mycpl-dwHelpContext=0;//帮助句柄一般设为0
mycpl-lData=0;
mycpl-hIcon=(HICON)LoadIcon(HInstance,"MyIcon");
mycpl-szHelpFile[0]='