⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bintreemf.h

📁 nsis是一个流传比较广的程序安装和解安装封装软件
💻 H
字号:
/* * BinTreeMF.h *  * This file is a part of LZMA compression module for NSIS. *  * Original LZMA SDK Copyright (C) 1999-2006 Igor Pavlov * Modifications Copyright (C) 2003-2006 Amir Szekely <kichik@netvision.net.il> *  * Licensed under the Common Public License version 1.0 (the "License"); * you may not use this file except in compliance with the License. *  * Licence details can be found in the file COPYING. *  * This software is provided 'as-is', without any express or implied * warranty. */// #ifndef __BINTREEMF_H// #define __BINTREEMF_H#include "../../../ICoder.h"#include "BinTree.h"namespace BT_NAMESPACE {#undef kIDByte#undef kIDString#ifdef HASH_ARRAY_2  #ifdef HASH_ARRAY_3    #ifdef HASH_BIG      #define kIDByte 0x4      #define kIDString TEXT("4b")    #else      #define kIDByte 0x3      #define kIDString TEXT("4")    #endif  #else    #define kIDByte 0x2    #define kIDString TEXT("3")  #endif#else  #ifdef HASH_ZIP    #define kIDByte 0x0    #define kIDString TEXT("3Z")  #else    #define kIDByte 0x1    #define kIDString TEXT("2")  #endif#endif#undef kIDUse3BytesByte#undef kIDUse3BytesString#define kIDUse3BytesByte 0x00#define kIDUse3BytesString TEXT("")// #undef kIDStringFull// #define kIDStringFull TEXT("Compress.MatchFinderBT") kIDString kIDUse3BytesString// {23170F69-40C1-278C-02XX-0000000000}DEFINE_GUID(BT_CLSID, 0x23170F69, 0x40C1, 0x278C, 0x02, kIDByte | kIDUse3BytesByte, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00);class CInTree2: public CInTree{  CMyComPtr<IMatchFinderCallback> _callback;  virtual void BeforeMoveBlock();  virtual void AfterMoveBlock();public:  void SetCallback(IMatchFinderCallback *callback)  {    _callback = callback;  }};class CMatchFinderBinTree:   public IMatchFinder,  public IMatchFinderSetCallback,  public CMyUnknownImp{  MY_UNKNOWN_IMP1(IMatchFinderSetCallback)  STDMETHOD(Init)(ISequentialInStream *stream);  STDMETHOD_(void, ReleaseStream)();  STDMETHOD(MovePos)();  STDMETHOD_(Byte, GetIndexByte)(Int32 index);  STDMETHOD_(UInt32, GetMatchLen)(Int32 index, UInt32 back, UInt32 limit);  STDMETHOD_(UInt32, GetNumAvailableBytes)();  STDMETHOD_(const Byte *, GetPointerToCurrentPos)();  STDMETHOD(Create)(UInt32 sizeHistory,       UInt32 keepAddBufferBefore, UInt32 matchMaxLen,       UInt32 keepAddBufferAfter);  STDMETHOD_(UInt32, GetLongestMatch)(UInt32 *distances);  STDMETHOD_(void, DummyLongestMatch)();  // IMatchFinderSetCallback  STDMETHOD(SetCallback)(IMatchFinderCallback *callback);private:  // UInt32 m_WindowReservSize;  CInTree2 _matchFinder;public:  // CMatchFinderBinTree(): m_WindowReservSize((1 << 19) + 256) {};  void SetCutValue(UInt32 cutValue)     { _matchFinder.SetCutValue(cutValue); }  /*  void SetWindowReservSize(UInt32 reservWindowSize)    { m_WindowReservSize = reservWindowSize; }  */  virtual ~CMatchFinderBinTree() {}}; }// #endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -