The protection key information record.

    typedef struct {
        UInt32            keySerialNumber;
        UInt32            protMode;
        UInt32            numberOfLicenses;
        UInt16            keyBoxMask;
        GSTime            expirationTime;
        GS::UniString     partnerID;
    } API_ProtectionInfo;



The unique serial number of the hardware key.
The protection mode.
numberOfLicenses 14
The number of licenses programmed into the key.
keyBoxMask 14
Box mask of the unique serial number of the hardware key.
expirationTime 19
Expiration time of an ARCHICAD LIVE! subscription.
partnerID 21
When ARCHICAD runs on an SSA license (see APIPROT_SSA_MASK) this field contains the internal identifier of the reseller.



The keySerialNumber gives the unique serial number of the hardware key.

The protMode field specifies the protection mode. You can use the following predefined masks to retrieve information about the protection type.

  • APIPROT_SITE_MASK: More license (full version)
  • APIPROT_NFR_MASK: Not For Resale version (full version)
  • APIPROT_SCHOOL_MASK: School version (full version)
  • APIPROT_PPU_MASK: PPU version (full version)
  • APIPROT_NET_MASK: Network licensing (full version)
  • APIPROT_TW_MASK: TeamWork functionality is on
  • APIPROT_PROTEDU_MASK: Education version
  • APIPROT_START_MASK 11: Start edition
  • APIPROT_SSA_MASK 21: Software Service Agreement (SSA)

Usable masks in case of no hardware key :

  • APIPROT_EDU_MASK: Education version
  • APIPROT_DEMO_MASK: Demo version
  • APIPROT_TRIAL_MASK: Trial version
  • APIPROT_BTC_MASK 18: BIM Cloud Team Client version

(Use bitwise-AND operator to find out your hardware key parameters.)

Call the ACAPI_Environment function with the APIEnv_ProtectionDataID function code to get this data.

From API 21 you shouldn’t call BNZeroMemory or memset on this structure.



Version: API 2.1 or later
Header: APIdefs_Environment.h


See Also

ACAPI_Environment, APIEnv_ProtectionDataID, API Types