home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 February / PCWorld_2000-02_cd.bin / Software / TemaCD / tcvpa / data1.cab / MyFileGroup / INCLUDE / FrmIface.hpp < prev    next >
C/C++ Source or Header  |  1999-06-03  |  19KB  |  468 lines

  1. #ifndef _INC_FRMIFACE_HPP
  2. #define _INC_FRMIFACE_HPP
  3.  
  4. // **********************************************************************
  5. class TC_COREEX_EXPORT TC_CIDataType 
  6. {
  7. protected:  int m_TypeID ;
  8. public:   TC_CIDataType ()  ;
  9. public: virtual  ~TC_CIDataType ()  ;
  10. public: virtual BOOL IsCompatible (TC_CIDataType * other)  =0 ;
  11. public: virtual int Validate (const char * str, char * fmt = 0)  =0 ;
  12. public: virtual int FromString (const char * str, char * fmt = 0)  =0 ;
  13. public: virtual int FromNative (const void * val)  =0 ;
  14. public: virtual int FromAnother (const TC_CIDataType * dtype)  =0 ;
  15. public: virtual int FromRawData (char * data, int sz=0)  =0 ;
  16. public: virtual int ToString (char * dest,  int size, char * fmt = 0)  =0 ;
  17. public: virtual int ToString (TC_CString & str, char * fmt=0)  =0 ;
  18. public: virtual int ToNative (void * dest)  =0 ;
  19. public: virtual int ToAnother (TC_CIDataType * dtype)  =0 ;
  20. public: virtual int ToRawData (char * data, int sz=0)  =0 ;
  21. public: virtual TC_CIDataType * Copy ()  =0 ;
  22. public: virtual char * DefaultFmt ()  =0 ;
  23. public: virtual BOOL IsNull ()  =0 ;
  24. public: virtual int Compare (TC_CIDataType * other)  =0 ;
  25. public: virtual void SetNull ()  ;
  26. public: virtual int RawSize ()  =0 ;
  27. public: virtual void * Ptr ()  =0 ;
  28. public: virtual BOOL IsFmtValid (const char * fmt)  ;
  29. public:  int TypeID () const ;
  30.  
  31. }; // end of class TC_CIDataType
  32.  
  33. // **********************************************************************
  34.  
  35. // **********************************************************************
  36. class TC_COREEX_EXPORT TC_CIDate 
  37.     : public TC_CIDataType
  38. {
  39. private:  TC_CDate m_Date ;
  40. public:   TC_CIDate ()  ;
  41. public:   TC_CIDate (TC_CDate & dt)  ;
  42. public:   TC_CIDate (TC_CIDate & dt)  ;
  43. public:  BOOL IsCompatible (TC_CIDataType * dtype)  ;
  44. public:  int Validate (const char * str, char * fmt=0)  ;
  45. public:  int FromString (const char * str, char * fmt = 0)  ;
  46. public:  int FromNative (const void * val)  ;
  47. public:  int FromAnother (const TC_CIDataType * dtype)  ;
  48. public:  int FromRawData (char * data, int sz=0)  ;
  49. public:  int ToString (char * dest, int size, char * fmt = 0)  ;
  50. public:  int ToString (TC_CString & str, char * fmt=0)  ;
  51. public:  int ToNative (void * dest)  ;
  52. public:  int ToAnother (TC_CIDataType * dtype)  ;
  53. public:  int ToRawData (char * data, int sz=0)  ;
  54. public:  TC_CIDataType * Copy ()  ;
  55. public:  char * DefaultFmt ()  ;
  56. public:  int Compare (TC_CIDataType * dtype)  ;
  57. public:  BOOL IsNull ()  ;
  58. public:  int RawSize ()  ;
  59. public:  void * Ptr ()  ;
  60. public:  BOOL IsFmtValid (const char * fmt)  ;
  61. public:   operator TC_CDate ()  ;
  62. public:   operator TC_CTime ()  ;
  63.  
  64. }; // end of class TC_CIDate
  65.  
  66. // **********************************************************************
  67.  
  68. // **********************************************************************
  69. class TC_COREEX_EXPORT TC_CITime 
  70.     : public TC_CIDataType
  71. {
  72. private:  TC_CTime m_Time ;
  73. public:   TC_CITime ()  ;
  74. public:   TC_CITime (TC_CTime & tm)  ;
  75. public:   TC_CITime (TC_CITime & tm)  ;
  76. public:  BOOL IsCompatible (TC_CIDataType * dtype)  ;
  77. public:  int Validate (const char * str, char * fmt=0)  ;
  78. public:  int FromString (const char * str, char * fmt=0)  ;
  79. public:  int FromNative (const void * val)  ;
  80. public:  int FromAnother (const TC_CIDataType * dtype)  ;
  81. public:  int FromRawData (char * data, int sz=0)  ;
  82. public:  int ToString (char * dest, int size, char * fmt = 0)  ;
  83. public:  int ToString (TC_CString & str, char * fmt=0)  ;
  84. public:  int ToNative (void * dest)  ;
  85. public:  int ToAnother (TC_CIDataType * dtype)  ;
  86. public:  int ToRawData (char * data, int sz=0)  ;
  87. public:  TC_CIDataType * Copy ()  ;
  88. public:  char * DefaultFmt ()  ;
  89. public:  int Compare (TC_CIDataType * dtype)  ;
  90. public:  BOOL IsNull ()  ;
  91. public:  int RawSize ()  ;
  92. public:  void * Ptr ()  ;
  93. public:  BOOL IsFmtValid (const char * fmt)  ;
  94. public:   operator TC_CTime ()  ;
  95. public:   operator TC_CDate ()  ;
  96.  
  97. }; // end of class TC_CITime
  98.  
  99. // **********************************************************************
  100. #define STRFMT_ALL        0x00000001L        // %X     all printable characters (default)
  101. #define STRFMT_NUMBER    0x00000002L        // %9     numbers (0-9)
  102. #define STRFMT_CHAR        0x00000004L        // %A     characters (a-z)
  103. #define STRFMT_UPPER    0x00000008L        // %!     to upper case
  104. #define STRFMT_LOWER    0x00000010L        // %~    to lower case
  105. #define STRFMT_EXCLUDE    0x00000020L        // %E    exclude specified characters: +string
  106.  
  107. // **********************************************************************
  108. class TC_COREEX_EXPORT TC_CIStringType 
  109.     : public TC_CIDataType
  110. {
  111. protected:  int ParseFmt (const char* str, char * fmt, BOOL is_test )  ;
  112. protected: virtual void AssignParsed (const char * str)  =0 ;
  113. public:  int Validate (const char * str, char * fmt=0)  ;
  114. public:  int FromString (const char * str, char * fmt = 0)  ;
  115. public:  BOOL IsFmtValid (const char * fmt)  ;
  116.  
  117. }; // end of class TC_CIStringType
  118.  
  119. // **********************************************************************
  120.  
  121. // **********************************************************************
  122. class TC_COREEX_EXPORT TC_CIString 
  123.     : public TC_CIStringType
  124. {
  125. protected:  TC_CString m_Str ;
  126. protected:  void AssignParsed (const char * str)  ;
  127. public:   TC_CIString ()  ;
  128. public:  BOOL IsCompatible (TC_CIDataType * dtype)  ;
  129. public:  int FromNative (const void * val)  ;
  130. public:  int FromAnother (const TC_CIDataType * dtype)  ;
  131. public:  int FromRawData (char * data, int sz=0)  ;
  132. public:  int ToString (char * dest, int size, char * fmt = 0)  ;
  133. public:  int ToString (TC_CString & str, char * fmt=0)  ;
  134. public:  int ToNative (void * dest)  ;
  135. public:  int ToAnother (TC_CIDataType * dtype)  ;
  136. public:  int ToRawData (char * data, int sz=0)  ;
  137. public:  TC_CIDataType * Copy ()  ;
  138. public:  char * DefaultFmt ()  ;
  139. public:  int Compare (TC_CIDataType * dtype)  ;
  140. public:  int RawSize ()  ;
  141. public:  void * Ptr ()  ;
  142. public:  BOOL IsNull ()  ;
  143.  
  144. }; // end of class TC_CIString
  145.  
  146. // **********************************************************************
  147.  
  148. // **********************************************************************
  149. class TC_COREEX_EXPORT TC_CICharArr 
  150.     : public TC_CIString
  151. {
  152. public:   TC_CICharArr ()  ;
  153. public:  BOOL IsCompatible (TC_CIDataType * dtype)  ;
  154. public:  int FromNative (const void * val)  ;
  155. public:  int ToNative (void * dest)  ;
  156. public:  TC_CIDataType * Copy ()  ;
  157. public:  void * Ptr ()  ;
  158.  
  159. }; // end of class TC_CICharArr
  160.  
  161. // **********************************************************************
  162.  
  163. // **********************************************************************
  164. class TC_COREEX_EXPORT TC_CIByte 
  165.     : public TC_CIStringType
  166. {
  167. protected:  unsigned char m_Byte ;
  168. protected:  void AssignParsed (const char * str)  ;
  169. public:   TC_CIByte ()  ;
  170. public:  BOOL IsCompatible (TC_CIDataType * dtype)  ;
  171. public:  int FromNative (const void * val)  ;
  172. public:  int FromAnother (const TC_CIDataType * dtype)  ;
  173. public:  int FromRawData (char * data, int sz=0)  ;
  174. public:  int ToString (char * dest, int size, char * fmt = 0)  ;
  175. public:  int ToString (TC_CString & str, char * fmt=0)  ;
  176. public:  int ToNative (void * dest)  ;
  177. public:  int ToAnother (TC_CIDataType * dtype)  ;
  178. public:  int ToRawData (char * data, int sz=0)  ;
  179. public:  TC_CIDataType * Copy ()  ;
  180. public:  char * DefaultFmt ()  ;
  181. public:  int Compare (TC_CIDataType * dtype)  ;
  182. public:  int RawSize ()  ;
  183. public:  void * Ptr ()  ;
  184. public:  BOOL IsNull ()  ;
  185.  
  186. }; // end of class TC_CIByte
  187.  
  188. // **********************************************************************
  189. #define INTFMT_RADIX        0x00000001L        // %b base radix; +number: 2-36
  190. #define INTFMT_WIDTH        0x00000002L        // %w zero pad to width n: +number: 0 - 128
  191. #define INTFMT_SIGN            0x00000004L        // %+ always show sign
  192. #define INTFMT_THOUSANDS    0x00000008L        // %, comma separate thousands if radix = 10
  193. #define INTFMT_THOUSAND_SEP    0x00000010L        // %T, thousand separator if radix = 10; +string
  194.  
  195. // **********************************************************************
  196. class TC_COREEX_EXPORT TC_CIInteger 
  197.     : public TC_CIDataType
  198. {
  199. protected:  int ParseFmt (const char* str, char * fmt, long * val, int flag )  ;
  200. protected:  int Format (long val, TC_CString & str, char * fmt, int flag)  ;
  201. public:  int Validate (const char * str, char * fmt=0)  ;
  202. public:  BOOL IsFmtValid (const char * fmt)  ;
  203.  
  204. }; // end of class TC_CIInteger
  205.  
  206. // **********************************************************************
  207.  
  208. // **********************************************************************
  209. class TC_COREEX_EXPORT TC_CIShort 
  210.     : public TC_CIInteger
  211. {
  212. protected:  short m_Val ;
  213. public:   TC_CIShort ()  ;
  214. public:   TC_CIShort (short val)  ;
  215. public:  BOOL IsCompatible (TC_CIDataType * dtype)  ;
  216. public:  int FromString (const char * str, char * fmt = 0)  ;
  217. public:  int FromNative (const void * val)  ;
  218. public:  int FromAnother (const TC_CIDataType * dtype)  ;
  219. public:  int FromRawData (char * data, int sz=0)  ;
  220. public:  int ToString (char * dest, int size, char * fmt = 0)  ;
  221. public:  int ToString (TC_CString & str, char * fmt=0)  ;
  222. public:  int ToNative (void * dest)  ;
  223. public:  int ToAnother (TC_CIDataType * dtype)  ;
  224. public:  int ToRawData (char * data, int sz=0)  ;
  225. public:  TC_CIDataType * Copy ()  ;
  226. public:  char * DefaultFmt ()  ;
  227. public:  int Compare (TC_CIDataType * dtype)  ;
  228. public:  BOOL IsNull ()  ;
  229. public:  int RawSize ()  ;
  230. public:  void * Ptr ()  ;
  231. public:   operator short () 
  232. {
  233. return m_Val;
  234. } // end of func
  235. // **********************************************************************
  236.  
  237. public:  short operator = (short val)  ;
  238.  
  239. }; // end of class TC_CIShort
  240.  
  241. // **********************************************************************
  242.  
  243. // **********************************************************************
  244. class TC_COREEX_EXPORT TC_CIUShort 
  245.     : public TC_CIShort
  246. {
  247. public:   TC_CIUShort ()  ;
  248. public:   TC_CIUShort (unsigned short val)  ;
  249. public:  int FromString (const char * str, char * fmt = 0)  ;
  250. public:  int ToString (TC_CString & str, char * fmt=0)  ;
  251. public:  int Compare (TC_CIDataType * dtype)  ;
  252. public:   operator unsigned short () 
  253. {
  254. return (unsigned short)(short)(*this);
  255. } // end of func
  256. // **********************************************************************
  257.  
  258. public:  unsigned short operator = (unsigned short val)  ;
  259.  
  260. }; // end of class TC_CIUShort
  261.  
  262. // **********************************************************************
  263.  
  264. // **********************************************************************
  265. class TC_COREEX_EXPORT TC_CILong 
  266.     : public TC_CIInteger
  267. {
  268. protected:  long m_Val ;
  269. public:   TC_CILong ()  ;
  270. public:   TC_CILong (long val)  ;
  271. public:  BOOL IsCompatible (TC_CIDataType * dtype)  ;
  272. public:  int FromString (const char * str, char * fmt = 0)  ;
  273. public:  int FromNative (const void * val)  ;
  274. public:  int FromAnother (const TC_CIDataType * dtype)  ;
  275. public:  int FromRawData (char * data, int sz=0)  ;
  276. public:  int ToString (char * dest, int size, char * fmt = 0)  ;
  277. public:  int ToString (TC_CString & str, char * fmt=0)  ;
  278. public:  int ToNative (void * dest)  ;
  279. public:  int ToAnother (TC_CIDataType * dtype)  ;
  280. public:  int ToRawData (char * data, int sz=0)  ;
  281. public:  TC_CIDataType * Copy ()  ;
  282. public:  char * DefaultFmt ()  ;
  283. public:  int Compare (TC_CIDataType * dtype)  ;
  284. public:  BOOL IsNull ()  ;
  285. public:  int RawSize ()  ;
  286. public:  void * Ptr ()  ;
  287. public:   operator long () 
  288. {
  289. return m_Val;
  290. } // end of func
  291. // **********************************************************************
  292.  
  293. public:  long operator = (long val)  ;
  294.  
  295. }; // end of class TC_CILong
  296.  
  297. // **********************************************************************
  298.  
  299. // **********************************************************************
  300. class TC_COREEX_EXPORT TC_CIULong 
  301.     : public TC_CILong
  302. {
  303. public:   TC_CIULong ()  ;
  304. public:   TC_CIULong (unsigned long val)  ;
  305. public:  int FromString (const char * str, char * fmt = 0)  ;
  306. public:  int ToString (TC_CString & str, char * fmt=0)  ;
  307. public:  int Compare (TC_CIDataType * dtype)  ;
  308. public:   operator unsigned long () 
  309. {
  310. return (unsigned long)(long)(*this);
  311. } // end of func
  312. // **********************************************************************
  313.  
  314. public:  unsigned long operator = (unsigned long val)  ;
  315.  
  316. }; // end of class TC_CIULong
  317.  
  318. // **********************************************************************
  319. #define    DBLFMT_CRNCY        BCDFMT_CRNCY            // %$    use currency format
  320. #define    DBLFMT_CRNCY_NAME    BCDFMT_CRNCY_NAME        // %C    currency name; +string
  321. #define    DBLFMT_CRNCY_POS    BCDFMT_CRNCY_POS        // %P    currency name position; +number:  0 left, 1 right, 2 at decimal pos
  322. #define    DBLFMT_CRNCY_SPACES    BCDFMT_CRNCY_SPACES        // %S    currency space separators; +number
  323. #define    DBLFMT_SIGN            BCDFMT_SIGN                // %+    include sign
  324. #define    DBLFMT_THOUSANDS    BCDFMT_THOUSANDS        // %,    separate thousands
  325. #define    DBLFMT_PARENTH_NEG    BCDFMT_PARENTH_NEG        // %(    negative in parenteses
  326. #define    DBLFMT_DEC_SEP        BCDFMT_DEC_SEP            // %D    decimal separator;  +string
  327. #define    DBLFMT_THOUSAND_SEP    BCDFMT_THOUSAND_SEP        // %T    thousands separator; +string
  328. #define    DBLFMT_DEC_NUM        BCDFMT_DEC_NUM            // %d    number of digits after decimal point
  329.  
  330. // **********************************************************************
  331. class TC_COREEX_EXPORT TC_CIDouble 
  332.     : public TC_CIDataType
  333. {
  334. private:  double m_Val ;
  335. public:   TC_CIDouble ()  ;
  336. public:   TC_CIDouble (double val)  ;
  337. public:  BOOL IsCompatible (TC_CIDataType * dtype)  ;
  338. public:  int Validate (const char * str, char * fmt=0)  ;
  339. public:  int FromString (const char * str, char * fmt = 0)  ;
  340. public:  int FromNative (const void * val)  ;
  341. public:  int FromAnother (const TC_CIDataType * dtype)  ;
  342. public:  int FromRawData (char * data, int sz=0)  ;
  343. public:  int ToString (char * dest, int size, char * fmt = 0)  ;
  344. public:  int ToString (TC_CString & s, char * fmt=0)  ;
  345. public:  int ToNative (void * dest)  ;
  346. public:  int ToAnother (TC_CIDataType * dtype)  ;
  347. public:  int ToRawData (char * data, int sz=0)  ;
  348. public:  TC_CIDataType * Copy ()  ;
  349. public:  char * DefaultFmt ()  ;
  350. public:  int Compare (TC_CIDataType * dtype)  ;
  351. public:  BOOL IsNull ()  ;
  352. public:  int RawSize ()  ;
  353. public:  void * Ptr ()  ;
  354. public:  BOOL IsFmtValid (const char * fmt)  ;
  355. public:   operator double () 
  356. {
  357. return m_Val;
  358. } // end of func
  359. // **********************************************************************
  360.  
  361. public:  double operator = (double val)  ;
  362.  
  363. }; // end of class TC_CIDouble
  364.  
  365. // **********************************************************************
  366.  
  367. // **********************************************************************
  368. class TC_COREEX_EXPORT TC_CIFloat 
  369.     : public TC_CIDataType
  370. {
  371. private:  float m_Val ;
  372. public:   TC_CIFloat ()  ;
  373. public:   TC_CIFloat (float val)  ;
  374. public:  BOOL IsCompatible (TC_CIDataType * dtype)  ;
  375. public:  int Validate (const char * str, char * fmt=0)  ;
  376. public:  int FromString (const char * str, char * fmt = 0)  ;
  377. public:  int FromNative (const void * val)  ;
  378. public:  int FromAnother (const TC_CIDataType * dtype)  ;
  379. public:  int FromRawData (char * data, int sz=0)  ;
  380. public:  int ToString (char * dest, int size, char * fmt = 0)  ;
  381. public:  int ToString (TC_CString & s, char * fmt=0)  ;
  382. public:  int ToNative (void * dest)  ;
  383. public:  int ToAnother (TC_CIDataType * dtype)  ;
  384. public:  int ToRawData (char * data, int sz=0)  ;
  385. public:  TC_CIDataType * Copy ()  ;
  386. public:  char * DefaultFmt ()  ;
  387. public:  int Compare (TC_CIDataType * dtype)  ;
  388. public:  BOOL IsNull ()  ;
  389. public:  int RawSize ()  ;
  390. public:  void * Ptr ()  ;
  391. public:  BOOL IsFmtValid (const char * fmt)  ;
  392. public:   operator float () 
  393. {
  394. return m_Val;
  395. } // end of func
  396. // **********************************************************************
  397.  
  398. public:  float operator = (float val)  ;
  399.  
  400. }; // end of class TC_CIFloat
  401.  
  402. // **********************************************************************
  403.  
  404. // **********************************************************************
  405. class TC_COREEX_EXPORT TC_CIBCD 
  406.     : public TC_CIDataType
  407. {
  408. private:  TC_CBCD m_Val ;
  409. public:   TC_CIBCD ()  ;
  410. public:   TC_CIBCD (TC_CBCD & bcd)  ;
  411. public:   TC_CIBCD (unsigned char P, signed char S)  ;
  412. public:  BOOL IsCompatible (TC_CIDataType * dtype)  ;
  413. public:  int Validate (const char * str, char * fmt=0)  ;
  414. public:  int FromString (const char * str, char * fmt = 0)  ;
  415. public:  int FromNative (const void * val)  ;
  416. public:  int FromAnother (const TC_CIDataType * dtype)  ;
  417. public:  int FromRawData (char * data, int sz=0)  ;
  418. public:  int ToString (char * dest, int size, char * fmt = 0)  ;
  419. public:  int ToString (TC_CString & s, char * fmt=0)  ;
  420. public:  int ToNative (void * dest)  ;
  421. public:  int ToAnother (TC_CIDataType * dtype)  ;
  422. public:  int ToRawData (char * data, int sz=0)  ;
  423. public:  TC_CIDataType * Copy ()  ;
  424. public:  char * DefaultFmt ()  ;
  425. public:  int Compare (TC_CIDataType * dtype)  ;
  426. public:  BOOL IsNull ()  ;
  427. public:  void * Ptr ()  ;
  428. public:  BOOL IsFmtValid (const char * fmt)  ;
  429. public:  int RawSize ()  ;
  430.  
  431. }; // end of class TC_CIBCD
  432.  
  433. // **********************************************************************
  434.  
  435. // **********************************************************************
  436. class TC_COREEX_EXPORT TC_CIBinArray 
  437.     : public TC_CIDataType
  438. {
  439. private:  TC_CBinArray m_Arr ;
  440. public:   TC_CIBinArray ()  ;
  441. public:   TC_CIBinArray (const unsigned char * arr, ULONG size)  ;
  442. public:   TC_CIBinArray (ULONG size)  ;
  443. public:   TC_CIBinArray (const TC_CBinArray & arr)  ;
  444. public:  BOOL IsCompatible (TC_CIDataType * dtype)  ;
  445. public:  int Validate (const char * str, char * fmt=0)  ;
  446. public:  int FromString (const char * str, char * fmt = 0)  ;
  447. public:  int FromNative (const void * val)  ;
  448. public:  int FromAnother (const TC_CIDataType * dtype)  ;
  449. public:  int FromRawData (char * data, int sz=0)  ;
  450. public:  int ToString (char * dest, int size, char * fmt = 0)  ;
  451. public:  int ToString (TC_CString & s, char * fmt=0)  ;
  452. public:  int ToNative (void * dest)  ;
  453. public:  int ToAnother (TC_CIDataType * dtype)  ;
  454. public:  int ToRawData (char * data, int sz=0)  ;
  455. public:  TC_CIDataType * Copy ()  ;
  456. public:  char * DefaultFmt ()  ;
  457. public:  int Compare (TC_CIDataType * dtype)  ;
  458. public:  BOOL IsNull ()  ;
  459. public:  void * Ptr ()  ;
  460. public:  BOOL IsFmtValid (const char * fmt)  ;
  461. public:  int RawSize ()  ;
  462.  
  463. }; // end of class TC_CIBinArray
  464.  
  465. // **********************************************************************
  466.  
  467. #endif // _INC_FRMIFACE_HPP
  468.