亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? nsisin.cpp

?? 壓縮解壓工具7-zip源代碼
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
          {
            Script += "Exch";
          }
          else
          {
            Script += "Push";
            Script += " ";
            Script += ReadString2(e.Params[0]);
          }
        }
        break;
      }

      case EW_SENDMESSAGE:
      {
        // SendMessage: 6 [output, hwnd, msg, wparam, lparam, [wparamstring?1:0 | lparamstring?2:0 | timeout<<2]
        Script += " ";
        // Script += ReadString2(e.Params[0]);
        // Script += " ";
        Script += ReadString2(e.Params[1]);
        Script += " ";
        Script += ReadString2(e.Params[2]);
        
        Script += " ";
        UInt32 spec = e.Params[5];
        // if (spec & 1)
          Script += IntToString(e.Params[3]);
        // else
        //   Script += ReadString2(e.Params[3]);
        
        Script += " ";
        // if (spec & 2)
          Script += IntToString(e.Params[4]);
        // else
        //   Script += ReadString2(e.Params[4]);

        if ((Int32)e.Params[0] >= 0)
        {
          Script += " ";
          Script += GetVar(e.Params[1]);
        }

        spec >>= 2;
        if (spec != 0)
        {
          Script += " /TIMEOUT=";
          Script += IntToString(spec);
        }
        break;
      }

      case EW_GETDLGITEM:
      {
        Script += " ";
        Script += GetVar(e.Params[0]);;
        Script += " ";
        Script += ReadString2(e.Params[1]);
        Script += " ";
        Script += ReadString2(e.Params[2]);
        break;
     }


      case EW_REGISTERDLL:
      {
        Script += " ";
        Script += ReadString2(e.Params[0]);
        Script += " ";
        Script += ReadString2(e.Params[1]);
        Script += " ";
        Script += UIntToString(e.Params[2]);
        break;
      }

      case EW_CREATESHORTCUT:
      {
        AString s;

        Script += " ";
        Script += ReadString2Qw(e.Params[0]);

        Script += " ";
        Script += ReadString2Qw(e.Params[1]);

        for (int j = 2; j < 5; j++)
        {
          Script += " ";
          Script += UIntToString(e.Params[j]);
        }
        break;
      }

      /*
      case EW_DELREG:
      {
        AString keyName, valueName;
        keyName = ReadString2(e.Params[1]);
        bool isValue = (e.Params[2] != -1);
        if (isValue)
        {
          valueName = ReadString2(e.Params[2]);
          Script += "Key";
        }
        else
          Script += "Value";
        Script += " ";
        Script += UIntToString(e.Params[0]);
        Script += " ";
        Script += keyName;
        if (isValue)
        {
          Script += " ";
          Script += valueName;
        }
        Script += " ";
        Script += UIntToString(e.Params[3]);
        break;
      }
      */

      case EW_WRITEREG:
      {
        AString s;
        switch(e.Params[4])
        {
          case 1:  s = "Str"; break;
          case 2:  s = "ExpandStr"; break;
          case 3:  s = "Bin"; break;
          case 4:  s = "DWORD"; break;
          default: s = "?" + UIntToString(e.Params[4]); break;
        }
        Script += s;
        Script += " ";
        Script += GetRegRootID(e.Params[0]);
        Script += " ";

        AString keyName, valueName;
        keyName = ReadString2Qw(e.Params[1]);
        Script += keyName;
        Script += " ";
        
        valueName = ReadString2Qw(e.Params[2]);
        Script += valueName;
        Script += " ";

        valueName = ReadString2Qw(e.Params[3]);
        Script += valueName;
        Script += " ";

        break;
      }

      case EW_WRITEUNINSTALLER:
      {
        Script += " ";
        Script += ReadString2(e.Params[0]);
        for (int j = 1; j < 3; j++)
        {
          Script += " ";
          Script += UIntToString(e.Params[j]);
        }
        break;
      }

      default:
      {
        int numParams = kNumEntryParams;
        if (e.Which < sizeof(kCommandPairs) / sizeof(kCommandPairs[0]))
        {
          const CCommandPair &pair = kCommandPairs[e.Which];
          // Script += pair.Name;
          numParams = pair.NumParams;
        }
        else
        {
          Script += "Unknown";
          Script += UIntToString(e.Which);
        }
        Script += e.GetParamsString(numParams);
      }
      #endif
    }
    #ifdef NSIS_SCRIPT
    Script += kCrLf;
    #endif
  }

  {
    Items.Sort(CompareItems, 0);
    int i;
    // if (IsSolid)
    for (i = 0; i + 1 < Items.Size();)
    {
      bool sameName = IsUnicode ?
        (Items[i].NameU == Items[i + 1].NameU) :
        (Items[i].NameA == Items[i + 1].NameA);
      if (Items[i].Pos == Items[i + 1].Pos && (IsSolid || sameName))
        Items.Delete(i + 1);
      else
        i++;
    }
    for (i = 0; i + 1 < Items.Size(); i++)
    {
      CItem &item = Items[i];
      item.EstimatedSizeIsDefined = true;
      item.EstimatedSize = Items[i + 1].Pos - item.Pos - 4;
    }
    if (!IsSolid)
    {
      for (i = 0; i < Items.Size(); i++)
      {
        CItem &item = Items[i];
        RINOK(_stream->Seek(GetPosOfNonSolidItem(i), STREAM_SEEK_SET, NULL));
        const UInt32 kSigSize = 4 + 1 + 5;
        BYTE sig[kSigSize];
        size_t processedSize = kSigSize;
        RINOK(ReadStream(_stream, sig, &processedSize));
        if (processedSize < 4)
          return S_FALSE;
        UInt32 size = Get32(sig);
        if ((size & 0x80000000) != 0)
        {
          item.IsCompressed = true;
          // is compressed;
          size &= ~0x80000000;
          if (Method == NMethodType::kLZMA)
          {
            if (processedSize < 9)
              return S_FALSE;
            if (FilterFlag)
              item.UseFilter = (sig[4] != 0);
            item.DictionarySize = Get32(sig + 5 + (FilterFlag ? 1 : 0));
          }
        }
        else
        {
          item.IsCompressed = false;
          item.Size = size;
          item.SizeIsDefined = true;
        }
        item.CompressedSize = size;
        item.CompressedSizeIsDefined = true;
      }
    }
  }
  return S_OK;
}

