网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > VC++ > 正文
用DLL为应用程序预留待扩展功能接口
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/15
下载{$ArticleTitle}原创论文样式
MMAND2   202

  #define IDM_COMMAND3   203

  /*---End of PRAC.H ---*/

  ; 应用程序的模块定义文件PRAC.DEF

  NAME     PRAC

  DESCRIPTION  ''demonstrate a different system menu''

  EXETYPE    WINDOWS

  STUB      ''WINSTUB.EXE''

  CODE      PRELOAD MOVEABLE DISCARDABLE

  DATA     PRELOAD MOVEABLE MULTIPLE

  HEAPSIZE   1024

  STACKSIZE   8192

  EXPORTS    MainWndProc

  ; End of PRAC.DEF

  /*---资源定义文件PRAC.RC---*/

  #include "prac.h"

  OurOwnMenu MENU

  BEGIN

   MENUITEM "Command&1",   IDM_COMMAND1

   MENUITEM "Command&2",   IDM_COMMAND2

   MENUITEM "Command&3",   IDM_COMMAND3

  END

  /*---End of PRAC.RC---*/

  若要扩展上面应用程序的功能,在不改动上述程序的情况下,只需将功能扩展部分的代码编写成动态链接函数库,编译成.DLL文件,并在PRAC.INI文件中加入下面语句,即可达到扩展功能的目的。在PRAC.INI中加入:

  [AddApp]

  AddMyapp=c:\win95\system\extproc.dll

  扩展功能的动态链接函数库代码如下:

  /*-----EXTPROC_DLL.c-----*/

  #include <windows.h>  

  #include <commdlg.h>  

  #include "extproc_dll.h"  

  HMENU hMenu , hExtMenu;  

  HWND hWndExt = NULL;  

  int FAR PASCAL LibMain(HANDLE hModule , WORD wDataSeg,  

              WORD HeapSize , LPSTR lpszCmdLine)  

  {  

   if(HeapSize != 0)  

    UnlockData(0);  

   return 1;  

  }  

  int FAR PASCAL WEP(int SystemExit)  

  {  

   switch (SystemExit)  

    {  

     case WEP_SYSTEM_EXIT:  

                 return 1;  

     case WEP_FREE_DLL:  

                 return 1;  

     default:  

         return 1;  

    }  

  }  

  /*函数FMExtensionProc()即为扩展功能的处理函数,当过滤函数检索到有来自扩展功能的菜单消息时,就调用该函数进行处理。在此仅以设置打印机、选择字体来说明扩展功能的处理过程,读者可根据自己的需要修改*/  

  void FAR PASCAL FMExtensionProc(HWND hWndFMExt , WORD wMessage)  

  {  

   PRINTDLG  pd;  

   CHOOSEFONT fnt;  

   LOGFONT lf;  

   CHOOSECOLOR chclr;  

   DWORD dwColor;  

   DWORD dwCustClrs[16];  

   int i;  

   switch(wMessage)  

     {  

     /*处理FMEVENT_LOAD消息,加载用户扩展功能菜单FMExtMenu*/  

      case EXTPROC_LOAD:  

         hExtMenu = LoadMenu(FMExtInst,"FMExtMenu");  

         hMenu = GetMenu(hWndFMExt);  

         AppendMenu(hMenu,MF_POPUP,hExtMenu ,"扩展功能(&E)");  

         SetMenu(hWndFMExt,hMenu);  

         break;  

   
  • 下一篇资讯: 删除非空目录
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号