
  [ Legend                     ]
  [ + Added feature            ]
  [ * Improved/changed feature ]
  [ - Bug fixed                ]


  ASProtect 2.1 SKE build 02.19 Release
  ======================================

  - Fixed CRC calculation error for some files
  - Fixed the problem with change of active mode 
  + WinCGI keygenerator was added

  ASProtect 2.0 SKE build 02.15 Release
  ======================================

  + Added command line support ("-process" key)
  + New modes states tracking optinon added:
    MainMenu -> Options -> Modes statuses oversight

    If you want ASProtect to stop tracking modes states, you should turn this
    option off. After that you will have to process all mode states by yourself.

  + Added BlackListed registration keys support for IDE Debug logger
  + Add OutputDebugString IDE logging for service applications testing
  + Added ASProtect Main Window minimization feature
  + Added new ASProtect API - "GetKeyDate"

    "GetKeyDate" API Description:

    GetKeyExpirationDate

    Description: 

    GetKeyExpirationDate - retrieves the creation date for registration key
    of the currently working mode. If the function succeeds, the return value
    is TRUE. If current mode is not using activation keys or there is no
    registration key installed, the function will fail and return FALSE.

    Declaration: 

    For Delphi: 

    function  GetKeyDate    ( var Day   : WORD;
                              var Month : WORD;
                              var Year  : WORD ): Boolean; stdcall;

    Sample: 

    For Delphi:

    Var
      Day,
      Month,
      Year  : WORD;

    begin
      GetKeyDate( Day, Month, Year );
      Form.Caption := Format('Key Creation Date: %d/%d/%d', [Day, Month, Year]);
    end;

  * Fixed right mouse click problem on About Box
  * Improved "Advanced Import protection" option
  * "Is this Mode registered?" caption changed to "Is this Mode in Registered state?".
  * Improved "CheckSum Protection" option
  * Improved ASProtect Keygen random generator
  * Interface changes: encryption sections are now opening in new modal window

  * ASProtect API function "GetModeInformation" was changed!

    In order to check mode states after calling ASProtect API functions:
    ("CheckKeyAndDecrypt" and "CheckKey") use new boolean parameter in
    "GetModeInformation" API function - "CurrMode". If it is set to "True",
    function will return current mode states, otherwise it will return the
    states of last key-mode checking operation.

    Declaration for Delphi:
    procedure GetModeInformation( var ModeName   : PChar;
                                  var ModeStatus : TModeStatus;
                                      CurrMode   : Boolean ); stdcall;
    Declaration for C++:
    extern "C" _stdcall __declspec(dllimport)
    BOOL GetModeInformation(char** ModeName, PMODE_STATUS mode_status, BOOL CurrMode);


  - Fixed date bug in "GetKeyExpirationDate" API function
  - Fixed small bug in "CheckKeyAndDecrypt" API function
  - Fixed "IsWrongHardwareID" wrong spelling in TModeStatus type
  - Fixed the problem with "Reset Trial On New Version" option
  - Fixed the error 31
  - Fixed the error 251
  - Fixed the bug with "Clear Local Trial Information" option
  - Fixed the small bug in Import Table processing
  - Fixed the problem with "OEP protection" option on Delphi Applications
  - Fixed the problem with repeated HardwareIDs generation.
    (Only repeated HardwareIDs will be affected by this fix)