HRESULT CInArchive::Parse()
{
  // UInt32 offset = ReadUInt32();
  // ???? offset == FirstHeader.HeaderLength
  /* UInt32 ehFlags = */ ReadUInt32();
  CBlockHeader bhPages, bhSections, bhEntries, bhStrings, bhLangTables, bhCtlColors, bhData;
  // CBlockHeader bgFont;
  ReadBlockHeader(bhPages);
  ReadBlockHeader(bhSections);
  ReadBlockHeader(bhEntries);
  ReadBlockHeader(bhStrings);
  ReadBlockHeader(bhLangTables);
  ReadBlockHeader(bhCtlColors);
  // ReadBlockHeader(bgFont);
  ReadBlockHeader(bhData);

  _stringsPos = bhStrings.Offset;
  UInt32 pos = GetOffset() + _stringsPos;
  int numZeros0 = 0;
  int numZeros1 = 0;
  int i;
  const int kBlockSize = 256;
  for (i = 0; i < kBlockSize; i++)
  {
    if (pos >= _size || pos + 1 >= _size)
      break;
    char c0 = _data[pos++];
    char c1 = _data[pos++];
    wchar_t c = (c0 | ((wchar_t)c1 << 8));

    if (c >= NS_UN_CODES_START && c < NS_UN_CODES_END)
    {
      if (pos >= _size || pos + 1 >= _size)
        break;
      pos += 2;
      numZeros1++;
    }
    else
    {
      if (c0 == 0 && c1 != 0)
        numZeros0++;
      if (c1 == 0)
        numZeros1++;
    }
    // printf("\nnumZeros0 = %2x %2x", _data[pos + 0],  _data[pos + 1]);
  }
  IsUnicode = (numZeros1 > numZeros0 * 3 + kBlockSize / 16);
  // printf("\nnumZeros0 = %3d    numZeros1 = %3d", numZeros0,  numZeros1);
  return ReadEntries(bhEntries);
}

