get.h
上传用户:xiaoan1112
上传日期:2013-04-11
资源大小:19621k
文件大小:4k
源码类别:

操作系统开发

开发平台:

Visual C++

  1. /***************************************************************************/
  2. /*                                                                         */
  3. /* GET.H */
  4. /*                                                                         */
  5. /* Copyright (c) 1991 - Microsoft Corp. */
  6. /* All rights reserved. */
  7. /* Microsoft Confidential */
  8. /*                                                                         */
  9. /* Definitions and function prototypes for field entry functions.          */
  10. /*                                                                         */
  11. /* Created 880305 - johnhe                                                 */
  12. /***************************************************************************/
  13. #define     MAX_INT_VALUE     32000
  14. #define     MAX_DECIMALS      6
  15. #define     INT_LENGTH        6
  16. #define     DATE_LENGTH       8
  17. #define     TIME_LENGTH       5
  18. /***************************************************************************/
  19. /* Enumerated definitions for data types */
  20. /***************************************************************************/
  21. enum TYPE_TAG { NO_TYPE, TYPE_CHAR, TYPE_STRING, TYPE_INT, TYPE_TIME,
  22.                 TYPE_DATE, TYPE_FLOAT, TYPE_FIELD };
  23. #define MAX_TYPE TYPE_FLOAT
  24. /***************************************************************************/
  25. /* Bit aligned structure to hold the date. May be read as an unsigned int. */
  26. /* UnsignedValue = (unsigned *)(*(&Date));                                 */
  27. /***************************************************************************/
  28. struct Date
  29. {
  30. unsigned int Day : 5;
  31. unsigned int Month : 4;
  32. unsigned int Year : 7;
  33. };
  34. /***************************************************************************/
  35. /* Structure to hold the value being passed to and returned from the field */
  36. /* editing functions.                                                      */
  37. /***************************************************************************/
  38. union TYPES
  39. {
  40. char Char;                /* Single character */
  41. char *String;             /* Pointer to a string */
  42. int Int;                 /* Single integer value */
  43. struct Date          Date;                /* Date structure */
  44. unsigned Time;  /* Hours * 100 + Minutes */
  45.    double               Float;               /* Single double value */
  46. };
  47. /***************************************************************************/
  48. /* Entry field definition function which must be passed to the field       */
  49. /* editing functions.                                                      */
  50. /***************************************************************************/
  51. struct field
  52. {
  53. int Type;             /* Data type from enumerated TYPE_TAG */
  54. int Row;              /* Row on the display */
  55. int Col;              /* Col for first character in the field */
  56.    int            Length;           /* Length of field on screen */
  57. union TYPES Data;             /* Data to initialize the field with */
  58.    union TYPES    Min;              /* Minimum returnable value */
  59.    union TYPES    Max;              /* Maximum returnable value */
  60. };
  61. /***************************************************************************/
  62.    /*  GETFIELD.C */
  63. int   GetField(struct field *field_info);
  64. int ProcessCtr(void );
  65. int ProcessExtended(void );
  66. void  ScrUpdate(void );
  67. void  SaveChar(void );
  68. void  BackSpace(void );
  69. void  ClrField(void );
  70. void  InsChar(char *s,int c);
  71. void  DeleteChar(void );
  72. void  CursToEol(void );
  73. void  InitString(void );
  74. int StringToString( char *szString, char *szReturnStr, int Min, int Max );
  75. int InitializeString(char *Str, union TYPES Data, int Length);