Represents a GS::Guid in the API layer.
typedef struct {
UInt32 time_low;
unsigned short time_mid;
unsigned short time_hi_and_version;
unsigned char clock_seq_hi_and_reserved;
unsigned char clock_seq_low;
unsigned char node[6];
} API_Guid;
Remarks
API_Guid is essentially a GS::Guid. It has the same size and structure, and only exists because of certain C++ language limitations: namely that a union (like API_Element) cannot contain a class which has a constructor or destructor. Since API_Elem_Head needs to contain a Guid member, and it cannot be a GS::Guid, the API_Guid structure was introduced.
This means that you should treat API_Guid structures as GS::Guid in your code, and use the following provided functions to convert between the two:
inline GS::Guid& APIGuid2GSGuid (API_Guid& guid)
inline const GS::Guid& APIGuid2GSGuid (const API_Guid& guid)
inline API_Guid& GSGuid2APIGuid (GS::Guid& guid)
inline const API_Guid& GSGuid2APIGuid (const GS::Guid& guid)
All these functions do two things:
- check that API_Guid and GS::Guid are the same size at compile time and
reinterpret_castthe input API_Guid reference to a GS::Guid reference, or vice versa.
There are comparison operators (==, !=, <, <=, >, >=) defined to compare API_Guids with each other or with GS::Guids.
There’s also a macro called APINULLGuid for the API_Guid respresentation of the GS::NULLGuid constant.
From Archicad 12 you are able to use API_Guid for GS::HashTable key because it has GenerateHashValue method. ![]()
Requirements
- Version: API 11.01 or later
- Header: API_Guid.hpp
See Also
GS::Guid,
API Types