static bool IsLZMA(const Byte *p, UInt32 &dictionary)
{
  dictionary = Get32(p + 1);
  return (p[0] == 0x5D && p[1] == 0x00 && p[2] == 0x00 && p[5] == 0x00);
}

static bool IsLZMA(const Byte *p, UInt32 &dictionary, bool &thereIsFlag)
{
  if (IsLZMA(p, dictionary))
  {
    thereIsFlag = false;
    return true;
  }
  if (IsLZMA(p + 1, dictionary))
  {
    thereIsFlag = true;
    return true;
  }
  return false;
}

HRESULT CInArchive::Open2(
      DECL_EXTERNAL_CODECS_LOC_VARS2
      )
{
  RINOK(_stream->Seek(0, STREAM_SEEK_CUR, &StreamOffset));

  const UInt32 kSigSize = 4 + 1 + 5 + 1; // size, flag, lzma props, lzma first byte
  BYTE sig[kSigSize];
  RINOK(ReadStream_FALSE(_stream, sig, kSigSize));
  UInt64 position;
  RINOK(_stream->Seek(StreamOffset, STREAM_SEEK_SET, &position));

  _headerIsCompressed = true;
  IsSolid = true;
  FilterFlag = false;

  UInt32 compressedHeaderSize = Get32(sig);
  
  if (compressedHeaderSize == FirstHeader.HeaderLength)
  {
    _headerIsCompressed = false;
    IsSolid = false;
    Method = NMethodType::kCopy;
  }
  else if (IsLZMA(sig, DictionarySize, FilterFlag))
  {
    Method = NMethodType::kLZMA;
  }
  else if (IsLZMA(sig + 4, DictionarySize, FilterFlag))
  {
    IsSolid = false;
    Method = NMethodType::kLZMA;
  }
  else if (sig[3] == 0x80)
  {
    IsSolid = false;
    Method = NMethodType::kDeflate;
  }
  else
  {
    Method = NMethodType::kDeflate;
  }

  _posInData = 0;
  if (!IsSolid)
  {
    _headerIsCompressed = ((compressedHeaderSize & 0x80000000) != 0);
    if (_headerIsCompressed)
      compressedHeaderSize &= ~0x80000000;
    _nonSolidStartOffset = compressedHeaderSize;
    RINOK(_stream->Seek(StreamOffset + 4, STREAM_SEEK_SET, NULL));
  }
  UInt32 unpackSize = FirstHeader.HeaderLength;
  if (_headerIsCompressed)
  {
    // unpackSize = (1 << 23);
    _data.SetCapacity(unpackSize);
    RINOK(Decoder.Init(
        EXTERNAL_CODECS_LOC_VARS
        _stream, Method, FilterFlag, UseFilter));
    size_t processedSize = unpackSize;
    RINOK(Decoder.Read(_data, &processedSize));
    if (processedSize != unpackSize)
      return S_FALSE;
    _size = processedSize;
    if (IsSolid)
    {
      UInt32 size2 = ReadUInt32();
      if (size2 < _size)
        _size = size2;
    }
  }
  else
  {
    _data.SetCapacity(unpackSize);
    _size = (size_t)unpackSize;
    RINOK(ReadStream_FALSE(_stream, (Byte *)_data, unpackSize));
  }
  return Parse();
}

/*
NsisExe =
{
  ExeStub
  Archive  // must start from 512 * N
  #ifndef NSIS_CONFIG_CRC_ANAL
  {
    Some additional data
  }
}

Archive
{
  FirstHeader
  Data
  #ifdef NSIS_CONFIG_CRC_SUPPORT && FirstHeader.ThereIsCrc()
  {
    CRC
  }
}

FirstHeader
{
  UInt32 Flags;
  Byte Signature[16];
  // points to the header+sections+entries+stringtable in the datablock
  UInt32 HeaderLength;
  UInt32 ArchiveSize;
}
*/

