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

     {  

      TranslateMessage (&msg);  

      DispatchMessage (&msg);  

     }  

   return msg.wParam;  

  }  

  /*---------- 主窗口函数 WndProc()-------------*/  

  long FAR PASCAL MainWndProc(HWND hWnd, WORD message,  

                    WORD wParam, LONG lParam)  

  {  

   static HANDLE hLibrary;  

   char szBuf[80];  

   switch(message)  

   {  

     case WM_CREATE:  

     /*读应用程序的初始化文件prac.ini,检查是否有扩展功能的动态链接库,若没有则返回;若有则装入该动态链接函接数库,并取得接口函数的地址,对接口函数进行初始化*/  

       GetPrivateProfileString("MyApp" , "AddMyapp" , "" ,  

                 szBuf,sizeof(szBuf) , "prac.ini");  

       if (szBuf[0] != ''\0'')  

       if ((hLibrary = LoadLibrary(szBuf)) >= 32)  

        {  

         LpExtProc=(FARPROC)GetProcAddress(hLibrary,  

                  MAKEINTRESOURCE(2));  

         LpExtProc(hWnd , EXTPROC_LOAD);  

        }  

       else  

        MessageBox(hWnd,"Load library failed!","Error",MB_OK);  

       break;  

     case WM_COMMAND:  

       /*函数MsgFilter( )用来过滤菜单消息*/  

       MsgFilter(hWnd , wParam);  

       switch (wParam)  

       {  

         case IDM_COMMAND1: //处理应用程序  

         case IDM_COMMAND2: //定义的菜单功  

         case IDM_COMMAND3: //能,此处省略。  

       }  

       return 0;  

     case WM_DESTROY:  

       if(hLibrary != NULL)  

       FreeLibrary(hLibrary);  

       PostQuitMessage(0);  

       break;  

   }  

   return DefWindowProc(hWnd, message, wParam, lParam);  

  }  

/*下面过滤函数,把菜单消息的来源分成两类,即应用程序本身的菜单消息和来自功能扩展部分的菜单消息。应用程序把值在MIN_FMT至MAX_FMT之间的菜单消息留给待扩展程序使用。如果有来自扩展程序的消息,就通过接口函数LpExtProc()把该消息传送给扩展程序,由扩展程序负责处理该消息*/  

  void MsgFilter(HWND hWnd , WPARAM wParam)  

  {  

   if((wParam >= MIN_FMT)&&(wParam <= MAX_FMT))

    LpExtProc(hWnd , wParam);

   return;

  }

  /*---------------- End of PRAC.C-----------------*/

  /*----------- PRAC.H ----------*/

  #define MIN_FMT       100

  #define MAX_FMT      199

  #define EXTPROC_LOAD   200

  #define IDM_COMMAND1   201

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

    免费论文

    原创论文

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