CSET.CXX
上传用户:bangxh
上传日期:2007-01-31
资源大小:42235k
文件大小:2k
源码类别:

Windows编程

开发平台:

Visual C++

  1. #include <windows.h>
  2. #include <windowsx.h>
  3. #include <string.h>
  4. #include "app.h"
  5. #include "cset.hxx"
  6. //+--------------------------------------------------------
  7. // Class:       CSet
  8. //
  9. // Purpose:     Set of characters
  10. //
  11. // History:     03-Aug-1994     asmusf  created
  12. //----------------------------------------------------------
  13. // pure inline
  14. //+--------------------------------------------------------
  15. // Class:       CCTypesSet
  16. //
  17. // Purpose:     Set of chars defined by common CType
  18. //
  19. // History:     03-Aug-1994     asmusf  created
  20. //----------------------------------------------------------
  21. CCTypeSet :: CCTypeSet(WORD fC1Mask, WORD fC2Test, WORD fC3Mask)
  22. {
  23. _fC1Mask = fC1Mask;
  24. _fC2Test = fC2Test;
  25. _fC3Mask = fC3Mask;
  26. GetPageData( 0 );  // Page 0 is ALWAYS the default
  27. }
  28. CCTypeSet :: In(WORD iChar)
  29. {
  30. WORD iPage = iChar & 0xFF00;
  31. if( iPage != _iPage )
  32. {
  33. GetPageData(iPage);
  34. }
  35. return _pCharInSet[iChar &0xFF];
  36. }
  37. void CCTypeSet :: GetPageData(WORD iPage)
  38. {
  39. WORD i;
  40. TCHAR vchTemp[256];
  41. WORD vCtype[256];
  42. for ( i=0; i < 256; i++ )
  43. {
  44. vchTemp[i] = iPage+i;
  45. _pCharInSet[i] = FALSE;
  46. }
  47. if( _fC1Mask )
  48. {
  49. GetStringTypeEx(0,CT_CTYPE1,vchTemp,256, vCtype);
  50. for( i=0; i<256;i++ ){
  51. _pCharInSet[i] = _pCharInSet[i] || (vCtype[i] & _fC1Mask);
  52. }
  53. }
  54. if( _fC2Test )
  55. {
  56. GetStringTypeEx(0,CT_CTYPE2,vchTemp,256, vCtype);
  57. for( i=0; i<256;i++ ){
  58. _pCharInSet[i] = _pCharInSet[i] || (vCtype[i] == _fC2Test);  //enumerated value
  59. }
  60. }
  61. if( _fC3Mask )
  62. {
  63. GetStringTypeEx(0,CT_CTYPE3,vchTemp,256, vCtype);
  64. for( i=0; i<256;i++ ){
  65. _pCharInSet[i] = _pCharInSet[i] || (vCtype[i] & _fC3Mask);
  66. }
  67. }
  68. _iPage = iPage;
  69. }