Hex Artifact Content Вы: nobody
Вход

Artifact a633481182cc1cb9d462bcb478d72dfdb26bb89f:


0000: ef bb bf 24 65 6e 67 69 6e 65 20 4a 53 63 72 69  ...$engine JScri
0010: 70 74 0d 0a 24 75 6e 61 6d 65 20 76 38 45 70 66  pt..$uname v8Epf
0020: 0d 0a 24 64 6e 61 6d 65 20 d0 9e d0 b1 d1 80 d0  ..$dname .......
0030: b0 d0 b1 d0 be d1 82 d0 ba d0 b8 20 31 d0 a1 0d  ........... 1...
0040: 0a 24 61 64 64 69 6e 20 73 74 64 6c 69 62 0d 0a  .$addin stdlib..
0050: 0d 0a 45 70 66 4c 6f 61 64 65 72 20 3d 20 6e 65  ..EpfLoader = ne
0060: 77 20 28 73 74 64 6c 69 62 2e 43 6c 61 73 73 2e  w (stdlib.Class.
0070: 65 78 74 65 6e 64 28 7b 0d 0a 0d 0a 09 63 6f 6e  extend({.....con
0080: 73 74 72 75 63 74 20 3a 20 66 75 6e 63 74 69 6f  struct : functio
0090: 6e 28 29 20 7b 0d 0a 09 09 74 68 69 73 2e 76 38  n() {....this.v8
00a0: 20 3d 20 6e 65 77 20 41 63 74 69 76 65 58 4f 62   = new ActiveXOb
00b0: 6a 65 63 74 28 22 56 38 32 2e 41 70 70 6c 69 63  ject("V82.Applic
00c0: 61 74 69 6f 6e 22 29 3b 0d 0a 09 09 74 68 69 73  ation");....this
00d0: 2e 76 38 2e 43 6f 6e 6e 65 63 74 28 27 46 69 6c  .v8.Connect('Fil
00e0: 65 3d 22 27 20 2b 20 74 68 69 73 2e 67 65 74 49  e="' + this.getI
00f0: 62 50 61 74 68 28 29 20 2b 20 27 22 3b 27 29 3b  bPath() + '";');
0100: 0d 0a 09 09 0d 0a 09 09 76 61 72 20 6c 69 62 73  ........var libs
0110: 20 3d 20 76 38 4e 65 77 28 27 53 74 72 75 63 74   = v8New('Struct
0120: 75 72 65 27 29 3b 0d 0a 09 09 6c 69 62 73 2e 49  ure');....libs.I
0130: 6e 73 65 72 74 28 27 d0 a1 d1 82 d0 b0 d0 bd d0  nsert('.........
0140: b4 d0 b0 d1 80 d1 82 d0 bd d0 b0 d1 8f d0 91 d0  ................
0150: b8 d0 b1 d0 bb d0 b8 d0 be d1 82 d0 b5 d0 ba d0  ................
0160: b0 27 2c 20 73 74 64 6c 69 62 29 3b 0d 0a 09 09  .', stdlib);....
0170: 0d 0a 09 09 74 68 69 73 2e 76 38 2e 49 6e 69 74  ....this.v8.Init
0180: 28 44 65 73 69 67 6e 65 72 2c 20 6c 69 62 73 29  (Designer, libs)
0190: 3b 0d 0a 09 09 0d 0a 09 09 74 68 69 73 2e 6c 6f  ;........this.lo
01a0: 61 64 41 6c 6c 45 70 66 28 29 3b 09 09 0d 0a 09  adAllEpf();.....
01b0: 09 65 76 65 6e 74 73 2e 63 6f 6e 6e 65 63 74 28  .events.connect(
01c0: 44 65 73 69 67 6e 65 72 2c 20 22 62 65 66 6f 72  Designer, "befor
01d0: 65 45 78 69 74 41 70 70 22 2c 20 74 68 69 73 2c  eExitApp", this,
01e0: 20 27 64 65 73 74 72 75 63 74 27 29 3b 0d 0a 09   'destruct');...
01f0: 7d 2c 0d 0a 09 0d 0a 09 64 65 73 74 72 75 63 74  },......destruct
0200: 3a 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d 0a  : function() {..
0210: 09 09 74 68 69 73 2e 75 6e 6c 6f 61 64 41 6c 6c  ..this.unloadAll
0220: 45 70 66 28 29 3b 0d 0a 09 09 64 65 6c 65 74 65  Epf();....delete
0230: 20 74 68 69 73 2e 76 38 3b 0d 0a 09 09 64 65 6c   this.v8;....del
0240: 65 74 65 20 74 68 69 73 2e 6d 61 63 72 6f 73 65  ete this.macrose
0250: 73 3b 0d 0a 09 7d 2c 0d 0a 09 09 0d 0a 09 67 65  s;...},.......ge
0260: 74 49 62 50 61 74 68 20 3a 20 66 75 6e 63 74 69  tIbPath : functi
0270: 6f 6e 28 29 20 7b 0d 0a 09 09 72 65 74 75 72 6e  on() {....return
0280: 20 74 68 69 73 2e 67 65 74 45 70 66 52 6f 6f 74   this.getEpfRoot
0290: 50 61 74 68 28 29 20 2b 20 22 5c 5c 69 62 22 3b  Path() + "\\ib";
02a0: 0d 0a 09 7d 2c 0d 0a 09 0d 0a 09 67 65 74 45 70  ...},......getEp
02b0: 66 52 6f 6f 74 50 61 74 68 20 3a 20 66 75 6e 63  fRootPath : func
02c0: 74 69 6f 6e 28 29 20 7b 0d 0a 09 09 72 65 74 75  tion() {....retu
02d0: 72 6e 20 73 74 64 6c 69 62 2e 67 65 74 53 6e 65  rn stdlib.getSne
02e0: 67 6f 70 61 74 4d 61 69 6e 46 6f 6c 64 65 72 28  gopatMainFolder(
02f0: 29 20 2b 20 22 73 63 72 69 70 74 73 5c 5c 65 70  ) + "scripts\\ep
0300: 66 22 3b 0d 0a 09 7d 2c 0d 0a 09 0d 0a 09 6c 6f  f";...},......lo
0310: 61 64 41 6c 6c 45 70 66 3a 20 66 75 6e 63 74 69  adAllEpf: functi
0320: 6f 6e 28 29 20 7b 0d 0a 09 09 76 61 72 20 66 73  on() {....var fs
0330: 6f 20 3d 20 6e 65 77 20 41 63 74 69 76 65 58 4f  o = new ActiveXO
0340: 62 6a 65 63 74 28 22 53 63 72 69 70 74 69 6e 67  bject("Scripting
0350: 2e 46 69 6c 65 53 79 73 74 65 6d 4f 62 6a 65 63  .FileSystemObjec
0360: 74 22 29 3b 0d 0a 09 09 76 61 72 20 72 65 5f 65  t");....var re_e
0370: 70 66 20 3d 20 2f 5c 2e 65 70 66 24 2f 69 3b 0d  pf = /\.epf$/i;.
0380: 0a 09 09 28 66 75 6e 63 74 69 6f 6e 20 28 6c 6f  ...(function (lo
0390: 61 64 65 72 2c 20 72 6f 6f 74 29 20 7b 0d 0a 09  ader, root) {...
03a0: 09 09 76 61 72 20 66 6f 6c 64 65 72 20 3d 20 66  ..var folder = f
03b0: 73 6f 2e 47 65 74 46 6f 6c 64 65 72 28 72 6f 6f  so.GetFolder(roo
03c0: 74 29 3b 0d 0a 09 09 09 76 61 72 20 66 6f 6c 64  t);.....var fold
03d0: 65 72 73 20 3d 20 6e 65 77 20 45 6e 75 6d 65 72  ers = new Enumer
03e0: 61 74 6f 72 28 66 6f 6c 64 65 72 2e 53 75 62 46  ator(folder.SubF
03f0: 6f 6c 64 65 72 73 29 3b 0d 0a 09 09 09 66 6f 72  olders);.....for
0400: 20 28 3b 20 21 66 6f 6c 64 65 72 73 2e 61 74 45   (; !folders.atE
0410: 6e 64 28 29 3b 20 66 6f 6c 64 65 72 73 2e 6d 6f  nd(); folders.mo
0420: 76 65 4e 65 78 74 28 29 29 20 7b 0d 0a 09 09 09  veNext()) {.....
0430: 09 61 72 67 75 6d 65 6e 74 73 2e 63 61 6c 6c 65  .arguments.calle
0440: 65 28 6c 6f 61 64 65 72 2c 20 66 6f 6c 64 65 72  e(loader, folder
0450: 73 2e 69 74 65 6d 28 29 2e 50 61 74 68 29 3b 0d  s.item().Path);.
0460: 0a 09 09 09 7d 0d 0a 09 09 09 76 61 72 20 66 69  ....}.....var fi
0470: 6c 65 73 20 3d 20 6e 65 77 20 45 6e 75 6d 65 72  les = new Enumer
0480: 61 74 6f 72 28 66 6f 6c 64 65 72 2e 46 69 6c 65  ator(folder.File
0490: 73 29 3b 0d 0a 09 09 09 66 6f 72 20 28 3b 20 21  s);.....for (; !
04a0: 66 69 6c 65 73 2e 61 74 45 6e 64 28 29 3b 20 66  files.atEnd(); f
04b0: 69 6c 65 73 2e 6d 6f 76 65 4e 65 78 74 28 29 29  iles.moveNext())
04c0: 20 7b 0d 0a 09 09 09 09 76 61 72 20 66 69 6c 65   {......var file
04d0: 20 3d 20 66 69 6c 65 73 2e 69 74 65 6d 28 29 3b   = files.item();
04e0: 0d 0a 09 09 09 09 69 66 20 28 72 65 5f 65 70 66  ......if (re_epf
04f0: 2e 74 65 73 74 28 66 69 6c 65 2e 4e 61 6d 65 29  .test(file.Name)
0500: 29 20 7b 0d 0a 09 09 09 09 09 6c 6f 61 64 65 72  ) {.......loader
0510: 2e 6c 6f 61 64 45 70 66 28 66 69 6c 65 2e 50 61  .loadEpf(file.Pa
0520: 74 68 29 3b 0d 0a 09 09 09 09 7d 0d 0a 09 09 09  th);......}.....
0530: 7d 0d 0a 09 09 7d 29 28 74 68 69 73 2c 20 74 68  }....})(this, th
0540: 69 73 2e 67 65 74 45 70 66 52 6f 6f 74 50 61 74  is.getEpfRootPat
0550: 68 28 29 29 3b 0d 0a 09 7d 2c 0d 0a 09 0d 0a 09  h());...},......
0560: 6c 6f 61 64 45 70 66 3a 20 66 75 6e 63 74 69 6f  loadEpf: functio
0570: 6e 28 70 61 74 68 29 20 7b 0d 0a 09 09 74 68 69  n(path) {....thi
0580: 73 2e 6d 61 63 72 6f 73 65 73 20 3d 20 6e 65 77  s.macroses = new
0590: 20 41 72 72 61 79 28 29 3b 0d 0a 09 09 76 61 72   Array();....var
05a0: 20 65 70 66 20 3d 20 74 68 69 73 2e 76 38 2e 4c   epf = this.v8.L
05b0: 6f 61 64 45 70 66 28 70 61 74 68 29 3b 0d 0a 09  oadEpf(path);...
05c0: 09 69 66 20 28 65 70 66 29 20 7b 0d 0a 09 09 09  .if (epf) {.....
05d0: 76 61 72 20 65 70 66 4e 61 6d 65 20 3d 20 65 70  var epfName = ep
05e0: 66 2e 4d 65 74 61 64 61 74 61 28 29 2e 4e 61 6d  f.Metadata().Nam
05f0: 65 3b 0d 0a 09 09 09 76 61 72 20 6d 61 63 72 6f  e;.....var macro
0600: 73 65 73 20 3d 20 74 68 69 73 2e 76 38 2e 47 65  ses = this.v8.Ge
0610: 74 4d 61 63 72 6f 73 65 73 28 65 70 66 29 3b 0d  tMacroses(epf);.
0620: 0a 09 09 09 66 6f 72 20 28 76 61 72 20 69 3d 30  ....for (var i=0
0630: 3b 20 69 3c 6d 61 63 72 6f 73 65 73 2e 43 6f 75  ; i<macroses.Cou
0640: 6e 74 28 29 3b 20 69 2b 2b 29 20 7b 2f 2f d0 bc  nt(); i++) {//..
0650: d0 b0 d0 ba d1 80 d0 be d1 81 0d 0a 09 09 09 09  ................
0660: 74 68 69 73 2e 61 64 64 45 70 66 4d 61 63 72 6f  this.addEpfMacro
0670: 73 28 65 70 66 2c 20 65 70 66 4e 61 6d 65 2c 20  s(epf, epfName, 
0680: 6d 61 63 72 6f 73 65 73 2e 47 65 74 28 69 29 29  macroses.Get(i))
0690: 3b 0d 0a 09 09 09 7d 0d 0a 09 09 7d 0d 0a 09 7d  ;.....}....}...}
06a0: 2c 0d 0a 09 0d 0a 09 61 64 64 45 70 66 4d 61 63  ,......addEpfMac
06b0: 72 6f 73 3a 20 66 75 6e 63 74 69 6f 6e 28 65 70  ros: function(ep
06c0: 66 2c 20 65 70 66 4e 61 6d 65 2c 20 6d 61 63 72  f, epfName, macr
06d0: 6f 4e 61 6d 65 29 20 7b 0d 0a 09 09 76 61 72 20  oName) {....var 
06e0: 6e 61 6d 65 20 3d 20 27 6d 61 63 72 6f 73 27 20  name = 'macros' 
06f0: 2b 20 65 70 66 4e 61 6d 65 20 2b 20 27 2d 3e 27  + epfName + '->'
0700: 20 2b 20 6d 61 63 72 6f 4e 61 6d 65 2e 73 75 62   + macroName.sub
0710: 73 74 72 28 36 29 3b 0d 0a 09 09 53 65 6c 66 53  str(6);....SelfS
0720: 63 72 69 70 74 2e 73 65 6c 66 5b 6e 61 6d 65 5d  cript.self[name]
0730: 20 3d 20 66 75 6e 63 74 69 6f 6e 28 29 20 7b 0d   = function() {.
0740: 0a 09 09 09 76 61 72 20 5f 65 70 66 20 3d 20 65  ....var _epf = e
0750: 70 66 3b 20 2f 2f 20 43 61 74 63 68 20 69 74 20  pf; // Catch it 
0760: 69 6e 74 6f 20 63 6c 6f 73 75 72 65 21 0d 0a 09  into closure!...
0770: 09 09 65 76 61 6c 28 27 5f 65 70 66 2e 27 20 2b  ..eval('_epf.' +
0780: 20 6d 61 63 72 6f 4e 61 6d 65 20 2b 20 27 28 29   macroName + '()
0790: 3b 27 29 3b 0d 0a 09 09 7d 3b 0d 0a 09 09 74 68  ;');....};....th
07a0: 69 73 2e 6d 61 63 72 6f 73 65 73 2e 70 75 73 68  is.macroses.push
07b0: 28 6e 61 6d 65 29 3b 0d 0a 09 7d 2c 0d 0a 09 0d  (name);...},....
07c0: 0a 09 75 6e 6c 6f 61 64 41 6c 6c 45 70 66 3a 20  ..unloadAllEpf: 
07d0: 66 75 6e 63 74 69 6f 6e 20 28 29 20 7b 0d 0a 09  function () {...
07e0: 09 66 6f 72 20 28 76 61 72 20 69 3d 30 3b 20 69  .for (var i=0; i
07f0: 3c 74 68 69 73 2e 6d 61 63 72 6f 73 65 73 2e 6c  <this.macroses.l
0800: 65 6e 67 74 68 3b 20 69 2b 2b 29 20 7b 0d 0a 09  ength; i++) {...
0810: 09 09 64 65 6c 65 74 65 20 53 65 6c 66 53 63 72  ..delete SelfScr
0820: 69 70 74 2e 73 65 6c 66 5b 74 68 69 73 2e 6d 61  ipt.self[this.ma
0830: 63 72 6f 73 65 73 5b 69 5d 5d 3b 20 0d 0a 09 09  croses[i]]; ....
0840: 7d 0d 0a 09 7d 2c 0d 0a 09 0d 0a 09 67 65 74 45  }...},......getE
0850: 70 66 3a 20 66 75 6e 63 74 69 6f 6e 20 28 65 70  pf: function (ep
0860: 66 4e 61 6d 65 29 20 7b 0d 0a 09 09 72 65 74 75  fName) {....retu
0870: 72 6e 20 74 68 69 73 2e 76 38 2e 47 65 74 45 70  rn this.v8.GetEp
0880: 66 28 65 70 66 4e 61 6d 65 29 3b 0d 0a 09 7d 0d  f(epfName);...}.
0890: 0a 0d 0a 7d 29 29 3b 0d 0a 0d 0a 53 65 6c 66 53  ...}));....SelfS
08a0: 63 72 69 70 74 2e 53 65 6c 66 5b 27 6d 61 63 72  cript.Self['macr
08b0: 6f 73 d0 9f d0 b5 d1 80 d0 b5 d0 b7 d0 b0 d0 b3  os..............
08c0: d1 80 d1 83 d0 b7 d0 b8 d1 82 d1 8c 20 d0 b2 d1  ............ ...
08d0: 81 d0 b5 20 31 d0 a1 2d d1 81 d0 ba d1 80 d0 b8  ... 1..-........
08e0: d0 bf d1 82 d1 8b 27 5d 20 3d 20 66 75 6e 63 74  ......'] = funct
08f0: 69 6f 6e 20 28 29 20 7b 0d 0a 20 20 20 20 45 70  ion () {..    Ep
0900: 66 4c 6f 61 64 65 72 2e 75 6e 6c 6f 61 64 41 6c  fLoader.unloadAl
0910: 6c 45 70 66 28 29 3b 0d 0a 20 20 20 20 45 70 66  lEpf();..    Epf
0920: 4c 6f 61 64 65 72 2e 6c 6f 61 64 41 6c 6c 45 70  Loader.loadAllEp
0930: 66 28 29 3b 0d 0a 7d 3b 0d 0a 0d 0a              f();..};....