HRESULT CInArchive::Open(
    DECL_EXTERNAL_CODECS_LOC_VARS
    IInStream *inStream, const UInt64 *maxCheckStartPosition)
{
  Clear();
  RINOK(inStream->Seek(0, STREAM_SEEK_SET, NULL));
  UInt64 maxSize = ((maxCheckStartPosition != 0) ? *maxCheckStartPosition : 0);
  const UInt32 kStep = 512;
  Byte buffer[kStep];
  
  UInt64 position = 0;
  for (; position <= maxSize; position += kStep)
  {
    RINOK(ReadStream_FALSE(inStream, buffer, kStep));
    if (memcmp(buffer + 4, kSignature, kSignatureSize) == 0)
      break;
  }
  if (position > maxSize)
    return S_FALSE;
  const UInt32 kStartHeaderSize = 4 * 7;
  RINOK(inStream->Seek(0, STREAM_SEEK_END, &_archiveSize));
  RINOK(inStream->Seek(position + kStartHeaderSize, STREAM_SEEK_SET, 0));
  FirstHeader.Flags = Get32(buffer);
  FirstHeader.HeaderLength = Get32(buffer + kSignatureSize + 4);
  FirstHeader.ArchiveSize = Get32(buffer + kSignatureSize + 8);
  if (_archiveSize - position < FirstHeader.ArchiveSize)
    return S_FALSE;

  try
  {
    _stream = inStream;
    HRESULT res = Open2(EXTERNAL_CODECS_LOC_VARS2);
    if (res != S_OK)
      Clear();
    _stream.Release();
    return res;
  }
  catch(...) { Clear(); return S_FALSE; }
}

