*****************************************************************
***                   HexSel AkelPad plugin v7.1              ***
*****************************************************************

2006-2016   aka Instructor (Shengalts@mail.ru)


***  ***

   //   .


***  ***

HexSel::Main
 .


***   ***

Call("HexSel::Main", 1, FLAGS, "PREFIX", "SUFFIX", "INPUT", INPUTLEN, INPUTCODEPAGE, **OUTPUT, *OUTPUTLEN)
  :
    1
          .
    FLAGS ( ):
        1     .
        2     .
        4    (Ansi).
        8    (Unicode).
       16    .
      256   .
      512   .
       : 8+16=24.
    "PREFIX"
         .     .
    "SUFFIX"
         .     .
    "INPUT"
        .
    INPUTLEN
        (  -1).  -1,    NULL .
    INPUTCODEPAGE ( Win9x/Me)
         .     ANSI .
    **OUTPUT
          ,    .   Unicode.
    *OUTPUTLEN
        ,       .
  
      1  2  ,     .
       OUTPUT  Scripts ,     AkelPad.MemFree.
  .   (1+4+16=21):
    Call("HexSel::Main", 1, 21, "\x", "")
  .        (8+16=24):
    Call("HexSel::Main", 1, 24, "\x", "", "MyText")
  .    ():
    WScript.Echo(GetHex("MyText", "", ""));

    function GetHex(pInput, pPrefix, pSuffix)
    {
      var pOutput="";
      var lpOutput;
      var lpOutputLen;
      var lpOutputPtr;

      if (pInput)
      {
        if (lpOutput=AkelPad.MemAlloc(_X64?8:4 /*sizeof(wchar_t *)*/))
        {
          AkelPad.Call("HexSel::Main", 1, 9 /*1+8*/, pPrefix, pSuffix, pInput, pInput.length, 0, lpOutput);
          lpOutputPtr=AkelPad.MemRead(lpOutput, 2 /*DT_QWORD*/);
          pOutput=AkelPad.MemRead(lpOutputPtr, 1 /*DT_UNICODE*/);
          AkelPad.MemFree(lpOutputPtr);
          AkelPad.MemFree(lpOutput);
        }
      }
      return pOutput;
    }

Call("HexSel::Main", 2, FLAGS, "PREFIX", "SUFFIX", ANSICODEPAGE, UNICODECODEPAGE, "INPUT", INPUTLEN, INPUTCODEPAGE, **OUTPUT, *OUTPUTLEN)
  :
    2
       ,   1,    : ANSICODEPAGE, UNICODECODEPAGE.
    ANSICODEPAGE
          (Ansi).
       -1,   .
       -2,    .
       : -2.
    UNICODECODEPAGE
          (Unicode).
       -2,    .
       : -2.
