Hex Artifact Content Вы: nobody
Вход

Artifact 9d218855c4a4b69318378741949ffe81115e5bba:


0000: 2f 2f 76 61 6c 75 65 77 6f 72 6b 2e 68 70 70 0d  //valuework.hpp.
0010: 0a 23 70 72 61 67 6d 61 20 6f 6e 63 65 0d 0a 0d  .#pragma once...
0020: 0a 65 6e 75 6d 20 54 79 70 65 73 31 43 7b 0d 0a  .enum Types1C{..
0030: 09 74 79 70 65 55 6e 64 65 66 69 6e 65 64 20 20  .typeUndefined  
0040: 20 20 20 20 20 3d 20 30 2c 0d 0a 09 74 79 70 65       = 0,...type
0050: 4e 75 6d 62 65 72 20 20 20 20 20 20 20 20 20 20  Number          
0060: 3d 20 31 2c 0d 0a 09 74 79 70 65 53 74 72 69 6e  = 1,...typeStrin
0070: 67 20 20 20 20 20 20 20 20 20 20 3d 20 32 2c 0d  g          = 2,.
0080: 0a 09 74 79 70 65 44 61 74 65 20 20 20 20 20 20  ..typeDate      
0090: 20 20 20 20 20 20 3d 20 33 2c 0d 0a 09 74 79 70        = 3,...typ
00a0: 65 45 6e 75 6d 20 20 20 20 20 20 20 20 20 20 20  eEnum           
00b0: 20 3d 20 31 30 2c 0d 0a 09 74 79 70 65 52 65 66   = 10,...typeRef
00c0: 65 72 65 6e 63 65 20 20 20 20 20 20 20 3d 20 31  erence       = 1
00d0: 31 2c 0d 0a 09 74 79 70 65 44 6f 63 75 6d 65 6e  1,...typeDocumen
00e0: 74 20 20 20 20 20 20 20 20 3d 20 31 32 2c 0d 0a  t        = 12,..
00f0: 09 74 79 70 65 43 61 6c 65 6e 64 61 72 20 20 20  .typeCalendar   
0100: 20 20 20 20 20 3d 20 31 33 2c 0d 0a 09 74 79 70       = 13,...typ
0110: 65 43 61 6c 63 4b 69 6e 64 20 20 20 20 20 20 20  eCalcKind       
0120: 20 3d 20 31 34 2c 0d 0a 09 74 79 70 65 41 63 63   = 14,...typeAcc
0130: 6f 75 6e 74 20 20 20 20 20 20 20 20 20 3d 20 31  ount         = 1
0140: 35 2c 0d 0a 09 74 79 70 65 53 75 62 63 4b 69 6e  5,...typeSubcKin
0150: 64 20 20 20 20 20 20 20 20 3d 20 31 36 2c 0d 0a  d        = 16,..
0160: 09 74 79 70 65 43 68 61 72 74 4f 66 41 63 63 20  .typeChartOfAcc 
0170: 20 20 20 20 20 3d 20 31 37 2c 0d 0a 7d 3b 0d 0a       = 17,..};..
0180: 0d 0a 69 6e 6c 69 6e 65 20 73 74 61 74 69 63 20  ..inline static 
0190: 44 57 4f 52 44 20 73 74 72 32 69 64 28 63 6f 6e  DWORD str2id(con
01a0: 73 74 20 75 6e 73 69 67 6e 65 64 20 63 68 61 72  st unsigned char
01b0: 2a 20 70 74 72 2c 20 44 57 4f 52 44 20 6c 65 6e  * ptr, DWORD len
01c0: 29 0d 0a 7b 0d 0a 09 44 57 4f 52 44 20 69 64 20  )..{...DWORD id 
01d0: 3d 20 30 3b 0d 0a 09 77 68 69 6c 65 28 6c 65 6e  = 0;...while(len
01e0: 2d 2d 29 0d 0a 09 7b 0d 0a 09 09 44 57 4f 52 44  --)...{....DWORD
01f0: 20 73 20 3d 20 28 44 57 4f 52 44 29 2a 70 74 72   s = (DWORD)*ptr
0200: 2b 2b 3b 0d 0a 09 09 69 66 28 73 20 3e 3d 20 27  ++;....if(s >= '
0210: 41 27 29 0d 0a 09 09 09 69 64 20 3d 20 69 64 20  A').....id = id 
0220: 2a 20 33 36 20 2b 20 73 20 2d 20 27 41 27 20 2b  * 36 + s - 'A' +
0230: 20 31 30 3b 0d 0a 09 09 65 6c 73 65 20 69 66 28   10;....else if(
0240: 73 20 3e 3d 20 27 30 27 29 0d 0a 09 09 09 69 64  s >= '0').....id
0250: 20 3d 20 69 64 20 2a 20 33 36 20 2b 20 73 20 2d   = id * 36 + s -
0260: 20 27 30 27 3b 0d 0a 09 7d 0d 0a 09 72 65 74 75   '0';...}...retu
0270: 72 6e 20 69 64 3b 0d 0a 7d 0d 0a 0d 0a 69 6e 6c  rn id;..}....inl
0280: 69 6e 65 20 73 74 61 74 69 63 20 44 57 4f 52 44  ine static DWORD
0290: 20 73 74 72 32 64 65 63 28 63 6f 6e 73 74 20 75   str2dec(const u
02a0: 6e 73 69 67 6e 65 64 20 63 68 61 72 2a 20 70 74  nsigned char* pt
02b0: 72 2c 20 44 57 4f 52 44 20 6c 65 6e 29 0d 0a 7b  r, DWORD len)..{
02c0: 0d 0a 09 44 57 4f 52 44 20 69 64 20 3d 20 30 3b  ...DWORD id = 0;
02d0: 0d 0a 09 77 68 69 6c 65 28 6c 65 6e 2d 2d 29 0d  ...while(len--).
02e0: 0a 09 7b 0d 0a 09 09 44 57 4f 52 44 20 73 20 3d  ..{....DWORD s =
02f0: 20 28 44 57 4f 52 44 29 2a 70 74 72 2b 2b 3b 0d   (DWORD)*ptr++;.
0300: 0a 09 09 69 66 28 73 20 3e 3d 20 27 30 27 29 0d  ...if(s >= '0').
0310: 0a 09 09 09 69 64 20 3d 20 69 64 20 2a 20 31 30  ....id = id * 10
0320: 20 2b 20 73 20 2d 20 27 30 27 3b 0d 0a 09 7d 0d   + s - '0';...}.
0330: 0a 09 72 65 74 75 72 6e 20 69 64 3b 0d 0a 7d 0d  ..return id;..}.
0340: 0a 0d 0a 69 6e 6c 69 6e 65 20 73 74 61 74 69 63  ...inline static
0350: 20 76 6f 69 64 20 64 65 63 32 73 74 72 28 44 57   void dec2str(DW
0360: 4f 52 44 20 64 65 63 2c 20 75 6e 73 69 67 6e 65  ORD dec, unsigne
0370: 64 20 63 68 61 72 2a 20 70 74 72 2c 20 44 57 4f  d char* ptr, DWO
0380: 52 44 20 6c 65 6e 29 0d 0a 7b 0d 0a 09 70 74 72  RD len)..{...ptr
0390: 20 2b 3d 20 6c 65 6e 3b 0d 0a 09 64 6f 20 0d 0a   += len;...do ..
03a0: 09 7b 0d 0a 09 09 2a 2d 2d 70 74 72 20 3d 20 28  .{....*--ptr = (
03b0: 64 65 63 20 25 20 31 30 29 20 2b 20 27 30 27 3b  dec % 10) + '0';
03c0: 0d 0a 09 09 64 65 63 20 2f 3d 20 31 30 3b 0d 0a  ....dec /= 10;..
03d0: 09 7d 77 68 69 6c 65 28 64 65 63 29 3b 0d 0a 7d  .}while(dec);..}
03e0: 0d 0a 0d 0a 69 6e 6c 69 6e 65 20 73 74 61 74 69  ....inline stati
03f0: 63 20 76 6f 69 64 20 69 64 32 73 74 72 28 44 57  c void id2str(DW
0400: 4f 52 44 20 69 64 2c 20 75 6e 73 69 67 6e 65 64  ORD id, unsigned
0410: 20 63 68 61 72 2a 20 70 74 72 2c 20 44 57 4f 52   char* ptr, DWOR
0420: 44 20 6c 65 6e 29 0d 0a 7b 0d 0a 09 70 74 72 20  D len)..{...ptr 
0430: 2b 3d 20 6c 65 6e 3b 0d 0a 09 64 6f 20 0d 0a 09  += len;...do ...
0440: 7b 0d 0a 09 09 44 57 4f 52 44 20 76 20 3d 20 69  {....DWORD v = i
0450: 64 20 25 20 33 36 3b 0d 0a 09 09 2a 2d 2d 70 74  d % 36;....*--pt
0460: 72 20 3d 20 76 20 3c 20 31 30 20 3f 20 76 20 2b  r = v < 10 ? v +
0470: 20 27 30 27 20 3a 20 76 20 2d 20 31 30 20 2b 20   '0' : v - 10 + 
0480: 27 41 27 3b 0d 0a 09 09 69 64 20 2f 3d 20 33 36  'A';....id /= 36
0490: 3b 0d 0a 09 7d 77 68 69 6c 65 28 69 64 29 3b 0d  ;...}while(id);.
04a0: 0a 7d 0d 0a 0d 0a 0d 0a 65 6e 75 6d 20 54 79 70  .}......enum Typ
04b0: 65 4f 66 53 74 72 69 6e 67 20 7b 0d 0a 09 74 6f  eOfString {...to
04c0: 73 39 20 3d 20 39 2c 0d 0a 09 74 6f 73 31 33 20  s9 = 9,...tos13 
04d0: 3d 20 31 33 2c 0d 0a 09 74 6f 73 32 33 20 3d 20  = 13,...tos23 = 
04e0: 32 33 0d 0a 7d 3b 0d 0a 0d 0a 74 65 6d 70 6c 61  23..};....templa
04f0: 74 65 3c 54 79 70 65 4f 66 53 74 72 69 6e 67 20  te<TypeOfString 
0500: 74 6f 73 3e 0d 0a 73 74 72 75 63 74 20 56 61 6c  tos>..struct Val
0510: 75 65 53 74 72 57 6f 72 6b 0d 0a 7b 0d 0a 09 69  ueStrWork..{...i
0520: 6e 6c 69 6e 65 20 73 74 61 74 69 63 20 76 6f 69  nline static voi
0530: 64 20 73 74 72 32 76 61 6c 28 43 56 61 6c 75 65  d str2val(CValue
0540: 2a 20 70 56 61 6c 75 65 2c 20 4c 50 43 53 54 52  * pValue, LPCSTR
0550: 20 73 74 72 2c 20 54 79 70 65 73 31 43 20 74 79   str, Types1C ty
0560: 70 65 20 3d 20 74 79 70 65 55 6e 64 65 66 69 6e  pe = typeUndefin
0570: 65 64 2c 20 6c 6f 6e 67 20 6d 64 49 44 20 3d 20  ed, long mdID = 
0580: 30 29 0d 0a 09 7b 0d 0a 09 09 63 68 61 72 20 74  0)...{....char t
0590: 65 73 74 5b 74 6f 73 20 3d 3d 20 74 6f 73 39 20  est[tos == tos9 
05a0: 7c 7c 20 74 6f 73 20 3d 3d 20 74 6f 73 31 33 20  || tos == tos13 
05b0: 7c 7c 20 74 6f 73 20 3d 3d 20 74 6f 73 32 33 20  || tos == tos23 
05c0: 3f 20 31 20 3a 20 2d 31 5d 20 3d 20 7b 30 7d 3b  ? 1 : -1] = {0};
05d0: 0d 0a 0d 0a 09 09 75 6e 73 69 67 6e 65 64 20 63  ......unsigned c
05e0: 68 61 72 2a 20 70 74 72 20 3d 20 28 75 6e 73 69  har* ptr = (unsi
05f0: 67 6e 65 64 20 63 68 61 72 2a 29 73 74 72 3b 0d  gned char*)str;.
0600: 0a 09 09 0d 0a 09 09 69 66 28 74 6f 73 20 3d 3d  .......if(tos ==
0610: 20 74 6f 73 32 33 29 0d 0a 09 09 7b 0d 0a 09 09   tos23)....{....
0620: 09 73 77 69 74 63 68 28 28 44 57 4f 52 44 29 2a  .switch((DWORD)*
0630: 70 74 72 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 63  ptr).....{.....c
0640: 61 73 65 20 27 55 27 3a 0d 0a 09 09 09 09 72 65  ase 'U':......re
0650: 74 75 72 6e 3b 0d 0a 09 09 09 63 61 73 65 20 27  turn;.....case '
0660: 4e 27 3a 0d 0a 09 09 09 09 7b 0d 0a 09 09 09 09  N':......{......
0670: 09 73 74 61 74 69 63 20 43 4e 75 6d 65 72 69 63  .static CNumeric
0680: 20 6e 75 6d 3b 0d 0a 09 09 09 09 09 2a 70 56 61   num;.......*pVa
0690: 6c 75 65 20 3d 20 6e 75 6d 2e 46 72 6f 6d 53 74  lue = num.FromSt
06a0: 72 69 6e 67 28 73 74 72 20 2b 20 31 2c 20 4e 55  ring(str + 1, NU
06b0: 4c 4c 29 3b 0d 0a 09 09 09 09 7d 0d 0a 09 09 09  LL);......}.....
06c0: 09 72 65 74 75 72 6e 3b 0d 0a 09 09 09 63 61 73  .return;.....cas
06d0: 65 20 27 53 27 3a 0d 0a 09 09 09 09 2a 70 56 61  e 'S':......*pVa
06e0: 6c 75 65 20 3d 20 73 74 72 20 2b 20 31 3b 0d 0a  lue = str + 1;..
06f0: 09 09 09 09 72 65 74 75 72 6e 3b 0d 0a 09 09 09  ....return;.....
0700: 63 61 73 65 20 27 44 27 3a 0d 0a 09 09 09 09 2a  case 'D':......*
0710: 70 56 61 6c 75 65 20 3d 20 43 44 61 74 65 28 73  pValue = CDate(s
0720: 74 72 32 64 65 63 28 70 74 72 20 2b 20 31 2c 20  tr2dec(ptr + 1, 
0730: 34 29 2c 20 73 74 72 32 64 65 63 28 70 74 72 20  4), str2dec(ptr 
0740: 2b 20 35 2c 20 32 29 2c 20 73 74 72 32 64 65 63  + 5, 2), str2dec
0750: 28 70 74 72 20 2b 20 37 2c 20 32 29 29 3b 0d 0a  (ptr + 7, 2));..
0760: 09 09 09 09 72 65 74 75 72 6e 3b 0d 0a 09 09 09  ....return;.....
0770: 63 61 73 65 20 27 45 27 3a 0d 0a 09 09 09 09 74  case 'E':......t
0780: 79 70 65 20 3d 20 74 79 70 65 45 6e 75 6d 3b 0d  ype = typeEnum;.
0790: 0a 09 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09  .....break;.....
07a0: 63 61 73 65 20 27 42 27 3a 0d 0a 09 09 09 09 74  case 'B':......t
07b0: 79 70 65 20 3d 20 74 79 70 65 52 65 66 65 72 65  ype = typeRefere
07c0: 6e 63 65 3b 0d 0a 09 09 09 09 62 72 65 61 6b 3b  nce;......break;
07d0: 0d 0a 09 09 09 63 61 73 65 20 27 4f 27 3a 0d 0a  .....case 'O':..
07e0: 09 09 09 09 74 79 70 65 20 3d 20 74 79 70 65 44  ....type = typeD
07f0: 6f 63 75 6d 65 6e 74 3b 0d 0a 09 09 09 09 62 72  ocument;......br
0800: 65 61 6b 3b 0d 0a 09 09 09 63 61 73 65 20 27 43  eak;.....case 'C
0810: 27 3a 0d 0a 09 09 09 09 74 79 70 65 20 3d 20 74  ':......type = t
0820: 79 70 65 43 61 6c 65 6e 64 61 72 3b 0d 0a 09 09  ypeCalendar;....
0830: 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09 63 61 73  ..break;.....cas
0840: 65 20 27 41 27 3a 0d 0a 09 09 09 09 74 79 70 65  e 'A':......type
0850: 20 3d 20 74 79 70 65 43 61 6c 63 4b 69 6e 64 3b   = typeCalcKind;
0860: 0d 0a 09 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09  ......break;....
0870: 09 63 61 73 65 20 27 54 27 3a 0d 0a 09 09 09 09  .case 'T':......
0880: 74 79 70 65 20 3d 20 74 79 70 65 41 63 63 6f 75  type = typeAccou
0890: 6e 74 3b 0d 0a 09 09 09 09 62 72 65 61 6b 3b 0d  nt;......break;.
08a0: 0a 09 09 09 63 61 73 65 20 27 4b 27 3a 0d 0a 09  ....case 'K':...
08b0: 09 09 09 74 79 70 65 20 3d 20 74 79 70 65 53 75  ...type = typeSu
08c0: 62 63 4b 69 6e 64 3b 0d 0a 09 09 09 09 62 72 65  bcKind;......bre
08d0: 61 6b 3b 0d 0a 09 09 09 63 61 73 65 20 27 50 27  ak;.....case 'P'
08e0: 3a 0d 0a 09 09 09 09 74 79 70 65 20 3d 20 74 79  :......type = ty
08f0: 70 65 43 68 61 72 74 4f 66 41 63 63 3b 0d 0a 09  peChartOfAcc;...
0900: 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09 64 65  ...break;.....de
0910: 66 61 75 6c 74 3a 0d 0a 09 09 09 09 72 65 74 75  fault:......retu
0920: 72 6e 3b 0d 0a 09 09 09 7d 0d 0a 09 09 09 70 74  rn;.....}.....pt
0930: 72 2b 2b 3b 0d 0a 09 09 09 70 74 72 2b 2b 3b 0d  r++;.....ptr++;.
0940: 0a 09 09 7d 0d 0a 09 09 70 56 61 6c 75 65 2d 3e  ...}....pValue->
0950: 74 79 70 65 20 3d 20 74 79 70 65 3b 0d 0a 09 09  type = type;....
0960: 70 56 61 6c 75 65 2d 3e 6d 5f 6d 64 69 64 20 3d  pValue->m_mdid =
0970: 20 6d 64 49 44 3b 0d 0a 09 09 0d 0a 09 09 69 66   mdID;........if
0980: 28 74 6f 73 20 3d 3d 20 74 6f 73 31 33 20 7c 7c  (tos == tos13 ||
0990: 20 74 6f 73 20 3d 3d 20 74 6f 73 32 33 29 0d 0a   tos == tos23)..
09a0: 09 09 7b 0d 0a 09 09 09 69 66 28 74 79 70 65 43  ..{.....if(typeC
09b0: 61 6c 65 6e 64 61 72 20 3d 3d 20 74 79 70 65 20  alendar == type 
09c0: 7c 7c 20 74 79 70 65 43 61 6c 63 4b 69 6e 64 20  || typeCalcKind 
09d0: 3d 3d 20 74 79 70 65 29 0d 0a 09 09 09 09 6d 64  == type)......md
09e0: 49 44 20 3d 20 30 3b 0d 0a 09 09 09 65 6c 73 65  ID = 0;.....else
09f0: 0d 0a 09 09 09 09 6d 64 49 44 20 3d 20 73 74 72  ......mdID = str
0a00: 32 69 64 28 70 74 72 2c 20 34 29 3b 0d 0a 09 09  2id(ptr, 4);....
0a10: 09 70 74 72 20 2b 3d 20 34 3b 0d 0a 09 09 7d 0d  .ptr += 4;....}.
0a20: 0a 09 09 70 56 61 6c 75 65 2d 3e 56 61 6c 54 79  ...pValue->ValTy
0a30: 70 65 49 44 20 3d 20 6d 64 49 44 3b 0d 0a 09 09  peID = mdID;....
0a40: 70 56 61 6c 75 65 2d 3e 6d 5f 4f 62 6a 49 44 2e  pValue->m_ObjID.
0a50: 4f 62 6a 49 44 20 3d 20 73 74 72 32 69 64 28 70  ObjID = str2id(p
0a60: 74 72 2c 20 36 29 3b 0d 0a 09 09 2a 28 44 57 4f  tr, 6);....*(DWO
0a70: 52 44 2a 29 70 56 61 6c 75 65 2d 3e 6d 5f 4f 62  RD*)pValue->m_Ob
0a80: 6a 49 44 2e 44 42 53 69 67 6e 2e 53 69 67 6e 20  jID.DBSign.Sign 
0a90: 3d 20 28 2a 28 44 57 4f 52 44 2a 29 28 70 74 72  = (*(DWORD*)(ptr
0aa0: 20 2b 20 36 29 29 20 26 20 30 78 46 46 46 46 46   + 6)) & 0xFFFFF
0ab0: 46 3b 0d 0a 09 7d 0d 0a 09 0d 0a 09 69 6e 6c 69  F;...}......inli
0ac0: 6e 65 20 73 74 61 74 69 63 20 76 6f 69 64 20 76  ne static void v
0ad0: 61 6c 32 73 74 72 28 63 6f 6e 73 74 20 43 56 61  al2str(const CVa
0ae0: 6c 75 65 26 20 76 61 6c 2c 20 43 53 74 72 69 6e  lue& val, CStrin
0af0: 67 26 20 72 65 73 29 0d 0a 09 7b 0d 0a 09 09 63  g& res)...{....c
0b00: 68 61 72 20 74 65 73 74 5b 74 6f 73 20 3d 3d 20  har test[tos == 
0b10: 74 6f 73 39 20 7c 7c 20 74 6f 73 20 3d 3d 20 74  tos9 || tos == t
0b20: 6f 73 31 33 20 7c 7c 20 74 6f 73 20 3d 3d 20 74  os13 || tos == t
0b30: 6f 73 32 33 20 3f 20 31 20 3a 20 2d 31 5d 20 3d  os23 ? 1 : -1] =
0b40: 20 7b 30 7d 3b 0d 0a 0d 0a 09 09 75 6e 73 69 67   {0};......unsig
0b50: 6e 65 64 20 63 68 61 72 2a 20 70 74 72 20 3d 20  ned char* ptr = 
0b60: 28 75 6e 73 69 67 6e 65 64 20 63 68 61 72 2a 29  (unsigned char*)
0b70: 72 65 73 2e 47 65 74 42 75 66 66 65 72 53 65 74  res.GetBufferSet
0b80: 4c 65 6e 67 74 68 28 74 6f 73 29 3b 0d 0a 09 09  Length(tos);....
0b90: 69 66 28 74 6f 73 20 3d 3d 20 74 6f 73 32 33 29  if(tos == tos23)
0ba0: 0d 0a 09 09 7b 0d 0a 09 09 09 2f 2f 20 c7 e0 ef  ....{.....// ...
0bb0: ee eb ed e8 ec 20 f1 f2 f0 ee ea f3 20 ef f0 ee  ..... ...... ...
0bc0: e1 e5 eb e0 ec e8 0d 0a 09 09 09 2a 28 44 57 4f  ...........*(DWO
0bd0: 52 44 2a 29 28 70 74 72 20 2b 20 30 29 20 3d 20  RD*)(ptr + 0) = 
0be0: 30 78 32 30 32 30 32 30 32 30 3b 0d 0a 09 09 09  0x20202020;.....
0bf0: 2a 28 44 57 4f 52 44 2a 29 28 70 74 72 20 2b 20  *(DWORD*)(ptr + 
0c00: 34 29 20 3d 20 30 78 32 30 32 30 32 30 32 30 3b  4) = 0x20202020;
0c10: 0d 0a 09 09 09 2a 28 44 57 4f 52 44 2a 29 28 70  .....*(DWORD*)(p
0c20: 74 72 20 2b 20 38 29 20 3d 20 30 78 32 30 32 30  tr + 8) = 0x2020
0c30: 32 30 32 30 3b 0d 0a 09 09 09 2a 28 44 57 4f 52  2020;.....*(DWOR
0c40: 44 2a 29 28 70 74 72 20 2b 20 31 32 29 20 3d 20  D*)(ptr + 12) = 
0c50: 30 78 32 30 32 30 32 30 32 30 3b 0d 0a 09 09 09  0x20202020;.....
0c60: 2a 28 44 57 4f 52 44 2a 29 28 70 74 72 20 2b 20  *(DWORD*)(ptr + 
0c70: 31 36 29 20 3d 20 30 78 32 30 32 30 32 30 32 30  16) = 0x20202020
0c80: 3b 0d 0a 09 09 09 2a 28 44 57 4f 52 44 2a 29 28  ;.....*(DWORD*)(
0c90: 70 74 72 20 2b 20 32 30 29 20 3d 20 30 78 30 30  ptr + 20) = 0x00
0ca0: 32 30 32 30 32 30 3b 0d 0a 09 09 09 73 77 69 74  202020;.....swit
0cb0: 63 68 28 76 61 6c 2e 74 79 70 65 29 0d 0a 09 09  ch(val.type)....
0cc0: 09 7b 0d 0a 09 09 09 63 61 73 65 20 74 79 70 65  .{.....case type
0cd0: 55 6e 64 65 66 69 6e 65 64 3a 0d 0a 09 09 09 09  Undefined:......
0ce0: 2a 70 74 72 20 3d 20 27 55 27 3b 0d 0a 09 09 09  *ptr = 'U';.....
0cf0: 09 72 65 74 75 72 6e 3b 0d 0a 09 09 09 63 61 73  .return;.....cas
0d00: 65 20 74 79 70 65 4e 75 6d 62 65 72 3a 0d 0a 09  e typeNumber:...
0d10: 09 09 09 2a 70 74 72 2b 2b 20 3d 20 27 4e 27 3b  ...*ptr++ = 'N';
0d20: 0d 0a 09 09 09 09 7b 0d 0a 09 09 09 09 09 43 53  ......{.......CS
0d30: 74 72 69 6e 67 20 73 74 72 20 3d 20 76 61 6c 2e  tring str = val.
0d40: 47 65 74 53 74 72 69 6e 67 28 29 3b 0d 0a 09 09  GetString();....
0d50: 09 09 09 69 6e 74 20 6c 20 3d 20 73 74 72 2e 47  ...int l = str.G
0d60: 65 74 4c 65 6e 67 74 68 28 29 3b 0d 0a 09 09 09  etLength();.....
0d70: 09 09 69 66 28 6c 20 3c 3d 20 32 32 29 0d 0a 09  ..if(l <= 22)...
0d80: 09 09 09 09 09 6d 65 6d 63 70 79 28 70 74 72 2c  .....memcpy(ptr,
0d90: 20 28 4c 50 43 53 54 52 29 73 74 72 2c 20 6c 29   (LPCSTR)str, l)
0da0: 3b 0d 0a 09 09 09 09 7d 0d 0a 09 09 09 09 72 65  ;......}......re
0db0: 74 75 72 6e 3b 0d 0a 09 09 09 63 61 73 65 20 74  turn;.....case t
0dc0: 79 70 65 53 74 72 69 6e 67 3a 0d 0a 09 09 09 09  ypeString:......
0dd0: 2a 70 74 72 2b 2b 20 3d 20 27 53 27 3b 0d 0a 09  *ptr++ = 'S';...
0de0: 09 09 09 7b 0d 0a 09 09 09 09 09 69 6e 74 20 6c  ...{.......int l
0df0: 20 3d 20 76 61 6c 2e 6d 5f 53 74 72 69 6e 67 2e   = val.m_String.
0e00: 47 65 74 4c 65 6e 67 74 68 28 29 3b 0d 0a 09 09  GetLength();....
0e10: 09 09 09 6d 65 6d 63 70 79 28 70 74 72 2c 20 28  ...memcpy(ptr, (
0e20: 4c 50 43 53 54 52 29 76 61 6c 2e 6d 5f 53 74 72  LPCSTR)val.m_Str
0e30: 69 6e 67 2c 20 6c 20 3c 20 32 32 20 3f 20 6c 20  ing, l < 22 ? l 
0e40: 3a 20 32 32 29 3b 0d 0a 09 09 09 09 7d 0d 0a 09  : 22);......}...
0e50: 09 09 09 72 65 74 75 72 6e 3b 0d 0a 09 09 09 63  ...return;.....c
0e60: 61 73 65 20 74 79 70 65 44 61 74 65 3a 0d 0a 09  ase typeDate:...
0e70: 09 09 09 2a 70 74 72 2b 2b 20 3d 20 27 44 27 3b  ...*ptr++ = 'D';
0e80: 0d 0a 09 09 09 09 2a 28 44 57 4f 52 44 2a 29 28  ......*(DWORD*)(
0e90: 70 74 72 20 2b 20 34 29 20 3d 20 27 30 30 30 30  ptr + 4) = '0000
0ea0: 27 3b 0d 0a 09 09 09 09 64 65 63 32 73 74 72 28  ';......dec2str(
0eb0: 76 61 6c 2e 6d 5f 44 61 74 65 2e 47 65 74 59 65  val.m_Date.GetYe
0ec0: 61 72 28 29 2c 20 70 74 72 2c 20 34 29 3b 0d 0a  ar(), ptr, 4);..
0ed0: 09 09 09 09 64 65 63 32 73 74 72 28 76 61 6c 2e  ....dec2str(val.
0ee0: 6d 5f 44 61 74 65 2e 47 65 74 4d 6f 6e 74 68 28  m_Date.GetMonth(
0ef0: 29 2c 20 70 74 72 20 2b 20 34 2c 20 32 29 3b 0d  ), ptr + 4, 2);.
0f00: 0a 09 09 09 09 64 65 63 32 73 74 72 28 76 61 6c  .....dec2str(val
0f10: 2e 6d 5f 44 61 74 65 2e 47 65 74 4d 6f 6e 74 68  .m_Date.GetMonth
0f20: 44 61 79 28 29 2c 20 70 74 72 20 2b 20 36 2c 20  Day(), ptr + 6, 
0f30: 32 29 3b 0d 0a 09 09 09 09 72 65 74 75 72 6e 3b  2);......return;
0f40: 0d 0a 09 09 09 63 61 73 65 20 74 79 70 65 45 6e  .....case typeEn
0f50: 75 6d 3a 0d 0a 09 09 09 09 2a 70 74 72 2b 2b 20  um:......*ptr++ 
0f60: 3d 20 27 45 27 3b 0d 0a 09 09 09 09 62 72 65 61  = 'E';......brea
0f70: 6b 3b 0d 0a 09 09 09 63 61 73 65 20 74 79 70 65  k;.....case type
0f80: 52 65 66 65 72 65 6e 63 65 3a 0d 0a 09 09 09 09  Reference:......
0f90: 2a 70 74 72 2b 2b 20 3d 20 27 42 27 3b 0d 0a 09  *ptr++ = 'B';...
0fa0: 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09 63 61  ...break;.....ca
0fb0: 73 65 20 74 79 70 65 44 6f 63 75 6d 65 6e 74 3a  se typeDocument:
0fc0: 0d 0a 09 09 09 09 2a 70 74 72 2b 2b 20 3d 20 27  ......*ptr++ = '
0fd0: 4f 27 3b 0d 0a 09 09 09 09 62 72 65 61 6b 3b 0d  O';......break;.
0fe0: 0a 09 09 09 63 61 73 65 20 74 79 70 65 43 61 6c  ....case typeCal
0ff0: 65 6e 64 61 72 3a 0d 0a 09 09 09 09 2a 70 74 72  endar:......*ptr
1000: 2b 2b 20 3d 20 27 43 27 3b 0d 0a 09 09 09 09 62  ++ = 'C';......b
1010: 72 65 61 6b 3b 0d 0a 09 09 09 63 61 73 65 20 74  reak;.....case t
1020: 79 70 65 43 61 6c 63 4b 69 6e 64 3a 0d 0a 09 09  ypeCalcKind:....
1030: 09 09 2a 70 74 72 2b 2b 20 3d 20 27 41 27 3b 0d  ..*ptr++ = 'A';.
1040: 0a 09 09 09 09 62 72 65 61 6b 3b 0d 0a 09 09 09  .....break;.....
1050: 63 61 73 65 20 74 79 70 65 41 63 63 6f 75 6e 74  case typeAccount
1060: 3a 0d 0a 09 09 09 09 2a 70 74 72 2b 2b 20 3d 20  :......*ptr++ = 
1070: 27 54 27 3b 0d 0a 09 09 09 09 62 72 65 61 6b 3b  'T';......break;
1080: 0d 0a 09 09 09 63 61 73 65 20 74 79 70 65 53 75  .....case typeSu
1090: 62 63 4b 69 6e 64 3a 0d 0a 09 09 09 09 2a 70 74  bcKind:......*pt
10a0: 72 2b 2b 20 3d 20 27 4b 27 3b 0d 0a 09 09 09 09  r++ = 'K';......
10b0: 62 72 65 61 6b 3b 0d 0a 09 09 09 63 61 73 65 20  break;.....case 
10c0: 74 79 70 65 43 68 61 72 74 4f 66 41 63 63 3a 0d  typeChartOfAcc:.
10d0: 0a 09 09 09 09 2a 70 74 72 2b 2b 20 3d 20 27 50  .....*ptr++ = 'P
10e0: 27 3b 0d 0a 09 09 09 09 62 72 65 61 6b 3b 0d 0a  ';......break;..
10f0: 09 09 09 7d 0d 0a 09 09 09 2a 70 74 72 2b 2b 20  ...}.....*ptr++ 
1100: 3d 20 27 31 27 3b 0d 0a 09 09 7d 0d 0a 09 09 2f  = '1';....}..../
1110: 2f 20 cf f0 ee f1 f2 fb f5 20 f2 e8 ef ee e2 20  / ....... ..... 
1120: e7 e4 e5 f1 fc 20 e1 fb f2 fc 20 ed e5 20 e4 ee  ..... .... .. ..
1130: eb e6 ed ee 21 21 21 0d 0a 09 09 69 66 28 76 61  ....!!!....if(va
1140: 6c 2e 74 79 70 65 20 3c 3d 20 74 79 70 65 44 61  l.type <= typeDa
1150: 74 65 29 0d 0a 09 09 7b 0d 0a 09 09 09 6d 65 6d  te)....{.....mem
1160: 73 65 74 28 70 74 72 2c 20 27 20 27 2c 20 74 6f  set(ptr, ' ', to
1170: 73 29 3b 0d 0a 09 09 09 72 65 74 75 72 6e 3b 0d  s);.....return;.
1180: 0a 09 09 7d 0d 0a 09 09 0d 0a 09 09 69 66 28 74  ...}........if(t
1190: 6f 73 20 3d 3d 20 74 6f 73 31 33 20 7c 7c 20 74  os == tos13 || t
11a0: 6f 73 20 3d 3d 20 74 6f 73 32 33 29 0d 0a 09 09  os == tos23)....
11b0: 7b 0d 0a 09 09 09 2f 2f 20 d3 ea e0 e6 e5 ec 20  {.....// ...... 
11c0: ec e5 f2 e0 e8 e4 0d 0a 09 09 09 69 66 28 74 79  ...........if(ty
11d0: 70 65 43 61 6c 65 6e 64 61 72 20 3d 3d 20 76 61  peCalendar == va
11e0: 6c 2e 74 79 70 65 20 7c 7c 20 74 79 70 65 43 61  l.type || typeCa
11f0: 6c 63 4b 69 6e 64 20 3d 3d 20 76 61 6c 2e 74 79  lcKind == val.ty
1200: 70 65 29 0d 0a 09 09 09 09 2a 28 44 57 4f 52 44  pe)......*(DWORD
1210: 2a 29 70 74 72 20 3d 20 27 30 20 20 20 27 3b 0d  *)ptr = '0   ';.
1220: 0a 09 09 09 65 6c 73 65 0d 0a 09 09 09 7b 0d 0a  ....else.....{..
1230: 09 09 09 09 69 66 28 74 6f 73 20 3d 3d 20 74 6f  ....if(tos == to
1240: 73 31 33 29 09 2f 2f 20 cd e0 e4 ee 20 f3 ea e0  s13).// .... ...
1250: e7 e0 f2 fc 20 ec e5 f2 e0 e8 e4 2c 20 ed ee 20  .... ......, .. 
1260: f1 f2 f0 ee ea e0 20 ef f0 ee e1 e5 eb e0 ec e8  ...... .........
1270: 20 ed e5 20 e7 e0 ef ee eb ed ff eb e0 f1 fc 0d   .. ............
1280: 0a 09 09 09 09 09 2a 28 44 57 4f 52 44 2a 29 70  ......*(DWORD*)p
1290: 74 72 20 3d 20 30 78 32 30 32 30 32 30 32 30 3b  tr = 0x20202020;
12a0: 0d 0a 09 09 09 09 69 64 32 73 74 72 28 76 61 6c  ......id2str(val
12b0: 2e 6d 5f 6d 64 69 64 20 3f 20 76 61 6c 2e 6d 5f  .m_mdid ? val.m_
12c0: 6d 64 69 64 20 3a 20 76 61 6c 2e 56 61 6c 54 79  mdid : val.ValTy
12d0: 70 65 49 44 2c 20 70 74 72 2c 20 34 29 3b 0d 0a  peID, ptr, 4);..
12e0: 09 09 09 7d 0d 0a 09 09 09 70 74 72 20 2b 3d 20  ...}.....ptr += 
12f0: 34 3b 0d 0a 09 09 7d 0d 0a 09 09 0d 0a 09 09 69  4;....}........i
1300: 66 28 74 6f 73 20 21 3d 20 74 6f 73 32 33 29 09  f(tos != tos23).
1310: 2f 2f 20 cd e0 e4 ee 20 f3 ea e0 e7 e0 f2 fc 20  // .... ....... 
1320: ee e1 fa e5 ea f2 e8 e4 2c 20 ed ee 20 f1 f2 f0  ........, .. ...
1330: ee ea e0 20 ef f0 ee e1 e5 eb e0 ec e8 20 ed e5  ... ......... ..
1340: 20 e7 e0 ef ee eb ed ff eb e0 f1 fc 0d 0a 09 09   ...............
1350: 7b 0d 0a 09 09 09 2a 28 44 57 4f 52 44 2a 29 70  {.....*(DWORD*)p
1360: 74 72 20 3d 20 30 78 32 30 32 30 32 30 32 30 3b  tr = 0x20202020;
1370: 0d 0a 09 09 09 2a 28 57 4f 52 44 2a 29 28 70 74  .....*(WORD*)(pt
1380: 72 20 2b 20 34 29 20 3d 20 30 78 32 30 32 30 3b  r + 4) = 0x2020;
1390: 0d 0a 09 09 7d 0d 0a 09 09 2f 2f 20 d3 ea e0 e6  ....}....// ....
13a0: e5 ec 20 ee e1 fa e5 ea f2 e8 e4 20 e8 20 e4 e1  .. ........ . ..
13b0: e7 ed e0 ea 2e 0d 0a 09 09 69 64 32 73 74 72 28  .........id2str(
13c0: 76 61 6c 2e 6d 5f 4f 62 6a 49 44 2e 4f 62 6a 49  val.m_ObjID.ObjI
13d0: 44 2c 20 70 74 72 2c 20 36 29 3b 0d 0a 09 09 2a  D, ptr, 6);....*
13e0: 28 44 57 4f 52 44 2a 29 28 70 74 72 20 2b 20 36  (DWORD*)(ptr + 6
13f0: 29 20 3d 20 2a 28 44 57 4f 52 44 2a 29 76 61 6c  ) = *(DWORD*)val
1400: 2e 6d 5f 4f 62 6a 49 44 2e 44 42 53 69 67 6e 2e  .m_ObjID.DBSign.
1410: 53 69 67 6e 3b 0d 0a 0d 0a 09 09 2f 2f 20 cf f0  Sign;......// ..
1420: e8 20 f3 ea e0 e7 e0 ed e8 e8 20 e4 e1 e7 ed e0  . ........ .....
1430: ea e0 20 e2 20 e4 eb e8 ed ed ee e9 20 f1 f2 f0  .. . ....... ...
1440: ee ea e5 20 ef ee f1 eb e5 e4 ed e8 e9 20 ef f0  ... ......... ..
1450: ee e1 e5 eb 20 e7 e0 f2 f0 e5 f2 f1 ff 20 ed e0  .... ........ ..
1460: 20 30 0d 0a 09 09 69 66 28 74 6f 73 20 3d 3d 20   0....if(tos == 
1470: 32 33 29 0d 0a 09 09 09 70 74 72 5b 39 5d 20 3d  23).....ptr[9] =
1480: 20 27 20 27 3b 0d 0a 09 7d 0d 0a 7d 3b 0d 0a 0d   ' ';...}..};...
1490: 0a 74 65 6d 70 6c 61 74 65 3c 74 79 70 65 6e 61  .template<typena
14a0: 6d 65 20 54 3e 0d 0a 69 6e 6c 69 6e 65 20 73 74  me T>..inline st
14b0: 61 74 69 63 20 76 6f 69 64 20 62 69 6e 64 4e 75  atic void bindNu
14c0: 6d 65 72 69 63 28 54 26 20 62 69 6e 64 65 72 2c  meric(T& binder,
14d0: 20 63 6f 6e 73 74 20 43 56 61 6c 75 65 2a 20 70   const CValue* p
14e0: 56 61 6c 75 65 2c 20 69 6e 74 20 6d 6f 64 29 0d  Value, int mod).
14f0: 0a 7b 0d 0a 09 69 66 28 30 20 21 3d 20 6d 6f 64  .{...if(0 != mod
1500: 29 0d 0a 09 09 62 69 6e 64 65 72 2e 65 72 72 6f  )....binder.erro
1510: 72 28 22 cd e5 e8 e7 e2 e5 f1 f2 ed fb e9 20 ec  r("........... .
1520: ee e4 e8 f4 e8 ea e0 f2 ee f0 20 e4 eb ff 20 f2  .......... ... .
1530: e8 ef e0 20 5c 22 d7 e8 f1 eb ee 5c 22 22 29 3b  ... \".....\"");
1540: 0d 0a 09 62 69 6e 64 65 72 2e 62 69 6e 64 4e 75  ...binder.bindNu
1550: 6d 65 72 69 63 28 70 56 61 6c 75 65 29 3b 0d 0a  meric(pValue);..
1560: 7d 0d 0a 0d 0a 74 65 6d 70 6c 61 74 65 3c 74 79  }....template<ty
1570: 70 65 6e 61 6d 65 20 54 3e 0d 0a 69 6e 6c 69 6e  pename T>..inlin
1580: 65 20 73 74 61 74 69 63 20 76 6f 69 64 20 62 69  e static void bi
1590: 6e 64 53 74 72 69 6e 67 28 54 26 20 62 69 6e 64  ndString(T& bind
15a0: 65 72 2c 20 63 6f 6e 73 74 20 43 56 61 6c 75 65  er, const CValue
15b0: 2a 20 70 56 61 6c 75 65 2c 20 69 6e 74 20 6d 6f  * pValue, int mo
15c0: 64 29 0d 0a 7b 0d 0a 09 73 77 69 74 63 68 28 6d  d)..{...switch(m
15d0: 6f 64 29 0d 0a 09 7b 0d 0a 09 63 61 73 65 20 30  od)...{...case 0
15e0: 3a 09 09 2f 2f 20 d1 f2 f0 ee ea e0 20 ea e0 ea  :..// ...... ...
15f0: 20 e5 f1 f2 fc 0d 0a 09 09 62 69 6e 64 65 72 2e   ........binder.
1600: 62 69 6e 64 54 65 78 74 28 70 56 61 6c 75 65 2d  bindText(pValue-
1610: 3e 6d 5f 53 74 72 69 6e 67 29 3b 0d 0a 09 09 62  >m_String);....b
1620: 72 65 61 6b 3b 0d 0a 09 63 61 73 65 20 31 3a 09  reak;...case 1:.
1630: 09 2f 2f 20 cf ee e7 e8 f6 e8 ff 20 e4 ee ea f3  .// ....... ....
1640: ec e5 ed f2 e0 0d 0a 09 63 61 73 65 20 32 3a 09  ........case 2:.
1650: 09 2f 2f 20 cf ee e7 e8 f6 e8 ff 20 e4 ee ea f3  .// ....... ....
1660: ec e5 ed f2 e0 20 e4 eb ff 20 e2 e5 f0 f5 ed e5  ..... ... ......
1670: e9 20 e3 f0 e0 ed e8 f6 fb 20 ef ee 20 e8 ed e4  . ....... .. ...
1680: ea e5 f1 e0 ec 2c 20 ed e0 f7 e8 ed e0 fe f9 e8  ....., .........
1690: ec f1 ff 20 f1 20 44 41 54 45 2c 54 49 4d 45 2c  ... . DATE,TIME,
16a0: 49 44 44 4f 43 0d 0a 09 09 69 66 28 70 56 61 6c  IDDOC....if(pVal
16b0: 75 65 2d 3e 6d 5f 53 74 72 69 6e 67 2e 47 65 74  ue->m_String.Get
16c0: 4c 65 6e 67 74 68 28 29 20 3d 3d 20 33 32 29 0d  Length() == 32).
16d0: 0a 09 09 7b 0d 0a 09 09 09 43 53 74 72 69 6e 67  ...{.....CString
16e0: 20 74 65 78 74 3b 0d 0a 09 09 09 63 6f 6e 73 74   text;.....const
16f0: 20 42 59 54 45 2a 20 70 53 72 63 20 3d 20 28 63   BYTE* pSrc = (c
1700: 6f 6e 73 74 20 42 59 54 45 2a 29 28 4c 50 43 53  onst BYTE*)(LPCS
1710: 54 52 29 70 56 61 6c 75 65 2d 3e 6d 5f 53 74 72  TR)pValue->m_Str
1720: 69 6e 67 3b 0d 0a 09 09 09 42 59 54 45 2a 20 70  ing;.....BYTE* p
1730: 44 73 74 20 3d 20 28 42 59 54 45 2a 29 74 65 78  Dst = (BYTE*)tex
1740: 74 2e 47 65 74 42 75 66 66 65 72 53 65 74 4c 65  t.GetBufferSetLe
1750: 6e 67 74 68 28 32 20 3d 3d 20 6d 6f 64 20 3f 20  ngth(2 == mod ? 
1760: 32 34 20 3a 20 32 33 29 3b 0d 0a 09 09 09 2f 2f  24 : 23);.....//
1770: 6d 65 6d 63 70 79 28 70 44 73 74 2c 20 70 53 72  memcpy(pDst, pSr
1780: 63 20 2b 20 31 2c 20 38 29 3b 0d 0a 09 09 09 2a  c + 1, 8);.....*
1790: 28 44 57 4f 52 44 2a 29 28 70 44 73 74 20 2b 20  (DWORD*)(pDst + 
17a0: 20 30 29 20 3d 20 2a 28 44 57 4f 52 44 2a 29 28   0) = *(DWORD*)(
17b0: 70 53 72 63 20 2b 20 20 31 29 3b 0d 0a 09 09 09  pSrc +  1);.....
17c0: 2a 28 44 57 4f 52 44 2a 29 28 70 44 73 74 20 2b  *(DWORD*)(pDst +
17d0: 20 20 34 29 20 3d 20 2a 28 44 57 4f 52 44 2a 29    4) = *(DWORD*)
17e0: 28 70 53 72 63 20 2b 20 20 35 29 3b 0d 0a 09 09  (pSrc +  5);....
17f0: 09 2a 28 44 57 4f 52 44 2a 29 28 70 44 73 74 20  .*(DWORD*)(pDst 
1800: 2b 20 20 38 29 20 3d 20 27 20 20 20 20 27 3b 0d  +  8) = '    ';.
1810: 0a 09 09 09 2a 28 44 57 4f 52 44 2a 29 28 70 44  ....*(DWORD*)(pD
1820: 73 74 20 2b 20 31 32 29 20 3d 20 27 20 20 20 20  st + 12) = '    
1830: 27 3b 0d 0a 09 09 09 2a 28 44 57 4f 52 44 2a 29  ';.....*(DWORD*)
1840: 28 70 44 73 74 20 2b 20 31 36 29 20 3d 20 27 20  (pDst + 16) = ' 
1850: 20 20 20 27 3b 0d 0a 09 09 09 69 64 32 73 74 72     ';.....id2str
1860: 28 73 74 72 32 64 65 63 28 70 53 72 63 20 2b 20  (str2dec(pSrc + 
1870: 31 30 2c 20 39 29 2c 20 70 44 73 74 20 2b 20 38  10, 9), pDst + 8
1880: 2c 20 36 29 3b 0d 0a 09 09 09 69 64 32 73 74 72  , 6);.....id2str
1890: 28 73 74 72 32 64 65 63 28 70 53 72 63 20 2b 20  (str2dec(pSrc + 
18a0: 31 39 2c 20 31 30 29 2c 20 70 44 73 74 20 2b 20  19, 10), pDst + 
18b0: 31 34 2c 20 36 29 3b 0d 0a 09 09 09 2a 28 44 57  14, 6);.....*(DW
18c0: 4f 52 44 2a 29 28 70 44 73 74 20 2b 20 32 30 29  ORD*)(pDst + 20)
18d0: 20 3d 20 2a 28 44 57 4f 52 44 2a 29 28 70 53 72   = *(DWORD*)(pSr
18e0: 63 20 2b 20 32 39 29 3b 0d 0a 09 09 09 69 66 28  c + 29);.....if(
18f0: 32 20 3d 3d 20 6d 6f 64 29 0d 0a 09 09 09 09 70  2 == mod)......p
1900: 44 73 74 5b 32 33 5d 20 3d 20 27 df 27 3b 0d 0a  Dst[23] = '.';..
1910: 09 09 09 62 69 6e 64 65 72 2e 62 69 6e 64 54 65  ...binder.bindTe
1920: 78 74 28 74 65 78 74 29 3b 0d 0a 09 09 7d 0d 0a  xt(text);....}..
1930: 09 09 65 6c 73 65 0d 0a 09 09 09 62 69 6e 64 65  ..else.....binde
1940: 72 2e 65 72 72 6f 72 28 22 cf e5 f0 e5 e4 e0 ed  r.error(".......
1950: ed e0 ff 20 f1 f2 f0 ee ea e0 20 ed e5 20 ef ee  ... ...... .. ..
1960: e7 e8 f6 e8 ff 20 e4 ee ea f3 ec e5 ed f2 e0 22  ..... ........."
1970: 29 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 63  );....break;...c
1980: 61 73 65 20 33 3a 0d 0a 09 09 62 69 6e 64 65 72  ase 3:....binder
1990: 2e 62 69 6e 64 46 72 61 67 6d 65 6e 74 28 70 56  .bindFragment(pV
19a0: 61 6c 75 65 2d 3e 6d 5f 53 74 72 69 6e 67 29 3b  alue->m_String);
19b0: 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 64 65 66  ....break;...def
19c0: 61 75 6c 74 3a 0d 0a 09 09 62 69 6e 64 65 72 2e  ault:....binder.
19d0: 65 72 72 6f 72 28 22 cd e5 e8 e7 e2 e5 f1 f2 ed  error(".........
19e0: fb e9 20 ec ee e4 e8 f4 e8 ea e0 f2 ee f0 20 e4  .. ........... .
19f0: eb ff 20 f2 e8 ef e0 20 5c 22 d1 f2 f0 ee ea e0  .. .... \"......
1a00: 5c 22 22 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a  \"");...}..}....
1a10: 74 65 6d 70 6c 61 74 65 3c 74 79 70 65 6e 61 6d  template<typenam
1a20: 65 20 54 3e 0d 0a 69 6e 6c 69 6e 65 20 73 74 61  e T>..inline sta
1a30: 74 69 63 20 76 6f 69 64 20 62 69 6e 64 44 61 74  tic void bindDat
1a40: 65 28 54 26 20 62 69 6e 64 65 72 2c 20 63 6f 6e  e(T& binder, con
1a50: 73 74 20 43 56 61 6c 75 65 2a 20 70 56 61 6c 75  st CValue* pValu
1a60: 65 2c 20 69 6e 74 20 6d 6f 64 29 0d 0a 7b 0d 0a  e, int mod)..{..
1a70: 09 73 77 69 74 63 68 28 6d 6f 64 29 0d 0a 09 7b  .switch(mod)...{
1a80: 0d 0a 09 63 61 73 65 20 30 3a 09 09 2f 2f 20 c4  ...case 0:..// .
1a90: e0 f2 e0 20 ea e0 ea 20 e5 f1 f2 fc 0d 0a 09 63  ... ... .......c
1aa0: 61 73 65 20 31 3a 0d 0a 09 09 7b 0d 0a 09 09 09  ase 1:....{.....
1ab0: 43 53 74 72 69 6e 67 20 74 65 78 74 3b 0d 0a 09  CString text;...
1ac0: 09 09 42 59 54 45 2a 20 62 75 66 20 3d 20 28 42  ..BYTE* buf = (B
1ad0: 59 54 45 2a 29 74 65 78 74 2e 47 65 74 42 75 66  YTE*)text.GetBuf
1ae0: 66 65 72 53 65 74 4c 65 6e 67 74 68 28 6d 6f 64  ferSetLength(mod
1af0: 20 3f 20 39 20 3a 20 38 29 3b 0d 0a 09 09 09 44   ? 9 : 8);.....D
1b00: 57 4f 52 44 20 64 61 79 20 3d 20 70 56 61 6c 75  WORD day = pValu
1b10: 65 2d 3e 6d 5f 44 61 74 65 2e 47 65 74 4d 6f 6e  e->m_Date.GetMon
1b20: 74 68 44 61 79 28 29 3b 0d 0a 09 09 09 69 66 28  thDay();.....if(
1b30: 64 61 79 29 09 09 2f 2f 20 cd e5 ef f3 f1 f2 e0  day)..// .......
1b40: ff 20 e4 e0 f2 e0 0d 0a 09 09 09 7b 0d 0a 09 09  . .........{....
1b50: 09 09 64 65 63 32 73 74 72 28 70 56 61 6c 75 65  ..dec2str(pValue
1b60: 2d 3e 6d 5f 44 61 74 65 2e 47 65 74 59 65 61 72  ->m_Date.GetYear
1b70: 28 29 2c 20 62 75 66 2c 20 34 29 3b 0d 0a 09 09  (), buf, 4);....
1b80: 09 09 2a 28 44 57 4f 52 44 2a 29 28 62 75 66 20  ..*(DWORD*)(buf 
1b90: 2b 20 34 29 20 3d 20 27 30 30 30 30 27 3b 0d 0a  + 4) = '0000';..
1ba0: 09 09 09 09 64 65 63 32 73 74 72 28 70 56 61 6c  ....dec2str(pVal
1bb0: 75 65 2d 3e 6d 5f 44 61 74 65 2e 47 65 74 4d 6f  ue->m_Date.GetMo
1bc0: 6e 74 68 28 29 2c 20 62 75 66 20 2b 20 34 2c 20  nth(), buf + 4, 
1bd0: 32 29 3b 0d 0a 09 09 09 09 64 65 63 32 73 74 72  2);......dec2str
1be0: 28 64 61 79 2c 20 62 75 66 20 2b 20 36 2c 20 32  (day, buf + 6, 2
1bf0: 29 3b 0d 0a 09 09 09 7d 0d 0a 09 09 09 65 6c 73  );.....}.....els
1c00: 65 0d 0a 09 09 09 09 2a 28 75 6e 73 69 67 6e 65  e......*(unsigne
1c10: 64 20 5f 5f 69 6e 74 36 34 2a 29 62 75 66 20 3d  d __int64*)buf =
1c20: 20 30 78 32 30 32 30 32 30 32 30 32 30 32 30 32   0x2020202020202
1c30: 30 32 30 3b 0d 0a 09 09 09 69 66 28 6d 6f 64 29  020;.....if(mod)
1c40: 0d 0a 09 09 09 09 62 75 66 5b 38 5d 20 3d 20 27  ......buf[8] = '
1c50: df 27 3b 0d 0a 09 09 09 62 69 6e 64 65 72 2e 62  .';.....binder.b
1c60: 69 6e 64 54 65 78 74 28 74 65 78 74 29 3b 0d 0a  indText(text);..
1c70: 09 09 7d 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09  ..}....break;...
1c80: 64 65 66 61 75 6c 74 3a 0d 0a 09 09 62 69 6e 64  default:....bind
1c90: 65 72 2e 65 72 72 6f 72 28 22 cd e5 e8 e7 e2 e5  er.error("......
1ca0: f1 f2 ed fb e9 20 ec ee e4 e8 f4 e8 ea e0 f2 ee  ..... ..........
1cb0: f0 20 e4 eb ff 20 f2 e8 ef e0 20 5c 22 c4 e0 f2  . ... .... \"...
1cc0: e0 5c 22 22 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d  .\"");...}..}...
1cd0: 0a 74 65 6d 70 6c 61 74 65 3c 74 79 70 65 6e 61  .template<typena
1ce0: 6d 65 20 54 3e 0d 0a 69 6e 6c 69 6e 65 20 73 74  me T>..inline st
1cf0: 61 74 69 63 20 76 6f 69 64 20 62 69 6e 64 4f 62  atic void bindOb
1d00: 6a 65 63 74 28 54 26 20 62 69 6e 64 65 72 2c 20  ject(T& binder, 
1d10: 63 6f 6e 73 74 20 43 56 61 6c 75 65 2a 20 70 56  const CValue* pV
1d20: 61 6c 75 65 2c 20 69 6e 74 20 6d 6f 64 29 0d 0a  alue, int mod)..
1d30: 7b 0d 0a 09 43 53 74 72 69 6e 67 20 74 65 78 74  {...CString text
1d40: 3b 0d 0a 09 73 77 69 74 63 68 28 6d 6f 64 29 0d  ;...switch(mod).
1d50: 0a 09 7b 0d 0a 09 63 61 73 65 20 30 3a 09 09 2f  ..{...case 0:../
1d60: 2f 20 d1 f2 f0 ee ea e0 20 39 0d 0a 09 09 56 61  / ...... 9....Va
1d70: 6c 75 65 53 74 72 57 6f 72 6b 3c 74 6f 73 39 3e  lueStrWork<tos9>
1d80: 3a 3a 76 61 6c 32 73 74 72 28 2a 70 56 61 6c 75  ::val2str(*pValu
1d90: 65 2c 20 74 65 78 74 29 3b 0d 0a 09 09 62 69 6e  e, text);....bin
1da0: 64 65 72 2e 62 69 6e 64 54 65 78 74 28 74 65 78  der.bindText(tex
1db0: 74 29 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09  t);....break;...
1dc0: 63 61 73 65 20 31 3a 09 09 2f 2f 20 d1 f2 f0 ee  case 1:..// ....
1dd0: ea e0 20 31 33 0d 0a 09 09 56 61 6c 75 65 53 74  .. 13....ValueSt
1de0: 72 57 6f 72 6b 3c 74 6f 73 31 33 3e 3a 3a 76 61  rWork<tos13>::va
1df0: 6c 32 73 74 72 28 2a 70 56 61 6c 75 65 2c 20 74  l2str(*pValue, t
1e00: 65 78 74 29 3b 0d 0a 09 09 62 69 6e 64 65 72 2e  ext);....binder.
1e10: 62 69 6e 64 54 65 78 74 28 74 65 78 74 29 3b 0d  bindText(text);.
1e20: 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 7d 0d 0a 7d  ...break;...}..}
1e30: 0d 0a 0d 0a 74 65 6d 70 6c 61 74 65 3c 74 79 70  ....template<typ
1e40: 65 6e 61 6d 65 20 54 3e 0d 0a 69 6e 6c 69 6e 65  ename T>..inline
1e50: 20 73 74 61 74 69 63 20 76 6f 69 64 20 62 69 6e   static void bin
1e60: 64 4b 69 6e 64 4f 66 4f 62 6a 65 63 74 28 54 26  dKindOfObject(T&
1e70: 20 62 69 6e 64 65 72 2c 20 63 6f 6e 73 74 20 43   binder, const C
1e80: 56 61 6c 75 65 2a 20 70 56 61 6c 75 65 29 0d 0a  Value* pValue)..
1e90: 7b 0d 0a 09 43 53 74 72 69 6e 67 20 74 65 78 74  {...CString text
1ea0: 3b 0d 0a 09 42 59 54 45 2a 20 70 74 72 20 3d 20  ;...BYTE* ptr = 
1eb0: 28 42 59 54 45 2a 29 74 65 78 74 2e 47 65 74 42  (BYTE*)text.GetB
1ec0: 75 66 66 65 72 53 65 74 4c 65 6e 67 74 68 28 34  ufferSetLength(4
1ed0: 29 3b 0d 0a 09 2a 28 44 57 4f 52 44 2a 29 70 74  );...*(DWORD*)pt
1ee0: 72 20 3d 20 27 20 20 20 20 27 3b 0d 0a 09 69 64  r = '    ';...id
1ef0: 32 73 74 72 28 70 56 61 6c 75 65 2d 3e 6d 5f 6d  2str(pValue->m_m
1f00: 64 69 64 20 3f 20 70 56 61 6c 75 65 2d 3e 6d 5f  did ? pValue->m_
1f10: 6d 64 69 64 20 3a 20 70 56 61 6c 75 65 2d 3e 56  mdid : pValue->V
1f20: 61 6c 54 79 70 65 49 44 2c 20 70 74 72 2c 20 34  alTypeID, ptr, 4
1f30: 29 3b 0d 0a 09 62 69 6e 64 65 72 2e 62 69 6e 64  );...binder.bind
1f40: 54 65 78 74 28 74 65 78 74 29 3b 0d 0a 7d 0d 0a  Text(text);..}..
1f50: 0d 0a 74 65 6d 70 6c 61 74 65 3c 74 79 70 65 6e  ..template<typen
1f60: 61 6d 65 20 54 3e 0d 0a 69 6e 6c 69 6e 65 20 73  ame T>..inline s
1f70: 74 61 74 69 63 20 76 6f 69 64 20 62 69 6e 64 45  tatic void bindE
1f80: 6e 75 6d 28 54 26 20 62 69 6e 64 65 72 2c 20 63  num(T& binder, c
1f90: 6f 6e 73 74 20 43 56 61 6c 75 65 2a 20 70 56 61  onst CValue* pVa
1fa0: 6c 75 65 2c 20 69 6e 74 20 6d 6f 64 29 0d 0a 7b  lue, int mod)..{
1fb0: 0d 0a 09 73 77 69 74 63 68 28 6d 6f 64 29 0d 0a  ...switch(mod)..
1fc0: 09 7b 0d 0a 09 63 61 73 65 20 30 3a 0d 0a 09 63  .{...case 0:...c
1fd0: 61 73 65 20 31 3a 0d 0a 09 09 62 69 6e 64 4f 62  ase 1:....bindOb
1fe0: 6a 65 63 74 28 62 69 6e 64 65 72 2c 20 70 56 61  ject(binder, pVa
1ff0: 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09 09 62 72  lue, mod);....br
2000: 65 61 6b 3b 0d 0a 09 64 65 66 61 75 6c 74 3a 0d  eak;...default:.
2010: 0a 09 09 62 69 6e 64 65 72 2e 65 72 72 6f 72 28  ...binder.error(
2020: 22 cd e5 e8 e7 e2 e5 f1 f2 ed fb e9 20 ec ee e4  "........... ...
2030: e8 f4 e8 ea e0 f2 ee f0 20 e4 eb ff 20 f2 e8 ef  ........ ... ...
2040: e0 20 5c 22 cf e5 f0 e5 f7 e8 f1 eb e5 ed e8 e5  . \"............
2050: 5c 22 22 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a  \"");...}..}....
2060: 74 65 6d 70 6c 61 74 65 3c 74 79 70 65 6e 61 6d  template<typenam
2070: 65 20 54 3e 0d 0a 69 6e 6c 69 6e 65 20 73 74 61  e T>..inline sta
2080: 74 69 63 20 76 6f 69 64 20 62 69 6e 64 52 65 66  tic void bindRef
2090: 65 72 65 6e 63 65 28 54 26 20 62 69 6e 64 65 72  erence(T& binder
20a0: 2c 20 63 6f 6e 73 74 20 43 56 61 6c 75 65 2a 20  , const CValue* 
20b0: 70 56 61 6c 75 65 2c 20 69 6e 74 20 6d 6f 64 29  pValue, int mod)
20c0: 0d 0a 7b 0d 0a 09 73 77 69 74 63 68 28 6d 6f 64  ..{...switch(mod
20d0: 29 0d 0a 09 7b 0d 0a 09 63 61 73 65 20 30 3a 0d  )...{...case 0:.
20e0: 0a 09 63 61 73 65 20 31 3a 0d 0a 09 09 62 69 6e  ..case 1:....bin
20f0: 64 4f 62 6a 65 63 74 28 62 69 6e 64 65 72 2c 20  dObject(binder, 
2100: 70 56 61 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09  pValue, mod);...
2110: 09 62 72 65 61 6b 3b 0d 0a 09 63 61 73 65 20 32  .break;...case 2
2120: 3a 0d 0a 09 09 62 69 6e 64 4b 69 6e 64 4f 66 4f  :....bindKindOfO
2130: 62 6a 65 63 74 28 62 69 6e 64 65 72 2c 20 70 56  bject(binder, pV
2140: 61 6c 75 65 29 3b 0d 0a 09 09 62 72 65 61 6b 3b  alue);....break;
2150: 0d 0a 09 64 65 66 61 75 6c 74 3a 0d 0a 09 09 62  ...default:....b
2160: 69 6e 64 65 72 2e 65 72 72 6f 72 28 22 cd e5 e8  inder.error("...
2170: e7 e2 e5 f1 f2 ed fb e9 20 ec ee e4 e8 f4 e8 ea  ........ .......
2180: e0 f2 ee f0 20 e4 eb ff 20 f2 e8 ef e0 20 5c 22  .... ... .... \"
2190: d1 ef f0 e0 e2 ee f7 ed e8 ea 5c 22 22 29 3b 0d  ..........\"");.
21a0: 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 74 65 6d 70 6c 61  ..}..}....templa
21b0: 74 65 3c 74 79 70 65 6e 61 6d 65 20 54 3e 0d 0a  te<typename T>..
21c0: 69 6e 6c 69 6e 65 20 73 74 61 74 69 63 20 76 6f  inline static vo
21d0: 69 64 20 62 69 6e 64 44 6f 63 75 6d 65 6e 74 28  id bindDocument(
21e0: 54 26 20 62 69 6e 64 65 72 2c 20 63 6f 6e 73 74  T& binder, const
21f0: 20 43 56 61 6c 75 65 2a 20 70 56 61 6c 75 65 2c   CValue* pValue,
2200: 20 69 6e 74 20 6d 6f 64 29 0d 0a 7b 0d 0a 09 73   int mod)..{...s
2210: 77 69 74 63 68 28 6d 6f 64 29 0d 0a 09 7b 0d 0a  witch(mod)...{..
2220: 09 63 61 73 65 20 30 3a 0d 0a 09 63 61 73 65 20  .case 0:...case 
2230: 31 3a 0d 0a 09 09 62 69 6e 64 4f 62 6a 65 63 74  1:....bindObject
2240: 28 62 69 6e 64 65 72 2c 20 70 56 61 6c 75 65 2c  (binder, pValue,
2250: 20 6d 6f 64 29 3b 0d 0a 09 09 62 72 65 61 6b 3b   mod);....break;
2260: 0d 0a 09 63 61 73 65 20 32 3a 0d 0a 09 09 62 69  ...case 2:....bi
2270: 6e 64 4b 69 6e 64 4f 66 4f 62 6a 65 63 74 28 62  ndKindOfObject(b
2280: 69 6e 64 65 72 2c 20 70 56 61 6c 75 65 29 3b 0d  inder, pValue);.
2290: 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 63 61 73 65  ...break;...case
22a0: 20 33 3a 09 09 2f 2f 20 cf ee e7 e8 f6 e8 ff 20   3:..// ....... 
22b0: e4 ee ea f3 ec e5 ed f2 e0 0d 0a 09 63 61 73 65  ............case
22c0: 20 34 3a 09 09 2f 2f 20 cf ee e7 e8 f6 e8 ff 20   4:..// ....... 
22d0: e4 ee ea f3 ec e5 ed f2 e0 20 e4 eb ff 20 e2 e5  ......... ... ..
22e0: f0 f5 ed e5 e9 20 e3 f0 e0 ed e8 f6 fb 20 ef ee  ..... ....... ..
22f0: 20 e8 ed e4 ea e5 f1 e0 ec 2c 20 ed e0 f7 e8 ed   ........, .....
2300: e0 fe f9 e8 ec f1 ff 20 f1 20 44 41 54 45 2c 54  ....... . DATE,T
2310: 49 4d 45 2c 49 44 44 4f 43 0d 0a 20 20 20 20 20  IME,IDDOC..     
2320: 20 20 20 7b 0d 0a 09 09 09 43 53 74 72 69 6e 67     {.....CString
2330: 20 74 65 78 74 3b 0d 0a 09 09 09 42 59 54 45 2a   text;.....BYTE*
2340: 20 70 74 72 20 3d 20 28 42 59 54 45 2a 29 74 65   ptr = (BYTE*)te
2350: 78 74 2e 47 65 74 42 75 66 66 65 72 53 65 74 4c  xt.GetBufferSetL
2360: 65 6e 67 74 68 28 34 20 3d 3d 20 6d 6f 64 20 3f  ength(4 == mod ?
2370: 20 32 34 20 3a 20 32 33 29 3b 0d 0a 09 09 09 43   24 : 23);.....C
2380: 45 76 65 6e 74 54 69 6d 65 20 45 76 65 6e 74 54  EventTime EventT
2390: 69 6d 65 3b 0d 0a 09 09 09 43 44 61 74 65 20 44  ime;.....CDate D
23a0: 61 74 65 28 30 2c 30 2c 30 29 3b 0d 0a 09 09 09  ate(0,0,0);.....
23b0: 47 65 74 44 61 74 65 54 69 6d 65 46 72 6f 6d 56  GetDateTimeFromV
23c0: 61 6c 75 65 28 2a 70 56 61 6c 75 65 2c 20 44 61  alue(*pValue, Da
23d0: 74 65 2c 20 45 76 65 6e 74 54 69 6d 65 29 3b 0d  te, EventTime);.
23e0: 0a 09 09 09 64 65 63 32 73 74 72 28 44 61 74 65  ....dec2str(Date
23f0: 2e 47 65 74 59 65 61 72 28 29 2c 20 70 74 72 2c  .GetYear(), ptr,
2400: 20 34 29 3b 0d 0a 09 09 09 2a 28 44 57 4f 52 44   4);.....*(DWORD
2410: 2a 29 28 70 74 72 20 2b 20 34 29 20 3d 20 27 30  *)(ptr + 4) = '0
2420: 30 30 30 27 3b 0d 0a 09 09 09 64 65 63 32 73 74  000';.....dec2st
2430: 72 28 44 61 74 65 2e 47 65 74 4d 6f 6e 74 68 28  r(Date.GetMonth(
2440: 29 2c 20 70 74 72 20 2b 20 34 2c 20 32 29 3b 0d  ), ptr + 4, 2);.
2450: 0a 09 09 09 64 65 63 32 73 74 72 28 44 61 74 65  ....dec2str(Date
2460: 2e 47 65 74 4d 6f 6e 74 68 44 61 79 28 29 2c 20  .GetMonthDay(), 
2470: 70 74 72 20 2b 20 36 2c 20 32 29 3b 0d 0a 09 09  ptr + 6, 2);....
2480: 09 2a 28 44 57 4f 52 44 2a 29 28 70 74 72 20 2b  .*(DWORD*)(ptr +
2490: 20 20 38 29 20 3d 20 27 20 20 20 20 27 3b 0d 0a    8) = '    ';..
24a0: 09 09 09 2a 28 44 57 4f 52 44 2a 29 28 70 74 72  ...*(DWORD*)(ptr
24b0: 20 2b 20 31 32 29 20 3d 20 27 20 20 20 20 27 3b   + 12) = '    ';
24c0: 0d 0a 09 09 09 2a 28 44 57 4f 52 44 2a 29 28 70  .....*(DWORD*)(p
24d0: 74 72 20 2b 20 31 36 29 20 3d 20 27 20 20 20 20  tr + 16) = '    
24e0: 27 3b 0d 0a 09 09 09 69 64 32 73 74 72 28 45 76  ';.....id2str(Ev
24f0: 65 6e 74 54 69 6d 65 2e 47 65 74 6c 54 69 6d 65  entTime.GetlTime
2500: 28 29 2c 20 70 74 72 20 2b 20 38 2c 20 36 29 3b  (), ptr + 8, 6);
2510: 0d 0a 09 09 09 69 64 32 73 74 72 28 70 56 61 6c  .....id2str(pVal
2520: 75 65 2d 3e 6d 5f 4f 62 6a 49 44 2e 4f 62 6a 49  ue->m_ObjID.ObjI
2530: 44 2c 20 70 74 72 20 2b 20 31 34 2c 20 36 29 3b  D, ptr + 14, 6);
2540: 0d 0a 09 09 09 2a 28 44 57 4f 52 44 2a 29 28 70  .....*(DWORD*)(p
2550: 74 72 20 2b 20 32 30 29 20 3d 20 2a 28 44 57 4f  tr + 20) = *(DWO
2560: 52 44 2a 29 70 56 61 6c 75 65 2d 3e 6d 5f 4f 62  RD*)pValue->m_Ob
2570: 6a 49 44 2e 44 42 53 69 67 6e 2e 53 69 67 6e 3b  jID.DBSign.Sign;
2580: 0d 0a 09 09 09 69 66 28 34 20 3d 3d 20 6d 6f 64  .....if(4 == mod
2590: 29 0d 0a 09 09 09 09 70 74 72 5b 32 33 5d 20 3d  )......ptr[23] =
25a0: 20 27 df 27 3b 0d 0a 09 09 09 62 69 6e 64 65 72   '.';.....binder
25b0: 2e 62 69 6e 64 54 65 78 74 28 74 65 78 74 29 3b  .bindText(text);
25c0: 0d 0a 09 09 7d 0d 0a 09 09 62 72 65 61 6b 3b 0d  ....}....break;.
25d0: 0a 09 64 65 66 61 75 6c 74 3a 0d 0a 09 09 62 69  ..default:....bi
25e0: 6e 64 65 72 2e 65 72 72 6f 72 28 22 cd e5 e8 e7  nder.error("....
25f0: e2 e5 f1 f2 ed fb e9 20 ec ee e4 e8 f4 e8 ea e0  ....... ........
2600: f2 ee f0 20 e4 eb ff 20 f2 e8 ef e0 20 5c 22 c4  ... ... .... \".
2610: ee ea f3 ec e5 ed f2 5c 22 22 29 3b 0d 0a 09 7d  .......\"");...}
2620: 0d 0a 7d 0d 0a 0d 0a 74 65 6d 70 6c 61 74 65 3c  ..}....template<
2630: 74 79 70 65 6e 61 6d 65 20 54 3e 0d 0a 69 6e 6c  typename T>..inl
2640: 69 6e 65 20 73 74 61 74 69 63 20 76 6f 69 64 20  ine static void 
2650: 62 69 6e 64 43 61 6c 65 6e 64 61 72 28 54 26 20  bindCalendar(T& 
2660: 62 69 6e 64 65 72 2c 20 63 6f 6e 73 74 20 43 56  binder, const CV
2670: 61 6c 75 65 2a 20 70 56 61 6c 75 65 2c 20 69 6e  alue* pValue, in
2680: 74 20 6d 6f 64 29 0d 0a 7b 0d 0a 09 73 77 69 74  t mod)..{...swit
2690: 63 68 28 6d 6f 64 29 0d 0a 09 7b 0d 0a 09 63 61  ch(mod)...{...ca
26a0: 73 65 20 30 3a 0d 0a 09 63 61 73 65 20 31 3a 0d  se 0:...case 1:.
26b0: 0a 09 09 62 69 6e 64 4f 62 6a 65 63 74 28 62 69  ...bindObject(bi
26c0: 6e 64 65 72 2c 20 70 56 61 6c 75 65 2c 20 6d 6f  nder, pValue, mo
26d0: 64 29 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09  d);....break;...
26e0: 64 65 66 61 75 6c 74 3a 0d 0a 09 09 62 69 6e 64  default:....bind
26f0: 65 72 2e 65 72 72 6f 72 28 22 cd e5 e8 e7 e2 e5  er.error("......
2700: f1 f2 ed fb e9 20 ec ee e4 e8 f4 e8 ea e0 f2 ee  ..... ..........
2710: f0 20 e4 eb ff 20 f2 e8 ef e0 20 5c 22 ca e0 eb  . ... .... \"...
2720: e5 ed e4 e0 f0 fc 5c 22 22 29 3b 0d 0a 09 7d 0d  ......\"");...}.
2730: 0a 7d 0d 0a 0d 0a 74 65 6d 70 6c 61 74 65 3c 74  .}....template<t
2740: 79 70 65 6e 61 6d 65 20 54 3e 0d 0a 69 6e 6c 69  ypename T>..inli
2750: 6e 65 20 73 74 61 74 69 63 20 76 6f 69 64 20 62  ne static void b
2760: 69 6e 64 43 61 6c 63 4b 69 6e 64 28 54 26 20 62  indCalcKind(T& b
2770: 69 6e 64 65 72 2c 20 63 6f 6e 73 74 20 43 56 61  inder, const CVa
2780: 6c 75 65 2a 20 70 56 61 6c 75 65 2c 20 69 6e 74  lue* pValue, int
2790: 20 6d 6f 64 29 0d 0a 7b 0d 0a 09 73 77 69 74 63   mod)..{...switc
27a0: 68 28 6d 6f 64 29 0d 0a 09 7b 0d 0a 09 63 61 73  h(mod)...{...cas
27b0: 65 20 30 3a 0d 0a 09 63 61 73 65 20 31 3a 0d 0a  e 0:...case 1:..
27c0: 09 09 62 69 6e 64 4f 62 6a 65 63 74 28 62 69 6e  ..bindObject(bin
27d0: 64 65 72 2c 20 70 56 61 6c 75 65 2c 20 6d 6f 64  der, pValue, mod
27e0: 29 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 63  );....break;...c
27f0: 61 73 65 20 32 3a 0d 0a 09 09 62 69 6e 64 4b 69  ase 2:....bindKi
2800: 6e 64 4f 66 4f 62 6a 65 63 74 28 62 69 6e 64 65  ndOfObject(binde
2810: 72 2c 20 70 56 61 6c 75 65 29 3b 0d 0a 09 09 62  r, pValue);....b
2820: 72 65 61 6b 3b 0d 0a 09 64 65 66 61 75 6c 74 3a  reak;...default:
2830: 0d 0a 09 09 62 69 6e 64 65 72 2e 65 72 72 6f 72  ....binder.error
2840: 28 22 cd e5 e8 e7 e2 e5 f1 f2 ed fb e9 20 ec ee  ("........... ..
2850: e4 e8 f4 e8 ea e0 f2 ee f0 20 e4 eb ff 20 f2 e8  ......... ... ..
2860: ef e0 20 5c 22 c2 e8 e4 d0 e0 f1 f7 e5 f2 e0 5c  .. \"..........\
2870: 22 22 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 74  "");...}..}....t
2880: 65 6d 70 6c 61 74 65 3c 74 79 70 65 6e 61 6d 65  emplate<typename
2890: 20 54 3e 0d 0a 69 6e 6c 69 6e 65 20 73 74 61 74   T>..inline stat
28a0: 69 63 20 76 6f 69 64 20 62 69 6e 64 41 63 63 6f  ic void bindAcco
28b0: 75 6e 74 28 54 26 20 62 69 6e 64 65 72 2c 20 63  unt(T& binder, c
28c0: 6f 6e 73 74 20 43 56 61 6c 75 65 2a 20 70 56 61  onst CValue* pVa
28d0: 6c 75 65 2c 20 69 6e 74 20 6d 6f 64 29 0d 0a 7b  lue, int mod)..{
28e0: 0d 0a 09 73 77 69 74 63 68 28 6d 6f 64 29 0d 0a  ...switch(mod)..
28f0: 09 7b 0d 0a 09 63 61 73 65 20 30 3a 0d 0a 09 63  .{...case 0:...c
2900: 61 73 65 20 31 3a 0d 0a 09 09 62 69 6e 64 4f 62  ase 1:....bindOb
2910: 6a 65 63 74 28 62 69 6e 64 65 72 2c 20 70 56 61  ject(binder, pVa
2920: 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09 09 62 72  lue, mod);....br
2930: 65 61 6b 3b 0d 0a 09 63 61 73 65 20 32 3a 0d 0a  eak;...case 2:..
2940: 09 09 62 69 6e 64 4b 69 6e 64 4f 66 4f 62 6a 65  ..bindKindOfObje
2950: 63 74 28 62 69 6e 64 65 72 2c 20 70 56 61 6c 75  ct(binder, pValu
2960: 65 29 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09  e);....break;...
2970: 64 65 66 61 75 6c 74 3a 0d 0a 09 09 62 69 6e 64  default:....bind
2980: 65 72 2e 65 72 72 6f 72 28 22 cd e5 e8 e7 e2 e5  er.error("......
2990: f1 f2 ed fb e9 20 ec ee e4 e8 f4 e8 ea e0 f2 ee  ..... ..........
29a0: f0 20 e4 eb ff 20 f2 e8 ef e0 20 5c 22 d1 f7 e5  . ... .... \"...
29b0: f2 5c 22 22 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a 0d  .\"");...}..}...
29c0: 0a 74 65 6d 70 6c 61 74 65 3c 74 79 70 65 6e 61  .template<typena
29d0: 6d 65 20 54 3e 0d 0a 69 6e 6c 69 6e 65 20 73 74  me T>..inline st
29e0: 61 74 69 63 20 76 6f 69 64 20 62 69 6e 64 53 75  atic void bindSu
29f0: 62 63 4b 69 6e 64 28 54 26 20 62 69 6e 64 65 72  bcKind(T& binder
2a00: 2c 20 63 6f 6e 73 74 20 43 56 61 6c 75 65 2a 20  , const CValue* 
2a10: 70 56 61 6c 75 65 2c 20 69 6e 74 20 6d 6f 64 29  pValue, int mod)
2a20: 0d 0a 7b 0d 0a 09 73 77 69 74 63 68 28 6d 6f 64  ..{...switch(mod
2a30: 29 0d 0a 09 7b 0d 0a 09 63 61 73 65 20 30 3a 0d  )...{...case 0:.
2a40: 0a 09 63 61 73 65 20 31 3a 0d 0a 09 09 62 69 6e  ..case 1:....bin
2a50: 64 4f 62 6a 65 63 74 28 62 69 6e 64 65 72 2c 20  dObject(binder, 
2a60: 70 56 61 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09  pValue, mod);...
2a70: 09 62 72 65 61 6b 3b 0d 0a 09 63 61 73 65 20 32  .break;...case 2
2a80: 3a 0d 0a 09 09 62 69 6e 64 4b 69 6e 64 4f 66 4f  :....bindKindOfO
2a90: 62 6a 65 63 74 28 62 69 6e 64 65 72 2c 20 70 56  bject(binder, pV
2aa0: 61 6c 75 65 29 3b 0d 0a 09 09 62 72 65 61 6b 3b  alue);....break;
2ab0: 0d 0a 09 64 65 66 61 75 6c 74 3a 0d 0a 09 09 62  ...default:....b
2ac0: 69 6e 64 65 72 2e 65 72 72 6f 72 28 22 cd e5 e8  inder.error("...
2ad0: e7 e2 e5 f1 f2 ed fb e9 20 ec ee e4 e8 f4 e8 ea  ........ .......
2ae0: e0 f2 ee f0 20 e4 eb ff 20 f2 e8 ef e0 20 5c 22  .... ... .... \"
2af0: c2 e8 e4 d1 f3 e1 ea ee ed f2 ee 5c 22 22 29 3b  ...........\"");
2b00: 0d 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 74 65 6d 70 6c  ...}..}....templ
2b10: 61 74 65 3c 74 79 70 65 6e 61 6d 65 20 54 3e 0d  ate<typename T>.
2b20: 0a 69 6e 6c 69 6e 65 20 73 74 61 74 69 63 20 76  .inline static v
2b30: 6f 69 64 20 62 69 6e 64 43 68 61 72 74 4f 66 41  oid bindChartOfA
2b40: 63 63 6f 75 6e 74 28 54 26 20 62 69 6e 64 65 72  ccount(T& binder
2b50: 2c 20 63 6f 6e 73 74 20 43 56 61 6c 75 65 2a 20  , const CValue* 
2b60: 70 56 61 6c 75 65 2c 20 69 6e 74 20 6d 6f 64 29  pValue, int mod)
2b70: 0d 0a 7b 0d 0a 09 73 77 69 74 63 68 28 6d 6f 64  ..{...switch(mod
2b80: 29 0d 0a 09 7b 0d 0a 09 63 61 73 65 20 30 3a 0d  )...{...case 0:.
2b90: 0a 09 63 61 73 65 20 31 3a 0d 0a 09 09 62 69 6e  ..case 1:....bin
2ba0: 64 4f 62 6a 65 63 74 28 62 69 6e 64 65 72 2c 20  dObject(binder, 
2bb0: 70 56 61 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09  pValue, mod);...
2bc0: 09 62 72 65 61 6b 3b 0d 0a 09 63 61 73 65 20 32  .break;...case 2
2bd0: 3a 0d 0a 09 09 62 69 6e 64 4b 69 6e 64 4f 66 4f  :....bindKindOfO
2be0: 62 6a 65 63 74 28 62 69 6e 64 65 72 2c 20 70 56  bject(binder, pV
2bf0: 61 6c 75 65 29 3b 0d 0a 09 09 62 72 65 61 6b 3b  alue);....break;
2c00: 0d 0a 09 64 65 66 61 75 6c 74 3a 0d 0a 09 09 62  ...default:....b
2c10: 69 6e 64 65 72 2e 65 72 72 6f 72 28 22 cd e5 e8  inder.error("...
2c20: e7 e2 e5 f1 f2 ed fb e9 20 ec ee e4 e8 f4 e8 ea  ........ .......
2c30: e0 f2 ee f0 20 e4 eb ff 20 f2 e8 ef e0 20 5c 22  .... ... .... \"
2c40: cf eb e0 ed d1 f7 e5 f2 ee e2 5c 22 22 29 3b 0d  ..........\"");.
2c50: 0a 09 7d 0d 0a 7d 0d 0a 0d 0a 74 65 6d 70 6c 61  ..}..}....templa
2c60: 74 65 3c 74 79 70 65 6e 61 6d 65 20 54 3e 0d 0a  te<typename T>..
2c70: 73 74 61 74 69 63 20 76 6f 69 64 20 62 69 6e 64  static void bind
2c80: 56 61 6c 75 65 28 54 26 20 62 69 6e 64 65 72 2c  Value(T& binder,
2c90: 20 63 6f 6e 73 74 20 43 56 61 6c 75 65 2a 20 70   const CValue* p
2ca0: 56 61 6c 75 65 2c 20 69 6e 74 20 6d 6f 64 29 0d  Value, int mod).
2cb0: 0a 7b 0d 0a 09 69 66 28 2d 31 20 3d 3d 20 6d 6f  .{...if(-1 == mo
2cc0: 64 29 0d 0a 09 7b 0d 0a 09 09 43 53 74 72 69 6e  d)...{....CStrin
2cd0: 67 20 74 65 78 74 3b 0d 0a 09 09 56 61 6c 75 65  g text;....Value
2ce0: 53 74 72 57 6f 72 6b 3c 74 6f 73 32 33 3e 3a 3a  StrWork<tos23>::
2cf0: 76 61 6c 32 73 74 72 28 2a 70 56 61 6c 75 65 2c  val2str(*pValue,
2d00: 20 74 65 78 74 29 3b 0d 0a 09 09 62 69 6e 64 65   text);....binde
2d10: 72 2e 62 69 6e 64 54 65 78 74 28 74 65 78 74 29  r.bindText(text)
2d20: 3b 0d 0a 09 09 72 65 74 75 72 6e 3b 0d 0a 09 7d  ;....return;...}
2d30: 0d 0a 09 73 77 69 74 63 68 28 70 56 61 6c 75 65  ...switch(pValue
2d40: 2d 3e 74 79 70 65 29 0d 0a 09 7b 0d 0a 09 63 61  ->type)...{...ca
2d50: 73 65 20 74 79 70 65 55 6e 64 65 66 69 6e 65 64  se typeUndefined
2d60: 3a 0d 0a 09 09 62 69 6e 64 65 72 2e 62 69 6e 64  :....binder.bind
2d70: 4e 75 6c 6c 28 29 3b 0d 0a 09 09 62 72 65 61 6b  Null();....break
2d80: 3b 0d 0a 09 63 61 73 65 20 74 79 70 65 4e 75 6d  ;...case typeNum
2d90: 62 65 72 3a 0d 0a 09 09 62 69 6e 64 4e 75 6d 65  ber:....bindNume
2da0: 72 69 63 28 62 69 6e 64 65 72 2c 20 70 56 61 6c  ric(binder, pVal
2db0: 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09 09 62 72 65  ue, mod);....bre
2dc0: 61 6b 3b 0d 0a 09 63 61 73 65 20 74 79 70 65 53  ak;...case typeS
2dd0: 74 72 69 6e 67 3a 0d 0a 09 09 62 69 6e 64 53 74  tring:....bindSt
2de0: 72 69 6e 67 28 62 69 6e 64 65 72 2c 20 70 56 61  ring(binder, pVa
2df0: 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09 09 62 72  lue, mod);....br
2e00: 65 61 6b 3b 0d 0a 09 63 61 73 65 20 74 79 70 65  eak;...case type
2e10: 44 61 74 65 3a 0d 0a 09 09 62 69 6e 64 44 61 74  Date:....bindDat
2e20: 65 28 62 69 6e 64 65 72 2c 20 70 56 61 6c 75 65  e(binder, pValue
2e30: 2c 20 6d 6f 64 29 3b 0d 0a 09 09 62 72 65 61 6b  , mod);....break
2e40: 3b 0d 0a 09 63 61 73 65 20 74 79 70 65 45 6e 75  ;...case typeEnu
2e50: 6d 3a 0d 0a 09 09 62 69 6e 64 45 6e 75 6d 28 62  m:....bindEnum(b
2e60: 69 6e 64 65 72 2c 20 70 56 61 6c 75 65 2c 20 6d  inder, pValue, m
2e70: 6f 64 29 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a  od);....break;..
2e80: 09 63 61 73 65 20 74 79 70 65 52 65 66 65 72 65  .case typeRefere
2e90: 6e 63 65 3a 0d 0a 09 09 62 69 6e 64 52 65 66 65  nce:....bindRefe
2ea0: 72 65 6e 63 65 28 62 69 6e 64 65 72 2c 20 70 56  rence(binder, pV
2eb0: 61 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09 09 62  alue, mod);....b
2ec0: 72 65 61 6b 3b 0d 0a 09 63 61 73 65 20 74 79 70  reak;...case typ
2ed0: 65 44 6f 63 75 6d 65 6e 74 3a 0d 0a 09 09 62 69  eDocument:....bi
2ee0: 6e 64 44 6f 63 75 6d 65 6e 74 28 62 69 6e 64 65  ndDocument(binde
2ef0: 72 2c 20 70 56 61 6c 75 65 2c 20 6d 6f 64 29 3b  r, pValue, mod);
2f00: 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 63 61 73  ....break;...cas
2f10: 65 20 74 79 70 65 43 61 6c 65 6e 64 61 72 3a 0d  e typeCalendar:.
2f20: 0a 09 09 62 69 6e 64 43 61 6c 65 6e 64 61 72 28  ...bindCalendar(
2f30: 62 69 6e 64 65 72 2c 20 70 56 61 6c 75 65 2c 20  binder, pValue, 
2f40: 6d 6f 64 29 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d  mod);....break;.
2f50: 0a 09 63 61 73 65 20 74 79 70 65 43 61 6c 63 4b  ..case typeCalcK
2f60: 69 6e 64 3a 0d 0a 09 09 62 69 6e 64 43 61 6c 63  ind:....bindCalc
2f70: 4b 69 6e 64 28 62 69 6e 64 65 72 2c 20 70 56 61  Kind(binder, pVa
2f80: 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09 09 62 72  lue, mod);....br
2f90: 65 61 6b 3b 0d 0a 09 63 61 73 65 20 74 79 70 65  eak;...case type
2fa0: 41 63 63 6f 75 6e 74 3a 0d 0a 09 09 62 69 6e 64  Account:....bind
2fb0: 41 63 63 6f 75 6e 74 28 62 69 6e 64 65 72 2c 20  Account(binder, 
2fc0: 70 56 61 6c 75 65 2c 20 6d 6f 64 29 3b 0d 0a 09  pValue, mod);...
2fd0: 09 62 72 65 61 6b 3b 0d 0a 09 63 61 73 65 20 74  .break;...case t
2fe0: 79 70 65 53 75 62 63 4b 69 6e 64 3a 0d 0a 09 09  ypeSubcKind:....
2ff0: 62 69 6e 64 53 75 62 63 4b 69 6e 64 28 62 69 6e  bindSubcKind(bin
3000: 64 65 72 2c 20 70 56 61 6c 75 65 2c 20 6d 6f 64  der, pValue, mod
3010: 29 3b 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09 63  );....break;...c
3020: 61 73 65 20 74 79 70 65 43 68 61 72 74 4f 66 41  ase typeChartOfA
3030: 63 63 3a 0d 0a 09 09 62 72 65 61 6b 3b 0d 0a 09  cc:....break;...
3040: 64 65 66 61 75 6c 74 3a 0d 0a 09 09 62 69 6e 64  default:....bind
3050: 65 72 2e 65 72 72 6f 72 28 22 cd e5 e8 e7 e2 e5  er.error("......
3060: f1 f2 ed fb e9 20 f2 e8 ef 20 e7 ed e0 f7 e5 ed  ..... ... ......
3070: e8 ff 22 29 3b 0d 0a 09 7d 0d 0a 7d 0d 0a        ..");...}..}..