void CInArchive::Clear()
{
  #ifdef NSIS_SCRIPT
  Script.Empty();
  #endif
  Items.Clear();
  _stream.Release();
}

}}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产日本亚洲高清| 欧美一区在线视频| 色老头久久综合| 天堂va蜜桃一区二区三区| 久久99精品久久久久久| 99这里只有久久精品视频| 日韩欧美国产综合| 久久aⅴ国产欧美74aaa| 日韩精品资源二区在线| 日本亚洲最大的色成网站www| 91免费在线看| 国产成人免费高清| 国产高清亚洲一区| 中文字幕五月欧美| 欧洲国内综合视频| 免费看欧美女人艹b| 久久色.com| 在线视频亚洲一区| 蜜桃在线一区二区三区| 精品福利二区三区| 成人短视频下载 | 亚洲国产你懂的| 91麻豆精品国产自产在线| 亚洲国产cao| 91超碰这里只有精品国产| 福利电影一区二区三区| 亚洲香蕉伊在人在线观| 国产女同互慰高潮91漫画| 欧美天堂一区二区三区| 国产传媒欧美日韩成人| 五月综合激情婷婷六月色窝| 亚洲精选在线视频| 一本大道久久a久久综合| 石原莉奈在线亚洲三区| 经典三级一区二区| 日韩一区欧美二区| 91精品在线观看入口| 日本乱人伦aⅴ精品| 国产乱码精品一区二区三区av| 91丨porny丨在线| 国产精品丝袜黑色高跟| 亚洲国产精品一区二区久久恐怖片| 天堂午夜影视日韩欧美一区二区| 在线中文字幕一区二区| 亚洲图片欧美色图| 欧美一级理论片| 激情六月婷婷综合| 欧美韩国日本不卡| 91蜜桃在线免费视频| 亚洲一线二线三线久久久| 69堂国产成人免费视频| 成人高清在线视频| 丁香亚洲综合激情啪啪综合| 午夜久久久久久电影| 性感美女极品91精品| 亚洲第一精品在线| 韩国精品免费视频| 成人av中文字幕| 色视频一区二区| 精品少妇一区二区三区日产乱码| 中文字幕色av一区二区三区| 天堂精品中文字幕在线| 韩国三级中文字幕hd久久精品| 色综合久久中文字幕综合网| 色成人在线视频| 欧美老人xxxx18| 亚洲综合成人在线视频| 91蜜桃婷婷狠狠久久综合9色| 欧美日韩亚洲综合在线| 激情久久五月天| 亚洲精品视频免费观看| 日韩午夜激情免费电影| 91一区二区在线观看| 麻豆中文一区二区| 亚洲欧美日韩一区二区 | 成人av在线资源网站| 亚洲一区二区偷拍精品| 精品精品国产高清a毛片牛牛| 成人免费电影视频| 日本色综合中文字幕| 亚洲欧美色一区| 久久久久久**毛片大全| 欧美日韩国产一级片| 成人看片黄a免费看在线| 视频在线观看91| 亚洲桃色在线一区| 久久精品夜色噜噜亚洲aⅴ| 欧美日韩高清一区二区不卡| 成人动漫在线一区| 精品午夜久久福利影院| 天堂va蜜桃一区二区三区| 亚洲人午夜精品天堂一二香蕉| 精品国产伦一区二区三区观看体验| 日本精品一区二区三区四区的功能| 国产剧情av麻豆香蕉精品| 蜜臀精品一区二区三区在线观看 | 免费看精品久久片| 一区二区三区毛片| 国产精品国产三级国产aⅴ原创 | 国产欧美日韩综合精品一区二区| 欧美日韩精品三区| 91久久国产综合久久| 国产91对白在线观看九色| 毛片av一区二区三区| 蜜臀精品一区二区三区在线观看| 亚洲成av人片www| 亚洲综合一二区| 亚洲综合在线视频| 亚洲人精品午夜| 亚洲欧洲日韩在线| 国产精品国产三级国产普通话三级| 久久久久久久一区| 国产拍揄自揄精品视频麻豆| 久久蜜桃一区二区| 国产人伦精品一区二区| 国产农村妇女精品| 亚洲国产精品99久久久久久久久| 久久这里只有精品6| 久久一区二区视频| 国产精品免费观看视频| 日韩毛片在线免费观看| 亚洲精品综合在线| 性做久久久久久| 视频一区视频二区中文| 日韩电影在线观看网站| 麻豆91精品91久久久的内涵| 蜜臀久久久久久久| 国产美女精品一区二区三区| 国产成人精品免费| 一本大道久久精品懂色aⅴ| 欧美日韩国产高清一区二区三区| 日韩一区二区视频| 中文字幕不卡在线观看| 亚洲天堂2014| 蜜桃免费网站一区二区三区| 国产麻豆精品一区二区| 99精品1区2区| 欧美日本高清视频在线观看| 精品国产1区二区| 国产精品国产自产拍高清av王其| 亚洲亚洲人成综合网络| 老鸭窝一区二区久久精品| 国产精品综合视频| 一本一道久久a久久精品| 欧美精品v国产精品v日韩精品| 久久久久久免费毛片精品| 日韩美女视频一区| 免费成人深夜小野草| 国产91精品一区二区麻豆亚洲| 91成人国产精品| 麻豆精品一区二区av白丝在线| 欧美亚洲综合另类| 精品少妇一区二区三区在线播放| 国产精品不卡一区| 视频在线观看一区| 成人av在线资源| 日韩一区二区影院| 亚洲三级在线免费观看| 美女免费视频一区| 91影院在线观看| 日韩精品一区二区三区蜜臀| 国产精品久久精品日日| 精品一区二区三区视频在线观看| av在线综合网| 欧美精品一区二区三区在线播放 | 成人免费视频视频| 欧美日韩国产小视频| 国产精品日韩成人| 麻豆一区二区三区| 欧美日韩免费视频| 亚洲精品日韩专区silk| 国产福利一区二区三区视频在线| 欧美日韩国产一区| 亚洲免费观看高清完整版在线观看熊 | 日韩精品在线一区二区| 亚洲精品视频免费看| 国产福利电影一区二区三区| 91精品国产全国免费观看 | 成人高清伦理免费影院在线观看| 91精选在线观看| 亚洲在线免费播放| 国产成人av电影免费在线观看| 欧美成人精品二区三区99精品| 一区二区久久久| 91在线视频免费91| 国产精品人成在线观看免费 | 日本欧美大码aⅴ在线播放| 99精品久久只有精品| 国产精品少妇自拍| 成人久久视频在线观看| 国产午夜三级一区二区三| 国产真实乱子伦精品视频| 欧美一级精品大片| 美女视频一区二区三区| 欧美一区二区三区白人| 视频精品一区二区| 欧美一级片在线| 久久99精品久久久久婷婷| 精品91自产拍在线观看一区| 国产在线国偷精品免费看|