Hex Artifact Content Вы: nobody
Вход

Artifact a152ee98a68afa010221b165f88c7b92b1e5e1f4:


0000: 0d 0a 23 69 6e 63 6c 75 64 65 20 22 73 74 64 61  ..#include "stda
0010: 66 78 2e 68 22 0d 0a 23 69 6e 63 6c 75 64 65 20  fx.h"..#include 
0020: 22 43 74 72 6c 45 76 65 6e 74 73 2e 68 22 0d 0a  "CtrlEvents.h"..
0030: 0d 0a 43 43 74 72 6c 45 76 65 6e 74 4d 61 6e 61  ..CCtrlEventMana
0040: 67 65 72 3a 3a 43 43 74 72 6c 45 76 65 6e 74 4d  ger::CCtrlEventM
0050: 61 6e 61 67 65 72 28 29 0d 0a 7b 0d 0a 7d 0d 0a  anager()..{..}..
0060: 0d 0a 43 43 74 72 6c 45 76 65 6e 74 4d 61 6e 61  ..CCtrlEventMana
0070: 67 65 72 3a 3a 7e 43 43 74 72 6c 45 76 65 6e 74  ger::~CCtrlEvent
0080: 4d 61 6e 61 67 65 72 28 29 0d 0a 7b 0d 0a 7d 0d  Manager()..{..}.
0090: 0a 0d 0a 76 6f 69 64 20 43 43 74 72 6c 45 76 65  ...void CCtrlEve
00a0: 6e 74 4d 61 6e 61 67 65 72 3a 3a 53 65 74 45 76  ntManager::SetEv
00b0: 65 6e 74 73 28 73 74 43 74 72 6c 45 76 65 6e 74  ents(stCtrlEvent
00c0: 73 2a 20 70 43 74 72 6c 45 76 65 6e 74 73 2c 20  s* pCtrlEvents, 
00d0: 69 6e 74 20 6e 43 6f 75 6e 74 2c 0d 0a 20 20 20  int nCount,..   
00e0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
00f0: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 63                 c
0100: 6f 6e 73 74 20 63 68 61 72 2a 20 73 7a 43 6f 64  onst char* szCod
0110: 65 4e 61 6d 65 2c 20 43 42 4c 4d 6f 64 75 6c 65  eName, CBLModule
0120: 2a 20 70 46 6f 72 6d 4d 6f 64 75 6c 65 2c 20 43  * pFormModule, C
0130: 42 4c 43 6f 6e 74 65 78 74 2a 20 70 43 74 72 6c  BLContext* pCtrl
0140: 4f 62 6a 65 63 74 2c 0d 0a 20 20 20 20 20 20 20  Object,..       
0150: 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20 20                  
0160: 20 20 20 20 20 20 20 20 20 20 20 43 42 4c 43 6f             CBLCo
0170: 6e 74 65 78 74 2a 20 70 44 65 72 69 76 65 64 4f  ntext* pDerivedO
0180: 62 6a 65 63 74 29 0d 0a 7b 0d 0a 09 6d 5f 70 43  bject)..{...m_pC
0190: 74 72 6c 45 76 65 6e 74 73 20 3d 20 70 43 74 72  trlEvents = pCtr
01a0: 6c 45 76 65 6e 74 73 3b 0d 0a 09 6d 5f 70 4d 6f  lEvents;...m_pMo
01b0: 64 75 6c 65 20 3d 20 70 46 6f 72 6d 4d 6f 64 75  dule = pFormModu
01c0: 6c 65 3b 0d 0a 09 6d 5f 70 43 74 72 6c 4f 62 6a  le;...m_pCtrlObj
01d0: 65 63 74 20 3d 20 70 43 74 72 6c 4f 62 6a 65 63  ect = pCtrlObjec
01e0: 74 3b 0d 0a 09 6d 5f 70 44 65 72 69 76 65 64 4f  t;...m_pDerivedO
01f0: 62 6a 65 63 74 20 3d 20 70 44 65 72 69 76 65 64  bject = pDerived
0200: 4f 62 6a 65 63 74 3b 0d 0a 0d 0a 09 43 42 4c 50  Object;.....CBLP
0210: 72 6f 63 49 6e 66 6f 20 42 4c 50 72 6f 63 49 6e  rocInfo BLProcIn
0220: 66 6f 3b 0d 0a 09 73 74 45 76 65 6e 74 20 65 76  fo;...stEvent ev
0230: 65 6e 74 3b 0d 0a 09 42 4f 4f 4c 20 62 53 75 63  ent;...BOOL bSuc
0240: 63 65 73 73 20 3d 20 54 52 55 45 3b 0d 0a 0d 0a  cess = TRUE;....
0250: 09 66 6f 72 20 28 3b 20 6e 43 6f 75 6e 74 20 3e  .for (; nCount >
0260: 20 30 3b 20 6e 43 6f 75 6e 74 2d 2d 2c 20 70 43   0; nCount--, pC
0270: 74 72 6c 45 76 65 6e 74 73 2b 2b 29 0d 0a 09 7b  trlEvents++)...{
0280: 0d 0a 09 09 43 53 74 72 69 6e 67 20 73 74 72 50  ....CString strP
0290: 72 6f 63 4e 61 6d 65 3b 0d 0a 09 09 69 66 20 28  rocName;....if (
02a0: 73 7a 43 6f 64 65 4e 61 6d 65 29 0d 0a 09 09 09  szCodeName).....
02b0: 73 74 72 50 72 6f 63 4e 61 6d 65 20 3d 20 73 7a  strProcName = sz
02c0: 43 6f 64 65 4e 61 6d 65 3b 0d 0a 09 09 73 74 72  CodeName;....str
02d0: 50 72 6f 63 4e 61 6d 65 20 2b 3d 20 70 43 74 72  ProcName += pCtr
02e0: 6c 45 76 65 6e 74 73 2d 3e 73 7a 52 75 73 4e 61  lEvents->szRusNa
02f0: 6d 65 3b 0d 0a 09 09 65 76 65 6e 74 2e 6e 46 6f  me;....event.nFo
0300: 72 6d 45 76 65 6e 74 20 3d 20 6d 5f 70 4d 6f 64  rmEvent = m_pMod
0310: 75 6c 65 2d 3e 46 69 6e 64 50 72 6f 63 28 73 74  ule->FindProc(st
0320: 72 50 72 6f 63 4e 61 6d 65 2c 20 30 29 3b 0d 0a  rProcName, 0);..
0330: 09 09 69 66 20 28 65 76 65 6e 74 2e 6e 46 6f 72  ..if (event.nFor
0340: 6d 45 76 65 6e 74 20 21 3d 20 2d 31 29 0d 0a 09  mEvent != -1)...
0350: 09 7b 0d 0a 09 09 09 6d 5f 70 4d 6f 64 75 6c 65  .{.....m_pModule
0360: 2d 3e 47 65 74 50 72 6f 63 49 6e 66 6f 28 65 76  ->GetProcInfo(ev
0370: 65 6e 74 2e 6e 46 6f 72 6d 45 76 65 6e 74 2c 42  ent.nFormEvent,B
0380: 4c 50 72 6f 63 49 6e 66 6f 29 3b 0d 0a 09 09 09  LProcInfo);.....
0390: 69 66 20 28 42 4c 50 72 6f 63 49 6e 66 6f 2e 47  if (BLProcInfo.G
03a0: 65 74 4e 50 61 72 61 6d 73 28 29 20 3e 20 70 43  etNParams() > pC
03b0: 74 72 6c 45 76 65 6e 74 73 2d 3e 6e 50 61 72 61  trlEvents->nPara
03c0: 6d 43 6f 75 6e 74 2b 31 29 0d 0a 09 09 09 7b 0d  mCount+1).....{.
03d0: 0a 09 09 09 09 43 53 74 72 69 6e 67 20 73 74 72  .....CString str
03e0: 3b 0d 0a 09 09 09 09 73 74 72 2e 46 6f 72 6d 61  ;......str.Forma
03f0: 74 28 22 ca ee eb e8 f7 e5 f1 f2 e2 ee 20 ef e0  t(".......... ..
0400: f0 e0 ec e5 f2 f0 ee e2 20 e2 20 f1 ee e1 fb f2  ........ . .....
0410: e8 e8 20 27 25 73 27 20 e4 ee eb e6 ed ee 20 e1  .. '%s' ...... .
0420: fb f2 fc 20 ec e5 ed fc f8 e5 20 e8 eb e8 20 f0  ... ...... ... .
0430: e0 e2 ed ee 20 25 75 2e 22 2c 0d 0a 09 09 09 09  .... %u.",......
0440: 09 73 74 72 50 72 6f 63 4e 61 6d 65 2c 20 70 43  .strProcName, pC
0450: 74 72 6c 45 76 65 6e 74 73 2d 3e 6e 50 61 72 61  trlEvents->nPara
0460: 6d 43 6f 75 6e 74 2b 31 29 3b 0d 0a 09 09 09 09  mCount+1);......
0470: 70 42 6b 45 6e 64 55 49 2d 3e 44 6f 4d 65 73 73  pBkEndUI->DoMess
0480: 61 67 65 4c 69 6e 65 28 73 74 72 2c 20 6d 6d 42  ageLine(str, mmB
0490: 6c 61 63 6b 45 72 72 29 3b 0d 0a 09 09 09 09 62  lackErr);......b
04a0: 53 75 63 63 65 73 73 20 3d 20 46 41 4c 53 45 3b  Success = FALSE;
04b0: 0d 0a 09 09 09 7d 0d 0a 09 09 7d 0d 0a 09 09 65  .....}....}....e
04c0: 6c 73 65 0d 0a 09 09 7b 0d 0a 09 09 09 69 66 20  lse....{.....if 
04d0: 28 73 7a 43 6f 64 65 4e 61 6d 65 29 0d 0a 09 09  (szCodeName)....
04e0: 09 09 73 74 72 50 72 6f 63 4e 61 6d 65 20 3d 20  ..strProcName = 
04f0: 73 7a 43 6f 64 65 4e 61 6d 65 3b 0d 0a 09 09 09  szCodeName;.....
0500: 73 74 72 50 72 6f 63 4e 61 6d 65 20 2b 3d 20 70  strProcName += p
0510: 43 74 72 6c 45 76 65 6e 74 73 2d 3e 73 7a 45 6e  CtrlEvents->szEn
0520: 67 4e 61 6d 65 3b 0d 0a 09 09 09 65 76 65 6e 74  gName;.....event
0530: 2e 6e 46 6f 72 6d 45 76 65 6e 74 20 3d 20 6d 5f  .nFormEvent = m_
0540: 70 4d 6f 64 75 6c 65 2d 3e 46 69 6e 64 50 72 6f  pModule->FindPro
0550: 63 28 73 74 72 50 72 6f 63 4e 61 6d 65 2c 20 30  c(strProcName, 0
0560: 29 3b 0d 0a 09 09 09 69 66 20 28 65 76 65 6e 74  );.....if (event
0570: 2e 6e 46 6f 72 6d 45 76 65 6e 74 20 21 3d 20 2d  .nFormEvent != -
0580: 31 29 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 6d 5f  1).....{......m_
0590: 70 4d 6f 64 75 6c 65 2d 3e 47 65 74 50 72 6f 63  pModule->GetProc
05a0: 49 6e 66 6f 28 65 76 65 6e 74 2e 6e 46 6f 72 6d  Info(event.nForm
05b0: 45 76 65 6e 74 2c 42 4c 50 72 6f 63 49 6e 66 6f  Event,BLProcInfo
05c0: 29 3b 0d 0a 09 09 09 09 69 66 20 28 42 4c 50 72  );......if (BLPr
05d0: 6f 63 49 6e 66 6f 2e 47 65 74 4e 50 61 72 61 6d  ocInfo.GetNParam
05e0: 73 28 29 20 3e 20 70 43 74 72 6c 45 76 65 6e 74  s() > pCtrlEvent
05f0: 73 2d 3e 6e 50 61 72 61 6d 43 6f 75 6e 74 2b 31  s->nParamCount+1
0600: 29 0d 0a 09 09 09 09 7b 0d 0a 09 09 09 09 09 43  )......{.......C
0610: 53 74 72 69 6e 67 20 73 74 72 3b 0d 0a 09 09 09  String str;.....
0620: 09 09 73 74 72 2e 46 6f 72 6d 61 74 28 22 ca ee  ..str.Format("..
0630: eb e8 f7 e5 f1 f2 e2 ee 20 ef e0 f0 e0 ec e5 f2  ........ .......
0640: f0 ee e2 20 e2 20 f1 ee e1 fb f2 e8 e8 20 27 25  ... . ....... '%
0650: 73 27 20 e4 ee eb e6 ed ee 20 e1 fb f2 fc 20 ec  s' ...... .... .
0660: e5 ed fc f8 e5 20 e8 eb e8 20 f0 e0 e2 ed ee 20  ..... ... ..... 
0670: 25 75 2e 22 2c 0d 0a 09 09 09 09 09 09 73 74 72  %u.",........str
0680: 50 72 6f 63 4e 61 6d 65 2c 20 70 43 74 72 6c 45  ProcName, pCtrlE
0690: 76 65 6e 74 73 2d 3e 6e 50 61 72 61 6d 43 6f 75  vents->nParamCou
06a0: 6e 74 2b 31 29 3b 0d 0a 09 09 09 09 09 70 42 6b  nt+1);.......pBk
06b0: 45 6e 64 55 49 2d 3e 44 6f 4d 65 73 73 61 67 65  EndUI->DoMessage
06c0: 4c 69 6e 65 28 73 74 72 2c 20 6d 6d 42 6c 61 63  Line(str, mmBlac
06d0: 6b 45 72 72 29 3b 0d 0a 09 09 09 09 09 62 53 75  kErr);.......bSu
06e0: 63 63 65 73 73 20 3d 20 46 41 4c 53 45 3b 0d 0a  ccess = FALSE;..
06f0: 09 09 09 09 7d 0d 0a 09 09 09 7d 0d 0a 09 09 7d  ....}.....}....}
0700: 0d 0a 0d 0a 09 09 69 66 20 28 70 44 65 72 69 76  ......if (pDeriv
0710: 65 64 4f 62 6a 65 63 74 29 0d 0a 09 09 7b 0d 0a  edObject)....{..
0720: 09 09 09 65 76 65 6e 74 2e 6e 4f 62 6a 45 76 65  ...event.nObjEve
0730: 6e 74 20 3d 20 70 44 65 72 69 76 65 64 4f 62 6a  nt = pDerivedObj
0740: 65 63 74 2d 3e 46 69 6e 64 4d 65 74 68 6f 64 28  ect->FindMethod(
0750: 70 43 74 72 6c 45 76 65 6e 74 73 2d 3e 73 7a 52  pCtrlEvents->szR
0760: 75 73 4e 61 6d 65 29 3b 0d 0a 09 09 09 69 66 20  usName);.....if 
0770: 28 65 76 65 6e 74 2e 6e 4f 62 6a 45 76 65 6e 74  (event.nObjEvent
0780: 20 21 3d 20 2d 31 29 0d 0a 09 09 09 7b 0d 0a 09   != -1).....{...
0790: 09 09 09 69 66 20 28 70 44 65 72 69 76 65 64 4f  ...if (pDerivedO
07a0: 62 6a 65 63 74 2d 3e 47 65 74 4e 50 61 72 61 6d  bject->GetNParam
07b0: 73 28 65 76 65 6e 74 2e 6e 4f 62 6a 45 76 65 6e  s(event.nObjEven
07c0: 74 29 20 3e 20 70 43 74 72 6c 45 76 65 6e 74 73  t) > pCtrlEvents
07d0: 2d 3e 6e 50 61 72 61 6d 43 6f 75 6e 74 29 0d 0a  ->nParamCount)..
07e0: 09 09 09 09 7b 0d 0a 09 09 09 09 09 43 53 74 72  ....{.......CStr
07f0: 69 6e 67 20 73 74 72 3b 0d 0a 09 09 09 09 09 73  ing str;.......s
0800: 74 72 2e 46 6f 72 6d 61 74 28 22 ca ee eb e8 f7  tr.Format(".....
0810: e5 f1 f2 e2 ee 20 ef e0 f0 e0 ec e5 f2 f0 ee e2  ..... ..........
0820: 20 e2 20 f1 ee e1 fb f2 e8 e8 20 27 25 73 3a 3a   . ....... '%s::
0830: 25 73 27 20 20 e4 ee eb e6 ed ee 20 e1 fb f2 fc  %s'  ...... ....
0840: 20 ec e5 ed fc f8 e5 20 e8 eb e8 20 f0 e0 e2 ed   ...... ... ....
0850: ee 20 25 75 2e 22 2c 0d 0a 09 09 09 09 09 09 70  . %u.",........p
0860: 44 65 72 69 76 65 64 4f 62 6a 65 63 74 2d 3e 47  DerivedObject->G
0870: 65 74 54 79 70 65 53 74 72 69 6e 67 28 29 2c 20  etTypeString(), 
0880: 70 43 74 72 6c 45 76 65 6e 74 73 2d 3e 73 7a 52  pCtrlEvents->szR
0890: 75 73 4e 61 6d 65 2c 20 70 43 74 72 6c 45 76 65  usName, pCtrlEve
08a0: 6e 74 73 2d 3e 6e 50 61 72 61 6d 43 6f 75 6e 74  nts->nParamCount
08b0: 29 3b 0d 0a 09 09 09 09 09 70 42 6b 45 6e 64 55  );.......pBkEndU
08c0: 49 2d 3e 44 6f 4d 65 73 73 61 67 65 4c 69 6e 65  I->DoMessageLine
08d0: 28 73 74 72 2c 20 6d 6d 42 6c 61 63 6b 45 72 72  (str, mmBlackErr
08e0: 29 3b 0d 0a 09 09 09 09 09 62 53 75 63 63 65 73  );.......bSucces
08f0: 73 20 3d 20 46 41 4c 53 45 3b 0d 0a 09 09 09 09  s = FALSE;......
0900: 7d 0d 0a 09 09 09 7d 0d 0a 09 09 09 65 6c 73 65  }.....}.....else
0910: 0d 0a 09 09 09 7b 0d 0a 09 09 09 09 65 76 65 6e  .....{......even
0920: 74 2e 6e 4f 62 6a 45 76 65 6e 74 20 3d 20 70 44  t.nObjEvent = pD
0930: 65 72 69 76 65 64 4f 62 6a 65 63 74 2d 3e 46 69  erivedObject->Fi
0940: 6e 64 4d 65 74 68 6f 64 28 70 43 74 72 6c 45 76  ndMethod(pCtrlEv
0950: 65 6e 74 73 2d 3e 73 7a 45 6e 67 4e 61 6d 65 29  ents->szEngName)
0960: 3b 0d 0a 09 09 09 09 69 66 20 28 65 76 65 6e 74  ;......if (event
0970: 2e 6e 4f 62 6a 45 76 65 6e 74 20 21 3d 20 2d 31  .nObjEvent != -1
0980: 29 0d 0a 09 09 09 09 7b 0d 0a 09 09 09 09 09 69  )......{.......i
0990: 66 20 28 70 44 65 72 69 76 65 64 4f 62 6a 65 63  f (pDerivedObjec
09a0: 74 2d 3e 47 65 74 4e 50 61 72 61 6d 73 28 65 76  t->GetNParams(ev
09b0: 65 6e 74 2e 6e 4f 62 6a 45 76 65 6e 74 29 20 3e  ent.nObjEvent) >
09c0: 20 70 43 74 72 6c 45 76 65 6e 74 73 2d 3e 6e 50   pCtrlEvents->nP
09d0: 61 72 61 6d 43 6f 75 6e 74 29 0d 0a 09 09 09 09  aramCount)......
09e0: 09 7b 0d 0a 09 09 09 09 09 09 43 53 74 72 69 6e  .{........CStrin
09f0: 67 20 73 74 72 3b 0d 0a 09 09 09 09 09 09 73 74  g str;........st
0a00: 72 2e 46 6f 72 6d 61 74 28 22 ca ee eb e8 f7 e5  r.Format("......
0a10: f1 f2 e2 ee 20 ef e0 f0 e0 ec e5 f2 f0 ee e2 20  .... .......... 
0a20: e2 20 f1 ee e1 fb f2 e8 e8 20 27 25 73 3a 3a 25  . ....... '%s::%
0a30: 73 27 20 20 e4 ee eb e6 ed ee 20 e1 fb f2 fc 20  s'  ...... .... 
0a40: ec e5 ed fc f8 e5 20 e8 eb e8 20 f0 e0 e2 ed ee  ...... ... .....
0a50: 20 25 75 2e 22 2c 0d 0a 09 09 09 09 09 09 09 70   %u.",.........p
0a60: 44 65 72 69 76 65 64 4f 62 6a 65 63 74 2d 3e 47  DerivedObject->G
0a70: 65 74 54 79 70 65 53 74 72 69 6e 67 28 29 2c 20  etTypeString(), 
0a80: 70 43 74 72 6c 45 76 65 6e 74 73 2d 3e 73 7a 45  pCtrlEvents->szE
0a90: 6e 67 4e 61 6d 65 2c 20 70 43 74 72 6c 45 76 65  ngName, pCtrlEve
0aa0: 6e 74 73 2d 3e 6e 50 61 72 61 6d 43 6f 75 6e 74  nts->nParamCount
0ab0: 29 3b 0d 0a 09 09 09 09 09 09 70 42 6b 45 6e 64  );........pBkEnd
0ac0: 55 49 2d 3e 44 6f 4d 65 73 73 61 67 65 4c 69 6e  UI->DoMessageLin
0ad0: 65 28 73 74 72 2c 20 6d 6d 42 6c 61 63 6b 45 72  e(str, mmBlackEr
0ae0: 72 29 3b 0d 0a 09 09 09 09 09 09 62 53 75 63 63  r);........bSucc
0af0: 65 73 73 20 3d 20 46 41 4c 53 45 3b 0d 0a 09 09  ess = FALSE;....
0b00: 09 09 09 7d 0d 0a 09 09 09 09 7d 0d 0a 09 09 09  ...}......}.....
0b10: 7d 0d 0a 09 09 7d 0d 0a 09 09 65 6c 73 65 0d 0a  }....}....else..
0b20: 09 09 09 65 76 65 6e 74 2e 6e 4f 62 6a 45 76 65  ...event.nObjEve
0b30: 6e 74 20 3d 20 2d 31 3b 0d 0a 0d 0a 09 09 6d 5f  nt = -1;......m_
0b40: 65 76 65 6e 74 73 2e 41 64 64 28 65 76 65 6e 74  events.Add(event
0b50: 29 3b 0d 0a 0d 0a 09 7d 0d 0a 0d 0a 09 69 66 20  );.....}.....if 
0b60: 28 21 62 53 75 63 63 65 73 73 29 0d 0a 09 09 43  (!bSuccess)....C
0b70: 42 4c 4d 6f 64 75 6c 65 3a 3a 52 61 69 73 65 45  BLModule::RaiseE
0b80: 78 74 52 75 6e 74 69 6d 65 45 72 72 6f 72 28 22  xtRuntimeError("
0b90: ce f8 e8 e1 ea e0 20 ef ee e4 ea eb fe f7 e5 ed  ...... .........
0ba0: e8 ff 20 f1 ee e1 fb f2 e8 e9 22 2c 20 6d 6d 52  .. .......", mmR
0bb0: 65 64 45 72 72 29 3b 0d 0a 7d 0d 0a 0d 0a 42 4f  edErr);..}....BO
0bc0: 4f 4c 20 43 43 74 72 6c 45 76 65 6e 74 4d 61 6e  OL CCtrlEventMan
0bd0: 61 67 65 72 3a 3a 49 73 41 70 70 6f 69 6e 74 65  ager::IsAppointe
0be0: 64 28 69 6e 74 20 6e 45 76 65 6e 74 49 6e 64 65  d(int nEventInde
0bf0: 78 29 0d 0a 7b 0d 0a 09 73 74 45 76 65 6e 74 26  x)..{...stEvent&
0c00: 20 65 76 65 6e 74 20 3d 20 6d 5f 65 76 65 6e 74   event = m_event
0c10: 73 5b 6e 45 76 65 6e 74 49 6e 64 65 78 5d 3b 0d  s[nEventIndex];.
0c20: 0a 09 72 65 74 75 72 6e 20 65 76 65 6e 74 2e 6e  ..return event.n
0c30: 46 6f 72 6d 45 76 65 6e 74 20 21 3d 20 2d 31 20  FormEvent != -1 
0c40: 7c 7c 20 65 76 65 6e 74 2e 6e 4f 62 6a 45 76 65  || event.nObjEve
0c50: 6e 74 20 21 3d 20 2d 31 3b 0d 0a 7d 0d 0a 0d 0a  nt != -1;..}....
0c60: 42 4f 4f 4c 20 43 43 74 72 6c 45 76 65 6e 74 4d  BOOL CCtrlEventM
0c70: 61 6e 61 67 65 72 3a 3a 49 6e 76 6f 6b 65 28 69  anager::Invoke(i
0c80: 6e 74 20 6e 45 76 65 6e 74 49 6e 64 65 78 2c 20  nt nEventIndex, 
0c90: 2e 2e 2e 29 0d 0a 7b 0d 0a 20 20 20 20 43 54 79  ...)..{..    CTy
0ca0: 70 65 64 50 74 72 41 72 72 61 79 3c 43 50 74 72  pedPtrArray<CPtr
0cb0: 41 72 72 61 79 2c 20 43 56 61 6c 75 65 2a 3e 20  Array, CValue*> 
0cc0: 70 61 72 61 6d 73 3b 0d 0a 20 20 20 20 43 56 61  params;..    CVa
0cd0: 6c 75 65 20 76 43 74 72 6c 3b 0d 0a 20 20 20 20  lue vCtrl;..    
0ce0: 76 43 74 72 6c 2e 41 73 73 69 67 6e 43 6f 6e 74  vCtrl.AssignCont
0cf0: 65 78 74 28 6d 5f 70 43 74 72 6c 4f 62 6a 65 63  ext(m_pCtrlObjec
0d00: 74 29 3b 0d 0a 20 20 20 20 70 61 72 61 6d 73 2e  t);..    params.
0d10: 41 64 64 28 26 76 43 74 72 6c 29 3b 0d 0a 0d 0a  Add(&vCtrl);....
0d20: 20 20 20 20 76 61 5f 6c 69 73 74 20 70 61 72 5f      va_list par_
0d30: 69 74 3b 0d 0a 20 20 20 20 76 61 5f 73 74 61 72  it;..    va_star
0d40: 74 28 70 61 72 5f 69 74 2c 20 6e 45 76 65 6e 74  t(par_it, nEvent
0d50: 49 6e 64 65 78 29 3b 0d 0a 20 20 20 20 66 6f 72  Index);..    for
0d60: 20 28 69 6e 74 20 69 20 3d 20 30 3b 20 69 20 3c   (int i = 0; i <
0d70: 20 6d 5f 70 43 74 72 6c 45 76 65 6e 74 73 5b 6e   m_pCtrlEvents[n
0d80: 45 76 65 6e 74 49 6e 64 65 78 5d 2e 6e 50 61 72  EventIndex].nPar
0d90: 61 6d 43 6f 75 6e 74 3b 20 69 2b 2b 29 0d 0a 20  amCount; i++).. 
0da0: 20 20 20 20 20 20 20 70 61 72 61 6d 73 2e 41 64         params.Ad
0db0: 64 28 76 61 5f 61 72 67 28 70 61 72 5f 69 74 2c  d(va_arg(par_it,
0dc0: 20 43 56 61 6c 75 65 2a 29 29 3b 0d 0a 20 20 20   CValue*));..   
0dd0: 20 76 61 5f 65 6e 64 28 70 61 72 5f 69 74 29 3b   va_end(par_it);
0de0: 0d 0a 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 49  ....    return I
0df0: 6e 76 6f 6b 65 45 76 65 6e 74 28 6e 45 76 65 6e  nvokeEvent(nEven
0e00: 74 49 6e 64 65 78 2c 20 28 43 56 61 6c 75 65 2a  tIndex, (CValue*
0e10: 2a 29 28 70 61 72 61 6d 73 2e 47 65 74 44 61 74  *)(params.GetDat
0e20: 61 28 29 29 29 3b 0d 0a 7d 0d 0a 0d 0a 42 4f 4f  a()));..}....BOO
0e30: 4c 20 43 43 74 72 6c 45 76 65 6e 74 4d 61 6e 61  L CCtrlEventMana
0e40: 67 65 72 3a 3a 49 6e 76 6f 6b 65 30 28 69 6e 74  ger::Invoke0(int
0e50: 20 6e 45 76 65 6e 74 49 6e 64 65 78 29 0d 0a 7b   nEventIndex)..{
0e60: 0d 0a 09 43 56 61 6c 75 65 20 76 43 74 72 6c 3b  ...CValue vCtrl;
0e70: 0d 0a 20 20 20 20 76 43 74 72 6c 2e 41 73 73 69  ..    vCtrl.Assi
0e80: 67 6e 43 6f 6e 74 65 78 74 28 6d 5f 70 43 74 72  gnContext(m_pCtr
0e90: 6c 4f 62 6a 65 63 74 29 3b 0d 0a 20 20 20 20 43  lObject);..    C
0ea0: 56 61 6c 75 65 2a 20 70 56 61 6c 75 65 20 3d 20  Value* pValue = 
0eb0: 26 76 43 74 72 6c 3b 0d 0a 20 20 20 20 72 65 74  &vCtrl;..    ret
0ec0: 75 72 6e 20 49 6e 76 6f 6b 65 45 76 65 6e 74 28  urn InvokeEvent(
0ed0: 6e 45 76 65 6e 74 49 6e 64 65 78 2c 20 26 70 56  nEventIndex, &pV
0ee0: 61 6c 75 65 29 3b 0d 0a 7d 0d 0a 0d 0a 42 4f 4f  alue);..}....BOO
0ef0: 4c 20 43 43 74 72 6c 45 76 65 6e 74 4d 61 6e 61  L CCtrlEventMana
0f00: 67 65 72 3a 3a 49 6e 76 6f 6b 65 31 28 69 6e 74  ger::Invoke1(int
0f10: 20 6e 45 76 65 6e 74 49 6e 64 65 78 2c 20 43 56   nEventIndex, CV
0f20: 61 6c 75 65 26 20 76 50 31 29 0d 0a 7b 0d 0a 20  alue& vP1)..{.. 
0f30: 20 20 20 43 56 61 6c 75 65 20 76 43 74 72 6c 3b     CValue vCtrl;
0f40: 0d 0a 20 20 20 20 76 43 74 72 6c 2e 41 73 73 69  ..    vCtrl.Assi
0f50: 67 6e 43 6f 6e 74 65 78 74 28 6d 5f 70 43 74 72  gnContext(m_pCtr
0f60: 6c 4f 62 6a 65 63 74 29 3b 0d 0a 20 20 20 20 43  lObject);..    C
0f70: 56 61 6c 75 65 2a 20 70 70 56 61 6c 75 65 73 5b  Value* ppValues[
0f80: 5d 20 3d 20 7b 26 76 43 74 72 6c 2c 20 26 76 50  ] = {&vCtrl, &vP
0f90: 31 7d 3b 0d 0a 20 20 20 20 72 65 74 75 72 6e 20  1};..    return 
0fa0: 49 6e 76 6f 6b 65 45 76 65 6e 74 28 6e 45 76 65  InvokeEvent(nEve
0fb0: 6e 74 49 6e 64 65 78 2c 20 70 70 56 61 6c 75 65  ntIndex, ppValue
0fc0: 73 29 3b 0d 0a 7d 0d 0a 0d 0a 42 4f 4f 4c 20 43  s);..}....BOOL C
0fd0: 43 74 72 6c 45 76 65 6e 74 4d 61 6e 61 67 65 72  CtrlEventManager
0fe0: 3a 3a 49 6e 76 6f 6b 65 32 28 69 6e 74 20 6e 45  ::Invoke2(int nE
0ff0: 76 65 6e 74 49 6e 64 65 78 2c 20 43 56 61 6c 75  ventIndex, CValu
1000: 65 26 20 76 50 31 2c 20 43 56 61 6c 75 65 26 20  e& vP1, CValue& 
1010: 76 50 32 29 0d 0a 7b 0d 0a 20 20 20 20 43 56 61  vP2)..{..    CVa
1020: 6c 75 65 20 76 43 74 72 6c 3b 0d 0a 20 20 20 20  lue vCtrl;..    
1030: 76 43 74 72 6c 2e 41 73 73 69 67 6e 43 6f 6e 74  vCtrl.AssignCont
1040: 65 78 74 28 6d 5f 70 43 74 72 6c 4f 62 6a 65 63  ext(m_pCtrlObjec
1050: 74 29 3b 0d 0a 20 20 20 20 43 56 61 6c 75 65 2a  t);..    CValue*
1060: 20 70 70 56 61 6c 75 65 73 5b 5d 20 3d 20 7b 26   ppValues[] = {&
1070: 76 43 74 72 6c 2c 20 26 76 50 31 2c 20 26 76 50  vCtrl, &vP1, &vP
1080: 32 7d 3b 0d 0a 20 20 20 20 72 65 74 75 72 6e 20  2};..    return 
1090: 49 6e 76 6f 6b 65 45 76 65 6e 74 28 6e 45 76 65  InvokeEvent(nEve
10a0: 6e 74 49 6e 64 65 78 2c 20 70 70 56 61 6c 75 65  ntIndex, ppValue
10b0: 73 29 3b 0d 0a 7d 0d 0a 0d 0a 42 4f 4f 4c 20 43  s);..}....BOOL C
10c0: 43 74 72 6c 45 76 65 6e 74 4d 61 6e 61 67 65 72  CtrlEventManager
10d0: 3a 3a 49 6e 76 6f 6b 65 33 28 69 6e 74 20 6e 45  ::Invoke3(int nE
10e0: 76 65 6e 74 49 6e 64 65 78 2c 20 43 56 61 6c 75  ventIndex, CValu
10f0: 65 26 20 76 50 31 2c 20 43 56 61 6c 75 65 26 20  e& vP1, CValue& 
1100: 76 50 32 2c 20 43 56 61 6c 75 65 26 20 76 50 33  vP2, CValue& vP3
1110: 29 0d 0a 7b 0d 0a 20 20 20 20 43 56 61 6c 75 65  )..{..    CValue
1120: 20 76 43 74 72 6c 3b 0d 0a 20 20 20 20 76 43 74   vCtrl;..    vCt
1130: 72 6c 2e 41 73 73 69 67 6e 43 6f 6e 74 65 78 74  rl.AssignContext
1140: 28 6d 5f 70 43 74 72 6c 4f 62 6a 65 63 74 29 3b  (m_pCtrlObject);
1150: 0d 0a 20 20 20 20 43 56 61 6c 75 65 2a 20 70 70  ..    CValue* pp
1160: 56 61 6c 75 65 73 5b 5d 20 3d 20 7b 26 76 43 74  Values[] = {&vCt
1170: 72 6c 2c 20 26 76 50 31 2c 20 26 76 50 32 2c 20  rl, &vP1, &vP2, 
1180: 26 76 50 33 7d 3b 0d 0a 20 20 20 20 72 65 74 75  &vP3};..    retu
1190: 72 6e 20 49 6e 76 6f 6b 65 45 76 65 6e 74 28 6e  rn InvokeEvent(n
11a0: 45 76 65 6e 74 49 6e 64 65 78 2c 20 70 70 56 61  EventIndex, ppVa
11b0: 6c 75 65 73 29 3b 0d 0a 7d 0d 0a 0d 0a 42 4f 4f  lues);..}....BOO
11c0: 4c 20 43 43 74 72 6c 45 76 65 6e 74 4d 61 6e 61  L CCtrlEventMana
11d0: 67 65 72 3a 3a 49 6e 76 6f 6b 65 34 28 69 6e 74  ger::Invoke4(int
11e0: 20 6e 45 76 65 6e 74 49 6e 64 65 78 2c 20 43 56   nEventIndex, CV
11f0: 61 6c 75 65 26 20 76 50 31 2c 20 43 56 61 6c 75  alue& vP1, CValu
1200: 65 26 20 76 50 32 2c 20 43 56 61 6c 75 65 26 20  e& vP2, CValue& 
1210: 76 50 33 2c 20 43 56 61 6c 75 65 26 20 76 50 34  vP3, CValue& vP4
1220: 29 0d 0a 7b 0d 0a 20 20 20 20 43 56 61 6c 75 65  )..{..    CValue
1230: 20 76 43 74 72 6c 3b 0d 0a 20 20 20 20 76 43 74   vCtrl;..    vCt
1240: 72 6c 2e 41 73 73 69 67 6e 43 6f 6e 74 65 78 74  rl.AssignContext
1250: 28 6d 5f 70 43 74 72 6c 4f 62 6a 65 63 74 29 3b  (m_pCtrlObject);
1260: 0d 0a 20 20 20 20 43 56 61 6c 75 65 2a 20 70 70  ..    CValue* pp
1270: 56 61 6c 75 65 73 5b 5d 20 3d 20 7b 26 76 43 74  Values[] = {&vCt
1280: 72 6c 2c 20 26 76 50 31 2c 20 26 76 50 32 2c 20  rl, &vP1, &vP2, 
1290: 26 76 50 33 2c 20 26 76 50 34 7d 3b 0d 0a 20 20  &vP3, &vP4};..  
12a0: 20 20 72 65 74 75 72 6e 20 49 6e 76 6f 6b 65 45    return InvokeE
12b0: 76 65 6e 74 28 6e 45 76 65 6e 74 49 6e 64 65 78  vent(nEventIndex
12c0: 2c 20 70 70 56 61 6c 75 65 73 29 3b 0d 0a 7d 0d  , ppValues);..}.
12d0: 0a 0d 0a 42 4f 4f 4c 20 43 43 74 72 6c 45 76 65  ...BOOL CCtrlEve
12e0: 6e 74 4d 61 6e 61 67 65 72 3a 3a 49 6e 76 6f 6b  ntManager::Invok
12f0: 65 35 28 69 6e 74 20 6e 45 76 65 6e 74 49 6e 64  e5(int nEventInd
1300: 65 78 2c 20 43 56 61 6c 75 65 26 20 76 50 31 2c  ex, CValue& vP1,
1310: 20 43 56 61 6c 75 65 26 20 76 50 32 2c 20 43 56   CValue& vP2, CV
1320: 61 6c 75 65 26 20 76 50 33 2c 20 43 56 61 6c 75  alue& vP3, CValu
1330: 65 26 20 76 50 34 2c 20 43 56 61 6c 75 65 26 20  e& vP4, CValue& 
1340: 76 50 35 29 0d 0a 7b 0d 0a 20 20 20 20 43 56 61  vP5)..{..    CVa
1350: 6c 75 65 20 76 43 74 72 6c 3b 0d 0a 20 20 20 20  lue vCtrl;..    
1360: 76 43 74 72 6c 2e 41 73 73 69 67 6e 43 6f 6e 74  vCtrl.AssignCont
1370: 65 78 74 28 6d 5f 70 43 74 72 6c 4f 62 6a 65 63  ext(m_pCtrlObjec
1380: 74 29 3b 0d 0a 20 20 20 20 43 56 61 6c 75 65 2a  t);..    CValue*
1390: 20 70 70 56 61 6c 75 65 73 5b 5d 20 3d 20 7b 26   ppValues[] = {&
13a0: 76 43 74 72 6c 2c 20 26 76 50 31 2c 20 26 76 50  vCtrl, &vP1, &vP
13b0: 32 2c 20 26 76 50 33 2c 20 26 76 50 34 2c 20 26  2, &vP3, &vP4, &
13c0: 76 50 35 7d 3b 0d 0a 20 20 20 20 72 65 74 75 72  vP5};..    retur
13d0: 6e 20 49 6e 76 6f 6b 65 45 76 65 6e 74 28 6e 45  n InvokeEvent(nE
13e0: 76 65 6e 74 49 6e 64 65 78 2c 20 70 70 56 61 6c  ventIndex, ppVal
13f0: 75 65 73 29 3b 0d 0a 7d 0d 0a 0d 0a 42 4f 4f 4c  ues);..}....BOOL
1400: 20 43 43 74 72 6c 45 76 65 6e 74 4d 61 6e 61 67   CCtrlEventManag
1410: 65 72 3a 3a 49 6e 76 6f 6b 65 36 28 69 6e 74 20  er::Invoke6(int 
1420: 6e 45 76 65 6e 74 49 6e 64 65 78 2c 20 43 56 61  nEventIndex, CVa
1430: 6c 75 65 26 20 76 50 31 2c 20 43 56 61 6c 75 65  lue& vP1, CValue
1440: 26 20 76 50 32 2c 20 43 56 61 6c 75 65 26 20 76  & vP2, CValue& v
1450: 50 33 2c 20 43 56 61 6c 75 65 26 20 76 50 34 2c  P3, CValue& vP4,
1460: 20 43 56 61 6c 75 65 26 20 76 50 35 2c 20 43 56   CValue& vP5, CV
1470: 61 6c 75 65 26 20 76 50 36 29 0d 0a 7b 0d 0a 20  alue& vP6)..{.. 
1480: 20 20 20 43 56 61 6c 75 65 20 76 43 74 72 6c 3b     CValue vCtrl;
1490: 0d 0a 20 20 20 20 76 43 74 72 6c 2e 41 73 73 69  ..    vCtrl.Assi
14a0: 67 6e 43 6f 6e 74 65 78 74 28 6d 5f 70 43 74 72  gnContext(m_pCtr
14b0: 6c 4f 62 6a 65 63 74 29 3b 0d 0a 20 20 20 20 43  lObject);..    C
14c0: 56 61 6c 75 65 2a 20 70 70 56 61 6c 75 65 73 5b  Value* ppValues[
14d0: 5d 20 3d 20 7b 26 76 43 74 72 6c 2c 20 26 76 50  ] = {&vCtrl, &vP
14e0: 31 2c 20 26 76 50 32 2c 20 26 76 50 33 2c 20 26  1, &vP2, &vP3, &
14f0: 76 50 34 2c 20 26 76 50 35 2c 20 26 76 50 36 7d  vP4, &vP5, &vP6}
1500: 3b 0d 0a 20 20 20 20 72 65 74 75 72 6e 20 49 6e  ;..    return In
1510: 76 6f 6b 65 45 76 65 6e 74 28 6e 45 76 65 6e 74  vokeEvent(nEvent
1520: 49 6e 64 65 78 2c 20 70 70 56 61 6c 75 65 73 29  Index, ppValues)
1530: 3b 0d 0a 7d 0d 0a 0d 0a 43 42 4c 43 6f 6e 74 65  ;..}....CBLConte
1540: 78 74 2a 20 43 43 74 72 6c 45 76 65 6e 74 4d 61  xt* CCtrlEventMa
1550: 6e 61 67 65 72 3a 3a 47 65 74 43 74 72 6c 4f 62  nager::GetCtrlOb
1560: 6a 65 63 74 28 29 20 63 6f 6e 73 74 0d 0a 7b 0d  ject() const..{.
1570: 0a 20 20 20 20 72 65 74 75 72 6e 20 6d 5f 70 43  .    return m_pC
1580: 74 72 6c 4f 62 6a 65 63 74 3b 0d 0a 7d 0d 0a 0d  trlObject;..}...
1590: 0a 76 6f 69 64 20 43 43 74 72 6c 45 76 65 6e 74  .void CCtrlEvent
15a0: 4d 61 6e 61 67 65 72 3a 3a 53 65 74 43 74 72 6c  Manager::SetCtrl
15b0: 4f 62 6a 65 63 74 28 43 42 4c 43 6f 6e 74 65 78  Object(CBLContex
15c0: 74 2a 20 70 43 74 72 6c 4f 62 6a 65 63 74 29 0d  t* pCtrlObject).
15d0: 0a 7b 0d 0a 20 20 20 20 6d 5f 70 43 74 72 6c 4f  .{..    m_pCtrlO
15e0: 62 6a 65 63 74 20 3d 20 70 43 74 72 6c 4f 62 6a  bject = pCtrlObj
15f0: 65 63 74 3b 0d 0a 7d 0d 0a 0d 0a 43 42 4c 43 6f  ect;..}....CBLCo
1600: 6e 74 65 78 74 2a 20 43 43 74 72 6c 45 76 65 6e  ntext* CCtrlEven
1610: 74 4d 61 6e 61 67 65 72 3a 3a 47 65 74 44 65 72  tManager::GetDer
1620: 69 76 65 64 4f 62 6a 65 63 74 28 29 20 63 6f 6e  ivedObject() con
1630: 73 74 0d 0a 7b 0d 0a 20 20 20 20 72 65 74 75 72  st..{..    retur
1640: 6e 20 6d 5f 70 44 65 72 69 76 65 64 4f 62 6a 65  n m_pDerivedObje
1650: 63 74 3b 0d 0a 7d 0d 0a 0d 0a 42 4f 4f 4c 20 43  ct;..}....BOOL C
1660: 43 74 72 6c 45 76 65 6e 74 4d 61 6e 61 67 65 72  CtrlEventManager
1670: 3a 3a 49 6e 76 6f 6b 65 45 76 65 6e 74 28 69 6e  ::InvokeEvent(in
1680: 74 20 6e 45 76 65 6e 74 49 6e 64 65 78 2c 20 43  t nEventIndex, C
1690: 56 61 6c 75 65 2a 2a 20 70 70 56 61 6c 75 65 73  Value** ppValues
16a0: 50 61 72 61 6d 73 29 0d 0a 7b 0d 0a 20 20 20 20  Params)..{..    
16b0: 42 4f 4f 4c 20 62 53 75 63 63 65 73 73 20 3d 20  BOOL bSuccess = 
16c0: 54 52 55 45 3b 0d 0a 20 20 20 20 73 74 45 76 65  TRUE;..    stEve
16d0: 6e 74 26 20 65 76 65 6e 74 20 3d 20 6d 5f 65 76  nt& event = m_ev
16e0: 65 6e 74 73 5b 6e 45 76 65 6e 74 49 6e 64 65 78  ents[nEventIndex
16f0: 5d 3b 0d 0a 0d 0a 09 69 66 20 28 65 76 65 6e 74  ];.....if (event
1700: 2e 6e 4f 62 6a 45 76 65 6e 74 20 21 3d 20 2d 31  .nObjEvent != -1
1710: 29 0d 0a 09 09 62 53 75 63 63 65 73 73 20 3d 20  )....bSuccess = 
1720: 6d 5f 70 44 65 72 69 76 65 64 4f 62 6a 65 63 74  m_pDerivedObject
1730: 2d 3e 43 61 6c 6c 41 73 50 72 6f 63 28 65 76 65  ->CallAsProc(eve
1740: 6e 74 2e 6e 4f 62 6a 45 76 65 6e 74 2c 20 70 70  nt.nObjEvent, pp
1750: 56 61 6c 75 65 73 50 61 72 61 6d 73 20 2b 20 31  ValuesParams + 1
1760: 29 3b 0d 0a 0d 0a 09 69 66 20 28 62 53 75 63 63  );.....if (bSucc
1770: 65 73 73 20 26 26 20 65 76 65 6e 74 2e 6e 46 6f  ess && event.nFo
1780: 72 6d 45 76 65 6e 74 20 21 3d 20 2d 31 29 0d 0a  rmEvent != -1)..
1790: 09 09 6d 5f 70 4d 6f 64 75 6c 65 2d 3e 43 61 6c  ..m_pModule->Cal
17a0: 6c 41 73 50 72 6f 63 28 65 76 65 6e 74 2e 6e 46  lAsProc(event.nF
17b0: 6f 72 6d 45 76 65 6e 74 2c 20 6d 5f 70 43 74 72  ormEvent, m_pCtr
17c0: 6c 45 76 65 6e 74 73 5b 6e 45 76 65 6e 74 49 6e  lEvents[nEventIn
17d0: 64 65 78 5d 2e 6e 50 61 72 61 6d 43 6f 75 6e 74  dex].nParamCount
17e0: 20 2b 20 31 2c 20 70 70 56 61 6c 75 65 73 50 61   + 1, ppValuesPa
17f0: 72 61 6d 73 29 3b 0d 0a 20 20 20 20 0d 0a 20 20  rams);..    ..  
1800: 20 20 72 65 74 75 72 6e 20 62 53 75 63 63 65 73    return bSucces
1810: 73 3b 0d 0a 7d 0d 0a                             s;..}..