【 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]='