dllshell.cpp
上传用户:yatsl7111
上传日期:2007-01-08
资源大小:1433k
文件大小:3k
源码类别:

图形图象

开发平台:

Visual C++

  1. /********************************************************************
  2. dllshell.cpp - ISee图像浏览器—图像处理模块代码文件
  3.     版权所有(C) VCHelp-coPathway-ISee workgroup 2000 all member's
  4.     这一程序是自由软件,你可以遵照自由软件基金会出版的GNU 通用许可证
  5. 条款来修改和重新发布这一程序。或者用许可证的第二版,或者(根据你
  6. 的选择)用任何更新的版本。
  7.     发布这一程序的目的是希望它有用,但没有任何担保。甚至没有适合特定
  8. 目地的隐含的担保。更详细的情况请参阅GNU通用许可证。
  9.     你应该已经和程序一起收到一份GNU通用许可证(GPL)的副本。如果还没有,
  10. 写信给:
  11.     The Free Software Foundation, Inc.,  675  Mass Ave,  Cambridge,
  12.     MA02139,  USA
  13. 如果你在使用本软件时有什么问题或建议,用以下地址可以与我们取得联
  14. 系:
  15. http://isee.126.com
  16. http://www.vchelp.net
  17. 或:
  18. iseesoft@china.com
  19. 作者:临风
  20.    e-mail:ringphone@sina.com
  21.    功能实现:DLL入口函数及主函数实现
  22. 文件版本:
  23. Build 00617
  24. Date  2000-6-17
  25. ********************************************************************/
  26. #include <windows.h>
  27. #include "..publicgol_proc.h"
  28. #include "filter.h"
  29. LPIMAGEPROCSTR lpProcInfo;
  30. //DLL主函数
  31. #pragma argsused //BC 专用,防止警告信息,VC用户请删除该行
  32. BOOL WINAPI DllEntryPoint( HINSTANCE hinstDll,DWORD fdwRreason,LPVOID plvReserved)
  33. {
  34.     return 1;   // Indicate that the DLL was initialized successfully.
  35. }
  36. //DLL入口函数
  37. //VC 用户请把 _export 改为 __declspec(dllexport)
  38. int WINAPI FAR _export AccessPropFilter(LPIMAGEPROCSTR lpInfo)
  39. {
  40.    if(lpInfo==NULL)
  41.     return PROCERR_NULLPARAM;
  42.    lpProcInfo=lpInfo;
  43.    switch(lpInfo->comm)
  44.    {
  45.     case PCM_NULL:                        //未操作
  46.        lpInfo->result=PR_NULL;
  47.        return PROCERR_FALSE;
  48.       case PCM_GETWRITERMESS:
  49.        return ShowWriterMessage();
  50.       case PCM_ROTATE:                       //旋转
  51.          if(lpInfo->sImageInfo.bitperpix<16 || lpInfo->_psbdata==NULL)
  52.          {
  53.           lpInfo->result=PR_COMMINFOERR;
  54.             return PROCERR_FALSE;
  55.          }
  56.        return DoRotate(lpInfo);
  57.       case PCM_GREYSCALE:                    //灰度转换
  58.        if(lpInfo->sImageInfo.bitperpix<24 || lpInfo->_psbdata==NULL)
  59.          {
  60.           lpInfo->result=PR_COMMINFOERR;
  61.             return PROCERR_FALSE;
  62.          }
  63.        return DoGreyScale(lpInfo);
  64.       case PCM_RESIZE:                     //重定义尺寸
  65.        if(lpInfo->_psbdata==NULL)
  66.          {
  67.           lpInfo->result=PR_COMMINFOERR;
  68.             return PROCERR_FALSE;
  69.          }
  70.        return DoResize(lpInfo);
  71.    }
  72.    lpInfo->result=PR_ILLCOMM;
  73.    return PROCERR_FALSE;
  74. }